diff --git a/app.uhk.js b/app.uhk.js index b9376c6c..076fa191 100644 --- a/app.uhk.js +++ b/app.uhk.js @@ -1,5 +1,19 @@ -webpackJsonp([1],Array(22).concat([ -/* 22 */ +webpackJsonp([1],[ +/* 0 */, +/* 1 */, +/* 2 */, +/* 3 */, +/* 4 */, +/* 5 */, +/* 6 */, +/* 7 */, +/* 8 */, +/* 9 */, +/* 10 */, +/* 11 */, +/* 12 */, +/* 13 */, +/* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8,21 +22,20 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(81)); -__export(__webpack_require__(1093)); -__export(__webpack_require__(1094)); -__export(__webpack_require__(1095)); -__export(__webpack_require__(1096)); -__export(__webpack_require__(1097)); -__export(__webpack_require__(1098)); -__export(__webpack_require__(1099)); +__export(__webpack_require__(47)); +__export(__webpack_require__(627)); +__export(__webpack_require__(628)); +__export(__webpack_require__(629)); +__export(__webpack_require__(630)); +__export(__webpack_require__(631)); +__export(__webpack_require__(632)); +__export(__webpack_require__(633)); /***/ }), -/* 23 */, -/* 24 */, -/* 25 */, -/* 26 */ +/* 15 */, +/* 16 */, +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -103,11 +116,11 @@ exports.assertEnum = assertEnum; /***/ }), -/* 27 */, -/* 28 */, -/* 29 */, -/* 30 */, -/* 31 */ +/* 18 */, +/* 19 */, +/* 20 */, +/* 21 */, +/* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -125,25 +138,68 @@ Object.defineProperty(exports, "__esModule", { value: true }); /* tslint:disable:variable-name */ var __svg__ = { filename: __webpack_require__.p +"assets/compiled_sprite.svg" }; /* tslint:enable:variable-name */ -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); +var keystroke_type_1 = __webpack_require__(98); var MapperService = (function () { function MapperService() { this.initScanCodeTextMap(); - this.initScanCodeFileName(); + this.initScancodeIcons(); this.initNameToFileNames(); } - MapperService.prototype.scanCodeToText = function (scanCode) { - return this.scanCodeTextMap.get(scanCode); - }; - MapperService.prototype.hasScancodeIcon = function (scancode) { - return this.scanCodeFileName.has(scancode); - }; - MapperService.prototype.scanCodeToSvgImagePath = function (scanCode) { - var fileName = this.scanCodeFileName.get(scanCode); - if (fileName) { - return 'assets/compiled_sprite.svg#' + fileName; + MapperService.prototype.scanCodeToText = function (scanCode, type) { + if (type === void 0) { type = keystroke_type_1.KeystrokeType.basic; } + var map; + switch (type) { + case keystroke_type_1.KeystrokeType.shortMedia: + case keystroke_type_1.KeystrokeType.longMedia: + map = this.mediaScanCodeTextMap; + break; + case keystroke_type_1.KeystrokeType.system: + map = this.sytemScanCodeTextMap; + break; + default: + map = this.basicScanCodeTextMap; + break; } - return undefined; + return map.get(scanCode); + }; + MapperService.prototype.hasScancodeIcon = function (scancode, type) { + if (type === void 0) { type = keystroke_type_1.KeystrokeType.basic; } + var map; + switch (type) { + case keystroke_type_1.KeystrokeType.basic: + map = this.basicScancodeIcons; + break; + case keystroke_type_1.KeystrokeType.shortMedia: + case keystroke_type_1.KeystrokeType.longMedia: + map = this.mediaScancodeIcons; + break; + case keystroke_type_1.KeystrokeType.system: + map = this.systemScancodeIcons; + break; + default: + map = new Map(); + } + return map.has(scancode); + }; + MapperService.prototype.scanCodeToSvgImagePath = function (scanCode, type) { + if (type === void 0) { type = keystroke_type_1.KeystrokeType.basic; } + var map; + switch (type) { + case keystroke_type_1.KeystrokeType.basic: + map = this.basicScancodeIcons; + break; + case keystroke_type_1.KeystrokeType.shortMedia: + case keystroke_type_1.KeystrokeType.longMedia: + map = this.mediaScancodeIcons; + break; + case keystroke_type_1.KeystrokeType.system: + map = this.systemScancodeIcons; + break; + default: + return undefined; + } + return 'assets/compiled_sprite.svg#' + map.get(scanCode); }; MapperService.prototype.getIcon = function (iconName) { return 'assets/compiled_sprite.svg#' + this.nameToFileName.get(iconName); @@ -158,138 +214,163 @@ var MapperService = (function () { }; // TODO: read the mapping from JSON MapperService.prototype.initScanCodeTextMap = function () { - this.scanCodeTextMap = new Map(); - this.scanCodeTextMap.set(4, ['A']); - this.scanCodeTextMap.set(5, ['B']); - this.scanCodeTextMap.set(6, ['C']); - this.scanCodeTextMap.set(7, ['D']); - this.scanCodeTextMap.set(8, ['E']); - this.scanCodeTextMap.set(9, ['F']); - this.scanCodeTextMap.set(10, ['G']); - this.scanCodeTextMap.set(11, ['H']); - this.scanCodeTextMap.set(12, ['I']); - this.scanCodeTextMap.set(13, ['J']); - this.scanCodeTextMap.set(14, ['K']); - this.scanCodeTextMap.set(15, ['L']); - this.scanCodeTextMap.set(16, ['M']); - this.scanCodeTextMap.set(17, ['N']); - this.scanCodeTextMap.set(18, ['O']); - this.scanCodeTextMap.set(19, ['P']); - this.scanCodeTextMap.set(20, ['Q']); - this.scanCodeTextMap.set(21, ['R']); - this.scanCodeTextMap.set(22, ['S']); - this.scanCodeTextMap.set(23, ['T']); - this.scanCodeTextMap.set(24, ['U']); - this.scanCodeTextMap.set(25, ['V']); - this.scanCodeTextMap.set(26, ['W']); - this.scanCodeTextMap.set(27, ['X']); - this.scanCodeTextMap.set(28, ['Y']); - this.scanCodeTextMap.set(29, ['Z']); - this.scanCodeTextMap.set(30, ['1', '!']); - this.scanCodeTextMap.set(31, ['2', '@']); - this.scanCodeTextMap.set(32, ['3', '#']); - this.scanCodeTextMap.set(33, ['4', '$']); - this.scanCodeTextMap.set(34, ['5', '%']); - this.scanCodeTextMap.set(35, ['6', '^']); - this.scanCodeTextMap.set(36, ['7', '&']); - this.scanCodeTextMap.set(37, ['8', '*']); - this.scanCodeTextMap.set(38, ['9', '(']); - this.scanCodeTextMap.set(39, ['0', ')']); - this.scanCodeTextMap.set(40, ['Enter']); - this.scanCodeTextMap.set(41, ['Esc']); - this.scanCodeTextMap.set(42, ['Backspace']); - this.scanCodeTextMap.set(43, ['Tab']); - this.scanCodeTextMap.set(44, ['Space']); - this.scanCodeTextMap.set(45, ['-', '_']); - this.scanCodeTextMap.set(46, ['=', '+']); - this.scanCodeTextMap.set(47, ['[', '{']); - this.scanCodeTextMap.set(48, [']', '}']); - this.scanCodeTextMap.set(49, ['\\', '|']); - this.scanCodeTextMap.set(50, ['NON_US_HASHMARK_AND_TILDE']); - this.scanCodeTextMap.set(51, [';', ':']); - this.scanCodeTextMap.set(52, ['\'', '"']); - this.scanCodeTextMap.set(53, ['`', '~']); - this.scanCodeTextMap.set(54, [',', '<']); - this.scanCodeTextMap.set(55, ['.', '>']); - this.scanCodeTextMap.set(56, ['/', '?']); - this.scanCodeTextMap.set(57, ['Caps Lock']); - this.scanCodeTextMap.set(58, ['F1']); - this.scanCodeTextMap.set(59, ['F2']); - this.scanCodeTextMap.set(60, ['F3']); - this.scanCodeTextMap.set(61, ['F4']); - this.scanCodeTextMap.set(62, ['F5']); - this.scanCodeTextMap.set(63, ['F6']); - this.scanCodeTextMap.set(64, ['F7']); - this.scanCodeTextMap.set(65, ['F8']); - this.scanCodeTextMap.set(66, ['F9']); - this.scanCodeTextMap.set(67, ['F10']); - this.scanCodeTextMap.set(68, ['F11']); - this.scanCodeTextMap.set(69, ['F12']); - this.scanCodeTextMap.set(70, ['PrtScn']); - this.scanCodeTextMap.set(71, ['Scroll Lock']); - this.scanCodeTextMap.set(72, ['Pause']); - this.scanCodeTextMap.set(73, ['Insert']); - this.scanCodeTextMap.set(74, ['Home']); - this.scanCodeTextMap.set(75, ['PgUp']); - this.scanCodeTextMap.set(76, ['Del']); - this.scanCodeTextMap.set(77, ['End']); - this.scanCodeTextMap.set(78, ['PgDn']); - this.scanCodeTextMap.set(79, ['Right Arrow']); - this.scanCodeTextMap.set(80, ['Left Arrow']); - this.scanCodeTextMap.set(81, ['Down Arrow']); - this.scanCodeTextMap.set(82, ['Up Arrow']); - this.scanCodeTextMap.set(83, ['Num Lock']); - this.scanCodeTextMap.set(84, ['/']); - this.scanCodeTextMap.set(85, ['*']); - this.scanCodeTextMap.set(86, ['-']); - this.scanCodeTextMap.set(87, ['+']); - this.scanCodeTextMap.set(88, ['Enter']); - this.scanCodeTextMap.set(89, ['end', '1']); - this.scanCodeTextMap.set(90, ['2']); - this.scanCodeTextMap.set(91, ['pgdn', '3']); - this.scanCodeTextMap.set(92, ['4']); - this.scanCodeTextMap.set(93, ['5']); - this.scanCodeTextMap.set(94, ['6']); - this.scanCodeTextMap.set(95, ['home', '7']); - this.scanCodeTextMap.set(96, ['8']); - this.scanCodeTextMap.set(97, ['pgup', '9']); - this.scanCodeTextMap.set(98, ['Insert', '0']); - this.scanCodeTextMap.set(99, ['Del', '.']); - this.scanCodeTextMap.set(104, ['F13']); - this.scanCodeTextMap.set(105, ['F14']); - this.scanCodeTextMap.set(106, ['F15']); - this.scanCodeTextMap.set(107, ['F16']); - this.scanCodeTextMap.set(108, ['F17']); - this.scanCodeTextMap.set(109, ['F18']); - this.scanCodeTextMap.set(110, ['F19']); - this.scanCodeTextMap.set(111, ['F20']); - this.scanCodeTextMap.set(112, ['F21']); - this.scanCodeTextMap.set(113, ['F22']); - this.scanCodeTextMap.set(114, ['F23']); - this.scanCodeTextMap.set(115, ['F24']); - this.scanCodeTextMap.set(118, ['Menu']); - this.scanCodeTextMap.set(176, ['00']); - this.scanCodeTextMap.set(177, ['000']); - this.scanCodeTextMap.set(232, ['Play']); - this.scanCodeTextMap.set(233, ['Stop']); - this.scanCodeTextMap.set(234, ['Prev']); - this.scanCodeTextMap.set(235, ['Next']); - this.scanCodeTextMap.set(236, ['Eject']); - this.scanCodeTextMap.set(237, ['Vol +']); - this.scanCodeTextMap.set(238, ['Vol -']); - this.scanCodeTextMap.set(239, ['Mute']); - this.scanCodeTextMap.set(240, ['WWW']); - this.scanCodeTextMap.set(241, ['Bckwrd']); - this.scanCodeTextMap.set(242, ['Frwrd']); - this.scanCodeTextMap.set(243, ['Cancel']); + this.basicScanCodeTextMap = new Map(); + this.basicScanCodeTextMap.set(4, ['A']); + this.basicScanCodeTextMap.set(5, ['B']); + this.basicScanCodeTextMap.set(6, ['C']); + this.basicScanCodeTextMap.set(7, ['D']); + this.basicScanCodeTextMap.set(8, ['E']); + this.basicScanCodeTextMap.set(9, ['F']); + this.basicScanCodeTextMap.set(10, ['G']); + this.basicScanCodeTextMap.set(11, ['H']); + this.basicScanCodeTextMap.set(12, ['I']); + this.basicScanCodeTextMap.set(13, ['J']); + this.basicScanCodeTextMap.set(14, ['K']); + this.basicScanCodeTextMap.set(15, ['L']); + this.basicScanCodeTextMap.set(16, ['M']); + this.basicScanCodeTextMap.set(17, ['N']); + this.basicScanCodeTextMap.set(18, ['O']); + this.basicScanCodeTextMap.set(19, ['P']); + this.basicScanCodeTextMap.set(20, ['Q']); + this.basicScanCodeTextMap.set(21, ['R']); + this.basicScanCodeTextMap.set(22, ['S']); + this.basicScanCodeTextMap.set(23, ['T']); + this.basicScanCodeTextMap.set(24, ['U']); + this.basicScanCodeTextMap.set(25, ['V']); + this.basicScanCodeTextMap.set(26, ['W']); + this.basicScanCodeTextMap.set(27, ['X']); + this.basicScanCodeTextMap.set(28, ['Y']); + this.basicScanCodeTextMap.set(29, ['Z']); + this.basicScanCodeTextMap.set(30, ['1', '!']); + this.basicScanCodeTextMap.set(31, ['2', '@']); + this.basicScanCodeTextMap.set(32, ['3', '#']); + this.basicScanCodeTextMap.set(33, ['4', '$']); + this.basicScanCodeTextMap.set(34, ['5', '%']); + this.basicScanCodeTextMap.set(35, ['6', '^']); + this.basicScanCodeTextMap.set(36, ['7', '&']); + this.basicScanCodeTextMap.set(37, ['8', '*']); + this.basicScanCodeTextMap.set(38, ['9', '(']); + this.basicScanCodeTextMap.set(39, ['0', ')']); + this.basicScanCodeTextMap.set(40, ['Enter']); + this.basicScanCodeTextMap.set(41, ['Esc']); + this.basicScanCodeTextMap.set(42, ['Backspace']); + this.basicScanCodeTextMap.set(43, ['Tab']); + this.basicScanCodeTextMap.set(44, ['Space']); + this.basicScanCodeTextMap.set(45, ['-', '_']); + this.basicScanCodeTextMap.set(46, ['=', '+']); + this.basicScanCodeTextMap.set(47, ['[', '{']); + this.basicScanCodeTextMap.set(48, [']', '}']); + this.basicScanCodeTextMap.set(49, ['\\', '|']); + this.basicScanCodeTextMap.set(50, ['NON_US_HASHMARK_AND_TILDE']); + this.basicScanCodeTextMap.set(51, [';', ':']); + this.basicScanCodeTextMap.set(52, ['\'', '"']); + this.basicScanCodeTextMap.set(53, ['`', '~']); + this.basicScanCodeTextMap.set(54, [',', '<']); + this.basicScanCodeTextMap.set(55, ['.', '>']); + this.basicScanCodeTextMap.set(56, ['/', '?']); + this.basicScanCodeTextMap.set(57, ['Caps Lock']); + this.basicScanCodeTextMap.set(58, ['F1']); + this.basicScanCodeTextMap.set(59, ['F2']); + this.basicScanCodeTextMap.set(60, ['F3']); + this.basicScanCodeTextMap.set(61, ['F4']); + this.basicScanCodeTextMap.set(62, ['F5']); + this.basicScanCodeTextMap.set(63, ['F6']); + this.basicScanCodeTextMap.set(64, ['F7']); + this.basicScanCodeTextMap.set(65, ['F8']); + this.basicScanCodeTextMap.set(66, ['F9']); + this.basicScanCodeTextMap.set(67, ['F10']); + this.basicScanCodeTextMap.set(68, ['F11']); + this.basicScanCodeTextMap.set(69, ['F12']); + this.basicScanCodeTextMap.set(70, ['PrtScn']); + this.basicScanCodeTextMap.set(71, ['Scroll Lock']); + this.basicScanCodeTextMap.set(72, ['Pause']); + this.basicScanCodeTextMap.set(73, ['Insert']); + this.basicScanCodeTextMap.set(74, ['Home']); + this.basicScanCodeTextMap.set(75, ['PgUp']); + this.basicScanCodeTextMap.set(76, ['Del']); + this.basicScanCodeTextMap.set(77, ['End']); + this.basicScanCodeTextMap.set(78, ['PgDn']); + this.basicScanCodeTextMap.set(79, ['Right Arrow']); + this.basicScanCodeTextMap.set(80, ['Left Arrow']); + this.basicScanCodeTextMap.set(81, ['Down Arrow']); + this.basicScanCodeTextMap.set(82, ['Up Arrow']); + this.basicScanCodeTextMap.set(83, ['Num Lock']); + this.basicScanCodeTextMap.set(84, ['/']); + this.basicScanCodeTextMap.set(85, ['*']); + this.basicScanCodeTextMap.set(86, ['-']); + this.basicScanCodeTextMap.set(87, ['+']); + this.basicScanCodeTextMap.set(88, ['Enter']); + this.basicScanCodeTextMap.set(89, ['end', '1']); + this.basicScanCodeTextMap.set(90, ['2']); + this.basicScanCodeTextMap.set(91, ['pgdn', '3']); + this.basicScanCodeTextMap.set(92, ['4']); + this.basicScanCodeTextMap.set(93, ['5']); + this.basicScanCodeTextMap.set(94, ['6']); + this.basicScanCodeTextMap.set(95, ['home', '7']); + this.basicScanCodeTextMap.set(96, ['8']); + this.basicScanCodeTextMap.set(97, ['pgup', '9']); + this.basicScanCodeTextMap.set(98, ['Insert', '0']); + this.basicScanCodeTextMap.set(99, ['Del', '.']); + this.basicScanCodeTextMap.set(104, ['F13']); + this.basicScanCodeTextMap.set(105, ['F14']); + this.basicScanCodeTextMap.set(106, ['F15']); + this.basicScanCodeTextMap.set(107, ['F16']); + this.basicScanCodeTextMap.set(108, ['F17']); + this.basicScanCodeTextMap.set(109, ['F18']); + this.basicScanCodeTextMap.set(110, ['F19']); + this.basicScanCodeTextMap.set(111, ['F20']); + this.basicScanCodeTextMap.set(112, ['F21']); + this.basicScanCodeTextMap.set(113, ['F22']); + this.basicScanCodeTextMap.set(114, ['F23']); + this.basicScanCodeTextMap.set(115, ['F24']); + this.basicScanCodeTextMap.set(118, ['Menu']); + this.basicScanCodeTextMap.set(176, ['00']); + this.basicScanCodeTextMap.set(177, ['000']); + this.mediaScanCodeTextMap = new Map(); + this.mediaScanCodeTextMap.set(138, ['WWW']); + this.mediaScanCodeTextMap.set(176, ['Play']); + this.mediaScanCodeTextMap.set(177, ['Pause']); + this.mediaScanCodeTextMap.set(181, ['Next']); + this.mediaScanCodeTextMap.set(182, ['Prev']); + this.mediaScanCodeTextMap.set(183, ['Stop']); + this.mediaScanCodeTextMap.set(184, ['Eject']); + this.mediaScanCodeTextMap.set(204, ['Eject', 'Stop']); + this.mediaScanCodeTextMap.set(205, ['Pause', 'Play']); + this.mediaScanCodeTextMap.set(226, ['Mute']); + this.mediaScanCodeTextMap.set(233, ['Vol +']); + this.mediaScanCodeTextMap.set(234, ['Vol -']); + this.mediaScanCodeTextMap.set(406, ['Launch Web Browser']); + this.mediaScanCodeTextMap.set(394, ['Launch Email Client']); + this.mediaScanCodeTextMap.set(402, ['Launch Calculator']); + this.sytemScanCodeTextMap = new Map(); + this.sytemScanCodeTextMap.set(129, ['Power Down']); + this.sytemScanCodeTextMap.set(130, ['Sleep']); + this.sytemScanCodeTextMap.set(131, ['Wake Up']); }; - MapperService.prototype.initScanCodeFileName = function () { - this.scanCodeFileName = new Map(); - this.scanCodeFileName.set(79, 'icon-kbd__mod--arrow-right'); - this.scanCodeFileName.set(80, 'icon-kbd__mod--arrow-left'); - this.scanCodeFileName.set(81, 'icon-kbd__mod--arrow-down'); - this.scanCodeFileName.set(82, 'icon-kbd__mod--arrow-up'); - this.scanCodeFileName.set(118, 'icon-kbd__mod--menu'); + MapperService.prototype.initScancodeIcons = function () { + this.basicScancodeIcons = new Map(); + this.basicScancodeIcons.set(79, 'icon-kbd__mod--arrow-right'); + this.basicScancodeIcons.set(80, 'icon-kbd__mod--arrow-left'); + this.basicScancodeIcons.set(81, 'icon-kbd__mod--arrow-down'); + this.basicScancodeIcons.set(82, 'icon-kbd__mod--arrow-up'); + this.basicScancodeIcons.set(118, 'icon-kbd__mod--menu'); + this.mediaScancodeIcons = new Map(); + this.mediaScancodeIcons.set(138, 'icon-kbd__fn--browser'); + this.mediaScancodeIcons.set(176, 'icon-kbd__media--play'); + this.mediaScancodeIcons.set(177, 'icon-kbd__media--pause'); + this.mediaScancodeIcons.set(181, 'icon-kbd__media--next'); + this.mediaScancodeIcons.set(182, 'icon-kbd__media--prev'); + this.mediaScancodeIcons.set(184, 'icon-kbd__fn--eject'); + this.mediaScancodeIcons.set(226, 'icon-kbd__media--mute'); + this.mediaScancodeIcons.set(233, 'icon-kbd__media--vol-up'); + this.mediaScancodeIcons.set(234, 'icon-kbd__media--vol-down'); + this.mediaScancodeIcons.set(406, 'icon-kbd__media--web-browser'); + this.mediaScancodeIcons.set(394, 'icon-kbd__media--email-client'); + this.mediaScancodeIcons.set(402, 'icon-kbd__media--calculator'); + this.systemScancodeIcons = new Map(); + this.systemScancodeIcons.set(129, 'icon-kbd__system_power_down'); + this.systemScancodeIcons.set(130, 'icon-kbd__system_sleep'); + this.systemScancodeIcons.set(131, 'icon-kbd__system_wake_up'); }; MapperService.prototype.initNameToFileNames = function () { this.nameToFileName = new Map(); @@ -319,29 +400,1271 @@ exports.MapperService = MapperService; /***/ }), +/* 23 */, +/* 24 */, +/* 25 */, +/* 26 */, +/* 27 */, +/* 28 */, +/* 29 */, +/* 30 */, +/* 31 */, /* 32 */, -/* 33 */, -/* 34 */, -/* 35 */, -/* 36 */, -/* 37 */, -/* 38 */, -/* 39 */, -/* 40 */, -/* 41 */, -/* 42 */, -/* 43 */, -/* 44 */, -/* 45 */, -/* 46 */, -/* 47 */, -/* 48 */, -/* 49 */, -/* 50 */, -/* 51 */, -/* 52 */, -/* 53 */, -/* 54 */ +/* 33 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationBuilder", function() { return AnimationBuilder; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFactory", function() { return AnimationFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AUTO_STYLE", function() { return AUTO_STYLE; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animate", function() { return animate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animateChild", function() { return animateChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animation", function() { return animation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "group", function() { return group; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return keyframes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "query", function() { return query; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequence", function() { return sequence; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stagger", function() { return stagger; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "state", function() { return state; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "style", function() { return style; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return transition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return trigger; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useAnimation", function() { return useAnimation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoopAnimationPlayer", function() { return NoopAnimationPlayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵAnimationGroupPlayer", function() { return AnimationGroupPlayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵPRE_STYLE", function() { return ɵPRE_STYLE; }); +/** + * @license Angular v4.2.6 + * (c) 2010-2017 Google, Inc. https://angular.io/ + * License: MIT + */ +/** + * @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 + */ +/** + * AnimationBuilder is an injectable service that is available when the {\@link + * BrowserAnimationsModule BrowserAnimationsModule} or {\@link NoopAnimationsModule + * NoopAnimationsModule} modules are used within an application. + * + * The purpose if this service is to produce an animation sequence programmatically within an + * angular component or directive. + * + * Programmatic animations are first built and then a player is created when the build animation is + * attached to an element. + * + * ```ts + * // remember to include the BrowserAnimationsModule module for this to work... + * import {AnimationBuilder} from '\@angular/animations'; + * + * class MyCmp { + * constructor(private _builder: AnimationBuilder) {} + * + * makeAnimation(element: any) { + * // first build the animation + * const myAnimation = this._builder.build([ + * style({ width: 0 }), + * animate(1000, style({ width: '100px' })) + * ]); + * + * // then create a player from it + * const player = myAnimation.create(element); + * + * player.play(); + * } + * } + * ``` + * + * When an animation is built an instance of {\@link AnimationFactory AnimationFactory} will be + * returned. Using that an {\@link AnimationPlayer AnimationPlayer} can be created which can then be + * used to start the animation. + * + * \@experimental Animation support is experimental. + * @abstract + */ +var AnimationBuilder = (function () { + function AnimationBuilder() { + } + /** + * @abstract + * @param {?} animation + * @return {?} + */ + AnimationBuilder.prototype.build = function (animation) { }; + return AnimationBuilder; +}()); +/** + * An instance of `AnimationFactory` is returned from {\@link AnimationBuilder#build + * AnimationBuilder.build}. + * + * \@experimental Animation support is experimental. + * @abstract + */ +var AnimationFactory = (function () { + function AnimationFactory() { + } + /** + * @abstract + * @param {?} element + * @param {?=} options + * @return {?} + */ + AnimationFactory.prototype.create = function (element, options) { }; + return AnimationFactory; +}()); +/** + * \@experimental Animation support is experimental. + */ +var AUTO_STYLE = '*'; +/** + * `trigger` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `trigger` Creates an animation trigger which will a list of {\@link state state} and {\@link + * transition transition} entries that will be evaluated when the expression bound to the trigger + * changes. + * + * Triggers are registered within the component annotation data under the {\@link + * Component#animations animations section}. An animation trigger can be placed on an element + * within a template by referencing the name of the trigger followed by the expression value that the + * trigger is bound to (in the form of `[\@triggerName]="expression"`. + * + * ### Usage + * + * `trigger` will create an animation trigger reference based on the provided `name` value. The + * provided `animation` value is expected to be an array consisting of {\@link state state} and {\@link + * transition transition} declarations. + * + * ```typescript + * \@Component({ + * selector: 'my-component', + * templateUrl: 'my-component-tpl.html', + * animations: [ + * trigger("myAnimationTrigger", [ + * state(...), + * state(...), + * transition(...), + * transition(...) + * ]) + * ] + * }) + * class MyComponent { + * myStatusExp = "something"; + * } + * ``` + * + * The template associated with this component will make use of the `myAnimationTrigger` animation + * trigger by binding to an element within its template code. + * + * ```html + * + *
...
+ * tools/gulp-tasks/validate-commit-message.js ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} name + * @param {?} definitions + * @return {?} + */ +function trigger(name, definitions) { + return { type: 7 /* Trigger */, name: name, definitions: definitions, options: {} }; +} +/** + * `animate` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `animate` specifies an animation step that will apply the provided `styles` data for a given + * amount of time based on the provided `timing` expression value. Calls to `animate` are expected + * to be used within {\@link sequence an animation sequence}, {\@link group group}, or {\@link + * transition transition}. + * + * ### Usage + * + * The `animate` function accepts two input parameters: `timing` and `styles`: + * + * - `timing` is a string based value that can be a combination of a duration with optional delay + * and easing values. The format for the expression breaks down to `duration delay easing` + * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000, + * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the + * `duration` value in millisecond form. + * - `styles` is the style input data which can either be a call to {\@link style style} or {\@link + * keyframes keyframes}. If left empty then the styles from the destination state will be collected + * and used (this is useful when describing an animation step that will complete an animation by + * {\@link transition#the-final-animate-call animating to the final state}). + * + * ```typescript + * // various functions for specifying timing data + * animate(500, style(...)) + * animate("1s", style(...)) + * animate("100ms 0.5s", style(...)) + * animate("5s ease", style(...)) + * animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...)) + * + * // either style() of keyframes() can be used + * animate(500, style({ background: "red" })) + * animate(500, keyframes([ + * style({ background: "blue" })), + * style({ background: "red" })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} timings + * @param {?=} styles + * @return {?} + */ +function animate(timings, styles) { + if (styles === void 0) { styles = null; } + return { type: 4 /* Animate */, styles: styles, timings: timings }; +} +/** + * `group` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are + * useful when a series of styles must be animated/closed off at different starting/ending times. + * + * The `group` function can either be used within a {\@link sequence sequence} or a {\@link transition + * transition} and it will only continue to the next instruction once all of the inner animation + * steps have completed. + * + * ### Usage + * + * The `steps` data that is passed into the `group` animation function can either consist of {\@link + * style style} or {\@link animate animate} function calls. Each call to `style()` or `animate()` + * within a group will be executed instantly (use {\@link keyframes keyframes} or a {\@link + * animate#usage animate() with a delay value} to offset styles to be applied at a later time). + * + * ```typescript + * group([ + * animate("1s", { background: "black" })) + * animate("2s", { color: "white" })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function group(steps, options) { + if (options === void 0) { options = null; } + return { type: 3 /* Group */, steps: steps, options: options }; +} +/** + * `sequence` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by + * default when an array is passed as animation data into {\@link transition transition}.) + * + * The `sequence` function can either be used within a {\@link group group} or a {\@link transition + * transition} and it will only continue to the next instruction once each of the inner animation + * steps have completed. + * + * To perform animation styling in parallel with other animation steps then have a look at the + * {\@link group group} animation function. + * + * ### Usage + * + * The `steps` data that is passed into the `sequence` animation function can either consist of + * {\@link style style} or {\@link animate animate} function calls. A call to `style()` will apply the + * provided styling data immediately while a call to `animate()` will apply its styling data over a + * given time depending on its timing data. + * + * ```typescript + * sequence([ + * style({ opacity: 0 })), + * animate("1s", { opacity: 1 })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function sequence(steps, options) { + if (options === void 0) { options = null; } + return { type: 2 /* Sequence */, steps: steps, options: options }; +} +/** + * `style` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `style` declares a key/value object containing CSS properties/styles that can then be used for + * {\@link state animation states}, within an {\@link sequence animation sequence}, or as styling data + * for both {\@link animate animate} and {\@link keyframes keyframes}. + * + * ### Usage + * + * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs + * to be defined. + * + * ```typescript + * // string values are used for css properties + * style({ background: "red", color: "blue" }) + * + * // numerical (pixel) values are also supported + * style({ width: 100, height: 0 }) + * ``` + * + * #### Auto-styles (using `*`) + * + * When an asterix (`*`) character is used as a value then it will be detected from the element + * being animated and applied as animation data when the animation starts. + * + * This feature proves useful for a state depending on layout and/or environment factors; in such + * cases the styles are calculated just before the animation starts. + * + * ```typescript + * // the steps below will animate from 0 to the + * // actual height of the element + * style({ height: 0 }), + * animate("1s", style({ height: "*" })) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} tokens + * @return {?} + */ +function style(tokens) { + return { type: 6 /* Style */, styles: tokens, offset: null }; +} +/** + * `state` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `state` declares an animation state within the given trigger. When a state is active within a + * component then its associated styles will persist on the element that the trigger is attached to + * (even when the animation ends). + * + * To animate between states, have a look at the animation {\@link transition transition} DSL + * function. To register states to an animation trigger please have a look at the {\@link trigger + * trigger} function. + * + * #### The `void` state + * + * The `void` state value is a reserved word that angular uses to determine when the element is not + * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the + * associated element is void). + * + * #### The `*` (default) state + * + * The `*` state (when styled) is a fallback state that will be used if the state that is being + * animated is not declared within the trigger. + * + * ### Usage + * + * `state` will declare an animation state with its associated styles + * within the given trigger. + * + * - `stateNameExpr` can be one or more state names separated by commas. + * - `styles` refers to the {\@link style styling data} that will be persisted on the element once + * the state has been reached. + * + * ```typescript + * // "void" is a reserved name for a state and is used to represent + * // the state in which an element is detached from from the application. + * state("void", style({ height: 0 })) + * + * // user-defined states + * state("closed", style({ height: 0 })) + * state("open, visible", style({ height: "*" })) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} name + * @param {?} styles + * @return {?} + */ +function state(name, styles) { + return { type: 0 /* State */, name: name, styles: styles }; +} +/** + * `keyframes` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `keyframes` specifies a collection of {\@link style style} entries each optionally characterized + * by an `offset` value. + * + * ### Usage + * + * The `keyframes` animation function is designed to be used alongside the {\@link animate animate} + * animation function. Instead of applying animations from where they are currently to their + * destination, keyframes can describe how each style entry is applied and at what point within the + * animation arc (much like CSS Keyframe Animations do). + * + * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what + * percentage of the animate time the styles will be applied. + * + * ```typescript + * // the provided offset values describe when each backgroundColor value is applied. + * animate("5s", keyframes([ + * style({ backgroundColor: "red", offset: 0 }), + * style({ backgroundColor: "blue", offset: 0.2 }), + * style({ backgroundColor: "orange", offset: 0.3 }), + * style({ backgroundColor: "black", offset: 1 }) + * ])) + * ``` + * + * Alternatively, if there are no `offset` values used within the style entries then the offsets + * will be calculated automatically. + * + * ```typescript + * animate("5s", keyframes([ + * style({ backgroundColor: "red" }) // offset = 0 + * style({ backgroundColor: "blue" }) // offset = 0.33 + * style({ backgroundColor: "orange" }) // offset = 0.66 + * style({ backgroundColor: "black" }) // offset = 1 + * ])) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @return {?} + */ +function keyframes(steps) { + return { type: 5 /* Keyframes */, steps: steps }; +} +/** + * `transition` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `transition` declares the {\@link sequence sequence of animation steps} that will be run when the + * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 => + * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting + * and/or ending state). + * + * A function can also be provided as the `stateChangeExpr` argument for a transition and this + * function will be executed each time a state change occurs. If the value returned within the + * function is true then the associated animation will be run. + * + * Animation transitions are placed within an {\@link trigger animation trigger}. For an transition + * to animate to a state value and persist its styles then one or more {\@link state animation + * states} is expected to be defined. + * + * ### Usage + * + * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on + * what the previous state is and what the current state has become. In other words, if a transition + * is defined that matches the old/current state criteria then the associated animation will be + * triggered. + * + * ```typescript + * // all transition/state changes are defined within an animation trigger + * trigger("myAnimationTrigger", [ + * // if a state is defined then its styles will be persisted when the + * // animation has fully completed itself + * state("on", style({ background: "green" })), + * state("off", style({ background: "grey" })), + * + * // a transition animation that will be kicked off when the state value + * // bound to "myAnimationTrigger" changes from "on" to "off" + * transition("on => off", animate(500)), + * + * // it is also possible to do run the same animation for both directions + * transition("on <=> off", animate(500)), + * + * // or to define multiple states pairs separated by commas + * transition("on => off, off => void", animate(500)), + * + * // this is a catch-all state change for when an element is inserted into + * // the page and the destination state is unknown + * transition("void => *", [ + * style({ opacity: 0 }), + * animate(500) + * ]), + * + * // this will capture a state change between any states + * transition("* => *", animate("1s 0s")), + * + * // you can also go full out and include a function + * transition((fromState, toState) => { + * // when `true` then it will allow the animation below to be invoked + * return fromState == "off" && toState == "on"; + * }, animate("1s 0s")) + * ]) + * ``` + * + * The template associated with this component will make use of the `myAnimationTrigger` animation + * trigger by binding to an element within its template code. + * + * ```html + * + *
...
+ * ``` + * + * #### The final `animate` call + * + * If the final step within the transition steps is a call to `animate()` that **only** uses a + * timing value with **no style data** then it will be automatically used as the final animation arc + * for the element to animate itself to the final state. This involves an automatic mix of + * adding/removing CSS styles so that the element will be in the exact state it should be for the + * applied state to be presented correctly. + * + * ``` + * // start off by hiding the element, but make sure that it animates properly to whatever state + * // is currently active for "myAnimationTrigger" + * transition("void => *", [ + * style({ opacity: 0 }), + * animate(500) + * ]) + * ``` + * + * ### Transition Aliases (`:enter` and `:leave`) + * + * Given that enter (insertion) and leave (removal) animations are so common, the `transition` + * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `* + * => void` state changes. + * + * ``` + * transition(":enter", [ + * style({ opacity: 0 }), + * animate(500, style({ opacity: 1 })) + * ]) + * transition(":leave", [ + * animate(500, style({ opacity: 0 })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} stateChangeExpr + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function transition(stateChangeExpr, steps, options) { + if (options === void 0) { options = null; } + return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options: options }; +} +/** + * `animation` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. + * + * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later + * invoked in another animation or sequence. Reusable animations are designed to make use of + * animation parameters and the produced animation can be used via the `useAnimation` method. + * + * ``` + * var fadeAnimation = animation([ + * style({ opacity: '{{ start }}' }), + * animate('{{ time }}', + * style({ opacity: '{{ end }}')) + * ], { params: { time: '1000ms', start: 0, end: 1 }}); + * ``` + * + * If parameters are attached to an animation then they act as **default parameter values**. When an + * animation is invoked via `useAnimation` then parameter values are allowed to be passed in + * directly. If any of the passed in parameter values are missing then the default values will be + * used. + * + * ``` + * useAnimation(fadeAnimation, { + * params: { + * time: '2s', + * start: 1, + * end: 0 + * } + * }) + * ``` + * + * If one or more parameter values are missing before animated then an error will be thrown. + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function animation(steps, options) { + if (options === void 0) { options = null; } + return { type: 8 /* Reference */, animation: steps, options: options }; +} +/** + * `animateChild` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. It works by allowing a queried element to execute its own + * animation within the animation sequence. + * + * Each time an animation is triggered in angular, the parent animation + * will always get priority and any child animations will be blocked. In order + * for a child animation to run, the parent animation must query each of the elements + * containing child animations and then allow the animations to run using `animateChild`. + * + * The example HTML code below shows both parent and child elements that have animation + * triggers that will execute at the same time. + * + * ```html + * + * + *
+ * + *
+ *
Hello
+ *
+ * one + *
+ *
+ * two + *
+ *
+ * three + *
+ *
+ * ``` + * + * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate + * because it has priority. However, using `query` and `animateChild` each of the inner animations + * can also fire: + * + * ```ts + * // parent-child.component.ts + * import {trigger, transition, animate, style, query, animateChild} from '\@angular/animations'; + * \@Component({ + * selector: 'parent-child-component', + * animations: [ + * trigger('parentAnimation', [ + * transition('false => true', [ + * query('header', [ + * style({ opacity: 0 }), + * animate(500, style({ opacity: 1 })) + * ]), + * query('\@childAnimation', [ + * animateChild() + * ]) + * ]) + * ]), + * trigger('childAnimation', [ + * transition('false => true', [ + * style({ opacity: 0 }), + * animate(500, style({ opacity: 1 })) + * ]) + * ]) + * ] + * }) + * class ParentChildCmp { + * exp: boolean = false; + * } + * ``` + * + * In the animation code above, when the `parentAnimation` transition kicks off it first queries to + * find the header element and fades it in. It then finds each of the sub elements that contain the + * `\@childAnimation` trigger and then allows for their animations to fire. + * + * This example can be further extended by using stagger: + * + * ```ts + * query('\@childAnimation', stagger(100, [ + * animateChild() + * ])) + * ``` + * + * Now each of the sub animations start off with respect to the `100ms` staggering step. + * + * ## The first frame of child animations + * When sub animations are executed using `animateChild` the animation engine will always apply the + * first frame of every sub animation immediately at the start of the animation sequence. This way + * the parent animation does not need to set any initial styling data on the sub elements before the + * sub animations kick off. + * + * In the example above the first frame of the `childAnimation`'s `false => true` transition + * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation` + * animation transition sequence starts. Only then when the `\@childAnimation` is queried and called + * with `animateChild` will it then animate to its destination of `opacity: 1`. + * + * Note that this feature designed to be used alongside {\@link query query()} and it will only work + * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes + * and transitions are not handled by this API). + * + * \@experimental Animation support is experimental. + * @param {?=} options + * @return {?} + */ +function animateChild(options) { + if (options === void 0) { options = null; } + return { type: 9 /* AnimateChild */, options: options }; +} +/** + * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. It is used to kick off a reusable animation that is created using {\@link + * animation animation()}. + * + * \@experimental Animation support is experimental. + * @param {?} animation + * @param {?=} options + * @return {?} + */ +function useAnimation(animation, options) { + if (options === void 0) { options = null; } + return { type: 10 /* AnimateRef */, animation: animation, options: options }; +} +/** + * `query` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. + * + * query() is used to find one or more inner elements within the current element that is + * being animated within the sequence. The provided animation steps are applied + * to the queried element (by default, an array is provided, then this will be + * treated as an animation sequence). + * + * ### Usage + * + * query() is designed to collect mutiple elements and works internally by using + * `element.querySelectorAll`. An additional options object can be provided which + * can be used to limit the total amount of items to be collected. + * + * ```js + * query('div', [ + * animate(...), + * animate(...) + * ], { limit: 1 }) + * ``` + * + * query(), by default, will throw an error when zero items are found. If a query + * has the `optional` flag set to true then this error will be ignored. + * + * ```js + * query('.some-element-that-may-not-be-there', [ + * animate(...), + * animate(...) + * ], { optional: true }) + * ``` + * + * ### Special Selector Values + * + * The selector value within a query can collect elements that contain angular-specific + * characteristics + * using special pseudo-selectors tokens. + * + * These include: + * + * - Querying for newly inserted/removed elements using `query(":enter")`/`query(":leave")` + * - Querying all currently animating elements using `query(":animating")` + * - Querying elements that contain an animation trigger using `query("\@triggerName")` + * - Querying all elements that contain an animation triggers using `query("\@*")` + * - Including the current element into the animation sequence using `query(":self")` + * + * + * Each of these pseudo-selector tokens can be merged together into a combined query selector + * string: + * + * ``` + * query(':self, .record:enter, .record:leave, \@subTrigger', [...]) + * ``` + * + * ### Demo + * + * ``` + * \@Component({ + * selector: 'inner', + * template: ` + *
+ *

Title

+ *
+ * Blah blah blah + *
+ *
+ * `, + * animations: [ + * trigger('queryAnimation', [ + * transition('* => goAnimate', [ + * // hide the inner elements + * query('h1', style({ opacity: 0 })), + * query('.content', style({ opacity: 0 })), + * + * // animate the inner elements in, one by one + * query('h1', animate(1000, style({ opacity: 1 })), + * query('.content', animate(1000, style({ opacity: 1 })), + * ]) + * ]) + * ] + * }) + * class Cmp { + * exp = ''; + * + * goAnimate() { + * this.exp = 'goAnimate'; + * } + * } + * ``` + * + * \@experimental Animation support is experimental. + * @param {?} selector + * @param {?} animation + * @param {?=} options + * @return {?} + */ +function query(selector, animation, options) { + if (options === void 0) { options = null; } + return { type: 11 /* Query */, selector: selector, animation: animation, options: options }; +} +/** + * `stagger` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. It is designed to be used inside of an animation {\@link query query()} + * and works by issuing a timing gap between after each queried item is animated. + * + * ### Usage + * + * In the example below there is a container element that wraps a list of items stamped out + * by an ngFor. The container element contains an animation trigger that will later be set + * to query for each of the inner items. + * + * ```html + * + * + *
+ *
+ *
+ * {{ item }} + *
+ *
+ * ``` + * + * The component code for this looks as such: + * + * ```ts + * import {trigger, transition, style, animate, query, stagger} from '\@angular/animations'; + * \@Component({ + * templateUrl: 'list.component.html', + * animations: [ + * trigger('listAnimation', [ + * //... + * ]) + * ] + * }) + * class ListComponent { + * items = []; + * + * showItems() { + * this.items = [0,1,2,3,4]; + * } + * + * hideItems() { + * this.items = []; + * } + * + * toggle() { + * this.items.length ? this.hideItems() : this.showItems(); + * } + * } + * ``` + * + * And now for the animation trigger code: + * + * ```ts + * trigger('listAnimation', [ + * transition('* => *', [ // each time the binding value changes + * query(':leave', [ + * stagger(100, [ + * animate('0.5s', style({ opacity: 0 })) + * ]) + * ]), + * query(':enter', [ + * style({ opacity: 0 }), + * stagger(100, [ + * animate('0.5s', style({ opacity: 1 })) + * ]) + * ]) + * ]) + * ]) + * ``` + * + * Now each time the items are added/removed then either the opacity + * fade-in animation will run or each removed item will be faded out. + * When either of these animations occur then a stagger effect will be + * applied after each item's animation is started. + * + * \@experimental Animation support is experimental. + * @param {?} timings + * @param {?} animation + * @return {?} + */ +function stagger(timings, animation) { + return { type: 12 /* Stagger */, timings: timings, animation: animation }; +} +/** + * @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 + * @param {?} cb + * @return {?} + */ +function scheduleMicroTask(cb) { + Promise.resolve(null).then(cb); +} +/** + * @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 NoopAnimationPlayer = (function () { + function NoopAnimationPlayer() { + this._onDoneFns = []; + this._onStartFns = []; + this._onDestroyFns = []; + this._started = false; + this._destroyed = false; + this._finished = false; + this.parentPlayer = null; + this.totalTime = 0; + } + /** + * @return {?} + */ + NoopAnimationPlayer.prototype._onFinish = function () { + if (!this._finished) { + this._finished = true; + this._onDoneFns.forEach(function (fn) { return fn(); }); + this._onDoneFns = []; + } + }; + /** + * @param {?} fn + * @return {?} + */ + NoopAnimationPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); }; + /** + * @param {?} fn + * @return {?} + */ + NoopAnimationPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); }; + /** + * @param {?} fn + * @return {?} + */ + NoopAnimationPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.hasStarted = function () { return this._started; }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.init = function () { }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.play = function () { + if (!this.hasStarted()) { + this.triggerMicrotask(); + this._onStart(); + } + this._started = true; + }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.triggerMicrotask = function () { + var _this = this; + scheduleMicroTask(function () { return _this._onFinish(); }); + }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype._onStart = function () { + this._onStartFns.forEach(function (fn) { return fn(); }); + this._onStartFns = []; + }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.pause = function () { }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.restart = function () { }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.finish = function () { this._onFinish(); }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.destroy = function () { + if (!this._destroyed) { + this._destroyed = true; + if (!this.hasStarted()) { + this._onStart(); + } + this.finish(); + this._onDestroyFns.forEach(function (fn) { return fn(); }); + this._onDestroyFns = []; + } + }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.reset = function () { }; + /** + * @param {?} p + * @return {?} + */ + NoopAnimationPlayer.prototype.setPosition = function (p) { }; + /** + * @return {?} + */ + NoopAnimationPlayer.prototype.getPosition = function () { return 0; }; + return 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 + */ +var AnimationGroupPlayer = (function () { + /** + * @param {?} _players + */ + function AnimationGroupPlayer(_players) { + var _this = this; + this._players = _players; + this._onDoneFns = []; + this._onStartFns = []; + this._finished = false; + this._started = false; + this._destroyed = false; + this._onDestroyFns = []; + this.parentPlayer = null; + this.totalTime = 0; + var doneCount = 0; + var destroyCount = 0; + var startCount = 0; + var total = this._players.length; + if (total == 0) { + scheduleMicroTask(function () { return _this._onFinish(); }); + } + else { + this._players.forEach(function (player) { + player.parentPlayer = _this; + player.onDone(function () { + if (++doneCount >= total) { + _this._onFinish(); + } + }); + player.onDestroy(function () { + if (++destroyCount >= total) { + _this._onDestroy(); + } + }); + player.onStart(function () { + if (++startCount >= total) { + _this._onStart(); + } + }); + }); + } + this.totalTime = this._players.reduce(function (time, player) { return Math.max(time, player.totalTime); }, 0); + } + /** + * @return {?} + */ + AnimationGroupPlayer.prototype._onFinish = function () { + if (!this._finished) { + this._finished = true; + this._onDoneFns.forEach(function (fn) { return fn(); }); + this._onDoneFns = []; + } + }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.init = function () { this._players.forEach(function (player) { return player.init(); }); }; + /** + * @param {?} fn + * @return {?} + */ + AnimationGroupPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype._onStart = function () { + if (!this.hasStarted()) { + this._onStartFns.forEach(function (fn) { return fn(); }); + this._onStartFns = []; + this._started = true; + } + }; + /** + * @param {?} fn + * @return {?} + */ + AnimationGroupPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); }; + /** + * @param {?} fn + * @return {?} + */ + AnimationGroupPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.hasStarted = function () { return this._started; }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.play = function () { + if (!this.parentPlayer) { + this.init(); + } + this._onStart(); + this._players.forEach(function (player) { return player.play(); }); + }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.pause = function () { this._players.forEach(function (player) { return player.pause(); }); }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.restart = function () { this._players.forEach(function (player) { return player.restart(); }); }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.finish = function () { + this._onFinish(); + this._players.forEach(function (player) { return player.finish(); }); + }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.destroy = function () { this._onDestroy(); }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype._onDestroy = function () { + if (!this._destroyed) { + this._destroyed = true; + this._onFinish(); + this._players.forEach(function (player) { return player.destroy(); }); + this._onDestroyFns.forEach(function (fn) { return fn(); }); + this._onDestroyFns = []; + } + }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.reset = function () { + this._players.forEach(function (player) { return player.reset(); }); + this._destroyed = false; + this._finished = false; + this._started = false; + }; + /** + * @param {?} p + * @return {?} + */ + AnimationGroupPlayer.prototype.setPosition = function (p) { + var /** @type {?} */ timeAtPosition = p * this.totalTime; + this._players.forEach(function (player) { + var /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1; + player.setPosition(position); + }); + }; + /** + * @return {?} + */ + AnimationGroupPlayer.prototype.getPosition = function () { + var /** @type {?} */ min = 0; + this._players.forEach(function (player) { + var /** @type {?} */ p = player.getPosition(); + min = Math.min(p, min); + }); + return min; + }; + Object.defineProperty(AnimationGroupPlayer.prototype, "players", { + /** + * @return {?} + */ + get: function () { return this._players; }, + enumerable: true, + configurable: true + }); + return AnimationGroupPlayer; +}()); +/** + * @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 ɵPRE_STYLE = '!'; +/** + * @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 package. + */ +/** + * @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. + */ +/** + * Generated bundle index. Do not edit. + */ + +//# sourceMappingURL=animations.es5.js.map + + +/***/ }), +/* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -350,39 +1673,41 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1105)); -__export(__webpack_require__(1106)); +__export(__webpack_require__(136)); +__export(__webpack_require__(232)); /***/ }), -/* 55 */ +/* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -__webpack_require__(375); -var Observable_1 = __webpack_require__(1); -__webpack_require__(178); -__webpack_require__(65); -var key_action_1 = __webpack_require__(22); -var Keymap_1 = __webpack_require__(80); -var Macro_1 = __webpack_require__(194); -var UserConfiguration_1 = __webpack_require__(291); -var Layer_1 = __webpack_require__(454); -var Module_1 = __webpack_require__(456); -var actions_1 = __webpack_require__(54); -var initialState = new UserConfiguration_1.UserConfiguration(); -/* tslint:disable:no-switch-case-fall-through */ -// tslint bug: https://github.com/palantir/tslint/issues/1538 +__webpack_require__(234); +var Observable_1 = __webpack_require__(0); +__webpack_require__(54); +__webpack_require__(21); +var key_action_1 = __webpack_require__(14); +var keymap_1 = __webpack_require__(48); +var macro_1 = __webpack_require__(99); +var user_configuration_1 = __webpack_require__(137); +var layer_1 = __webpack_require__(236); +var module_1 = __webpack_require__(237); +var actions_1 = __webpack_require__(34); +var user_config_1 = __webpack_require__(239); +var initialState = new user_configuration_1.UserConfiguration(); function default_1(state, action) { if (state === void 0) { state = initialState; } - var changedUserConfiguration = Object.assign(new UserConfiguration_1.UserConfiguration(), state); + var changedUserConfiguration = Object.assign(new user_configuration_1.UserConfiguration(), state); switch (action.type) { + case user_config_1.ActionTypes.LOAD_USER_CONFIG_SUCCESS: { + return Object.assign(changedUserConfiguration, action.payload); + } case actions_1.KeymapActions.ADD: case actions_1.KeymapActions.DUPLICATE: { - var newKeymap = new Keymap_1.Keymap(action.payload); + var newKeymap = new keymap_1.Keymap(action.payload); newKeymap.abbreviation = generateAbbr(state.keymaps, newKeymap.abbreviation); newKeymap.name = generateName(state.keymaps, newKeymap.name); newKeymap.isDefault = (state.keymaps.length === 0); @@ -394,7 +1719,7 @@ function default_1(state, action) { var name_1 = generateName(state.keymaps, action.payload.name); changedUserConfiguration.keymaps = state.keymaps.map(function (keymap) { if (keymap.abbreviation === action.payload.abbr) { - keymap = Object.assign(new Keymap_1.Keymap(), keymap); + keymap = Object.assign(new keymap_1.Keymap(), keymap); keymap.name = name_1; } return keymap; @@ -405,7 +1730,7 @@ function default_1(state, action) { var abbr_1 = generateAbbr(state.keymaps, action.payload.newAbbr); changedUserConfiguration.keymaps = state.keymaps.map(function (keymap) { if (keymap.abbreviation === action.payload.abbr) { - keymap = Object.assign(new Keymap_1.Keymap(), keymap); + keymap = Object.assign(new keymap_1.Keymap(), keymap); keymap.abbreviation = abbr_1; } else { @@ -417,7 +1742,7 @@ function default_1(state, action) { case actions_1.KeymapActions.SET_DEFAULT: changedUserConfiguration.keymaps = state.keymaps.map(function (keymap) { if (keymap.abbreviation === action.payload || keymap.isDefault) { - keymap = Object.assign(new Keymap_1.Keymap(), keymap); + keymap = Object.assign(new keymap_1.Keymap(), keymap); keymap.isDefault = keymap.abbreviation === action.payload; } return keymap; @@ -438,20 +1763,20 @@ function default_1(state, action) { } // Check for the deleted keymap in other keymaps changedUserConfiguration.keymaps = filtered.map(function (keymap) { - keymap = Object.assign(new Keymap_1.Keymap(), keymap); + keymap = Object.assign(new keymap_1.Keymap(), keymap); keymap.layers = checkExistence(keymap.layers, 'keymapAbbreviation', action.payload); return keymap; }); break; case actions_1.KeymapActions.SAVE_KEY: { - var newKeymap_1 = Object.assign(new Keymap_1.Keymap(), action.payload.keymap); + var newKeymap_1 = Object.assign(new keymap_1.Keymap(), action.payload.keymap); newKeymap_1.layers = newKeymap_1.layers.slice(); var layerIndex = action.payload.layer; - var newLayer = Object.assign(new Layer_1.Layer(), newKeymap_1.layers[layerIndex]); + var newLayer = Object.assign(new layer_1.Layer(), newKeymap_1.layers[layerIndex]); newKeymap_1.layers[layerIndex] = newLayer; var moduleIndex = action.payload.module; - var newModule = Object.assign(new Module_1.Module(), newLayer.modules[moduleIndex]); + var newModule = Object.assign(new module_1.Module(), newLayer.modules[moduleIndex]); newLayer.modules = newLayer.modules.slice(); newLayer.modules[moduleIndex] = newModule; var keyIndex = action.payload.key; @@ -467,14 +1792,14 @@ function default_1(state, action) { } case actions_1.KeymapActions.CHECK_MACRO: changedUserConfiguration.keymaps = state.keymaps.map(function (keymap) { - keymap = Object.assign(new Keymap_1.Keymap(), keymap); + keymap = Object.assign(new keymap_1.Keymap(), keymap); keymap.layers = checkExistence(keymap.layers, '_macroId', action.payload); return keymap; }); break; case actions_1.MacroActions.ADD: { - var newMacro = new Macro_1.Macro(); + var newMacro = new macro_1.Macro(); newMacro.id = generateMacroId(state.macros); newMacro.name = generateName(state.macros, 'New macro'); newMacro.isLooped = false; @@ -485,7 +1810,7 @@ function default_1(state, action) { } case actions_1.MacroActions.DUPLICATE: { - var newMacro = new Macro_1.Macro(action.payload); + var newMacro = new macro_1.Macro(action.payload); newMacro.name = generateName(state.macros, newMacro.name); newMacro.id = generateMacroId(state.macros); changedUserConfiguration.macros = state.macros.concat(newMacro); @@ -508,7 +1833,7 @@ function default_1(state, action) { case actions_1.MacroActions.ADD_ACTION: changedUserConfiguration.macros = state.macros.map(function (macro) { if (macro.id === action.payload.id) { - macro = new Macro_1.Macro(macro); + macro = new macro_1.Macro(macro); macro.macroActions.push(action.payload.action); } return macro; @@ -517,7 +1842,7 @@ function default_1(state, action) { case actions_1.MacroActions.SAVE_ACTION: changedUserConfiguration.macros = state.macros.map(function (macro) { if (macro.id === action.payload.id) { - macro = new Macro_1.Macro(macro); + macro = new macro_1.Macro(macro); macro.macroActions[action.payload.index] = action.payload.action; } return macro; @@ -526,7 +1851,7 @@ function default_1(state, action) { case actions_1.MacroActions.DELETE_ACTION: changedUserConfiguration.macros = state.macros.map(function (macro) { if (macro.id === action.payload.id) { - macro = new Macro_1.Macro(macro); + macro = new macro_1.Macro(macro); macro.macroActions.splice(action.payload.index, 1); } return macro; @@ -540,7 +1865,7 @@ function default_1(state, action) { if (newIndex > action.payload.oldIndex) { --newIndex; } - macro = new Macro_1.Macro(macro); + macro = new macro_1.Macro(macro); macro.macroActions.splice(newIndex, 0, macro.macroActions.splice(action.payload.oldIndex, 1)[0]); } return macro; @@ -622,35 +1947,69 @@ function generateMacroId(macros) { return newId + 1; } function checkExistence(layers, property, value) { - var newLayers = layers.map(function (layer) { - var newLayer = new Layer_1.Layer(layer); - newLayer.modules = layer.modules.map(function (module) { - module.keyActions.forEach(function (action, index) { + var keyActionsToClear = []; + for (var layerIdx = 0; layerIdx < layers.length; ++layerIdx) { + var modules = layers[layerIdx].modules; + for (var moduleIdx = 0; moduleIdx < modules.length; ++moduleIdx) { + var keyActions = modules[moduleIdx].keyActions; + for (var keyActionIdx = 0; keyActionIdx < keyActions.length; ++keyActionIdx) { + var action = keyActions[keyActionIdx]; if (action && action.hasOwnProperty(property) && action[property] === value) { - module.keyActions[index] = undefined; + keyActionsToClear.push({ + layerIdx: layerIdx, + moduleIdx: moduleIdx, + keyActionIdx: keyActionIdx + }); } - }); - return module; - }); - return newLayer; - }); + } + } + } + if (keyActionsToClear.length === 0) { + return layers; + } + var newLayers = layers.slice(); + for (var _i = 0, keyActionsToClear_1 = keyActionsToClear; _i < keyActionsToClear_1.length; _i++) { + var path = keyActionsToClear_1[_i]; + if (newLayers[path.layerIdx] === layers[path.layerIdx]) { + newLayers[path.layerIdx] = Object.assign(new layer_1.Layer(), newLayers[path.layerIdx]); + newLayers[path.layerIdx].modules = newLayers[path.layerIdx].modules.slice(); + } + var newModules = newLayers[path.layerIdx].modules; + if (newModules[path.moduleIdx] === layers[path.layerIdx].modules[path.moduleIdx]) { + newModules[path.moduleIdx] = Object.assign(new module_1.Module(), newModules[path.moduleIdx]); + newModules[path.moduleIdx].keyActions = newModules[path.moduleIdx].keyActions.slice(); + } + newModules[path.moduleIdx].keyActions[path.keyActionIdx] = undefined; + } return newLayers; } /***/ }), -/* 56 */, -/* 57 */, -/* 58 */, -/* 59 */, -/* 60 */, -/* 61 */, -/* 62 */, -/* 63 */, -/* 64 */, -/* 65 */, -/* 66 */, -/* 67 */ +/* 36 */, +/* 37 */, +/* 38 */, +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(634)); +__export(__webpack_require__(635)); +__export(__webpack_require__(49)); +__export(__webpack_require__(636)); +__export(__webpack_require__(637)); +__export(__webpack_require__(638)); +__export(__webpack_require__(639)); +__export(__webpack_require__(640)); + + +/***/ }), +/* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -665,7 +2024,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var Tab = (function () { function Tab() { this.validAction = new core_1.EventEmitter(); @@ -680,7 +2039,194 @@ exports.Tab = Tab; /***/ }), -/* 68 */ +/* 41 */, +/* 42 */, +/* 43 */, +/* 44 */, +/* 45 */, +/* 46 */, +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var KeyActionId; +(function (KeyActionId) { + KeyActionId[KeyActionId["NoneAction"] = 0] = "NoneAction"; + KeyActionId[KeyActionId["KeystrokeAction"] = 1] = "KeystrokeAction"; + /* + 1 - 31 are reserved for KeystrokeAction + 5 bits: + 1: Do we have scancode? + 2: Do we have modifiers? + 3: Do we have longpress? + 4-5: What kind of keystroke? (basic, short/long media, system) + */ + KeyActionId[KeyActionId["LastKeystrokeAction"] = 31] = "LastKeystrokeAction"; + KeyActionId[KeyActionId["SwitchLayerAction"] = 32] = "SwitchLayerAction"; + KeyActionId[KeyActionId["SwitchKeymapAction"] = 33] = "SwitchKeymapAction"; + KeyActionId[KeyActionId["MouseAction"] = 34] = "MouseAction"; + KeyActionId[KeyActionId["PlayMacroAction"] = 35] = "PlayMacroAction"; +})(KeyActionId = exports.KeyActionId || (exports.KeyActionId = {})); +exports.keyActionType = { + NoneAction: 'none', + KeystrokeAction: 'keystroke', + SwitchLayerAction: 'switchLayer', + SwitchKeymapAction: 'switchKeymap', + MouseAction: 'mouse', + PlayMacroAction: 'playMacro' +}; +var KeyAction = (function () { + function KeyAction() { + } + KeyAction.prototype.assertKeyActionType = function (jsObject) { + var keyActionClassname = this.constructor.name; + var keyActionTypeString = exports.keyActionType[keyActionClassname]; + if (jsObject.keyActionType !== keyActionTypeString) { + throw "Invalid " + keyActionClassname + ".keyActionType: " + jsObject.keyActionType; + } + }; + KeyAction.prototype.readAndAssertKeyActionId = function (buffer) { + var classname = this.constructor.name; + var readKeyActionId = buffer.readUInt8(); + var keyActionId = KeyActionId[classname]; + if (keyActionId === KeyActionId.KeystrokeAction) { + if (readKeyActionId < KeyActionId.KeystrokeAction || readKeyActionId > KeyActionId.LastKeystrokeAction) { + throw "Invalid " + classname + " first byte: " + readKeyActionId; + } + } + else if (readKeyActionId !== keyActionId) { + throw "Invalid " + classname + " first byte: " + readKeyActionId; + } + return readKeyActionId; + }; + KeyAction.prototype.renameKeymap = function (oldAbbr, newAbbr) { + return this; + }; + return KeyAction; +}()); +exports.KeyAction = KeyAction; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var layer_1 = __webpack_require__(236); +var key_action_1 = __webpack_require__(14); +var Keymap = (function () { + function Keymap(keymap) { + if (!keymap) { + return; + } + this.name = keymap.name; + this.description = keymap.description; + this.abbreviation = keymap.abbreviation; + this.isDefault = keymap.isDefault; + this.layers = keymap.layers.map(function (layer) { return new layer_1.Layer(layer); }); + } + Keymap.prototype.fromJsonObject = function (jsonObject, macros) { + this.isDefault = jsonObject.isDefault; + this.abbreviation = jsonObject.abbreviation; + this.name = jsonObject.name; + this.description = jsonObject.description; + this.layers = jsonObject.layers.map(function (layer) { return new layer_1.Layer().fromJsonObject(layer, macros); }); + this.normalize(); + return this; + }; + Keymap.prototype.fromBinary = function (buffer, macros) { + this.abbreviation = buffer.readString(); + this.isDefault = buffer.readBoolean(); + this.name = buffer.readString(); + this.description = buffer.readString(); + this.layers = buffer.readArray(function (uhkBuffer) { + return new layer_1.Layer().fromBinary(uhkBuffer, macros); + }); + this.normalize(); + return this; + }; + Keymap.prototype.toJsonObject = function (macros) { + return { + isDefault: this.isDefault, + abbreviation: this.abbreviation, + name: this.name, + description: this.description, + layers: this.layers.map(function (layer) { return layer.toJsonObject(macros); }) + }; + }; + Keymap.prototype.toBinary = function (buffer, macros) { + buffer.writeString(this.abbreviation); + buffer.writeBoolean(this.isDefault); + buffer.writeString(this.name); + buffer.writeString(this.description); + buffer.writeArray(this.layers, function (uhkBuffer, layer) { + layer.toBinary(uhkBuffer, macros); + }); + }; + Keymap.prototype.toString = function () { + return ""; + }; + Keymap.prototype.renameKeymap = function (oldAbbr, newAbbr) { + var _this = this; + var layers; + var layerModified = false; + this.layers.forEach(function (layer, index) { + var newLayer = layer.renameKeymap(oldAbbr, newAbbr); + if (newLayer !== layer) { + if (!layerModified) { + layers = _this.layers.slice(); + layerModified = true; + } + layers[index] = newLayer; + } + }); + if (layerModified) { + var newKeymap = Object.assign(new Keymap(), this); + newKeymap.layers = layers; + return newKeymap; + } + return this; + }; + Keymap.prototype.normalize = function () { + var _this = this; + // Removes all the SwitchLayerActions from any non base layer + for (var i = 1; i < this.layers.length; ++i) { + for (var _i = 0, _a = this.layers[i].modules; _i < _a.length; _i++) { + var module_1 = _a[_i]; + module_1.keyActions = module_1.keyActions.map(function (keyAction) { + if (keyAction instanceof key_action_1.SwitchLayerAction) { + return undefined; + } + return keyAction; + }); + } + } + // Adds the SwitchLayerActions from the base layer to any none base layer + var baseLayerModules = this.layers[0].modules; + var _loop_1 = function (i) { + baseLayerModules[i].keyActions.forEach(function (keyAction, keyActionIndex) { + if (keyAction instanceof key_action_1.SwitchLayerAction) { + for (var j = 1; j < _this.layers.length; ++j) { + _this.layers[j].modules[i].keyActions[keyActionIndex] = new key_action_1.SwitchLayerAction(keyAction); + } + } + }); + }; + for (var i = 0; i < baseLayerModules.length; ++i) { + _loop_1(i); + } + }; + return Keymap; +}()); +exports.Keymap = Keymap; + + +/***/ }), +/* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -690,30 +2236,24 @@ var MacroActionId; (function (MacroActionId) { MacroActionId[MacroActionId["KeyMacroAction"] = 0] = "KeyMacroAction"; /* - 0 - 8 are reserved for KeyMacroAction - PressKeyMacroAction with scancode: 0 - PressKeyMacroAction with modifiers: 1 - PressKeyMacroAction with scancode and modifiers 2 - HoldKeyMacroAction with scancode: 3 - HoldKeyMacroAction with modifiers: 4 - HoldKeyMacroAction with scancode and modifiers 5 - ReleaseKeyMacroAction with scancode: 6 - ReleaseKeyMacroAction with modifiers: 7 - ReleaseKeyMacroAction with scancode and modifiers 8 + 0 - 63 are reserved for KeyMacroAction + 2 bits for: PressKeyMacroAction / HoldKeyMacroAction / ReleaseKeyMacroAction / undefined + 2 bits for: with only scancode / only modifiers / both scancode and modifiers / undefined + 2 bits for: scancode type basic, short media, long media, system. It should be only used if scancode does exist. */ - MacroActionId[MacroActionId["LastKeyMacroAction"] = 8] = "LastKeyMacroAction"; - MacroActionId[MacroActionId["MouseButtonMacroAction"] = 9] = "MouseButtonMacroAction"; + MacroActionId[MacroActionId["LastKeyMacroAction"] = 63] = "LastKeyMacroAction"; + MacroActionId[MacroActionId["MouseButtonMacroAction"] = 64] = "MouseButtonMacroAction"; /* - 9 - 11 are reserved for MouseButtonMacroAction - PressMouseButtonsMacroAction = 9, - HoldMouseButtonsMacroAction = 10, - ReleaseMouseButtonsMacroAction = 11, + 64 - 66 are reserved for MouseButtonMacroAction + PressMouseButtonsMacroAction = 64, + HoldMouseButtonsMacroAction = 65, + ReleaseMouseButtonsMacroAction = 66, */ - MacroActionId[MacroActionId["LastMouseButtonMacroAction"] = 11] = "LastMouseButtonMacroAction"; - MacroActionId[MacroActionId["MoveMouseMacroAction"] = 12] = "MoveMouseMacroAction"; - MacroActionId[MacroActionId["ScrollMouseMacroAction"] = 13] = "ScrollMouseMacroAction"; - MacroActionId[MacroActionId["DelayMacroAction"] = 14] = "DelayMacroAction"; - MacroActionId[MacroActionId["TextMacroAction"] = 15] = "TextMacroAction"; + MacroActionId[MacroActionId["LastMouseButtonMacroAction"] = 66] = "LastMouseButtonMacroAction"; + MacroActionId[MacroActionId["MoveMouseMacroAction"] = 67] = "MoveMouseMacroAction"; + MacroActionId[MacroActionId["ScrollMouseMacroAction"] = 68] = "ScrollMouseMacroAction"; + MacroActionId[MacroActionId["DelayMacroAction"] = 69] = "DelayMacroAction"; + MacroActionId[MacroActionId["TextMacroAction"] = 70] = "TextMacroAction"; })(MacroActionId = exports.MacroActionId || (exports.MacroActionId = {})); var MacroSubAction; (function (MacroSubAction) { @@ -765,39 +2305,31 @@ exports.MacroAction = MacroAction; /***/ }), -/* 69 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(457)); -__export(__webpack_require__(1100)); -__export(__webpack_require__(458)); -__export(__webpack_require__(68)); -__export(__webpack_require__(460)); -__export(__webpack_require__(459)); -__export(__webpack_require__(461)); -__export(__webpack_require__(462)); -__export(__webpack_require__(1101)); - - -/***/ }), -/* 70 */, -/* 71 */, -/* 72 */, -/* 73 */, -/* 74 */, -/* 75 */, -/* 76 */, -/* 77 */, -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from @@ -807,6 +2339,10 @@ __export(__webpack_require__(1101)); /**/ +var processNextTick = __webpack_require__(101); +/**/ + +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) { @@ -818,16 +2354,12 @@ var objectKeys = Object.keys || function (obj) { module.exports = Duplex; /**/ -var processNextTick = __webpack_require__(268); +var util = __webpack_require__(76); +util.inherits = __webpack_require__(58); /**/ -/**/ -var util = __webpack_require__(120); -util.inherits = __webpack_require__(92); -/**/ - -var Readable = __webpack_require__(408); -var Writable = __webpack_require__(271); +var Readable = __webpack_require__(251); +var Writable = __webpack_require__(150); util.inherits(Duplex, Readable); @@ -868,6 +2400,34 @@ function onEndNT(self) { self.end(); } +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + processNextTick(cb, err); +}; + function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); @@ -875,167 +2435,59 @@ function forEach(xs, f) { } /***/ }), -/* 79 */, -/* 80 */ +/* 51 */, +/* 52 */, +/* 53 */, +/* 54 */, +/* 55 */, +/* 56 */, +/* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var Layer_1 = __webpack_require__(454); -var Keymap = (function () { - function Keymap(keymap) { - if (!keymap) { - return; - } - this.name = keymap.name; - this.description = keymap.description; - this.abbreviation = keymap.abbreviation; - this.isDefault = keymap.isDefault; - this.layers = keymap.layers.map(function (layer) { return new Layer_1.Layer(layer); }); +var constants_1 = __webpack_require__(642); +exports.Constants = constants_1.Constants; +// Source: http://stackoverflow.com/questions/13720256/javascript-regex-camelcase-to-sentence +function camelCaseToSentence(camelCasedText) { + return camelCasedText.replace(/^[a-z]|[A-Z]/g, function (v, i) { + return i === 0 ? v.toUpperCase() : ' ' + v.toLowerCase(); + }); +} +exports.camelCaseToSentence = camelCaseToSentence; +function capitalizeFirstLetter(text) { + return text.charAt(0).toUpperCase() + text.slice(1); +} +exports.capitalizeFirstLetter = capitalizeFirstLetter; +/** + * This function coerces a string into a string literal type. + * Using tagged union types in TypeScript 2.0, this enables + * powerful typechecking of our reducers. + * + * Since every action label passes through this function it + * is a good place to ensure all of our action labels + * are unique. + */ +var typeCache = {}; +function type(label) { + if (typeCache[label]) { + throw new Error("Action type \"" + label + "\" is not unique\""); } - Keymap.prototype.fromJsonObject = function (jsonObject, macros) { - this.isDefault = jsonObject.isDefault; - this.abbreviation = jsonObject.abbreviation; - this.name = jsonObject.name; - this.description = jsonObject.description; - this.layers = jsonObject.layers.map(function (layer) { return new Layer_1.Layer().fromJsonObject(layer, macros); }); - return this; - }; - Keymap.prototype.fromBinary = function (buffer, macros) { - this.abbreviation = buffer.readString(); - this.isDefault = buffer.readBoolean(); - this.name = buffer.readString(); - this.description = buffer.readString(); - this.layers = buffer.readArray(function (uhkBuffer) { - return new Layer_1.Layer().fromBinary(uhkBuffer, macros); - }); - return this; - }; - Keymap.prototype.toJsonObject = function (macros) { - return { - isDefault: this.isDefault, - abbreviation: this.abbreviation, - name: this.name, - description: this.description, - layers: this.layers.map(function (layer) { return layer.toJsonObject(macros); }) - }; - }; - Keymap.prototype.toBinary = function (buffer, macros) { - buffer.writeString(this.abbreviation); - buffer.writeBoolean(this.isDefault); - buffer.writeString(this.name); - buffer.writeString(this.description); - buffer.writeArray(this.layers, function (uhkBuffer, layer) { - layer.toBinary(uhkBuffer, macros); - }); - }; - Keymap.prototype.toString = function () { - return ""; - }; - Keymap.prototype.renameKeymap = function (oldAbbr, newAbbr) { - var _this = this; - var layers; - var layerModified = false; - this.layers.forEach(function (layer, index) { - var newLayer = layer.renameKeymap(oldAbbr, newAbbr); - if (newLayer !== layer) { - if (!layerModified) { - layers = _this.layers.slice(); - layerModified = true; - } - layers[index] = newLayer; - } - }); - if (layerModified) { - var newKeymap = Object.assign(new Keymap(), this); - newKeymap.layers = layers; - return newKeymap; - } - return this; - }; - return Keymap; -}()); -exports.Keymap = Keymap; + typeCache[label] = true; + return label; +} +exports.type = type; +var ipcEvents_1 = __webpack_require__(643); +exports.IpcEvents = ipcEvents_1.IpcEvents; +function runInElectron() { + return window && window.process && window.process.type; +} +exports.runInElectron = runInElectron; /***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/// - -Object.defineProperty(exports, "__esModule", { value: true }); -var KeyActionId; -(function (KeyActionId) { - KeyActionId[KeyActionId["NoneAction"] = 0] = "NoneAction"; - KeyActionId[KeyActionId["KeystrokeAction"] = 1] = "KeystrokeAction"; - /* - 1 - 7 are reserved for KeystrokeAction - 3 bits: - 1: Do we have scancode? - 2: Do we have modifiers? - 3: Do we have longpress? - */ - KeyActionId[KeyActionId["LastKeystrokeAction"] = 7] = "LastKeystrokeAction"; - KeyActionId[KeyActionId["SwitchLayerAction"] = 8] = "SwitchLayerAction"; - KeyActionId[KeyActionId["SwitchKeymapAction"] = 9] = "SwitchKeymapAction"; - KeyActionId[KeyActionId["MouseAction"] = 10] = "MouseAction"; - KeyActionId[KeyActionId["PlayMacroAction"] = 11] = "PlayMacroAction"; -})(KeyActionId = exports.KeyActionId || (exports.KeyActionId = {})); -exports.keyActionType = { - NoneAction: 'none', - KeystrokeAction: 'keystroke', - SwitchLayerAction: 'switchLayer', - SwitchKeymapAction: 'switchKeymap', - MouseAction: 'mouse', - PlayMacroAction: 'playMacro' -}; -var KeyAction = (function () { - function KeyAction() { - } - KeyAction.prototype.assertKeyActionType = function (jsObject) { - var keyActionClassname = this.constructor.name; - var keyActionTypeString = exports.keyActionType[keyActionClassname]; - if (jsObject.keyActionType !== keyActionTypeString) { - throw "Invalid " + keyActionClassname + ".keyActionType: " + jsObject.keyActionType; - } - }; - KeyAction.prototype.readAndAssertKeyActionId = function (buffer) { - var classname = this.constructor.name; - var readKeyActionId = buffer.readUInt8(); - var keyActionId = KeyActionId[classname]; - if (keyActionId === KeyActionId.KeystrokeAction) { - if (readKeyActionId < KeyActionId.KeystrokeAction || readKeyActionId > KeyActionId.LastKeystrokeAction) { - throw "Invalid " + classname + " first byte: " + readKeyActionId; - } - } - else if (readKeyActionId !== keyActionId) { - throw "Invalid " + classname + " first byte: " + readKeyActionId; - } - return readKeyActionId; - }; - KeyAction.prototype.renameKeymap = function (oldAbbr, newAbbr) { - return this; - }; - return KeyAction; -}()); -exports.KeyAction = KeyAction; - - -/***/ }), -/* 82 */, -/* 83 */, -/* 84 */, -/* 85 */, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */ +/* 58 */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { @@ -1064,34 +2516,24 @@ if (typeof Object.create === 'function') { /***/ }), -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */ +/* 59 */, +/* 60 */, +/* 61 */, +/* 62 */, +/* 63 */, +/* 64 */, +/* 65 */, +/* 66 */, +/* 67 */, +/* 68 */, +/* 69 */, +/* 70 */, +/* 71 */, +/* 72 */, +/* 73 */, +/* 74 */, +/* 75 */, +/* 76 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors. @@ -1202,9 +2644,214 @@ function objectToString(o) { return Object.prototype.toString.call(o); } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(56).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(75).Buffer)) /***/ }), +/* 77 */, +/* 78 */, +/* 79 */, +/* 80 */, +/* 81 */, +/* 82 */, +/* 83 */, +/* 84 */, +/* 85 */, +/* 86 */, +/* 87 */, +/* 88 */, +/* 89 */, +/* 90 */, +/* 91 */, +/* 92 */, +/* 93 */, +/* 94 */, +/* 95 */, +/* 96 */, +/* 97 */, +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var KeystrokeType; +(function (KeystrokeType) { + KeystrokeType[KeystrokeType["basic"] = 0] = "basic"; + KeystrokeType[KeystrokeType["shortMedia"] = 1] = "shortMedia"; + KeystrokeType[KeystrokeType["longMedia"] = 2] = "longMedia"; + KeystrokeType[KeystrokeType["system"] = 3] = "system"; +})(KeystrokeType = exports.KeystrokeType || (exports.KeystrokeType = {})); + + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var macro_action_1 = __webpack_require__(39); +var Macro = (function () { + function Macro(other) { + if (!other) { + return; + } + this.id = other.id; + this.isLooped = other.isLooped; + this.isPrivate = other.isPrivate; + this.name = other.name; + this.macroActions = other.macroActions.map(function (macroAction) { return macro_action_1.Helper.createMacroAction(macroAction); }); + } + Macro.prototype.fromJsonObject = function (jsonObject) { + this.isLooped = jsonObject.isLooped; + this.isPrivate = jsonObject.isPrivate; + this.name = jsonObject.name; + this.macroActions = jsonObject.macroActions.map(function (macroAction) { return macro_action_1.Helper.createMacroAction(macroAction); }); + return this; + }; + Macro.prototype.fromBinary = function (buffer) { + this.isLooped = buffer.readBoolean(); + this.isPrivate = buffer.readBoolean(); + this.name = buffer.readString(); + var macroActionsLength = buffer.readCompactLength(); + this.macroActions = []; + for (var i = 0; i < macroActionsLength; ++i) { + this.macroActions.push(macro_action_1.Helper.createMacroAction(buffer)); + } + return this; + }; + Macro.prototype.toJsonObject = function () { + return { + isLooped: this.isLooped, + isPrivate: this.isPrivate, + name: this.name, + macroActions: this.macroActions.map(function (macroAction) { return macroAction.toJsonObject(); }) + }; + }; + Macro.prototype.toBinary = function (buffer) { + buffer.writeBoolean(this.isLooped); + buffer.writeBoolean(this.isPrivate); + buffer.writeString(this.name); + buffer.writeArray(this.macroActions); + }; + Macro.prototype.toString = function () { + return ""; + }; + return Macro; +}()); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], Macro.prototype, "id", void 0); +exports.Macro = Macro; + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(40)); +var keymap_1 = __webpack_require__(678); +exports.KeymapTabComponent = keymap_1.KeymapTabComponent; +var keypress_1 = __webpack_require__(682); +exports.KeypressTabComponent = keypress_1.KeypressTabComponent; +var layer_1 = __webpack_require__(688); +exports.LayerTabComponent = layer_1.LayerTabComponent; +var macro_1 = __webpack_require__(692); +exports.MacroTabComponent = macro_1.MacroTabComponent; +var mouse_1 = __webpack_require__(696); +exports.MouseTabComponent = mouse_1.MouseTabComponent; +var none_1 = __webpack_require__(700); +exports.NoneTabComponent = none_1.NoneTabComponent; + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +if (!process.version || + process.version.indexOf('v0.') === 0 || + process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { + module.exports = nextTick; +} else { + module.exports = process.nextTick; +} + +function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== 'function') { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38))) + +/***/ }), +/* 102 */, +/* 103 */, +/* 104 */, +/* 105 */, +/* 106 */, +/* 107 */, +/* 108 */, +/* 109 */, +/* 110 */, +/* 111 */, +/* 112 */, +/* 113 */, +/* 114 */, +/* 115 */, +/* 116 */, +/* 117 */, +/* 118 */, +/* 119 */, +/* 120 */, /* 121 */, /* 122 */, /* 123 */, @@ -1214,52 +2861,794 @@ function objectToString(o) { /* 127 */, /* 128 */, /* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */ +/* 130 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_instrument__ = __webpack_require__(595); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "StoreDevtoolsModule", function() { return __WEBPACK_IMPORTED_MODULE_0__src_instrument__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_devtools__ = __webpack_require__(222); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "StoreDevtools", function() { return __WEBPACK_IMPORTED_MODULE_1__src_devtools__["b"]; }); + + +//# sourceMappingURL=index.js.map + +/***/ }), +/* 131 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["b"] = difference; +/* harmony export (immutable) */ __webpack_exports__["d"] = unliftState; +/* unused harmony export unliftAction */ +/* harmony export (immutable) */ __webpack_exports__["c"] = liftAction; +/* harmony export (immutable) */ __webpack_exports__["a"] = applyOperators; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(132); + +function difference(first, second) { + return first.filter(function (item) { return second.indexOf(item) < 0; }); +} +/** + * Provides an app's view into the state of the lifted store. + */ +function unliftState(liftedState) { + var computedStates = liftedState.computedStates, currentStateIndex = liftedState.currentStateIndex; + var state = computedStates[currentStateIndex].state; + return state; +} +function unliftAction(liftedState) { + return liftedState.actionsById[liftedState.nextActionId - 1]; +} +/** +* Lifts an app's action into an action on the lifted store. +*/ +function liftAction(action) { + return __WEBPACK_IMPORTED_MODULE_0__actions__["b" /* StoreDevtoolActions */].performAction(action); +} +function applyOperators(input$, operators) { + return operators.reduce(function (source$, _a) { + var operator = _a[0], args = _a.slice(1); + return operator.apply(source$, args); + }, input$); +} +//# sourceMappingURL=utils.js.map + +/***/ }), +/* 132 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ActionTypes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return StoreDevtoolActions; }); +var ActionTypes = { + PERFORM_ACTION: 'PERFORM_ACTION', + RESET: 'RESET', + ROLLBACK: 'ROLLBACK', + COMMIT: 'COMMIT', + SWEEP: 'SWEEP', + TOGGLE_ACTION: 'TOGGLE_ACTION', + SET_ACTIONS_ACTIVE: 'SET_ACTIONS_ACTIVE', + JUMP_TO_STATE: 'JUMP_TO_STATE', + IMPORT_STATE: 'IMPORT_STATE' +}; +/** +* Action creators to change the History state. +*/ +var StoreDevtoolActions = { + performAction: function (action) { + if (typeof action.type === 'undefined') { + throw new Error('Actions may not have an undefined "type" property. ' + + 'Have you misspelled a constant?'); + } + return { type: ActionTypes.PERFORM_ACTION, action: action, timestamp: Date.now() }; + }, + reset: function () { + return { type: ActionTypes.RESET, timestamp: Date.now() }; + }, + rollback: function () { + return { type: ActionTypes.ROLLBACK, timestamp: Date.now() }; + }, + commit: function () { + return { type: ActionTypes.COMMIT, timestamp: Date.now() }; + }, + sweep: function () { + return { type: ActionTypes.SWEEP }; + }, + toggleAction: function (id) { + return { type: ActionTypes.TOGGLE_ACTION, id: id }; + }, + setActionsActive: function (start, end, active) { + if (active === void 0) { active = true; } + return { type: ActionTypes.SET_ACTIONS_ACTIVE, start: start, end: end, active: active }; + }, + jumpToState: function (index) { + return { type: ActionTypes.JUMP_TO_STATE, index: index }; + }, + importState: function (nextLiftedState) { + return { type: ActionTypes.IMPORT_STATE, nextLiftedState: nextLiftedState }; + } +}; +//# sourceMappingURL=actions.js.map + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var pluck_1 = __webpack_require__(124); +var map_1 = __webpack_require__(16); +var distinctUntilChanged_1 = __webpack_require__(94); +function select(pathOrMapFn) { + var paths = []; + for (var _i = 1; _i < arguments.length; _i++) { + paths[_i - 1] = arguments[_i]; + } + var mapped$; + if (typeof pathOrMapFn === 'string') { + mapped$ = pluck_1.pluck.call.apply(pluck_1.pluck, [this, pathOrMapFn].concat(paths)); + } + else if (typeof pathOrMapFn === 'function') { + mapped$ = map_1.map.call(this, pathOrMapFn); + } + else { + throw new TypeError(("Unexpected type " + typeof pathOrMapFn + " in select operator,") + + " expected 'string' or 'function'"); + } + return distinctUntilChanged_1.distinctUntilChanged.call(mapped$); +} +exports.select = select; + + +/***/ }), +/* 134 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DockActions; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); + +var DockActions = (function () { + function DockActions() { + } + DockActions.prototype.toggleVisibility = function () { + return { type: DockActions.TOGGLE_VISIBILITY }; + }; + DockActions.prototype.changePosition = function () { + return { type: DockActions.CHANGE_POSITION }; + }; + DockActions.prototype.changeSize = function (size) { + return { type: DockActions.CHANGE_SIZE, payload: size }; + }; + DockActions.prototype.changeMonitor = function () { + return { type: DockActions.CHANGE_MONITOR }; + }; + DockActions.TOGGLE_VISIBILITY = '@@redux-devtools-log-monitor/TOGGLE_VISIBILITY'; + DockActions.CHANGE_POSITION = '@@redux-devtools-log-monitor/CHANGE_POSITION'; + DockActions.CHANGE_SIZE = '@@redux-devtools-log-monitor/CHANGE_SIZE'; + DockActions.CHANGE_MONITOR = '@@redux-devtools-log-monitor/CHANGE_MONITOR'; + DockActions.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, + ]; + /** @nocollapse */ + DockActions.ctorParameters = []; + return DockActions; +}()); +//# sourceMappingURL=actions.js.map + +/***/ }), +/* 135 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return routerActions; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return routerActionTypes; }); +/* harmony export (immutable) */ __webpack_exports__["c"] = go; +/* harmony export (immutable) */ __webpack_exports__["d"] = replace; +/* harmony export (immutable) */ __webpack_exports__["g"] = search; +/* harmony export (immutable) */ __webpack_exports__["h"] = show; +/* harmony export (immutable) */ __webpack_exports__["a"] = back; +/* harmony export (immutable) */ __webpack_exports__["b"] = forward; +var routerActions = { + GO: '[Router] Go', + REPLACE: '[Router] Replace', + SEARCH: '[Router] Search', + SHOW: '[Router] Show', + BACK: '[Router] Back', + FORWARD: '[Router] Forward', + UPDATE_LOCATION: '[Router] Update Location' +}; +var routerActionTypes = Object.keys(routerActions).map(function (key) { return routerActions[key]; }); +function go(path, query, extras) { + var payload = { path: path, query: query, extras: extras }; + return { type: routerActions.GO, payload: payload }; +} +function replace(path, query, extras) { + var payload = { path: path, query: query, extras: extras }; + return { type: routerActions.REPLACE, payload: payload }; +} +function search(query, extras) { + var payload = { query: query, extras: extras }; + return { type: routerActions.SEARCH, payload: payload }; +} +function show(path, query, extras) { + var payload = { path: path, query: query, extras: extras }; + return { type: routerActions.SHOW, payload: payload }; +} +function back() { + var payload = {}; + return { type: routerActions.BACK, payload: payload }; +} +function forward() { + var payload = {}; + return { type: routerActions.FORWARD, payload: payload }; +} +//# sourceMappingURL=actions.js.map + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var KeymapActions; +(function (KeymapActions) { + KeymapActions.PREFIX = '[Keymap] '; + KeymapActions.ADD = KeymapActions.PREFIX + 'Add keymap'; + KeymapActions.DUPLICATE = KeymapActions.PREFIX + 'Duplicate keymap'; + KeymapActions.EDIT_ABBR = KeymapActions.PREFIX + 'Edit keymap abbreviation'; + KeymapActions.EDIT_NAME = KeymapActions.PREFIX + 'Edit keymap title'; + KeymapActions.SAVE_KEY = KeymapActions.PREFIX + 'Save key action'; + KeymapActions.SET_DEFAULT = KeymapActions.PREFIX + 'Set default option'; + KeymapActions.REMOVE = KeymapActions.PREFIX + 'Remove keymap'; + KeymapActions.CHECK_MACRO = KeymapActions.PREFIX + 'Check deleted macro'; + KeymapActions.LOAD_KEYMAPS = KeymapActions.PREFIX + 'Load keymaps'; + KeymapActions.LOAD_KEYMAPS_SUCCESS = KeymapActions.PREFIX + 'Load keymaps success'; + function loadKeymaps() { + return { + type: KeymapActions.LOAD_KEYMAPS + }; + } + KeymapActions.loadKeymaps = loadKeymaps; + function loadKeymapsSuccess(keymaps) { + return { + type: KeymapActions.LOAD_KEYMAPS_SUCCESS, + payload: keymaps + }; + } + KeymapActions.loadKeymapsSuccess = loadKeymapsSuccess; + function addKeymap(item) { + return { + type: KeymapActions.ADD, + payload: item + }; + } + KeymapActions.addKeymap = addKeymap; + function setDefault(abbr) { + return { + type: KeymapActions.SET_DEFAULT, + payload: abbr + }; + } + KeymapActions.setDefault = setDefault; + function removeKeymap(abbr) { + return { + type: KeymapActions.REMOVE, + payload: abbr + }; + } + KeymapActions.removeKeymap = removeKeymap; + function duplicateKeymap(keymap) { + return { + type: KeymapActions.DUPLICATE, + payload: keymap + }; + } + KeymapActions.duplicateKeymap = duplicateKeymap; + function editKeymapName(abbr, name) { + return { + type: KeymapActions.EDIT_NAME, + payload: { + abbr: abbr, + name: name + } + }; + } + KeymapActions.editKeymapName = editKeymapName; + function editKeymapAbbr(abbr, newAbbr) { + return { + type: KeymapActions.EDIT_ABBR, + payload: { + abbr: abbr, + newAbbr: newAbbr + } + }; + } + KeymapActions.editKeymapAbbr = editKeymapAbbr; + function saveKey(keymap, layer, module, key, keyAction) { + return { + type: KeymapActions.SAVE_KEY, + payload: { + keymap: keymap, + layer: layer, + module: module, + key: key, + keyAction: keyAction + } + }; + } + KeymapActions.saveKey = saveKey; + function checkMacro(macro) { + return { + type: KeymapActions.CHECK_MACRO, + payload: macro + }; + } + KeymapActions.checkMacro = checkMacro; +})(KeymapActions = exports.KeymapActions || (exports.KeymapActions = {})); + + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var keymap_1 = __webpack_require__(48); +var macro_1 = __webpack_require__(99); +var module_configuration_1 = __webpack_require__(641); +var UserConfiguration = (function () { + function UserConfiguration() { + this.moduleConfigurations = []; + this.keymaps = []; + this.macros = []; + } + UserConfiguration.prototype.fromJsonObject = function (jsonObject) { + var _this = this; + this.dataModelVersion = jsonObject.dataModelVersion; + this.moduleConfigurations = jsonObject.moduleConfigurations.map(function (moduleConfiguration) { + return new module_configuration_1.ModuleConfiguration().fromJsonObject(moduleConfiguration); + }); + this.macros = jsonObject.macros.map(function (macroJsonObject, index) { + var macro = new macro_1.Macro().fromJsonObject(macroJsonObject); + macro.id = index; + return macro; + }); + this.keymaps = jsonObject.keymaps.map(function (keymap) { return new keymap_1.Keymap().fromJsonObject(keymap, _this.macros); }); + return this; + }; + UserConfiguration.prototype.fromBinary = function (buffer) { + var _this = this; + this.dataModelVersion = buffer.readUInt16(); + this.moduleConfigurations = buffer.readArray(function (uhkBuffer) { + return new module_configuration_1.ModuleConfiguration().fromBinary(uhkBuffer); + }); + this.macros = buffer.readArray(function (uhkBuffer, index) { + var macro = new macro_1.Macro().fromBinary(uhkBuffer); + macro.id = index; + return macro; + }); + this.keymaps = buffer.readArray(function (uhkBuffer) { return new keymap_1.Keymap().fromBinary(uhkBuffer, _this.macros); }); + return this; + }; + UserConfiguration.prototype.toJsonObject = function () { + var _this = this; + return { + dataModelVersion: this.dataModelVersion, + moduleConfigurations: this.moduleConfigurations.map(function (moduleConfiguration) { return moduleConfiguration.toJsonObject(); }), + keymaps: this.keymaps.map(function (keymap) { return keymap.toJsonObject(_this.macros); }), + macros: this.macros.map(function (macro) { return macro.toJsonObject(); }) + }; + }; + UserConfiguration.prototype.toBinary = function (buffer) { + var _this = this; + buffer.writeUInt16(this.dataModelVersion); + buffer.writeArray(this.moduleConfigurations); + buffer.writeArray(this.macros); + buffer.writeArray(this.keymaps, function (uhkBuffer, keymap) { + keymap.toBinary(uhkBuffer, _this.macros); + }); + }; + UserConfiguration.prototype.toString = function () { + return ""; + }; + UserConfiguration.prototype.getKeymap = function (keymapAbbreviation) { + return this.keymaps.find(function (keymap) { return keymapAbbreviation === keymap.abbreviation; }); + }; + UserConfiguration.prototype.getMacro = function (macroId) { + return this.macros.find(function (macro) { return macroId === macro.id; }); + }; + return UserConfiguration; +}()); +__decorate([ + assert_1.assertUInt16, + __metadata("design:type", Number) +], UserConfiguration.prototype, "dataModelVersion", void 0); +exports.UserConfiguration = UserConfiguration; + + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(240)); +__export(__webpack_require__(655)); +__export(__webpack_require__(658)); +__export(__webpack_require__(661)); +__export(__webpack_require__(139)); +__export(__webpack_require__(666)); +__export(__webpack_require__(670)); +__export(__webpack_require__(241)); + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_not_found_component_1 = __webpack_require__(662); +exports.MacroNotFoundComponent = macro_not_found_component_1.MacroNotFoundComponent; +var macro_not_found_guard_service_1 = __webpack_require__(665); +exports.MacroNotFoundGuard = macro_not_found_guard_service_1.MacroNotFoundGuard; + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var KeyModifiers; +(function (KeyModifiers) { + KeyModifiers[KeyModifiers["leftCtrl"] = 1] = "leftCtrl"; + KeyModifiers[KeyModifiers["leftShift"] = 2] = "leftShift"; + KeyModifiers[KeyModifiers["leftAlt"] = 4] = "leftAlt"; + KeyModifiers[KeyModifiers["leftGui"] = 8] = "leftGui"; + KeyModifiers[KeyModifiers["rightCtrl"] = 16] = "rightCtrl"; + KeyModifiers[KeyModifiers["rightShift"] = 32] = "rightShift"; + KeyModifiers[KeyModifiers["rightAlt"] = 64] = "rightAlt"; + KeyModifiers[KeyModifiers["rightGui"] = 128] = "rightGui"; +})(KeyModifiers = exports.KeyModifiers || (exports.KeyModifiers = {})); + + +/***/ }), +/* 141 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n display: block;\n width: 100%; }\n\n.action--editor {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0;\n border: 0; }\n\n.nav {\n padding-bottom: 1rem; }\n .nav li a {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .nav li a.selected {\n font-style: italic; }\n .nav li a:hover {\n cursor: pointer; }\n .nav li.active {\n z-index: 2; }\n .nav li.active a.selected {\n font-style: normal; }\n .nav li.active a:after {\n content: '';\n display: block;\n position: absolute;\n width: 0;\n height: 0;\n top: 0;\n right: -4rem;\n border-color: transparent transparent transparent #337ab7;\n border-style: solid;\n border-width: 2rem; }\n\n.editor__tabs, .editor__tab-links {\n padding-top: 1rem; }\n\n.editor__tabs {\n border-left: 1px solid #ddd;\n margin-left: -1.6rem;\n padding-left: 3rem; }\n\n.editor__actions {\n float: right; }\n .editor__actions-container {\n background: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom: 1px solid #ddd;\n padding: 1rem 1.5rem; }\n\n.flex-button-wrapper {\n display: flex;\n flex-direction: row-reverse; }\n\n.flex-button {\n align-self: flex-end; }\n" + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var CaptureService = (function () { + function CaptureService() { + this.leftModifiers = new Map(); + this.rightModifiers = new Map(); + this.mapping = new Map(); + } + CaptureService.prototype.getMap = function (code) { + return this.mapping.get(code); + }; + CaptureService.prototype.hasMap = function (code) { + return this.mapping.has(code); + }; + CaptureService.prototype.setModifier = function (left, code) { + return left ? this.leftModifiers.set(code, true) : this.rightModifiers.set(code, true); + }; + CaptureService.prototype.getModifiers = function (left) { + return left ? this.reMap(this.leftModifiers) : this.reMap(this.rightModifiers); + }; + CaptureService.prototype.initModifiers = function () { + this.leftModifiers.set(16, false); // Shift + this.leftModifiers.set(17, false); // Ctrl + this.leftModifiers.set(18, false); // Alt + this.leftModifiers.set(91, false); // Super + this.rightModifiers.set(16, false); // Shift + this.rightModifiers.set(17, false); // Ctrl + this.rightModifiers.set(18, false); // Alt + this.rightModifiers.set(91, false); // Super + }; + CaptureService.prototype.populateMapping = function () { + this.mapping.set(8, 42); // Backspace + this.mapping.set(9, 43); // Tab + this.mapping.set(13, 40); // Enter + this.mapping.set(19, 72); // Pause/break + this.mapping.set(20, 57); // Caps lock + this.mapping.set(27, 41); // Escape + this.mapping.set(32, 44); // (space) + this.mapping.set(33, 75); // Page up + this.mapping.set(34, 78); // Page down + this.mapping.set(35, 77); // End + this.mapping.set(36, 74); // Home + this.mapping.set(37, 80); // Left arrow + this.mapping.set(38, 82); // Up arrow + this.mapping.set(39, 79); // Right arrow + this.mapping.set(40, 81); // Down arrow + this.mapping.set(45, 73); // Insert + this.mapping.set(46, 76); // Delete + this.mapping.set(48, 39); // 0 + this.mapping.set(49, 30); // 1 + this.mapping.set(50, 31); // 2 + this.mapping.set(51, 32); // 3 + this.mapping.set(52, 33); // 4 + this.mapping.set(53, 34); // 5 + this.mapping.set(54, 35); // 6 + this.mapping.set(55, 36); // 7 + this.mapping.set(56, 37); // 8 + this.mapping.set(57, 38); // 9 + this.mapping.set(65, 4); // A + this.mapping.set(66, 5); // B + this.mapping.set(67, 6); // C + this.mapping.set(68, 7); // D + this.mapping.set(69, 8); // E + this.mapping.set(70, 9); // F + this.mapping.set(71, 10); // G + this.mapping.set(72, 11); // H + this.mapping.set(73, 12); // I + this.mapping.set(74, 13); // J + this.mapping.set(75, 14); // K + this.mapping.set(76, 15); // L + this.mapping.set(77, 16); // M + this.mapping.set(78, 17); // N + this.mapping.set(79, 18); // O + this.mapping.set(80, 19); // P + this.mapping.set(81, 20); // Q + this.mapping.set(82, 21); // R + this.mapping.set(83, 22); // S + this.mapping.set(84, 23); // T + this.mapping.set(85, 24); // U + this.mapping.set(86, 25); // V + this.mapping.set(87, 26); // W + this.mapping.set(88, 27); // X + this.mapping.set(89, 28); // Y + this.mapping.set(90, 29); // Z + this.mapping.set(93, 118); // Menu + this.mapping.set(96, 98); // Num pad 0 + this.mapping.set(97, 89); // Num pad 1 + this.mapping.set(98, 90); // Num pad 2 + this.mapping.set(99, 91); // Num pad 3 + this.mapping.set(100, 92); // Num pad 4 + this.mapping.set(101, 93); // Num pad 5 + this.mapping.set(102, 94); // Num pad 6 + this.mapping.set(103, 95); // Num pad 7 + this.mapping.set(104, 96); // Num pad 8 + this.mapping.set(105, 97); // Num pad 9 + this.mapping.set(106, 85); // Multiply + this.mapping.set(107, 87); // Add + this.mapping.set(109, 86); // Subtract + this.mapping.set(110, 99); // Decimal point + this.mapping.set(111, 84); // Divide + this.mapping.set(112, 58); // F1 + this.mapping.set(113, 59); // F2 + this.mapping.set(114, 60); // F3 + this.mapping.set(115, 61); // F4 + this.mapping.set(116, 62); // F5 + this.mapping.set(117, 63); // F6 + this.mapping.set(118, 64); // F7 + this.mapping.set(119, 65); // F8 + this.mapping.set(120, 66); // F9 + this.mapping.set(121, 67); // F10 + this.mapping.set(122, 68); // F11 + this.mapping.set(123, 69); // F12 + this.mapping.set(144, 83); // Num lock + this.mapping.set(145, 71); // Scroll lock + this.mapping.set(186, 51); // Semi-colon + this.mapping.set(187, 46); // Equal sign + this.mapping.set(188, 54); // Comma + this.mapping.set(189, 45); // Dash + this.mapping.set(190, 55); // Period + this.mapping.set(191, 56); // Forward slash + this.mapping.set(192, 53); // Grave accent + this.mapping.set(219, 47); // Open bracket + this.mapping.set(220, 49); // Back slash + this.mapping.set(221, 48); // Close bracket + this.mapping.set(222, 52); // Single quote + }; + CaptureService.prototype.reMap = function (value) { + return [value.get(16), value.get(17), value.get(91), value.get(18)]; + }; + return CaptureService; +}()); +CaptureService = __decorate([ + core_1.Injectable(), + __metadata("design:paramtypes", []) +], CaptureService); +exports.CaptureService = CaptureService; + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var reselect_1 = __webpack_require__(730); +var autoUpdate = __webpack_require__(144); +exports.getUserConfiguration = function (state) { return state.userConfiguration; }; +exports.appUpdateState = function (state) { return state.autoUpdateSettings; }; +exports.getAutoUpdateSettings = reselect_1.createSelector(exports.appUpdateState, autoUpdate.getUpdateSettings); +exports.getCheckingForUpdate = reselect_1.createSelector(exports.appUpdateState, autoUpdate.checkingForUpdate); + + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var auto_update_settings_1 = __webpack_require__(145); +var app_update_action_1 = __webpack_require__(731); +exports.initialState = { + checkForUpdateOnStartUp: false, + usePreReleaseUpdate: false, + checkingForUpdate: false +}; +function reducer(state, action) { + if (state === void 0) { state = exports.initialState; } + switch (action.type) { + case auto_update_settings_1.ActionTypes.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP: { + return Object.assign({}, state, { checkForUpdateOnStartUp: action.payload }); + } + case auto_update_settings_1.ActionTypes.TOGGLE_PRE_RELEASE_FLAG: { + return Object.assign({}, state, { usePreReleaseUpdate: action.payload }); + } + case auto_update_settings_1.ActionTypes.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS: { + return Object.assign({}, action.payload); + } + case auto_update_settings_1.ActionTypes.CHECK_FOR_UPDATE_NOW: { + return Object.assign({}, state, { checkingForUpdate: true }); + } + case app_update_action_1.ActionTypes.UPDATE_ERROR: + case auto_update_settings_1.ActionTypes.CHECK_FOR_UPDATE_SUCCESS: + case auto_update_settings_1.ActionTypes.CHECK_FOR_UPDATE_FAILED: { + return Object.assign({}, state, { checkingForUpdate: false }); + } + default: + return state; + } +} +exports.reducer = reducer; +exports.getUpdateSettings = function (state) { return ({ + checkForUpdateOnStartUp: state.checkForUpdateOnStartUp, + usePreReleaseUpdate: state.usePreReleaseUpdate +}); }; +exports.checkingForUpdate = function (state) { return state.checkingForUpdate; }; + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var util_1 = __webpack_require__(57); +var PREFIX = '[app-update-config] '; +// tslint:disable-next-line:variable-name +exports.ActionTypes = { + TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP: util_1.type(PREFIX + 'Check for update on startup'), + CHECK_FOR_UPDATE_NOW: util_1.type(PREFIX + 'Check for update now'), + CHECK_FOR_UPDATE_SUCCESS: util_1.type(PREFIX + 'Check for update success'), + CHECK_FOR_UPDATE_FAILED: util_1.type(PREFIX + 'Check for update faild'), + TOGGLE_PRE_RELEASE_FLAG: util_1.type(PREFIX + 'Toggle pre release update flag'), + LOAD_AUTO_UPDATE_SETTINGS: util_1.type(PREFIX + 'Load auto update settings'), + LOAD_AUTO_UPDATE_SETTINGS_SUCCESS: util_1.type(PREFIX + 'Load auto update settings success'), + SAVE_AUTO_UPDATE_SETTINGS_SUCCESS: util_1.type(PREFIX + 'Save auto update settings success') +}; +var ToggleCheckForUpdateOnStartupAction = (function () { + function ToggleCheckForUpdateOnStartupAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP; + } + return ToggleCheckForUpdateOnStartupAction; +}()); +exports.ToggleCheckForUpdateOnStartupAction = ToggleCheckForUpdateOnStartupAction; +var CheckForUpdateNowAction = (function () { + function CheckForUpdateNowAction() { + this.type = exports.ActionTypes.CHECK_FOR_UPDATE_NOW; + } + return CheckForUpdateNowAction; +}()); +exports.CheckForUpdateNowAction = CheckForUpdateNowAction; +var CheckForUpdateSuccessAction = (function () { + function CheckForUpdateSuccessAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.CHECK_FOR_UPDATE_SUCCESS; + } + return CheckForUpdateSuccessAction; +}()); +exports.CheckForUpdateSuccessAction = CheckForUpdateSuccessAction; +var CheckForUpdateFailedAction = (function () { + function CheckForUpdateFailedAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.CHECK_FOR_UPDATE_FAILED; + } + return CheckForUpdateFailedAction; +}()); +exports.CheckForUpdateFailedAction = CheckForUpdateFailedAction; +var TogglePreReleaseFlagAction = (function () { + function TogglePreReleaseFlagAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.TOGGLE_PRE_RELEASE_FLAG; + } + return TogglePreReleaseFlagAction; +}()); +exports.TogglePreReleaseFlagAction = TogglePreReleaseFlagAction; +var LoadAutoUpdateSettingsAction = (function () { + function LoadAutoUpdateSettingsAction() { + this.type = exports.ActionTypes.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS; + } + return LoadAutoUpdateSettingsAction; +}()); +exports.LoadAutoUpdateSettingsAction = LoadAutoUpdateSettingsAction; +var LoadAutoUpdateSettingsSuccessAction = (function () { + function LoadAutoUpdateSettingsSuccessAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS; + } + return LoadAutoUpdateSettingsSuccessAction; +}()); +exports.LoadAutoUpdateSettingsSuccessAction = LoadAutoUpdateSettingsSuccessAction; +var SaveAutoUpdateSettingsSuccessAction = (function () { + function SaveAutoUpdateSettingsSuccessAction() { + this.type = exports.ActionTypes.SAVE_AUTO_UPDATE_SETTINGS_SUCCESS; + } + return SaveAutoUpdateSettingsSuccessAction; +}()); +exports.SaveAutoUpdateSettingsSuccessAction = SaveAutoUpdateSettingsSuccessAction; + + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +exports.DATA_STORAGE_REPOSITORY = new core_1.InjectionToken('dataStorage-repository'); + + +/***/ }), +/* 147 */ /***/ (function(module, exports) { // Copyright Joyent, Inc. and other Node contributors. @@ -1567,25 +3956,92 @@ function isUndefined(arg) { /***/ }), -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */ +/* 148 */ /***/ (function(module, exports, __webpack_require__) { -// Copyright Joyent, Inc. and other Node contributors. +exports = module.exports = __webpack_require__(251); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = __webpack_require__(150); +exports.Duplex = __webpack_require__(50); +exports.Transform = __webpack_require__(255); +exports.PassThrough = __webpack_require__(837); + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable node/no-deprecated-api */ +var buffer = __webpack_require__(75) +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} + + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the @@ -1606,834 +4062,39 @@ function isUndefined(arg) { // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -module.exports = Stream; - -var EE = __webpack_require__(175).EventEmitter; -var inherits = __webpack_require__(92); - -inherits(Stream, EE); -Stream.Readable = __webpack_require__(759); -Stream.Writable = __webpack_require__(761); -Stream.Duplex = __webpack_require__(756); -Stream.Transform = __webpack_require__(760); -Stream.PassThrough = __webpack_require__(758); - -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; - - - -// old-style streams. Note that the pipe method (the only relevant -// part of this class) is overridden in the Readable class. - -function Stream() { - EE.call(this); -} - -Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; - - -/***/ }), -/* 192 */, -/* 193 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(67)); -var keymap_1 = __webpack_require__(1040); -exports.KeymapTabComponent = keymap_1.KeymapTabComponent; -var keypress_1 = __webpack_require__(1042); -exports.KeypressTabComponent = keypress_1.KeypressTabComponent; -var layer_1 = __webpack_require__(1044); -exports.LayerTabComponent = layer_1.LayerTabComponent; -var macro_1 = __webpack_require__(1046); -exports.MacroTabComponent = macro_1.MacroTabComponent; -var mouse_1 = __webpack_require__(1048); -exports.MouseTabComponent = mouse_1.MouseTabComponent; -var none_1 = __webpack_require__(1050); -exports.NoneTabComponent = none_1.NoneTabComponent; - - -/***/ }), -/* 194 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var macro_action_1 = __webpack_require__(69); -var Macro = (function () { - function Macro(other) { - if (!other) { - return; - } - this.id = other.id; - this.isLooped = other.isLooped; - this.isPrivate = other.isPrivate; - this.name = other.name; - this.macroActions = other.macroActions.map(function (macroAction) { return macro_action_1.Helper.createMacroAction(macroAction); }); - } - Macro.prototype.fromJsonObject = function (jsonObject) { - this.isLooped = jsonObject.isLooped; - this.isPrivate = jsonObject.isPrivate; - this.name = jsonObject.name; - this.macroActions = jsonObject.macroActions.map(function (macroAction) { return macro_action_1.Helper.createMacroAction(macroAction); }); - return this; - }; - Macro.prototype.fromBinary = function (buffer) { - this.isLooped = buffer.readBoolean(); - this.isPrivate = buffer.readBoolean(); - this.name = buffer.readString(); - var macroActionsLength = buffer.readCompactLength(); - this.macroActions = []; - for (var i = 0; i < macroActionsLength; ++i) { - this.macroActions.push(macro_action_1.Helper.createMacroAction(buffer)); - } - return this; - }; - Macro.prototype.toJsonObject = function () { - return { - isLooped: this.isLooped, - isPrivate: this.isPrivate, - name: this.name, - macroActions: this.macroActions.map(function (macroAction) { return macroAction.toJsonObject(); }) - }; - }; - Macro.prototype.toBinary = function (buffer) { - buffer.writeBoolean(this.isLooped); - buffer.writeBoolean(this.isPrivate); - buffer.writeString(this.name); - buffer.writeArray(this.macroActions); - }; - Macro.prototype.toString = function () { - return ""; - }; - return Macro; -}()); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], Macro.prototype, "id", void 0); -exports.Macro = Macro; - - -/***/ }), -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var pluck_1 = __webpack_require__(284); -var map_1 = __webpack_require__(23); -var distinctUntilChanged_1 = __webpack_require__(182); -function select(pathOrMapFn) { - var paths = []; - for (var _i = 1; _i < arguments.length; _i++) { - paths[_i - 1] = arguments[_i]; - } - var mapped$; - if (typeof pathOrMapFn === 'string') { - mapped$ = pluck_1.pluck.call.apply(pluck_1.pluck, [this, pathOrMapFn].concat(paths)); - } - else if (typeof pathOrMapFn === 'function') { - mapped$ = map_1.map.call(this, pathOrMapFn); - } - else { - throw new TypeError(("Unexpected type " + typeof pathOrMapFn + " in select operator,") - + " expected 'string' or 'function'"); - } - return distinctUntilChanged_1.distinctUntilChanged.call(mapped$); -} -exports.select = select; - - -/***/ }), -/* 247 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_instrument__ = __webpack_require__(587); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "StoreDevtoolsModule", function() { return __WEBPACK_IMPORTED_MODULE_0__src_instrument__["a"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_devtools__ = __webpack_require__(381); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "StoreDevtools", function() { return __WEBPACK_IMPORTED_MODULE_1__src_devtools__["a"]; }); - - -//# sourceMappingURL=index.js.map - -/***/ }), -/* 248 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ActionTypes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StoreDevtoolActions; }); -var ActionTypes = { - PERFORM_ACTION: 'PERFORM_ACTION', - RESET: 'RESET', - ROLLBACK: 'ROLLBACK', - COMMIT: 'COMMIT', - SWEEP: 'SWEEP', - TOGGLE_ACTION: 'TOGGLE_ACTION', - SET_ACTIONS_ACTIVE: 'SET_ACTIONS_ACTIVE', - JUMP_TO_STATE: 'JUMP_TO_STATE', - IMPORT_STATE: 'IMPORT_STATE' -}; -/** -* Action creators to change the History state. -*/ -var StoreDevtoolActions = { - performAction: function (action) { - if (typeof action.type === 'undefined') { - throw new Error('Actions may not have an undefined "type" property. ' + - 'Have you misspelled a constant?'); - } - return { type: ActionTypes.PERFORM_ACTION, action: action, timestamp: Date.now() }; - }, - reset: function () { - return { type: ActionTypes.RESET, timestamp: Date.now() }; - }, - rollback: function () { - return { type: ActionTypes.ROLLBACK, timestamp: Date.now() }; - }, - commit: function () { - return { type: ActionTypes.COMMIT, timestamp: Date.now() }; - }, - sweep: function () { - return { type: ActionTypes.SWEEP }; - }, - toggleAction: function (id) { - return { type: ActionTypes.TOGGLE_ACTION, id: id }; - }, - setActionsActive: function (start, end, active) { - if (active === void 0) { active = true; } - return { type: ActionTypes.SET_ACTIONS_ACTIVE, start: start, end: end, active: active }; - }, - jumpToState: function (index) { - return { type: ActionTypes.JUMP_TO_STATE, index: index }; - }, - importState: function (nextLiftedState) { - return { type: ActionTypes.IMPORT_STATE, nextLiftedState: nextLiftedState }; - } -}; -//# sourceMappingURL=actions.js.map - -/***/ }), -/* 249 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(248); -/* harmony export (immutable) */ __webpack_exports__["d"] = difference; -/* harmony export (immutable) */ __webpack_exports__["c"] = unliftState; -/* unused harmony export unliftAction */ -/* harmony export (immutable) */ __webpack_exports__["b"] = liftAction; -/* harmony export (immutable) */ __webpack_exports__["a"] = applyOperators; - -function difference(first, second) { - return first.filter(function (item) { return second.indexOf(item) < 0; }); -} -/** - * Provides an app's view into the state of the lifted store. - */ -function unliftState(liftedState) { - var computedStates = liftedState.computedStates, currentStateIndex = liftedState.currentStateIndex; - var state = computedStates[currentStateIndex].state; - return state; -} -function unliftAction(liftedState) { - return liftedState.actionsById[liftedState.nextActionId - 1]; -} -/** -* Lifts an app's action into an action on the lifted store. -*/ -function liftAction(action) { - return __WEBPACK_IMPORTED_MODULE_0__actions__["a" /* StoreDevtoolActions */].performAction(action); -} -function applyOperators(input$, operators) { - return operators.reduce(function (source$, _a) { - var operator = _a[0], args = _a.slice(1); - return operator.apply(source$, args); - }, input$); -} -//# sourceMappingURL=utils.js.map - -/***/ }), -/* 250 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DockActions; }); - -var DockActions = (function () { - function DockActions() { - } - DockActions.prototype.toggleVisibility = function () { - return { type: DockActions.TOGGLE_VISIBILITY }; - }; - DockActions.prototype.changePosition = function () { - return { type: DockActions.CHANGE_POSITION }; - }; - DockActions.prototype.changeSize = function (size) { - return { type: DockActions.CHANGE_SIZE, payload: size }; - }; - DockActions.prototype.changeMonitor = function () { - return { type: DockActions.CHANGE_MONITOR }; - }; - DockActions.TOGGLE_VISIBILITY = '@@redux-devtools-log-monitor/TOGGLE_VISIBILITY'; - DockActions.CHANGE_POSITION = '@@redux-devtools-log-monitor/CHANGE_POSITION'; - DockActions.CHANGE_SIZE = '@@redux-devtools-log-monitor/CHANGE_SIZE'; - DockActions.CHANGE_MONITOR = '@@redux-devtools-log-monitor/CHANGE_MONITOR'; - DockActions.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, - ]; - /** @nocollapse */ - DockActions.ctorParameters = []; - return DockActions; -}()); -//# sourceMappingURL=actions.js.map - -/***/ }), -/* 251 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { - -var buffer = __webpack_require__(56); -var Buffer = buffer.Buffer; -var SlowBuffer = buffer.SlowBuffer; -var MAX_LEN = buffer.kMaxLength || 2147483647; -exports.alloc = function alloc(size, fill, encoding) { - if (typeof Buffer.alloc === 'function') { - return Buffer.alloc(size, fill, encoding); - } - if (typeof encoding === 'number') { - throw new TypeError('encoding must not be number'); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - var enc = encoding; - var _fill = fill; - if (_fill === undefined) { - enc = undefined; - _fill = 0; - } - var buf = new Buffer(size); - if (typeof _fill === 'string') { - var fillBuf = new Buffer(_fill, enc); - var flen = fillBuf.length; - var i = -1; - while (++i < size) { - buf[i] = fillBuf[i % flen]; - } - } else { - buf.fill(_fill); - } - return buf; -} -exports.allocUnsafe = function allocUnsafe(size) { - if (typeof Buffer.allocUnsafe === 'function') { - return Buffer.allocUnsafe(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - return new Buffer(size); -} -exports.from = function from(value, encodingOrOffset, length) { - if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) { - return Buffer.from(value, encodingOrOffset, length); - } - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number'); - } - if (typeof value === 'string') { - return new Buffer(value, encodingOrOffset); - } - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - var offset = encodingOrOffset; - if (arguments.length === 1) { - return new Buffer(value); - } - if (typeof offset === 'undefined') { - offset = 0; - } - var len = length; - if (typeof len === 'undefined') { - len = value.byteLength - offset; - } - if (offset >= value.byteLength) { - throw new RangeError('\'offset\' is out of bounds'); - } - if (len > value.byteLength - offset) { - throw new RangeError('\'length\' is out of bounds'); - } - return new Buffer(value.slice(offset, offset + len)); - } - if (Buffer.isBuffer(value)) { - var out = new Buffer(value.length); - value.copy(out, 0, 0, value.length); - return out; - } - if (value) { - if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) { - return new Buffer(value); - } - if (value.type === 'Buffer' && Array.isArray(value.data)) { - return new Buffer(value.data); - } - } - - throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'); -} -exports.allocUnsafeSlow = function allocUnsafeSlow(size) { - if (typeof Buffer.allocUnsafeSlow === 'function') { - return Buffer.allocUnsafeSlow(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size >= MAX_LEN) { - throw new RangeError('size is too large'); - } - return new SlowBuffer(size); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(15))) - -/***/ }), -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32))) - -/***/ }), -/* 269 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: block;\n width: 100%; }\n\n.action--editor {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0;\n border: 0; }\n\n.nav {\n padding-bottom: 1rem; }\n .nav li a {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .nav li a.selected {\n font-style: italic; }\n .nav li a:hover {\n cursor: pointer; }\n .nav li.active {\n z-index: 2; }\n .nav li.active a.selected {\n font-style: normal; }\n .nav li.active a:after {\n content: '';\n display: block;\n position: absolute;\n width: 0;\n height: 0;\n top: 0;\n right: -4rem;\n border-color: transparent transparent transparent #337ab7;\n border-style: solid;\n border-width: 2rem; }\n\n.editor__tabs, .editor__tab-links {\n padding-top: 1rem; }\n\n.editor__tabs {\n border-left: 1px solid #ddd;\n margin-left: -1.6rem;\n padding-left: 3rem; }\n\n.editor__actions {\n float: right; }\n .editor__actions-container {\n background: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom: 1px solid #ddd;\n padding: 1rem 1.5rem; }\n\n.flex-button-wrapper {\n display: flex;\n flex-direction: row-reverse; }\n\n.flex-button {\n align-self: flex-end; }\n" - -/***/ }), -/* 270 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - - - -module.exports = Transform; - -var Duplex = __webpack_require__(78); - -/**/ -var util = __webpack_require__(120); -util.inherits = __webpack_require__(92); -/**/ - -util.inherits(Transform, Duplex); - -function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er, data) { - done(stream, er, data); - });else done(stream); - }); -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data !== null && data !== undefined) stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} - -/***/ }), -/* 271 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, setImmediate) {// A bit simpler than readable streams. +// A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. +/**/ + +var processNextTick = __webpack_require__(101); +/**/ + module.exports = Writable; -/**/ -var processNextTick = __webpack_require__(268); -/**/ +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ /**/ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; @@ -2446,45 +4107,39 @@ var Duplex; Writable.WritableState = WritableState; /**/ -var util = __webpack_require__(120); -util.inherits = __webpack_require__(92); +var util = __webpack_require__(76); +util.inherits = __webpack_require__(58); /**/ /**/ var internalUtil = { - deprecate: __webpack_require__(1121) + deprecate: __webpack_require__(836) }; /**/ /**/ -var Stream; -(function () { - try { - Stream = __webpack_require__(191); - } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(175).EventEmitter; - } -})(); +var Stream = __webpack_require__(252); /**/ -var Buffer = __webpack_require__(56).Buffer; /**/ -var bufferShim = __webpack_require__(251); +var Buffer = __webpack_require__(149).Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} /**/ +var destroyImpl = __webpack_require__(253); + util.inherits(Writable, Stream); function nop() {} -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - function WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(78); + Duplex = Duplex || __webpack_require__(50); options = options || {}; @@ -2502,7 +4157,10 @@ function WritableState(options, stream) { this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; // drain event flag. this.needDrain = false; @@ -2513,6 +4171,9 @@ function WritableState(options, stream) { // when 'finish' is emitted this.finished = false; + // has it been destroyed + this.destroyed = false; + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. @@ -2594,7 +4255,7 @@ WritableState.prototype.getBuffer = function getBuffer() { Object.defineProperty(WritableState.prototype, 'buffer', { get: internalUtil.deprecate(function () { return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} })(); @@ -2618,7 +4279,7 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot } function Writable(options) { - Duplex = Duplex || __webpack_require__(78); + Duplex = Duplex || __webpack_require__(50); // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` @@ -2640,6 +4301,10 @@ function Writable(options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; } Stream.call(this); @@ -2657,20 +4322,16 @@ function writeAfterEnd(stream, cb) { processNextTick(cb, er); } -// If we get something that is not a buffer, string, null, or undefined, -// and we're not in objectMode, then that's an error. -// Otherwise stream chunks are all considered to be of length=1, and the -// watermarks determine how many objects to keep in the buffer, rather than -// how many bytes or characters. +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. function validChunk(stream, state, chunk, cb) { var valid = true; var er = false; - // Always throw error if a null is written - // if we are not in object mode then throw - // if it is not a buffer, string, or undefined. + if (chunk === null) { er = new TypeError('May not write null values to stream'); - } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new TypeError('Invalid non-string/buffer chunk'); } if (er) { @@ -2684,19 +4345,24 @@ function validChunk(stream, state, chunk, cb) { Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; + var isBuf = _isUint8Array(chunk) && !state.objectMode; + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } if (typeof encoding === 'function') { cb = encoding; encoding = null; } - if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; - if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) { + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { state.pendingcb++; - ret = writeOrBuffer(this, state, chunk, encoding, cb); + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); } return ret; @@ -2728,7 +4394,7 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = bufferShim.from(chunk, encoding); + chunk = Buffer.from(chunk, encoding); } return chunk; } @@ -2736,10 +4402,15 @@ function decodeChunk(state, chunk, encoding) { // if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, chunk, encoding, cb) { - chunk = decodeChunk(state, chunk, encoding); - - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } var len = state.objectMode ? 1 : chunk.length; state.length += len; @@ -2750,7 +4421,13 @@ function writeOrBuffer(stream, state, chunk, encoding, cb) { if (state.writing || state.corked) { var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; if (last) { last.next = state.lastBufferedRequest; } else { @@ -2775,10 +4452,26 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + processNextTick(cb, er); + // this can emit finish, and it will always happen + // after error + processNextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } } function onwriteStateUpdate(state) { @@ -2808,8 +4501,8 @@ function onwrite(stream, er) { asyncWrite(afterWrite, stream, state, finished, cb); /**/ } else { - afterWrite(stream, state, finished, cb); - } + afterWrite(stream, state, finished, cb); + } } } @@ -2843,11 +4536,14 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; + var allBuffers = true; while (entry) { buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } + buffer.allBuffers = allBuffers; doWrite(stream, state, true, state.length, buffer, '', holder.finish); @@ -2921,23 +4617,37 @@ Writable.prototype.end = function (chunk, encoding, cb) { function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - -function prefinish(stream, state) { - if (!state.prefinished) { +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } state.prefinished = true; stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + processNextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { + prefinish(stream, state); if (state.pendingcb === 0) { - prefinish(stream, state); state.finished = true; stream.emit('finish'); - } else { - prefinish(stream, state); } } return need; @@ -2953,487 +4663,1591 @@ function endWritable(stream, state, cb) { stream.writable = false; } -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32), __webpack_require__(192).setImmediate)) -/***/ }), -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(448)); -__export(__webpack_require__(1033)); -__export(__webpack_require__(1030)); -__export(__webpack_require__(1034)); -__export(__webpack_require__(289)); -__export(__webpack_require__(1031)); -__export(__webpack_require__(1019)); -__export(__webpack_require__(1023)); - - -/***/ }), -/* 289 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_not_found_component_1 = __webpack_require__(1036); -exports.MacroNotFoundComponent = macro_not_found_component_1.MacroNotFoundComponent; -var macro_not_found_guard_service_1 = __webpack_require__(1035); -exports.MacroNotFoundGuard = macro_not_found_guard_service_1.MacroNotFoundGuard; - - -/***/ }), -/* 290 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var KeyModifiers; -(function (KeyModifiers) { - KeyModifiers[KeyModifiers["leftCtrl"] = 1] = "leftCtrl"; - KeyModifiers[KeyModifiers["leftShift"] = 2] = "leftShift"; - KeyModifiers[KeyModifiers["leftAlt"] = 4] = "leftAlt"; - KeyModifiers[KeyModifiers["leftGui"] = 8] = "leftGui"; - KeyModifiers[KeyModifiers["rightCtrl"] = 16] = "rightCtrl"; - KeyModifiers[KeyModifiers["rightShift"] = 32] = "rightShift"; - KeyModifiers[KeyModifiers["rightAlt"] = 64] = "rightAlt"; - KeyModifiers[KeyModifiers["rightGui"] = 128] = "rightGui"; -})(KeyModifiers = exports.KeyModifiers || (exports.KeyModifiers = {})); - - -/***/ }), -/* 291 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var Keymap_1 = __webpack_require__(80); -var Macro_1 = __webpack_require__(194); -var ModuleConfiguration_1 = __webpack_require__(1092); -var UserConfiguration = (function () { - function UserConfiguration() { +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; } - UserConfiguration.prototype.fromJsonObject = function (jsonObject) { - var _this = this; - this.dataModelVersion = jsonObject.dataModelVersion; - this.moduleConfigurations = jsonObject.moduleConfigurations.map(function (moduleConfiguration) { - return new ModuleConfiguration_1.ModuleConfiguration().fromJsonObject(moduleConfiguration); - }); - this.macros = jsonObject.macros.map(function (macroJsonObject, index) { - var macro = new Macro_1.Macro().fromJsonObject(macroJsonObject); - macro.id = index; - return macro; - }); - this.keymaps = jsonObject.keymaps.map(function (keymap) { return new Keymap_1.Keymap().fromJsonObject(keymap, _this.macros); }); - return this; + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38), __webpack_require__(96).setImmediate, __webpack_require__(13))) + +/***/ }), +/* 151 */, +/* 152 */, +/* 153 */, +/* 154 */, +/* 155 */, +/* 156 */, +/* 157 */, +/* 158 */, +/* 159 */, +/* 160 */, +/* 161 */, +/* 162 */, +/* 163 */, +/* 164 */, +/* 165 */, +/* 166 */, +/* 167 */, +/* 168 */, +/* 169 */, +/* 170 */, +/* 171 */, +/* 172 */, +/* 173 */, +/* 174 */, +/* 175 */, +/* 176 */, +/* 177 */, +/* 178 */, +/* 179 */, +/* 180 */, +/* 181 */, +/* 182 */, +/* 183 */, +/* 184 */, +/* 185 */, +/* 186 */, +/* 187 */, +/* 188 */, +/* 189 */, +/* 190 */, +/* 191 */, +/* 192 */, +/* 193 */, +/* 194 */, +/* 195 */, +/* 196 */, +/* 197 */, +/* 198 */, +/* 199 */, +/* 200 */, +/* 201 */, +/* 202 */, +/* 203 */, +/* 204 */, +/* 205 */, +/* 206 */, +/* 207 */, +/* 208 */, +/* 209 */, +/* 210 */, +/* 211 */, +/* 212 */, +/* 213 */, +/* 214 */, +/* 215 */, +/* 216 */, +/* 217 */, +/* 218 */, +/* 219 */, +/* 220 */, +/* 221 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotifierModule", function() { return NotifierModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotifierService", function() { return NotifierService; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵf", function() { return NotifierContainerComponent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵh", function() { return NotifierNotificationComponent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵe", function() { return NotifierConfig; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵb", function() { return NotifierConfigToken; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵa", function() { return NotifierOptionsToken; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵc", function() { return notifierCustomConfigFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵd", function() { return notifierDefaultConfigFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵj", function() { return NotifierAnimationService; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵg", function() { return NotifierQueueService; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵi", function() { return NotifierTimerService; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_common__ = __webpack_require__(26); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Subject__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Subject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_Subject__); + + + + +/** + * Notification + * + * This class describes the structure of a notifiction, including all information it needs to live, and everyone else needs to work with it. + */ +var NotifierNotification = (function () { + /** + * Constructor + * + * @param {?} options + */ + function NotifierNotification(options) { + Object.assign(this, options); + // If not set manually, we have to create a unique notification ID by ourselves. The ID generation relies on the current browser + // datetime in ms, in praticular the moment this notification gets constructed. Concurrency, and thus two IDs being the exact same, + // is not possible due to the action queue concept. + if (options.id === undefined) { + this.id = "ID_" + new Date().getTime(); + } + } + return NotifierNotification; +}()); + +/** + * Notifier queue service + * + * In general, API calls don't get processed right away. Instead, we have to queue them up in order to prevent simultanious API calls + * interfering with each other. This, at least in theory, is possible at any time. In particular, animations - which potentially overlap - + * can cause changes in JS classes as well as affect the DOM. Therefore, the queue service takes all actions, puts them in a queue, and + * processes them at the right time (which is when the previous action has been processed successfully). + * + * Technical sidenote: + * An action looks pretty similar to the ones within the Flux / Redux pattern. + */ +var NotifierQueueService = (function () { + /** + * Constructor + */ + function NotifierQueueService() { + this.actionStream = new __WEBPACK_IMPORTED_MODULE_2_rxjs_Subject__["Subject"](); + this.actionQueue = []; + this.isActionInProgress = false; + } + /** + * Push a new action to the queue, and try to run it + * + * @param {?} action + * @return {?} + */ + NotifierQueueService.prototype.push = function (action) { + this.actionQueue.push(action); + this.tryToRunNextAction(); }; - UserConfiguration.prototype.fromBinary = function (buffer) { - var _this = this; - this.dataModelVersion = buffer.readUInt16(); - this.moduleConfigurations = buffer.readArray(function (uhkBuffer) { - return new ModuleConfiguration_1.ModuleConfiguration().fromBinary(uhkBuffer); - }); - this.macros = buffer.readArray(function (uhkBuffer, index) { - var macro = new Macro_1.Macro().fromBinary(uhkBuffer); - macro.id = index; - return macro; - }); - this.keymaps = buffer.readArray(function (uhkBuffer) { return new Keymap_1.Keymap().fromBinary(uhkBuffer, _this.macros); }); - return this; + /** + * Continue with the next action (called when the current action is finished) + * @return {?} + */ + NotifierQueueService.prototype.continue = function () { + this.isActionInProgress = false; + this.tryToRunNextAction(); }; - UserConfiguration.prototype.toJsonObject = function () { + /** + * Try to run the next action in the queue; we skip if there already is some action in progress, or if there is no action left + * @return {?} + */ + NotifierQueueService.prototype.tryToRunNextAction = function () { + if (this.isActionInProgress || this.actionQueue.length === 0) { + return; // Skip (the queue can now go drink a coffee as it has nothing to do anymore) + } + this.isActionInProgress = true; + this.actionStream.next(this.actionQueue.shift()); // Push next action to the stream, and remove the current action from the queue + }; + return NotifierQueueService; +}()); +NotifierQueueService.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +NotifierQueueService.ctorParameters = function () { return []; }; + +/** + * Notifier configuration + * + * The notifier configuration defines what notifications look like, how they behave, and how they get animated. It is a global + * configuration, which means that it only can be set once (at the beginning), and cannot be changed afterwards. Aligning to the world of + * Angular, this configuration can be provided in the root app module - alternatively, a meaningful default configuration will be used. + */ +var NotifierConfig = (function () { + /** + * Constructor + * + * @param {?=} customOptions + */ + function NotifierConfig(customOptions) { + if (customOptions === void 0) { customOptions = {}; } + // Set default values + this.animations = { + enabled: true, + hide: { + easing: 'ease', + offset: 50, + preset: 'fade', + speed: 300 + }, + overlap: 150, + shift: { + easing: 'ease', + speed: 300 + }, + show: { + easing: 'ease', + preset: 'slide', + speed: 300 + } + }; + this.behaviour = { + autoHide: 7000, + onClick: false, + onMouseover: 'pauseAutoHide', + showDismissButton: true, + stacking: 4 + }; + this.position = { + horizontal: { + distance: 12, + position: 'left' + }, + vertical: { + distance: 12, + gap: 10, + position: 'bottom' + } + }; + this.theme = 'material'; + // The following merges the custom options into the notifier config, respecting the already set default values + // This linear, more explicit and code-sizy workflow is preferred here over a recursive one (because we know the object structure) + // Technical sidenote: Objects are merged, other types of values simply overwritten / copied + if (customOptions.theme !== undefined) { + this.theme = customOptions.theme; + } + if (customOptions.animations !== undefined) { + if (customOptions.animations.enabled !== undefined) { + this.animations.enabled = customOptions.animations.enabled; + } + if (customOptions.animations.overlap !== undefined) { + this.animations.overlap = customOptions.animations.overlap; + } + if (customOptions.animations.hide !== undefined) { + Object.assign(this.animations.hide, customOptions.animations.hide); + } + if (customOptions.animations.shift !== undefined) { + Object.assign(this.animations.shift, customOptions.animations.shift); + } + if (customOptions.animations.show !== undefined) { + Object.assign(this.animations.show, customOptions.animations.show); + } + } + if (customOptions.behaviour !== undefined) { + Object.assign(this.behaviour, customOptions.behaviour); + } + if (customOptions.position !== undefined) { + if (customOptions.position.horizontal !== undefined) { + Object.assign(this.position.horizontal, customOptions.position.horizontal); + } + if (customOptions.position.vertical !== undefined) { + Object.assign(this.position.vertical, customOptions.position.vertical); + } + } + } + return NotifierConfig; +}()); + +/** + * Notifier service + * + * This service provides access to the public notifier API. Once injected into a component, directive, pipe, service, or any other building + * block of an applications, it can be used to show new notifications, and hide existing ones. Internally, it transforms API calls into + * actions, which then get thrown into the action queue - eventually being processed at the right moment. + */ +var NotifierService = (function () { + /** + * Constructor + * + * @param {?} notifierQueueService + * @param {?} config + */ + function NotifierService(notifierQueueService, config // The forwardRef is (sadly) required here + ) { + this.queueService = notifierQueueService; + this.config = config; + } + /** + * Get the notifier configuration + * + * @return {?} + */ + NotifierService.prototype.getConfig = function () { + return this.config; + }; + /** + * API: Show a new notification + * + * @param {?} notificationOptions + * @return {?} + */ + NotifierService.prototype.show = function (notificationOptions) { + this.queueService.push({ + payload: notificationOptions, + type: 'SHOW' + }); + }; + /** + * API: Hide a specific notification, given its ID + * + * @param {?} notificationId + * @return {?} + */ + NotifierService.prototype.hide = function (notificationId) { + this.queueService.push({ + payload: notificationId, + type: 'HIDE' + }); + }; + /** + * API: Hide the newest notification + * @return {?} + */ + NotifierService.prototype.hideNewest = function () { + this.queueService.push({ + type: 'HIDE_NEWEST' + }); + }; + /** + * API: Hide the oldest notification + * @return {?} + */ + NotifierService.prototype.hideOldest = function () { + this.queueService.push({ + type: 'HIDE_OLDEST' + }); + }; + /** + * API: Hide all notifications at once + * @return {?} + */ + NotifierService.prototype.hideAll = function () { + this.queueService.push({ + type: 'HIDE_ALL' + }); + }; + /** + * API: Shortcut for showing a new notification + * + * @param {?} type + * @param {?} message + * @param {?=} notificationId + * @return {?} + */ + NotifierService.prototype.notify = function (type, message, notificationId) { + var /** @type {?} */ notificationOptions = { + message: message, + type: type + }; + if (notificationId !== undefined) { + notificationOptions.id = notificationId; + } + this.show(notificationOptions); + }; + return NotifierService; +}()); +NotifierService.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +NotifierService.ctorParameters = function () { return [ + { type: NotifierQueueService, }, + { type: NotifierConfig, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Inject"], args: [__WEBPACK_IMPORTED_MODULE_1__angular_core__["forwardRef"](function () { return NotifierConfigToken; }),] },] }, +]; }; + +/** + * Notifier container component + * ---------------------------- + * This component acts as a wrapper for all notification components; consequently, it is responsible for creating a new notification + * component and removing an existing notification component. Being more precicely, it also handles side effects of those actions, such as + * shifting or even completely removing other notifications as well. Overall, this components handles actions coming from the queue service + * by subscribing to its action stream. + * + * Technical sidenote: + * This component has to be used somewhere in an application to work; it will not inject and create itself automatically, primarily in order + * to not break the Angular AoT compilation. Moreover, this component (and also the notification components) set their change detection + * strategy onPush, which means that we handle change detection manually in order to get the best performance. (#perfmatters) + */ +var NotifierContainerComponent = (function () { + /** + * Constructor + * + * @param {?} changeDetector + * @param {?} notifierQueueService + * @param {?} notifierService + */ + function NotifierContainerComponent(changeDetector, notifierQueueService, notifierService) { + this.changeDetector = changeDetector; + this.queueService = notifierQueueService; + this.config = notifierService.getConfig(); + this.notifications = []; + } + /** + * Component initialization lifecycle hook, connects this component to the action queue, and then handles incoming actions + * @return {?} + */ + NotifierContainerComponent.prototype.ngOnInit = function () { var _this = this; + this.queueServiceSubscription = this.queueService.actionStream.subscribe(function (action) { + _this.handleAction(action).then(function () { + _this.queueService.continue(); + }); + }); + }; + /** + * Component destroyment lifecycle hook, cleans up the observable subsciption + * @return {?} + */ + NotifierContainerComponent.prototype.ngOnDestroy = function () { + if (this.queueServiceSubscription) { + this.queueServiceSubscription.unsubscribe(); + } + }; + /** + * Notification identifier, used as the ngFor trackby function + * + * @param {?} index + * @param {?} notification + * @return {?} + */ + NotifierContainerComponent.prototype.identifyNotification = function (index, notification) { + return notification.id; + }; + /** + * Event handler, handles clicks on notification dismiss buttons + * + * @param {?} notificationId + * @return {?} + */ + NotifierContainerComponent.prototype.onNotificationDismiss = function (notificationId) { + this.queueService.push({ + payload: notificationId, + type: 'HIDE' + }); + }; + /** + * Event handler, handles notification ready events + * + * @param {?} notificationComponent + * @return {?} + */ + NotifierContainerComponent.prototype.onNotificationReady = function (notificationComponent) { + var /** @type {?} */ currentNotification = this.notifications[this.notifications.length - 1]; // Get the latest notification + currentNotification.component = notificationComponent; // Save the new omponent reference + this.continueHandleShowAction(currentNotification); // Continue with handling the show action + }; + /** + * Handle incoming actions by mapping action types to methods, and then running them + * + * @param {?} action + * @return {?} + */ + NotifierContainerComponent.prototype.handleAction = function (action) { + switch (action.type) { + case 'SHOW': + return this.handleShowAction(action); + case 'HIDE': + return this.handleHideAction(action); + case 'HIDE_OLDEST': + return this.handleHideOldestAction(action); + case 'HIDE_NEWEST': + return this.handleHideNewestAction(action); + case 'HIDE_ALL': + return this.handleHideAllAction(action); + default: + return new Promise(function (resolve, reject) { + resolve(); // Ignore unknown action types + }); + } + }; + /** + * Show a new notification + * + * We simply add the notification to the list, and then wait until its properly initialized / created / rendered. + * + * @param {?} action + * @return {?} + */ + NotifierContainerComponent.prototype.handleShowAction = function (action) { + var _this = this; + return new Promise(function (resolve, reject) { + _this.tempPromiseResolver = resolve; // Save the promise resolve function so that it can be called later on by another method + _this.addNotificationToList(new NotifierNotification(action.payload)); + }); + }; + /** + * Continue to show a new notification (after the notification components is initialized / created / rendered). + * + * If this is the first (and thus only) notification, we can simply show it. Otherwhise, if stacking is disabled (or a low value), we + * switch out notifications, in particular we hide the existing one, and then show our new one. Yet, if stacking is enabled, we first + * shift all older notifications, and then show our new notification. In addition, if there are too many notification on the screen, + * we hide the oldest one first. Furthermore, if configured, animation overlapping is applied. + * + * @param {?} notification + * @return {?} + */ + NotifierContainerComponent.prototype.continueHandleShowAction = function (notification) { + var _this = this; + // First (which means only one) notification in the list? + var /** @type {?} */ numberOfNotifications = this.notifications.length; + if (numberOfNotifications === 1) { + notification.component.show().then(this.tempPromiseResolver); // Done + } + else { + var /** @type {?} */ implicitStackingLimit = 2; + // Stacking enabled? (stacking value below 2 means stacking is disabled) + if (this.config.behaviour.stacking === false || this.config.behaviour.stacking < implicitStackingLimit) { + this.notifications[0].component.hide().then(function () { + _this.removeNotificationFromList(_this.notifications[0]); + notification.component.show().then(_this.tempPromiseResolver); // Done + }); + } + else { + var /** @type {?} */ stepPromises_1 = []; + // Are there now too many notifications? + if (numberOfNotifications > this.config.behaviour.stacking) { + var /** @type {?} */ oldNotifications_1 = this.notifications.slice(1, numberOfNotifications - 1); + // Are animations enabled? + if (this.config.animations.enabled) { + // Is animation overlap enabled? + if (this.config.animations.overlap !== false && this.config.animations.overlap > 0) { + stepPromises_1.push(this.notifications[0].component.hide()); + setTimeout(function () { + stepPromises_1.push(_this.shiftNotifications(oldNotifications_1, notification.component.getHeight(), true)); + }, this.config.animations.hide.speed - this.config.animations.overlap); + setTimeout(function () { + stepPromises_1.push(notification.component.show()); + }, this.config.animations.hide.speed + this.config.animations.shift.speed - this.config.animations.overlap); + } + else { + stepPromises_1.push(new Promise(function (resolve, reject) { + _this.notifications[0].component.hide().then(function () { + _this.shiftNotifications(oldNotifications_1, notification.component.getHeight(), true).then(function () { + notification.component.show().then(resolve); + }); + }); + })); + } + } + else { + stepPromises_1.push(this.notifications[0].component.hide()); + stepPromises_1.push(this.shiftNotifications(oldNotifications_1, notification.component.getHeight(), true)); + stepPromises_1.push(notification.component.show()); + } + } + else { + var /** @type {?} */ oldNotifications_2 = this.notifications.slice(0, numberOfNotifications - 1); + // Are animations enabled? + if (this.config.animations.enabled) { + // Is animation overlap enabled? + if (this.config.animations.overlap !== false && this.config.animations.overlap > 0) { + stepPromises_1.push(this.shiftNotifications(oldNotifications_2, notification.component.getHeight(), true)); + setTimeout(function () { + stepPromises_1.push(notification.component.show()); + }, this.config.animations.shift.speed - this.config.animations.overlap); + } + else { + stepPromises_1.push(new Promise(function (resolve, reject) { + _this.shiftNotifications(oldNotifications_2, notification.component.getHeight(), true).then(function () { + notification.component.show().then(resolve); + }); + })); + } + } + else { + stepPromises_1.push(this.shiftNotifications(oldNotifications_2, notification.component.getHeight(), true)); + stepPromises_1.push(notification.component.show()); + } + } + Promise.all(stepPromises_1).then(function () { + if (numberOfNotifications > _this.config.behaviour.stacking) { + _this.removeNotificationFromList(_this.notifications[0]); + } + _this.tempPromiseResolver(); + }); // Done + } + } + }; + /** + * Hide an existing notification + * + * Fist, we skip everything if there are no notifications at all, or the given notification does not exist. Then, we hide the given + * notification. If there exist older notifications, we then shift them around to fill the gap. Once both hiding the given notification + * and shifting the older notificaitons is done, the given notification gets finally removed (from the DOM). + * + * @param {?} action + * @return {?} + */ + NotifierContainerComponent.prototype.handleHideAction = function (action) { + var _this = this; + return new Promise(function (resolve, reject) { + var /** @type {?} */ stepPromises = []; + // Does the notification exist / are there even any notifications? (let's prevent accidential errors) + var /** @type {?} */ notification = _this.findNotificationById(action.payload); + if (notification === undefined) { + resolve(); + return; + } + // Get older notifications + var /** @type {?} */ notificationIndex = _this.findNotificationIndexById(action.payload); + if (notificationIndex === undefined) { + resolve(); + return; + } + var /** @type {?} */ oldNotifications = _this.notifications.slice(0, notificationIndex); + // Do older notifications exist, and thus do we need to shift other notifications as a consequence? + if (oldNotifications.length > 0) { + // Are animations enabled? + if (_this.config.animations.enabled && _this.config.animations.hide.speed > 0) { + // Is animation overlap enabled? + if (_this.config.animations.overlap !== false && _this.config.animations.overlap > 0) { + stepPromises.push(notification.component.hide()); + setTimeout(function () { + stepPromises.push(_this.shiftNotifications(oldNotifications, notification.component.getHeight(), false)); + }, _this.config.animations.hide.speed - _this.config.animations.overlap); + } + else { + notification.component.hide().then(function () { + stepPromises.push(_this.shiftNotifications(oldNotifications, notification.component.getHeight(), false)); + }); + } + } + else { + stepPromises.push(notification.component.hide()); + stepPromises.push(_this.shiftNotifications(oldNotifications, notification.component.getHeight(), false)); + } + } + else { + stepPromises.push(notification.component.hide()); + } + // Wait until both hiding and shifting is done, then remove the notification from the list + Promise.all(stepPromises).then(function () { + _this.removeNotificationFromList(notification); + resolve(); // Done + }); + }); + }; + /** + * Hide the oldest notification (bridge to handleHideAction) + * + * @param {?} action + * @return {?} + */ + NotifierContainerComponent.prototype.handleHideOldestAction = function (action) { + // Are there any notifications? (prevent accidential errors) + if (this.notifications.length === 0) { + return new Promise(function (resolve, reject) { + resolve(); + }); // Done + } + else { + action.payload = this.notifications[0].id; + return this.handleHideAction(action); + } + }; + /** + * Hide the newest notification (bridge to handleHideAction) + * + * @param {?} action + * @return {?} + */ + NotifierContainerComponent.prototype.handleHideNewestAction = function (action) { + // Are there any notifications? (prevent accidential errors) + if (this.notifications.length === 0) { + return new Promise(function (resolve, reject) { + resolve(); + }); // Done + } + else { + action.payload = this.notifications[this.notifications.length - 1].id; + return this.handleHideAction(action); + } + }; + /** + * Hide all notifications at once + * + * @param {?} action + * @return {?} + */ + NotifierContainerComponent.prototype.handleHideAllAction = function (action) { + var _this = this; + return new Promise(function (resolve, reject) { + // Are there any notifications? (prevent accidential errors) + var /** @type {?} */ numberOfNotifications = _this.notifications.length; + if (numberOfNotifications === 0) { + resolve(); // Done + return; + } + // Are animations enabled? + if (_this.config.animations.enabled && _this.config.animations.hide.speed > 0 && _this.config.animations.hide.offset !== false && + _this.config.animations.hide.offset > 0) { + var _loop_1 = function (i) { + var /** @type {?} */ animationOffset = _this.config.position.vertical.position === 'top' ? numberOfNotifications - 1 : i; + setTimeout(function () { + _this.notifications[i].component.hide().then(function () { + // Are we done here, was this the last notification to be hidden? + if ((_this.config.position.vertical.position === 'top' && i === 0) || + (_this.config.position.vertical.position === 'bottom' && i === numberOfNotifications - 1)) { + _this.removeAllNotificationsFromList(); + resolve(); // Done + } + }); + }, _this.config.animations.hide.offset * animationOffset); + }; + for (var /** @type {?} */ i = numberOfNotifications - 1; i >= 0; i--) { + _loop_1(/** @type {?} */ i); + } + } + else { + var /** @type {?} */ stepPromises = []; + for (var /** @type {?} */ i = numberOfNotifications - 1; i >= 0; i--) { + stepPromises.push(_this.notifications[i].component.hide()); + } + Promise.all(stepPromises).then(function () { + _this.removeAllNotificationsFromList(); + resolve(); // Done + }); + } + }); + }; + /** + * Shift multiple notifications at once + * + * @param {?} notifications + * @param {?} distance + * @param {?} toMakePlace + * @return {?} + */ + NotifierContainerComponent.prototype.shiftNotifications = function (notifications, distance, toMakePlace) { + return new Promise(function (resolve, reject) { + // Are there any notifications to shift? + if (notifications.length === 0) { + resolve(); + return; + } + var /** @type {?} */ notificationPromises = []; + for (var /** @type {?} */ i = notifications.length - 1; i >= 0; i--) { + notificationPromises.push(notifications[i].component.shift(distance, toMakePlace)); + } + Promise.all(notificationPromises).then(resolve); // Done + }); + }; + /** + * Add a new notification to the list of notifications (triggers change detection) + * + * @param {?} notification + * @return {?} + */ + NotifierContainerComponent.prototype.addNotificationToList = function (notification) { + this.notifications.push(notification); + this.changeDetector.markForCheck(); // Run change detection because the notification list changed + }; + /** + * Remove an existing notification from the list of notifications (triggers change detection) + * + * @param {?} notification + * @return {?} + */ + NotifierContainerComponent.prototype.removeNotificationFromList = function (notification) { + this.notifications = + this.notifications.filter(function (item) { return item.component !== notification.component; }); + this.changeDetector.markForCheck(); // Run change detection because the notification list changed + }; + /** + * Remove all notifications from the list (triggers change detection) + * @return {?} + */ + NotifierContainerComponent.prototype.removeAllNotificationsFromList = function () { + this.notifications = []; + this.changeDetector.markForCheck(); // Run change detection because the notification list changed + }; + /** + * Helper: Find a notification in the notification list by a given notification ID + * + * @param {?} notificationId + * @return {?} + */ + NotifierContainerComponent.prototype.findNotificationById = function (notificationId) { + return this.notifications.find(function (currentNotification) { return currentNotification.id === notificationId; }); + }; + /** + * Helper: Find a notification's index by a given notification ID + * + * @param {?} notificationId + * @return {?} + */ + NotifierContainerComponent.prototype.findNotificationIndexById = function (notificationId) { + var /** @type {?} */ notificationIndex = this.notifications.findIndex(function (currentNotification) { return currentNotification.id === notificationId; }); + return (notificationIndex !== -1 ? notificationIndex : undefined); + }; + return NotifierContainerComponent; +}()); +NotifierContainerComponent.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Component"], args: [{ + changeDetection: __WEBPACK_IMPORTED_MODULE_1__angular_core__["ChangeDetectionStrategy"].OnPush, + host: { + class: 'notifier__container' + }, + selector: 'notifier-container', + template: "
" + },] }, +]; +/** + * @nocollapse + */ +NotifierContainerComponent.ctorParameters = function () { return [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["ChangeDetectorRef"], }, + { type: NotifierQueueService, }, + { type: NotifierService, }, +]; }; + +/** + * Fade animation preset + */ +var fade = { + hide: function (notification) { return { - dataModelVersion: this.dataModelVersion, - moduleConfigurations: this.moduleConfigurations.map(function (moduleConfiguration) { return moduleConfiguration.toJsonObject(); }), - keymaps: this.keymaps.map(function (keymap) { return keymap.toJsonObject(_this.macros); }), - macros: this.macros.map(function (macro) { return macro.toJsonObject(); }) + from: { + opacity: '1' + }, + to: { + opacity: '0' + } + }; + }, + show: function (notification) { + return { + from: { + opacity: '0' + }, + to: { + opacity: '1' + } + }; + } +}; + +/** + * Slide animation preset + */ +var slide = { + hide: function (notification) { + // Prepare variables + var config = notification.component.getConfig(); + var shift = notification.component.getShift(); + var from; + var to; + // Configure variables, depending on configuration and component + if (config.position.horizontal.position === 'left') { + from = { + transform: "translate3d( 0, " + shift + "px, 0 )" + }; + to = { + transform: "translate3d( calc( -100% - " + config.position.horizontal.distance + "px - 10px ), " + shift + "px, 0 )" + }; + } + else if (config.position.horizontal.position === 'right') { + from = { + transform: "translate3d( 0, " + shift + "px, 0 )" + }; + to = { + transform: "translate3d( calc( 100% + " + config.position.horizontal.distance + "px + 10px ), " + shift + "px, 0 )" + }; + } + else { + var horizontalPosition = void 0; + if (config.position.vertical.position === 'top') { + horizontalPosition = "calc( -100% - " + config.position.horizontal.distance + "px - 10px )"; + } + else { + horizontalPosition = "calc( 100% + " + config.position.horizontal.distance + "px + 10px )"; + } + from = { + transform: "translate3d( -50%, " + shift + "px, 0 )" + }; + to = { + transform: "translate3d( -50%, " + horizontalPosition + ", 0 )" + }; + } + // Done + return { + from: from, + to: to + }; + }, + show: function (notification) { + // Prepare variables + var config = notification.component.getConfig(); + var from; + var to; + // Configure variables, depending on configuration and component + if (config.position.horizontal.position === 'left') { + from = { + transform: "translate3d( calc( -100% - " + config.position.horizontal.distance + "px - 10px ), 0, 0 )" + }; + to = { + transform: 'translate3d( 0, 0, 0 )' + }; + } + else if (config.position.horizontal.position === 'right') { + from = { + transform: "translate3d( calc( 100% + " + config.position.horizontal.distance + "px + 10px ), 0, 0 )" + }; + to = { + transform: 'translate3d( 0, 0, 0 )' + }; + } + else { + var horizontalPosition = void 0; + if (config.position.vertical.position === 'top') { + horizontalPosition = "calc( -100% - " + config.position.horizontal.distance + "px - 10px )"; + } + else { + horizontalPosition = "calc( 100% + " + config.position.horizontal.distance + "px + 10px )"; + } + from = { + transform: "translate3d( -50%, " + horizontalPosition + ", 0 )" + }; + to = { + transform: 'translate3d( -50%, 0, 0 )' + }; + } + // Done + return { + from: from, + to: to + }; + } +}; + +/** + * Notifier animation service + */ +var NotifierAnimationService = (function () { + /** + * Constructor + */ + function NotifierAnimationService() { + this.animationPresets = { + fade: fade, + slide: slide + }; + } + /** + * Get animation data + * + * This method generates all data the Web Animations API needs to animate our notification. The result depends on both the animation + * direction (either in or out) as well as the notifications (and its attributes) itself. + * + * @param {?} direction + * @param {?} notification + * @return {?} + */ + NotifierAnimationService.prototype.getAnimationData = function (direction, notification) { + // Get all necessary animation data + var /** @type {?} */ keyframes; + var /** @type {?} */ duration; + var /** @type {?} */ easing; + if (direction === 'show') { + keyframes = this.animationPresets[notification.component.getConfig().animations.show.preset].show(notification); + duration = notification.component.getConfig().animations.show.speed; + easing = notification.component.getConfig().animations.show.easing; + } + else { + keyframes = this.animationPresets[notification.component.getConfig().animations.hide.preset].hide(notification); + duration = notification.component.getConfig().animations.hide.speed; + easing = notification.component.getConfig().animations.hide.easing; + } + // Build and return animation data + return { + keyframes: [ + keyframes.from, + keyframes.to + ], + options: { + duration: duration, + easing: easing, + fill: 'forwards' // Keep the newly painted state after the animation finished + } }; }; - UserConfiguration.prototype.toBinary = function (buffer) { + return NotifierAnimationService; +}()); +NotifierAnimationService.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +NotifierAnimationService.ctorParameters = function () { return []; }; + +/** + * Notifier timer service + * + * This service acts as a timer, needed due to the still rather limited setTimeout JavaScript API. The timer service can start and stop a + * timer. Furthermore, it can also pause the timer at any time, and resume later on. The timer API workd promise-based. + */ +var NotifierTimerService = (function () { + /** + * Constructor + */ + function NotifierTimerService() { + this.now = 0; + this.remaining = 0; + } + /** + * Start (or resume) the timer + * + * @param {?} duration + * @return {?} + */ + NotifierTimerService.prototype.start = function (duration) { var _this = this; - buffer.writeUInt16(this.dataModelVersion); - buffer.writeArray(this.moduleConfigurations); - buffer.writeArray(this.macros); - buffer.writeArray(this.keymaps, function (uhkBuffer, keymap) { - keymap.toBinary(uhkBuffer, _this.macros); + return new Promise(function (resolve, reject) { + // For the first run ... + _this.remaining = duration; + // Setup, then start the timer + _this.finishPromiseResolver = resolve; + _this.continue(); }); }; - UserConfiguration.prototype.toString = function () { - return ""; + /** + * Pause the timer + * @return {?} + */ + NotifierTimerService.prototype.pause = function () { + clearTimeout(this.timerId); + this.remaining -= new Date().getTime() - this.now; }; - UserConfiguration.prototype.getKeymap = function (keymapAbbreviation) { - return this.keymaps.find(function (keymap) { return keymapAbbreviation === keymap.abbreviation; }); + /** + * Continue the timer + * @return {?} + */ + NotifierTimerService.prototype.continue = function () { + var _this = this; + this.now = new Date().getTime(); + this.timerId = setTimeout(function () { + _this.finish(); + }, this.remaining); }; - UserConfiguration.prototype.getMacro = function (macroId) { - return this.macros.find(function (macro) { return macroId === macro.id; }); + /** + * Stop the timer + * @return {?} + */ + NotifierTimerService.prototype.stop = function () { + clearTimeout(this.timerId); + this.remaining = 0; }; - return UserConfiguration; + /** + * Finish up the timeout by resolving the timer promise + * @return {?} + */ + NotifierTimerService.prototype.finish = function () { + this.finishPromiseResolver(); + }; + return NotifierTimerService; }()); -__decorate([ - assert_1.assertUInt16, - __metadata("design:type", Number) -], UserConfiguration.prototype, "dataModelVersion", void 0); -exports.UserConfiguration = UserConfiguration; +NotifierTimerService.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +NotifierTimerService.ctorParameters = function () { return []; }; - -/***/ }), -/* 292 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var CaptureService = (function () { - function CaptureService() { - this.leftModifiers = new Map(); - this.rightModifiers = new Map(); - this.mapping = new Map(); +/** + * Notifier notification component + * ------------------------------- + * This component is responsible for actually displaying the notification on screen. In addition, it's able to show and hide this + * notification, in particular to animate this notification in and out, as well as shift (move) this notification vertically around. + * Furthermore, the notification component handles all interactions the user has with this notification / component, such as clicks and + * mouse movements. + */ +var NotifierNotificationComponent = (function () { + /** + * Constructor + * + * @param {?} elementRef + * @param {?} renderer + * @param {?} notifierService + * @param {?} notifierTimerService + * @param {?} notifierAnimationService + */ + function NotifierNotificationComponent(elementRef, renderer, notifierService, notifierTimerService, notifierAnimationService) { + this.config = notifierService.getConfig(); + this.ready = new __WEBPACK_IMPORTED_MODULE_1__angular_core__["EventEmitter"](); + this.dismiss = new __WEBPACK_IMPORTED_MODULE_1__angular_core__["EventEmitter"](); + this.timerService = notifierTimerService; + this.animationService = notifierAnimationService; + this.renderer = renderer; + this.element = elementRef.nativeElement; + this.elementShift = 0; } - CaptureService.prototype.getMap = function (code) { - return this.mapping.get(code); + /** + * Component after view init lifecycle hook, setts up the component and then emits the ready event + * @return {?} + */ + NotifierNotificationComponent.prototype.ngAfterViewInit = function () { + this.setup(); + this.elementHeight = this.element.offsetHeight; + this.elementWidth = this.element.offsetWidth; + this.ready.emit(this); }; - CaptureService.prototype.hasMap = function (code) { - return this.mapping.has(code); + /** + * Get the notifier config + * + * @return {?} + */ + NotifierNotificationComponent.prototype.getConfig = function () { + return this.config; }; - CaptureService.prototype.setModifier = function (left, code) { - return left ? this.leftModifiers.set(code, true) : this.rightModifiers.set(code, true); + /** + * Get notification element height (in px) + * + * @return {?} + */ + NotifierNotificationComponent.prototype.getHeight = function () { + return this.elementHeight; }; - CaptureService.prototype.getModifiers = function (left) { - return left ? this.reMap(this.leftModifiers) : this.reMap(this.rightModifiers); + /** + * Get notification element width (in px) + * + * @return {?} + */ + NotifierNotificationComponent.prototype.getWidth = function () { + return this.elementWidth; }; - CaptureService.prototype.initModifiers = function () { - this.leftModifiers.set(16, false); // Shift - this.leftModifiers.set(17, false); // Ctrl - this.leftModifiers.set(18, false); // Alt - this.leftModifiers.set(91, false); // Super - this.rightModifiers.set(16, false); // Shift - this.rightModifiers.set(17, false); // Ctrl - this.rightModifiers.set(18, false); // Alt - this.rightModifiers.set(91, false); // Super + /** + * Get notification shift offset (in px) + * + * @return {?} + */ + NotifierNotificationComponent.prototype.getShift = function () { + return this.elementShift; }; - CaptureService.prototype.populateMapping = function () { - this.mapping.set(8, 42); // Backspace - this.mapping.set(9, 43); // Tab - this.mapping.set(13, 40); // Enter - this.mapping.set(19, 72); // Pause/break - this.mapping.set(20, 57); // Caps lock - this.mapping.set(27, 41); // Escape - this.mapping.set(32, 44); // (space) - this.mapping.set(33, 75); // Page up - this.mapping.set(34, 78); // Page down - this.mapping.set(35, 77); // End - this.mapping.set(36, 74); // Home - this.mapping.set(37, 80); // Left arrow - this.mapping.set(38, 82); // Up arrow - this.mapping.set(39, 79); // Right arrow - this.mapping.set(40, 81); // Down arrow - this.mapping.set(45, 73); // Insert - this.mapping.set(46, 76); // Delete - this.mapping.set(48, 39); // 0 - this.mapping.set(49, 30); // 1 - this.mapping.set(50, 31); // 2 - this.mapping.set(51, 32); // 3 - this.mapping.set(52, 33); // 4 - this.mapping.set(53, 34); // 5 - this.mapping.set(54, 35); // 6 - this.mapping.set(55, 36); // 7 - this.mapping.set(56, 37); // 8 - this.mapping.set(57, 38); // 9 - this.mapping.set(65, 4); // A - this.mapping.set(66, 5); // B - this.mapping.set(67, 6); // C - this.mapping.set(68, 7); // D - this.mapping.set(69, 8); // E - this.mapping.set(70, 9); // F - this.mapping.set(71, 10); // G - this.mapping.set(72, 11); // H - this.mapping.set(73, 12); // I - this.mapping.set(74, 13); // J - this.mapping.set(75, 14); // K - this.mapping.set(76, 15); // L - this.mapping.set(77, 16); // M - this.mapping.set(78, 17); // N - this.mapping.set(79, 18); // O - this.mapping.set(80, 19); // P - this.mapping.set(81, 20); // Q - this.mapping.set(82, 21); // R - this.mapping.set(83, 22); // S - this.mapping.set(84, 23); // T - this.mapping.set(85, 24); // U - this.mapping.set(86, 25); // V - this.mapping.set(87, 26); // W - this.mapping.set(88, 27); // X - this.mapping.set(89, 28); // Y - this.mapping.set(90, 29); // Z - this.mapping.set(93, 118); // Menu - this.mapping.set(96, 98); // Num pad 0 - this.mapping.set(97, 89); // Num pad 1 - this.mapping.set(98, 90); // Num pad 2 - this.mapping.set(99, 91); // Num pad 3 - this.mapping.set(100, 92); // Num pad 4 - this.mapping.set(101, 93); // Num pad 5 - this.mapping.set(102, 94); // Num pad 6 - this.mapping.set(103, 95); // Num pad 7 - this.mapping.set(104, 96); // Num pad 8 - this.mapping.set(105, 97); // Num pad 9 - this.mapping.set(106, 85); // Multiply - this.mapping.set(107, 87); // Add - this.mapping.set(109, 86); // Subtract - this.mapping.set(110, 99); // Decimal point - this.mapping.set(111, 84); // Divide - this.mapping.set(112, 58); // F1 - this.mapping.set(113, 59); // F2 - this.mapping.set(114, 60); // F3 - this.mapping.set(115, 61); // F4 - this.mapping.set(116, 62); // F5 - this.mapping.set(117, 63); // F6 - this.mapping.set(118, 64); // F7 - this.mapping.set(119, 65); // F8 - this.mapping.set(120, 66); // F9 - this.mapping.set(121, 67); // F10 - this.mapping.set(122, 68); // F11 - this.mapping.set(123, 69); // F12 - this.mapping.set(144, 83); // Num lock - this.mapping.set(145, 71); // Scroll lock - this.mapping.set(186, 51); // Semi-colon - this.mapping.set(187, 46); // Equal sign - this.mapping.set(188, 54); // Comma - this.mapping.set(189, 45); // Dash - this.mapping.set(190, 55); // Period - this.mapping.set(191, 56); // Forward slash - this.mapping.set(192, 53); // Grave accent - this.mapping.set(219, 47); // Open bracket - this.mapping.set(220, 49); // Back slash - this.mapping.set(221, 48); // Close bracket - this.mapping.set(222, 52); // Single quote + /** + * Show (animate in) this notification + * + * @return {?} + */ + NotifierNotificationComponent.prototype.show = function () { + var _this = this; + return new Promise(function (resolve, reject) { + // Are animations enabled? + if (_this.config.animations.enabled && _this.config.animations.show.speed > 0) { + // Get animation data + var /** @type {?} */ animationData = _this.animationService.getAnimationData('show', _this.notification); + // Set initial styles (styles before animation), prevents quick flicker when animation starts + var /** @type {?} */ animatedProperties = Object.keys(animationData.keyframes[0]); + for (var /** @type {?} */ i = animatedProperties.length - 1; i >= 0; i--) { + _this.renderer.setStyle(_this.element, animatedProperties[i], animationData.keyframes[0][animatedProperties[i]]); + } + // Animate notification in + _this.renderer.setStyle(_this.element, 'visibility', 'visible'); + var /** @type {?} */ animation = _this.element.animate(animationData.keyframes, animationData.options); + animation.onfinish = function () { + _this.startAutoHideTimer(); + resolve(); // Done + }; + } + else { + // Show notification + _this.renderer.setStyle(_this.element, 'visibility', 'visible'); + _this.startAutoHideTimer(); + resolve(); // Done + } + }); }; - CaptureService.prototype.reMap = function (value) { - return [value.get(16), value.get(17), value.get(91), value.get(18)]; + /** + * Hide (animate out) this notification + * + * @return {?} + */ + NotifierNotificationComponent.prototype.hide = function () { + var _this = this; + return new Promise(function (resolve, reject) { + _this.stopAutoHideTimer(); + // Are animations enabled? + if (_this.config.animations.enabled && _this.config.animations.hide.speed > 0) { + var /** @type {?} */ animationData = _this.animationService.getAnimationData('hide', _this.notification); + var /** @type {?} */ animation = _this.element.animate(animationData.keyframes, animationData.options); + animation.onfinish = function () { + resolve(); // Done + }; + } + else { + resolve(); // Done + } + }); }; - return CaptureService; + /** + * Shift (move) this notification + * + * @param {?} distance + * @param {?} shiftToMakePlace + * @return {?} + */ + NotifierNotificationComponent.prototype.shift = function (distance, shiftToMakePlace) { + var _this = this; + return new Promise(function (resolve, reject) { + // Calculate new position (position after the shift) + var /** @type {?} */ newElementShift; + if ((_this.config.position.vertical.position === 'top' && shiftToMakePlace) + || (_this.config.position.vertical.position === 'bottom' && !shiftToMakePlace)) { + newElementShift = _this.elementShift + distance + _this.config.position.vertical.gap; + } + else { + newElementShift = _this.elementShift - distance - _this.config.position.vertical.gap; + } + var /** @type {?} */ horizontalPosition = _this.config.position.horizontal.position === 'middle' ? '-50%' : '0'; + // Are animations enabled? + if (_this.config.animations.enabled && _this.config.animations.shift.speed > 0) { + var /** @type {?} */ animationData = { + keyframes: [ + { + transform: "translate3d( " + horizontalPosition + ", " + _this.elementShift + "px, 0 )" + }, + { + transform: "translate3d( " + horizontalPosition + ", " + newElementShift + "px, 0 )" + } + ], + options: { + duration: _this.config.animations.shift.speed, + easing: _this.config.animations.shift.easing, + fill: 'forwards' + } + }; + _this.elementShift = newElementShift; + var /** @type {?} */ animation = _this.element.animate(animationData.keyframes, animationData.options); + animation.onfinish = function () { + resolve(); // Done + }; + } + else { + _this.renderer.setStyle(_this.element, 'transform', "translate3d( " + horizontalPosition + ", " + newElementShift + "px, 0 )"); + _this.elementShift = newElementShift; + resolve(); // Done + } + }); + }; + /** + * Handle click on dismiss button + * @return {?} + */ + NotifierNotificationComponent.prototype.onClickDismiss = function () { + this.dismiss.emit(this.notification.id); + }; + /** + * Handle mouseover over notification area + * @return {?} + */ + NotifierNotificationComponent.prototype.onNotificationMouseover = function () { + if (this.config.behaviour.onMouseover === 'pauseAutoHide') { + this.pauseAutoHideTimer(); + } + else if (this.config.behaviour.onMouseover === 'resetAutoHide') { + this.stopAutoHideTimer(); + } + }; + /** + * Handle mouseout from notification area + * @return {?} + */ + NotifierNotificationComponent.prototype.onNotificationMouseout = function () { + if (this.config.behaviour.onMouseover === 'pauseAutoHide') { + this.continueAutoHideTimer(); + } + else if (this.config.behaviour.onMouseover === 'resetAutoHide') { + this.startAutoHideTimer(); + } + }; + /** + * Handle click on notification area + * @return {?} + */ + NotifierNotificationComponent.prototype.onNotificationClick = function () { + if (this.config.behaviour.onClick === 'hide') { + this.onClickDismiss(); + } + }; + /** + * Start the auto hide timer (if enabled) + * @return {?} + */ + NotifierNotificationComponent.prototype.startAutoHideTimer = function () { + var _this = this; + if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) { + this.timerService.start(this.config.behaviour.autoHide).then(function () { + _this.onClickDismiss(); + }); + } + }; + /** + * Pause the auto hide timer (if enabled) + * @return {?} + */ + NotifierNotificationComponent.prototype.pauseAutoHideTimer = function () { + if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) { + this.timerService.pause(); + } + }; + /** + * Continue the auto hide timer (if enabled) + * @return {?} + */ + NotifierNotificationComponent.prototype.continueAutoHideTimer = function () { + if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) { + this.timerService.continue(); + } + }; + /** + * Stop the auto hide timer (if enabled) + * @return {?} + */ + NotifierNotificationComponent.prototype.stopAutoHideTimer = function () { + if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) { + this.timerService.stop(); + } + }; + /** + * Initial notification setup + * @return {?} + */ + NotifierNotificationComponent.prototype.setup = function () { + // Set start position (initially the exact same for every new notification) + if (this.config.position.horizontal.position === 'left') { + this.renderer.setStyle(this.element, 'left', this.config.position.horizontal.distance + "px"); + } + else if (this.config.position.horizontal.position === 'right') { + this.renderer.setStyle(this.element, 'right', this.config.position.horizontal.distance + "px"); + } + else { + this.renderer.setStyle(this.element, 'left', '50%'); + // Let's get the GPU handle some work as well (#perfmatters) + this.renderer.setStyle(this.element, 'transform', 'translate3d( -50%, 0, 0 )'); + } + if (this.config.position.vertical.position === 'top') { + this.renderer.setStyle(this.element, 'top', this.config.position.vertical.distance + "px"); + } + else { + this.renderer.setStyle(this.element, 'bottom', this.config.position.vertical.distance + "px"); + } + // Add classes (responsible for visual design) + this.renderer.addClass(this.element, "notifier__notification--" + this.notification.type); + this.renderer.addClass(this.element, "notifier__notification--" + this.config.theme); + }; + return NotifierNotificationComponent; }()); -CaptureService = __decorate([ - core_1.Injectable(), - __metadata("design:paramtypes", []) -], CaptureService); -exports.CaptureService = CaptureService; - - -/***/ }), -/* 293 */, -/* 294 */, -/* 295 */, -/* 296 */, -/* 297 */, -/* 298 */, -/* 299 */, -/* 300 */, -/* 301 */, -/* 302 */, -/* 303 */, -/* 304 */, -/* 305 */, -/* 306 */, -/* 307 */, -/* 308 */, -/* 309 */, -/* 310 */, -/* 311 */, -/* 312 */, -/* 313 */, -/* 314 */, -/* 315 */, -/* 316 */, -/* 317 */, -/* 318 */, -/* 319 */, -/* 320 */, -/* 321 */, -/* 322 */, -/* 323 */, -/* 324 */, -/* 325 */, -/* 326 */, -/* 327 */, -/* 328 */, -/* 329 */, -/* 330 */, -/* 331 */, -/* 332 */, -/* 333 */, -/* 334 */, -/* 335 */, -/* 336 */, -/* 337 */, -/* 338 */, -/* 339 */, -/* 340 */, -/* 341 */, -/* 342 */, -/* 343 */, -/* 344 */, -/* 345 */, -/* 346 */, -/* 347 */, -/* 348 */, -/* 349 */, -/* 350 */, -/* 351 */, -/* 352 */, -/* 353 */, -/* 354 */, -/* 355 */, -/* 356 */, -/* 357 */, -/* 358 */, -/* 359 */, -/* 360 */, -/* 361 */, -/* 362 */, -/* 363 */, -/* 364 */, -/* 365 */, -/* 366 */, -/* 367 */, -/* 368 */, -/* 369 */, -/* 370 */, -/* 371 */, -/* 372 */, -/* 373 */, -/* 374 */, -/* 375 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var Observable_1 = __webpack_require__(1); -var select_1 = __webpack_require__(246); -Observable_1.Observable.prototype.select = select_1.select; - - -/***/ }), -/* 376 */, -/* 377 */, -/* 378 */, -/* 379 */, -/* 380 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return STORE_DEVTOOLS_CONFIG; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return INITIAL_OPTIONS; }); - -var STORE_DEVTOOLS_CONFIG = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["OpaqueToken"]('@ngrx/devtools Options'); -var INITIAL_OPTIONS = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["OpaqueToken"]('@ngrx/devtools Initial Config'); -//# sourceMappingURL=config.js.map - -/***/ }), -/* 381 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_store__ = __webpack_require__(9); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__ = __webpack_require__(177); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__ = __webpack_require__(283); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__ = __webpack_require__(124); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__ = __webpack_require__(285); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__ = __webpack_require__(425); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__ = __webpack_require__(286); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__ = __webpack_require__(184); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__extension__ = __webpack_require__(382); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils__ = __webpack_require__(249); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__reducer__ = __webpack_require__(588); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__actions__ = __webpack_require__(248); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__config__ = __webpack_require__(380); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DevtoolsDispatcher; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StoreDevtools; }); -var __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +NotifierNotificationComponent.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Component"], args: [{ + changeDetection: __WEBPACK_IMPORTED_MODULE_1__angular_core__["ChangeDetectionStrategy"].OnPush, + host: { + '(click)': 'onNotificationClick()', + '(mouseout)': 'onNotificationMouseout()', + '(mouseover)': 'onNotificationMouseover()', + class: 'notifier__notification' + }, + providers: [ + // We provide the timer to the component's local injector, so that every notification components gets its own + // instance of the timer service, thus running their timers independently from each other + NotifierTimerService + ], + selector: 'notifier-notification', + template: "

{{ notification.message }}

" + },] }, +]; +/** + * @nocollapse + */ +NotifierNotificationComponent.ctorParameters = function () { return [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["ElementRef"], }, + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Renderer2"], }, + { type: NotifierService, }, + { type: NotifierTimerService, }, + { type: NotifierAnimationService, }, +]; }; +NotifierNotificationComponent.propDecorators = { + 'notification': [{ type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Input"] },], + 'ready': [{ type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Output"] },], + 'dismiss': [{ type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Output"] },], }; +/** + * Injection Token for notifier options + */ +var NotifierOptionsToken = new __WEBPACK_IMPORTED_MODULE_1__angular_core__["InjectionToken"]('[angular-notifier] Notifier Options'); +/** + * Injection Token for notifier configuration + */ +var NotifierConfigToken = new __WEBPACK_IMPORTED_MODULE_1__angular_core__["InjectionToken"]('[anuglar-notifier] Notifier Config'); +/** + * Factory for a notifier configuration with custom options + * + * Sidenote: + * Required as Angular AoT compilation cannot handle dynamic functions; see . + * + * @param {?} options + * @return {?} + */ +function notifierCustomConfigFactory(options) { + return new NotifierConfig(options); +} +/** + * Factory for a notifier configuration with default options + * + * Sidenote: + * Required as Angular AoT compilation cannot handle dynamic functions; see . + * + * @return {?} + */ +function notifierDefaultConfigFactory() { + return new NotifierConfig({}); +} +/** + * Notifier module + */ +var NotifierModule = (function () { + function NotifierModule() { + } + /** + * Setup the notifier module with custom providers, in this case with a custom configuration based on the givne options + * + * @param {?=} options + * @return {?} + */ + NotifierModule.withConfig = function (options) { + if (options === void 0) { options = {}; } + return { + ngModule: NotifierModule, + providers: [ + // Provide the options itself upfront (as we need to inject them as dependencies -- see below) + { + provide: NotifierOptionsToken, + useValue: options + }, + // Provide a custom notifier configuration, based on the given notifier options + { + deps: [ + NotifierOptionsToken + ], + provide: NotifierConfigToken, + useFactory: notifierCustomConfigFactory + } + ] + }; + }; + return NotifierModule; +}()); +NotifierModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["NgModule"], args: [{ + declarations: [ + NotifierContainerComponent, + NotifierNotificationComponent + ], + exports: [ + NotifierContainerComponent + ], + imports: [ + __WEBPACK_IMPORTED_MODULE_0__angular_common__["CommonModule"] + ], + providers: [ + NotifierAnimationService, + NotifierService, + NotifierQueueService, + // Provide the default notifier configuration if just the module is imported + { + provide: NotifierConfigToken, + useFactory: notifierDefaultConfigFactory + } + ] + },] }, +]; +/** + * @nocollapse + */ +NotifierModule.ctorParameters = function () { return []; }; + +/** + * Generated bundle index. Do not edit. + */ + + + +//# sourceMappingURL=angular-notifier.es5.js.map + + +/***/ }), +/* 222 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DevtoolsDispatcher; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return StoreDevtools; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_store__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__ = __webpack_require__(71); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__ = __webpack_require__(116); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__ = __webpack_require__(66); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__ = __webpack_require__(126); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__ = __webpack_require__(193); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__ = __webpack_require__(97); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__ = __webpack_require__(93); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__extension__ = __webpack_require__(223); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils__ = __webpack_require__(131); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__reducer__ = __webpack_require__(596); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__actions__ = __webpack_require__(132); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__config__ = __webpack_require__(224); +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + @@ -3451,31 +6265,32 @@ var __extends = (this && this.__extends) || function (d, b) { var DevtoolsDispatcher = (function (_super) { __extends(DevtoolsDispatcher, _super); function DevtoolsDispatcher() { - _super.apply(this, arguments); + return _super !== null && _super.apply(this, arguments) || this; } - DevtoolsDispatcher.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, - ]; - /** @nocollapse */ - DevtoolsDispatcher.ctorParameters = []; return DevtoolsDispatcher; }(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Dispatcher"])); + +DevtoolsDispatcher.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, +]; +/** @nocollapse */ +DevtoolsDispatcher.ctorParameters = function () { return []; }; var StoreDevtools = (function () { function StoreDevtools(dispatcher, actions$, reducers$, extension, initialState, config) { - var liftedInitialState = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__reducer__["a" /* liftInitialState */])(initialState, config.monitor); - var liftReducer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_12__reducer__["b" /* liftReducerWith */])(initialState, liftedInitialState, config.monitor, { + var liftedInitialState = __WEBPACK_IMPORTED_MODULE_12__reducer__["a" /* liftInitialState */](initialState, config.monitor); + var liftReducer = __WEBPACK_IMPORTED_MODULE_12__reducer__["b" /* liftReducerWith */](initialState, liftedInitialState, config.monitor, { maxAge: config.maxAge }); - var liftedAction$ = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__utils__["a" /* applyOperators */])(actions$, [ + var liftedAction$ = __WEBPACK_IMPORTED_MODULE_11__utils__["a" /* applyOperators */](actions$, [ [__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__["skip"], 1], [__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__["merge"], extension.actions$], - [__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__["map"], __WEBPACK_IMPORTED_MODULE_11__utils__["b" /* liftAction */]], + [__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__["map"], __WEBPACK_IMPORTED_MODULE_11__utils__["c" /* liftAction */]], [__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__["merge"], dispatcher, extension.liftedActions$], [__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__["observeOn"], __WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__["queue"]] ]); var liftedReducer$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__["map"].call(reducers$, liftReducer); var liftedStateSubject = new __WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__["ReplaySubject"](1); - var liftedStateSubscription = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_11__utils__["a" /* applyOperators */])(liftedAction$, [ + var liftedStateSubscription = __WEBPACK_IMPORTED_MODULE_11__utils__["a" /* applyOperators */](liftedAction$, [ [__WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__["withLatestFrom"], liftedReducer$], [__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__["scan"], function (liftedState, _a) { var action = _a[0], reducer = _a[1]; @@ -3485,7 +6300,7 @@ var StoreDevtools = (function () { }, liftedInitialState] ]).subscribe(liftedStateSubject); var liftedState$ = liftedStateSubject.asObservable(); - var state$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__["map"].call(liftedState$, __WEBPACK_IMPORTED_MODULE_11__utils__["c" /* unliftState */]); + var state$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__["map"].call(liftedState$, __WEBPACK_IMPORTED_MODULE_11__utils__["d" /* unliftState */]); this.stateSubscription = liftedStateSubscription; this.dispatcher = dispatcher; this.liftedState = liftedState$; @@ -3500,69 +6315,70 @@ var StoreDevtools = (function () { StoreDevtools.prototype.error = function (error) { }; StoreDevtools.prototype.complete = function () { }; StoreDevtools.prototype.performAction = function (action) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].performAction(action)); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].performAction(action)); }; StoreDevtools.prototype.reset = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].reset()); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].reset()); }; StoreDevtools.prototype.rollback = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].rollback()); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].rollback()); }; StoreDevtools.prototype.commit = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].commit()); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].commit()); }; StoreDevtools.prototype.sweep = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].sweep()); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].sweep()); }; StoreDevtools.prototype.toggleAction = function (id) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].toggleAction(id)); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].toggleAction(id)); }; StoreDevtools.prototype.jumpToState = function (index) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].jumpToState(index)); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].jumpToState(index)); }; StoreDevtools.prototype.importState = function (nextLiftedState) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["a" /* StoreDevtoolActions */].importState(nextLiftedState)); + this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].importState(nextLiftedState)); }; - StoreDevtools.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, - ]; - /** @nocollapse */ - StoreDevtools.ctorParameters = [ - { type: DevtoolsDispatcher, }, - { type: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Dispatcher"], }, - { type: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"], }, - { type: __WEBPACK_IMPORTED_MODULE_10__extension__["a" /* DevtoolsExtension */], }, - { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_STATE"],] },] }, - { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [__WEBPACK_IMPORTED_MODULE_14__config__["a" /* STORE_DEVTOOLS_CONFIG */],] },] }, - ]; return StoreDevtools; }()); + +StoreDevtools.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, +]; +/** @nocollapse */ +StoreDevtools.ctorParameters = function () { return [ + { type: DevtoolsDispatcher, }, + { type: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Dispatcher"], }, + { type: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"], }, + { type: __WEBPACK_IMPORTED_MODULE_10__extension__["a" /* DevtoolsExtension */], }, + { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_STATE"],] },] }, + { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [__WEBPACK_IMPORTED_MODULE_14__config__["b" /* STORE_DEVTOOLS_CONFIG */],] },] }, +]; }; //# sourceMappingURL=devtools.js.map /***/ }), -/* 382 */ +/* 223 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__ = __webpack_require__(1); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty__ = __webpack_require__(417); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__ = __webpack_require__(93); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share__ = __webpack_require__(424); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap__ = __webpack_require__(426); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil__ = __webpack_require__(427); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils__ = __webpack_require__(249); /* unused harmony export ExtensionActionTypes */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return REDUX_DEVTOOLS_EXTENSION; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DevtoolsExtension; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty__ = __webpack_require__(183); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__ = __webpack_require__(45); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share__ = __webpack_require__(118); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap__ = __webpack_require__(195); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil__ = __webpack_require__(196); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils__ = __webpack_require__(131); @@ -3594,7 +6410,7 @@ var DevtoolsExtension = (function () { DevtoolsExtension.prototype.createChangesObservable = function () { var _this = this; if (!this.devtoolsExtension) { - return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty__["empty"])(); + return __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_empty__["empty"](); } return new __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"](function (subscriber) { var connection = _this.devtoolsExtension.connect({ instanceId: _this.instanceId }); @@ -3611,12 +6427,12 @@ var DevtoolsExtension = (function () { // Listen for the stop action var stop$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__["filter"].call(changes$, function (change) { return change.type === ExtensionActionTypes.STOP; }); // Listen for lifted actions - var liftedActions$ = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__utils__["a" /* applyOperators */])(changes$, [ + var liftedActions$ = __WEBPACK_IMPORTED_MODULE_8__utils__["a" /* applyOperators */](changes$, [ [__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__["filter"], function (change) { return change.type === ExtensionActionTypes.DISPATCH; }], [__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__["map"], function (change) { return _this.unwrapAction(change.payload); }] ]); // Listen for unlifted actions - var actions$ = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__utils__["a" /* applyOperators */])(changes$, [ + var actions$ = __WEBPACK_IMPORTED_MODULE_8__utils__["a" /* applyOperators */](changes$, [ [__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__["filter"], function (change) { return change.type === ExtensionActionTypes.ACTION; }], [__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__["map"], function (change) { return _this.unwrapAction(change.payload); }] ]); @@ -3629,31 +6445,45 @@ var DevtoolsExtension = (function () { DevtoolsExtension.prototype.unwrapAction = function (action) { return typeof action === 'string' ? eval("(" + action + ")") : action; }; - DevtoolsExtension.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, - ]; - /** @nocollapse */ - DevtoolsExtension.ctorParameters = [ - { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [REDUX_DEVTOOLS_EXTENSION,] },] }, - ]; return DevtoolsExtension; }()); + +DevtoolsExtension.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, +]; +/** @nocollapse */ +DevtoolsExtension.ctorParameters = function () { return [ + { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [REDUX_DEVTOOLS_EXTENSION,] },] }, +]; }; //# sourceMappingURL=extension.js.map /***/ }), -/* 383 */ +/* 224 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return STORE_DEVTOOLS_CONFIG; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return INITIAL_OPTIONS; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); + +var STORE_DEVTOOLS_CONFIG = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["OpaqueToken"]('@ngrx/devtools Options'); +var INITIAL_OPTIONS = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["OpaqueToken"]('@ngrx/devtools Initial Config'); +//# sourceMappingURL=config.js.map + +/***/ }), +/* 225 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(43); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__commander__ = __webpack_require__(590); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dock__ = __webpack_require__(592); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dock_monitor__ = __webpack_require__(591); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions__ = __webpack_require__(250); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__reducer__ = __webpack_require__(594); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_6__reducer__["a"]; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DockMonitorModule; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(26); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__commander__ = __webpack_require__(598); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dock__ = __webpack_require__(600); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dock_monitor__ = __webpack_require__(601); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions__ = __webpack_require__(134); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__reducer__ = __webpack_require__(602); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_6__reducer__["a"]; }); @@ -3689,16 +6519,16 @@ var DockMonitorModule = (function () { //# sourceMappingURL=index.js.map /***/ }), -/* 384 */ +/* 226 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__ = __webpack_require__(579); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return KNOWN; }); +/* harmony export (immutable) */ __webpack_exports__["d"] = getTypeOf; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getLabelFor; }); +/* harmony export (immutable) */ __webpack_exports__["b"] = getChildrenFor; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__ = __webpack_require__(606); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return KNOWN; }); -/* harmony export (immutable) */ __webpack_exports__["c"] = getTypeOf; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getLabelFor; }); -/* harmony export (immutable) */ __webpack_exports__["a"] = getChildrenFor; var KNOWN = { Array: 'array', @@ -3735,16 +6565,16 @@ var withQuotes = function (val) { return ("\"" + val + "\""); }; var toString = function (val) { return val.toString(); }; var iterableToArray = function (value) { return Array.from(value); }; var labelFactoriesForTypes = (_a = {}, - _a[KNOWN.Array] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"])(typeIndicator('[]'), lengthLabel('item', 'items'), arrayLength), - _a[KNOWN.Object] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"])(typeIndicator('{}'), lengthLabel('key', 'keys'), arrayLength, Object.getOwnPropertyNames), + _a[KNOWN.Array] = __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"](typeIndicator('[]'), lengthLabel('item', 'items'), arrayLength), + _a[KNOWN.Object] = __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"](typeIndicator('{}'), lengthLabel('key', 'keys'), arrayLength, Object.getOwnPropertyNames), _a[KNOWN.Null] = typeIdentity(KNOWN.Null), _a[KNOWN.Undefined] = typeIdentity(KNOWN.Undefined), _a[KNOWN.Boolean] = function (val) { return val ? 'true' : 'false'; }, _a[KNOWN.Number] = toString, _a[KNOWN.String] = withQuotes, - _a[KNOWN.Symbol] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"])(withQuotes, toString), + _a[KNOWN.Symbol] = __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"](withQuotes, toString), _a[KNOWN.Function] = typeIdentity(KNOWN.Function), - _a[KNOWN.Iterable] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"])(typeIndicator('()'), lengthLabel('entry', 'entries'), arrayLength, iterableToArray), + _a[KNOWN.Iterable] = __WEBPACK_IMPORTED_MODULE_0__ngrx_core_compose__["compose"](typeIndicator('()'), lengthLabel('entry', 'entries'), arrayLength, iterableToArray), _a ); var lookupLabelForType = function (type) { return labelFactoriesForTypes[type]; }; @@ -3772,26 +6602,47 @@ var _a; //# sourceMappingURL=types.js.map /***/ }), -/* 385 */, -/* 386 */, -/* 387 */, -/* 388 */, -/* 389 */, -/* 390 */, -/* 391 */, -/* 392 */, -/* 393 */, -/* 394 */, -/* 395 */, -/* 396 */, -/* 397 */, -/* 398 */, -/* 399 */, -/* 400 */, -/* 401 */, -/* 402 */, -/* 403 */, -/* 404 */ +/* 227 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_actions__ = __webpack_require__(135); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "routerActions", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["f"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "routerActionTypes", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["e"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "go", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["c"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "replace", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["d"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "search", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["g"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "show", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["h"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "back", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["a"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "forward", function() { return __WEBPACK_IMPORTED_MODULE_0__src_actions__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_reducer__ = __webpack_require__(612); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "initialState", function() { return __WEBPACK_IMPORTED_MODULE_1__src_reducer__["a"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "routerReducer", function() { return __WEBPACK_IMPORTED_MODULE_1__src_reducer__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_router_store_module__ = __webpack_require__(613); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "setupRouterStore", function() { return __WEBPACK_IMPORTED_MODULE_2__src_router_store_module__["c"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "provideRouterConnector", function() { return __WEBPACK_IMPORTED_MODULE_2__src_router_store_module__["b"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "RouterStoreModule", function() { return __WEBPACK_IMPORTED_MODULE_2__src_router_store_module__["a"]; }); + + + +//# sourceMappingURL=index.js.map + +/***/ }), +/* 228 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var index_1 = __webpack_require__(218); +exports.dragula = index_1.dragula; +exports.DragulaDirective = index_1.DragulaDirective; +exports.DragulaModule = index_1.DragulaModule; +exports.DragulaService = index_1.DragulaService; + + +/***/ }), +/* 229 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3799,58 +6650,1108 @@ var _a; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } -__export(__webpack_require__(403)); +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(230)); +__export(__webpack_require__(617)); /***/ }), -/* 405 */, -/* 406 */, -/* 407 */ +/* 230 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +var AddOnComponent = (function () { + function AddOnComponent(route) { + this.name$ = route + .params + .select('name'); + } + return AddOnComponent; +}()); +AddOnComponent = __decorate([ + core_1.Component({ + selector: 'add-on', + template: __webpack_require__(615), + styles: [__webpack_require__(616)], + host: { + 'class': 'container-fluid' + } + }), + __metadata("design:paramtypes", [router_1.ActivatedRoute]) +], AddOnComponent); +exports.AddOnComponent = AddOnComponent; +/***/ }), +/* 231 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var store_1 = __webpack_require__(5); +var BehaviorSubject_1 = __webpack_require__(44); +__webpack_require__(188); +__webpack_require__(125); +var actions_1 = __webpack_require__(34); +var KeymapAddComponent = (function () { + function KeymapAddComponent(store) { + this.store = store; + this.presetsAll$ = store.select(function (appState) { return appState.presetKeymaps; }); + this.filterExpression$ = new BehaviorSubject_1.BehaviorSubject(''); + this.presets$ = this.presetsAll$ + .combineLatest(this.filterExpression$, function (keymaps, filterExpression) { + return keymaps.filter(function (keymap) { return keymap.name.toLocaleLowerCase().includes(filterExpression); }); + }) + .publishReplay(1) + .refCount(); + } + KeymapAddComponent.prototype.filterKeyboards = function (filterExpression) { + this.filterExpression$.next(filterExpression); + }; + KeymapAddComponent.prototype.addKeymap = function (keymap) { + this.store.dispatch(actions_1.KeymapActions.addKeymap(keymap)); + }; + return KeymapAddComponent; +}()); +KeymapAddComponent = __decorate([ + core_1.Component({ + selector: 'keymap-add', + template: __webpack_require__(623), + styles: [__webpack_require__(624)], + host: { + 'class': 'container-fluid' + } + }), + __metadata("design:paramtypes", [store_1.Store]) +], KeymapAddComponent); +exports.KeymapAddComponent = KeymapAddComponent; + + +/***/ }), +/* 232 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var MacroActions; +(function (MacroActions) { + MacroActions.PREFIX = '[Macro] '; + MacroActions.DUPLICATE = MacroActions.PREFIX + 'Duplicate macro'; + MacroActions.EDIT_NAME = MacroActions.PREFIX + 'Edit macro title'; + MacroActions.REMOVE = MacroActions.PREFIX + 'Remove macro'; + MacroActions.ADD = MacroActions.PREFIX + 'Add macro'; + MacroActions.ADD_ACTION = MacroActions.PREFIX + 'Add macro action'; + MacroActions.SAVE_ACTION = MacroActions.PREFIX + 'Save macro action'; + MacroActions.DELETE_ACTION = MacroActions.PREFIX + 'Delete macro action'; + MacroActions.REORDER_ACTION = MacroActions.PREFIX + 'Reorder macro action'; + function addMacro() { + return { + type: MacroActions.ADD + }; + } + MacroActions.addMacro = addMacro; + function removeMacro(macroId) { + return { + type: MacroActions.REMOVE, + payload: macroId + }; + } + MacroActions.removeMacro = removeMacro; + function duplicateMacro(macro) { + return { + type: MacroActions.DUPLICATE, + payload: macro + }; + } + MacroActions.duplicateMacro = duplicateMacro; + function editMacroName(id, name) { + return { + type: MacroActions.EDIT_NAME, + payload: { + id: id, + name: name + } + }; + } + MacroActions.editMacroName = editMacroName; + function addMacroAction(id, action) { + return { + type: MacroActions.ADD_ACTION, + payload: { + id: id, + action: action + } + }; + } + MacroActions.addMacroAction = addMacroAction; + function saveMacroAction(id, index, action) { + return { + type: MacroActions.SAVE_ACTION, + payload: { + id: id, + index: index, + action: action + } + }; + } + MacroActions.saveMacroAction = saveMacroAction; + function deleteMacroAction(id, index, action) { + return { + type: MacroActions.DELETE_ACTION, + payload: { + id: id, + index: index, + action: action + } + }; + } + MacroActions.deleteMacroAction = deleteMacroAction; + function reorderMacroAction(id, oldIndex, newIndex) { + return { + type: MacroActions.REORDER_ACTION, + payload: { + id: id, + oldIndex: oldIndex, + newIndex: newIndex + } + }; + } + MacroActions.reorderMacroAction = reorderMacroAction; +})(MacroActions = exports.MacroActions || (exports.MacroActions = {})); + + +/***/ }), +/* 233 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +__webpack_require__(234); +var store_1 = __webpack_require__(5); +__webpack_require__(191); +__webpack_require__(73); +__webpack_require__(21); +__webpack_require__(125); +__webpack_require__(56); +var file_saver_1 = __webpack_require__(625); +var user_configuration_1 = __webpack_require__(35); +var KeymapEditComponent = (function () { + function KeymapEditComponent(store, route) { + this.store = store; + this.keymap$ = route + .params + .select('abbr') + .switchMap(function (abbr) { return store.let(user_configuration_1.getKeymap(abbr)); }) + .publishReplay(1) + .refCount(); + this.deletable$ = store.let(user_configuration_1.getKeymaps()) + .map(function (keymaps) { return keymaps.length > 1; }); + } + KeymapEditComponent.prototype.downloadKeymap = function () { + var _this = this; + var exportableJSON$ = this.keymap$ + .switchMap(function (keymap) { return _this.toExportableJSON(keymap); }) + .map(function (exportableJSON) { return JSON.stringify(exportableJSON); }); + this.keymap$ + .combineLatest(exportableJSON$) + .first() + .subscribe(function (latest) { + var keymap = latest[0]; + var exportableJSON = latest[1]; + var fileName = keymap.name + '_keymap.json'; + file_saver_1.saveAs(new Blob([exportableJSON], { type: 'application/json' }), fileName); + }); + }; + KeymapEditComponent.prototype.toggleKeyboardSplit = function () { + this.keyboardSplit = !this.keyboardSplit; + }; + KeymapEditComponent.prototype.toExportableJSON = function (keymap) { + return this.store + .let(user_configuration_1.getUserConfiguration()) + .first() + .map(function (userConfiguration) { + return { + site: 'https://ultimatehackingkeyboard.com', + description: 'Ultimate Hacking Keyboard keymap', + keyboardModel: 'UHK60', + dataModelVersion: userConfiguration.dataModelVersion, + objectType: 'keymap', + objectValue: keymap.toJsonObject() + }; + }); + }; + return KeymapEditComponent; +}()); +__decorate([ + core_1.HostListener('window:keydown.alt.s', ['$event']), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], KeymapEditComponent.prototype, "toggleKeyboardSplit", null); +KeymapEditComponent = __decorate([ + core_1.Component({ + selector: 'keymap-edit', + template: __webpack_require__(644), + styles: [__webpack_require__(645)], + host: { + 'class': 'container-fluid' + } + }), + __metadata("design:paramtypes", [store_1.Store, + router_1.ActivatedRoute]) +], KeymapEditComponent); +exports.KeymapEditComponent = KeymapEditComponent; + + +/***/ }), +/* 234 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var Observable_1 = __webpack_require__(0); +var select_1 = __webpack_require__(133); +Observable_1.Observable.prototype.select = select_1.select; + + +/***/ }), +/* 235 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var LongPressAction; +(function (LongPressAction) { + LongPressAction[LongPressAction["leftCtrl"] = 0] = "leftCtrl"; + LongPressAction[LongPressAction["leftShift"] = 1] = "leftShift"; + LongPressAction[LongPressAction["leftAlt"] = 2] = "leftAlt"; + LongPressAction[LongPressAction["leftSuper"] = 3] = "leftSuper"; + LongPressAction[LongPressAction["rightCtrl"] = 4] = "rightCtrl"; + LongPressAction[LongPressAction["rightShift"] = 5] = "rightShift"; + LongPressAction[LongPressAction["rightAlt"] = 6] = "rightAlt"; + LongPressAction[LongPressAction["rightSuper"] = 7] = "rightSuper"; + LongPressAction[LongPressAction["mod"] = 8] = "mod"; + LongPressAction[LongPressAction["fn"] = 9] = "fn"; + LongPressAction[LongPressAction["mouse"] = 10] = "mouse"; +})(LongPressAction = exports.LongPressAction || (exports.LongPressAction = {})); + + +/***/ }), +/* 236 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var module_1 = __webpack_require__(237); +var Layer = (function () { + function Layer(layers) { + if (!layers) { + return; + } + this.modules = layers.modules.map(function (module) { return new module_1.Module(module); }); + } + Layer.prototype.fromJsonObject = function (jsonObject, macros) { + this.modules = jsonObject.modules.map(function (module) { return new module_1.Module().fromJsonObject(module, macros); }); + return this; + }; + Layer.prototype.fromBinary = function (buffer, macros) { + this.modules = buffer.readArray(function (uhkBuffer) { + return new module_1.Module().fromBinary(uhkBuffer, macros); + }); + return this; + }; + Layer.prototype.toJsonObject = function (macros) { + return { + modules: this.modules.map(function (module) { return module.toJsonObject(macros); }) + }; + }; + Layer.prototype.toBinary = function (buffer, macros) { + buffer.writeArray(this.modules, function (uhkBuffer, module) { + module.toBinary(uhkBuffer, macros); + }); + }; + Layer.prototype.toString = function () { + return ""; + }; + Layer.prototype.renameKeymap = function (oldAbbr, newAbbr) { + var _this = this; + var modules; + var moduleModified = false; + this.modules.forEach(function (module, index) { + var newModule = module.renameKeymap(oldAbbr, newAbbr); + if (newModule !== module) { + if (!moduleModified) { + modules = _this.modules.slice(); + moduleModified = true; + } + modules[index] = newModule; + } + }); + if (moduleModified) { + var newLayer = Object.assign(new Layer(), this); + newLayer.modules = modules; + return newLayer; + } + return this; + }; + return Layer; +}()); +exports.Layer = Layer; + + +/***/ }), +/* 237 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var key_action_1 = __webpack_require__(14); +var PointerRole; +(function (PointerRole) { + PointerRole[PointerRole["none"] = 0] = "none"; + PointerRole[PointerRole["move"] = 1] = "move"; + PointerRole[PointerRole["scroll"] = 2] = "scroll"; +})(PointerRole || (PointerRole = {})); +var Module = (function () { + function Module(other) { + if (!other) { + return; + } + this.id = other.id; + this.keyActions = other.keyActions.map(function (keyAction) { return key_action_1.Helper.createKeyAction(keyAction); }); + this.pointerRole = other.pointerRole; + } + Module.prototype.fromJsonObject = function (jsonObject, macros) { + this.id = jsonObject.id; + this.pointerRole = PointerRole[jsonObject.pointerRole]; + this.keyActions = jsonObject.keyActions.map(function (keyAction) { + return key_action_1.Helper.createKeyAction(keyAction, macros); + }); + return this; + }; + Module.prototype.fromBinary = function (buffer, macros) { + this.id = buffer.readUInt8(); + this.pointerRole = buffer.readUInt8(); + var keyActionsLength = buffer.readCompactLength(); + this.keyActions = []; + for (var i = 0; i < keyActionsLength; ++i) { + this.keyActions.push(key_action_1.Helper.createKeyAction(buffer, macros)); + } + return this; + }; + Module.prototype.toJsonObject = function (macros) { + return { + id: this.id, + pointerRole: PointerRole[this.pointerRole], + keyActions: this.keyActions.map(function (keyAction) { + if (keyAction && (macros || !(keyAction instanceof key_action_1.PlayMacroAction || keyAction instanceof key_action_1.SwitchKeymapAction))) { + return keyAction.toJsonObject(macros); + } + }) + }; + }; + Module.prototype.toBinary = function (buffer, macros) { + buffer.writeUInt8(this.id); + buffer.writeUInt8(this.pointerRole); + var noneAction = new key_action_1.NoneAction(); + var keyActions = this.keyActions.map(function (keyAction) { + if (keyAction) { + return keyAction; + } + return noneAction; + }); + buffer.writeArray(keyActions, function (uhkBuffer, keyAction) { + keyAction.toBinary(uhkBuffer, macros); + }); + }; + Module.prototype.toString = function () { + return ""; + }; + Module.prototype.renameKeymap = function (oldAbbr, newAbbr) { + var _this = this; + var keyActions; + var keyActionModified = false; + this.keyActions.forEach(function (keyAction, index) { + if (!keyAction) { + return; + } + var newKeyAction = keyAction.renameKeymap(oldAbbr, newAbbr); + if (newKeyAction !== keyAction) { + if (!keyActionModified) { + keyActions = _this.keyActions.slice(); + keyActionModified = true; + } + keyActions[index] = newKeyAction; + } + }); + if (keyActionModified) { + var newModule = Object.assign(new Module(), this); + newModule.keyActions = keyActions; + return newModule; + } + return this; + }; + return Module; +}()); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], Module.prototype, "id", void 0); +__decorate([ + assert_1.assertEnum(PointerRole), + __metadata("design:type", Number) +], Module.prototype, "pointerRole", void 0); +exports.Module = Module; + + +/***/ }), +/* 238 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer, process) { +Object.defineProperty(exports, "__esModule", { value: true }); +var UhkBuffer = (function () { + function UhkBuffer() { + this._enableDump = false; + this.offset = 0; + this.bytesToBacktrack = 0; + this.buffer = new Buffer(UhkBuffer.eepromSize); + this.buffer.fill(0); + } + UhkBuffer.simpleElementWriter = function (buffer, element) { + element.toBinary(buffer); // TODO: Remove any + }; + UhkBuffer.prototype.readInt8 = function () { + var value = this.buffer.readInt8(this.offset); + this.dump("i8(" + value + ")"); + this.bytesToBacktrack = 1; + this.offset += this.bytesToBacktrack; + return value; + }; + UhkBuffer.prototype.writeInt8 = function (value) { + this.dump("i8(" + value + ")"); + this.buffer.writeInt8(value, this.offset); + this.offset += 1; + }; + UhkBuffer.prototype.readUInt8 = function () { + var value = this.buffer.readUInt8(this.offset); + this.dump("u8(" + value + ")"); + this.bytesToBacktrack = 1; + this.offset += this.bytesToBacktrack; + return value; + }; + UhkBuffer.prototype.writeUInt8 = function (value) { + this.dump("u8(" + value + ")"); + this.buffer.writeUInt8(value, this.offset); + this.offset += 1; + }; + UhkBuffer.prototype.readInt16 = function () { + var value = this.buffer.readInt16LE(this.offset); + this.dump("i16(" + value + ")"); + this.bytesToBacktrack = 2; + this.offset += this.bytesToBacktrack; + return value; + }; + UhkBuffer.prototype.writeInt16 = function (value) { + this.dump("i16(" + value + ")"); + this.buffer.writeInt16LE(value, this.offset); + this.offset += 2; + }; + UhkBuffer.prototype.readUInt16 = function () { + var value = this.buffer.readUInt16LE(this.offset); + this.dump("u16(" + value + ")"); + this.bytesToBacktrack = 2; + this.offset += this.bytesToBacktrack; + return value; + }; + UhkBuffer.prototype.writeUInt16 = function (value) { + this.dump("u16(" + value + ")"); + this.buffer.writeUInt16LE(value, this.offset); + this.offset += 2; + }; + UhkBuffer.prototype.readInt32 = function () { + var value = this.buffer.readInt32LE(this.offset); + this.dump("i32(" + value + ")"); + this.bytesToBacktrack = 4; + this.offset += this.bytesToBacktrack; + return value; + }; + UhkBuffer.prototype.writeInt32 = function (value) { + this.dump("i32(" + value + ")"); + this.buffer.writeInt32LE(value, this.offset); + this.offset += 4; + }; + UhkBuffer.prototype.readUInt32 = function () { + var value = this.buffer.readUInt32LE(this.offset); + this.dump("u32(" + value + ")"); + this.bytesToBacktrack = 4; + this.offset += this.bytesToBacktrack; + return value; + }; + UhkBuffer.prototype.writeUInt32 = function (value) { + this.dump("u32(" + value + ")"); + this.buffer.writeUInt32LE(value, this.offset); + this.offset += 4; + }; + UhkBuffer.prototype.readCompactLength = function () { + var length = this.readUInt8(); + if (length === UhkBuffer.longCompactLengthPrefix) { + length = this.readUInt16(); + } + return length; + }; + UhkBuffer.prototype.writeCompactLength = function (length) { + if (length >= UhkBuffer.longCompactLengthPrefix) { + this.writeUInt8(UhkBuffer.longCompactLengthPrefix); + this.writeUInt16(length); + } + else { + this.writeUInt8(length); + } + }; + UhkBuffer.prototype.readString = function () { + var stringByteLength = this.readCompactLength(); + var str = this.buffer.toString(UhkBuffer.stringEncoding, this.offset, this.offset + stringByteLength); + this.dump(UhkBuffer.stringEncoding + "(" + str + ")"); + this.bytesToBacktrack = stringByteLength; + this.offset += stringByteLength; + return str; + }; + UhkBuffer.prototype.writeString = function (str) { + var stringByteLength = Buffer.byteLength(str, UhkBuffer.stringEncoding); + if (stringByteLength > UhkBuffer.maxCompactLength) { + throw "Cannot serialize string: " + stringByteLength + " bytes is larger\n than the maximum allowed length of " + UhkBuffer.maxCompactLength + " bytes"; + } + this.writeCompactLength(stringByteLength); + this.dump(UhkBuffer.stringEncoding + "(" + str + ")"); + this.buffer.write(str, this.offset, stringByteLength, UhkBuffer.stringEncoding); + this.offset += stringByteLength; + }; + UhkBuffer.prototype.readBoolean = function () { + return this.readUInt8() !== 0; + }; + UhkBuffer.prototype.writeBoolean = function (bool) { + this.writeUInt8(bool ? 1 : 0); + }; + UhkBuffer.prototype.readArray = function (elementReader) { + var array = []; + var length = this.readCompactLength(); + for (var i = 0; i < length; ++i) { + array.push(elementReader(this, i)); + } + return array; + }; + UhkBuffer.prototype.writeArray = function (array, elementWriter) { + if (elementWriter === void 0) { elementWriter = UhkBuffer.simpleElementWriter; } + var length = array.length; + this.writeCompactLength(length); + for (var i = 0; i < length; ++i) { + elementWriter(this, array[i], i); + } + }; + UhkBuffer.prototype.backtrack = function () { + this.offset -= this.bytesToBacktrack; + this.bytesToBacktrack = 0; + }; + UhkBuffer.prototype.getBufferContent = function () { + return this.buffer.slice(0, this.offset); + }; + Object.defineProperty(UhkBuffer.prototype, "enableDump", { + get: function () { + return this._enableDump; + }, + set: function (value) { + if (value) { + UhkBuffer.isFirstElementToDump = true; + } + this._enableDump = value; + }, + enumerable: true, + configurable: true + }); + UhkBuffer.prototype.dump = function (value) { + if (!this.enableDump) { + return; + } + if (!UhkBuffer.isFirstElementToDump) { + process.stdout.write(', '); + } + process.stdout.write(value); + if (UhkBuffer.isFirstElementToDump) { + UhkBuffer.isFirstElementToDump = false; + } + }; + return UhkBuffer; +}()); +UhkBuffer.eepromSize = 32 * 1024; +UhkBuffer.maxCompactLength = 0xFFFF; +UhkBuffer.longCompactLengthPrefix = 0xFF; +UhkBuffer.stringEncoding = 'utf8'; +UhkBuffer.isFirstElementToDump = false; +exports.UhkBuffer = UhkBuffer; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(75).Buffer, __webpack_require__(38))) + +/***/ }), +/* 239 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var util_1 = __webpack_require__(57); +var PREFIX = '[user-config] '; +// tslint:disable-next-line:variable-name +exports.ActionTypes = { + LOAD_USER_CONFIG: util_1.type(PREFIX + 'Load User Config'), + LOAD_USER_CONFIG_SUCCESS: util_1.type(PREFIX + 'Load User Config Success'), + SAVE_USER_CONFIG_SUCCESS: util_1.type(PREFIX + 'Save User Config Success') +}; +var LoadUserConfigAction = (function () { + function LoadUserConfigAction() { + this.type = exports.ActionTypes.LOAD_USER_CONFIG; + } + return LoadUserConfigAction; +}()); +exports.LoadUserConfigAction = LoadUserConfigAction; +var LoadUserConfigSuccessAction = (function () { + function LoadUserConfigSuccessAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.LOAD_USER_CONFIG_SUCCESS; + } + return LoadUserConfigSuccessAction; +}()); +exports.LoadUserConfigSuccessAction = LoadUserConfigSuccessAction; +var SaveUserConfigSuccessAction = (function () { + function SaveUserConfigSuccessAction() { + this.type = exports.ActionTypes.SAVE_USER_CONFIG_SUCCESS; + } + return SaveUserConfigSuccessAction; +}()); +exports.SaveUserConfigSuccessAction = SaveUserConfigSuccessAction; + + +/***/ }), +/* 240 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +var store_1 = __webpack_require__(5); +var actions_1 = __webpack_require__(34); +var user_configuration_1 = __webpack_require__(35); +var MacroEditComponent = (function () { + function MacroEditComponent(store, route) { + var _this = this; + this.store = store; + this.route = route; + this.subscription = route + .params + .select('id') + .switchMap(function (id) { return store.let(user_configuration_1.getMacro(+id)); }) + .subscribe(function (macro) { + _this.macro = macro; + }); + this.isNew = this.route.snapshot.params['empty'] === 'new'; + } + MacroEditComponent.prototype.ngOnDestroy = function () { + this.subscription.unsubscribe(); + }; + MacroEditComponent.prototype.addAction = function (macroId, action) { + this.store.dispatch(actions_1.MacroActions.addMacroAction(macroId, action)); + }; + MacroEditComponent.prototype.editAction = function (macroId, index, action) { + this.store.dispatch(actions_1.MacroActions.saveMacroAction(macroId, index, action)); + }; + MacroEditComponent.prototype.deleteAction = function (macroId, index, action) { + this.store.dispatch(actions_1.MacroActions.deleteMacroAction(macroId, index, action)); + }; + MacroEditComponent.prototype.reorderAction = function (macroId, oldIndex, newIndex) { + this.store.dispatch(actions_1.MacroActions.reorderMacroAction(macroId, oldIndex, newIndex)); + }; + return MacroEditComponent; +}()); +MacroEditComponent = __decorate([ + core_1.Component({ + selector: 'macro-edit', + template: __webpack_require__(653), + styles: [__webpack_require__(654)], + host: { + 'class': 'container-fluid' + } + }), + __metadata("design:paramtypes", [store_1.Store, router_1.ActivatedRoute]) +], MacroEditComponent); +exports.MacroEditComponent = MacroEditComponent; + + +/***/ }), +/* 241 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var delay_1 = __webpack_require__(672); +exports.MacroDelayTabComponent = delay_1.MacroDelayTabComponent; +var key_1 = __webpack_require__(676); +exports.MacroKeyTabComponent = key_1.MacroKeyTabComponent; +var mouse_1 = __webpack_require__(706); +exports.MacroMouseTabComponent = mouse_1.MacroMouseTabComponent; +var text_1 = __webpack_require__(710); +exports.MacroTextTabComponent = text_1.MacroTextTabComponent; + + +/***/ }), +/* 242 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(719)); + + +/***/ }), +/* 243 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(244)); +__export(__webpack_require__(734)); + + +/***/ }), +/* 244 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var store_1 = __webpack_require__(5); +var index_1 = __webpack_require__(57); +var store_2 = __webpack_require__(143); +var auto_update_settings_1 = __webpack_require__(145); +var SettingsComponent = (function () { + function SettingsComponent(store) { + this.store = store; + this.runInElectron = index_1.runInElectron(); + // TODO: From where do we get the version number? The electron gives back in main process, but the web... + this.version = '1.0.0'; + this.autoUpdateSettings$ = store.select(store_2.getAutoUpdateSettings); + this.checkingForUpdate$ = store.select(store_2.getCheckingForUpdate); + } + SettingsComponent.prototype.toogleCheckForUpdateOnStartUp = function (value) { + this.store.dispatch(new auto_update_settings_1.ToggleCheckForUpdateOnStartupAction(value)); + }; + SettingsComponent.prototype.toogleUsePreReleaseUpdate = function (value) { + this.store.dispatch(new auto_update_settings_1.TogglePreReleaseFlagAction(value)); + }; + SettingsComponent.prototype.checkForUpdate = function () { + this.store.dispatch(new auto_update_settings_1.CheckForUpdateNowAction()); + }; + return SettingsComponent; +}()); +SettingsComponent = __decorate([ + core_1.Component({ + selector: 'settings', + template: __webpack_require__(732), + styles: [__webpack_require__(733)], + host: { + 'class': 'container-fluid' + } + }), + __metadata("design:paramtypes", [store_1.Store]) +], SettingsComponent); +exports.SettingsComponent = SettingsComponent; + + +/***/ }), +/* 245 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var module_1 = __webpack_require__(246); +var keyboard_layout_enum_1 = __webpack_require__(745); +var SvgModuleProviderService = (function () { + function SvgModuleProviderService() { + } + SvgModuleProviderService.prototype.getSvgModules = function (layout) { + if (layout === void 0) { layout = keyboard_layout_enum_1.KeyboardLayout.ANSI; } + return [this.getRightModule(), this.getLeftModule(layout)]; + }; + SvgModuleProviderService.prototype.getLeftModule = function (layout) { + if (layout === void 0) { layout = keyboard_layout_enum_1.KeyboardLayout.ANSI; } + if (layout === keyboard_layout_enum_1.KeyboardLayout.ISO) { + if (!this.isoLeft) { + this.isoLeft = new module_1.SvgModule(__webpack_require__(746).svg); + } + return this.isoLeft; + } + if (!this.ansiLeft) { + this.ansiLeft = new module_1.SvgModule(__webpack_require__(747).svg); + } + return this.ansiLeft; + }; + SvgModuleProviderService.prototype.getRightModule = function () { + if (!this.right) { + this.right = new module_1.SvgModule(__webpack_require__(748).svg); + } + return this.right; + }; + return SvgModuleProviderService; +}()); +SvgModuleProviderService = __decorate([ + core_1.Injectable() +], SvgModuleProviderService); +exports.SvgModuleProviderService = SvgModuleProviderService; + + +/***/ }), +/* 246 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(741)); +__export(__webpack_require__(744)); + + +/***/ }), +/* 247 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var keymap_edit_component_1 = __webpack_require__(233); +exports.KeymapEditComponent = keymap_edit_component_1.KeymapEditComponent; +var keymap_edit_guard_service_1 = __webpack_require__(805); +exports.KeymapEditGuard = keymap_edit_guard_service_1.KeymapEditGuard; + + +/***/ }), +/* 248 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var user_configuration_1 = __webpack_require__(137); +var DefaultUserConfigurationService = (function () { + function DefaultUserConfigurationService() { + this._defaultConfig = new user_configuration_1.UserConfiguration() + .fromJsonObject(__webpack_require__(822)); + } + DefaultUserConfigurationService.prototype.getDefault = function () { + return this._defaultConfig; + }; + return DefaultUserConfigurationService; +}()); +DefaultUserConfigurationService = __decorate([ + core_1.Injectable(), + __metadata("design:paramtypes", []) +], DefaultUserConfigurationService); +exports.DefaultUserConfigurationService = DefaultUserConfigurationService; + + +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var NotificationType; +(function (NotificationType) { + NotificationType[NotificationType["Default"] = 0] = "Default"; + NotificationType[NotificationType["Success"] = 1] = "Success"; + NotificationType[NotificationType["Error"] = 2] = "Error"; + NotificationType[NotificationType["Warning"] = 3] = "Warning"; + NotificationType[NotificationType["Info"] = 4] = "Info"; +})(NotificationType = exports.NotificationType || (exports.NotificationType = {})); + + +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var util_1 = __webpack_require__(57); +var PREFIX = '[app] '; +// tslint:disable-next-line:variable-name +exports.ActionTypes = { + APP_BOOTSRAPPED: util_1.type(PREFIX + 'bootstrapped'), + APP_STARTED: util_1.type(PREFIX + 'started'), + APP_SHOW_NOTIFICATION: util_1.type(PREFIX + 'show notification') +}; +var AppBootsrappedAction = (function () { + function AppBootsrappedAction() { + this.type = exports.ActionTypes.APP_BOOTSRAPPED; + } + return AppBootsrappedAction; +}()); +exports.AppBootsrappedAction = AppBootsrappedAction; +var AppStartedAction = (function () { + function AppStartedAction() { + this.type = exports.ActionTypes.APP_STARTED; + } + return AppStartedAction; +}()); +exports.AppStartedAction = AppStartedAction; +var ShowNotificationAction = (function () { + function ShowNotificationAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.APP_SHOW_NOTIFICATION; + } + return ShowNotificationAction; +}()); +exports.ShowNotificationAction = ShowNotificationAction; + + +/***/ }), +/* 251 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -module.exports = PassThrough; -var Transform = __webpack_require__(270); /**/ -var util = __webpack_require__(120); -util.inherits = __webpack_require__(92); + +var processNextTick = __webpack_require__(101); /**/ -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; - -/***/ }), -/* 408 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - module.exports = Readable; /**/ -var processNextTick = __webpack_require__(268); -/**/ - -/**/ -var isArray = __webpack_require__(401); +var isArray = __webpack_require__(220); /**/ /**/ @@ -3860,7 +7761,7 @@ var Duplex; Readable.ReadableState = ReadableState; /**/ -var EE = __webpack_require__(175).EventEmitter; +var EE = __webpack_require__(147).EventEmitter; var EElistenerCount = function (emitter, type) { return emitter.listeners(type).length; @@ -3868,28 +7769,29 @@ var EElistenerCount = function (emitter, type) { /**/ /**/ -var Stream; -(function () { - try { - Stream = __webpack_require__(191); - } catch (_) {} finally { - if (!Stream) Stream = __webpack_require__(175).EventEmitter; - } -})(); +var Stream = __webpack_require__(252); /**/ -var Buffer = __webpack_require__(56).Buffer; +// TODO(bmeurer): Change this back to const once hole checks are +// properly optimized away early in Ignition+TurboFan. /**/ -var bufferShim = __webpack_require__(251); +var Buffer = __webpack_require__(149).Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} /**/ /**/ -var util = __webpack_require__(120); -util.inherits = __webpack_require__(92); +var util = __webpack_require__(76); +util.inherits = __webpack_require__(58); /**/ /**/ -var debugUtil = __webpack_require__(1127); +var debugUtil = __webpack_require__(834); var debug = void 0; if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); @@ -3898,11 +7800,14 @@ if (debugUtil && debugUtil.debuglog) { } /**/ -var BufferList = __webpack_require__(757); +var BufferList = __webpack_require__(835); +var destroyImpl = __webpack_require__(253); var StringDecoder; util.inherits(Readable, Stream); +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. @@ -3918,7 +7823,7 @@ function prependListener(emitter, event, fn) { } function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(78); + Duplex = Duplex || __webpack_require__(50); options = options || {}; @@ -3935,7 +7840,7 @@ function ReadableState(options, stream) { this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. - this.highWaterMark = ~ ~this.highWaterMark; + this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than @@ -3949,10 +7854,10 @@ function ReadableState(options, stream) { this.endEmitted = false; this.reading = false; - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. this.sync = true; // whenever we return null, then we set a flag to say @@ -3962,15 +7867,14 @@ function ReadableState(options, stream) { this.readableListening = false; this.resumeScheduled = false; + // has it been destroyed + this.destroyed = false; + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - // the number of writers that are awaiting a drain event in .pipe()s this.awaitDrain = 0; @@ -3980,14 +7884,14 @@ function ReadableState(options, stream) { this.decoder = null; this.encoding = null; if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(442).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(254).StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } function Readable(options) { - Duplex = Duplex || __webpack_require__(78); + Duplex = Duplex || __webpack_require__(50); if (!(this instanceof Readable)) return new Readable(options); @@ -3996,87 +7900,129 @@ function Readable(options) { // legacy this.readable = true; - if (options && typeof options.read === 'function') this._read = options.read; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } Stream.call(this); } +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + // Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; + var skipChunkCheck; - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = bufferShim.from(chunk, encoding); - encoding = ''; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; } + } else { + skipChunkCheck = true; } - return readableAddChunk(this, state, chunk, encoding, false); + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); }; // Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); + return readableAddChunk(this, chunk, null, true, false); }; -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { state.reading = false; onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); } - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); + addChunk(stream, state, chunk, false); } } - - maybeReadMore(stream, state); + } else if (!addToFront) { + state.reading = false; } - } else if (!addToFront) { - state.reading = false; } return needMoreData(state); } +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + // if it's past the high water mark, we can push in some more. // Also, if we have no data yet, we can stand some // more bytes. This is to work around cases where hwm=0, @@ -4088,9 +8034,13 @@ function needMoreData(state) { return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); } +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + // backwards compatibility. Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = __webpack_require__(442).StringDecoder; + if (!StringDecoder) StringDecoder = __webpack_require__(254).StringDecoder; this._readableState.decoder = new StringDecoder(enc); this._readableState.encoding = enc; return this; @@ -4236,14 +8186,6 @@ Readable.prototype.read = function (n) { return ret; }; -function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - function onEofChunk(stream, state) { if (state.ended) return; if (state.decoder) { @@ -4331,14 +8273,17 @@ Readable.prototype.pipe = function (dest, pipeOpts) { var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - var endFn = doEnd ? onend : cleanup; + var endFn = doEnd ? onend : unpipe; if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); - function onunpipe(readable) { + function onunpipe(readable, unpipeInfo) { debug('onunpipe'); if (readable === src) { - cleanup(); + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } } } @@ -4364,7 +8309,7 @@ Readable.prototype.pipe = function (dest, pipeOpts) { dest.removeListener('error', onerror); dest.removeListener('unpipe', onunpipe); src.removeListener('end', onend); - src.removeListener('end', cleanup); + src.removeListener('end', unpipe); src.removeListener('data', ondata); cleanedUp = true; @@ -4457,6 +8402,7 @@ function pipeOnDrain(src) { Readable.prototype.unpipe = function (dest) { var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; // if we're not piping anywhere, then do nothing. if (state.pipesCount === 0) return this; @@ -4472,7 +8418,7 @@ Readable.prototype.unpipe = function (dest) { state.pipes = null; state.pipesCount = 0; state.flowing = false; - if (dest) dest.emit('unpipe', this); + if (dest) dest.emit('unpipe', this, unpipeInfo); return this; } @@ -4487,7 +8433,7 @@ Readable.prototype.unpipe = function (dest) { state.flowing = false; for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this); + dests[i].emit('unpipe', this, unpipeInfo); }return this; } @@ -4499,7 +8445,7 @@ Readable.prototype.unpipe = function (dest) { state.pipesCount -= 1; if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this); + dest.emit('unpipe', this, unpipeInfo); return this; }; @@ -4520,7 +8466,7 @@ Readable.prototype.on = function (ev, fn) { if (!state.reading) { processNextTick(nReadingNextTick, this); } else if (state.length) { - emitReadable(this, state); + emitReadable(this); } } } @@ -4627,10 +8573,9 @@ Readable.prototype.wrap = function (stream) { } // proxy certain important events. - var events = ['error', 'close', 'destroy', 'pause', 'resume']; - forEach(events, function (ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); + } // when we try to consume some more bytes, simply unpause the // underlying stream. @@ -4722,7 +8667,7 @@ function copyFromBufferString(n, list) { // This function is designed to be inlinable, so please take care when making // changes to the function body. function copyFromBuffer(n, list) { - var ret = bufferShim.allocUnsafe(n); + var ret = Buffer.allocUnsafe(n); var p = list.head; var c = 1; p.data.copy(ret); @@ -4782,43 +8727,95 @@ function indexOf(xs, x) { } return -1; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13), __webpack_require__(38))) /***/ }), -/* 409 */, -/* 410 */, -/* 411 */, -/* 412 */, -/* 413 */, -/* 414 */, -/* 415 */, -/* 416 */, -/* 417 */, -/* 418 */, -/* 419 */, -/* 420 */, -/* 421 */, -/* 422 */, -/* 423 */, -/* 424 */, -/* 425 */, -/* 426 */, -/* 427 */, -/* 428 */, -/* 429 */, -/* 430 */, -/* 431 */, -/* 432 */, -/* 433 */, -/* 434 */, -/* 435 */, -/* 436 */, -/* 437 */, -/* 438 */, -/* 439 */, -/* 440 */, -/* 441 */, -/* 442 */ +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(147).EventEmitter; + + +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/**/ + +var processNextTick = __webpack_require__(101); +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + processNextTick(emitErrorNT, this, err); + } + return; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + processNextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; + +/***/ }), +/* 254 */ /***/ (function(module, exports, __webpack_require__) { // Copyright Joyent, Inc. and other Node contributors. @@ -4842,7 +8839,7 @@ function indexOf(xs, x) { // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -var Buffer = __webpack_require__(56).Buffer; +var Buffer = __webpack_require__(75).Buffer; var isBufferEncoding = Buffer.isEncoding || function(encoding) { @@ -5045,1456 +9042,439 @@ function base64DetectIncompleteChar(buffer) { /***/ }), -/* 443 */ +/* 255 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -var AddOnComponent = (function () { - function AddOnComponent(route) { - this.route = route; - this.name$ = route - .params - .select('name'); - } - return AddOnComponent; -}()); -AddOnComponent = __decorate([ - core_1.Component({ - selector: 'add-on', - template: __webpack_require__(670), - styles: [__webpack_require__(722)], - host: { - 'class': 'container-fluid' - } - }), - __metadata("design:paramtypes", [router_1.ActivatedRoute]) -], AddOnComponent); -exports.AddOnComponent = AddOnComponent; - - -/***/ }), -/* 444 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(443)); -__export(__webpack_require__(1011)); - - -/***/ }), -/* 445 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -var BehaviorSubject_1 = __webpack_require__(50); -__webpack_require__(411); -__webpack_require__(272); -var actions_1 = __webpack_require__(54); -var KeymapAddComponent = (function () { - function KeymapAddComponent(store) { - this.store = store; - this.presetsAll$ = store.select(function (appState) { return appState.presetKeymaps; }); - this.filterExpression$ = new BehaviorSubject_1.BehaviorSubject(''); - this.presets$ = this.presetsAll$ - .combineLatest(this.filterExpression$, function (keymaps, filterExpression) { - return keymaps.filter(function (keymap) { return keymap.name.toLocaleLowerCase().includes(filterExpression); }); - }) - .publishReplay(1) - .refCount(); - } - KeymapAddComponent.prototype.filterKeyboards = function (filterExpression) { - this.filterExpression$.next(filterExpression); - }; - KeymapAddComponent.prototype.addKeymap = function (keymap) { - this.store.dispatch(actions_1.KeymapActions.addKeymap(keymap)); - }; - return KeymapAddComponent; -}()); -KeymapAddComponent = __decorate([ - core_1.Component({ - selector: 'keymap-add', - template: __webpack_require__(672), - styles: [__webpack_require__(724)], - host: { - 'class': 'container-fluid' - } - }), - __metadata("design:paramtypes", [store_1.Store]) -], KeymapAddComponent); -exports.KeymapAddComponent = KeymapAddComponent; - - -/***/ }), -/* 446 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var keymap_edit_component_1 = __webpack_require__(447); -exports.KeymapEditComponent = keymap_edit_component_1.KeymapEditComponent; -var keymap_edit_guard_service_1 = __webpack_require__(1014); -exports.KeymapEditGuard = keymap_edit_guard_service_1.KeymapEditGuard; - - -/***/ }), -/* 447 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -__webpack_require__(375); -var store_1 = __webpack_require__(9); -__webpack_require__(412); -__webpack_require__(123); -__webpack_require__(65); -__webpack_require__(272); -__webpack_require__(273); -var file_saver_1 = __webpack_require__(669); -var user_configuration_1 = __webpack_require__(55); -var KeymapEditComponent = (function () { - function KeymapEditComponent(store, route) { - this.store = store; - this.route = route; - this.keymap$ = route - .params - .select('abbr') - .switchMap(function (abbr) { return store.let(user_configuration_1.getKeymap(abbr)); }) - .publishReplay(1) - .refCount(); - this.deletable$ = store.let(user_configuration_1.getKeymaps()) - .map(function (keymaps) { return keymaps.length > 1; }); - } - KeymapEditComponent.prototype.downloadKeymap = function () { - var _this = this; - var exportableJSON$ = this.keymap$ - .switchMap(function (keymap) { return _this.toExportableJSON(keymap); }) - .map(function (exportableJSON) { return JSON.stringify(exportableJSON); }); - this.keymap$ - .combineLatest(exportableJSON$) - .first() - .subscribe(function (latest) { - var keymap = latest[0]; - var exportableJSON = latest[1]; - var fileName = keymap.name + '_keymap.json'; - file_saver_1.saveAs(new Blob([exportableJSON], { type: 'application/json' }), fileName); - }); - }; - KeymapEditComponent.prototype.toExportableJSON = function (keymap) { - return this.store - .let(user_configuration_1.getUserConfiguration()) - .first() - .map(function (userConfiguration) { - return { - site: 'https://ultimatehackingkeyboard.com', - description: 'Ultimate Hacking Keyboard keymap', - keyboardModel: 'UHK60', - dataModelVersion: userConfiguration.dataModelVersion, - objectType: 'keymap', - objectValue: keymap.toJsonObject() - }; - }); - }; - return KeymapEditComponent; -}()); -KeymapEditComponent = __decorate([ - core_1.Component({ - selector: 'keymap-edit', - template: __webpack_require__(673), - styles: [__webpack_require__(725)], - host: { - 'class': 'container-fluid' - } - }), - __metadata("design:paramtypes", [store_1.Store, - router_1.ActivatedRoute]) -], KeymapEditComponent); -exports.KeymapEditComponent = KeymapEditComponent; - - -/***/ }), -/* 448 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -var store_1 = __webpack_require__(9); -var actions_1 = __webpack_require__(54); -var user_configuration_1 = __webpack_require__(55); -var MacroEditComponent = (function () { - function MacroEditComponent(store, route) { - var _this = this; - this.store = store; - this.route = route; - this.subscription = route - .params - .select('id') - .switchMap(function (id) { return store.let(user_configuration_1.getMacro(+id)); }) - .subscribe(function (macro) { - _this.macro = macro; - }); - this.isNew = this.route.snapshot.params['empty'] === 'new'; - } - MacroEditComponent.prototype.ngOnDestroy = function () { - this.subscription.unsubscribe(); - }; - MacroEditComponent.prototype.addAction = function (macroId, action) { - this.store.dispatch(actions_1.MacroActions.addMacroAction(macroId, action)); - }; - MacroEditComponent.prototype.editAction = function (macroId, index, action) { - this.store.dispatch(actions_1.MacroActions.saveMacroAction(macroId, index, action)); - }; - MacroEditComponent.prototype.deleteAction = function (macroId, index, action) { - this.store.dispatch(actions_1.MacroActions.deleteMacroAction(macroId, index, action)); - }; - MacroEditComponent.prototype.reorderAction = function (macroId, oldIndex, newIndex) { - this.store.dispatch(actions_1.MacroActions.reorderMacroAction(macroId, oldIndex, newIndex)); - }; - return MacroEditComponent; -}()); -MacroEditComponent = __decorate([ - core_1.Component({ - selector: 'macro-edit', - template: __webpack_require__(681), - styles: [__webpack_require__(732)], - host: { - 'class': 'container-fluid' - } - }), - __metadata("design:paramtypes", [store_1.Store, router_1.ActivatedRoute]) -], MacroEditComponent); -exports.MacroEditComponent = MacroEditComponent; - - -/***/ }), -/* 449 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1039)); - - -/***/ }), -/* 450 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(451)); -__export(__webpack_require__(1056)); - - -/***/ }), -/* 451 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var SettingsComponent = (function () { - function SettingsComponent() { - } - return SettingsComponent; -}()); -SettingsComponent = __decorate([ - core_1.Component({ - selector: 'settings', - template: __webpack_require__(696), - styles: [__webpack_require__(747)], - host: { - 'class': 'container-fluid' - } - }), - __metadata("design:paramtypes", []) -], SettingsComponent); -exports.SettingsComponent = SettingsComponent; - - -/***/ }), -/* 452 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1088)); -__export(__webpack_require__(1089)); - - -/***/ }), -/* 453 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer, process) { -Object.defineProperty(exports, "__esModule", { value: true }); -var UhkBuffer = (function () { - function UhkBuffer() { - this._enableDump = false; - this.offset = 0; - this.bytesToBacktrack = 0; - this.buffer = new Buffer(UhkBuffer.eepromSize); - this.buffer.fill(0); - } - UhkBuffer.simpleElementWriter = function (buffer, element) { - element.toBinary(buffer); // TODO: Remove any - }; - UhkBuffer.prototype.readInt8 = function () { - var value = this.buffer.readInt8(this.offset); - this.dump("i8(" + value + ")"); - this.bytesToBacktrack = 1; - this.offset += this.bytesToBacktrack; - return value; - }; - UhkBuffer.prototype.writeInt8 = function (value) { - this.dump("i8(" + value + ")"); - this.buffer.writeInt8(value, this.offset); - this.offset += 1; - }; - UhkBuffer.prototype.readUInt8 = function () { - var value = this.buffer.readUInt8(this.offset); - this.dump("u8(" + value + ")"); - this.bytesToBacktrack = 1; - this.offset += this.bytesToBacktrack; - return value; - }; - UhkBuffer.prototype.writeUInt8 = function (value) { - this.dump("u8(" + value + ")"); - this.buffer.writeUInt8(value, this.offset); - this.offset += 1; - }; - UhkBuffer.prototype.readInt16 = function () { - var value = this.buffer.readInt16LE(this.offset); - this.dump("i16(" + value + ")"); - this.bytesToBacktrack = 2; - this.offset += this.bytesToBacktrack; - return value; - }; - UhkBuffer.prototype.writeInt16 = function (value) { - this.dump("i16(" + value + ")"); - this.buffer.writeInt16LE(value, this.offset); - this.offset += 2; - }; - UhkBuffer.prototype.readUInt16 = function () { - var value = this.buffer.readUInt16LE(this.offset); - this.dump("u16(" + value + ")"); - this.bytesToBacktrack = 2; - this.offset += this.bytesToBacktrack; - return value; - }; - UhkBuffer.prototype.writeUInt16 = function (value) { - this.dump("u16(" + value + ")"); - this.buffer.writeUInt16LE(value, this.offset); - this.offset += 2; - }; - UhkBuffer.prototype.readInt32 = function () { - var value = this.buffer.readInt32LE(this.offset); - this.dump("i32(" + value + ")"); - this.bytesToBacktrack = 4; - this.offset += this.bytesToBacktrack; - return value; - }; - UhkBuffer.prototype.writeInt32 = function (value) { - this.dump("i32(" + value + ")"); - this.buffer.writeInt32LE(value, this.offset); - this.offset += 4; - }; - UhkBuffer.prototype.readUInt32 = function () { - var value = this.buffer.readUInt32LE(this.offset); - this.dump("u32(" + value + ")"); - this.bytesToBacktrack = 4; - this.offset += this.bytesToBacktrack; - return value; - }; - UhkBuffer.prototype.writeUInt32 = function (value) { - this.dump("u32(" + value + ")"); - this.buffer.writeUInt32LE(value, this.offset); - this.offset += 4; - }; - UhkBuffer.prototype.readCompactLength = function () { - var length = this.readUInt8(); - if (length === UhkBuffer.longCompactLengthPrefix) { - length += this.readUInt8() << 8; - } - return length; - }; - UhkBuffer.prototype.writeCompactLength = function (length) { - if (length >= UhkBuffer.longCompactLengthPrefix) { - this.writeUInt8(UhkBuffer.longCompactLengthPrefix); - this.writeUInt16(length); - } - else { - this.writeUInt8(length); - } - }; - UhkBuffer.prototype.readString = function () { - var stringByteLength = this.readCompactLength(); - var str = this.buffer.toString(UhkBuffer.stringEncoding, this.offset, this.offset + stringByteLength); - this.dump(UhkBuffer.stringEncoding + "(" + str + ")"); - this.bytesToBacktrack = stringByteLength; - this.offset += stringByteLength; - return str; - }; - UhkBuffer.prototype.writeString = function (str) { - var stringByteLength = Buffer.byteLength(str, UhkBuffer.stringEncoding); - if (stringByteLength > UhkBuffer.maxCompactLength) { - throw "Cannot serialize string: " + stringByteLength + " bytes is larger\n than the maximum allowed length of " + UhkBuffer.maxCompactLength + " bytes"; - } - this.writeCompactLength(stringByteLength); - this.dump(UhkBuffer.stringEncoding + "(" + str + ")"); - this.buffer.write(str, this.offset, stringByteLength, UhkBuffer.stringEncoding); - this.offset += stringByteLength; - }; - UhkBuffer.prototype.readBoolean = function () { - return this.readUInt8() !== 0; - }; - UhkBuffer.prototype.writeBoolean = function (bool) { - this.writeUInt8(bool ? 1 : 0); - }; - UhkBuffer.prototype.readArray = function (elementReader) { - var array = []; - var length = this.readCompactLength(); - for (var i = 0; i < length; ++i) { - array.push(elementReader(this, i)); - } - return array; - }; - UhkBuffer.prototype.writeArray = function (array, elementWriter) { - if (elementWriter === void 0) { elementWriter = UhkBuffer.simpleElementWriter; } - var length = array.length; - this.writeCompactLength(length); - for (var i = 0; i < length; ++i) { - elementWriter(this, array[i], i); - } - }; - UhkBuffer.prototype.backtrack = function () { - this.offset -= this.bytesToBacktrack; - this.bytesToBacktrack = 0; - }; - UhkBuffer.prototype.getBufferContent = function () { - return this.buffer.slice(0, this.offset); - }; - Object.defineProperty(UhkBuffer.prototype, "enableDump", { - get: function () { - return this._enableDump; - }, - set: function (value) { - if (value) { - UhkBuffer.isFirstElementToDump = true; - } - this._enableDump = value; - }, - enumerable: true, - configurable: true - }); - UhkBuffer.prototype.dump = function (value) { - if (!this.enableDump) { - return; - } - if (!UhkBuffer.isFirstElementToDump) { - process.stdout.write(', '); - } - process.stdout.write(value); - if (UhkBuffer.isFirstElementToDump) { - UhkBuffer.isFirstElementToDump = false; - } - }; - return UhkBuffer; -}()); -UhkBuffer.eepromSize = 32 * 1024; -UhkBuffer.maxCompactLength = 0xFFFF; -UhkBuffer.longCompactLengthPrefix = 0xFF; -UhkBuffer.stringEncoding = 'utf8'; -UhkBuffer.isFirstElementToDump = false; -exports.UhkBuffer = UhkBuffer; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(56).Buffer, __webpack_require__(32))) - -/***/ }), -/* 454 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var Module_1 = __webpack_require__(456); -var Layer = (function () { - function Layer(layers) { - if (!layers) { - return; - } - this.modules = layers.modules.map(function (module) { return new Module_1.Module(module); }); - } - Layer.prototype.fromJsonObject = function (jsonObject, macros) { - this.modules = jsonObject.modules.map(function (module) { return new Module_1.Module().fromJsonObject(module, macros); }); - return this; - }; - Layer.prototype.fromBinary = function (buffer, macros) { - this.modules = buffer.readArray(function (uhkBuffer) { - return new Module_1.Module().fromBinary(uhkBuffer, macros); - }); - return this; - }; - Layer.prototype.toJsonObject = function (macros) { - return { - modules: this.modules.map(function (module) { return module.toJsonObject(macros); }) - }; - }; - Layer.prototype.toBinary = function (buffer, macros) { - buffer.writeArray(this.modules, function (uhkBuffer, module) { - module.toBinary(uhkBuffer, macros); - }); - }; - Layer.prototype.toString = function () { - return ""; - }; - Layer.prototype.renameKeymap = function (oldAbbr, newAbbr) { - var _this = this; - var modules; - var moduleModified = false; - this.modules.forEach(function (module, index) { - var newModule = module.renameKeymap(oldAbbr, newAbbr); - if (newModule !== module) { - if (!moduleModified) { - modules = _this.modules.slice(); - moduleModified = true; - } - modules[index] = newModule; - } - }); - if (moduleModified) { - var newLayer = Object.assign(new Layer(), this); - newLayer.modules = modules; - return newLayer; - } - return this; - }; - return Layer; -}()); -exports.Layer = Layer; - - -/***/ }), -/* 455 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var LongPressAction; -(function (LongPressAction) { - LongPressAction[LongPressAction["leftCtrl"] = 0] = "leftCtrl"; - LongPressAction[LongPressAction["leftShift"] = 1] = "leftShift"; - LongPressAction[LongPressAction["leftAlt"] = 2] = "leftAlt"; - LongPressAction[LongPressAction["leftSuper"] = 3] = "leftSuper"; - LongPressAction[LongPressAction["rightCtrl"] = 4] = "rightCtrl"; - LongPressAction[LongPressAction["rightShift"] = 5] = "rightShift"; - LongPressAction[LongPressAction["rightAlt"] = 6] = "rightAlt"; - LongPressAction[LongPressAction["rightSuper"] = 7] = "rightSuper"; - LongPressAction[LongPressAction["mod"] = 8] = "mod"; - LongPressAction[LongPressAction["fn"] = 9] = "fn"; - LongPressAction[LongPressAction["mouse"] = 10] = "mouse"; -})(LongPressAction = exports.LongPressAction || (exports.LongPressAction = {})); -; - - -/***/ }), -/* 456 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var key_action_1 = __webpack_require__(22); -var key_action_2 = __webpack_require__(22); -var PointerRole; -(function (PointerRole) { - PointerRole[PointerRole["none"] = 0] = "none"; - PointerRole[PointerRole["move"] = 1] = "move"; - PointerRole[PointerRole["scroll"] = 2] = "scroll"; -})(PointerRole || (PointerRole = {})); -var Module = (function () { - function Module(other) { - if (!other) { - return; - } - this.id = other.id; - this.keyActions = other.keyActions.map(function (keyAction) { return key_action_1.Helper.createKeyAction(keyAction); }); - this.pointerRole = other.pointerRole; - } - Module.prototype.fromJsonObject = function (jsonObject, macros) { - this.id = jsonObject.id; - this.pointerRole = PointerRole[jsonObject.pointerRole]; - this.keyActions = jsonObject.keyActions.map(function (keyAction) { - return key_action_1.Helper.createKeyAction(keyAction, macros); - }); - return this; - }; - Module.prototype.fromBinary = function (buffer, macros) { - this.id = buffer.readUInt8(); - this.pointerRole = buffer.readUInt8(); - var keyActionsLength = buffer.readCompactLength(); - this.keyActions = []; - for (var i = 0; i < keyActionsLength; ++i) { - this.keyActions.push(key_action_1.Helper.createKeyAction(buffer, macros)); - } - return this; - }; - Module.prototype.toJsonObject = function (macros) { - return { - id: this.id, - pointerRole: PointerRole[this.pointerRole], - keyActions: this.keyActions.map(function (keyAction) { - if (keyAction && (macros || !(keyAction instanceof key_action_2.PlayMacroAction || keyAction instanceof key_action_2.SwitchLayerAction))) { - return keyAction.toJsonObject(macros); - } - }) - }; - }; - Module.prototype.toBinary = function (buffer, macros) { - buffer.writeUInt8(this.id); - buffer.writeUInt8(this.pointerRole); - var noneAction = new key_action_1.NoneAction(); - var keyActions = this.keyActions.map(function (keyAction) { - if (keyAction) { - return keyAction; - } - return noneAction; - }); - buffer.writeArray(keyActions, function (uhkBuffer, keyAction) { - keyAction.toBinary(uhkBuffer, macros); - }); - }; - Module.prototype.toString = function () { - return ""; - }; - Module.prototype.renameKeymap = function (oldAbbr, newAbbr) { - var _this = this; - var keyActions; - var keyActionModified = false; - this.keyActions.forEach(function (keyAction, index) { - if (!keyAction) { - return; - } - var newKeyAction = keyAction.renameKeymap(oldAbbr, newAbbr); - if (newKeyAction !== keyAction) { - if (!keyActionModified) { - keyActions = _this.keyActions.slice(); - keyActionModified = true; - } - keyActions[index] = newKeyAction; - } - }); - if (keyActionModified) { - var newModule = Object.assign(new Module(), this); - newModule.keyActions = keyActions; - return newModule; - } - return this; - }; - return Module; -}()); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], Module.prototype, "id", void 0); -__decorate([ - assert_1.assertEnum(PointerRole), - __metadata("design:type", Number) -], Module.prototype, "pointerRole", void 0); -exports.Module = Module; - - -/***/ }), -/* 457 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var MacroAction_1 = __webpack_require__(68); -var DelayMacroAction = (function (_super) { - __extends(DelayMacroAction, _super); - function DelayMacroAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.delay = other.delay; - return _this; - } - DelayMacroAction.prototype.fromJsonObject = function (jsObject) { - this.assertMacroActionType(jsObject); - this.delay = jsObject.delay; - return this; - }; - DelayMacroAction.prototype.fromBinary = function (buffer) { - this.readAndAssertMacroActionId(buffer); - this.delay = buffer.readUInt16(); - return this; - }; - DelayMacroAction.prototype.toJsonObject = function () { - return { - macroActionType: MacroAction_1.macroActionType.DelayMacroAction, - delay: this.delay - }; - }; - DelayMacroAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(MacroAction_1.MacroActionId.DelayMacroAction); - buffer.writeUInt16(this.delay); - }; - DelayMacroAction.prototype.toString = function () { - return ""; - }; - return DelayMacroAction; -}(MacroAction_1.MacroAction)); -__decorate([ - assert_1.assertUInt16, - __metadata("design:type", Number) -], DelayMacroAction.prototype, "delay", void 0); -exports.DelayMacroAction = DelayMacroAction; - - -/***/ }), -/* 458 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var MacroAction_1 = __webpack_require__(68); -var NUM_OF_COMBINATIONS = 3; // Cases: scancode, modifer, both -var KeyMacroAction = (function (_super) { - __extends(KeyMacroAction, _super); - function KeyMacroAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.action = other.action; - _this.scancode = other.scancode; - _this.modifierMask = other.modifierMask; - return _this; - } - KeyMacroAction.prototype.fromJsonObject = function (jsObject) { - this.assertMacroActionType(jsObject); - this.action = MacroAction_1.MacroSubAction[jsObject.action]; - this.scancode = jsObject.scancode; - this.modifierMask = jsObject.modifierMask; - return this; - }; - KeyMacroAction.prototype.fromBinary = function (buffer) { - var macroActionId = this.readAndAssertMacroActionId(buffer); - var keyMacroType = macroActionId - MacroAction_1.MacroActionId.KeyMacroAction; - this.action = Math.floor(keyMacroType / NUM_OF_COMBINATIONS); - keyMacroType %= NUM_OF_COMBINATIONS; - if (keyMacroType % 2 === 0) { - this.scancode = buffer.readUInt8(); - } - if (keyMacroType !== 0) { - this.modifierMask = buffer.readUInt8(); - } - return this; - }; - KeyMacroAction.prototype.toJsonObject = function () { - var jsObject = { - macroActionType: MacroAction_1.macroActionType.KeyMacroAction, - action: MacroAction_1.MacroSubAction[this.action] - }; - if (this.hasScancode()) { - jsObject.scancode = this.scancode; - } - if (this.hasModifiers()) { - jsObject.modifierMask = this.modifierMask; - } - return jsObject; - }; - KeyMacroAction.prototype.toBinary = function (buffer) { - var keyMacroType = MacroAction_1.MacroActionId.KeyMacroAction; - keyMacroType += NUM_OF_COMBINATIONS * this.action; - if (this.hasModifiers()) { - ++keyMacroType; - if (this.hasScancode()) { - ++keyMacroType; - } - } - buffer.writeUInt8(keyMacroType); - if (this.hasScancode()) { - buffer.writeUInt8(this.scancode); - } - if (this.hasModifiers()) { - buffer.writeUInt8(this.modifierMask); - } - }; - KeyMacroAction.prototype.toString = function () { - return ""; - }; - KeyMacroAction.prototype.isModifierActive = function (modifier) { - return (this.modifierMask & modifier) > 0; - }; - KeyMacroAction.prototype.hasScancode = function () { - return !!this.scancode; - }; - KeyMacroAction.prototype.hasModifiers = function () { - return !!this.modifierMask; - }; - KeyMacroAction.prototype.isHoldAction = function () { - return this.action === MacroAction_1.MacroSubAction.hold; - }; - KeyMacroAction.prototype.isPressAction = function () { - return this.action === MacroAction_1.MacroSubAction.press; - }; - KeyMacroAction.prototype.isReleaseAction = function () { - return this.action === MacroAction_1.MacroSubAction.release; - }; - return KeyMacroAction; -}(MacroAction_1.MacroAction)); -__decorate([ - assert_1.assertEnum(MacroAction_1.MacroSubAction), - __metadata("design:type", Number) -], KeyMacroAction.prototype, "action", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], KeyMacroAction.prototype, "scancode", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], KeyMacroAction.prototype, "modifierMask", void 0); -exports.KeyMacroAction = KeyMacroAction; - - -/***/ }), -/* 459 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var MacroAction_1 = __webpack_require__(68); -var MouseButtons; -(function (MouseButtons) { - MouseButtons[MouseButtons["Left"] = 1] = "Left"; - MouseButtons[MouseButtons["Middle"] = 2] = "Middle"; - MouseButtons[MouseButtons["Right"] = 4] = "Right"; -})(MouseButtons = exports.MouseButtons || (exports.MouseButtons = {})); -; -var MouseButtonMacroAction = (function (_super) { - __extends(MouseButtonMacroAction, _super); - function MouseButtonMacroAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.action = other.action; - _this.mouseButtonsMask = other.mouseButtonsMask; - return _this; - } - MouseButtonMacroAction.prototype.fromJsonObject = function (jsObject) { - this.assertMacroActionType(jsObject); - this.action = MacroAction_1.MacroSubAction[jsObject.action]; - this.mouseButtonsMask = jsObject.mouseButtonsMask; - return this; - }; - MouseButtonMacroAction.prototype.fromBinary = function (buffer) { - var macroActionId = this.readAndAssertMacroActionId(buffer); - this.action = macroActionId - MacroAction_1.MacroActionId.MouseButtonMacroAction; - this.mouseButtonsMask = buffer.readUInt8(); - return this; - }; - MouseButtonMacroAction.prototype.toJsonObject = function () { - return { - macroActionType: MacroAction_1.macroActionType.MouseButtonMacroAction, - action: MacroAction_1.MacroSubAction[this.action], - mouseButtonsMask: this.mouseButtonsMask - }; - }; - MouseButtonMacroAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(MacroAction_1.MacroActionId.MouseButtonMacroAction + this.action); - buffer.writeUInt8(this.mouseButtonsMask); - }; - MouseButtonMacroAction.prototype.setMouseButtons = function (buttonStates) { - var bitmask = 0; - for (var i = 0; i < buttonStates.length; i++) { - bitmask |= Number(buttonStates[i]) << i; - } - this.mouseButtonsMask = bitmask; - }; - MouseButtonMacroAction.prototype.getMouseButtons = function () { - var enabledMouseButtons = []; - for (var bitmask = this.mouseButtonsMask; bitmask; bitmask >>>= 1) { - enabledMouseButtons.push(Boolean(bitmask & 1)); - } - return enabledMouseButtons; - }; - MouseButtonMacroAction.prototype.toString = function () { - return ""; - }; - MouseButtonMacroAction.prototype.hasButtons = function () { - return this.mouseButtonsMask !== 0; - }; - MouseButtonMacroAction.prototype.isOnlyHoldAction = function () { - return this.action === MacroAction_1.MacroSubAction.hold; - }; - MouseButtonMacroAction.prototype.isOnlyPressAction = function () { - return this.action === MacroAction_1.MacroSubAction.press; - }; - MouseButtonMacroAction.prototype.isOnlyReleaseAction = function () { - return this.action === MacroAction_1.MacroSubAction.release; - }; - return MouseButtonMacroAction; -}(MacroAction_1.MacroAction)); -__decorate([ - assert_1.assertEnum(MacroAction_1.MacroSubAction), - __metadata("design:type", Number) -], MouseButtonMacroAction.prototype, "action", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], MouseButtonMacroAction.prototype, "mouseButtonsMask", void 0); -exports.MouseButtonMacroAction = MouseButtonMacroAction; - - -/***/ }), -/* 460 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var MacroAction_1 = __webpack_require__(68); -var MoveMouseMacroAction = (function (_super) { - __extends(MoveMouseMacroAction, _super); - function MoveMouseMacroAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.x = other.x; - _this.y = other.y; - return _this; - } - MoveMouseMacroAction.prototype.fromJsonObject = function (jsObject) { - this.assertMacroActionType(jsObject); - this.x = jsObject.x; - this.y = jsObject.y; - return this; - }; - MoveMouseMacroAction.prototype.fromBinary = function (buffer) { - this.readAndAssertMacroActionId(buffer); - this.x = buffer.readInt16(); - this.y = buffer.readInt16(); - return this; - }; - MoveMouseMacroAction.prototype.toJsonObject = function () { - return { - macroActionType: MacroAction_1.macroActionType.MoveMouseMacroAction, - x: this.x, - y: this.y - }; - }; - MoveMouseMacroAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(MacroAction_1.MacroActionId.MoveMouseMacroAction); - buffer.writeInt16(this.x); - buffer.writeInt16(this.y); - }; - MoveMouseMacroAction.prototype.toString = function () { - return ""; - }; - return MoveMouseMacroAction; -}(MacroAction_1.MacroAction)); -__decorate([ - assert_1.assertInt16, - __metadata("design:type", Number) -], MoveMouseMacroAction.prototype, "x", void 0); -__decorate([ - assert_1.assertInt16, - __metadata("design:type", Number) -], MoveMouseMacroAction.prototype, "y", void 0); -exports.MoveMouseMacroAction = MoveMouseMacroAction; - - -/***/ }), -/* 461 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var MacroAction_1 = __webpack_require__(68); -var ScrollMouseMacroAction = (function (_super) { - __extends(ScrollMouseMacroAction, _super); - function ScrollMouseMacroAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.x = other.x; - _this.y = other.y; - return _this; - } - ScrollMouseMacroAction.prototype.fromJsonObject = function (jsObject) { - this.assertMacroActionType(jsObject); - this.x = jsObject.x; - this.y = jsObject.y; - return this; - }; - ScrollMouseMacroAction.prototype.fromBinary = function (buffer) { - this.readAndAssertMacroActionId(buffer); - this.x = buffer.readInt16(); - this.y = buffer.readInt16(); - return this; - }; - ScrollMouseMacroAction.prototype.toJsonObject = function () { - return { - macroActionType: MacroAction_1.macroActionType.ScrollMouseMacroAction, - x: this.x, - y: this.y - }; - }; - ScrollMouseMacroAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(MacroAction_1.MacroActionId.ScrollMouseMacroAction); - buffer.writeInt16(this.x); - buffer.writeInt16(this.y); - }; - ScrollMouseMacroAction.prototype.toString = function () { - return ""; - }; - return ScrollMouseMacroAction; -}(MacroAction_1.MacroAction)); -__decorate([ - assert_1.assertInt16, - __metadata("design:type", Number) -], ScrollMouseMacroAction.prototype, "x", void 0); -__decorate([ - assert_1.assertInt16, - __metadata("design:type", Number) -], ScrollMouseMacroAction.prototype, "y", void 0); -exports.ScrollMouseMacroAction = ScrollMouseMacroAction; - - -/***/ }), -/* 462 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var MacroAction_1 = __webpack_require__(68); -var TextMacroAction = (function (_super) { - __extends(TextMacroAction, _super); - function TextMacroAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.text = other.text; - return _this; - } - TextMacroAction.prototype.fromJsonObject = function (jsObject) { - this.assertMacroActionType(jsObject); - this.text = jsObject.text; - return this; - }; - TextMacroAction.prototype.fromBinary = function (buffer) { - this.readAndAssertMacroActionId(buffer); - this.text = buffer.readString(); - return this; - }; - TextMacroAction.prototype.toJsonObject = function () { - return { - macroActionType: MacroAction_1.macroActionType.TextMacroAction, - text: this.text - }; - }; - TextMacroAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(MacroAction_1.MacroActionId.TextMacroAction); - buffer.writeString(this.text); - }; - TextMacroAction.prototype.toString = function () { - return ""; - }; - return TextMacroAction; -}(MacroAction_1.MacroAction)); -exports.TextMacroAction = TextMacroAction; - - -/***/ }), -/* 463 */, -/* 464 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {var WritableStream = __webpack_require__(191).Writable -var inherits = __webpack_require__(1124).inherits - -module.exports = BrowserStdout - - -inherits(BrowserStdout, WritableStream) - -function BrowserStdout(opts) { - if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) - - opts = opts || {} - WritableStream.call(this, opts) - this.label = (opts.label !== undefined) ? opts.label : 'stdout' +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + + + +module.exports = Transform; + +var Duplex = __webpack_require__(50); + +/**/ +var util = __webpack_require__(76); +util.inherits = __webpack_require__(58); +/**/ + +util.inherits(Transform, Duplex); + +function TransformState(stream) { + this.afterTransform = function (er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; + this.writeencoding = null; } -BrowserStdout.prototype._write = function(chunks, encoding, cb) { - var output = chunks.toString ? chunks.toString() : chunks - if (this.label === false) { - console.log(output) - } else { - console.log(this.label+':', output) +function afterTransform(stream, er, data) { + var ts = stream._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) { + return stream.emit('error', new Error('write callback called multiple times')); + } + + ts.writechunk = null; + ts.writecb = null; + + if (data !== null && data !== undefined) stream.push(data); + + cb(er); + + var rs = stream._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + stream._read(rs.highWaterMark); } - process.nextTick(cb) } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32))) +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = new TransformState(this); + + var stream = this; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.once('prefinish', function () { + if (typeof this._flush === 'function') this._flush(function (er, data) { + done(stream, er, data); + });else done(stream); + }); +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + var _this = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this.emit('close'); + }); +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + + if (data !== null && data !== undefined) stream.push(data); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + var ws = stream._writableState; + var ts = stream._transformState; + + if (ws.length) throw new Error('Calling transform done when ws.length != 0'); + + if (ts.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} /***/ }), +/* 256 */, +/* 257 */, +/* 258 */, +/* 259 */, +/* 260 */, +/* 261 */, +/* 262 */, +/* 263 */, +/* 264 */, +/* 265 */, +/* 266 */, +/* 267 */, +/* 268 */, +/* 269 */, +/* 270 */, +/* 271 */, +/* 272 */, +/* 273 */, +/* 274 */, +/* 275 */, +/* 276 */, +/* 277 */, +/* 278 */, +/* 279 */, +/* 280 */, +/* 281 */, +/* 282 */, +/* 283 */, +/* 284 */, +/* 285 */, +/* 286 */, +/* 287 */, +/* 288 */, +/* 289 */, +/* 290 */, +/* 291 */, +/* 292 */, +/* 293 */, +/* 294 */, +/* 295 */, +/* 296 */, +/* 297 */, +/* 298 */, +/* 299 */, +/* 300 */, +/* 301 */, +/* 302 */, +/* 303 */, +/* 304 */, +/* 305 */, +/* 306 */, +/* 307 */, +/* 308 */, +/* 309 */, +/* 310 */, +/* 311 */, +/* 312 */, +/* 313 */, +/* 314 */, +/* 315 */, +/* 316 */, +/* 317 */, +/* 318 */, +/* 319 */, +/* 320 */, +/* 321 */, +/* 322 */, +/* 323 */, +/* 324 */, +/* 325 */, +/* 326 */, +/* 327 */, +/* 328 */, +/* 329 */, +/* 330 */, +/* 331 */, +/* 332 */, +/* 333 */, +/* 334 */, +/* 335 */, +/* 336 */, +/* 337 */, +/* 338 */, +/* 339 */, +/* 340 */, +/* 341 */, +/* 342 */, +/* 343 */, +/* 344 */, +/* 345 */, +/* 346 */, +/* 347 */, +/* 348 */, +/* 349 */, +/* 350 */, +/* 351 */, +/* 352 */, +/* 353 */, +/* 354 */, +/* 355 */, +/* 356 */, +/* 357 */, +/* 358 */, +/* 359 */, +/* 360 */, +/* 361 */, +/* 362 */, +/* 363 */, +/* 364 */, +/* 365 */, +/* 366 */, +/* 367 */, +/* 368 */, +/* 369 */, +/* 370 */, +/* 371 */, +/* 372 */, +/* 373 */, +/* 374 */, +/* 375 */, +/* 376 */, +/* 377 */, +/* 378 */, +/* 379 */, +/* 380 */, +/* 381 */, +/* 382 */, +/* 383 */, +/* 384 */, +/* 385 */, +/* 386 */, +/* 387 */, +/* 388 */, +/* 389 */, +/* 390 */, +/* 391 */, +/* 392 */, +/* 393 */, +/* 394 */, +/* 395 */, +/* 396 */, +/* 397 */, +/* 398 */, +/* 399 */, +/* 400 */, +/* 401 */, +/* 402 */, +/* 403 */, +/* 404 */, +/* 405 */, +/* 406 */, +/* 407 */, +/* 408 */, +/* 409 */, +/* 410 */, +/* 411 */, +/* 412 */, +/* 413 */, +/* 414 */, +/* 415 */, +/* 416 */, +/* 417 */, +/* 418 */, +/* 419 */, +/* 420 */, +/* 421 */, +/* 422 */, +/* 423 */, +/* 424 */, +/* 425 */, +/* 426 */, +/* 427 */, +/* 428 */, +/* 429 */, +/* 430 */, +/* 431 */, +/* 432 */, +/* 433 */, +/* 434 */, +/* 435 */, +/* 436 */, +/* 437 */, +/* 438 */, +/* 439 */, +/* 440 */, +/* 441 */, +/* 442 */, +/* 443 */, +/* 444 */, +/* 445 */, +/* 446 */, +/* 447 */, +/* 448 */, +/* 449 */, +/* 450 */, +/* 451 */, +/* 452 */, +/* 453 */, +/* 454 */, +/* 455 */, +/* 456 */, +/* 457 */, +/* 458 */, +/* 459 */, +/* 460 */, +/* 461 */, +/* 462 */, +/* 463 */, +/* 464 */, /* 465 */, /* 466 */, /* 467 */, -/* 468 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var forms_1 = __webpack_require__(352); -var platform_browser_1 = __webpack_require__(162); -var effects_1 = __webpack_require__(165); -var store_1 = __webpack_require__(9); -var store_devtools_1 = __webpack_require__(247); -var store_log_monitor_1 = __webpack_require__(589); -var ng2_dragula_1 = __webpack_require__(404); -var ng2_select2_1 = __webpack_require__(406); -var add_on_1 = __webpack_require__(444); -var slider_1 = __webpack_require__(1012); -var keymap_1 = __webpack_require__(1016); -var layers_1 = __webpack_require__(1017); -var macro_1 = __webpack_require__(288); -var notification_1 = __webpack_require__(1037); -var popover_1 = __webpack_require__(449); -var tab_1 = __webpack_require__(193); -var capture_keystroke_1 = __webpack_require__(1053); -var icon_1 = __webpack_require__(1055); -var settings_1 = __webpack_require__(450); -var side_menu_1 = __webpack_require__(1057); -var keyboard_1 = __webpack_require__(1059); -var keys_1 = __webpack_require__(1061); -var module_1 = __webpack_require__(452); -var wrap_1 = __webpack_require__(1090); -var main_app_1 = __webpack_require__(1118); -var directives_1 = __webpack_require__(1104); -var capture_service_1 = __webpack_require__(292); -var mapper_service_1 = __webpack_require__(31); -var effects_2 = __webpack_require__(1107); -var reducers_1 = __webpack_require__(1110); -var storage_1 = __webpack_require__(1113); -var edit_1 = __webpack_require__(446); -var not_found_1 = __webpack_require__(289); -// Create DataStorage dependency injection -var storageProvider = core_1.ReflectiveInjector.resolve([storage_1.DataStorage]); -var storageInjector = core_1.ReflectiveInjector.fromResolvedProviders(storageProvider); -var storageService = storageInjector.get(storage_1.DataStorage); -// All reducers that are used in application -var storeConfig = { - userConfiguration: storageService.saveState(reducers_1.userConfigurationReducer), - presetKeymaps: reducers_1.presetReducer -}; -var AppModule = (function () { - function AppModule() { - } - return AppModule; -}()); -AppModule = __decorate([ - core_1.NgModule({ - declarations: [ - main_app_1.MainAppComponent, - keymap_1.KeymapEditComponent, - keymap_1.KeymapHeaderComponent, - notification_1.NotificationComponent, - keys_1.SvgIconTextKeyComponent, - keys_1.SvgKeyboardKeyComponent, - keys_1.SvgKeystrokeKeyComponent, - keys_1.SvgMouseKeyComponent, - keys_1.SvgMouseClickKeyComponent, - keys_1.SvgMouseMoveKeyComponent, - keys_1.SvgMouseScrollKeyComponent, - keys_1.SvgMouseSpeedKeyComponent, - keys_1.SvgOneLineTextKeyComponent, - keys_1.SvgSingleIconKeyComponent, - keys_1.SvgSwitchKeymapKeyComponent, - keys_1.SvgTextIconKeyComponent, - keys_1.SvgTwoLineTextKeyComponent, - keys_1.SvgKeyboardKeyComponent, - wrap_1.SvgKeyboardWrapComponent, - keyboard_1.SvgKeyboardComponent, - module_1.SvgModuleComponent, - layers_1.LayersComponent, - popover_1.PopoverComponent, - keymap_1.KeymapAddComponent, - side_menu_1.SideMenuComponent, - tab_1.KeypressTabComponent, - tab_1.KeymapTabComponent, - tab_1.LayerTabComponent, - tab_1.MacroTabComponent, - tab_1.MouseTabComponent, - tab_1.NoneTabComponent, - capture_keystroke_1.CaptureKeystrokeButtonComponent, - icon_1.IconComponent, - macro_1.MacroEditComponent, - macro_1.MacroListComponent, - macro_1.MacroHeaderComponent, - macro_1.MacroItemComponent, - macro_1.MacroActionEditorComponent, - macro_1.MacroDelayTabComponent, - macro_1.MacroKeyTabComponent, - macro_1.MacroMouseTabComponent, - macro_1.MacroTextTabComponent, - macro_1.MacroNotFoundComponent, - add_on_1.AddOnComponent, - settings_1.SettingsComponent, - slider_1.KeyboardSliderComponent, - directives_1.CancelableDirective - ], - imports: [ - platform_browser_1.BrowserModule, - forms_1.FormsModule, - ng2_dragula_1.DragulaModule, - main_app_1.routing, - store_1.StoreModule.provideStore(storeConfig, storageService.initialState()), - store_devtools_1.StoreDevtoolsModule.instrumentStore({ - monitor: store_log_monitor_1.useLogMonitor({ - visible: false, - position: 'right' - }) - }), - store_log_monitor_1.StoreLogMonitorModule, - ng2_select2_1.Select2Module, - effects_1.EffectsModule.runAfterBootstrap(effects_2.KeymapEffects), - effects_1.EffectsModule.runAfterBootstrap(effects_2.MacroEffects) - ], - providers: [ - mapper_service_1.MapperService, - main_app_1.appRoutingProviders, - edit_1.KeymapEditGuard, - not_found_1.MacroNotFoundGuard, - capture_service_1.CaptureService - ], - bootstrap: [main_app_1.MainAppComponent] - }) -], AppModule); -exports.AppModule = AppModule; - - -/***/ }), +/* 468 */, /* 469 */, /* 470 */, /* 471 */, @@ -6605,28 +9585,7 @@ exports.AppModule = AppModule; /* 576 */, /* 577 */, /* 578 */, -/* 579 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -exports.compose = function () { - var functions = []; - for (var _i = 0; _i < arguments.length; _i++) { - functions[_i - 0] = arguments[_i]; - } - return function (arg) { - if (functions.length === 0) { - return arg; - } - var last = functions[functions.length - 1]; - var rest = functions.slice(0, -1); - return rest.reduceRight(function (composed, fn) { return fn(composed); }, last(arg)); - }; -}; - - -/***/ }), +/* 579 */, /* 580 */, /* 581 */, /* 582 */, @@ -6634,15 +9593,5850 @@ exports.compose = function () { /* 584 */, /* 585 */, /* 586 */, -/* 587 */ +/* 587 */, +/* 588 */, +/* 589 */, +/* 590 */, +/* 591 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { +Object.defineProperty(exports, "__esModule", { value: true }); +var platform_browser_dynamic_1 = __webpack_require__(170); +var app_module_1 = __webpack_require__(592); +if (!process.stdout) { + process.stdout = __webpack_require__(832)(); +} +platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule); + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38))) + +/***/ }), +/* 592 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var forms_1 = __webpack_require__(171); +var platform_browser_1 = __webpack_require__(42); +var animations_1 = __webpack_require__(593); +var angular_notifier_1 = __webpack_require__(221); +var effects_1 = __webpack_require__(46); +var store_1 = __webpack_require__(5); +var store_devtools_1 = __webpack_require__(130); +var store_log_monitor_1 = __webpack_require__(597); +var router_store_1 = __webpack_require__(227); +var ng2_dragula_1 = __webpack_require__(228); +var ng2_select2_1 = __webpack_require__(215); +var add_on_1 = __webpack_require__(229); +var slider_1 = __webpack_require__(618); +var keymap_1 = __webpack_require__(622); +var layers_1 = __webpack_require__(649); +var macro_1 = __webpack_require__(138); +var notification_1 = __webpack_require__(715); +var popover_1 = __webpack_require__(242); +var tab_1 = __webpack_require__(100); +var capture_keystroke_1 = __webpack_require__(722); +var icon_1 = __webpack_require__(726); +var settings_1 = __webpack_require__(243); +var side_menu_1 = __webpack_require__(735); +var keyboard_1 = __webpack_require__(739); +var keys_1 = __webpack_require__(751); +var module_1 = __webpack_require__(246); +var wrap_1 = __webpack_require__(793); +var main_app_1 = __webpack_require__(797); +var directives_1 = __webpack_require__(806); +var pipes_1 = __webpack_require__(811); +var capture_service_1 = __webpack_require__(142); +var mapper_service_1 = __webpack_require__(22); +var svg_module_provider_service_1 = __webpack_require__(245); +var effects_2 = __webpack_require__(813); +var edit_1 = __webpack_require__(247); +var not_found_1 = __webpack_require__(139); +var datastorage_repository_service_1 = __webpack_require__(146); +var local_datastorage_repository_service_1 = __webpack_require__(825); +var default_user_configuration_service_1 = __webpack_require__(248); +var index_1 = __webpack_require__(826); +var logger_service_1 = __webpack_require__(828); +var auto_update_settings_1 = __webpack_require__(829); +var angular_notifier_config_1 = __webpack_require__(831); +var AppModule = (function () { + function AppModule() { + } + return AppModule; +}()); +AppModule = __decorate([ + core_1.NgModule({ + declarations: [ + main_app_1.MainAppComponent, + keymap_1.KeymapEditComponent, + keymap_1.KeymapHeaderComponent, + notification_1.NotificationComponent, + keys_1.SvgIconTextKeyComponent, + keys_1.SvgKeyboardKeyComponent, + keys_1.SvgKeystrokeKeyComponent, + keys_1.SvgMouseKeyComponent, + keys_1.SvgMouseClickKeyComponent, + keys_1.SvgMouseMoveKeyComponent, + keys_1.SvgMouseScrollKeyComponent, + keys_1.SvgMouseSpeedKeyComponent, + keys_1.SvgOneLineTextKeyComponent, + keys_1.SvgSingleIconKeyComponent, + keys_1.SvgSwitchKeymapKeyComponent, + keys_1.SvgTextIconKeyComponent, + keys_1.SvgTwoLineTextKeyComponent, + keys_1.SvgKeyboardKeyComponent, + wrap_1.SvgKeyboardWrapComponent, + keyboard_1.SvgKeyboardComponent, + module_1.SvgModuleComponent, + layers_1.LayersComponent, + popover_1.PopoverComponent, + keymap_1.KeymapAddComponent, + side_menu_1.SideMenuComponent, + tab_1.KeypressTabComponent, + tab_1.KeymapTabComponent, + tab_1.LayerTabComponent, + tab_1.MacroTabComponent, + tab_1.MouseTabComponent, + tab_1.NoneTabComponent, + capture_keystroke_1.CaptureKeystrokeButtonComponent, + icon_1.IconComponent, + macro_1.MacroEditComponent, + macro_1.MacroListComponent, + macro_1.MacroHeaderComponent, + macro_1.MacroItemComponent, + macro_1.MacroActionEditorComponent, + macro_1.MacroDelayTabComponent, + macro_1.MacroKeyTabComponent, + macro_1.MacroMouseTabComponent, + macro_1.MacroTextTabComponent, + macro_1.MacroNotFoundComponent, + add_on_1.AddOnComponent, + settings_1.SettingsComponent, + slider_1.KeyboardSliderComponent, + directives_1.CancelableDirective, + directives_1.TooltipDirective, + pipes_1.SafeStylePipe, + auto_update_settings_1.AutoUpdateSettings + ], + imports: [ + platform_browser_1.BrowserModule, + animations_1.BrowserAnimationsModule, + forms_1.FormsModule, + ng2_dragula_1.DragulaModule, + main_app_1.routing, + store_1.StoreModule.provideStore(index_1.reducer), + router_store_1.RouterStoreModule.connectRouter(), + store_devtools_1.StoreDevtoolsModule.instrumentStore({ + monitor: store_log_monitor_1.useLogMonitor({ + visible: false, + position: 'right' + }) + }), + store_log_monitor_1.StoreLogMonitorModule, + ng2_select2_1.Select2Module, + angular_notifier_1.NotifierModule.withConfig(angular_notifier_config_1.angularNotifierConfig), + effects_1.EffectsModule.runAfterBootstrap(effects_2.KeymapEffects), + effects_1.EffectsModule.runAfterBootstrap(effects_2.MacroEffects), + effects_1.EffectsModule.runAfterBootstrap(effects_2.UserConfigEffects), + effects_1.EffectsModule.runAfterBootstrap(effects_2.AutoUpdateSettingsEffects), + effects_1.EffectsModule.runAfterBootstrap(effects_2.ApplicationEffects) + ], + providers: [ + svg_module_provider_service_1.SvgModuleProviderService, + mapper_service_1.MapperService, + main_app_1.appRoutingProviders, + edit_1.KeymapEditGuard, + not_found_1.MacroNotFoundGuard, + capture_service_1.CaptureService, + { provide: datastorage_repository_service_1.DATA_STORAGE_REPOSITORY, useClass: local_datastorage_repository_service_1.LocalDataStorageRepositoryService }, + default_user_configuration_service_1.DefaultUserConfigurationService, + logger_service_1.LogService, + default_user_configuration_service_1.DefaultUserConfigurationService + ], + bootstrap: [main_app_1.MainAppComponent] + }) +], AppModule); +exports.AppModule = AppModule; + + +/***/ }), +/* 593 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BrowserAnimationsModule", function() { return BrowserAnimationsModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoopAnimationsModule", function() { return NoopAnimationsModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵBrowserAnimationBuilder", function() { return BrowserAnimationBuilder; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵBrowserAnimationFactory", function() { return BrowserAnimationFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵAnimationRenderer", function() { return AnimationRenderer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵAnimationRendererFactory", function() { return AnimationRendererFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵa", function() { return BaseAnimationRenderer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵf", function() { return BROWSER_ANIMATIONS_PROVIDERS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵg", function() { return BROWSER_NOOP_ANIMATIONS_PROVIDERS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵb", function() { return InjectableAnimationEngine; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵd", function() { return instantiateDefaultStyleNormalizer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵe", function() { return instantiateRendererFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵc", function() { return instantiateSupportedAnimationDriver; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(29); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_platform_browser__ = __webpack_require__(42); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_animations__ = __webpack_require__(33); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__ = __webpack_require__(594); + +/** + * @license Angular v4.2.6 + * (c) 2010-2017 Google, Inc. https://angular.io/ + * License: MIT + */ + + + + +/** + * @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 BrowserAnimationBuilder = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](BrowserAnimationBuilder, _super); + /** + * @param {?} rootRenderer + */ + function BrowserAnimationBuilder(rootRenderer) { + var _this = _super.call(this) || this; + _this._nextAnimationId = 0; + var typeData = { + id: '0', + encapsulation: __WEBPACK_IMPORTED_MODULE_1__angular_core__["ViewEncapsulation"].None, + styles: [], + data: { animation: [] } + }; + _this._renderer = rootRenderer.createRenderer(document.body, typeData); + return _this; + } + /** + * @param {?} animation + * @return {?} + */ + BrowserAnimationBuilder.prototype.build = function (animation) { + var /** @type {?} */ id = this._nextAnimationId.toString(); + this._nextAnimationId++; + var /** @type {?} */ entry = Array.isArray(animation) ? __WEBPACK_IMPORTED_MODULE_3__angular_animations__["sequence"](animation) : animation; + issueAnimationCommand(this._renderer, null, id, 'register', [entry]); + return new BrowserAnimationFactory(id, this._renderer); + }; + return BrowserAnimationBuilder; +}(__WEBPACK_IMPORTED_MODULE_3__angular_animations__["AnimationBuilder"])); +BrowserAnimationBuilder.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +BrowserAnimationBuilder.ctorParameters = function () { return [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["RendererFactory2"], }, +]; }; +var BrowserAnimationFactory = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](BrowserAnimationFactory, _super); + /** + * @param {?} _id + * @param {?} _renderer + */ + function BrowserAnimationFactory(_id, _renderer) { + var _this = _super.call(this) || this; + _this._id = _id; + _this._renderer = _renderer; + return _this; + } + /** + * @param {?} element + * @param {?=} options + * @return {?} + */ + BrowserAnimationFactory.prototype.create = function (element, options) { + return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer); + }; + return BrowserAnimationFactory; +}(__WEBPACK_IMPORTED_MODULE_3__angular_animations__["AnimationFactory"])); +var RendererAnimationPlayer = (function () { + /** + * @param {?} id + * @param {?} element + * @param {?} options + * @param {?} _renderer + */ + function RendererAnimationPlayer(id, element, options, _renderer) { + this.id = id; + this.element = element; + this._renderer = _renderer; + this.parentPlayer = null; + this._started = false; + this.totalTime = 0; + this._command('create', options); + } + /** + * @param {?} eventName + * @param {?} callback + * @return {?} + */ + RendererAnimationPlayer.prototype._listen = function (eventName, callback) { + return this._renderer.listen(this.element, "@@" + this.id + ":" + eventName, callback); + }; + /** + * @param {?} command + * @param {...?} args + * @return {?} + */ + RendererAnimationPlayer.prototype._command = function (command) { + var args = []; + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i]; + } + return issueAnimationCommand(this._renderer, this.element, this.id, command, args); + }; + /** + * @param {?} fn + * @return {?} + */ + RendererAnimationPlayer.prototype.onDone = function (fn) { this._listen('done', fn); }; + /** + * @param {?} fn + * @return {?} + */ + RendererAnimationPlayer.prototype.onStart = function (fn) { this._listen('start', fn); }; + /** + * @param {?} fn + * @return {?} + */ + RendererAnimationPlayer.prototype.onDestroy = function (fn) { this._listen('destroy', fn); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.init = function () { this._command('init'); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.hasStarted = function () { return this._started; }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.play = function () { + this._command('play'); + this._started = true; + }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.pause = function () { this._command('pause'); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.restart = function () { this._command('restart'); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.finish = function () { this._command('finish'); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.destroy = function () { this._command('destroy'); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.reset = function () { this._command('reset'); }; + /** + * @param {?} p + * @return {?} + */ + RendererAnimationPlayer.prototype.setPosition = function (p) { this._command('setPosition', p); }; + /** + * @return {?} + */ + RendererAnimationPlayer.prototype.getPosition = function () { return 0; }; + return RendererAnimationPlayer; +}()); +/** + * @param {?} renderer + * @param {?} element + * @param {?} id + * @param {?} command + * @param {?} args + * @return {?} + */ +function issueAnimationCommand(renderer, element, id, command, args) { + return renderer.setProperty(element, "@@" + id + ":" + command, args); +} +/** + * @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 AnimationRendererFactory = (function () { + /** + * @param {?} delegate + * @param {?} engine + * @param {?} _zone + */ + function AnimationRendererFactory(delegate, engine, _zone) { + this.delegate = delegate; + this.engine = engine; + this._zone = _zone; + this._currentId = 0; + this._microtaskId = 1; + this._animationCallbacksBuffer = []; + this._rendererCache = new Map(); + engine.onRemovalComplete = function (element, delegate) { + // Note: if an component element has a leave animation, and the component + // a host leave animation, the view engine will call `removeChild` for the parent + // component renderer as well as for the child component renderer. + // Therefore, we need to check if we already removed the element. + if (delegate && delegate.parentNode(element)) { + delegate.removeChild(element.parentNode, element); + } + }; + } + /** + * @param {?} hostElement + * @param {?} type + * @return {?} + */ + AnimationRendererFactory.prototype.createRenderer = function (hostElement, type) { + var _this = this; + var /** @type {?} */ EMPTY_NAMESPACE_ID = ''; + // cache the delegates to find out which cached delegate can + // be used by which cached renderer + var /** @type {?} */ delegate = this.delegate.createRenderer(hostElement, type); + if (!hostElement || !type || !type.data || !type.data['animation']) { + var /** @type {?} */ renderer = this._rendererCache.get(delegate); + if (!renderer) { + renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine); + // only cache this result when the base renderer is used + this._rendererCache.set(delegate, renderer); + } + return renderer; + } + var /** @type {?} */ componentId = type.id; + var /** @type {?} */ namespaceId = type.id + '-' + this._currentId; + this._currentId++; + this.engine.register(namespaceId, hostElement); + var /** @type {?} */ animationTriggers = (type.data['animation']); + animationTriggers.forEach(function (trigger) { return _this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger); }); + return new AnimationRenderer(this, namespaceId, delegate, this.engine); + }; + /** + * @return {?} + */ + AnimationRendererFactory.prototype.begin = function () { + if (this.delegate.begin) { + this.delegate.begin(); + } + }; + /** + * @return {?} + */ + AnimationRendererFactory.prototype._scheduleCountTask = function () { + var _this = this; + Zone.current.scheduleMicroTask('incremenet the animation microtask', function () { return _this._microtaskId++; }); + }; + /** + * @param {?} count + * @param {?} fn + * @param {?} data + * @return {?} + */ + AnimationRendererFactory.prototype.scheduleListenerCallback = function (count, fn, data) { + var _this = this; + if (count >= 0 && count < this._microtaskId) { + this._zone.run(function () { return fn(data); }); + return; + } + if (this._animationCallbacksBuffer.length == 0) { + Promise.resolve(null).then(function () { + _this._zone.run(function () { + _this._animationCallbacksBuffer.forEach(function (tuple) { + var fn = tuple[0], data = tuple[1]; + fn(data); + }); + _this._animationCallbacksBuffer = []; + }); + }); + } + this._animationCallbacksBuffer.push([fn, data]); + }; + /** + * @return {?} + */ + AnimationRendererFactory.prototype.end = function () { + var _this = this; + this._zone.runOutsideAngular(function () { + _this._scheduleCountTask(); + _this.engine.flush(_this._microtaskId); + }); + if (this.delegate.end) { + this.delegate.end(); + } + }; + /** + * @return {?} + */ + AnimationRendererFactory.prototype.whenRenderingDone = function () { return this.engine.whenRenderingDone(); }; + return AnimationRendererFactory; +}()); +AnimationRendererFactory.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +AnimationRendererFactory.ctorParameters = function () { return [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["RendererFactory2"], }, + { type: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["b" /* ɵAnimationEngine */], }, + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["NgZone"], }, +]; }; +var BaseAnimationRenderer = (function () { + /** + * @param {?} namespaceId + * @param {?} delegate + * @param {?} engine + */ + function BaseAnimationRenderer(namespaceId, delegate, engine) { + this.namespaceId = namespaceId; + this.delegate = delegate; + this.engine = engine; + this.destroyNode = this.delegate.destroyNode ? function (n) { return delegate.destroyNode(n); } : null; + } + Object.defineProperty(BaseAnimationRenderer.prototype, "data", { + /** + * @return {?} + */ + get: function () { return this.delegate.data; }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + BaseAnimationRenderer.prototype.destroy = function () { + this.engine.destroy(this.namespaceId, this.delegate); + this.delegate.destroy(); + }; + /** + * @param {?} name + * @param {?=} namespace + * @return {?} + */ + BaseAnimationRenderer.prototype.createElement = function (name, namespace) { + return this.delegate.createElement(name, namespace); + }; + /** + * @param {?} value + * @return {?} + */ + BaseAnimationRenderer.prototype.createComment = function (value) { return this.delegate.createComment(value); }; + /** + * @param {?} value + * @return {?} + */ + BaseAnimationRenderer.prototype.createText = function (value) { return this.delegate.createText(value); }; + /** + * @param {?} parent + * @param {?} newChild + * @return {?} + */ + BaseAnimationRenderer.prototype.appendChild = function (parent, newChild) { + this.delegate.appendChild(parent, newChild); + this.engine.onInsert(this.namespaceId, newChild, parent, false); + }; + /** + * @param {?} parent + * @param {?} newChild + * @param {?} refChild + * @return {?} + */ + BaseAnimationRenderer.prototype.insertBefore = function (parent, newChild, refChild) { + this.delegate.insertBefore(parent, newChild, refChild); + this.engine.onInsert(this.namespaceId, newChild, parent, true); + }; + /** + * @param {?} parent + * @param {?} oldChild + * @return {?} + */ + BaseAnimationRenderer.prototype.removeChild = function (parent, oldChild) { + this.engine.onRemove(this.namespaceId, oldChild, this.delegate); + }; + /** + * @param {?} selectorOrNode + * @return {?} + */ + BaseAnimationRenderer.prototype.selectRootElement = function (selectorOrNode) { return this.delegate.selectRootElement(selectorOrNode); }; + /** + * @param {?} node + * @return {?} + */ + BaseAnimationRenderer.prototype.parentNode = function (node) { return this.delegate.parentNode(node); }; + /** + * @param {?} node + * @return {?} + */ + BaseAnimationRenderer.prototype.nextSibling = function (node) { return this.delegate.nextSibling(node); }; + /** + * @param {?} el + * @param {?} name + * @param {?} value + * @param {?=} namespace + * @return {?} + */ + BaseAnimationRenderer.prototype.setAttribute = function (el, name, value, namespace) { + this.delegate.setAttribute(el, name, value, namespace); + }; + /** + * @param {?} el + * @param {?} name + * @param {?=} namespace + * @return {?} + */ + BaseAnimationRenderer.prototype.removeAttribute = function (el, name, namespace) { + this.delegate.removeAttribute(el, name, namespace); + }; + /** + * @param {?} el + * @param {?} name + * @return {?} + */ + BaseAnimationRenderer.prototype.addClass = function (el, name) { this.delegate.addClass(el, name); }; + /** + * @param {?} el + * @param {?} name + * @return {?} + */ + BaseAnimationRenderer.prototype.removeClass = function (el, name) { this.delegate.removeClass(el, name); }; + /** + * @param {?} el + * @param {?} style + * @param {?} value + * @param {?=} flags + * @return {?} + */ + BaseAnimationRenderer.prototype.setStyle = function (el, style, value, flags) { + this.delegate.setStyle(el, style, value, flags); + }; + /** + * @param {?} el + * @param {?} style + * @param {?=} flags + * @return {?} + */ + BaseAnimationRenderer.prototype.removeStyle = function (el, style, flags) { + this.delegate.removeStyle(el, style, flags); + }; + /** + * @param {?} el + * @param {?} name + * @param {?} value + * @return {?} + */ + BaseAnimationRenderer.prototype.setProperty = function (el, name, value) { + this.delegate.setProperty(el, name, value); + }; + /** + * @param {?} node + * @param {?} value + * @return {?} + */ + BaseAnimationRenderer.prototype.setValue = function (node, value) { this.delegate.setValue(node, value); }; + /** + * @param {?} target + * @param {?} eventName + * @param {?} callback + * @return {?} + */ + BaseAnimationRenderer.prototype.listen = function (target, eventName, callback) { + return this.delegate.listen(target, eventName, callback); + }; + return BaseAnimationRenderer; +}()); +var AnimationRenderer = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](AnimationRenderer, _super); + /** + * @param {?} factory + * @param {?} namespaceId + * @param {?} delegate + * @param {?} engine + */ + function AnimationRenderer(factory, namespaceId, delegate, engine) { + var _this = _super.call(this, namespaceId, delegate, engine) || this; + _this.factory = factory; + _this.namespaceId = namespaceId; + return _this; + } + /** + * @param {?} el + * @param {?} name + * @param {?} value + * @return {?} + */ + AnimationRenderer.prototype.setProperty = function (el, name, value) { + if (name.charAt(0) == '@') { + name = name.substr(1); + this.engine.setProperty(this.namespaceId, el, name, value); + } + else { + this.delegate.setProperty(el, name, value); + } + }; + /** + * @param {?} target + * @param {?} eventName + * @param {?} callback + * @return {?} + */ + AnimationRenderer.prototype.listen = function (target, eventName, callback) { + var _this = this; + if (eventName.charAt(0) == '@') { + var /** @type {?} */ element = resolveElementFromTarget(target); + var /** @type {?} */ name = eventName.substr(1); + var /** @type {?} */ phase = ''; + if (name.charAt(0) != '@') { + _a = parseTriggerCallbackName(name), name = _a[0], phase = _a[1]; + } + return this.engine.listen(this.namespaceId, element, name, phase, function (event) { + var /** @type {?} */ countId = ((event))['_data'] || -1; + _this.factory.scheduleListenerCallback(countId, callback, event); + }); + } + return this.delegate.listen(target, eventName, callback); + var _a; + }; + return AnimationRenderer; +}(BaseAnimationRenderer)); +/** + * @param {?} target + * @return {?} + */ +function resolveElementFromTarget(target) { + switch (target) { + case 'body': + return document.body; + case 'document': + return document; + case 'window': + return window; + default: + return target; + } +} +/** + * @param {?} triggerName + * @return {?} + */ +function parseTriggerCallbackName(triggerName) { + var /** @type {?} */ dotIndex = triggerName.indexOf('.'); + var /** @type {?} */ trigger = triggerName.substring(0, dotIndex); + var /** @type {?} */ phase = triggerName.substr(dotIndex + 1); + return [trigger, phase]; +} +/** + * @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 InjectableAnimationEngine = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](InjectableAnimationEngine, _super); + /** + * @param {?} driver + * @param {?} normalizer + */ + function InjectableAnimationEngine(driver, normalizer) { + return _super.call(this, driver, normalizer) || this; + } + return InjectableAnimationEngine; +}(__WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["b" /* ɵAnimationEngine */])); +InjectableAnimationEngine.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, +]; +/** + * @nocollapse + */ +InjectableAnimationEngine.ctorParameters = function () { return [ + { type: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["a" /* AnimationDriver */], }, + { type: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["c" /* ɵAnimationStyleNormalizer */], }, +]; }; +/** + * @return {?} + */ +function instantiateSupportedAnimationDriver() { + if (__WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["g" /* ɵsupportsWebAnimations */]()) { + return new __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["e" /* ɵWebAnimationsDriver */](); + } + return new __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["d" /* ɵNoopAnimationDriver */](); +} +/** + * @return {?} + */ +function instantiateDefaultStyleNormalizer() { + return new __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["f" /* ɵWebAnimationsStyleNormalizer */](); +} +/** + * @param {?} renderer + * @param {?} engine + * @param {?} zone + * @return {?} + */ +function instantiateRendererFactory(renderer, engine, zone) { + return new AnimationRendererFactory(renderer, engine, zone); +} +var SHARED_ANIMATION_PROVIDERS = [ + { provide: __WEBPACK_IMPORTED_MODULE_3__angular_animations__["AnimationBuilder"], useClass: BrowserAnimationBuilder }, + { provide: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["c" /* ɵAnimationStyleNormalizer */], useFactory: instantiateDefaultStyleNormalizer }, + { provide: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["b" /* ɵAnimationEngine */], useClass: InjectableAnimationEngine }, { + provide: __WEBPACK_IMPORTED_MODULE_1__angular_core__["RendererFactory2"], + useFactory: instantiateRendererFactory, + deps: [__WEBPACK_IMPORTED_MODULE_2__angular_platform_browser__["ɵDomRendererFactory2"], __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["b" /* ɵAnimationEngine */], __WEBPACK_IMPORTED_MODULE_1__angular_core__["NgZone"]] + } +]; +/** + * Separate providers from the actual module so that we can do a local modification in Google3 to + * include them in the BrowserModule. + */ +var BROWSER_ANIMATIONS_PROVIDERS = [ + { provide: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["a" /* AnimationDriver */], useFactory: instantiateSupportedAnimationDriver } +].concat(SHARED_ANIMATION_PROVIDERS); +/** + * Separate providers from the actual module so that we can do a local modification in Google3 to + * include them in the BrowserTestingModule. + */ +var BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{ provide: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["a" /* AnimationDriver */], useClass: __WEBPACK_IMPORTED_MODULE_4__angular_animations_browser__["d" /* ɵNoopAnimationDriver */] }].concat(SHARED_ANIMATION_PROVIDERS); +/** + * @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 BrowserAnimationsModule = (function () { + function BrowserAnimationsModule() { + } + return BrowserAnimationsModule; +}()); +BrowserAnimationsModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["NgModule"], args: [{ + imports: [__WEBPACK_IMPORTED_MODULE_2__angular_platform_browser__["BrowserModule"]], + providers: BROWSER_ANIMATIONS_PROVIDERS, + },] }, +]; +/** + * @nocollapse + */ +BrowserAnimationsModule.ctorParameters = function () { return []; }; +/** + * \@experimental Animation support is experimental. + */ +var NoopAnimationsModule = (function () { + function NoopAnimationsModule() { + } + return NoopAnimationsModule; +}()); +NoopAnimationsModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["NgModule"], args: [{ + imports: [__WEBPACK_IMPORTED_MODULE_2__angular_platform_browser__["BrowserModule"]], + providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, + },] }, +]; +/** + * @nocollapse + */ +NoopAnimationsModule.ctorParameters = function () { return []; }; +/** + * @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 animation APIs of the animation browser package. + */ +/** + * @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. + */ +/** + * Generated bundle index. Do not edit. + */ + +//# sourceMappingURL=animations.es5.js.map + + +/***/ }), +/* 594 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimationDriver; }); +/* unused harmony export ɵAnimation */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return AnimationStyleNormalizer; }); +/* unused harmony export ɵNoopAnimationStyleNormalizer */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return WebAnimationsStyleNormalizer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return NoopAnimationDriver; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AnimationEngine; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return WebAnimationsDriver; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return supportsWebAnimations; }); +/* unused harmony export ɵWebAnimationsPlayer */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(29); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_animations__ = __webpack_require__(33); + +/** + * @license Angular v4.2.6 + * (c) 2010-2017 Google, Inc. https://angular.io/ + * License: MIT + */ + +/** + * @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 optimizeGroupPlayer(players) { + switch (players.length) { + case 0: + return new __WEBPACK_IMPORTED_MODULE_1__angular_animations__["NoopAnimationPlayer"](); + case 1: + return players[0]; + default: + return new __WEBPACK_IMPORTED_MODULE_1__angular_animations__["ɵAnimationGroupPlayer"](players); + } +} +function normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) { + if (preStyles === void 0) { preStyles = {}; } + if (postStyles === void 0) { postStyles = {}; } + var errors = []; + var normalizedKeyframes = []; + var previousOffset = -1; + var previousKeyframe = null; + keyframes.forEach(function (kf) { + var offset = kf['offset']; + var isSameOffset = offset == previousOffset; + var normalizedKeyframe = (isSameOffset && previousKeyframe) || {}; + Object.keys(kf).forEach(function (prop) { + var normalizedProp = prop; + var normalizedValue = kf[prop]; + if (normalizedValue == __WEBPACK_IMPORTED_MODULE_1__angular_animations__["ɵPRE_STYLE"]) { + normalizedValue = preStyles[prop]; + } + else if (normalizedValue == __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]) { + normalizedValue = postStyles[prop]; + } + else if (prop != 'offset') { + normalizedProp = normalizer.normalizePropertyName(prop, errors); + normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, kf[prop], errors); + } + normalizedKeyframe[normalizedProp] = normalizedValue; + }); + if (!isSameOffset) { + normalizedKeyframes.push(normalizedKeyframe); + } + previousKeyframe = normalizedKeyframe; + previousOffset = offset; + }); + if (errors.length) { + var LINE_START = '\n - '; + throw new Error("Unable to animate due to the following errors:" + LINE_START + errors.join(LINE_START)); + } + return normalizedKeyframes; +} +function listenOnPlayer(player, eventName, event, callback) { + switch (eventName) { + case 'start': + player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player.totalTime)); }); + break; + case 'done': + player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player.totalTime)); }); + break; + case 'destroy': + player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)); }); + break; + } +} +function copyAnimationEvent(e, phaseName, totalTime) { + var event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime); + var data = e['_data']; + if (data != null) { + event['_data'] = data; + } + return event; +} +function makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime) { + if (phaseName === void 0) { phaseName = ''; } + if (totalTime === void 0) { totalTime = 0; } + return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime }; +} +function getOrSetAsInMap(map, key, defaultValue) { + var value; + if (map instanceof Map) { + value = map.get(key); + if (!value) { + map.set(key, value = defaultValue); + } + } + else { + value = map[key]; + if (!value) { + value = map[key] = defaultValue; + } + } + return value; +} +function parseTimelineCommand(command) { + var separatorPos = command.indexOf(':'); + var id = command.substring(1, separatorPos); + var action = command.substr(separatorPos + 1); + return [id, action]; +} +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 + */ +/** + * @experimental + */ +var NoopAnimationDriver = (function () { + function NoopAnimationDriver() { + } + NoopAnimationDriver.prototype.matchesElement = function (element, selector) { + return matchesElement(element, selector); + }; + NoopAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); }; + NoopAnimationDriver.prototype.query = function (element, selector, multi) { + return invokeQuery(element, selector, multi); + }; + NoopAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) { + return defaultValue || ''; + }; + NoopAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) { + if (previousPlayers === void 0) { previousPlayers = []; } + return new __WEBPACK_IMPORTED_MODULE_1__angular_animations__["NoopAnimationPlayer"](); + }; + return NoopAnimationDriver; +}()); +/** + * @experimental + */ +var AnimationDriver = (function () { + function AnimationDriver() { + } + return AnimationDriver; +}()); +AnimationDriver.NOOP = new NoopAnimationDriver(); +/** + * @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 ONE_SECOND = 1000; +var ENTER_CLASSNAME = 'ng-enter'; +var LEAVE_CLASSNAME = 'ng-leave'; +var ENTER_SELECTOR = '.ng-enter'; +var LEAVE_SELECTOR = '.ng-leave'; +var NG_TRIGGER_CLASSNAME = 'ng-trigger'; +var NG_TRIGGER_SELECTOR = '.ng-trigger'; +var NG_ANIMATING_CLASSNAME = 'ng-animating'; +var NG_ANIMATING_SELECTOR = '.ng-animating'; +function resolveTimingValue(value) { + if (typeof value == 'number') + return value; + var matches = value.match(/^(-?[\.\d]+)(m?s)/); + if (!matches || matches.length < 2) + return 0; + return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]); +} +function _convertTimeValueToMS(value, unit) { + switch (unit) { + case 's': + return value * ONE_SECOND; + default: + return value; + } +} +function resolveTiming(timings, errors, allowNegativeValues) { + return timings.hasOwnProperty('duration') ? + timings : + parseTimeExpression(timings, errors, allowNegativeValues); +} +function parseTimeExpression(exp, errors, allowNegativeValues) { + var regex = /^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i; + var duration; + var delay = 0; + var easing = ''; + if (typeof exp === 'string') { + var matches = exp.match(regex); + if (matches === null) { + errors.push("The provided timing value \"" + exp + "\" is invalid."); + return { duration: 0, delay: 0, easing: '' }; + } + duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]); + var delayMatch = matches[3]; + if (delayMatch != null) { + delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]); + } + var easingVal = matches[5]; + if (easingVal) { + easing = easingVal; + } + } + else { + duration = exp; + } + if (!allowNegativeValues) { + var containsErrors = false; + var startIndex = errors.length; + if (duration < 0) { + errors.push("Duration values below 0 are not allowed for this animation step."); + containsErrors = true; + } + if (delay < 0) { + errors.push("Delay values below 0 are not allowed for this animation step."); + containsErrors = true; + } + if (containsErrors) { + errors.splice(startIndex, 0, "The provided timing value \"" + exp + "\" is invalid."); + } + } + return { duration: duration, delay: delay, easing: easing }; +} +function copyObj(obj, destination) { + if (destination === void 0) { destination = {}; } + Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; }); + return destination; +} +function normalizeStyles(styles) { + var normalizedStyles = {}; + if (Array.isArray(styles)) { + styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); }); + } + else { + copyStyles(styles, false, normalizedStyles); + } + return normalizedStyles; +} +function copyStyles(styles, readPrototype, destination) { + if (destination === void 0) { destination = {}; } + if (readPrototype) { + // we make use of a for-in loop so that the + // prototypically inherited properties are + // revealed from the backFill map + for (var prop in styles) { + destination[prop] = styles[prop]; + } + } + else { + copyObj(styles, destination); + } + return destination; +} +function setStyles(element, styles) { + if (element['style']) { + Object.keys(styles).forEach(function (prop) { + var camelProp = dashCaseToCamelCase(prop); + element.style[camelProp] = styles[prop]; + }); + } +} +function eraseStyles(element, styles) { + if (element['style']) { + Object.keys(styles).forEach(function (prop) { + var camelProp = dashCaseToCamelCase(prop); + element.style[camelProp] = ''; + }); + } +} +function normalizeAnimationEntry(steps) { + if (Array.isArray(steps)) { + if (steps.length == 1) + return steps[0]; + return __WEBPACK_IMPORTED_MODULE_1__angular_animations__["sequence"](steps); + } + return steps; +} +function validateStyleParams(value, options, errors) { + var params = options.params || {}; + if (typeof value !== 'string') + return; + var matches = value.toString().match(PARAM_REGEX); + if (matches) { + matches.forEach(function (varName) { + if (!params.hasOwnProperty(varName)) { + errors.push("Unable to resolve the local animation param " + varName + " in the given list of values"); + } + }); + } +} +var PARAM_REGEX = /\{\{\s*(.+?)\s*\}\}/g; +function interpolateParams(value, params, errors) { + var original = value.toString(); + var str = original.replace(PARAM_REGEX, function (_, varName) { + var localVal = params[varName]; + // this means that the value was never overidden by the data passed in by the user + if (!params.hasOwnProperty(varName)) { + errors.push("Please provide a value for the animation param " + varName); + localVal = ''; + } + return localVal.toString(); + }); + // we do this to assert that numeric values stay as they are + return str == original ? value : str; +} +function iteratorToArray(iterator) { + var arr = []; + var item = iterator.next(); + while (!item.done) { + arr.push(item.value); + item = iterator.next(); + } + return arr; +} +function mergeAnimationOptions(source, destination) { + if (source.params) { + var p0_1 = source.params; + if (!destination.params) { + destination.params = {}; + } + var p1_1 = destination.params; + Object.keys(p0_1).forEach(function (param) { + if (!p1_1.hasOwnProperty(param)) { + p1_1[param] = p0_1[param]; + } + }); + } + return destination; +} +var DASH_CASE_REGEXP = /-+([a-z0-9])/g; +function dashCaseToCamelCase(input) { + return input.replace(DASH_CASE_REGEXP, function () { + var m = []; + for (var _i = 0; _i < arguments.length; _i++) { + m[_i] = arguments[_i]; + } + return m[1].toUpperCase(); + }); +} +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 + */ +var EMPTY_ANIMATION_OPTIONS = {}; +/** + * @abstract + */ +var Ast = (function () { + function Ast() { + this.options = EMPTY_ANIMATION_OPTIONS; + } + /** + * @abstract + * @param {?} ast + * @param {?} context + * @return {?} + */ + Ast.prototype.visit = function (ast, context) { }; + Object.defineProperty(Ast.prototype, "params", { + /** + * @return {?} + */ + get: function () { return this.options['params'] || null; }, + enumerable: true, + configurable: true + }); + return Ast; +}()); +var TriggerAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](TriggerAst, _super); + /** + * @param {?} name + * @param {?} states + * @param {?} transitions + */ + function TriggerAst(name, states, transitions) { + var _this = _super.call(this) || this; + _this.name = name; + _this.states = states; + _this.transitions = transitions; + _this.queryCount = 0; + _this.depCount = 0; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + TriggerAst.prototype.visit = function (visitor, context) { return visitor.visitTrigger(this, context); }; + return TriggerAst; +}(Ast)); +var StateAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](StateAst, _super); + /** + * @param {?} name + * @param {?} style + */ + function StateAst(name, style$$1) { + var _this = _super.call(this) || this; + _this.name = name; + _this.style = style$$1; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + StateAst.prototype.visit = function (visitor, context) { return visitor.visitState(this, context); }; + return StateAst; +}(Ast)); +var TransitionAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](TransitionAst, _super); + /** + * @param {?} matchers + * @param {?} animation + */ + function TransitionAst(matchers, animation) { + var _this = _super.call(this) || this; + _this.matchers = matchers; + _this.animation = animation; + _this.queryCount = 0; + _this.depCount = 0; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + TransitionAst.prototype.visit = function (visitor, context) { return visitor.visitTransition(this, context); }; + return TransitionAst; +}(Ast)); +var SequenceAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](SequenceAst, _super); + /** + * @param {?} steps + */ + function SequenceAst(steps) { + var _this = _super.call(this) || this; + _this.steps = steps; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + SequenceAst.prototype.visit = function (visitor, context) { return visitor.visitSequence(this, context); }; + return SequenceAst; +}(Ast)); +var GroupAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](GroupAst, _super); + /** + * @param {?} steps + */ + function GroupAst(steps) { + var _this = _super.call(this) || this; + _this.steps = steps; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + GroupAst.prototype.visit = function (visitor, context) { return visitor.visitGroup(this, context); }; + return GroupAst; +}(Ast)); +var AnimateAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](AnimateAst, _super); + /** + * @param {?} timings + * @param {?} style + */ + function AnimateAst(timings, style$$1) { + var _this = _super.call(this) || this; + _this.timings = timings; + _this.style = style$$1; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + AnimateAst.prototype.visit = function (visitor, context) { return visitor.visitAnimate(this, context); }; + return AnimateAst; +}(Ast)); +var StyleAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](StyleAst, _super); + /** + * @param {?} styles + * @param {?} easing + * @param {?} offset + */ + function StyleAst(styles, easing, offset) { + var _this = _super.call(this) || this; + _this.styles = styles; + _this.easing = easing; + _this.offset = offset; + _this.isEmptyStep = false; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + StyleAst.prototype.visit = function (visitor, context) { return visitor.visitStyle(this, context); }; + return StyleAst; +}(Ast)); +var KeyframesAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](KeyframesAst, _super); + /** + * @param {?} styles + */ + function KeyframesAst(styles) { + var _this = _super.call(this) || this; + _this.styles = styles; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + KeyframesAst.prototype.visit = function (visitor, context) { return visitor.visitKeyframes(this, context); }; + return KeyframesAst; +}(Ast)); +var ReferenceAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](ReferenceAst, _super); + /** + * @param {?} animation + */ + function ReferenceAst(animation) { + var _this = _super.call(this) || this; + _this.animation = animation; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + ReferenceAst.prototype.visit = function (visitor, context) { return visitor.visitReference(this, context); }; + return ReferenceAst; +}(Ast)); +var AnimateChildAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](AnimateChildAst, _super); + function AnimateChildAst() { + return _super.call(this) || this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + AnimateChildAst.prototype.visit = function (visitor, context) { return visitor.visitAnimateChild(this, context); }; + return AnimateChildAst; +}(Ast)); +var AnimateRefAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](AnimateRefAst, _super); + /** + * @param {?} animation + */ + function AnimateRefAst(animation) { + var _this = _super.call(this) || this; + _this.animation = animation; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + AnimateRefAst.prototype.visit = function (visitor, context) { return visitor.visitAnimateRef(this, context); }; + return AnimateRefAst; +}(Ast)); +var QueryAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](QueryAst, _super); + /** + * @param {?} selector + * @param {?} limit + * @param {?} optional + * @param {?} includeSelf + * @param {?} animation + */ + function QueryAst(selector, limit, optional, includeSelf, animation) { + var _this = _super.call(this) || this; + _this.selector = selector; + _this.limit = limit; + _this.optional = optional; + _this.includeSelf = includeSelf; + _this.animation = animation; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + QueryAst.prototype.visit = function (visitor, context) { return visitor.visitQuery(this, context); }; + return QueryAst; +}(Ast)); +var StaggerAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](StaggerAst, _super); + /** + * @param {?} timings + * @param {?} animation + */ + function StaggerAst(timings, animation) { + var _this = _super.call(this) || this; + _this.timings = timings; + _this.animation = animation; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + StaggerAst.prototype.visit = function (visitor, context) { return visitor.visitStagger(this, context); }; + return StaggerAst; +}(Ast)); +var TimingAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](TimingAst, _super); + /** + * @param {?} duration + * @param {?=} delay + * @param {?=} easing + */ + function TimingAst(duration, delay, easing) { + if (delay === void 0) { delay = 0; } + if (easing === void 0) { easing = null; } + var _this = _super.call(this) || this; + _this.duration = duration; + _this.delay = delay; + _this.easing = easing; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + TimingAst.prototype.visit = function (visitor, context) { return visitor.visitTiming(this, context); }; + return TimingAst; +}(Ast)); +var DynamicTimingAst = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](DynamicTimingAst, _super); + /** + * @param {?} value + */ + function DynamicTimingAst(value) { + var _this = _super.call(this, 0, 0, '') || this; + _this.value = value; + return _this; + } + /** + * @param {?} visitor + * @param {?} context + * @return {?} + */ + DynamicTimingAst.prototype.visit = function (visitor, context) { return visitor.visitTiming(this, context); }; + return DynamicTimingAst; +}(TimingAst)); +/** + * @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 + */ +/** + * @param {?} visitor + * @param {?} node + * @param {?} context + * @return {?} + */ +function visitAnimationNode(visitor, node, context) { + switch (node.type) { + case 7 /* Trigger */: + return visitor.visitTrigger(/** @type {?} */ (node), context); + case 0 /* State */: + return visitor.visitState(/** @type {?} */ (node), context); + case 1 /* Transition */: + return visitor.visitTransition(/** @type {?} */ (node), context); + case 2 /* Sequence */: + return visitor.visitSequence(/** @type {?} */ (node), context); + case 3 /* Group */: + return visitor.visitGroup(/** @type {?} */ (node), context); + case 4 /* Animate */: + return visitor.visitAnimate(/** @type {?} */ (node), context); + case 5 /* Keyframes */: + return visitor.visitKeyframes(/** @type {?} */ (node), context); + case 6 /* Style */: + return visitor.visitStyle(/** @type {?} */ (node), context); + case 8 /* Reference */: + return visitor.visitReference(/** @type {?} */ (node), context); + case 9 /* AnimateChild */: + return visitor.visitAnimateChild(/** @type {?} */ (node), context); + case 10 /* AnimateRef */: + return visitor.visitAnimateRef(/** @type {?} */ (node), context); + case 11 /* Query */: + return visitor.visitQuery(/** @type {?} */ (node), context); + case 12 /* Stagger */: + return visitor.visitStagger(/** @type {?} */ (node), context); + default: + throw new Error("Unable to resolve animation metadata node #" + node.type); + } +} +/** + * @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 ANY_STATE = '*'; +/** + * @param {?} transitionValue + * @param {?} errors + * @return {?} + */ +function parseTransitionExpr(transitionValue, errors) { + var /** @type {?} */ expressions = []; + if (typeof transitionValue == 'string') { + ((transitionValue)) + .split(/\s*,\s*/) + .forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); }); + } + else { + expressions.push(/** @type {?} */ (transitionValue)); + } + return expressions; +} +/** + * @param {?} eventStr + * @param {?} expressions + * @param {?} errors + * @return {?} + */ +function parseInnerTransitionStr(eventStr, expressions, errors) { + if (eventStr[0] == ':') { + eventStr = parseAnimationAlias(eventStr, errors); + } + var /** @type {?} */ match = eventStr.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/); + if (match == null || match.length < 4) { + errors.push("The provided transition expression \"" + eventStr + "\" is not supported"); + return expressions; + } + var /** @type {?} */ fromState = match[1]; + var /** @type {?} */ separator = match[2]; + var /** @type {?} */ toState = match[3]; + expressions.push(makeLambdaFromStates(fromState, toState)); + var /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE; + if (separator[0] == '<' && !isFullAnyStateExpr) { + expressions.push(makeLambdaFromStates(toState, fromState)); + } +} +/** + * @param {?} alias + * @param {?} errors + * @return {?} + */ +function parseAnimationAlias(alias, errors) { + switch (alias) { + case ':enter': + return 'void => *'; + case ':leave': + return '* => void'; + default: + errors.push("The transition alias value \"" + alias + "\" is not supported"); + return '* => *'; + } +} +/** + * @param {?} lhs + * @param {?} rhs + * @return {?} + */ +function makeLambdaFromStates(lhs, rhs) { + return function (fromState, toState) { + var /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState; + var /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState; + if (!lhsMatch && typeof fromState === 'boolean') { + lhsMatch = fromState ? lhs === 'true' : lhs === 'false'; + } + if (!rhsMatch && typeof toState === 'boolean') { + rhsMatch = toState ? rhs === 'true' : rhs === 'false'; + } + return lhsMatch && rhsMatch; + }; +} +/** + * @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 SELF_TOKEN = ':self'; +var SELF_TOKEN_REGEX = new RegExp("s*" + SELF_TOKEN + "s*,?", 'g'); +/** + * @param {?} metadata + * @param {?} errors + * @return {?} + */ +function buildAnimationAst(metadata, errors) { + return new AnimationAstBuilderVisitor().build(metadata, errors); +} +var LEAVE_TOKEN = ':leave'; +var LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g'); +var ENTER_TOKEN = ':enter'; +var ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g'); +var ROOT_SELECTOR = ''; +var AnimationAstBuilderVisitor = (function () { + function AnimationAstBuilderVisitor() { + } + /** + * @param {?} metadata + * @param {?} errors + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.build = function (metadata, errors) { + var /** @type {?} */ context = new AnimationAstBuilderContext(errors); + this._resetContextStyleTimingState(context); + return (visitAnimationNode(this, normalizeAnimationEntry(metadata), context)); + }; + /** + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = function (context) { + context.currentQuerySelector = ROOT_SELECTOR; + context.collectedStyles = {}; + context.collectedStyles[ROOT_SELECTOR] = {}; + context.currentTime = 0; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitTrigger = function (metadata, context) { + var _this = this; + var /** @type {?} */ queryCount = context.queryCount = 0; + var /** @type {?} */ depCount = context.depCount = 0; + var /** @type {?} */ states = []; + var /** @type {?} */ transitions = []; + metadata.definitions.forEach(function (def) { + _this._resetContextStyleTimingState(context); + if (def.type == 0 /* State */) { + var /** @type {?} */ stateDef_1 = (def); + var /** @type {?} */ name = stateDef_1.name; + name.split(/\s*,\s*/).forEach(function (n) { + stateDef_1.name = n; + states.push(_this.visitState(stateDef_1, context)); + }); + stateDef_1.name = name; + } + else if (def.type == 1 /* Transition */) { + var /** @type {?} */ transition = _this.visitTransition(/** @type {?} */ (def), context); + queryCount += transition.queryCount; + depCount += transition.depCount; + transitions.push(transition); + } + else { + context.errors.push('only state() and transition() definitions can sit inside of a trigger()'); + } + }); + var /** @type {?} */ ast = new TriggerAst(metadata.name, states, transitions); + ast.options = normalizeAnimationOptions(metadata.options); + ast.queryCount = queryCount; + ast.depCount = depCount; + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitState = function (metadata, context) { + return new StateAst(metadata.name, this.visitStyle(metadata.styles, context)); + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitTransition = function (metadata, context) { + context.queryCount = 0; + context.depCount = 0; + var /** @type {?} */ entry = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context); + var /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors); + var /** @type {?} */ ast = new TransitionAst(matchers, entry); + ast.options = normalizeAnimationOptions(metadata.options); + ast.queryCount = context.queryCount; + ast.depCount = context.depCount; + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitSequence = function (metadata, context) { + var _this = this; + var /** @type {?} */ ast = new SequenceAst(metadata.steps.map(function (s) { return visitAnimationNode(_this, s, context); })); + ast.options = normalizeAnimationOptions(metadata.options); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitGroup = function (metadata, context) { + var _this = this; + var /** @type {?} */ currentTime = context.currentTime; + var /** @type {?} */ furthestTime = 0; + var /** @type {?} */ steps = metadata.steps.map(function (step) { + context.currentTime = currentTime; + var /** @type {?} */ innerAst = visitAnimationNode(_this, step, context); + furthestTime = Math.max(furthestTime, context.currentTime); + return innerAst; + }); + context.currentTime = furthestTime; + var /** @type {?} */ ast = new GroupAst(steps); + ast.options = normalizeAnimationOptions(metadata.options); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitAnimate = function (metadata, context) { + var /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors); + context.currentAnimateTimings = timingAst; + var /** @type {?} */ styles; + var /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : __WEBPACK_IMPORTED_MODULE_1__angular_animations__["style"]({}); + if (styleMetadata.type == 5 /* Keyframes */) { + styles = this.visitKeyframes(/** @type {?} */ (styleMetadata), context); + } + else { + var /** @type {?} */ styleMetadata_1 = (metadata.styles); + var /** @type {?} */ isEmpty = false; + if (!styleMetadata_1) { + isEmpty = true; + var /** @type {?} */ newStyleData = {}; + if (timingAst.easing) { + newStyleData['easing'] = timingAst.easing; + } + styleMetadata_1 = __WEBPACK_IMPORTED_MODULE_1__angular_animations__["style"](newStyleData); + } + context.currentTime += timingAst.duration + timingAst.delay; + var /** @type {?} */ styleAst = this.visitStyle(styleMetadata_1, context); + styleAst.isEmptyStep = isEmpty; + styles = styleAst; + } + context.currentAnimateTimings = null; + return new AnimateAst(timingAst, styles); + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitStyle = function (metadata, context) { + var /** @type {?} */ ast = this._makeStyleAst(metadata, context); + this._validateStyleAst(ast, context); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype._makeStyleAst = function (metadata, context) { + var /** @type {?} */ styles = []; + if (Array.isArray(metadata.styles)) { + ((metadata.styles)).forEach(function (styleTuple) { + if (typeof styleTuple == 'string') { + if (styleTuple == __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]) { + styles.push(/** @type {?} */ (styleTuple)); + } + else { + context.errors.push("The provided style string value " + styleTuple + " is not allowed."); + } + } + else { + styles.push(/** @type {?} */ (styleTuple)); + } + }); + } + else { + styles.push(metadata.styles); + } + var /** @type {?} */ collectedEasing = null; + styles.forEach(function (styleData) { + if (isObject(styleData)) { + var /** @type {?} */ styleMap = (styleData); + var /** @type {?} */ easing = styleMap['easing']; + if (easing) { + collectedEasing = (easing); + delete styleMap['easing']; + } + } + }); + return new StyleAst(styles, collectedEasing, metadata.offset); + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype._validateStyleAst = function (ast, context) { + var /** @type {?} */ timings = context.currentAnimateTimings; + var /** @type {?} */ endTime = context.currentTime; + var /** @type {?} */ startTime = context.currentTime; + if (timings && startTime > 0) { + startTime -= timings.duration + timings.delay; + } + ast.styles.forEach(function (tuple) { + if (typeof tuple == 'string') + return; + Object.keys(tuple).forEach(function (prop) { + var /** @type {?} */ collectedStyles = context.collectedStyles[((context.currentQuerySelector))]; + var /** @type {?} */ collectedEntry = collectedStyles[prop]; + var /** @type {?} */ updateCollectedStyle = true; + if (collectedEntry) { + if (startTime != endTime && startTime >= collectedEntry.startTime && + endTime <= collectedEntry.endTime) { + context.errors.push("The CSS property \"" + prop + "\" that exists between the times of \"" + collectedEntry.startTime + "ms\" and \"" + collectedEntry.endTime + "ms\" is also being animated in a parallel animation between the times of \"" + startTime + "ms\" and \"" + endTime + "ms\""); + updateCollectedStyle = false; + } + // we always choose the smaller start time value since we + // want to have a record of the entire animation window where + // the style property is being animated in between + startTime = collectedEntry.startTime; + } + if (updateCollectedStyle) { + collectedStyles[prop] = { startTime: startTime, endTime: endTime }; + } + if (context.options) { + validateStyleParams(tuple[prop], context.options, context.errors); + } + }); + }); + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitKeyframes = function (metadata, context) { + var _this = this; + if (!context.currentAnimateTimings) { + context.errors.push("keyframes() must be placed inside of a call to animate()"); + return new KeyframesAst([]); + } + var /** @type {?} */ MAX_KEYFRAME_OFFSET = 1; + var /** @type {?} */ totalKeyframesWithOffsets = 0; + var /** @type {?} */ offsets = []; + var /** @type {?} */ offsetsOutOfOrder = false; + var /** @type {?} */ keyframesOutOfRange = false; + var /** @type {?} */ previousOffset = 0; + var /** @type {?} */ keyframes = metadata.steps.map(function (styles) { + var /** @type {?} */ style$$1 = _this._makeStyleAst(styles, context); + var /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles); + var /** @type {?} */ offset = 0; + if (offsetVal != null) { + totalKeyframesWithOffsets++; + offset = style$$1.offset = offsetVal; + } + keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1; + offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset; + previousOffset = offset; + offsets.push(offset); + return style$$1; + }); + if (keyframesOutOfRange) { + context.errors.push("Please ensure that all keyframe offsets are between 0 and 1"); + } + if (offsetsOutOfOrder) { + context.errors.push("Please ensure that all keyframe offsets are in order"); + } + var /** @type {?} */ length = metadata.steps.length; + var /** @type {?} */ generatedOffset = 0; + if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) { + context.errors.push("Not all style() steps within the declared keyframes() contain offsets"); + } + else if (totalKeyframesWithOffsets == 0) { + generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1); + } + var /** @type {?} */ limit = length - 1; + var /** @type {?} */ currentTime = context.currentTime; + var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings)); + var /** @type {?} */ animateDuration = currentAnimateTimings.duration; + keyframes.forEach(function (kf, i) { + var /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i]; + var /** @type {?} */ durationUpToThisFrame = offset * animateDuration; + context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame; + currentAnimateTimings.duration = durationUpToThisFrame; + _this._validateStyleAst(kf, context); + kf.offset = offset; + }); + return new KeyframesAst(keyframes); + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitReference = function (metadata, context) { + var /** @type {?} */ entry = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context); + var /** @type {?} */ ast = new ReferenceAst(entry); + ast.options = normalizeAnimationOptions(metadata.options); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitAnimateChild = function (metadata, context) { + context.depCount++; + var /** @type {?} */ ast = new AnimateChildAst(); + ast.options = normalizeAnimationOptions(metadata.options); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitAnimateRef = function (metadata, context) { + var /** @type {?} */ animation = this.visitReference(metadata.animation, context); + var /** @type {?} */ ast = new AnimateRefAst(animation); + ast.options = normalizeAnimationOptions(metadata.options); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitQuery = function (metadata, context) { + var /** @type {?} */ parentSelector = ((context.currentQuerySelector)); + var /** @type {?} */ options = ((metadata.options || {})); + context.queryCount++; + context.currentQuery = metadata; + var _a = normalizeSelector(metadata.selector), selector = _a[0], includeSelf = _a[1]; + context.currentQuerySelector = + parentSelector.length ? (parentSelector + ' ' + selector) : selector; + getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {}); + var /** @type {?} */ entry = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context); + context.currentQuery = null; + context.currentQuerySelector = parentSelector; + var /** @type {?} */ ast = new QueryAst(selector, options.limit || 0, !!options.optional, includeSelf, entry); + ast.originalSelector = metadata.selector; + ast.options = normalizeAnimationOptions(metadata.options); + return ast; + }; + /** + * @param {?} metadata + * @param {?} context + * @return {?} + */ + AnimationAstBuilderVisitor.prototype.visitStagger = function (metadata, context) { + if (!context.currentQuery) { + context.errors.push("stagger() can only be used inside of query()"); + } + var /** @type {?} */ timings = metadata.timings === 'full' ? + { duration: 0, delay: 0, easing: 'full' } : + resolveTiming(metadata.timings, context.errors, true); + var /** @type {?} */ animation = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context); + return new StaggerAst(timings, animation); + }; + return AnimationAstBuilderVisitor; +}()); +/** + * @param {?} selector + * @return {?} + */ +function normalizeSelector(selector) { + var /** @type {?} */ hasAmpersand = selector.split(/\s*,\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false; + if (hasAmpersand) { + selector = selector.replace(SELF_TOKEN_REGEX, ''); + } + selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR) + .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR) + .replace(/@\*/g, NG_TRIGGER_SELECTOR) + .replace(/@\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); }) + .replace(/:animating/g, NG_ANIMATING_SELECTOR); + return [selector, hasAmpersand]; +} +/** + * @param {?} obj + * @return {?} + */ +function normalizeParams(obj) { + return obj ? copyObj(obj) : null; +} +var AnimationAstBuilderContext = (function () { + /** + * @param {?} errors + */ + function AnimationAstBuilderContext(errors) { + this.errors = errors; + this.queryCount = 0; + this.depCount = 0; + this.currentTransition = null; + this.currentQuery = null; + this.currentQuerySelector = null; + this.currentAnimateTimings = null; + this.currentTime = 0; + this.collectedStyles = {}; + this.options = null; + } + return AnimationAstBuilderContext; +}()); +/** + * @param {?} styles + * @return {?} + */ +function consumeOffset(styles) { + if (typeof styles == 'string') + return null; + var /** @type {?} */ offset = null; + if (Array.isArray(styles)) { + styles.forEach(function (styleTuple) { + if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) { + var /** @type {?} */ obj = (styleTuple); + offset = parseFloat(/** @type {?} */ (obj['offset'])); + delete obj['offset']; + } + }); + } + else if (isObject(styles) && styles.hasOwnProperty('offset')) { + var /** @type {?} */ obj = (styles); + offset = parseFloat(/** @type {?} */ (obj['offset'])); + delete obj['offset']; + } + return offset; +} +/** + * @param {?} value + * @return {?} + */ +function isObject(value) { + return !Array.isArray(value) && typeof value == 'object'; +} +/** + * @param {?} value + * @param {?} errors + * @return {?} + */ +function constructTimingAst(value, errors) { + var /** @type {?} */ timings = null; + if (value.hasOwnProperty('duration')) { + timings = (value); + } + else if (typeof value == 'number') { + var /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration; + return new TimingAst(/** @type {?} */ (value), 0, ''); + } + var /** @type {?} */ strValue = (value); + var /** @type {?} */ isDynamic = strValue.split(/\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; }); + if (isDynamic) { + return new DynamicTimingAst(strValue); + } + timings = timings || resolveTiming(strValue, errors); + return new TimingAst(timings.duration, timings.delay, timings.easing); +} +/** + * @param {?} options + * @return {?} + */ +function normalizeAnimationOptions(options) { + if (options) { + options = copyObj(options); + if (options['params']) { + options['params'] = ((normalizeParams(options['params']))); + } + } + else { + options = {}; + } + return options; +} +/** + * @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 + */ +/** + * @param {?} element + * @param {?} keyframes + * @param {?} preStyleProps + * @param {?} postStyleProps + * @param {?} duration + * @param {?} delay + * @param {?=} easing + * @param {?=} subTimeline + * @return {?} + */ +function createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) { + if (easing === void 0) { easing = null; } + if (subTimeline === void 0) { subTimeline = false; } + return { + type: 1 /* TimelineAnimation */, + element: element, + keyframes: keyframes, + preStyleProps: preStyleProps, + postStyleProps: postStyleProps, + duration: duration, + delay: delay, + totalTime: duration + delay, easing: easing, subTimeline: subTimeline + }; +} +/** + * @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 ElementInstructionMap = (function () { + function ElementInstructionMap() { + this._map = new Map(); + } + /** + * @param {?} element + * @return {?} + */ + ElementInstructionMap.prototype.consume = function (element) { + var /** @type {?} */ instructions = this._map.get(element); + if (instructions) { + this._map.delete(element); + } + else { + instructions = []; + } + return instructions; + }; + /** + * @param {?} element + * @param {?} instructions + * @return {?} + */ + ElementInstructionMap.prototype.append = function (element, instructions) { + var /** @type {?} */ existingInstructions = this._map.get(element); + if (!existingInstructions) { + this._map.set(element, existingInstructions = []); + } + existingInstructions.push.apply(existingInstructions, instructions); + }; + /** + * @param {?} element + * @return {?} + */ + ElementInstructionMap.prototype.has = function (element) { return this._map.has(element); }; + /** + * @return {?} + */ + ElementInstructionMap.prototype.clear = function () { this._map.clear(); }; + return ElementInstructionMap; +}()); +/** + * @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 ONE_FRAME_IN_MILLISECONDS = 1; +/** + * @param {?} driver + * @param {?} rootElement + * @param {?} ast + * @param {?=} startingStyles + * @param {?=} finalStyles + * @param {?=} options + * @param {?=} subInstructions + * @param {?=} errors + * @return {?} + */ +function buildAnimationTimelines(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) { + if (startingStyles === void 0) { startingStyles = {}; } + if (finalStyles === void 0) { finalStyles = {}; } + if (errors === void 0) { errors = []; } + return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors); +} +var AnimationTimelineBuilderVisitor = (function () { + function AnimationTimelineBuilderVisitor() { + } + /** + * @param {?} driver + * @param {?} rootElement + * @param {?} ast + * @param {?} startingStyles + * @param {?} finalStyles + * @param {?} options + * @param {?=} subInstructions + * @param {?=} errors + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.buildKeyframes = function (driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) { + if (errors === void 0) { errors = []; } + subInstructions = subInstructions || new ElementInstructionMap(); + var /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []); + context.options = options; + context.currentTimeline.setStyles([startingStyles], null, context.errors, options); + ast.visit(this, context); + // this checks to see if an actual animation happened + var /** @type {?} */ timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); }); + if (timelines.length && Object.keys(finalStyles).length) { + var /** @type {?} */ tl = timelines[timelines.length - 1]; + if (!tl.allowOnlyTimelineStyles()) { + tl.setStyles([finalStyles], null, context.errors, options); + } + } + return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) : + [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)]; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitTrigger = function (ast, context) { + // these values are not visited in this AST + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitState = function (ast, context) { + // these values are not visited in this AST + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitTransition = function (ast, context) { + // these values are not visited in this AST + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = function (ast, context) { + var /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element); + if (elementInstructions) { + var /** @type {?} */ innerContext = context.createSubContext(ast.options); + var /** @type {?} */ startTime = context.currentTimeline.currentTime; + var /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options)); + if (startTime != endTime) { + // we do this on the upper context because we created a sub context for + // the sub child animations + context.transformIntoNewTimeline(endTime); + } + } + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = function (ast, context) { + var /** @type {?} */ innerContext = context.createSubContext(ast.options); + innerContext.transformIntoNewTimeline(); + this.visitReference(ast.animation, innerContext); + context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime); + context.previousNode = ast; + }; + /** + * @param {?} instructions + * @param {?} context + * @param {?} options + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = function (instructions, context, options) { + var /** @type {?} */ startTime = context.currentTimeline.currentTime; + var /** @type {?} */ furthestTime = startTime; + // this is a special-case for when a user wants to skip a sub + // animation from being fired entirely. + var /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null; + var /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null; + if (duration !== 0) { + instructions.forEach(function (instruction) { + var /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay); + furthestTime = + Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay); + }); + } + return furthestTime; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitReference = function (ast, context) { + context.updateOptions(ast.options, true); + ast.animation.visit(this, context); + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitSequence = function (ast, context) { + var _this = this; + var /** @type {?} */ subContextCount = context.subContextCount; + var /** @type {?} */ ctx = context; + var /** @type {?} */ options = ast.options; + if (options && (options.params || options.delay)) { + ctx = context.createSubContext(options); + ctx.transformIntoNewTimeline(); + if (options.delay != null) { + if (ctx.previousNode instanceof StyleAst) { + ctx.currentTimeline.snapshotCurrentStyles(); + ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE; + } + var /** @type {?} */ delay = resolveTimingValue(options.delay); + ctx.delayNextStep(delay); + } + } + if (ast.steps.length) { + ast.steps.forEach(function (s) { return s.visit(_this, ctx); }); + // this is here just incase the inner steps only contain or end with a style() call + ctx.currentTimeline.applyStylesToKeyframe(); + // this means that some animation function within the sequence + // ended up creating a sub timeline (which means the current + // timeline cannot overlap with the contents of the sequence) + if (ctx.subContextCount > subContextCount) { + ctx.transformIntoNewTimeline(); + } + } + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitGroup = function (ast, context) { + var _this = this; + var /** @type {?} */ innerTimelines = []; + var /** @type {?} */ furthestTime = context.currentTimeline.currentTime; + var /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0; + ast.steps.forEach(function (s) { + var /** @type {?} */ innerContext = context.createSubContext(ast.options); + if (delay) { + innerContext.delayNextStep(delay); + } + s.visit(_this, innerContext); + furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime); + innerTimelines.push(innerContext.currentTimeline); + }); + // this operation is run after the AST loop because otherwise + // if the parent timeline's collected styles were updated then + // it would pass in invalid data into the new-to-be forked items + innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); }); + context.transformIntoNewTimeline(furthestTime); + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitTiming = function (ast, context) { + if (ast instanceof DynamicTimingAst) { + var /** @type {?} */ strValue = context.params ? + interpolateParams(ast.value, context.params, context.errors) : + ast.value.toString(); + return resolveTiming(strValue, context.errors); + } + else { + return { duration: ast.duration, delay: ast.delay, easing: ast.easing }; + } + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitAnimate = function (ast, context) { + var /** @type {?} */ timings = context.currentAnimateTimings = this.visitTiming(ast.timings, context); + var /** @type {?} */ timeline = context.currentTimeline; + if (timings.delay) { + context.incrementTime(timings.delay); + timeline.snapshotCurrentStyles(); + } + var /** @type {?} */ style$$1 = ast.style; + if (style$$1 instanceof KeyframesAst) { + this.visitKeyframes(style$$1, context); + } + else { + context.incrementTime(timings.duration); + this.visitStyle(/** @type {?} */ (style$$1), context); + timeline.applyStylesToKeyframe(); + } + context.currentAnimateTimings = null; + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitStyle = function (ast, context) { + var /** @type {?} */ timeline = context.currentTimeline; + var /** @type {?} */ timings = ((context.currentAnimateTimings)); + // this is a special case for when a style() call + // directly follows an animate() call (but not inside of an animate() call) + if (!timings && timeline.getCurrentStyleProperties().length) { + timeline.forwardFrame(); + } + var /** @type {?} */ easing = (timings && timings.easing) || ast.easing; + if (ast.isEmptyStep) { + timeline.applyEmptyStep(easing); + } + else { + timeline.setStyles(ast.styles, easing, context.errors, context.options); + } + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitKeyframes = function (ast, context) { + var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings)); + var /** @type {?} */ startTime = (((context.currentTimeline))).duration; + var /** @type {?} */ duration = currentAnimateTimings.duration; + var /** @type {?} */ innerContext = context.createSubContext(); + var /** @type {?} */ innerTimeline = innerContext.currentTimeline; + innerTimeline.easing = currentAnimateTimings.easing; + ast.styles.forEach(function (step) { + var /** @type {?} */ offset = step.offset || 0; + innerTimeline.forwardTime(offset * duration); + innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options); + innerTimeline.applyStylesToKeyframe(); + }); + // this will ensure that the parent timeline gets all the styles from + // the child even if the new timeline below is not used + context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline); + // we do this because the window between this timeline and the sub timeline + // should ensure that the styles within are exactly the same as they were before + context.transformIntoNewTimeline(startTime + duration); + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitQuery = function (ast, context) { + var _this = this; + // in the event that the first step before this is a style step we need + // to ensure the styles are applied before the children are animated + var /** @type {?} */ startTime = context.currentTimeline.currentTime; + var /** @type {?} */ options = ((ast.options || {})); + var /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0; + if (delay && (context.previousNode instanceof StyleAst || + (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) { + context.currentTimeline.snapshotCurrentStyles(); + context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE; + } + var /** @type {?} */ furthestTime = startTime; + var /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors); + context.currentQueryTotal = elms.length; + var /** @type {?} */ sameElementTimeline = null; + elms.forEach(function (element, i) { + context.currentQueryIndex = i; + var /** @type {?} */ innerContext = context.createSubContext(ast.options, element); + if (delay) { + innerContext.delayNextStep(delay); + } + if (element === context.element) { + sameElementTimeline = innerContext.currentTimeline; + } + ast.animation.visit(_this, innerContext); + // this is here just incase the inner steps only contain or end + // with a style() call (which is here to signal that this is a preparatory + // call to style an element before it is animated again) + innerContext.currentTimeline.applyStylesToKeyframe(); + var /** @type {?} */ endTime = innerContext.currentTimeline.currentTime; + furthestTime = Math.max(furthestTime, endTime); + }); + context.currentQueryIndex = 0; + context.currentQueryTotal = 0; + context.transformIntoNewTimeline(furthestTime); + if (sameElementTimeline) { + context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline); + context.currentTimeline.snapshotCurrentStyles(); + } + context.previousNode = ast; + }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + AnimationTimelineBuilderVisitor.prototype.visitStagger = function (ast, context) { + var /** @type {?} */ parentContext = ((context.parentContext)); + var /** @type {?} */ tl = context.currentTimeline; + var /** @type {?} */ timings = ast.timings; + var /** @type {?} */ duration = Math.abs(timings.duration); + var /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1); + var /** @type {?} */ delay = duration * context.currentQueryIndex; + var /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing; + switch (staggerTransformer) { + case 'reverse': + delay = maxTime - delay; + break; + case 'full': + delay = parentContext.currentStaggerTime; + break; + } + var /** @type {?} */ timeline = context.currentTimeline; + if (delay) { + timeline.delayNextStep(delay); + } + var /** @type {?} */ startingTime = timeline.currentTime; + ast.animation.visit(this, context); + context.previousNode = ast; + // time = duration + delay + // the reason why this computation is so complex is because + // the inner timeline may either have a delay value or a stretched + // keyframe depending on if a subtimeline is not used or is used. + parentContext.currentStaggerTime = + (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime); + }; + return AnimationTimelineBuilderVisitor; +}()); +var DEFAULT_NOOP_PREVIOUS_NODE = ({}); +var AnimationTimelineContext = (function () { + /** + * @param {?} _driver + * @param {?} element + * @param {?} subInstructions + * @param {?} errors + * @param {?} timelines + * @param {?=} initialTimeline + */ + function AnimationTimelineContext(_driver, element, subInstructions, errors, timelines, initialTimeline) { + this._driver = _driver; + this.element = element; + this.subInstructions = subInstructions; + this.errors = errors; + this.timelines = timelines; + this.parentContext = null; + this.currentAnimateTimings = null; + this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE; + this.subContextCount = 0; + this.options = {}; + this.currentQueryIndex = 0; + this.currentQueryTotal = 0; + this.currentStaggerTime = 0; + this.currentTimeline = initialTimeline || new TimelineBuilder(element, 0); + timelines.push(this.currentTimeline); + } + Object.defineProperty(AnimationTimelineContext.prototype, "params", { + /** + * @return {?} + */ + get: function () { return this.options.params; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} options + * @param {?=} skipIfExists + * @return {?} + */ + AnimationTimelineContext.prototype.updateOptions = function (options, skipIfExists) { + var _this = this; + if (!options) + return; + var /** @type {?} */ newOptions = (options); + var /** @type {?} */ optionsToUpdate = this.options; + // NOTE: this will get patched up when other animation methods support duration overrides + if (newOptions.duration != null) { + ((optionsToUpdate)).duration = resolveTimingValue(newOptions.duration); + } + if (newOptions.delay != null) { + optionsToUpdate.delay = resolveTimingValue(newOptions.delay); + } + var /** @type {?} */ newParams = newOptions.params; + if (newParams) { + var /** @type {?} */ paramsToUpdate_1 = ((optionsToUpdate.params)); + if (!paramsToUpdate_1) { + paramsToUpdate_1 = this.options.params = {}; + } + Object.keys(newParams).forEach(function (name) { + if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) { + paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors); + } + }); + } + }; + /** + * @return {?} + */ + AnimationTimelineContext.prototype._copyOptions = function () { + var /** @type {?} */ options = {}; + if (this.options) { + var /** @type {?} */ oldParams_1 = this.options.params; + if (oldParams_1) { + var /** @type {?} */ params_1 = options['params'] = {}; + Object.keys(this.options.params).forEach(function (name) { params_1[name] = oldParams_1[name]; }); + } + } + return options; + }; + /** + * @param {?=} options + * @param {?=} element + * @param {?=} newTime + * @return {?} + */ + AnimationTimelineContext.prototype.createSubContext = function (options, element, newTime) { + if (options === void 0) { options = null; } + var /** @type {?} */ target = element || this.element; + var /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0)); + context.previousNode = this.previousNode; + context.currentAnimateTimings = this.currentAnimateTimings; + context.options = this._copyOptions(); + context.updateOptions(options); + context.currentQueryIndex = this.currentQueryIndex; + context.currentQueryTotal = this.currentQueryTotal; + context.parentContext = this; + this.subContextCount++; + return context; + }; + /** + * @param {?=} newTime + * @return {?} + */ + AnimationTimelineContext.prototype.transformIntoNewTimeline = function (newTime) { + this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE; + this.currentTimeline = this.currentTimeline.fork(this.element, newTime); + this.timelines.push(this.currentTimeline); + return this.currentTimeline; + }; + /** + * @param {?} instruction + * @param {?} duration + * @param {?} delay + * @return {?} + */ + AnimationTimelineContext.prototype.appendInstructionToTimeline = function (instruction, duration, delay) { + var /** @type {?} */ updatedTimings = { + duration: duration != null ? duration : instruction.duration, + delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay, + easing: '' + }; + var /** @type {?} */ builder = new SubTimelineBuilder(instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe); + this.timelines.push(builder); + return updatedTimings; + }; + /** + * @param {?} time + * @return {?} + */ + AnimationTimelineContext.prototype.incrementTime = function (time) { + this.currentTimeline.forwardTime(this.currentTimeline.duration + time); + }; + /** + * @param {?} delay + * @return {?} + */ + AnimationTimelineContext.prototype.delayNextStep = function (delay) { + // negative delays are not yet supported + if (delay > 0) { + this.currentTimeline.delayNextStep(delay); + } + }; + /** + * @param {?} selector + * @param {?} originalSelector + * @param {?} limit + * @param {?} includeSelf + * @param {?} optional + * @param {?} errors + * @return {?} + */ + AnimationTimelineContext.prototype.invokeQuery = function (selector, originalSelector, limit, includeSelf, optional, errors) { + var /** @type {?} */ results = []; + if (includeSelf) { + results.push(this.element); + } + if (selector.length > 0) { + var /** @type {?} */ multi = limit != 1; + results.push.apply(results, this._driver.query(this.element, selector, multi)); + } + if (!optional && results.length == 0) { + errors.push("`query(\"" + originalSelector + "\")` returned zero elements. (Use `query(\"" + originalSelector + "\", { optional: true })` if you wish to allow this.)"); + } + return results; + }; + return AnimationTimelineContext; +}()); +var TimelineBuilder = (function () { + /** + * @param {?} element + * @param {?} startTime + * @param {?=} _elementTimelineStylesLookup + */ + function TimelineBuilder(element, startTime, _elementTimelineStylesLookup) { + this.element = element; + this.startTime = startTime; + this._elementTimelineStylesLookup = _elementTimelineStylesLookup; + this.duration = 0; + this._previousKeyframe = {}; + this._currentKeyframe = {}; + this._keyframes = new Map(); + this._styleSummary = {}; + this._pendingStyles = {}; + this._backFill = {}; + this._currentEmptyStepKeyframe = null; + if (!this._elementTimelineStylesLookup) { + this._elementTimelineStylesLookup = new Map(); + } + this._localTimelineStyles = Object.create(this._backFill, {}); + this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element); + if (!this._globalTimelineStyles) { + this._globalTimelineStyles = this._localTimelineStyles; + this._elementTimelineStylesLookup.set(element, this._localTimelineStyles); + } + this._loadKeyframe(); + } + /** + * @return {?} + */ + TimelineBuilder.prototype.containsAnimation = function () { + switch (this._keyframes.size) { + case 0: + return false; + case 1: + return this.getCurrentStyleProperties().length > 0; + default: + return true; + } + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.getCurrentStyleProperties = function () { return Object.keys(this._currentKeyframe); }; + Object.defineProperty(TimelineBuilder.prototype, "currentTime", { + /** + * @return {?} + */ + get: function () { return this.startTime + this.duration; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} delay + * @return {?} + */ + TimelineBuilder.prototype.delayNextStep = function (delay) { + // in the event that a style() step is placed right before a stagger() + // and that style() step is the very first style() value in the animation + // then we need to make a copy of the keyframe [0, copy, 1] so that the delay + // properly applies the style() values to work with the stagger... + var /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length; + if (this.duration || hasPreStyleStep) { + this.forwardTime(this.currentTime + delay); + if (hasPreStyleStep) { + this.snapshotCurrentStyles(); + } + } + else { + this.startTime += delay; + } + }; + /** + * @param {?} element + * @param {?=} currentTime + * @return {?} + */ + TimelineBuilder.prototype.fork = function (element, currentTime) { + this.applyStylesToKeyframe(); + return new TimelineBuilder(element, currentTime || this.currentTime, this._elementTimelineStylesLookup); + }; + /** + * @return {?} + */ + TimelineBuilder.prototype._loadKeyframe = function () { + if (this._currentKeyframe) { + this._previousKeyframe = this._currentKeyframe; + } + this._currentKeyframe = ((this._keyframes.get(this.duration))); + if (!this._currentKeyframe) { + this._currentKeyframe = Object.create(this._backFill, {}); + this._keyframes.set(this.duration, this._currentKeyframe); + } + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.forwardFrame = function () { + this.duration += ONE_FRAME_IN_MILLISECONDS; + this._loadKeyframe(); + }; + /** + * @param {?} time + * @return {?} + */ + TimelineBuilder.prototype.forwardTime = function (time) { + this.applyStylesToKeyframe(); + this.duration = time; + this._loadKeyframe(); + }; + /** + * @param {?} prop + * @param {?} value + * @return {?} + */ + TimelineBuilder.prototype._updateStyle = function (prop, value) { + this._localTimelineStyles[prop] = value; + this._globalTimelineStyles[prop] = value; + this._styleSummary[prop] = { time: this.currentTime, value: value }; + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.allowOnlyTimelineStyles = function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; }; + /** + * @param {?} easing + * @return {?} + */ + TimelineBuilder.prototype.applyEmptyStep = function (easing) { + var _this = this; + if (easing) { + this._previousKeyframe['easing'] = easing; + } + // special case for animate(duration): + // all missing styles are filled with a `*` value then + // if any destination styles are filled in later on the same + // keyframe then they will override the overridden styles + // We use `_globalTimelineStyles` here because there may be + // styles in previous keyframes that are not present in this timeline + Object.keys(this._globalTimelineStyles).forEach(function (prop) { + _this._backFill[prop] = _this._globalTimelineStyles[prop] || __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]; + _this._currentKeyframe[prop] = __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]; + }); + this._currentEmptyStepKeyframe = this._currentKeyframe; + }; + /** + * @param {?} input + * @param {?} easing + * @param {?} errors + * @param {?=} options + * @return {?} + */ + TimelineBuilder.prototype.setStyles = function (input, easing, errors, options) { + var _this = this; + if (easing) { + this._previousKeyframe['easing'] = easing; + } + var /** @type {?} */ params = (options && options.params) || {}; + var /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles); + Object.keys(styles).forEach(function (prop) { + var /** @type {?} */ val = interpolateParams(styles[prop], params, errors); + _this._pendingStyles[prop] = val; + if (!_this._localTimelineStyles.hasOwnProperty(prop)) { + _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ? + _this._globalTimelineStyles[prop] : + __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]; + } + _this._updateStyle(prop, val); + }); + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.applyStylesToKeyframe = function () { + var _this = this; + var /** @type {?} */ styles = this._pendingStyles; + var /** @type {?} */ props = Object.keys(styles); + if (props.length == 0) + return; + this._pendingStyles = {}; + props.forEach(function (prop) { + var /** @type {?} */ val = styles[prop]; + _this._currentKeyframe[prop] = val; + }); + Object.keys(this._localTimelineStyles).forEach(function (prop) { + if (!_this._currentKeyframe.hasOwnProperty(prop)) { + _this._currentKeyframe[prop] = _this._localTimelineStyles[prop]; + } + }); + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.snapshotCurrentStyles = function () { + var _this = this; + Object.keys(this._localTimelineStyles).forEach(function (prop) { + var /** @type {?} */ val = _this._localTimelineStyles[prop]; + _this._pendingStyles[prop] = val; + _this._updateStyle(prop, val); + }); + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.getFinalKeyframe = function () { return this._keyframes.get(this.duration); }; + Object.defineProperty(TimelineBuilder.prototype, "properties", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ properties = []; + for (var /** @type {?} */ prop in this._currentKeyframe) { + properties.push(prop); + } + return properties; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} timeline + * @return {?} + */ + TimelineBuilder.prototype.mergeTimelineCollectedStyles = function (timeline) { + var _this = this; + Object.keys(timeline._styleSummary).forEach(function (prop) { + var /** @type {?} */ details0 = _this._styleSummary[prop]; + var /** @type {?} */ details1 = timeline._styleSummary[prop]; + if (!details0 || details1.time > details0.time) { + _this._updateStyle(prop, details1.value); + } + }); + }; + /** + * @return {?} + */ + TimelineBuilder.prototype.buildKeyframes = function () { + var _this = this; + this.applyStylesToKeyframe(); + var /** @type {?} */ preStyleProps = new Set(); + var /** @type {?} */ postStyleProps = new Set(); + var /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0; + var /** @type {?} */ finalKeyframes = []; + this._keyframes.forEach(function (keyframe, time) { + var /** @type {?} */ finalKeyframe = copyStyles(keyframe, true); + Object.keys(finalKeyframe).forEach(function (prop) { + var /** @type {?} */ value = finalKeyframe[prop]; + if (value == __WEBPACK_IMPORTED_MODULE_1__angular_animations__["ɵPRE_STYLE"]) { + preStyleProps.add(prop); + } + else if (value == __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]) { + postStyleProps.add(prop); + } + }); + if (!isEmpty) { + finalKeyframe['offset'] = time / _this.duration; + } + finalKeyframes.push(finalKeyframe); + }); + var /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : []; + var /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : []; + // special case for a 0-second animation (which is designed just to place styles onscreen) + if (isEmpty) { + var /** @type {?} */ kf0 = finalKeyframes[0]; + var /** @type {?} */ kf1 = copyObj(kf0); + kf0['offset'] = 0; + kf1['offset'] = 1; + finalKeyframes = [kf0, kf1]; + } + return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false); + }; + return TimelineBuilder; +}()); +var SubTimelineBuilder = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](SubTimelineBuilder, _super); + /** + * @param {?} element + * @param {?} keyframes + * @param {?} preStyleProps + * @param {?} postStyleProps + * @param {?} timings + * @param {?=} _stretchStartingKeyframe + */ + function SubTimelineBuilder(element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) { + if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; } + var _this = _super.call(this, element, timings.delay) || this; + _this.element = element; + _this.keyframes = keyframes; + _this.preStyleProps = preStyleProps; + _this.postStyleProps = postStyleProps; + _this._stretchStartingKeyframe = _stretchStartingKeyframe; + _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing }; + return _this; + } + /** + * @return {?} + */ + SubTimelineBuilder.prototype.containsAnimation = function () { return this.keyframes.length > 1; }; + /** + * @return {?} + */ + SubTimelineBuilder.prototype.buildKeyframes = function () { + var /** @type {?} */ keyframes = this.keyframes; + var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing; + if (this._stretchStartingKeyframe && delay) { + var /** @type {?} */ newKeyframes = []; + var /** @type {?} */ totalTime = duration + delay; + var /** @type {?} */ startingGap = delay / totalTime; + // the original starting keyframe now starts once the delay is done + var /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false); + newFirstKeyframe['offset'] = 0; + newKeyframes.push(newFirstKeyframe); + var /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false); + oldFirstKeyframe['offset'] = roundOffset(startingGap); + newKeyframes.push(oldFirstKeyframe); + /* + When the keyframe is stretched then it means that the delay before the animation + starts is gone. Instead the first keyframe is placed at the start of the animation + and it is then copied to where it starts when the original delay is over. This basically + means nothing animates during that delay, but the styles are still renderered. For this + to work the original offset values that exist in the original keyframes must be "warped" + so that they can take the new keyframe + delay into account. + + delay=1000, duration=1000, keyframes = 0 .5 1 + + turns into + + delay=0, duration=2000, keyframes = 0 .33 .66 1 + */ + // offsets between 1 ... n -1 are all warped by the keyframe stretch + var /** @type {?} */ limit = keyframes.length - 1; + for (var /** @type {?} */ i = 1; i <= limit; i++) { + var /** @type {?} */ kf = copyStyles(keyframes[i], false); + var /** @type {?} */ oldOffset = (kf['offset']); + var /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration; + kf['offset'] = roundOffset(timeAtKeyframe / totalTime); + newKeyframes.push(kf); + } + // the new starting keyframe should be added at the start + duration = totalTime; + delay = 0; + easing = ''; + keyframes = newKeyframes; + } + return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true); + }; + return SubTimelineBuilder; +}(TimelineBuilder)); +/** + * @param {?} offset + * @param {?=} decimalPoints + * @return {?} + */ +function roundOffset(offset, decimalPoints) { + if (decimalPoints === void 0) { decimalPoints = 3; } + var /** @type {?} */ mult = Math.pow(10, decimalPoints - 1); + return Math.round(offset * mult) / mult; +} +/** + * @param {?} input + * @param {?} allStyles + * @return {?} + */ +function flattenStyles(input, allStyles) { + var /** @type {?} */ styles = {}; + var /** @type {?} */ allProperties; + input.forEach(function (token) { + if (token === '*') { + allProperties = allProperties || Object.keys(allStyles); + allProperties.forEach(function (prop) { styles[prop] = __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]; }); + } + else { + copyStyles(/** @type {?} */ (token), false, styles); + } + }); + return styles; +} +/** + * @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 Animation = (function () { + /** + * @param {?} _driver + * @param {?} input + */ + function Animation(_driver, input) { + this._driver = _driver; + var errors = []; + var ast = buildAnimationAst(input, errors); + if (errors.length) { + var errorMessage = "animation validation failed:\n" + errors.join("\n"); + throw new Error(errorMessage); + } + this._animationAst = ast; + } + /** + * @param {?} element + * @param {?} startingStyles + * @param {?} destinationStyles + * @param {?} options + * @param {?=} subInstructions + * @return {?} + */ + Animation.prototype.buildTimelines = function (element, startingStyles, destinationStyles, options, subInstructions) { + var /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : (startingStyles); + var /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : (destinationStyles); + var /** @type {?} */ errors = []; + subInstructions = subInstructions || new ElementInstructionMap(); + var /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors); + if (errors.length) { + var /** @type {?} */ errorMessage = "animation building failed:\n" + errors.join("\n"); + throw new Error(errorMessage); + } + return result; + }; + return Animation; +}()); +/** + * @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. + */ +/** + * @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 AnimationStyleNormalizer = (function () { + function AnimationStyleNormalizer() { + } + return AnimationStyleNormalizer; +}()); +/** + * @experimental Animation support is experimental. + */ +var NoopAnimationStyleNormalizer = (function () { + function NoopAnimationStyleNormalizer() { + } + NoopAnimationStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) { return propertyName; }; + NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) { + return value; + }; + return NoopAnimationStyleNormalizer; +}()); +/** + * @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 WebAnimationsStyleNormalizer = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](WebAnimationsStyleNormalizer, _super); + function WebAnimationsStyleNormalizer() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * @param {?} propertyName + * @param {?} errors + * @return {?} + */ + WebAnimationsStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) { + return dashCaseToCamelCase(propertyName); + }; + /** + * @param {?} userProvidedProperty + * @param {?} normalizedProperty + * @param {?} value + * @param {?} errors + * @return {?} + */ + WebAnimationsStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) { + var /** @type {?} */ unit = ''; + var /** @type {?} */ strVal = value.toString().trim(); + if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') { + if (typeof value === 'number') { + unit = 'px'; + } + else { + var /** @type {?} */ valAndSuffixMatch = value.match(/^[+-]?[\d\.]+([a-z]*)$/); + if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) { + errors.push("Please provide a CSS unit value for " + userProvidedProperty + ":" + value); + } + } + } + return strVal + unit; + }; + return WebAnimationsStyleNormalizer; +}(AnimationStyleNormalizer)); +var DIMENSIONAL_PROP_MAP = makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective' + .split(',')); +/** + * @param {?} keys + * @return {?} + */ +function makeBooleanMap(keys) { + var /** @type {?} */ map = {}; + keys.forEach(function (key) { return map[key] = true; }); + return map; +} +/** + * @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 + */ +/** + * @param {?} element + * @param {?} triggerName + * @param {?} fromState + * @param {?} toState + * @param {?} isRemovalTransition + * @param {?} fromStyles + * @param {?} toStyles + * @param {?} timelines + * @param {?} queriedElements + * @param {?} preStyleProps + * @param {?} postStyleProps + * @param {?=} errors + * @return {?} + */ +function createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, errors) { + return { + type: 0 /* TransitionAnimation */, + element: element, + triggerName: triggerName, + isRemovalTransition: isRemovalTransition, + fromState: fromState, + fromStyles: fromStyles, + toState: toState, + toStyles: toStyles, + timelines: timelines, + queriedElements: queriedElements, + preStyleProps: preStyleProps, + postStyleProps: postStyleProps, + errors: errors + }; +} +/** + * @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 AnimationTransitionFactory = (function () { + /** + * @param {?} _triggerName + * @param {?} ast + * @param {?} _stateStyles + */ + function AnimationTransitionFactory(_triggerName, ast, _stateStyles) { + this._triggerName = _triggerName; + this.ast = ast; + this._stateStyles = _stateStyles; + } + /** + * @param {?} currentState + * @param {?} nextState + * @return {?} + */ + AnimationTransitionFactory.prototype.match = function (currentState, nextState) { + return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState); + }; + /** + * @param {?} driver + * @param {?} element + * @param {?} currentState + * @param {?} nextState + * @param {?=} options + * @param {?=} subInstructions + * @return {?} + */ + AnimationTransitionFactory.prototype.build = function (driver, element, currentState, nextState, options, subInstructions) { + var /** @type {?} */ animationOptions = mergeAnimationOptions(this.ast.options || {}, options || {}); + var /** @type {?} */ backupStateStyles = this._stateStyles['*'] || {}; + var /** @type {?} */ currentStateStyles = this._stateStyles[currentState] || backupStateStyles; + var /** @type {?} */ nextStateStyles = this._stateStyles[nextState] || backupStateStyles; + var /** @type {?} */ queriedElements = new Set(); + var /** @type {?} */ preStyleMap = new Map(); + var /** @type {?} */ postStyleMap = new Map(); + var /** @type {?} */ isRemoval = nextState === 'void'; + var /** @type {?} */ errors = []; + var /** @type {?} */ timelines = buildAnimationTimelines(driver, element, this.ast.animation, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors); + if (errors.length) { + return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, errors); + } + timelines.forEach(function (tl) { + var /** @type {?} */ elm = tl.element; + var /** @type {?} */ preProps = getOrSetAsInMap(preStyleMap, elm, {}); + tl.preStyleProps.forEach(function (prop) { return preProps[prop] = true; }); + var /** @type {?} */ postProps = getOrSetAsInMap(postStyleMap, elm, {}); + tl.postStyleProps.forEach(function (prop) { return postProps[prop] = true; }); + if (elm !== element) { + queriedElements.add(elm); + } + }); + var /** @type {?} */ queriedElementsList = iteratorToArray(queriedElements.values()); + return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap); + }; + return AnimationTransitionFactory; +}()); +/** + * @param {?} matchFns + * @param {?} currentState + * @param {?} nextState + * @return {?} + */ +function oneOrMoreTransitionsMatch(matchFns, currentState, nextState) { + return matchFns.some(function (fn) { return fn(currentState, nextState); }); +} +/** + * @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. + * @param {?} name + * @param {?} ast + * @return {?} + */ +function buildTrigger(name, ast) { + return new AnimationTrigger(name, ast); +} +/** + * \@experimental Animation support is experimental. + */ +var AnimationTrigger = (function () { + /** + * @param {?} name + * @param {?} ast + */ + function AnimationTrigger(name, ast) { + var _this = this; + this.name = name; + this.ast = ast; + this.transitionFactories = []; + this.states = {}; + ast.states.forEach(function (ast) { + var obj = _this.states[ast.name] = {}; + ast.style.styles.forEach(function (styleTuple) { + if (typeof styleTuple == 'object') { + copyStyles(styleTuple, false, obj); + } + }); + }); + balanceProperties(this.states, 'true', '1'); + balanceProperties(this.states, 'false', '0'); + ast.transitions.forEach(function (ast) { + _this.transitionFactories.push(new AnimationTransitionFactory(name, ast, _this.states)); + }); + this.fallbackTransition = createFallbackTransition(name, this.states); + } + Object.defineProperty(AnimationTrigger.prototype, "containsQueries", { + /** + * @return {?} + */ + get: function () { return this.ast.queryCount > 0; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} currentState + * @param {?} nextState + * @return {?} + */ + AnimationTrigger.prototype.matchTransition = function (currentState, nextState) { + var /** @type {?} */ entry = this.transitionFactories.find(function (f) { return f.match(currentState, nextState); }); + return entry || null; + }; + return AnimationTrigger; +}()); +/** + * @param {?} triggerName + * @param {?} states + * @return {?} + */ +function createFallbackTransition(triggerName, states) { + var /** @type {?} */ matchers = [function (fromState, toState) { return true; }]; + var /** @type {?} */ animation = new SequenceAst([]); + var /** @type {?} */ transition = new TransitionAst(matchers, animation); + return new AnimationTransitionFactory(triggerName, transition, states); +} +/** + * @param {?} obj + * @param {?} key1 + * @param {?} key2 + * @return {?} + */ +function balanceProperties(obj, key1, key2) { + if (obj.hasOwnProperty(key1)) { + if (!obj.hasOwnProperty(key2)) { + obj[key2] = obj[key1]; + } + } + else if (obj.hasOwnProperty(key2)) { + obj[key1] = obj[key2]; + } +} +/** + * @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 EMPTY_INSTRUCTION_MAP = new ElementInstructionMap(); +var TimelineAnimationEngine = (function () { + /** + * @param {?} _driver + * @param {?} _normalizer + */ + function TimelineAnimationEngine(_driver, _normalizer) { + this._driver = _driver; + this._normalizer = _normalizer; + this._animations = {}; + this._playersById = {}; + this.players = []; + } + /** + * @param {?} id + * @param {?} metadata + * @return {?} + */ + TimelineAnimationEngine.prototype.register = function (id, metadata) { + var /** @type {?} */ errors = []; + var /** @type {?} */ ast = buildAnimationAst(metadata, errors); + if (errors.length) { + throw new Error("Unable to build the animation due to the following errors: " + errors.join("\n")); + } + else { + this._animations[id] = ast; + } + }; + /** + * @param {?} i + * @param {?} preStyles + * @param {?=} postStyles + * @return {?} + */ + TimelineAnimationEngine.prototype._buildPlayer = function (i, preStyles, postStyles) { + var /** @type {?} */ element = i.element; + var /** @type {?} */ keyframes = normalizeKeyframes(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles); + return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, []); + }; + /** + * @param {?} id + * @param {?} element + * @param {?=} options + * @return {?} + */ + TimelineAnimationEngine.prototype.create = function (id, element, options) { + var _this = this; + if (options === void 0) { options = {}; } + var /** @type {?} */ errors = []; + var /** @type {?} */ ast = this._animations[id]; + var /** @type {?} */ instructions; + var /** @type {?} */ autoStylesMap = new Map(); + if (ast) { + instructions = buildAnimationTimelines(this._driver, element, ast, {}, {}, options, EMPTY_INSTRUCTION_MAP, errors); + instructions.forEach(function (inst) { + var /** @type {?} */ styles = getOrSetAsInMap(autoStylesMap, inst.element, {}); + inst.postStyleProps.forEach(function (prop) { return styles[prop] = null; }); + }); + } + else { + errors.push('The requested animation doesn\'t exist or has already been destroyed'); + instructions = []; + } + if (errors.length) { + throw new Error("Unable to create the animation due to the following errors: " + errors.join("\n")); + } + autoStylesMap.forEach(function (styles, element) { + Object.keys(styles).forEach(function (prop) { styles[prop] = _this._driver.computeStyle(element, prop, __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]); }); + }); + var /** @type {?} */ players = instructions.map(function (i) { + var /** @type {?} */ styles = autoStylesMap.get(i.element); + return _this._buildPlayer(i, {}, styles); + }); + var /** @type {?} */ player = optimizeGroupPlayer(players); + this._playersById[id] = player; + player.onDestroy(function () { return _this.destroy(id); }); + this.players.push(player); + return player; + }; + /** + * @param {?} id + * @return {?} + */ + TimelineAnimationEngine.prototype.destroy = function (id) { + var /** @type {?} */ player = this._getPlayer(id); + player.destroy(); + delete this._playersById[id]; + var /** @type {?} */ index = this.players.indexOf(player); + if (index >= 0) { + this.players.splice(index, 1); + } + }; + /** + * @param {?} id + * @return {?} + */ + TimelineAnimationEngine.prototype._getPlayer = function (id) { + var /** @type {?} */ player = this._playersById[id]; + if (!player) { + throw new Error("Unable to find the timeline player referenced by " + id); + } + return player; + }; + /** + * @param {?} id + * @param {?} element + * @param {?} eventName + * @param {?} callback + * @return {?} + */ + TimelineAnimationEngine.prototype.listen = function (id, element, eventName, callback) { + // triggerName, fromState, toState are all ignored for timeline animations + var /** @type {?} */ baseEvent = makeAnimationEvent(element, '', '', ''); + listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback); + return function () { }; + }; + /** + * @param {?} id + * @param {?} element + * @param {?} command + * @param {?} args + * @return {?} + */ + TimelineAnimationEngine.prototype.command = function (id, element, command, args) { + if (command == 'register') { + this.register(id, /** @type {?} */ (args[0])); + return; + } + if (command == 'create') { + var /** @type {?} */ options = ((args[0] || {})); + this.create(id, element, options); + return; + } + var /** @type {?} */ player = this._getPlayer(id); + switch (command) { + case 'play': + player.play(); + break; + case 'pause': + player.pause(); + break; + case 'reset': + player.reset(); + break; + case 'restart': + player.restart(); + break; + case 'finish': + player.finish(); + break; + case 'init': + player.init(); + break; + case 'setPosition': + player.setPosition(parseFloat(/** @type {?} */ (args[0]))); + break; + case 'destroy': + this.destroy(id); + break; + } + }; + return TimelineAnimationEngine; +}()); +/** + * @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 QUEUED_CLASSNAME = 'ng-animate-queued'; +var EMPTY_PLAYER_ARRAY = []; +var NULL_REMOVAL_STATE = { + namespaceId: '', + setForRemoval: null, + hasAnimation: false, + removedBeforeQueried: false +}; +var NULL_REMOVED_QUERIED_STATE = { + namespaceId: '', + setForRemoval: null, + hasAnimation: false, + removedBeforeQueried: true +}; +var REMOVAL_FLAG = '__ng_removed'; +var StateValue = (function () { + /** + * @param {?} input + */ + function StateValue(input) { + var isObj = input && input.hasOwnProperty('value'); + var value = isObj ? input['value'] : input; + this.value = normalizeTriggerValue(value); + if (isObj) { + var options = copyObj(input); + delete options['value']; + this.options = options; + } + else { + this.options = {}; + } + if (!this.options.params) { + this.options.params = {}; + } + } + /** + * @param {?} options + * @return {?} + */ + StateValue.prototype.absorbOptions = function (options) { + var /** @type {?} */ newParams = options.params; + if (newParams) { + var /** @type {?} */ oldParams_2 = ((this.options.params)); + Object.keys(newParams).forEach(function (prop) { + if (oldParams_2[prop] == null) { + oldParams_2[prop] = newParams[prop]; + } + }); + } + }; + return StateValue; +}()); +var VOID_VALUE = 'void'; +var DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE); +var DELETED_STATE_VALUE = new StateValue('DELETED'); +var AnimationTransitionNamespace = (function () { + /** + * @param {?} id + * @param {?} hostElement + * @param {?} _engine + */ + function AnimationTransitionNamespace(id, hostElement, _engine) { + this.id = id; + this.hostElement = hostElement; + this._engine = _engine; + this.players = []; + this._triggers = {}; + this._queue = []; + this._elementListeners = new Map(); + this._hostClassName = 'ng-tns-' + id; + addClass(hostElement, this._hostClassName); + } + /** + * @param {?} element + * @param {?} name + * @param {?} phase + * @param {?} callback + * @return {?} + */ + AnimationTransitionNamespace.prototype.listen = function (element, name, phase, callback) { + var _this = this; + if (!this._triggers.hasOwnProperty(name)) { + throw new Error("Unable to listen on the animation trigger event \"" + phase + "\" because the animation trigger \"" + name + "\" doesn't exist!"); + } + if (phase == null || phase.length == 0) { + throw new Error("Unable to listen on the animation trigger \"" + name + "\" because the provided event is undefined!"); + } + if (!isTriggerEventValid(phase)) { + throw new Error("The provided animation trigger event \"" + phase + "\" for the animation trigger \"" + name + "\" is not supported!"); + } + var /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []); + var /** @type {?} */ data = { name: name, phase: phase, callback: callback }; + listeners.push(data); + var /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {}); + if (!triggersWithStates.hasOwnProperty(name)) { + addClass(element, NG_TRIGGER_CLASSNAME); + addClass(element, NG_TRIGGER_CLASSNAME + '-' + name); + triggersWithStates[name] = null; + } + return function () { + // the event listener is removed AFTER the flush has occurred such + // that leave animations callbacks can fire (otherwise if the node + // is removed in between then the listeners would be deregistered) + _this._engine.afterFlush(function () { + var /** @type {?} */ index = listeners.indexOf(data); + if (index >= 0) { + listeners.splice(index, 1); + } + if (!_this._triggers[name]) { + delete triggersWithStates[name]; + } + }); + }; + }; + /** + * @param {?} name + * @param {?} ast + * @return {?} + */ + AnimationTransitionNamespace.prototype.register = function (name, ast) { + if (this._triggers[name]) { + // throw + return false; + } + else { + this._triggers[name] = ast; + return true; + } + }; + /** + * @param {?} name + * @return {?} + */ + AnimationTransitionNamespace.prototype._getTrigger = function (name) { + var /** @type {?} */ trigger = this._triggers[name]; + if (!trigger) { + throw new Error("The provided animation trigger \"" + name + "\" has not been registered!"); + } + return trigger; + }; + /** + * @param {?} element + * @param {?} triggerName + * @param {?} value + * @param {?=} defaultToFallback + * @return {?} + */ + AnimationTransitionNamespace.prototype.trigger = function (element, triggerName, value, defaultToFallback) { + var _this = this; + if (defaultToFallback === void 0) { defaultToFallback = true; } + var /** @type {?} */ trigger = this._getTrigger(triggerName); + var /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element); + var /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element); + if (!triggersWithStates) { + addClass(element, NG_TRIGGER_CLASSNAME); + addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName); + this._engine.statesByElement.set(element, triggersWithStates = {}); + } + var /** @type {?} */ fromState = triggersWithStates[triggerName]; + var /** @type {?} */ toState = new StateValue(value); + var /** @type {?} */ isObj = value && value.hasOwnProperty('value'); + if (!isObj && fromState) { + toState.absorbOptions(fromState.options); + } + triggersWithStates[triggerName] = toState; + if (!fromState) { + fromState = DEFAULT_STATE_VALUE; + } + else if (fromState === DELETED_STATE_VALUE) { + return player; + } + var /** @type {?} */ isRemoval = toState.value === VOID_VALUE; + // normally this isn't reached by here, however, if an object expression + // is passed in then it may be a new object each time. Comparing the value + // is important since that will stay the same despite there being a new object. + // The removal arc here is special cased because the same element is triggered + // twice in the event that it contains animations on the outer/inner portions + // of the host container + if (!isRemoval && fromState.value === toState.value) + return; + var /** @type {?} */ playersOnElement = getOrSetAsInMap(this._engine.playersByElement, element, []); + playersOnElement.forEach(function (player) { + // only remove the player if it is queued on the EXACT same trigger/namespace + // we only also deal with queued players here because if the animation has + // started then we want to keep the player alive until the flush happens + // (which is where the previousPlayers are passed into the new palyer) + if (player.namespaceId == _this.id && player.triggerName == triggerName && player.queued) { + player.destroy(); + } + }); + var /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value); + var /** @type {?} */ isFallbackTransition = false; + if (!transition) { + if (!defaultToFallback) + return; + transition = trigger.fallbackTransition; + isFallbackTransition = true; + } + this._engine.totalQueuedPlayers++; + this._queue.push({ element: element, triggerName: triggerName, transition: transition, fromState: fromState, toState: toState, player: player, isFallbackTransition: isFallbackTransition }); + if (!isFallbackTransition) { + addClass(element, QUEUED_CLASSNAME); + player.onStart(function () { removeClass(element, QUEUED_CLASSNAME); }); + } + player.onDone(function () { + var /** @type {?} */ index = _this.players.indexOf(player); + if (index >= 0) { + _this.players.splice(index, 1); + } + var /** @type {?} */ players = _this._engine.playersByElement.get(element); + if (players) { + var /** @type {?} */ index_1 = players.indexOf(player); + if (index_1 >= 0) { + players.splice(index_1, 1); + } + } + }); + this.players.push(player); + playersOnElement.push(player); + return player; + }; + /** + * @param {?} name + * @return {?} + */ + AnimationTransitionNamespace.prototype.deregister = function (name) { + var _this = this; + delete this._triggers[name]; + this._engine.statesByElement.forEach(function (stateMap, element) { delete stateMap[name]; }); + this._elementListeners.forEach(function (listeners, element) { + _this._elementListeners.set(element, listeners.filter(function (entry) { return entry.name != name; })); + }); + }; + /** + * @param {?} element + * @return {?} + */ + AnimationTransitionNamespace.prototype.clearElementCache = function (element) { + this._engine.statesByElement.delete(element); + this._elementListeners.delete(element); + var /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element); + if (elementPlayers) { + elementPlayers.forEach(function (player) { return player.destroy(); }); + this._engine.playersByElement.delete(element); + } + }; + /** + * @param {?} rootElement + * @param {?} context + * @param {?=} animate + * @return {?} + */ + AnimationTransitionNamespace.prototype._destroyInnerNodes = function (rootElement, context, animate) { + var _this = this; + if (animate === void 0) { animate = false; } + this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(function (elm) { + if (animate && containsClass(elm, _this._hostClassName)) { + var /** @type {?} */ innerNs = _this._engine.namespacesByHostElement.get(elm); + // special case for a host element with animations on the same element + if (innerNs) { + innerNs.removeNode(elm, context, true); + } + _this.removeNode(elm, context, true); + } + else { + _this.clearElementCache(elm); + } + }); + }; + /** + * @param {?} element + * @param {?} context + * @param {?=} doNotRecurse + * @return {?} + */ + AnimationTransitionNamespace.prototype.removeNode = function (element, context, doNotRecurse) { + var _this = this; + var /** @type {?} */ engine = this._engine; + if (!doNotRecurse && element.childElementCount) { + this._destroyInnerNodes(element, context, true); + } + var /** @type {?} */ triggerStates = engine.statesByElement.get(element); + if (triggerStates) { + var /** @type {?} */ players_1 = []; + Object.keys(triggerStates).forEach(function (triggerName) { + // this check is here in the event that an element is removed + // twice (both on the host level and the component level) + if (_this._triggers[triggerName]) { + var /** @type {?} */ player = _this.trigger(element, triggerName, VOID_VALUE, false); + if (player) { + players_1.push(player); + } + } + }); + if (players_1.length) { + engine.markElementAsRemoved(this.id, element, true, context); + optimizeGroupPlayer(players_1).onDone(function () { return engine.processLeaveNode(element); }); + return; + } + } + // find the player that is animating and make sure that the + // removal is delayed until that player has completed + var /** @type {?} */ containsPotentialParentTransition = false; + if (engine.totalAnimations) { + var /** @type {?} */ currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : []; + // when this `if statement` does not continue forward it means that + // a previous animation query has selected the current element and + // is animating it. In this situation want to continue fowards and + // allow the element to be queued up for animation later. + if (currentPlayers && currentPlayers.length) { + containsPotentialParentTransition = true; + } + else { + var /** @type {?} */ parent = element; + while (parent = parent.parentNode) { + var /** @type {?} */ triggers = engine.statesByElement.get(parent); + if (triggers) { + containsPotentialParentTransition = true; + break; + } + } + } + } + // at this stage we know that the element will either get removed + // during flush or will be picked up by a parent query. Either way + // we need to fire the listeners for this element when it DOES get + // removed (once the query parent animation is done or after flush) + var /** @type {?} */ listeners = this._elementListeners.get(element); + if (listeners) { + var /** @type {?} */ visitedTriggers_1 = new Set(); + listeners.forEach(function (listener) { + var /** @type {?} */ triggerName = listener.name; + if (visitedTriggers_1.has(triggerName)) + return; + visitedTriggers_1.add(triggerName); + var /** @type {?} */ trigger = _this._triggers[triggerName]; + var /** @type {?} */ transition = trigger.fallbackTransition; + var /** @type {?} */ elementStates = ((engine.statesByElement.get(element))); + var /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE; + var /** @type {?} */ toState = new StateValue(VOID_VALUE); + var /** @type {?} */ player = new TransitionAnimationPlayer(_this.id, triggerName, element); + _this._engine.totalQueuedPlayers++; + _this._queue.push({ + element: element, + triggerName: triggerName, + transition: transition, + fromState: fromState, + toState: toState, + player: player, + isFallbackTransition: true + }); + }); + } + // whether or not a parent has an animation we need to delay the deferral of the leave + // operation until we have more information (which we do after flush() has been called) + if (containsPotentialParentTransition) { + engine.markElementAsRemoved(this.id, element, false, context); + } + else { + // we do this after the flush has occurred such + // that the callbacks can be fired + engine.afterFlush(function () { return _this.clearElementCache(element); }); + engine.destroyInnerAnimations(element); + engine._onRemovalComplete(element, context); + } + }; + /** + * @param {?} element + * @param {?} parent + * @return {?} + */ + AnimationTransitionNamespace.prototype.insertNode = function (element, parent) { addClass(element, this._hostClassName); }; + /** + * @param {?} microtaskId + * @return {?} + */ + AnimationTransitionNamespace.prototype.drainQueuedTransitions = function (microtaskId) { + var _this = this; + var /** @type {?} */ instructions = []; + this._queue.forEach(function (entry) { + var /** @type {?} */ player = entry.player; + if (player.destroyed) + return; + var /** @type {?} */ element = entry.element; + var /** @type {?} */ listeners = _this._elementListeners.get(element); + if (listeners) { + listeners.forEach(function (listener) { + if (listener.name == entry.triggerName) { + var /** @type {?} */ baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value); + ((baseEvent))['_data'] = microtaskId; + listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback); + } + }); + } + if (player.markedForDestroy) { + _this._engine.afterFlush(function () { + // now we can destroy the element properly since the event listeners have + // been bound to the player + player.destroy(); + }); + } + else { + instructions.push(entry); + } + }); + this._queue = []; + return instructions.sort(function (a, b) { + // if depCount == 0 them move to front + // otherwise if a contains b then move back + var /** @type {?} */ d0 = a.transition.ast.depCount; + var /** @type {?} */ d1 = b.transition.ast.depCount; + if (d0 == 0 || d1 == 0) { + return d0 - d1; + } + return _this._engine.driver.containsElement(a.element, b.element) ? 1 : -1; + }); + }; + /** + * @param {?} context + * @return {?} + */ + AnimationTransitionNamespace.prototype.destroy = function (context) { + this.players.forEach(function (p) { return p.destroy(); }); + this._destroyInnerNodes(this.hostElement, context); + }; + /** + * @param {?} element + * @return {?} + */ + AnimationTransitionNamespace.prototype.elementContainsData = function (element) { + var /** @type {?} */ containsData = false; + if (this._elementListeners.has(element)) + containsData = true; + containsData = + (this._queue.find(function (entry) { return entry.element === element; }) ? true : false) || containsData; + return containsData; + }; + return AnimationTransitionNamespace; +}()); +var TransitionAnimationEngine = (function () { + /** + * @param {?} driver + * @param {?} _normalizer + */ + function TransitionAnimationEngine(driver, _normalizer) { + this.driver = driver; + this._normalizer = _normalizer; + this.players = []; + this.newHostElements = new Map(); + this.playersByElement = new Map(); + this.playersByQueriedElement = new Map(); + this.statesByElement = new Map(); + this.totalAnimations = 0; + this.totalQueuedPlayers = 0; + this._namespaceLookup = {}; + this._namespaceList = []; + this._flushFns = []; + this._whenQuietFns = []; + this.namespacesByHostElement = new Map(); + this.collectedEnterElements = []; + this.collectedLeaveElements = []; + this.onRemovalComplete = function (element, context) { }; + } + /** + * @param {?} element + * @param {?} context + * @return {?} + */ + TransitionAnimationEngine.prototype._onRemovalComplete = function (element, context) { this.onRemovalComplete(element, context); }; + Object.defineProperty(TransitionAnimationEngine.prototype, "queuedPlayers", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ players = []; + this._namespaceList.forEach(function (ns) { + ns.players.forEach(function (player) { + if (player.queued) { + players.push(player); + } + }); + }); + return players; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} namespaceId + * @param {?} hostElement + * @return {?} + */ + TransitionAnimationEngine.prototype.createNamespace = function (namespaceId, hostElement) { + var /** @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this); + if (hostElement.parentNode) { + this._balanceNamespaceList(ns, hostElement); + } + else { + // defer this later until flush during when the host element has + // been inserted so that we know exactly where to place it in + // the namespace list + this.newHostElements.set(hostElement, ns); + // given that this host element is apart of the animation code, it + // may or may not be inserted by a parent node that is an of an + // animation renderer type. If this happens then we can still have + // access to this item when we query for :enter nodes. If the parent + // is a renderer then the set data-structure will normalize the entry + this.collectEnterElement(hostElement); + } + return this._namespaceLookup[namespaceId] = ns; + }; + /** + * @param {?} ns + * @param {?} hostElement + * @return {?} + */ + TransitionAnimationEngine.prototype._balanceNamespaceList = function (ns, hostElement) { + var /** @type {?} */ limit = this._namespaceList.length - 1; + if (limit >= 0) { + var /** @type {?} */ found = false; + for (var /** @type {?} */ i = limit; i >= 0; i--) { + var /** @type {?} */ nextNamespace = this._namespaceList[i]; + if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) { + this._namespaceList.splice(i + 1, 0, ns); + found = true; + break; + } + } + if (!found) { + this._namespaceList.splice(0, 0, ns); + } + } + else { + this._namespaceList.push(ns); + } + this.namespacesByHostElement.set(hostElement, ns); + return ns; + }; + /** + * @param {?} namespaceId + * @param {?} hostElement + * @return {?} + */ + TransitionAnimationEngine.prototype.register = function (namespaceId, hostElement) { + var /** @type {?} */ ns = this._namespaceLookup[namespaceId]; + if (!ns) { + ns = this.createNamespace(namespaceId, hostElement); + } + return ns; + }; + /** + * @param {?} namespaceId + * @param {?} name + * @param {?} trigger + * @return {?} + */ + TransitionAnimationEngine.prototype.registerTrigger = function (namespaceId, name, trigger) { + var /** @type {?} */ ns = this._namespaceLookup[namespaceId]; + if (ns && ns.register(name, trigger)) { + this.totalAnimations++; + } + }; + /** + * @param {?} namespaceId + * @param {?} context + * @return {?} + */ + TransitionAnimationEngine.prototype.destroy = function (namespaceId, context) { + var _this = this; + if (!namespaceId) + return; + var /** @type {?} */ ns = this._fetchNamespace(namespaceId); + this.afterFlush(function () { + _this.namespacesByHostElement.delete(ns.hostElement); + delete _this._namespaceLookup[namespaceId]; + var /** @type {?} */ index = _this._namespaceList.indexOf(ns); + if (index >= 0) { + _this._namespaceList.splice(index, 1); + } + }); + this.afterFlushAnimationsDone(function () { return ns.destroy(context); }); + }; + /** + * @param {?} id + * @return {?} + */ + TransitionAnimationEngine.prototype._fetchNamespace = function (id) { return this._namespaceLookup[id]; }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} name + * @param {?} value + * @return {?} + */ + TransitionAnimationEngine.prototype.trigger = function (namespaceId, element, name, value) { + if (isElementNode(element)) { + this._fetchNamespace(namespaceId).trigger(element, name, value); + return true; + } + return false; + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} parent + * @param {?} insertBefore + * @return {?} + */ + TransitionAnimationEngine.prototype.insertNode = function (namespaceId, element, parent, insertBefore) { + if (!isElementNode(element)) + return; + // special case for when an element is removed and reinserted (move operation) + // when this occurs we do not want to use the element for deletion later + var /** @type {?} */ details = (element[REMOVAL_FLAG]); + if (details && details.setForRemoval) { + details.setForRemoval = false; + } + // in the event that the namespaceId is blank then the caller + // code does not contain any animation code in it, but it is + // just being called so that the node is marked as being inserted + if (namespaceId) { + this._fetchNamespace(namespaceId).insertNode(element, parent); + } + // only *directives and host elements are inserted before + if (insertBefore) { + this.collectEnterElement(element); + } + }; + /** + * @param {?} element + * @return {?} + */ + TransitionAnimationEngine.prototype.collectEnterElement = function (element) { this.collectedEnterElements.push(element); }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} context + * @param {?=} doNotRecurse + * @return {?} + */ + TransitionAnimationEngine.prototype.removeNode = function (namespaceId, element, context, doNotRecurse) { + if (!isElementNode(element)) { + this._onRemovalComplete(element, context); + return; + } + var /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null; + if (ns) { + ns.removeNode(element, context, doNotRecurse); + } + else { + this.markElementAsRemoved(namespaceId, element, false, context); + } + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?=} hasAnimation + * @param {?=} context + * @return {?} + */ + TransitionAnimationEngine.prototype.markElementAsRemoved = function (namespaceId, element, hasAnimation, context) { + this.collectedLeaveElements.push(element); + element[REMOVAL_FLAG] = { + namespaceId: namespaceId, + setForRemoval: context, hasAnimation: hasAnimation, + removedBeforeQueried: false + }; + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} name + * @param {?} phase + * @param {?} callback + * @return {?} + */ + TransitionAnimationEngine.prototype.listen = function (namespaceId, element, name, phase, callback) { + if (isElementNode(element)) { + return this._fetchNamespace(namespaceId).listen(element, name, phase, callback); + } + return function () { }; + }; + /** + * @param {?} entry + * @param {?} subTimelines + * @return {?} + */ + TransitionAnimationEngine.prototype._buildInstruction = function (entry, subTimelines) { + return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, entry.toState.options, subTimelines); + }; + /** + * @param {?} containerElement + * @return {?} + */ + TransitionAnimationEngine.prototype.destroyInnerAnimations = function (containerElement) { + var _this = this; + var /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true); + elements.forEach(function (element) { + var /** @type {?} */ players = _this.playersByElement.get(element); + if (players) { + players.forEach(function (player) { + // special case for when an element is set for destruction, but hasn't started. + // in this situation we want to delay the destruction until the flush occurs + // so that any event listeners attached to the player are triggered. + if (player.queued) { + player.markedForDestroy = true; + } + else { + player.destroy(); + } + }); + } + var /** @type {?} */ stateMap = _this.statesByElement.get(element); + if (stateMap) { + Object.keys(stateMap).forEach(function (triggerName) { return stateMap[triggerName] = DELETED_STATE_VALUE; }); + } + }); + if (this.playersByQueriedElement.size == 0) + return; + elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true); + if (elements.length) { + elements.forEach(function (element) { + var /** @type {?} */ players = _this.playersByQueriedElement.get(element); + if (players) { + players.forEach(function (player) { return player.finish(); }); + } + }); + } + }; + /** + * @return {?} + */ + TransitionAnimationEngine.prototype.whenRenderingDone = function () { + var _this = this; + return new Promise(function (resolve) { + if (_this.players.length) { + return optimizeGroupPlayer(_this.players).onDone(function () { return resolve(); }); + } + else { + resolve(); + } + }); + }; + /** + * @param {?} element + * @return {?} + */ + TransitionAnimationEngine.prototype.processLeaveNode = function (element) { + var /** @type {?} */ details = (element[REMOVAL_FLAG]); + if (details && details.setForRemoval) { + // this will prevent it from removing it twice + element[REMOVAL_FLAG] = NULL_REMOVAL_STATE; + if (details.namespaceId) { + this.destroyInnerAnimations(element); + var /** @type {?} */ ns = this._fetchNamespace(details.namespaceId); + if (ns) { + ns.clearElementCache(element); + } + } + this._onRemovalComplete(element, details.setForRemoval); + } + }; + /** + * @param {?=} microtaskId + * @return {?} + */ + TransitionAnimationEngine.prototype.flush = function (microtaskId) { + var _this = this; + if (microtaskId === void 0) { microtaskId = -1; } + var /** @type {?} */ players = []; + if (this.newHostElements.size) { + this.newHostElements.forEach(function (ns, element) { return _this._balanceNamespaceList(ns, element); }); + this.newHostElements.clear(); + } + if (this._namespaceList.length && + (this.totalQueuedPlayers || this.collectedLeaveElements.length)) { + var /** @type {?} */ cleanupFns = []; + try { + players = this._flushAnimations(cleanupFns, microtaskId); + } + finally { + for (var /** @type {?} */ i = 0; i < cleanupFns.length; i++) { + cleanupFns[i](); + } + } + } + else { + for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) { + var /** @type {?} */ element = this.collectedLeaveElements[i]; + this.processLeaveNode(element); + } + } + this.totalQueuedPlayers = 0; + this.collectedEnterElements.length = 0; + this.collectedLeaveElements.length = 0; + this._flushFns.forEach(function (fn) { return fn(); }); + this._flushFns = []; + if (this._whenQuietFns.length) { + // we move these over to a variable so that + // if any new callbacks are registered in another + // flush they do not populate the existing set + var /** @type {?} */ quietFns_1 = this._whenQuietFns; + this._whenQuietFns = []; + if (players.length) { + optimizeGroupPlayer(players).onDone(function () { quietFns_1.forEach(function (fn) { return fn(); }); }); + } + else { + quietFns_1.forEach(function (fn) { return fn(); }); + } + } + }; + /** + * @param {?} cleanupFns + * @param {?} microtaskId + * @return {?} + */ + TransitionAnimationEngine.prototype._flushAnimations = function (cleanupFns, microtaskId) { + var _this = this; + var /** @type {?} */ subTimelines = new ElementInstructionMap(); + var /** @type {?} */ skippedPlayers = []; + var /** @type {?} */ skippedPlayersMap = new Map(); + var /** @type {?} */ queuedInstructions = []; + var /** @type {?} */ queriedElements = new Map(); + var /** @type {?} */ allPreStyleElements = new Map(); + var /** @type {?} */ allPostStyleElements = new Map(); + var /** @type {?} */ bodyNode = getBodyNode(); + var /** @type {?} */ allEnterNodes = this.collectedEnterElements.length ? + this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) : + []; + // this must occur before the instructions are built below such that + // the :enter queries match the elements (since the timeline queries + // are fired during instruction building). + for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) { + addClass(allEnterNodes[i], ENTER_CLASSNAME); + } + var /** @type {?} */ allLeaveNodes = []; + var /** @type {?} */ leaveNodesWithoutAnimations = []; + for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) { + var /** @type {?} */ element = this.collectedLeaveElements[i]; + var /** @type {?} */ details = (element[REMOVAL_FLAG]); + if (details && details.setForRemoval) { + addClass(element, LEAVE_CLASSNAME); + allLeaveNodes.push(element); + if (!details.hasAnimation) { + leaveNodesWithoutAnimations.push(element); + } + } + } + cleanupFns.push(function () { + allEnterNodes.forEach(function (element) { return removeClass(element, ENTER_CLASSNAME); }); + allLeaveNodes.forEach(function (element) { + removeClass(element, LEAVE_CLASSNAME); + _this.processLeaveNode(element); + }); + }); + var /** @type {?} */ allPlayers = []; + var /** @type {?} */ erroneousTransitions = []; + for (var /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) { + var /** @type {?} */ ns = this._namespaceList[i]; + ns.drainQueuedTransitions(microtaskId).forEach(function (entry) { + var /** @type {?} */ player = entry.player; + allPlayers.push(player); + var /** @type {?} */ element = entry.element; + if (!bodyNode || !_this.driver.containsElement(bodyNode, element)) { + player.destroy(); + return; + } + var /** @type {?} */ instruction = ((_this._buildInstruction(entry, subTimelines))); + if (instruction.errors && instruction.errors.length) { + erroneousTransitions.push(instruction); + return; + } + // if a unmatched transition is queued to go then it SHOULD NOT render + // an animation and cancel the previously running animations. + if (entry.isFallbackTransition) { + player.onStart(function () { return eraseStyles(element, instruction.fromStyles); }); + player.onDestroy(function () { return setStyles(element, instruction.toStyles); }); + skippedPlayers.push(player); + return; + } + // this means that if a parent animation uses this animation as a sub trigger + // then it will instruct the timeline builder to not add a player delay, but + // instead stretch the first keyframe gap up until the animation starts. The + // reason this is important is to prevent extra initialization styles from being + // required by the user in the animation. + instruction.timelines.forEach(function (tl) { return tl.stretchStartingKeyframe = true; }); + subTimelines.append(element, instruction.timelines); + var /** @type {?} */ tuple = { instruction: instruction, player: player, element: element }; + queuedInstructions.push(tuple); + instruction.queriedElements.forEach(function (element) { return getOrSetAsInMap(queriedElements, element, []).push(player); }); + instruction.preStyleProps.forEach(function (stringMap, element) { + var /** @type {?} */ props = Object.keys(stringMap); + if (props.length) { + var /** @type {?} */ setVal_1 = ((allPreStyleElements.get(element))); + if (!setVal_1) { + allPreStyleElements.set(element, setVal_1 = new Set()); + } + props.forEach(function (prop) { return setVal_1.add(prop); }); + } + }); + instruction.postStyleProps.forEach(function (stringMap, element) { + var /** @type {?} */ props = Object.keys(stringMap); + var /** @type {?} */ setVal = ((allPostStyleElements.get(element))); + if (!setVal) { + allPostStyleElements.set(element, setVal = new Set()); + } + props.forEach(function (prop) { return setVal.add(prop); }); + }); + }); + } + if (erroneousTransitions.length) { + var /** @type {?} */ msg_1 = "Unable to process animations due to the following failed trigger transitions\n"; + erroneousTransitions.forEach(function (instruction) { + msg_1 += "@" + instruction.triggerName + " has failed due to:\n"; /** @type {?} */ + ((instruction.errors)).forEach(function (error) { msg_1 += "- " + error + "\n"; }); + }); + allPlayers.forEach(function (player) { return player.destroy(); }); + throw new Error(msg_1); + } + // these can only be detected here since we have a map of all the elements + // that have animations attached to them... + var /** @type {?} */ enterNodesWithoutAnimations = []; + for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) { + var /** @type {?} */ element = allEnterNodes[i]; + if (!subTimelines.has(element)) { + enterNodesWithoutAnimations.push(element); + } + } + var /** @type {?} */ allPreviousPlayersMap = new Map(); + var /** @type {?} */ sortedParentElements = []; + queuedInstructions.forEach(function (entry) { + var /** @type {?} */ element = entry.element; + if (subTimelines.has(element)) { + sortedParentElements.unshift(element); + _this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap); + } + }); + skippedPlayers.forEach(function (player) { + var /** @type {?} */ element = player.element; + var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null); + previousPlayers.forEach(function (prevPlayer) { getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer); }); + }); + allPreviousPlayersMap.forEach(function (players) { return players.forEach(function (player) { return player.destroy(); }); }); + // PRE STAGE: fill the ! styles + var /** @type {?} */ preStylesMap = allPreStyleElements.size ? + cloakAndComputeStyles(this.driver, enterNodesWithoutAnimations, allPreStyleElements, __WEBPACK_IMPORTED_MODULE_1__angular_animations__["ɵPRE_STYLE"]) : + new Map(); + // POST STAGE: fill the * styles + var /** @type {?} */ postStylesMap = cloakAndComputeStyles(this.driver, leaveNodesWithoutAnimations, allPostStyleElements, __WEBPACK_IMPORTED_MODULE_1__angular_animations__["AUTO_STYLE"]); + var /** @type {?} */ rootPlayers = []; + var /** @type {?} */ subPlayers = []; + queuedInstructions.forEach(function (entry) { + var element = entry.element, player = entry.player, instruction = entry.instruction; + // this means that it was never consumed by a parent animation which + // means that it is independent and therefore should be set for animation + if (subTimelines.has(element)) { + var /** @type {?} */ innerPlayer = _this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap); + player.setRealPlayer(innerPlayer); + var /** @type {?} */ parentHasPriority = null; + for (var /** @type {?} */ i = 0; i < sortedParentElements.length; i++) { + var /** @type {?} */ parent = sortedParentElements[i]; + if (parent === element) + break; + if (_this.driver.containsElement(parent, element)) { + parentHasPriority = parent; + break; + } + } + if (parentHasPriority) { + var /** @type {?} */ parentPlayers = _this.playersByElement.get(parentHasPriority); + if (parentPlayers && parentPlayers.length) { + player.parentPlayer = optimizeGroupPlayer(parentPlayers); + } + skippedPlayers.push(player); + } + else { + rootPlayers.push(player); + } + } + else { + eraseStyles(element, instruction.fromStyles); + player.onDestroy(function () { return setStyles(element, instruction.toStyles); }); + subPlayers.push(player); + } + }); + subPlayers.forEach(function (player) { + var /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element); + if (playersForElement && playersForElement.length) { + var /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement); + player.setRealPlayer(innerPlayer); + } + }); + // the reason why we don't actually play the animation is + // because all that a skipped player is designed to do is to + // fire the start/done transition callback events + skippedPlayers.forEach(function (player) { + if (player.parentPlayer) { + player.parentPlayer.onDestroy(function () { return player.destroy(); }); + } + else { + player.destroy(); + } + }); + // run through all of the queued removals and see if they + // were picked up by a query. If not then perform the removal + // operation right away unless a parent animation is ongoing. + for (var /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) { + var /** @type {?} */ element = allLeaveNodes[i]; + var /** @type {?} */ details = (element[REMOVAL_FLAG]); + removeClass(element, LEAVE_CLASSNAME); + // this means the element has a removal animation that is being + // taken care of and therefore the inner elements will hang around + // until that animation is over (or the parent queried animation) + if (details && details.hasAnimation) + continue; + var /** @type {?} */ players = []; + // if this element is queried or if it contains queried children + // then we want for the element not to be removed from the page + // until the queried animations have finished + if (queriedElements.size) { + var /** @type {?} */ queriedPlayerResults = queriedElements.get(element); + if (queriedPlayerResults && queriedPlayerResults.length) { + players.push.apply(players, queriedPlayerResults); + } + var /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true); + for (var /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) { + var /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]); + if (queriedPlayers && queriedPlayers.length) { + players.push.apply(players, queriedPlayers); + } + } + } + if (players.length) { + removeNodesAfterAnimationDone(this, element, players); + } + else { + this.processLeaveNode(element); + } + } + // this is required so the cleanup method doesn't remove them + allLeaveNodes.length = 0; + rootPlayers.forEach(function (player) { + _this.players.push(player); + player.onDone(function () { + player.destroy(); + var /** @type {?} */ index = _this.players.indexOf(player); + _this.players.splice(index, 1); + }); + player.play(); + }); + return rootPlayers; + }; + /** + * @param {?} namespaceId + * @param {?} element + * @return {?} + */ + TransitionAnimationEngine.prototype.elementContainsData = function (namespaceId, element) { + var /** @type {?} */ containsData = false; + var /** @type {?} */ details = (element[REMOVAL_FLAG]); + if (details && details.setForRemoval) + containsData = true; + if (this.playersByElement.has(element)) + containsData = true; + if (this.playersByQueriedElement.has(element)) + containsData = true; + if (this.statesByElement.has(element)) + containsData = true; + return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData; + }; + /** + * @param {?} callback + * @return {?} + */ + TransitionAnimationEngine.prototype.afterFlush = function (callback) { this._flushFns.push(callback); }; + /** + * @param {?} callback + * @return {?} + */ + TransitionAnimationEngine.prototype.afterFlushAnimationsDone = function (callback) { this._whenQuietFns.push(callback); }; + /** + * @param {?} element + * @param {?} isQueriedElement + * @param {?=} namespaceId + * @param {?=} triggerName + * @param {?=} toStateValue + * @return {?} + */ + TransitionAnimationEngine.prototype._getPreviousPlayers = function (element, isQueriedElement, namespaceId, triggerName, toStateValue) { + var /** @type {?} */ players = []; + if (isQueriedElement) { + var /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element); + if (queriedElementPlayers) { + players = queriedElementPlayers; + } + } + else { + var /** @type {?} */ elementPlayers = this.playersByElement.get(element); + if (elementPlayers) { + var /** @type {?} */ isRemovalAnimation_1 = !toStateValue || toStateValue == VOID_VALUE; + elementPlayers.forEach(function (player) { + if (player.queued) + return; + if (!isRemovalAnimation_1 && player.triggerName != triggerName) + return; + players.push(player); + }); + } + } + if (namespaceId || triggerName) { + players = players.filter(function (player) { + if (namespaceId && namespaceId != player.namespaceId) + return false; + if (triggerName && triggerName != player.triggerName) + return false; + return true; + }); + } + return players; + }; + /** + * @param {?} namespaceId + * @param {?} instruction + * @param {?} allPreviousPlayersMap + * @return {?} + */ + TransitionAnimationEngine.prototype._beforeAnimationBuild = function (namespaceId, instruction, allPreviousPlayersMap) { + var _this = this; + // it's important to do this step before destroying the players + // so that the onDone callback below won't fire before this + eraseStyles(instruction.element, instruction.fromStyles); + var /** @type {?} */ triggerName = instruction.triggerName; + var /** @type {?} */ rootElement = instruction.element; + // when a removal animation occurs, ALL previous players are collected + // and destroyed (even if they are outside of the current namespace) + var /** @type {?} */ targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId; + var /** @type {?} */ targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName; + instruction.timelines.map(function (timelineInstruction) { + var /** @type {?} */ element = timelineInstruction.element; + var /** @type {?} */ isQueriedElement = element !== rootElement; + var /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []); + var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState); + previousPlayers.forEach(function (player) { + var /** @type {?} */ realPlayer = (player.getRealPlayer()); + if (realPlayer.beforeDestroy) { + realPlayer.beforeDestroy(); + } + players.push(player); + }); + }); + }; + /** + * @param {?} namespaceId + * @param {?} instruction + * @param {?} allPreviousPlayersMap + * @param {?} skippedPlayersMap + * @param {?} preStylesMap + * @param {?} postStylesMap + * @return {?} + */ + TransitionAnimationEngine.prototype._buildAnimation = function (namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) { + var _this = this; + var /** @type {?} */ triggerName = instruction.triggerName; + var /** @type {?} */ rootElement = instruction.element; + // we first run this so that the previous animation player + // data can be passed into the successive animation players + var /** @type {?} */ allQueriedPlayers = []; + var /** @type {?} */ allConsumedElements = new Set(); + var /** @type {?} */ allSubElements = new Set(); + var /** @type {?} */ allNewPlayers = instruction.timelines.map(function (timelineInstruction) { + var /** @type {?} */ element = timelineInstruction.element; + allConsumedElements.add(element); + // FIXME (matsko): make sure to-be-removed animations are removed properly + var /** @type {?} */ details = element[REMOVAL_FLAG]; + if (details && details.removedBeforeQueried) + return new __WEBPACK_IMPORTED_MODULE_1__angular_animations__["NoopAnimationPlayer"](); + var /** @type {?} */ isQueriedElement = element !== rootElement; + var /** @type {?} */ previousPlayers = (allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(function (p) { return p.getRealPlayer(); }); + var /** @type {?} */ preStyles = preStylesMap.get(element); + var /** @type {?} */ postStyles = postStylesMap.get(element); + var /** @type {?} */ keyframes = normalizeKeyframes(_this.driver, _this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles); + var /** @type {?} */ player = _this._buildPlayer(timelineInstruction, keyframes, previousPlayers); + // this means that this particular player belongs to a sub trigger. It is + // important that we match this player up with the corresponding (@trigger.listener) + if (timelineInstruction.subTimeline && skippedPlayersMap) { + allSubElements.add(element); + } + if (isQueriedElement) { + var /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element); + wrappedPlayer.setRealPlayer(player); + allQueriedPlayers.push(wrappedPlayer); + } + return player; + }); + allQueriedPlayers.forEach(function (player) { + getOrSetAsInMap(_this.playersByQueriedElement, player.element, []).push(player); + player.onDone(function () { return deleteOrUnsetInMap(_this.playersByQueriedElement, player.element, player); }); + }); + allConsumedElements.forEach(function (element) { return addClass(element, NG_ANIMATING_CLASSNAME); }); + var /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers); + player.onDestroy(function () { + allConsumedElements.forEach(function (element) { return removeClass(element, NG_ANIMATING_CLASSNAME); }); + setStyles(rootElement, instruction.toStyles); + }); + // this basically makes all of the callbacks for sub element animations + // be dependent on the upper players for when they finish + allSubElements.forEach(function (element) { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); }); + return player; + }; + /** + * @param {?} instruction + * @param {?} keyframes + * @param {?} previousPlayers + * @return {?} + */ + TransitionAnimationEngine.prototype._buildPlayer = function (instruction, keyframes, previousPlayers) { + if (keyframes.length > 0) { + return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers); + } + // special case for when an empty transition|definition is provided + // ... there is no point in rendering an empty animation + return new __WEBPACK_IMPORTED_MODULE_1__angular_animations__["NoopAnimationPlayer"](); + }; + return TransitionAnimationEngine; +}()); +var TransitionAnimationPlayer = (function () { + /** + * @param {?} namespaceId + * @param {?} triggerName + * @param {?} element + */ + function TransitionAnimationPlayer(namespaceId, triggerName, element) { + this.namespaceId = namespaceId; + this.triggerName = triggerName; + this.element = element; + this._player = new __WEBPACK_IMPORTED_MODULE_1__angular_animations__["NoopAnimationPlayer"](); + this._containsRealPlayer = false; + this._queuedCallbacks = {}; + this._destroyed = false; + this.markedForDestroy = false; + } + Object.defineProperty(TransitionAnimationPlayer.prototype, "queued", { + /** + * @return {?} + */ + get: function () { return this._containsRealPlayer == false; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TransitionAnimationPlayer.prototype, "destroyed", { + /** + * @return {?} + */ + get: function () { return this._destroyed; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} player + * @return {?} + */ + TransitionAnimationPlayer.prototype.setRealPlayer = function (player) { + var _this = this; + if (this._containsRealPlayer) + return; + this._player = player; + Object.keys(this._queuedCallbacks).forEach(function (phase) { + _this._queuedCallbacks[phase].forEach(function (callback) { return listenOnPlayer(player, phase, undefined, callback); }); + }); + this._queuedCallbacks = {}; + this._containsRealPlayer = true; + }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.getRealPlayer = function () { return this._player; }; + /** + * @param {?} name + * @param {?} callback + * @return {?} + */ + TransitionAnimationPlayer.prototype._queueEvent = function (name, callback) { + getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback); + }; + /** + * @param {?} fn + * @return {?} + */ + TransitionAnimationPlayer.prototype.onDone = function (fn) { + if (this.queued) { + this._queueEvent('done', fn); + } + this._player.onDone(fn); + }; + /** + * @param {?} fn + * @return {?} + */ + TransitionAnimationPlayer.prototype.onStart = function (fn) { + if (this.queued) { + this._queueEvent('start', fn); + } + this._player.onStart(fn); + }; + /** + * @param {?} fn + * @return {?} + */ + TransitionAnimationPlayer.prototype.onDestroy = function (fn) { + if (this.queued) { + this._queueEvent('destroy', fn); + } + this._player.onDestroy(fn); + }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.init = function () { this._player.init(); }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.hasStarted = function () { return this.queued ? false : this._player.hasStarted(); }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.play = function () { !this.queued && this._player.play(); }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.pause = function () { !this.queued && this._player.pause(); }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.restart = function () { !this.queued && this._player.restart(); }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.finish = function () { this._player.finish(); }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.destroy = function () { + this._destroyed = true; + this._player.destroy(); + }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.reset = function () { !this.queued && this._player.reset(); }; + /** + * @param {?} p + * @return {?} + */ + TransitionAnimationPlayer.prototype.setPosition = function (p) { + if (!this.queued) { + this._player.setPosition(p); + } + }; + /** + * @return {?} + */ + TransitionAnimationPlayer.prototype.getPosition = function () { return this.queued ? 0 : this._player.getPosition(); }; + Object.defineProperty(TransitionAnimationPlayer.prototype, "totalTime", { + /** + * @return {?} + */ + get: function () { return this._player.totalTime; }, + enumerable: true, + configurable: true + }); + return TransitionAnimationPlayer; +}()); +/** + * @param {?} map + * @param {?} key + * @param {?} value + * @return {?} + */ +function deleteOrUnsetInMap(map, key, value) { + var /** @type {?} */ currentValues; + if (map instanceof Map) { + currentValues = map.get(key); + if (currentValues) { + if (currentValues.length) { + var /** @type {?} */ index = currentValues.indexOf(value); + currentValues.splice(index, 1); + } + if (currentValues.length == 0) { + map.delete(key); + } + } + } + else { + currentValues = map[key]; + if (currentValues) { + if (currentValues.length) { + var /** @type {?} */ index = currentValues.indexOf(value); + currentValues.splice(index, 1); + } + if (currentValues.length == 0) { + delete map[key]; + } + } + } + return currentValues; +} +/** + * @param {?} value + * @return {?} + */ +function normalizeTriggerValue(value) { + switch (typeof value) { + case 'boolean': + return value ? '1' : '0'; + default: + return value != null ? value.toString() : null; + } +} +/** + * @param {?} node + * @return {?} + */ +function isElementNode(node) { + return node && node['nodeType'] === 1; +} +/** + * @param {?} eventName + * @return {?} + */ +function isTriggerEventValid(eventName) { + return eventName == 'start' || eventName == 'done'; +} +/** + * @param {?} element + * @param {?=} value + * @return {?} + */ +function cloakElement(element, value) { + var /** @type {?} */ oldValue = element.style.display; + element.style.display = value != null ? value : 'none'; + return oldValue; +} +/** + * @param {?} driver + * @param {?} elements + * @param {?} elementPropsMap + * @param {?} defaultStyle + * @return {?} + */ +function cloakAndComputeStyles(driver, elements, elementPropsMap, defaultStyle) { + var /** @type {?} */ cloakVals = elements.map(function (element) { return cloakElement(element); }); + var /** @type {?} */ valuesMap = new Map(); + elementPropsMap.forEach(function (props, element) { + var /** @type {?} */ styles = {}; + props.forEach(function (prop) { + var /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle); + // there is no easy way to detect this because a sub element could be removed + // by a parent animation element being detached. + if (!value || value.length == 0) { + element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE; + } + }); + valuesMap.set(element, styles); + }); + elements.forEach(function (element, i) { return cloakElement(element, cloakVals[i]); }); + return valuesMap; +} +/** + * @param {?} nodes + * @return {?} + */ +function createIsRootFilterFn(nodes) { + var /** @type {?} */ nodeSet = new Set(nodes); + var /** @type {?} */ knownRootContainer = new Set(); + var /** @type {?} */ isRoot; + isRoot = function (node) { + if (!node) + return true; + if (nodeSet.has(node.parentNode)) + return false; + if (knownRootContainer.has(node.parentNode)) + return true; + if (isRoot(node.parentNode)) { + knownRootContainer.add(node); + return true; + } + return false; + }; + return isRoot; +} +var CLASSES_CACHE_KEY = '$$classes'; +/** + * @param {?} element + * @param {?} className + * @return {?} + */ +function containsClass(element, className) { + if (element.classList) { + return element.classList.contains(className); + } + else { + var /** @type {?} */ classes = element[CLASSES_CACHE_KEY]; + return classes && classes[className]; + } +} +/** + * @param {?} element + * @param {?} className + * @return {?} + */ +function addClass(element, className) { + if (element.classList) { + element.classList.add(className); + } + else { + var /** @type {?} */ classes = element[CLASSES_CACHE_KEY]; + if (!classes) { + classes = element[CLASSES_CACHE_KEY] = {}; + } + classes[className] = true; + } +} +/** + * @param {?} element + * @param {?} className + * @return {?} + */ +function removeClass(element, className) { + if (element.classList) { + element.classList.remove(className); + } + else { + var /** @type {?} */ classes = element[CLASSES_CACHE_KEY]; + if (classes) { + delete classes[className]; + } + } +} +/** + * @return {?} + */ +function getBodyNode() { + if (typeof document != 'undefined') { + return document.body; + } + return null; +} +/** + * @param {?} engine + * @param {?} element + * @param {?} players + * @return {?} + */ +function removeNodesAfterAnimationDone(engine, element, players) { + optimizeGroupPlayer(players).onDone(function () { return engine.processLeaveNode(element); }); +} +/** + * @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 AnimationEngine = (function () { + /** + * @param {?} driver + * @param {?} normalizer + */ + function AnimationEngine(driver, normalizer) { + var _this = this; + this._triggerCache = {}; + this.onRemovalComplete = function (element, context) { }; + this._transitionEngine = new TransitionAnimationEngine(driver, normalizer); + this._timelineEngine = new TimelineAnimationEngine(driver, normalizer); + this._transitionEngine.onRemovalComplete = + function (element, context) { _this.onRemovalComplete(element, context); }; + } + /** + * @param {?} componentId + * @param {?} namespaceId + * @param {?} hostElement + * @param {?} name + * @param {?} metadata + * @return {?} + */ + AnimationEngine.prototype.registerTrigger = function (componentId, namespaceId, hostElement, name, metadata) { + var /** @type {?} */ cacheKey = componentId + '-' + name; + var /** @type {?} */ trigger = this._triggerCache[cacheKey]; + if (!trigger) { + var /** @type {?} */ errors = []; + var /** @type {?} */ ast = (buildAnimationAst(/** @type {?} */ (metadata), errors)); + if (errors.length) { + throw new Error("The animation trigger \"" + name + "\" has failed to build due to the following errors:\n - " + errors.join("\n - ")); + } + trigger = buildTrigger(name, ast); + this._triggerCache[cacheKey] = trigger; + } + this._transitionEngine.registerTrigger(namespaceId, name, trigger); + }; + /** + * @param {?} namespaceId + * @param {?} hostElement + * @return {?} + */ + AnimationEngine.prototype.register = function (namespaceId, hostElement) { + this._transitionEngine.register(namespaceId, hostElement); + }; + /** + * @param {?} namespaceId + * @param {?} context + * @return {?} + */ + AnimationEngine.prototype.destroy = function (namespaceId, context) { + this._transitionEngine.destroy(namespaceId, context); + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} parent + * @param {?} insertBefore + * @return {?} + */ + AnimationEngine.prototype.onInsert = function (namespaceId, element, parent, insertBefore) { + this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore); + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} context + * @return {?} + */ + AnimationEngine.prototype.onRemove = function (namespaceId, element, context) { + this._transitionEngine.removeNode(namespaceId, element, context); + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} property + * @param {?} value + * @return {?} + */ + AnimationEngine.prototype.setProperty = function (namespaceId, element, property, value) { + // @@property + if (property.charAt(0) == '@') { + var _a = parseTimelineCommand(property), id = _a[0], action = _a[1]; + var /** @type {?} */ args = (value); + this._timelineEngine.command(id, element, action, args); + return false; + } + return this._transitionEngine.trigger(namespaceId, element, property, value); + }; + /** + * @param {?} namespaceId + * @param {?} element + * @param {?} eventName + * @param {?} eventPhase + * @param {?} callback + * @return {?} + */ + AnimationEngine.prototype.listen = function (namespaceId, element, eventName, eventPhase, callback) { + // @@listen + if (eventName.charAt(0) == '@') { + var _a = parseTimelineCommand(eventName), id = _a[0], action = _a[1]; + return this._timelineEngine.listen(id, element, action, callback); + } + return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback); + }; + /** + * @param {?=} microtaskId + * @return {?} + */ + AnimationEngine.prototype.flush = function (microtaskId) { + if (microtaskId === void 0) { microtaskId = -1; } + this._transitionEngine.flush(microtaskId); + }; + Object.defineProperty(AnimationEngine.prototype, "players", { + /** + * @return {?} + */ + get: function () { + return ((this._transitionEngine.players)) + .concat(/** @type {?} */ (this._timelineEngine.players)); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + AnimationEngine.prototype.whenRenderingDone = function () { return this._transitionEngine.whenRenderingDone(); }; + return AnimationEngine; +}()); +/** + * @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 WebAnimationsPlayer = (function () { + /** + * @param {?} element + * @param {?} keyframes + * @param {?} options + * @param {?=} previousPlayers + */ + function WebAnimationsPlayer(element, keyframes, options, previousPlayers) { + if (previousPlayers === void 0) { previousPlayers = []; } + var _this = this; + this.element = element; + this.keyframes = keyframes; + this.options = options; + this.previousPlayers = previousPlayers; + this._onDoneFns = []; + this._onStartFns = []; + this._onDestroyFns = []; + this._initialized = false; + this._finished = false; + this._started = false; + this._destroyed = false; + this.time = 0; + this.parentPlayer = null; + this.previousStyles = {}; + this.currentSnapshot = {}; + this._duration = options['duration']; + this._delay = options['delay'] || 0; + this.time = this._duration + this._delay; + if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) { + previousPlayers.forEach(function (player) { + var styles = player.currentSnapshot; + Object.keys(styles).forEach(function (prop) { return _this.previousStyles[prop] = styles[prop]; }); + }); + } + } + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._onFinish = function () { + if (!this._finished) { + this._finished = true; + this._onDoneFns.forEach(function (fn) { return fn(); }); + this._onDoneFns = []; + } + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.init = function () { + this._buildPlayer(); + this._preparePlayerBeforeStart(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._buildPlayer = function () { + var _this = this; + if (this._initialized) + return; + this._initialized = true; + var /** @type {?} */ keyframes = this.keyframes.map(function (styles) { return copyStyles(styles, false); }); + var /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles); + if (previousStyleProps.length) { + var /** @type {?} */ startingKeyframe_1 = keyframes[0]; + var /** @type {?} */ missingStyleProps_1 = []; + previousStyleProps.forEach(function (prop) { + if (!startingKeyframe_1.hasOwnProperty(prop)) { + missingStyleProps_1.push(prop); + } + startingKeyframe_1[prop] = _this.previousStyles[prop]; + }); + if (missingStyleProps_1.length) { + var /** @type {?} */ self_1 = this; + var _loop_1 = function () { + var /** @type {?} */ kf = keyframes[i]; + missingStyleProps_1.forEach(function (prop) { + kf[prop] = _computeStyle(self_1.element, prop); + }); + }; + // tslint:disable-next-line + for (var /** @type {?} */ i = 1; i < keyframes.length; i++) { + _loop_1(); + } + } + } + this._player = this._triggerWebAnimation(this.element, keyframes, this.options); + this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {}; + this._player.addEventListener('finish', function () { return _this._onFinish(); }); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._preparePlayerBeforeStart = function () { + // this is required so that the player doesn't start to animate right away + if (this._delay) { + this._resetDomPlayerState(); + } + else { + this._player.pause(); + } + }; + /** + * \@internal + * @param {?} element + * @param {?} keyframes + * @param {?} options + * @return {?} + */ + WebAnimationsPlayer.prototype._triggerWebAnimation = function (element, keyframes, options) { + // jscompiler doesn't seem to know animate is a native property because it's not fully + // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929] + return (element['animate'](keyframes, options)); + }; + Object.defineProperty(WebAnimationsPlayer.prototype, "domPlayer", { + /** + * @return {?} + */ + get: function () { return this._player; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} fn + * @return {?} + */ + WebAnimationsPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); }; + /** + * @param {?} fn + * @return {?} + */ + WebAnimationsPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); }; + /** + * @param {?} fn + * @return {?} + */ + WebAnimationsPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.play = function () { + this._buildPlayer(); + if (!this.hasStarted()) { + this._onStartFns.forEach(function (fn) { return fn(); }); + this._onStartFns = []; + this._started = true; + } + this._player.play(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.pause = function () { + this.init(); + this._player.pause(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.finish = function () { + this.init(); + this._onFinish(); + this._player.finish(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.reset = function () { + this._resetDomPlayerState(); + this._destroyed = false; + this._finished = false; + this._started = false; + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._resetDomPlayerState = function () { + if (this._player) { + this._player.cancel(); + } + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.restart = function () { + this.reset(); + this.play(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.hasStarted = function () { return this._started; }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.destroy = function () { + if (!this._destroyed) { + this._resetDomPlayerState(); + this._onFinish(); + this._destroyed = true; + this._onDestroyFns.forEach(function (fn) { return fn(); }); + this._onDestroyFns = []; + } + }; + /** + * @param {?} p + * @return {?} + */ + WebAnimationsPlayer.prototype.setPosition = function (p) { this._player.currentTime = p * this.time; }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.getPosition = function () { return this._player.currentTime / this.time; }; + Object.defineProperty(WebAnimationsPlayer.prototype, "totalTime", { + /** + * @return {?} + */ + get: function () { return this._delay + this._duration; }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.beforeDestroy = function () { + var _this = this; + var /** @type {?} */ styles = {}; + if (this.hasStarted()) { + Object.keys(this._finalKeyframe).forEach(function (prop) { + if (prop != 'offset') { + styles[prop] = + _this._finished ? _this._finalKeyframe[prop] : _computeStyle(_this.element, prop); + } + }); + } + this.currentSnapshot = styles; + }; + return WebAnimationsPlayer; +}()); +/** + * @param {?} element + * @param {?} prop + * @return {?} + */ +function _computeStyle(element, prop) { + return ((window.getComputedStyle(element)))[prop]; +} +/** + * @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 WebAnimationsDriver = (function () { + function WebAnimationsDriver() { + } + /** + * @param {?} element + * @param {?} selector + * @return {?} + */ + WebAnimationsDriver.prototype.matchesElement = function (element, selector) { + return matchesElement(element, selector); + }; + /** + * @param {?} elm1 + * @param {?} elm2 + * @return {?} + */ + WebAnimationsDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); }; + /** + * @param {?} element + * @param {?} selector + * @param {?} multi + * @return {?} + */ + WebAnimationsDriver.prototype.query = function (element, selector, multi) { + return invokeQuery(element, selector, multi); + }; + /** + * @param {?} element + * @param {?} prop + * @param {?=} defaultValue + * @return {?} + */ + WebAnimationsDriver.prototype.computeStyle = function (element, prop, defaultValue) { + return (((window.getComputedStyle(element)))[prop]); + }; + /** + * @param {?} element + * @param {?} keyframes + * @param {?} duration + * @param {?} delay + * @param {?} easing + * @param {?=} previousPlayers + * @return {?} + */ + WebAnimationsDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) { + if (previousPlayers === void 0) { previousPlayers = []; } + var /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards'; + var /** @type {?} */ playerOptions = { duration: duration, delay: delay, fill: fill }; + // we check for this to avoid having a null|undefined value be present + // for the easing (which results in an error for certain browsers #9752) + if (easing) { + playerOptions['easing'] = easing; + } + var /** @type {?} */ previousWebAnimationPlayers = (previousPlayers.filter(function (player) { return player instanceof WebAnimationsPlayer; })); + return new WebAnimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers); + }; + return WebAnimationsDriver; +}()); +/** + * @return {?} + */ +function supportsWebAnimations() { + return typeof Element !== 'undefined' && typeof ((Element)).prototype['animate'] === 'function'; +} +/** + * @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 animation APIs of the animation browser package. + */ +/** + * @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. + */ +/** + * Generated bundle index. Do not edit. + */ + +//# sourceMappingURL=browser.es5.js.map + + +/***/ }), +/* 595 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_store__ = __webpack_require__(9); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__devtools__ = __webpack_require__(381); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__config__ = __webpack_require__(380); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__extension__ = __webpack_require__(382); /* unused harmony export _createReduxDevtoolsExtension */ /* unused harmony export _createState */ /* unused harmony export _createReducer */ @@ -6651,6 +15445,11 @@ exports.compose = function () { /* unused harmony export noMonitor */ /* unused harmony export _createOptions */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StoreDevtoolsModule; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_store__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__devtools__ = __webpack_require__(222); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__config__ = __webpack_require__(224); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__extension__ = __webpack_require__(223); @@ -6675,27 +15474,24 @@ function _createState(devtools) { function _createReducer(dispatcher, reducer) { return new __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"](dispatcher, reducer); } -function _createStateIfExtension(extension, injector) { +function _createStateIfExtension(extension, injector, initialState) { if (!!extension) { - var devtools = injector.get(__WEBPACK_IMPORTED_MODULE_2__devtools__["a" /* StoreDevtools */]); + var devtools = injector.get(__WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* StoreDevtools */]); return _createState(devtools); } else { - var initialState = injector.get(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_STATE"]); var dispatcher = injector.get(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Dispatcher"]); var reducer = injector.get(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"]); return new __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["State"](initialState, dispatcher, reducer); } } -function _createReducerIfExtension(extension, injector) { +function _createReducerIfExtension(extension, injector, reducer) { if (!!extension) { - var devtoolsDispatcher = injector.get(__WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* DevtoolsDispatcher */]); - var reducer = injector.get(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]); + var devtoolsDispatcher = injector.get(__WEBPACK_IMPORTED_MODULE_2__devtools__["a" /* DevtoolsDispatcher */]); return _createReducer(devtoolsDispatcher, reducer); } else { var dispatcher = injector.get(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Dispatcher"]); - var reducer = injector.get(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]); return new __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"](dispatcher, reducer); } } @@ -6721,21 +15517,21 @@ var StoreDevtoolsModule = (function () { providers: [ { provide: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["State"], - deps: [__WEBPACK_IMPORTED_MODULE_2__devtools__["a" /* StoreDevtools */]], + deps: [__WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* StoreDevtools */]], useFactory: _createState }, { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["b" /* INITIAL_OPTIONS */], + provide: __WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */], useValue: _options }, { provide: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"], - deps: [__WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* DevtoolsDispatcher */], __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]], + deps: [__WEBPACK_IMPORTED_MODULE_2__devtools__["a" /* DevtoolsDispatcher */], __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]], useFactory: _createReducer }, { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["a" /* STORE_DEVTOOLS_CONFIG */], - deps: [__WEBPACK_IMPORTED_MODULE_3__config__["b" /* INITIAL_OPTIONS */]], + provide: __WEBPACK_IMPORTED_MODULE_3__config__["b" /* STORE_DEVTOOLS_CONFIG */], + deps: [__WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */]], useFactory: _createOptions } ] @@ -6748,59 +15544,60 @@ var StoreDevtoolsModule = (function () { providers: [ { provide: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["State"], - deps: [__WEBPACK_IMPORTED_MODULE_4__extension__["b" /* REDUX_DEVTOOLS_EXTENSION */], __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injector"]], + deps: [__WEBPACK_IMPORTED_MODULE_4__extension__["b" /* REDUX_DEVTOOLS_EXTENSION */], __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injector"], __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_STATE"]], useFactory: _createStateIfExtension }, { provide: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"], - deps: [__WEBPACK_IMPORTED_MODULE_4__extension__["b" /* REDUX_DEVTOOLS_EXTENSION */], __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injector"]], + deps: [__WEBPACK_IMPORTED_MODULE_4__extension__["b" /* REDUX_DEVTOOLS_EXTENSION */], __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injector"], __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]], useFactory: _createReducerIfExtension }, { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["b" /* INITIAL_OPTIONS */], + provide: __WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */], useValue: _options }, { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["a" /* STORE_DEVTOOLS_CONFIG */], - deps: [__WEBPACK_IMPORTED_MODULE_3__config__["b" /* INITIAL_OPTIONS */]], + provide: __WEBPACK_IMPORTED_MODULE_3__config__["b" /* STORE_DEVTOOLS_CONFIG */], + deps: [__WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */]], useFactory: _createOptions } ] }; }; - StoreDevtoolsModule.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ - imports: [ - __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["StoreModule"] - ], - providers: [ - __WEBPACK_IMPORTED_MODULE_4__extension__["a" /* DevtoolsExtension */], - __WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* DevtoolsDispatcher */], - __WEBPACK_IMPORTED_MODULE_2__devtools__["a" /* StoreDevtools */], - { - provide: __WEBPACK_IMPORTED_MODULE_4__extension__["b" /* REDUX_DEVTOOLS_EXTENSION */], - useFactory: _createReduxDevtoolsExtension - } - ] - },] }, - ]; - /** @nocollapse */ - StoreDevtoolsModule.ctorParameters = []; return StoreDevtoolsModule; }()); + +StoreDevtoolsModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + imports: [ + __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["StoreModule"] + ], + providers: [ + __WEBPACK_IMPORTED_MODULE_4__extension__["a" /* DevtoolsExtension */], + __WEBPACK_IMPORTED_MODULE_2__devtools__["a" /* DevtoolsDispatcher */], + __WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* StoreDevtools */], + { + provide: __WEBPACK_IMPORTED_MODULE_4__extension__["b" /* REDUX_DEVTOOLS_EXTENSION */], + useFactory: _createReduxDevtoolsExtension + } + ] + },] }, +]; +/** @nocollapse */ +StoreDevtoolsModule.ctorParameters = function () { return []; }; //# sourceMappingURL=instrument.js.map /***/ }), -/* 588 */ +/* 596 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_store__ = __webpack_require__(9); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(249); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions__ = __webpack_require__(248); /* unused harmony export INIT_ACTION */ /* harmony export (immutable) */ __webpack_exports__["a"] = liftInitialState; /* harmony export (immutable) */ __webpack_exports__["b"] = liftReducerWith; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_store__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(131); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions__ = __webpack_require__(132); @@ -6858,7 +15655,7 @@ function liftInitialState(initialCommittedState, monitorReducer) { return { monitorState: monitorReducer(undefined, {}), nextActionId: 1, - actionsById: { 0: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["b" /* liftAction */])(INIT_ACTION) }, + actionsById: { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }, stagedActionIds: [0], skippedActionIds: [], committedState: initialCommittedState, @@ -6908,9 +15705,9 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc // value whenever we feel like we don't have to recompute the states. var minInvalidatedStateIndex = 0; switch (liftedAction.type) { - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].RESET: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].RESET: { // Get back to the state the store was created with. - actionsById = { 0: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["b" /* liftAction */])(INIT_ACTION) }; + actionsById = { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }; nextActionId = 1; stagedActionIds = [0]; skippedActionIds = []; @@ -6919,10 +15716,10 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc computedStates = []; break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].COMMIT: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].COMMIT: { // Consider the last committed state the new starting point. // Squash any staged actions into a single committed state. - actionsById = { 0: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["b" /* liftAction */])(INIT_ACTION) }; + actionsById = { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }; nextActionId = 1; stagedActionIds = [0]; skippedActionIds = []; @@ -6931,10 +15728,10 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc computedStates = []; break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].ROLLBACK: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].ROLLBACK: { // Forget about any staged actions. // Start again from the last committed state. - actionsById = { 0: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["b" /* liftAction */])(INIT_ACTION) }; + actionsById = { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }; nextActionId = 1; stagedActionIds = [0]; skippedActionIds = []; @@ -6942,7 +15739,7 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc computedStates = []; break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].TOGGLE_ACTION: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].TOGGLE_ACTION: { // Toggle whether an action with given ID is skipped. // Being skipped means it is a no-op during the computation. var actionId_1 = liftedAction.id; @@ -6957,7 +15754,7 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc minInvalidatedStateIndex = stagedActionIds.indexOf(actionId_1); break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].SET_ACTIONS_ACTIVE: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].SET_ACTIONS_ACTIVE: { // Toggle whether an action with given ID is skipped. // Being skipped means it is a no-op during the computation. var start = liftedAction.start, end = liftedAction.end, active = liftedAction.active; @@ -6965,7 +15762,7 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc for (var i = start; i < end; i++) actionIds.push(i); if (active) { - skippedActionIds = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["d" /* difference */])(skippedActionIds, actionIds); + skippedActionIds = __WEBPACK_IMPORTED_MODULE_1__utils__["b" /* difference */](skippedActionIds, actionIds); } else { skippedActionIds = skippedActionIds.concat(actionIds); @@ -6974,7 +15771,7 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc minInvalidatedStateIndex = stagedActionIds.indexOf(start); break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].JUMP_TO_STATE: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].JUMP_TO_STATE: { // Without recomputing anything, move the pointer that tell us // which state is considered the current one. Useful for sliders. currentStateIndex = liftedAction.index; @@ -6982,14 +15779,14 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc minInvalidatedStateIndex = Infinity; break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].SWEEP: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].SWEEP: { // Forget any actions that are currently being skipped. - stagedActionIds = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__["d" /* difference */])(stagedActionIds, skippedActionIds); + stagedActionIds = __WEBPACK_IMPORTED_MODULE_1__utils__["b" /* difference */](stagedActionIds, skippedActionIds); skippedActionIds = []; currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1); break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].PERFORM_ACTION: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].PERFORM_ACTION: { // Auto-commit as new actions come in. if (options.maxAge && stagedActionIds.length === options.maxAge) { commitExcessActions(1); @@ -7006,9 +15803,9 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc minInvalidatedStateIndex = stagedActionIds.length - 1; break; } - case __WEBPACK_IMPORTED_MODULE_2__actions__["b" /* ActionTypes */].IMPORT_STATE: { + case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].IMPORT_STATE: { // Completely replace everything. - (_b = liftedAction.nextLiftedState, monitorState = _b.monitorState, actionsById = _b.actionsById, nextActionId = _b.nextActionId, stagedActionIds = _b.stagedActionIds, skippedActionIds = _b.skippedActionIds, committedState = _b.committedState, currentStateIndex = _b.currentStateIndex, computedStates = _b.computedStates, _b); + (_b = liftedAction.nextLiftedState, monitorState = _b.monitorState, actionsById = _b.actionsById, nextActionId = _b.nextActionId, stagedActionIds = _b.stagedActionIds, skippedActionIds = _b.skippedActionIds, committedState = _b.committedState, currentStateIndex = _b.currentStateIndex, computedStates = _b.computedStates); break; } case __WEBPACK_IMPORTED_MODULE_0__ngrx_store__["Reducer"].REPLACE: @@ -7049,18 +15846,18 @@ function liftReducerWith(initialCommittedState, initialLiftedState, monitorReduc //# sourceMappingURL=reducer.js.map /***/ }), -/* 589 */ +/* 597 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(43); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_dock_monitor_index__ = __webpack_require__(383); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_log_monitor_index__ = __webpack_require__(598); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_store_log_monitor__ = __webpack_require__(602); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "useLogMonitor", function() { return __WEBPACK_IMPORTED_MODULE_2__src_dock_monitor_index__["b"]; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StoreLogMonitorModule", function() { return StoreLogMonitorModule; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(26); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_dock_monitor_index__ = __webpack_require__(225); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_log_monitor_index__ = __webpack_require__(603); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_store_log_monitor__ = __webpack_require__(611); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "useLogMonitor", function() { return __WEBPACK_IMPORTED_MODULE_2__src_dock_monitor_index__["b"]; }); @@ -7092,17 +15889,17 @@ var StoreLogMonitorModule = (function () { //# sourceMappingURL=index.js.map /***/ }), -/* 590 */ +/* 598 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__ = __webpack_require__(93); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__keycodes__ = __webpack_require__(593); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CommanderComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__ = __webpack_require__(45); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__keycodes__ = __webpack_require__(599); @@ -7186,66 +15983,63 @@ var CommanderComponent = (function () { //# sourceMappingURL=commander.js.map /***/ }), -/* 591 */ +/* 599 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__ = __webpack_require__(246); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__ = __webpack_require__(247); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge__ = __webpack_require__(181); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions__ = __webpack_require__(250); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DockMonitorComponent; }); - - - - - - -var DockMonitorComponent = (function () { - function DockMonitorComponent(tools, actions) { - this.state$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(tools.liftedState, function (s) { return s.monitorState; }); - this.visible$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(this.state$, function (s) { return s.visible; }); - this.position$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(this.state$, function (s) { return s.position; }); - this.size$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(this.state$, function (s) { return s.size; }); - this.toggle$ = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); - this.changePosition$ = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); - this.actionsSubscription = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge__["merge"])(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__["map"].call(this.toggle$, function () { return actions.toggleVisibility(); }), __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__["map"].call(this.changePosition$, function () { return actions.changePosition(); })).subscribe(tools); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return KEYCODES; }); +// Most of these are according to this table: http://www.ssicom.org/js/x171166.htm +// However where nodejs readline diverges, they are adjusted to conform to it +var KEYCODES = { + nomod: { + escape: '\u001b', + space: ' ' // actually '\u0020' + }, + ctrl: { + ' ': '\u0000', + 'a': '\u0001', + 'b': '\u0002', + 'c': '\u0003', + 'd': '\u0004', + 'e': '\u0005', + 'f': '\u0006', + 'g': '\u0007', + 'h': '\u0008', + 'i': '\u0009', + 'j': '\u000a', + 'k': '\u000b', + 'm': '\u000c', + 'n': '\u000d', + 'l': '\u000e', + 'o': '\u000f', + 'p': '\u0010', + 'q': '\u0011', + 'r': '\u0012', + 's': '\u0013', + 't': '\u0014', + 'u': '\u0015', + 'v': '\u0016', + 'w': '\u0017', + 'x': '\u0018', + 'y': '\u0019', + 'z': '\u001a', + '[': '\u001b', + '\\': '\u001c', + ']': '\u001d', + '^': '\u001e', + '_': '\u001f', + 'space': '\u0000' } - DockMonitorComponent.prototype.ngOnDestroy = function () { - this.actionsSubscription.unsubscribe(); - }; - DockMonitorComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'dock-monitor', - changeDetection: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ChangeDetectionStrategy"].OnPush, - template: "\n \n \n\n \n \n \n " - },] }, - ]; - /** @nocollapse */ - DockMonitorComponent.ctorParameters = [ - { type: __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__["StoreDevtools"], }, - { type: __WEBPACK_IMPORTED_MODULE_5__actions__["a" /* DockActions */], }, - ]; - DockMonitorComponent.propDecorators = { - 'toggleCommand': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'positionCommand': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - }; - return DockMonitorComponent; -}()); -//# sourceMappingURL=dock-monitor.js.map +}; +//# sourceMappingURL=keycodes.js.map /***/ }), -/* 592 */ +/* 600 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DockComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); var DockComponent = (function () { function DockComponent() { @@ -7338,65 +16132,68 @@ var DockComponent = (function () { //# sourceMappingURL=dock.js.map /***/ }), -/* 593 */ +/* 601 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return KEYCODES; }); -// Most of these are according to this table: http://www.ssicom.org/js/x171166.htm -// However where nodejs readline diverges, they are adjusted to conform to it -var KEYCODES = { - nomod: { - escape: '\u001b', - space: ' ' // actually '\u0020' - }, - ctrl: { - ' ': '\u0000', - 'a': '\u0001', - 'b': '\u0002', - 'c': '\u0003', - 'd': '\u0004', - 'e': '\u0005', - 'f': '\u0006', - 'g': '\u0007', - 'h': '\u0008', - 'i': '\u0009', - 'j': '\u000a', - 'k': '\u000b', - 'm': '\u000c', - 'n': '\u000d', - 'l': '\u000e', - 'o': '\u000f', - 'p': '\u0010', - 'q': '\u0011', - 'r': '\u0012', - 's': '\u0013', - 't': '\u0014', - 'u': '\u0015', - 'v': '\u0016', - 'w': '\u0017', - 'x': '\u0018', - 'y': '\u0019', - 'z': '\u001a', - '[': '\u001b', - '\\': '\u001c', - ']': '\u001d', - '^': '\u001e', - '_': '\u001f', - 'space': '\u0000' +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DockMonitorComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__ = __webpack_require__(133); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__ = __webpack_require__(130); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions__ = __webpack_require__(134); + + + + + + +var DockMonitorComponent = (function () { + function DockMonitorComponent(tools, actions) { + this.state$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(tools.liftedState, function (s) { return s.monitorState; }); + this.visible$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(this.state$, function (s) { return s.visible; }); + this.position$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(this.state$, function (s) { return s.position; }); + this.size$ = __WEBPACK_IMPORTED_MODULE_1__ngrx_core_operator_select__["select"].call(this.state$, function (s) { return s.size; }); + this.toggle$ = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); + this.changePosition$ = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); + this.actionsSubscription = __WEBPACK_IMPORTED_MODULE_3_rxjs_observable_merge__["merge"](__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__["map"].call(this.toggle$, function () { return actions.toggleVisibility(); }), __WEBPACK_IMPORTED_MODULE_4_rxjs_operator_map__["map"].call(this.changePosition$, function () { return actions.changePosition(); })).subscribe(tools); } -}; -//# sourceMappingURL=keycodes.js.map + DockMonitorComponent.prototype.ngOnDestroy = function () { + this.actionsSubscription.unsubscribe(); + }; + DockMonitorComponent.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ + selector: 'dock-monitor', + changeDetection: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ChangeDetectionStrategy"].OnPush, + template: "\n \n \n\n \n \n \n " + },] }, + ]; + /** @nocollapse */ + DockMonitorComponent.ctorParameters = [ + { type: __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__["StoreDevtools"], }, + { type: __WEBPACK_IMPORTED_MODULE_5__actions__["a" /* DockActions */], }, + ]; + DockMonitorComponent.propDecorators = { + 'toggleCommand': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'positionCommand': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + }; + return DockMonitorComponent; +}()); +//# sourceMappingURL=dock-monitor.js.map /***/ }), -/* 594 */ +/* 602 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_store__ = __webpack_require__(9); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__actions__ = __webpack_require__(250); /* unused harmony export POSITIONS */ /* harmony export (immutable) */ __webpack_exports__["a"] = useDockMonitor; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ngrx_store__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__actions__ = __webpack_require__(134); var POSITIONS = ['left', 'top', 'right', 'bottom']; @@ -7425,7 +16222,7 @@ function useDockMonitor(_options) { !state : state; } - return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__ngrx_store__["combineReducers"])({ + return __WEBPACK_IMPORTED_MODULE_0__ngrx_store__["combineReducers"]({ position: position, visible: visible, size: size @@ -7434,143 +16231,17 @@ function useDockMonitor(_options) { //# sourceMappingURL=reducer.js.map /***/ }), -/* 595 */ +/* 603 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(43); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__json_node__ = __webpack_require__(596); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__json_tree__ = __webpack_require__(597); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JsonTreeModule; }); - - - - -var JsonTreeModule = (function () { - function JsonTreeModule() { - } - JsonTreeModule.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ - imports: [ - __WEBPACK_IMPORTED_MODULE_1__angular_common__["CommonModule"] - ], - declarations: [ - __WEBPACK_IMPORTED_MODULE_2__json_node__["a" /* JsonNodeComponent */], - __WEBPACK_IMPORTED_MODULE_3__json_tree__["a" /* JsonTreeComponent */] - ], - exports: [ - __WEBPACK_IMPORTED_MODULE_3__json_tree__["a" /* JsonTreeComponent */] - ] - },] }, - ]; - /** @nocollapse */ - JsonTreeModule.ctorParameters = []; - return JsonTreeModule; -}()); -//# sourceMappingURL=index.js.map - -/***/ }), -/* 596 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(384); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JsonNodeComponent; }); - - -var JsonNodeComponent = (function () { - function JsonNodeComponent() { - this.expanded = false; - } - Object.defineProperty(JsonNodeComponent.prototype, "value", { - set: function (value) { - this.label = __WEBPACK_IMPORTED_MODULE_1__types__["b" /* getLabelFor */](value); - this.type = __WEBPACK_IMPORTED_MODULE_1__types__["c" /* getTypeOf */](value); - if (this.type === __WEBPACK_IMPORTED_MODULE_1__types__["d" /* KNOWN */].Array || this.type === __WEBPACK_IMPORTED_MODULE_1__types__["d" /* KNOWN */].Object || this.type === __WEBPACK_IMPORTED_MODULE_1__types__["d" /* KNOWN */].Iterable) { - this.children = __WEBPACK_IMPORTED_MODULE_1__types__["a" /* getChildrenFor */](value); - } - else { - this.children = null; - } - }, - enumerable: true, - configurable: true - }); - JsonNodeComponent.prototype.toggle = function () { - if (this.children) { - this.expanded = !this.expanded; - } - }; - JsonNodeComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'ngrx-json-node', - styles: ["\n :host {\n display: block;\n padding: 2px 2px 2px 20px;\n position: relative;\n color: #70AFCD;\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\n }\n .expanded-indicator {\n position: absolute;\n top: 7px;\n left: 5px;\n font-size: 10px;\n transition: transform 200ms;\n }\n\n .expanded .expanded-indicator {\n transform: rotate(90deg);\n }\n\n .node-key::after {\n content: ': ';\n display: inline;\n }\n\n .expanded .node-label {\n color: #BABBBD !important;\n }\n\n .node-label {\n color: #9AC05C;\n }\n\n .node-label.array, .node-label.null, .node-label.iterable {\n color: #D182C0;\n }\n\n .node-label.number, .node-label.undefined, .node-label.boolean {\n color: #F86936;\n }\n "], - template: "\n
\n \u25B6\n {{ key }}\n {{ label }}\n
\n
\n \n
\n " - },] }, - ]; - /** @nocollapse */ - JsonNodeComponent.ctorParameters = []; - JsonNodeComponent.propDecorators = { - 'key': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'expanded': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'value': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - }; - return JsonNodeComponent; -}()); -//# sourceMappingURL=json-node.js.map - -/***/ }), -/* 597 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(384); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JsonTreeComponent; }); - - -var JsonTreeComponent = (function () { - function JsonTreeComponent() { - this.children = []; - this.expanded = true; - } - Object.defineProperty(JsonTreeComponent.prototype, "value", { - set: function (value) { - this.children = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__types__["a" /* getChildrenFor */])(value); - }, - enumerable: true, - configurable: true - }); - JsonTreeComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'ngrx-json-tree', - template: "\n \n " - },] }, - ]; - /** @nocollapse */ - JsonTreeComponent.ctorParameters = []; - JsonTreeComponent.propDecorators = { - 'expanded': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'value': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - }; - return JsonTreeComponent; -}()); -//# sourceMappingURL=json-tree.js.map - -/***/ }), -/* 598 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(43); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__json_tree_index__ = __webpack_require__(595); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log_monitor__ = __webpack_require__(601); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__log_monitor_button__ = __webpack_require__(599); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__log_monitor_entry__ = __webpack_require__(600); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogMonitorModule; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(26); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__json_tree_index__ = __webpack_require__(604); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log_monitor__ = __webpack_require__(608); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__log_monitor_button__ = __webpack_require__(609); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__log_monitor_entry__ = __webpack_require__(610); @@ -7603,112 +16274,165 @@ var LogMonitorModule = (function () { //# sourceMappingURL=index.js.map /***/ }), -/* 599 */ +/* 604 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogMonitorButtonComponent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JsonTreeModule; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(26); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__json_node__ = __webpack_require__(605); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__json_tree__ = __webpack_require__(607); -var LogMonitorButtonComponent = (function () { - function LogMonitorButtonComponent() { - this.action = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); + + + +var JsonTreeModule = (function () { + function JsonTreeModule() { } - LogMonitorButtonComponent.prototype.handleAction = function ($event) { - if (!this.disabled) { - this.action.next({}); - } - $event.stopPropagation(); - return false; - }; - LogMonitorButtonComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'log-monitor-button', - template: "\n \n ", - styles: ["\n :host{\n flex-grow: 1;\n display: inline-block;\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\n cursor: pointer;\n font-weight: bold;\n border-radius: 3px;\n padding: 4px 8px;\n margin: 5px 3px 5px 3px;\n font-size: 0.8em;\n color: white;\n text-decoration: none;\n background-color: #4F5A65;\n }\n\n :host.disabled{\n opacity: 0.2;\n cursor: text;\n background-color: transparent;\n }\n "] + JsonTreeModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + imports: [ + __WEBPACK_IMPORTED_MODULE_1__angular_common__["CommonModule"] + ], + declarations: [ + __WEBPACK_IMPORTED_MODULE_2__json_node__["a" /* JsonNodeComponent */], + __WEBPACK_IMPORTED_MODULE_3__json_tree__["a" /* JsonTreeComponent */] + ], + exports: [ + __WEBPACK_IMPORTED_MODULE_3__json_tree__["a" /* JsonTreeComponent */] + ] },] }, ]; /** @nocollapse */ - LogMonitorButtonComponent.ctorParameters = []; - LogMonitorButtonComponent.propDecorators = { - 'disabled': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostBinding"], args: ['class.disabled',] }, { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'action': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Output"] },], - 'handleAction': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostListener"], args: ['click', ['$event'],] },], - }; - return LogMonitorButtonComponent; + JsonTreeModule.ctorParameters = []; + return JsonTreeModule; }()); -//# sourceMappingURL=log-monitor-button.js.map +//# sourceMappingURL=index.js.map /***/ }), -/* 600 */ +/* 605 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogMonitorEntryComponent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JsonNodeComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(226); -var LogMonitorEntryComponent = (function () { - function LogMonitorEntryComponent() { - this.expandEntries = false; - this.disabled = false; - this.toggle = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); + +var JsonNodeComponent = (function () { + function JsonNodeComponent() { + this.expanded = false; } - Object.defineProperty(LogMonitorEntryComponent.prototype, "item", { - get: function () { - return this._item; - }, + Object.defineProperty(JsonNodeComponent.prototype, "value", { set: function (value) { - this._item = value; - this.stateActionPair = { - state: value.state, - action: value.action - }; + this.label = __WEBPACK_IMPORTED_MODULE_1__types__["c" /* getLabelFor */](value); + this.type = __WEBPACK_IMPORTED_MODULE_1__types__["d" /* getTypeOf */](value); + if (this.type === __WEBPACK_IMPORTED_MODULE_1__types__["a" /* KNOWN */].Array || this.type === __WEBPACK_IMPORTED_MODULE_1__types__["a" /* KNOWN */].Object || this.type === __WEBPACK_IMPORTED_MODULE_1__types__["a" /* KNOWN */].Iterable) { + this.children = __WEBPACK_IMPORTED_MODULE_1__types__["b" /* getChildrenFor */](value); + } + else { + this.children = null; + } }, enumerable: true, configurable: true }); - LogMonitorEntryComponent.prototype.handleToggle = function () { - if (!this.disabled) { - this.toggle.next({ id: this.item.actionId }); + JsonNodeComponent.prototype.toggle = function () { + if (this.children) { + this.expanded = !this.expanded; } }; - LogMonitorEntryComponent.prototype.logPayload = function () { - console.log(this.item.action); - }; - LogMonitorEntryComponent.prototype.logState = function () { - console.log(this.item.state); - }; - LogMonitorEntryComponent.decorators = [ + JsonNodeComponent.decorators = [ { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'log-monitor-entry', - template: "\n
\n {{ item.action.type }}\n
\n
\n \n
\n ", - styles: ["\n :host{\n color: #FFFFFF;\n background-color: #4F5A65;\n cursor: pointer;\n }\n .title-bar{\n padding: 8px 0 7px 16px;\n background-color: rgba(0,0,0,0.1);\n }\n .action-bar{\n padding: 20px;\n }\n .collapsed{\n text-decoration: line-through;\n font-style: italic;\n opacity: 0.5;\n }\n "] + selector: 'ngrx-json-node', + styles: ["\n :host {\n display: block;\n padding: 2px 2px 2px 20px;\n position: relative;\n color: #70AFCD;\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\n }\n .expanded-indicator {\n position: absolute;\n top: 7px;\n left: 5px;\n font-size: 10px;\n transition: transform 200ms;\n }\n\n .expanded .expanded-indicator {\n transform: rotate(90deg);\n }\n\n .node-key::after {\n content: ': ';\n display: inline;\n }\n\n .expanded .node-label {\n color: #BABBBD !important;\n }\n\n .node-label {\n color: #9AC05C;\n }\n\n .node-label.array, .node-label.null, .node-label.iterable {\n color: #D182C0;\n }\n\n .node-label.number, .node-label.undefined, .node-label.boolean {\n color: #F86936;\n }\n "], + template: "\n
\n \u25B6\n {{ key }}\n {{ label }}\n
\n
\n \n
\n " },] }, ]; /** @nocollapse */ - LogMonitorEntryComponent.ctorParameters = []; - LogMonitorEntryComponent.propDecorators = { - 'expandEntries': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'disabled': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'item': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'toggle': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Output"] },], + JsonNodeComponent.ctorParameters = []; + JsonNodeComponent.propDecorators = { + 'key': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'expanded': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'value': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], }; - return LogMonitorEntryComponent; + return JsonNodeComponent; }()); -//# sourceMappingURL=log-monitor-entry.js.map +//# sourceMappingURL=json-node.js.map /***/ }), -/* 601 */ +/* 606 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +exports.compose = function () { + var functions = []; + for (var _i = 0; _i < arguments.length; _i++) { + functions[_i - 0] = arguments[_i]; + } + return function (arg) { + if (functions.length === 0) { + return arg; + } + var last = functions[functions.length - 1]; + var rest = functions.slice(0, -1); + return rest.reduceRight(function (composed, fn) { return fn(composed); }, last(arg)); + }; +}; + + +/***/ }), +/* 607 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JsonTreeComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(226); + + +var JsonTreeComponent = (function () { + function JsonTreeComponent() { + this.children = []; + this.expanded = true; + } + Object.defineProperty(JsonTreeComponent.prototype, "value", { + set: function (value) { + this.children = __WEBPACK_IMPORTED_MODULE_1__types__["b" /* getChildrenFor */](value); + }, + enumerable: true, + configurable: true + }); + JsonTreeComponent.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ + selector: 'ngrx-json-tree', + template: "\n \n " + },] }, + ]; + /** @nocollapse */ + JsonTreeComponent.ctorParameters = []; + JsonTreeComponent.propDecorators = { + 'expanded': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'value': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + }; + return JsonTreeComponent; +}()); +//# sourceMappingURL=json-tree.js.map + +/***/ }), +/* 608 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__ = __webpack_require__(247); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__ = __webpack_require__(246); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogMonitorComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__ = __webpack_require__(130); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__ = __webpack_require__(133); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__); @@ -7778,12 +16502,107 @@ var LogMonitorComponent = (function () { //# sourceMappingURL=log-monitor.js.map /***/ }), -/* 602 */ +/* 609 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogMonitorButtonComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); + +var LogMonitorButtonComponent = (function () { + function LogMonitorButtonComponent() { + this.action = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); + } + LogMonitorButtonComponent.prototype.handleAction = function ($event) { + if (!this.disabled) { + this.action.next({}); + } + $event.stopPropagation(); + return false; + }; + LogMonitorButtonComponent.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ + selector: 'log-monitor-button', + template: "\n \n ", + styles: ["\n :host{\n flex-grow: 1;\n display: inline-block;\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\n cursor: pointer;\n font-weight: bold;\n border-radius: 3px;\n padding: 4px 8px;\n margin: 5px 3px 5px 3px;\n font-size: 0.8em;\n color: white;\n text-decoration: none;\n background-color: #4F5A65;\n }\n\n :host.disabled{\n opacity: 0.2;\n cursor: text;\n background-color: transparent;\n }\n "] + },] }, + ]; + /** @nocollapse */ + LogMonitorButtonComponent.ctorParameters = []; + LogMonitorButtonComponent.propDecorators = { + 'disabled': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostBinding"], args: ['class.disabled',] }, { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'action': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Output"] },], + 'handleAction': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostListener"], args: ['click', ['$event'],] },], + }; + return LogMonitorButtonComponent; +}()); +//# sourceMappingURL=log-monitor-button.js.map + +/***/ }), +/* 610 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogMonitorEntryComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); + +var LogMonitorEntryComponent = (function () { + function LogMonitorEntryComponent() { + this.expandEntries = false; + this.disabled = false; + this.toggle = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); + } + Object.defineProperty(LogMonitorEntryComponent.prototype, "item", { + get: function () { + return this._item; + }, + set: function (value) { + this._item = value; + this.stateActionPair = { + state: value.state, + action: value.action + }; + }, + enumerable: true, + configurable: true + }); + LogMonitorEntryComponent.prototype.handleToggle = function () { + if (!this.disabled) { + this.toggle.next({ id: this.item.actionId }); + } + }; + LogMonitorEntryComponent.prototype.logPayload = function () { + console.log(this.item.action); + }; + LogMonitorEntryComponent.prototype.logState = function () { + console.log(this.item.state); + }; + LogMonitorEntryComponent.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ + selector: 'log-monitor-entry', + template: "\n
\n {{ item.action.type }}\n
\n
\n \n
\n ", + styles: ["\n :host{\n color: #FFFFFF;\n background-color: #4F5A65;\n cursor: pointer;\n }\n .title-bar{\n padding: 8px 0 7px 16px;\n background-color: rgba(0,0,0,0.1);\n }\n .action-bar{\n padding: 20px;\n }\n .collapsed{\n text-decoration: line-through;\n font-style: italic;\n opacity: 0.5;\n }\n "] + },] }, + ]; + /** @nocollapse */ + LogMonitorEntryComponent.ctorParameters = []; + LogMonitorEntryComponent.propDecorators = { + 'expandEntries': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'disabled': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'item': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], + 'toggle': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Output"] },], + }; + return LogMonitorEntryComponent; +}()); +//# sourceMappingURL=log-monitor-entry.js.map + +/***/ }), +/* 611 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StoreLogMonitorComponent; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); var StoreLogMonitorComponent = (function () { function StoreLogMonitorComponent() { @@ -7809,423 +16628,3370 @@ var StoreLogMonitorComponent = (function () { //# sourceMappingURL=store-log-monitor.js.map /***/ }), -/* 603 */, -/* 604 */, -/* 605 */, -/* 606 */, -/* 607 */, -/* 608 */, -/* 609 */, -/* 610 */, -/* 611 */, -/* 612 */, -/* 613 */, -/* 614 */, -/* 615 */, -/* 616 */, -/* 617 */, -/* 618 */, -/* 619 */, -/* 620 */, -/* 621 */, -/* 622 */, -/* 623 */, -/* 624 */, -/* 625 */, -/* 626 */, -/* 627 */, -/* 628 */, -/* 629 */, -/* 630 */, -/* 631 */, -/* 632 */, -/* 633 */, -/* 634 */, -/* 635 */, -/* 636 */, -/* 637 */, -/* 638 */, -/* 639 */, -/* 640 */, -/* 641 */, -/* 642 */, -/* 643 */, -/* 644 */, -/* 645 */, -/* 646 */, -/* 647 */, -/* 648 */, -/* 649 */, -/* 650 */, -/* 651 */, -/* 652 */, -/* 653 */, -/* 654 */, -/* 655 */, -/* 656 */, -/* 657 */, -/* 658 */, -/* 659 */, -/* 660 */, -/* 661 */, -/* 662 */, -/* 663 */, -/* 664 */, -/* 665 */, -/* 666 */, -/* 667 */, -/* 668 */, -/* 669 */ -/***/ (function(module, exports, __webpack_require__) { +/* 612 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ -var saveAs=saveAs||function(e){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in o,i=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},a=e.webkitRequestFileSystem,c=e.requestFileSystem||a||e.mozRequestFileSystem,u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},f="application/octet-stream",s=0,d=500,l=function(t){var o=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,d)},v=function(e,t,n){t=[].concat(t);for(var o=t.length;o--;){var r=e["on"+t[o]];if("function"==typeof r)try{r.call(e,n||e)}catch(i){u(i)}}},p=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["",e],{type:e.type}):e},w=function(t,u,d){d||(t=p(t));var w,y,m,S=this,h=t.type,O=!1,R=function(){v(S,"writestart progress write writeend".split(" "))},b=function(){if((O||!w)&&(w=n().createObjectURL(t)),y)y.location.href=w;else{var o=e.open(w,"_blank");void 0==o&&"undefined"!=typeof safari&&(e.location.href=w)}S.readyState=S.DONE,R(),l(w)},g=function(e){return function(){return S.readyState!==S.DONE?e.apply(this,arguments):void 0}},E={create:!0,exclusive:!1};return S.readyState=S.INIT,u||(u="download"),r?(w=n().createObjectURL(t),o.href=w,o.download=u,void setTimeout(function(){i(o),R(),l(w),S.readyState=S.DONE})):(e.chrome&&h&&h!==f&&(m=t.slice||t.webkitSlice,t=m.call(t,0,t.size,f),O=!0),a&&"download"!==u&&(u+=".download"),(h===f||a)&&(y=e),c?(s+=t.size,void c(e.TEMPORARY,s,g(function(e){e.root.getDirectory("saved",E,g(function(e){var n=function(){e.getFile(u,E,g(function(e){e.createWriter(g(function(n){n.onwriteend=function(t){y.location.href=e.toURL(),S.readyState=S.DONE,v(S,"writeend",t),l(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&b()},"writestart progress write abort".split(" ").forEach(function(e){n["on"+e]=S["on"+e]}),n.write(t),S.abort=function(){n.abort(),S.readyState=S.DONE},S.readyState=S.WRITING}),b)}),b)};e.getFile(u,{create:!1},g(function(e){e.remove(),n()}),g(function(e){e.code===e.NOT_FOUND_ERR?n():b()}))}),b)}),b)):void b())},y=w.prototype,m=function(e,t,n){return new w(e,t,n)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return n||(e=p(e)),navigator.msSaveOrOpenBlob(e,t||"download")}:(y.abort=function(){var e=this;e.readyState=e.DONE,v(e,"abort")},y.readyState=y.INIT=0,y.WRITING=1,y.DONE=2,y.error=y.onwritestart=y.onprogress=y.onwrite=y.onabort=y.onerror=y.onwriteend=null,m)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!="function"&&null!==__webpack_require__(1125)&&null!=__webpack_require__(463)&&!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function(){return saveAs}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initialState; }); +/* harmony export (immutable) */ __webpack_exports__["b"] = routerReducer; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(135); + +var initialState = { + path: '' +}; +function routerReducer(state, action) { + if (state === void 0) { state = initialState; } + switch (action.type) { + case __WEBPACK_IMPORTED_MODULE_0__actions__["f" /* routerActions */].UPDATE_LOCATION: + return action.payload; + default: + return state; + } +} +//# sourceMappingURL=reducer.js.map /***/ }), -/* 670 */ +/* 613 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["c"] = setupRouterStore; +/* harmony export (immutable) */ __webpack_exports__["b"] = provideRouterConnector; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RouterStoreModule; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(26); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_router__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ngrx_store__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__connect__ = __webpack_require__(614); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + +function setupRouterStore(router, location, dispatcher, store) { + return function () { + __WEBPACK_IMPORTED_MODULE_4__connect__["b" /* listenForRouterMethodActions */](router, location, dispatcher); + __WEBPACK_IMPORTED_MODULE_4__connect__["a" /* connectRouterActions */](router, store); + __WEBPACK_IMPORTED_MODULE_4__connect__["c" /* listenForStoreChanges */](router, store); + }; +} +function provideRouterConnector() { + return { + provide: __WEBPACK_IMPORTED_MODULE_0__angular_core__["APP_BOOTSTRAP_LISTENER"], + deps: [__WEBPACK_IMPORTED_MODULE_2__angular_router__["Router"], __WEBPACK_IMPORTED_MODULE_1__angular_common__["Location"], __WEBPACK_IMPORTED_MODULE_3__ngrx_store__["Dispatcher"], __WEBPACK_IMPORTED_MODULE_3__ngrx_store__["Store"]], + useFactory: setupRouterStore, + multi: true + }; +} +var RouterStoreModule = RouterStoreModule_1 = (function () { + function RouterStoreModule() { + } + RouterStoreModule.connectRouter = function () { + return { + ngModule: RouterStoreModule_1, + providers: [ + provideRouterConnector() + ] + }; + }; + return RouterStoreModule; +}()); +RouterStoreModule = RouterStoreModule_1 = __decorate([ + __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"]({}) +], RouterStoreModule); + +var RouterStoreModule_1; +//# sourceMappingURL=router-store-module.js.map + +/***/ }), +/* 614 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["b"] = listenForRouterMethodActions; +/* unused harmony export selectRouter */ +/* unused harmony export getLatestUrl */ +/* harmony export (immutable) */ __webpack_exports__["a"] = connectRouterActions; +/* harmony export (immutable) */ __webpack_exports__["c"] = listenForStoreChanges; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_router__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__ = __webpack_require__(45); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_withLatestFrom__ = __webpack_require__(97); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_withLatestFrom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_withLatestFrom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ngrx_core__ = __webpack_require__(127); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions__ = __webpack_require__(135); + + + + + + +function listenForRouterMethodActions(router, location, actions$) { + __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__["filter"].call(actions$, function (action) { return __WEBPACK_IMPORTED_MODULE_5__actions__["e" /* routerActionTypes */].indexOf(action.type) > -1; }) + .subscribe(function (action) { + var _a = action.payload, path = _a.path, queryParams = _a.query, _b = _a.extras, extras = _b === void 0 ? {} : _b; + var commands = Array.isArray(path) ? path : [path]; + switch (action.type) { + case __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].GO: + router.navigate(commands, Object.assign({}, extras, { queryParams: queryParams })); + break; + case __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].REPLACE: + router.navigate(commands, Object.assign({}, extras, { queryParams: queryParams, replaceUrl: true })); + break; + case __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].SEARCH: + var urlTree = router.parseUrl(router.url); + urlTree.queryParams = queryParams; + router.navigateByUrl(urlTree, extras); + break; + case __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].SHOW: + router.navigate(commands, Object.assign({}, extras, { queryParams: queryParams, skipLocationChange: true })); + break; + case __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].BACK: + location.back(); + break; + case __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].FORWARD: + location.forward(); + break; + } + }); +} +function selectRouter(store) { + return __WEBPACK_IMPORTED_MODULE_4__ngrx_core__["select"].call(store, function (state) { return state.router; }); +} +function getLatestUrl(router) { + var navigationEnd$ = __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__["filter"].call(router.events, function (event) { return event instanceof __WEBPACK_IMPORTED_MODULE_0__angular_router__["NavigationEnd"]; }); + var navigationEndUrl$ = __WEBPACK_IMPORTED_MODULE_4__ngrx_core__["select"].call(navigationEnd$, function () { return router.url; }); + return navigationEndUrl$; +} +function connectRouterActions(router, store) { + var routerAndStore$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_withLatestFrom__["withLatestFrom"].call(getLatestUrl(router), selectRouter(store)); + var mismatchUrl$ = __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__["filter"].call(routerAndStore$, function (_a) { + var url = _a[0], rs = _a[1]; + return (rs && rs.path !== url || !rs); + }); + var updateLocation$ = __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__["map"].call(mismatchUrl$, function (_a) { + var path = _a[0]; + return { type: __WEBPACK_IMPORTED_MODULE_5__actions__["f" /* routerActions */].UPDATE_LOCATION, payload: { path: path } }; + }); + updateLocation$.subscribe(store); +} +function listenForStoreChanges(router, store) { + var storeAndRouter$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_withLatestFrom__["withLatestFrom"].call(selectRouter(store), getLatestUrl(router)); + var mismatch$ = __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__["filter"].call(storeAndRouter$, function (_a) { + var rs = _a[0], url = _a[1]; + return rs.path !== url; + }); + var newPath$ = __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__["map"].call(mismatch$, function (_a) { + var rs = _a[0]; + return rs.path; + }); + newPath$.subscribe(function (url) { return router.navigateByUrl(url); }); +} +//# sourceMappingURL=connect.js.map + +/***/ }), +/* 615 */ /***/ (function(module, exports) { module.exports = "
\r\n

\r\n \r\n {{ name$ | async }}\r\n

\r\n
\r\nTo be done..."; /***/ }), -/* 671 */ +/* 616 */ /***/ (function(module, exports) { -module.exports = "\r\n"; +module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n" /***/ }), -/* 672 */ +/* 617 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var add_on_component_1 = __webpack_require__(230); +exports.addOnRoutes = [ + { + path: 'add-on/:name', + component: add_on_component_1.AddOnComponent + } +]; + + +/***/ }), +/* 618 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var keyboard_slider_component_1 = __webpack_require__(619); +exports.KeyboardSliderComponent = keyboard_slider_component_1.KeyboardSliderComponent; + + +/***/ }), +/* 619 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var KeyboardSliderComponent = (function () { + function KeyboardSliderComponent() { + this.keyClick = new core_1.EventEmitter(); + this.keyHover = new core_1.EventEmitter(); + this.capture = new core_1.EventEmitter(); + } + KeyboardSliderComponent.prototype.ngOnChanges = function (changes) { + if (changes['layers']) { + this.layerAnimationState = this.layers.map(function () { return 'leftOut'; }); + this.layerAnimationState[this.currentLayer] = 'leftIn'; + } + var layerChange = changes['currentLayer']; + if (layerChange) { + var prevValue = layerChange.isFirstChange() ? layerChange.currentValue : layerChange.previousValue; + this.onLayerChange(prevValue, layerChange.currentValue); + } + }; + KeyboardSliderComponent.prototype.trackKeyboard = function (index) { + return index; + }; + KeyboardSliderComponent.prototype.onLayerChange = function (oldIndex, index) { + if (index > oldIndex) { + this.layerAnimationState[oldIndex] = 'leftOut'; + this.layerAnimationState[index] = 'leftIn'; + } + else { + this.layerAnimationState[oldIndex] = 'rightOut'; + this.layerAnimationState[index] = 'rightIn'; + } + }; + return KeyboardSliderComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Array) +], KeyboardSliderComponent.prototype, "layers", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], KeyboardSliderComponent.prototype, "currentLayer", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], KeyboardSliderComponent.prototype, "keybindAnimationEnabled", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], KeyboardSliderComponent.prototype, "capturingEnabled", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], KeyboardSliderComponent.prototype, "halvesSplit", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], KeyboardSliderComponent.prototype, "selectedKey", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], KeyboardSliderComponent.prototype, "keyClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], KeyboardSliderComponent.prototype, "keyHover", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], KeyboardSliderComponent.prototype, "capture", void 0); +KeyboardSliderComponent = __decorate([ + core_1.Component({ + selector: 'keyboard-slider', + template: __webpack_require__(620), + styles: [__webpack_require__(621)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush, + // We use 101%, because there was still a trace of the keyboard in the screen when animation was done + animations: [ + animations_1.trigger('layerState', [ + animations_1.state('leftIn, rightIn', animations_1.style({ + transform: 'translateX(-50%)', + left: '50%' + })), + animations_1.state('leftOut', animations_1.style({ + transform: 'translateX(-101%)', + left: '0' + })), + animations_1.state('rightOut', animations_1.style({ + transform: 'translateX(0)', + left: '101%' + })), + animations_1.transition('leftOut => leftIn, rightOut => leftIn', [ + animations_1.animate('400ms ease-out', animations_1.keyframes([ + animations_1.style({ transform: 'translateX(0%)', left: '101%', offset: 0 }), + animations_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 1 }) + ])) + ]), + animations_1.transition('leftIn => leftOut, rightIn => leftOut', [ + animations_1.animate('400ms ease-out', animations_1.keyframes([ + animations_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }), + animations_1.style({ transform: 'translateX(-101%)', left: '0%', offset: 1 }) + ])) + ]), + animations_1.transition('* => rightIn', [ + animations_1.animate('400ms ease-out', animations_1.keyframes([ + animations_1.style({ transform: 'translateX(-101%)', left: '0%', offset: 0 }), + animations_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 1 }) + ])) + ]), + animations_1.transition('* => rightOut', [ + animations_1.animate('400ms ease-out', animations_1.keyframes([ + animations_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }), + animations_1.style({ transform: 'translateX(0%)', left: '101%', offset: 1 }) + ])) + ]), + animations_1.transition(':leave', [ + animations_1.animate('2000ms ease-out', animations_1.keyframes([ + animations_1.style({ opacity: 1, offset: 0 }), + animations_1.style({ opacity: 0, offset: 1 }) + ])) + ]) + ]) + ] + }) +], KeyboardSliderComponent); +exports.KeyboardSliderComponent = KeyboardSliderComponent; + + +/***/ }), +/* 620 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n"; + +/***/ }), +/* 621 */ +/***/ (function(module, exports) { + +module.exports = "svg-keyboard {\n width: 95%;\n max-width: 1400px;\n position: absolute;\n left: 0;\n transform: translateX(-101%);\n user-select: none; }\n" + +/***/ }), +/* 622 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(231)); +__export(__webpack_require__(233)); +__export(__webpack_require__(646)); + + +/***/ }), +/* 623 */ /***/ (function(module, exports) { module.exports = "

\r\n \r\n Add new keymap\r\n

\r\n\r\n
\r\n
\r\n

{{ keymap.name }}

\r\n

\r\n {{ keymap.description }}\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Sorry, no keyboard found under this search query.\r\n
"; /***/ }), -/* 673 */ +/* 624 */ /***/ (function(module, exports) { -module.exports = "\r\n\r\n
\r\n Sorry, there is no keymap with this abbreviation.\r\n
"; +module.exports = ":host {\n overflow-y: auto;\n display: block;\n height: 100%; }\n\n.uhk__layer-switcher--wrapper {\n position: relative; }\n .uhk__layer-switcher--wrapper:before {\n content: attr(data-title);\n display: inline-block;\n position: absolute;\n bottom: -0.3em;\n right: 100%;\n font-size: 2.4rem;\n padding-right: 0.25em;\n margin: 0; }\n\n.keymap__search {\n margin-top: 10px; }\n .keymap__search .input-group {\n width: 100%;\n max-width: 350px;\n float: left; }\n .keymap__search_amount {\n float: left;\n margin: 7px 0 0 20px; }\n\n.keymap__description {\n margin-bottom: 20px; }\n\n.keymap__list {\n margin-top: 40px; }\n .keymap__list_item {\n margin-bottom: 50px; }\n .keymap__list .btn-group-lg {\n margin: 30px 0 0;\n width: 100%;\n text-align: center; }\n .keymap__list .btn-group-lg .btn {\n float: none;\n padding-left: 50px;\n padding-right: 50px; }\n" /***/ }), -/* 674 */ +/* 625 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ +var saveAs=saveAs||function(e){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in o,i=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},a=e.webkitRequestFileSystem,c=e.requestFileSystem||a||e.mozRequestFileSystem,u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},f="application/octet-stream",s=0,d=500,l=function(t){var o=function(){"string"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,d)},v=function(e,t,n){t=[].concat(t);for(var o=t.length;o--;){var r=e["on"+t[o]];if("function"==typeof r)try{r.call(e,n||e)}catch(i){u(i)}}},p=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["",e],{type:e.type}):e},w=function(t,u,d){d||(t=p(t));var w,y,m,S=this,h=t.type,O=!1,R=function(){v(S,"writestart progress write writeend".split(" "))},b=function(){if((O||!w)&&(w=n().createObjectURL(t)),y)y.location.href=w;else{var o=e.open(w,"_blank");void 0==o&&"undefined"!=typeof safari&&(e.location.href=w)}S.readyState=S.DONE,R(),l(w)},g=function(e){return function(){return S.readyState!==S.DONE?e.apply(this,arguments):void 0}},E={create:!0,exclusive:!1};return S.readyState=S.INIT,u||(u="download"),r?(w=n().createObjectURL(t),o.href=w,o.download=u,void setTimeout(function(){i(o),R(),l(w),S.readyState=S.DONE})):(e.chrome&&h&&h!==f&&(m=t.slice||t.webkitSlice,t=m.call(t,0,t.size,f),O=!0),a&&"download"!==u&&(u+=".download"),(h===f||a)&&(y=e),c?(s+=t.size,void c(e.TEMPORARY,s,g(function(e){e.root.getDirectory("saved",E,g(function(e){var n=function(){e.getFile(u,E,g(function(e){e.createWriter(g(function(n){n.onwriteend=function(t){y.location.href=e.toURL(),S.readyState=S.DONE,v(S,"writeend",t),l(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&b()},"writestart progress write abort".split(" ").forEach(function(e){n["on"+e]=S["on"+e]}),n.write(t),S.abort=function(){n.abort(),S.readyState=S.DONE},S.readyState=S.WRITING}),b)}),b)};e.getFile(u,{create:!1},g(function(e){e.remove(),n()}),g(function(e){e.code===e.NOT_FOUND_ERR?n():b()}))}),b)}),b)):void b())},y=w.prototype,m=function(e,t,n){return new w(e,t,n)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return n||(e=p(e)),navigator.msSaveOrOpenBlob(e,t||"download")}:(y.abort=function(){var e=this;e.readyState=e.DONE,v(e,"abort")},y.readyState=y.INIT=0,y.WRITING=1,y.DONE=2,y.error=y.onwritestart=y.onprogress=y.onwrite=y.onabort=y.onerror=y.onwriteend=null,m)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!="function"&&null!==__webpack_require__(626)&&null!=__webpack_require__(214)&&!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function(){return saveAs}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + +/***/ }), +/* 626 */ /***/ (function(module, exports) { -module.exports = "
\r\n

\r\n \r\n keymap\r\n ()\r\n \r\n \r\n \r\n \r\n

\r\n
"; +module.exports = function() { + throw new Error("define cannot be used indirect"); +}; + /***/ }), -/* 675 */ +/* 627 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var long_press_action_1 = __webpack_require__(235); +var key_action_1 = __webpack_require__(47); +var keystroke_type_1 = __webpack_require__(98); +var KeystrokeActionFlag; +(function (KeystrokeActionFlag) { + KeystrokeActionFlag[KeystrokeActionFlag["scancode"] = 1] = "scancode"; + KeystrokeActionFlag[KeystrokeActionFlag["modifierMask"] = 2] = "modifierMask"; + KeystrokeActionFlag[KeystrokeActionFlag["longPressAction"] = 4] = "longPressAction"; +})(KeystrokeActionFlag = exports.KeystrokeActionFlag || (exports.KeystrokeActionFlag = {})); +var KEYSTROKE_ACTION_FLAG_LENGTH = 3; +var MODIFIERS = ['LCtrl', 'LShift', 'LAlt', 'LSuper', 'RCtrl', 'RShift', 'RAlt', 'RSuper']; +var KeystrokeAction = (function (_super) { + __extends(KeystrokeAction, _super); + function KeystrokeAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.type = other.type; + _this._scancode = other._scancode; + _this.modifierMask = other.modifierMask; + _this.longPressAction = other.longPressAction; + return _this; + } + Object.defineProperty(KeystrokeAction.prototype, "scancode", { + get: function () { + return this._scancode; + }, + set: function (scancode) { + this._scancode = scancode; + if (this.type !== keystroke_type_1.KeystrokeType.shortMedia && this.type !== keystroke_type_1.KeystrokeType.longMedia) { + return; + } + this.type = scancode < 256 ? keystroke_type_1.KeystrokeType.shortMedia : keystroke_type_1.KeystrokeType.longMedia; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(KeystrokeAction.prototype, "type", { + get: function () { + return this._type; + }, + set: function (type) { + if (type === keystroke_type_1.KeystrokeType.shortMedia || type === keystroke_type_1.KeystrokeType.longMedia) { + type = this.scancode < 256 ? keystroke_type_1.KeystrokeType.shortMedia : keystroke_type_1.KeystrokeType.longMedia; + } + this._type = type; + }, + enumerable: true, + configurable: true + }); + KeystrokeAction.prototype.fromJsonObject = function (jsonObject) { + this.assertKeyActionType(jsonObject); + if (jsonObject.type === 'media') { + this.type = jsonObject.scancode < 256 ? keystroke_type_1.KeystrokeType.shortMedia : keystroke_type_1.KeystrokeType.longMedia; + } + else { + this.type = keystroke_type_1.KeystrokeType[jsonObject.type]; + } + this._scancode = jsonObject.scancode; + this.modifierMask = jsonObject.modifierMask; + this.longPressAction = long_press_action_1.LongPressAction[jsonObject.longPressAction]; + return this; + }; + KeystrokeAction.prototype.fromBinary = function (buffer) { + var keyActionId = this.readAndAssertKeyActionId(buffer); + var flags = keyActionId - key_action_1.KeyActionId.NoneAction; // NoneAction is the same as an empty KeystrokeAction. + this.type = (flags >> 3) & 3; + if (flags & KeystrokeActionFlag.scancode) { + this._scancode = this.type === keystroke_type_1.KeystrokeType.longMedia ? buffer.readUInt16() : buffer.readUInt8(); + } + if (flags & KeystrokeActionFlag.modifierMask) { + this.modifierMask = buffer.readUInt8(); + } + if (flags & KeystrokeActionFlag.longPressAction) { + this.longPressAction = buffer.readUInt8(); + } + return this; + }; + KeystrokeAction.prototype.toJsonObject = function () { + var jsonObject = { + keyActionType: key_action_1.keyActionType.KeystrokeAction + }; + if (this.type === keystroke_type_1.KeystrokeType.shortMedia || this.type === keystroke_type_1.KeystrokeType.longMedia) { + jsonObject.type = 'media'; + } + else { + jsonObject.type = keystroke_type_1.KeystrokeType[this.type]; + } + if (this.hasScancode()) { + jsonObject.scancode = this._scancode; + } + if (this.hasActiveModifier()) { + jsonObject.modifierMask = this.modifierMask; + } + if (this.hasLongPressAction()) { + jsonObject.longPressAction = long_press_action_1.LongPressAction[this.longPressAction]; + } + return jsonObject; + }; + KeystrokeAction.prototype.toBinary = function (buffer) { + var flags = 0; + var toWrite = []; + if (this.hasScancode()) { + flags |= KeystrokeActionFlag.scancode; + toWrite.push({ data: this._scancode, long: this.type === keystroke_type_1.KeystrokeType.longMedia }); + } + if (this.hasActiveModifier()) { + flags |= KeystrokeActionFlag.modifierMask; + toWrite.push({ data: this.modifierMask, long: false }); + } + if (this.hasLongPressAction()) { + flags |= KeystrokeActionFlag.longPressAction; + toWrite.push({ data: this.longPressAction, long: false }); + } + var TYPE_OFFSET = flags + (this.type << KEYSTROKE_ACTION_FLAG_LENGTH); + buffer.writeUInt8(key_action_1.KeyActionId.NoneAction + TYPE_OFFSET); // NoneAction is the same as an empty KeystrokeAction. + for (var i = 0; i < toWrite.length; ++i) { + if (toWrite[i].long) { + buffer.writeUInt16(toWrite[i].data); + } + else { + buffer.writeUInt8(toWrite[i].data); + } + } + }; + KeystrokeAction.prototype.toString = function () { + var properties = []; + properties.push("type=\"" + keystroke_type_1.KeystrokeType[this.type] + "\""); + if (this.hasScancode()) { + properties.push("scancode=\"" + this._scancode + "\""); + } + if (this.hasActiveModifier()) { + properties.push("modifierMask=\"" + this.modifierMask + "\""); + } + if (this.hasLongPressAction()) { + properties.push("longPressAction=\"" + this.longPressAction + "\""); + } + return ""; + }; + KeystrokeAction.prototype.isActive = function (modifier) { + return (this.modifierMask & modifier) > 0; + }; + KeystrokeAction.prototype.hasActiveModifier = function () { + return this.modifierMask > 0; + }; + KeystrokeAction.prototype.hasLongPressAction = function () { + return this.longPressAction !== undefined; + }; + KeystrokeAction.prototype.hasScancode = function () { + return !!this._scancode; + }; + KeystrokeAction.prototype.hasOnlyOneActiveModifier = function () { + return this.modifierMask !== 0 && !(this.modifierMask & this.modifierMask - 1); + }; + KeystrokeAction.prototype.getModifierList = function () { + var modifierList = []; + var modifierMask = this.modifierMask; + for (var i = 0; modifierMask !== 0; ++i, modifierMask >>= 1) { + if (modifierMask & 1) { + modifierList.push(MODIFIERS[i]); + } + } + return modifierList; + }; + return KeystrokeAction; +}(key_action_1.KeyAction)); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], KeystrokeAction.prototype, "modifierMask", void 0); +__decorate([ + assert_1.assertEnum(long_press_action_1.LongPressAction), + __metadata("design:type", Number) +], KeystrokeAction.prototype, "longPressAction", void 0); +__decorate([ + assert_1.assertEnum(keystroke_type_1.KeystrokeType), + __metadata("design:type", Number) +], KeystrokeAction.prototype, "_type", void 0); +exports.KeystrokeAction = KeystrokeAction; + + +/***/ }), +/* 628 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var key_action_1 = __webpack_require__(47); +var MouseActionParam; +(function (MouseActionParam) { + MouseActionParam[MouseActionParam["leftClick"] = 0] = "leftClick"; + MouseActionParam[MouseActionParam["middleClick"] = 1] = "middleClick"; + MouseActionParam[MouseActionParam["rightClick"] = 2] = "rightClick"; + MouseActionParam[MouseActionParam["moveUp"] = 3] = "moveUp"; + MouseActionParam[MouseActionParam["moveDown"] = 4] = "moveDown"; + MouseActionParam[MouseActionParam["moveLeft"] = 5] = "moveLeft"; + MouseActionParam[MouseActionParam["moveRight"] = 6] = "moveRight"; + MouseActionParam[MouseActionParam["scrollUp"] = 7] = "scrollUp"; + MouseActionParam[MouseActionParam["scrollDown"] = 8] = "scrollDown"; + MouseActionParam[MouseActionParam["scrollLeft"] = 9] = "scrollLeft"; + MouseActionParam[MouseActionParam["scrollRight"] = 10] = "scrollRight"; + MouseActionParam[MouseActionParam["accelerate"] = 11] = "accelerate"; + MouseActionParam[MouseActionParam["decelerate"] = 12] = "decelerate"; +})(MouseActionParam = exports.MouseActionParam || (exports.MouseActionParam = {})); +var MouseAction = (function (_super) { + __extends(MouseAction, _super); + function MouseAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.mouseAction = other.mouseAction; + return _this; + } + MouseAction.prototype.fromJsonObject = function (jsObject) { + this.assertKeyActionType(jsObject); + this.mouseAction = MouseActionParam[jsObject.mouseAction]; + return this; + }; + MouseAction.prototype.fromBinary = function (buffer) { + this.readAndAssertKeyActionId(buffer); + this.mouseAction = buffer.readUInt8(); + return this; + }; + MouseAction.prototype.toJsonObject = function () { + return { + keyActionType: key_action_1.keyActionType.MouseAction, + mouseAction: MouseActionParam[this.mouseAction] + }; + }; + MouseAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(key_action_1.KeyActionId.MouseAction); + buffer.writeUInt8(this.mouseAction); + }; + MouseAction.prototype.toString = function () { + return ""; + }; + return MouseAction; +}(key_action_1.KeyAction)); +__decorate([ + assert_1.assertEnum(MouseActionParam), + __metadata("design:type", Number) +], MouseAction.prototype, "mouseAction", void 0); +exports.MouseAction = MouseAction; + + +/***/ }), +/* 629 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var key_action_1 = __webpack_require__(47); +/** + * NoneAction is only intended for binary serialization of undefined key actions + * DO NOT use it as a real KeyAction + * + */ +var NoneAction = (function (_super) { + __extends(NoneAction, _super); + function NoneAction() { + return _super !== null && _super.apply(this, arguments) || this; + } + NoneAction.prototype.fromJsonObject = function (jsonObject) { + this.assertKeyActionType(jsonObject); + return this; + }; + NoneAction.prototype.fromBinary = function (buffer) { + this.readAndAssertKeyActionId(buffer); + return this; + }; + NoneAction.prototype.toJsonObject = function () { + return { + keyActionType: key_action_1.keyActionType.NoneAction + }; + }; + NoneAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(key_action_1.KeyActionId.NoneAction); + }; + NoneAction.prototype.toString = function () { + return ''; + }; + return NoneAction; +}(key_action_1.KeyAction)); +exports.NoneAction = NoneAction; + + +/***/ }), +/* 630 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var key_action_1 = __webpack_require__(47); +var PlayMacroAction = (function (_super) { + __extends(PlayMacroAction, _super); + function PlayMacroAction(parameter) { + var _this = _super.call(this) || this; + if (!parameter) { + return _this; + } + if (parameter instanceof PlayMacroAction) { + _this.macroId = parameter.macroId; + } + else { + _this.macroId = parameter.id; + } + return _this; + } + PlayMacroAction.prototype.fromJsonObject = function (jsonObject, macros) { + this.assertKeyActionType(jsonObject); + this.macroId = macros[jsonObject.macroIndex].id; + return this; + }; + PlayMacroAction.prototype.fromBinary = function (buffer, macros) { + this.readAndAssertKeyActionId(buffer); + var macroIndex = buffer.readUInt8(); + this.macroId = macros[macroIndex].id; + return this; + }; + PlayMacroAction.prototype.toJsonObject = function (macros) { + var _this = this; + return { + keyActionType: key_action_1.keyActionType.PlayMacroAction, + macroIndex: macros.findIndex(function (macro) { return macro.id === _this.macroId; }) + }; + }; + PlayMacroAction.prototype.toBinary = function (buffer, macros) { + var _this = this; + buffer.writeUInt8(key_action_1.KeyActionId.PlayMacroAction); + buffer.writeUInt8(macros.findIndex(function (macro) { return macro.id === _this.macroId; })); + }; + PlayMacroAction.prototype.toString = function () { + return ""; + }; + return PlayMacroAction; +}(key_action_1.KeyAction)); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], PlayMacroAction.prototype, "macroId", void 0); +exports.PlayMacroAction = PlayMacroAction; + + +/***/ }), +/* 631 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var keymap_1 = __webpack_require__(48); +var key_action_1 = __webpack_require__(47); +var SwitchKeymapAction = (function (_super) { + __extends(SwitchKeymapAction, _super); + function SwitchKeymapAction(parameter) { + var _this = _super.call(this) || this; + if (!parameter) { + return _this; + } + if (parameter instanceof SwitchKeymapAction) { + _this.keymapAbbreviation = parameter.keymapAbbreviation; + } + else if (parameter instanceof keymap_1.Keymap) { + _this.keymapAbbreviation = parameter.abbreviation; + } + else { + _this.keymapAbbreviation = parameter; + } + return _this; + } + SwitchKeymapAction.prototype.fromJsonObject = function (jsonObject) { + this.assertKeyActionType(jsonObject); + this.keymapAbbreviation = jsonObject.keymapAbbreviation; + return this; + }; + SwitchKeymapAction.prototype.fromBinary = function (buffer) { + this.readAndAssertKeyActionId(buffer); + this.keymapAbbreviation = buffer.readString(); + return this; + }; + SwitchKeymapAction.prototype.toJsonObject = function () { + return { + keyActionType: key_action_1.keyActionType.SwitchKeymapAction, + keymapAbbreviation: this.keymapAbbreviation + }; + }; + SwitchKeymapAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(key_action_1.KeyActionId.SwitchKeymapAction); + buffer.writeString(this.keymapAbbreviation); + }; + SwitchKeymapAction.prototype.toString = function () { + return ""; + }; + SwitchKeymapAction.prototype.renameKeymap = function (oldAbbr, newAbbr) { + if (this.keymapAbbreviation !== oldAbbr) { + return this; + } + return new SwitchKeymapAction(newAbbr); + }; + return SwitchKeymapAction; +}(key_action_1.KeyAction)); +exports.SwitchKeymapAction = SwitchKeymapAction; + + +/***/ }), +/* 632 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var key_action_1 = __webpack_require__(47); +var LayerName; +(function (LayerName) { + LayerName[LayerName["mod"] = 0] = "mod"; + LayerName[LayerName["fn"] = 1] = "fn"; + LayerName[LayerName["mouse"] = 2] = "mouse"; +})(LayerName = exports.LayerName || (exports.LayerName = {})); +var SwitchLayerAction = (function (_super) { + __extends(SwitchLayerAction, _super); + function SwitchLayerAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.isLayerToggleable = other.isLayerToggleable; + _this.layer = other.layer; + return _this; + } + SwitchLayerAction.prototype.fromJsonObject = function (jsonObject) { + this.assertKeyActionType(jsonObject); + this.layer = LayerName[jsonObject.layer]; + this.isLayerToggleable = jsonObject.toggle; + return this; + }; + SwitchLayerAction.prototype.fromBinary = function (buffer) { + this.readAndAssertKeyActionId(buffer); + this.layer = buffer.readUInt8(); + this.isLayerToggleable = buffer.readBoolean(); + return this; + }; + SwitchLayerAction.prototype.toJsonObject = function () { + return { + keyActionType: key_action_1.keyActionType.SwitchLayerAction, + layer: LayerName[this.layer], + toggle: this.isLayerToggleable + }; + }; + SwitchLayerAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(key_action_1.KeyActionId.SwitchLayerAction); + buffer.writeUInt8(this.layer); + buffer.writeBoolean(this.isLayerToggleable); + }; + SwitchLayerAction.prototype.toString = function () { + return ""; + }; + return SwitchLayerAction; +}(key_action_1.KeyAction)); +__decorate([ + assert_1.assertEnum(LayerName), + __metadata("design:type", Number) +], SwitchLayerAction.prototype, "layer", void 0); +exports.SwitchLayerAction = SwitchLayerAction; + + +/***/ }), +/* 633 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var uhk_buffer_1 = __webpack_require__(238); +var index_1 = __webpack_require__(14); +var Helper = (function () { + function Helper() { + } + Helper.createKeyAction = function (source, macros) { + if (source instanceof index_1.KeyAction) { + return Helper.fromKeyAction(source); + } + else if (source instanceof uhk_buffer_1.UhkBuffer) { + return Helper.fromUhkBuffer(source, macros); + } + else { + return Helper.fromJSONObject(source, macros); + } + }; + Helper.fromUhkBuffer = function (buffer, macros) { + var keyActionFirstByte = buffer.readUInt8(); + buffer.backtrack(); + if (keyActionFirstByte >= index_1.KeyActionId.KeystrokeAction && keyActionFirstByte < index_1.KeyActionId.LastKeystrokeAction) { + return new index_1.KeystrokeAction().fromBinary(buffer); + } + switch (keyActionFirstByte) { + case index_1.KeyActionId.NoneAction: + buffer.readUInt8(); // Read type just to skip it + return undefined; + case index_1.KeyActionId.SwitchLayerAction: + return new index_1.SwitchLayerAction().fromBinary(buffer); + case index_1.KeyActionId.SwitchKeymapAction: + return new index_1.SwitchKeymapAction().fromBinary(buffer); + case index_1.KeyActionId.MouseAction: + return new index_1.MouseAction().fromBinary(buffer); + case index_1.KeyActionId.PlayMacroAction: + return new index_1.PlayMacroAction().fromBinary(buffer, macros); + default: + throw "Invalid KeyAction first byte: " + keyActionFirstByte; + } + }; + Helper.fromKeyAction = function (keyAction) { + var newKeyAction; + if (keyAction instanceof index_1.KeystrokeAction) { + newKeyAction = new index_1.KeystrokeAction(keyAction); + } + else if (keyAction instanceof index_1.SwitchLayerAction) { + newKeyAction = new index_1.SwitchLayerAction(keyAction); + } + else if (keyAction instanceof index_1.SwitchKeymapAction) { + newKeyAction = new index_1.SwitchKeymapAction(keyAction); + } + else if (keyAction instanceof index_1.MouseAction) { + newKeyAction = new index_1.MouseAction(keyAction); + } + else if (keyAction instanceof index_1.PlayMacroAction) { + newKeyAction = new index_1.PlayMacroAction(keyAction); + } + return newKeyAction; + }; + Helper.fromJSONObject = function (keyAction, macros) { + if (!keyAction) { + return; + } + switch (keyAction.keyActionType) { + case index_1.keyActionType.KeystrokeAction: + return new index_1.KeystrokeAction().fromJsonObject(keyAction); + case index_1.keyActionType.SwitchLayerAction: + return new index_1.SwitchLayerAction().fromJsonObject(keyAction); + case index_1.keyActionType.SwitchKeymapAction: + return new index_1.SwitchKeymapAction().fromJsonObject(keyAction); + case index_1.keyActionType.MouseAction: + return new index_1.MouseAction().fromJsonObject(keyAction); + case index_1.keyActionType.PlayMacroAction: + return new index_1.PlayMacroAction().fromJsonObject(keyAction, macros); + default: + throw "Invalid KeyAction.keyActionType: \"" + keyAction.keyActionType + "\""; + } + }; + return Helper; +}()); +exports.Helper = Helper; + + +/***/ }), +/* 634 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var macro_action_1 = __webpack_require__(49); +var DelayMacroAction = (function (_super) { + __extends(DelayMacroAction, _super); + function DelayMacroAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.delay = other.delay; + return _this; + } + DelayMacroAction.prototype.fromJsonObject = function (jsObject) { + this.assertMacroActionType(jsObject); + this.delay = jsObject.delay; + return this; + }; + DelayMacroAction.prototype.fromBinary = function (buffer) { + this.readAndAssertMacroActionId(buffer); + this.delay = buffer.readUInt16(); + return this; + }; + DelayMacroAction.prototype.toJsonObject = function () { + return { + macroActionType: macro_action_1.macroActionType.DelayMacroAction, + delay: this.delay + }; + }; + DelayMacroAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(macro_action_1.MacroActionId.DelayMacroAction); + buffer.writeUInt16(this.delay); + }; + DelayMacroAction.prototype.toString = function () { + return ""; + }; + return DelayMacroAction; +}(macro_action_1.MacroAction)); +__decorate([ + assert_1.assertUInt16, + __metadata("design:type", Number) +], DelayMacroAction.prototype, "delay", void 0); +exports.DelayMacroAction = DelayMacroAction; + + +/***/ }), +/* 635 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var macro_action_1 = __webpack_require__(49); +var keystroke_type_1 = __webpack_require__(98); +var KeyMacroAction = (function (_super) { + __extends(KeyMacroAction, _super); + function KeyMacroAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.action = other.action; + _this.type = other.type; + _this.scancode = other.scancode; + _this.modifierMask = other.modifierMask; + return _this; + } + KeyMacroAction.prototype.fromJsonObject = function (jsObject) { + this.assertMacroActionType(jsObject); + this.action = macro_action_1.MacroSubAction[jsObject.action]; + if (jsObject.type === 'media') { + this.type = jsObject.scancode < 256 ? keystroke_type_1.KeystrokeType.shortMedia : keystroke_type_1.KeystrokeType.longMedia; + } + else { + this.type = keystroke_type_1.KeystrokeType[jsObject.type]; + } + this.scancode = jsObject.scancode; + this.modifierMask = jsObject.modifierMask; + return this; + }; + KeyMacroAction.prototype.fromBinary = function (buffer) { + var macroActionId = this.readAndAssertMacroActionId(buffer); + var keyMacroType = macroActionId - macro_action_1.MacroActionId.KeyMacroAction; + this.action = keyMacroType & 3; + keyMacroType >>= 2; + this.type = keyMacroType & 3; + keyMacroType >>= 2; + if (keyMacroType & 2) { + this.scancode = buffer.readUInt8(); + } + if (keyMacroType & 1) { + this.modifierMask = buffer.readUInt8(); + } + return this; + }; + KeyMacroAction.prototype.toJsonObject = function () { + var jsObject = { + macroActionType: macro_action_1.macroActionType.KeyMacroAction, + action: macro_action_1.MacroSubAction[this.action] + }; + if (this.hasScancode()) { + if (this.type === keystroke_type_1.KeystrokeType.shortMedia || this.type === keystroke_type_1.KeystrokeType.longMedia) { + jsObject.type = 'media'; + } + else { + jsObject.type = keystroke_type_1.KeystrokeType[this.type]; + } + jsObject.scancode = this.scancode; + } + if (this.hasModifiers()) { + jsObject.modifierMask = this.modifierMask; + } + return jsObject; + }; + KeyMacroAction.prototype.toBinary = function (buffer) { + var TYPE_OFFSET = 0; + TYPE_OFFSET |= this.action; + TYPE_OFFSET |= this.type << 2; + TYPE_OFFSET |= ((this.hasScancode() ? 2 : 0) + (this.hasModifiers() ? 1 : 0)) << 4; + var keyMacroType = macro_action_1.MacroActionId.KeyMacroAction + TYPE_OFFSET; + buffer.writeUInt8(keyMacroType); + if (this.hasScancode()) { + buffer.writeUInt8(this.scancode); + } + if (this.hasModifiers()) { + buffer.writeUInt8(this.modifierMask); + } + }; + KeyMacroAction.prototype.toString = function () { + return ""; + }; + KeyMacroAction.prototype.isModifierActive = function (modifier) { + return (this.modifierMask & modifier) > 0; + }; + KeyMacroAction.prototype.hasScancode = function () { + return !!this.scancode; + }; + KeyMacroAction.prototype.hasModifiers = function () { + return !!this.modifierMask; + }; + KeyMacroAction.prototype.isHoldAction = function () { + return this.action === macro_action_1.MacroSubAction.hold; + }; + KeyMacroAction.prototype.isPressAction = function () { + return this.action === macro_action_1.MacroSubAction.press; + }; + KeyMacroAction.prototype.isReleaseAction = function () { + return this.action === macro_action_1.MacroSubAction.release; + }; + return KeyMacroAction; +}(macro_action_1.MacroAction)); +__decorate([ + assert_1.assertEnum(macro_action_1.MacroSubAction), + __metadata("design:type", Number) +], KeyMacroAction.prototype, "action", void 0); +__decorate([ + assert_1.assertEnum(keystroke_type_1.KeystrokeType), + __metadata("design:type", Number) +], KeyMacroAction.prototype, "type", void 0); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], KeyMacroAction.prototype, "scancode", void 0); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], KeyMacroAction.prototype, "modifierMask", void 0); +exports.KeyMacroAction = KeyMacroAction; + + +/***/ }), +/* 636 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var macro_action_1 = __webpack_require__(49); +var MoveMouseMacroAction = (function (_super) { + __extends(MoveMouseMacroAction, _super); + function MoveMouseMacroAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.x = other.x; + _this.y = other.y; + return _this; + } + MoveMouseMacroAction.prototype.fromJsonObject = function (jsObject) { + this.assertMacroActionType(jsObject); + this.x = jsObject.x; + this.y = jsObject.y; + return this; + }; + MoveMouseMacroAction.prototype.fromBinary = function (buffer) { + this.readAndAssertMacroActionId(buffer); + this.x = buffer.readInt16(); + this.y = buffer.readInt16(); + return this; + }; + MoveMouseMacroAction.prototype.toJsonObject = function () { + return { + macroActionType: macro_action_1.macroActionType.MoveMouseMacroAction, + x: this.x, + y: this.y + }; + }; + MoveMouseMacroAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(macro_action_1.MacroActionId.MoveMouseMacroAction); + buffer.writeInt16(this.x); + buffer.writeInt16(this.y); + }; + MoveMouseMacroAction.prototype.toString = function () { + return ""; + }; + return MoveMouseMacroAction; +}(macro_action_1.MacroAction)); +__decorate([ + assert_1.assertInt16, + __metadata("design:type", Number) +], MoveMouseMacroAction.prototype, "x", void 0); +__decorate([ + assert_1.assertInt16, + __metadata("design:type", Number) +], MoveMouseMacroAction.prototype, "y", void 0); +exports.MoveMouseMacroAction = MoveMouseMacroAction; + + +/***/ }), +/* 637 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var macro_action_1 = __webpack_require__(49); +var MouseButtons; +(function (MouseButtons) { + MouseButtons[MouseButtons["Left"] = 1] = "Left"; + MouseButtons[MouseButtons["Middle"] = 2] = "Middle"; + MouseButtons[MouseButtons["Right"] = 4] = "Right"; +})(MouseButtons = exports.MouseButtons || (exports.MouseButtons = {})); +var MouseButtonMacroAction = (function (_super) { + __extends(MouseButtonMacroAction, _super); + function MouseButtonMacroAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.action = other.action; + _this.mouseButtonsMask = other.mouseButtonsMask; + return _this; + } + MouseButtonMacroAction.prototype.fromJsonObject = function (jsObject) { + this.assertMacroActionType(jsObject); + this.action = macro_action_1.MacroSubAction[jsObject.action]; + this.mouseButtonsMask = jsObject.mouseButtonsMask; + return this; + }; + MouseButtonMacroAction.prototype.fromBinary = function (buffer) { + var macroActionId = this.readAndAssertMacroActionId(buffer); + this.action = macroActionId - macro_action_1.MacroActionId.MouseButtonMacroAction; + this.mouseButtonsMask = buffer.readUInt8(); + return this; + }; + MouseButtonMacroAction.prototype.toJsonObject = function () { + return { + macroActionType: macro_action_1.macroActionType.MouseButtonMacroAction, + action: macro_action_1.MacroSubAction[this.action], + mouseButtonsMask: this.mouseButtonsMask + }; + }; + MouseButtonMacroAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(macro_action_1.MacroActionId.MouseButtonMacroAction + this.action); + buffer.writeUInt8(this.mouseButtonsMask); + }; + MouseButtonMacroAction.prototype.setMouseButtons = function (buttonStates) { + var bitmask = 0; + for (var i = 0; i < buttonStates.length; i++) { + bitmask |= Number(buttonStates[i]) << i; + } + this.mouseButtonsMask = bitmask; + }; + MouseButtonMacroAction.prototype.getMouseButtons = function () { + var enabledMouseButtons = []; + for (var bitmask = this.mouseButtonsMask; bitmask; bitmask >>>= 1) { + enabledMouseButtons.push(Boolean(bitmask & 1)); + } + return enabledMouseButtons; + }; + MouseButtonMacroAction.prototype.toString = function () { + return ""; + }; + MouseButtonMacroAction.prototype.hasButtons = function () { + return this.mouseButtonsMask !== 0; + }; + MouseButtonMacroAction.prototype.isOnlyHoldAction = function () { + return this.action === macro_action_1.MacroSubAction.hold; + }; + MouseButtonMacroAction.prototype.isOnlyPressAction = function () { + return this.action === macro_action_1.MacroSubAction.press; + }; + MouseButtonMacroAction.prototype.isOnlyReleaseAction = function () { + return this.action === macro_action_1.MacroSubAction.release; + }; + return MouseButtonMacroAction; +}(macro_action_1.MacroAction)); +__decorate([ + assert_1.assertEnum(macro_action_1.MacroSubAction), + __metadata("design:type", Number) +], MouseButtonMacroAction.prototype, "action", void 0); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], MouseButtonMacroAction.prototype, "mouseButtonsMask", void 0); +exports.MouseButtonMacroAction = MouseButtonMacroAction; + + +/***/ }), +/* 638 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var macro_action_1 = __webpack_require__(49); +var ScrollMouseMacroAction = (function (_super) { + __extends(ScrollMouseMacroAction, _super); + function ScrollMouseMacroAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.x = other.x; + _this.y = other.y; + return _this; + } + ScrollMouseMacroAction.prototype.fromJsonObject = function (jsObject) { + this.assertMacroActionType(jsObject); + this.x = jsObject.x; + this.y = jsObject.y; + return this; + }; + ScrollMouseMacroAction.prototype.fromBinary = function (buffer) { + this.readAndAssertMacroActionId(buffer); + this.x = buffer.readInt16(); + this.y = buffer.readInt16(); + return this; + }; + ScrollMouseMacroAction.prototype.toJsonObject = function () { + return { + macroActionType: macro_action_1.macroActionType.ScrollMouseMacroAction, + x: this.x, + y: this.y + }; + }; + ScrollMouseMacroAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(macro_action_1.MacroActionId.ScrollMouseMacroAction); + buffer.writeInt16(this.x); + buffer.writeInt16(this.y); + }; + ScrollMouseMacroAction.prototype.toString = function () { + return ""; + }; + return ScrollMouseMacroAction; +}(macro_action_1.MacroAction)); +__decorate([ + assert_1.assertInt16, + __metadata("design:type", Number) +], ScrollMouseMacroAction.prototype, "x", void 0); +__decorate([ + assert_1.assertInt16, + __metadata("design:type", Number) +], ScrollMouseMacroAction.prototype, "y", void 0); +exports.ScrollMouseMacroAction = ScrollMouseMacroAction; + + +/***/ }), +/* 639 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_action_1 = __webpack_require__(49); +var TextMacroAction = (function (_super) { + __extends(TextMacroAction, _super); + function TextMacroAction(other) { + var _this = _super.call(this) || this; + if (!other) { + return _this; + } + _this.text = other.text; + return _this; + } + TextMacroAction.prototype.fromJsonObject = function (jsObject) { + this.assertMacroActionType(jsObject); + this.text = jsObject.text; + return this; + }; + TextMacroAction.prototype.fromBinary = function (buffer) { + this.readAndAssertMacroActionId(buffer); + this.text = buffer.readString(); + return this; + }; + TextMacroAction.prototype.toJsonObject = function () { + return { + macroActionType: macro_action_1.macroActionType.TextMacroAction, + text: this.text + }; + }; + TextMacroAction.prototype.toBinary = function (buffer) { + buffer.writeUInt8(macro_action_1.MacroActionId.TextMacroAction); + buffer.writeString(this.text); + }; + TextMacroAction.prototype.toString = function () { + return ""; + }; + return TextMacroAction; +}(macro_action_1.MacroAction)); +exports.TextMacroAction = TextMacroAction; + + +/***/ }), +/* 640 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var uhk_buffer_1 = __webpack_require__(238); +var index_1 = __webpack_require__(39); +var Helper = (function () { + function Helper() { + } + Helper.createMacroAction = function (source) { + if (source instanceof index_1.MacroAction) { + return Helper.fromMacroAction(source); + } + else if (source instanceof uhk_buffer_1.UhkBuffer) { + return Helper.fromUhkBuffer(source); + } + else { + return Helper.fromJSONObject(source); + } + }; + Helper.fromUhkBuffer = function (buffer) { + var macroActionFirstByte = buffer.readUInt8(); + buffer.backtrack(); + if (macroActionFirstByte >= index_1.MacroActionId.KeyMacroAction && macroActionFirstByte <= index_1.MacroActionId.LastKeyMacroAction) { + return new index_1.KeyMacroAction().fromBinary(buffer); + } + else if (macroActionFirstByte >= index_1.MacroActionId.MouseButtonMacroAction && + macroActionFirstByte <= index_1.MacroActionId.LastMouseButtonMacroAction) { + return new index_1.MouseButtonMacroAction().fromBinary(buffer); + } + switch (macroActionFirstByte) { + case index_1.MacroActionId.MoveMouseMacroAction: + return new index_1.MoveMouseMacroAction().fromBinary(buffer); + case index_1.MacroActionId.ScrollMouseMacroAction: + return new index_1.ScrollMouseMacroAction().fromBinary(buffer); + case index_1.MacroActionId.DelayMacroAction: + return new index_1.DelayMacroAction().fromBinary(buffer); + case index_1.MacroActionId.TextMacroAction: + return new index_1.TextMacroAction().fromBinary(buffer); + default: + throw "Invalid MacroAction first byte: " + macroActionFirstByte; + } + }; + Helper.fromMacroAction = function (macroAction) { + var newMacroAction; + if (macroAction instanceof index_1.KeyMacroAction) { + newMacroAction = new index_1.KeyMacroAction(macroAction); + } + else if (macroAction instanceof index_1.MouseButtonMacroAction) { + newMacroAction = new index_1.MouseButtonMacroAction(macroAction); + } + else if (macroAction instanceof index_1.MoveMouseMacroAction) { + newMacroAction = new index_1.MoveMouseMacroAction(macroAction); + } + else if (macroAction instanceof index_1.ScrollMouseMacroAction) { + newMacroAction = new index_1.ScrollMouseMacroAction(macroAction); + } + else if (macroAction instanceof index_1.DelayMacroAction) { + newMacroAction = new index_1.DelayMacroAction(macroAction); + } + else if (macroAction instanceof index_1.TextMacroAction) { + newMacroAction = new index_1.TextMacroAction(macroAction); + } + return newMacroAction; + }; + Helper.fromJSONObject = function (macroAction) { + switch (macroAction.macroActionType) { + case index_1.macroActionType.KeyMacroAction: + return new index_1.KeyMacroAction().fromJsonObject(macroAction); + case index_1.macroActionType.MouseButtonMacroAction: + return new index_1.MouseButtonMacroAction().fromJsonObject(macroAction); + case index_1.macroActionType.MoveMouseMacroAction: + return new index_1.MoveMouseMacroAction().fromJsonObject(macroAction); + case index_1.macroActionType.ScrollMouseMacroAction: + return new index_1.ScrollMouseMacroAction().fromJsonObject(macroAction); + case index_1.macroActionType.DelayMacroAction: + return new index_1.DelayMacroAction().fromJsonObject(macroAction); + case index_1.macroActionType.TextMacroAction: + return new index_1.TextMacroAction().fromJsonObject(macroAction); + default: + throw "Invalid MacroAction.macroActionType: \"" + macroAction.macroActionType + "\""; + } + }; + return Helper; +}()); +exports.Helper = Helper; + + +/***/ }), +/* 641 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var assert_1 = __webpack_require__(17); +var ModuleConfiguration = (function () { + function ModuleConfiguration() { + } + ModuleConfiguration.prototype.fromJsonObject = function (jsonObject) { + this.id = jsonObject.id; + this.initialPointerSpeed = jsonObject.initialPointerSpeed; + this.pointerAcceleration = jsonObject.pointerAcceleration; + this.maxPointerSpeed = jsonObject.maxPointerSpeed; + return this; + }; + ModuleConfiguration.prototype.fromBinary = function (buffer) { + this.id = buffer.readUInt8(); + this.initialPointerSpeed = buffer.readUInt8(); + this.pointerAcceleration = buffer.readUInt8(); + this.maxPointerSpeed = buffer.readUInt8(); + return this; + }; + ModuleConfiguration.prototype.toJsonObject = function () { + return { + id: this.id, + initialPointerSpeed: this.initialPointerSpeed, + pointerAcceleration: this.pointerAcceleration, + maxPointerSpeed: this.maxPointerSpeed + }; + }; + ModuleConfiguration.prototype.toBinary = function (buffer) { + buffer.writeUInt8(this.id); + buffer.writeUInt8(this.initialPointerSpeed); + buffer.writeUInt8(this.pointerAcceleration); + buffer.writeUInt8(this.maxPointerSpeed); + }; + ModuleConfiguration.prototype.toString = function () { + return ""; + }; + return ModuleConfiguration; +}()); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], ModuleConfiguration.prototype, "id", void 0); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], ModuleConfiguration.prototype, "initialPointerSpeed", void 0); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], ModuleConfiguration.prototype, "pointerAcceleration", void 0); +__decorate([ + assert_1.assertUInt8, + __metadata("design:type", Number) +], ModuleConfiguration.prototype, "maxPointerSpeed", void 0); +exports.ModuleConfiguration = ModuleConfiguration; + + +/***/ }), +/* 642 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var Constants; +(function (Constants) { + Constants.VENDOR_ID = 0x1D50; + Constants.PRODUCT_ID = 0x6122; + Constants.MAX_PAYLOAD_SIZE = 64; +})(Constants = exports.Constants || (exports.Constants = {})); + + +/***/ }), +/* 643 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var App = (function () { + function App() { + } + return App; +}()); +App.appStarted = 'app-started'; +var AutoUpdate = (function () { + function AutoUpdate() { + } + return AutoUpdate; +}()); +AutoUpdate.checkingForUpdate = 'checking-for-update'; +AutoUpdate.updateAvailable = 'update-available'; +AutoUpdate.updateNotAvailable = 'update-not-available'; +AutoUpdate.autoUpdateError = 'auto-update-error'; +AutoUpdate.autoUpdateDownloaded = 'update-downloaded'; +AutoUpdate.autoUpdateDownloadProgress = 'auto-update-download-progress'; +AutoUpdate.updateAndRestart = 'update-and-restart'; +AutoUpdate.checkForUpdate = 'check-for-update'; +AutoUpdate.checkForUpdateNotAvailable = 'check-for-update-not-available'; +var IpcEvents = (function () { + function IpcEvents() { + } + return IpcEvents; +}()); +IpcEvents.app = App; +IpcEvents.autoUpdater = AutoUpdate; +exports.IpcEvents = IpcEvents; + + +/***/ }), +/* 644 */ /***/ (function(module, exports) { -module.exports = "
\r\n \r\n \r\n \r\n
"; +module.exports = "\r\n \r\n \r\n\r\n\r\n
\r\n Sorry, there is no keymap with this abbreviation.\r\n
\r\n"; /***/ }), -/* 676 */ +/* 645 */ /***/ (function(module, exports) { -module.exports = "
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
"; +module.exports = ":host {\n width: 100%;\n display: block; }\n\n.not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" /***/ }), -/* 677 */ +/* 646 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var store_1 = __webpack_require__(5); +var keymap_1 = __webpack_require__(48); +var actions_1 = __webpack_require__(34); +var KeymapHeaderComponent = (function () { + function KeymapHeaderComponent(store, renderer) { + this.store = store; + this.renderer = renderer; + this.downloadClick = new core_1.EventEmitter(); + } + KeymapHeaderComponent.prototype.ngOnChanges = function (changes) { + if (changes['keymap']) { + this.setKeymapTitle(); + } + if (changes['deletable']) { + this.setTrashTitle(); + } + }; + KeymapHeaderComponent.prototype.setDefault = function () { + if (!this.keymap.isDefault) { + this.store.dispatch(actions_1.KeymapActions.setDefault(this.keymap.abbreviation)); + } + }; + KeymapHeaderComponent.prototype.removeKeymap = function () { + if (this.deletable) { + this.store.dispatch(actions_1.KeymapActions.removeKeymap(this.keymap.abbreviation)); + } + }; + KeymapHeaderComponent.prototype.duplicateKeymap = function () { + this.store.dispatch(actions_1.KeymapActions.duplicateKeymap(this.keymap)); + }; + KeymapHeaderComponent.prototype.editKeymapName = function (name) { + if (name.length === 0) { + this.renderer.setElementProperty(this.keymapName.nativeElement, 'value', this.keymap.name); + return; + } + this.store.dispatch(actions_1.KeymapActions.editKeymapName(this.keymap.abbreviation, name)); + }; + KeymapHeaderComponent.prototype.editKeymapAbbr = function (newAbbr) { + if (newAbbr.length !== 3) { + this.renderer.setElementProperty(this.keymapAbbr.nativeElement, 'value', this.keymap.abbreviation); + return; + } + newAbbr = newAbbr.toUpperCase(); + this.store.dispatch(actions_1.KeymapActions.editKeymapAbbr(this.keymap.abbreviation, newAbbr)); + }; + KeymapHeaderComponent.prototype.setKeymapTitle = function () { + this.starTitle = this.keymap.isDefault + ? 'This is the default keymap which gets activated when powering the keyboard.' + : 'Makes this keymap the default keymap which gets activated when powering the keyboard.'; + }; + KeymapHeaderComponent.prototype.setTrashTitle = function () { + this.trashTitle = this.deletable ? '' : 'The last keymap cannot be deleted.'; + }; + KeymapHeaderComponent.prototype.onDownloadIconClick = function () { + this.downloadClick.emit(); + }; + return KeymapHeaderComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", keymap_1.Keymap) +], KeymapHeaderComponent.prototype, "keymap", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], KeymapHeaderComponent.prototype, "deletable", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], KeymapHeaderComponent.prototype, "downloadClick", void 0); +__decorate([ + core_1.ViewChild('name'), + __metadata("design:type", core_1.ElementRef) +], KeymapHeaderComponent.prototype, "keymapName", void 0); +__decorate([ + core_1.ViewChild('abbr'), + __metadata("design:type", core_1.ElementRef) +], KeymapHeaderComponent.prototype, "keymapAbbr", void 0); +KeymapHeaderComponent = __decorate([ + core_1.Component({ + selector: 'keymap-header', + template: __webpack_require__(647), + styles: [__webpack_require__(648)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", [store_1.Store, core_1.Renderer]) +], KeymapHeaderComponent); +exports.KeymapHeaderComponent = KeymapHeaderComponent; + + +/***/ }), +/* 647 */ /***/ (function(module, exports) { -module.exports = "
\r\n
\r\n
\r\n

Enter delay in seconds

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Choose a preset
\r\n \r\n
\r\n
\r\n
\r\n"; +module.exports = "
\r\n

\r\n \r\n keymap\r\n ()\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n"; /***/ }), -/* 678 */ +/* 648 */ /***/ (function(module, exports) { -module.exports = "
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Press key

\r\n

Hold key

\r\n

Release key

\r\n \r\n
\r\n
\r\n
"; +module.exports = ":host {\n display: block; }\n\n.keymap__is-default.fa-star-o {\n cursor: pointer; }\n .keymap__is-default.fa-star-o:hover {\n color: #337ab7; }\n\n.keymap__remove {\n font-size: 0.75em;\n top: 8px; }\n .keymap__remove:not(.disabled):hover {\n cursor: pointer;\n color: #900; }\n .keymap__remove.disabled {\n opacity: 0.25; }\n\n.keymap__duplicate {\n font-size: 0.75em;\n top: 7px;\n margin-right: 15px;\n position: relative; }\n .keymap__duplicate:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.keymap__download {\n top: 10px;\n font-size: 0.8em;\n position: relative;\n margin-right: 10px; }\n .keymap__download:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.pane-title {\n margin-bottom: 1em; }\n .pane-title__name, .pane-title__abbrev {\n border: none;\n border-bottom: 2px dotted #999;\n padding: 0;\n margin: 0 0.25rem; }\n .pane-title__name:focus, .pane-title__abbrev:focus {\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\n border-color: transparent; }\n .pane-title__name {\n width: 290px;\n text-overflow: ellipsis; }\n .pane-title__abbrev {\n width: 90px;\n text-align: center; }\n" /***/ }), -/* 679 */ +/* 649 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(650)); + + +/***/ }), +/* 650 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var LayersComponent = (function () { + function LayersComponent() { + this.select = new core_1.EventEmitter(); + this.buttons = ['Base', 'Mod', 'Fn', 'Mouse']; + this.current = 0; + } + LayersComponent.prototype.selectLayer = function (index) { + if (this.current === index) { + return; + } + this.select.emit({ + oldIndex: this.current, + index: index + }); + this.current = index; + }; + return LayersComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], LayersComponent.prototype, "current", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], LayersComponent.prototype, "select", void 0); +LayersComponent = __decorate([ + core_1.Component({ + selector: 'layers', + template: __webpack_require__(651), + styles: [__webpack_require__(652)] + }), + __metadata("design:paramtypes", []) +], LayersComponent); +exports.LayersComponent = LayersComponent; + + +/***/ }), +/* 651 */ /***/ (function(module, exports) { -module.exports = "
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Move pointer

\r\n

Use negative values to move down or left from current position.

\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n
\r\n
\r\n

Scroll

\r\n

Use negative values to move down or left from current position.

\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n
\r\n
\r\n

Click mouse button

\r\n

Hold mouse button

\r\n

Release mouse button

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
"; +module.exports = "
\r\n \r\n \r\n \r\n
"; /***/ }), -/* 680 */ +/* 652 */ /***/ (function(module, exports) { -module.exports = "
\r\n

Type text

\r\n

Input the text you want to type with this macro action.

\r\n \r\n
"; +module.exports = ":host {\n display: block; }\n :host.disabled button {\n cursor: no-drop;\n background: rgba(204, 204, 204, 0.43);\n pointer-events: none; }\n :host.disabled button.btn-primary {\n background: #7c7c7c;\n border-color: #7c7c7c; }\n\n.uhk__layer-switcher--wrapper {\n position: relative;\n margin-bottom: 2rem; }\n .uhk__layer-switcher--wrapper:before {\n content: attr(data-title);\n display: inline-block;\n position: absolute;\n bottom: 0.55em;\n right: 100%;\n font-size: 18px;\n padding-right: 0.45em;\n margin: 0; }\n" /***/ }), -/* 681 */ +/* 653 */ /***/ (function(module, exports) { -module.exports = "\r\n\r\n
\r\n There is no macro with id {{ route.params.select('id') | async }}.\r\n
"; +module.exports = "\r\n \r\n \r\n\r\n\r\n
\r\n There is no macro with id {{ route.params.select('id') | async }}.\r\n
"; /***/ }), -/* 682 */ +/* 654 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n\n.not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" + +/***/ }), +/* 655 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var ng2_dragula_1 = __webpack_require__(228); +var macro_1 = __webpack_require__(99); +var index_1 = __webpack_require__(138); +var MacroListComponent = (function () { + function MacroListComponent(dragulaService) { + var _this = this; + this.add = new core_1.EventEmitter(); + this.edit = new core_1.EventEmitter(); + this.delete = new core_1.EventEmitter(); + this.reorder = new core_1.EventEmitter(); + this.newMacro = undefined; + this.activeEdit = undefined; + this.showNew = false; + /* tslint:disable:no-unused-variable: Used by Dragula. */ + dragulaService.setOptions('macroActions', { + moves: function (el, container, handle) { + return handle.className.includes('action--movable'); + } + }); + dragulaService.drag.subscribe(function (value) { + _this.dragIndex = +value[1].getAttribute('data-index'); + }); + dragulaService.drop.subscribe(function (value) { + if (value[4]) { + _this.reorder.emit({ + macroId: _this.macro.id, + oldIndex: _this.dragIndex, + newIndex: +value[4].getAttribute('data-index') + }); + } + }); + } + MacroListComponent.prototype.showNewAction = function () { + this.hideActiveEditor(); + this.newMacro = undefined; + this.showNew = true; + }; + MacroListComponent.prototype.hideNewAction = function () { + this.showNew = false; + }; + MacroListComponent.prototype.addNewAction = function (macroAction) { + this.add.emit({ + macroId: this.macro.id, + action: macroAction + }); + this.newMacro = undefined; + this.showNew = false; + }; + MacroListComponent.prototype.editAction = function (index) { + // Hide other editors when clicking edit button of a macro action + this.hideActiveEditor(); + this.showNew = false; + this.activeEdit = index; + }; + MacroListComponent.prototype.cancelAction = function () { + this.activeEdit = undefined; + }; + MacroListComponent.prototype.saveAction = function (macroAction, index) { + this.edit.emit({ + macroId: this.macro.id, + index: index, + action: macroAction + }); + this.hideActiveEditor(); + }; + MacroListComponent.prototype.deleteAction = function (macroAction, index) { + this.delete.emit({ + macroId: this.macro.id, + index: index, + action: macroAction + }); + this.hideActiveEditor(); + }; + MacroListComponent.prototype.hideActiveEditor = function () { + if (this.activeEdit !== undefined) { + this.macroItems.toArray()[this.activeEdit].cancelEdit(); + } + }; + return MacroListComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", macro_1.Macro) +], MacroListComponent.prototype, "macro", void 0); +__decorate([ + core_1.ViewChildren(core_1.forwardRef(function () { return index_1.MacroItemComponent; })), + __metadata("design:type", core_1.QueryList) +], MacroListComponent.prototype, "macroItems", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroListComponent.prototype, "add", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroListComponent.prototype, "edit", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroListComponent.prototype, "delete", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroListComponent.prototype, "reorder", void 0); +MacroListComponent = __decorate([ + core_1.Component({ + animations: [ + animations_1.trigger('toggler', [ + animations_1.state('inactive', animations_1.style({ + height: '0px' + })), + animations_1.state('active', animations_1.style({ + height: '*' + })), + animations_1.transition('inactive <=> active', animations_1.animate('500ms ease-out')) + ]), + animations_1.trigger('togglerNew', [ + animations_1.state('void', animations_1.style({ + height: '0px' + })), + animations_1.state('active', animations_1.style({ + height: '*' + })), + animations_1.transition(':enter', animations_1.animate('500ms ease-out')), + animations_1.transition(':leave', animations_1.animate('500ms ease-out')) + ]) + ], + selector: 'macro-list', + template: __webpack_require__(656), + styles: [__webpack_require__(657)], + viewProviders: [ng2_dragula_1.DragulaService] + }), + __metadata("design:paramtypes", [ng2_dragula_1.DragulaService]) +], MacroListComponent); +exports.MacroListComponent = MacroListComponent; + + +/***/ }), +/* 656 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
"; + +/***/ }), +/* 657 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n display: flex;\n flex-direction: column;\n height: 100%; }\n :host .list-container {\n display: flex;\n flex: 1; }\n\n.main-wrapper {\n width: 500px; }\n\nh1 {\n margin-bottom: 3rem; }\n\n.action--edit__form {\n background-color: #fff;\n margin-left: -0.5rem;\n margin-right: -15px;\n margin-top: 15px;\n padding-top: 15px;\n border-top: 1px solid #ddd; }\n\n.action--item {\n padding-left: 8px; }\n .action--item.active, .action--item.active:hover {\n background-color: white;\n font-weight: bold;\n color: black;\n border-color: black;\n z-index: 10; }\n\n.list-group {\n overflow: auto; }\n\n.macro__name {\n border-bottom: 2px dotted #999;\n padding: 0 0.5rem;\n margin: 0 0.25rem; }\n\n.macro-settings {\n border: 1px solid black;\n border-top-color: #999;\n z-index: 100; }\n .macro-settings .helper {\n position: absolute;\n display: block;\n height: 13px;\n background: #fff;\n width: 100%;\n left: 0;\n top: -14px; }\n\n.action--item.active.callout,\n.macro-settings.callout {\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.5); }\n\n.macro-actions-container {\n margin-bottom: 0;\n border-radius: 4px;\n border: 1px solid #ddd;\n border-bottom: 0; }\n\n.list-group-item .move-handle:hover {\n cursor: move; }\n\n.flex-button-wrapper {\n display: flex;\n flex-direction: row-reverse; }\n\n.flex-button {\n align-self: flex-end; }\n\n.add-new__action-container {\n overflow: hidden;\n flex-shrink: 0;\n border-top: 1px solid #ddd; }\n\n.add-new__action-item {\n border-radius: 0 0 4px 4px;\n border-top: 0;\n padding: 0; }\n .add-new__action-item:hover {\n cursor: pointer; }\n .add-new__action-item--link {\n width: 50%;\n float: left;\n padding: 10px 5px;\n text-align: center;\n color: #337ab7; }\n .add-new__action-item--link:first-of-type {\n border-right: 1px solid #ddd; }\n .add-new__action-item--link:hover {\n text-decoration: none;\n background: #e6e6e6; }\n .add-new__action-item .fa-circle {\n color: #c00; }\n\n.gu-mirror {\n position: fixed;\n margin: 0;\n z-index: 9999;\n opacity: 0.8; }\n\n.gu-hide {\n display: none; }\n\n.gu-unselectable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n" + +/***/ }), +/* 658 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var store_1 = __webpack_require__(5); +var macro_1 = __webpack_require__(99); +var actions_1 = __webpack_require__(34); +var MacroHeaderComponent = (function () { + function MacroHeaderComponent(store, renderer) { + this.store = store; + this.renderer = renderer; + } + MacroHeaderComponent.prototype.ngOnChanges = function () { + if (this.isNew) { + this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []); + } + }; + MacroHeaderComponent.prototype.ngAfterViewInit = function () { + if (this.isNew) { + this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []); + } + }; + MacroHeaderComponent.prototype.removeMacro = function () { + this.store.dispatch(actions_1.MacroActions.removeMacro(this.macro.id)); + }; + MacroHeaderComponent.prototype.duplicateMacro = function () { + this.store.dispatch(actions_1.MacroActions.duplicateMacro(this.macro)); + }; + MacroHeaderComponent.prototype.editMacroName = function (name) { + if (name.length === 0) { + this.renderer.setElementProperty(this.macroName.nativeElement, 'value', this.macro.name); + return; + } + this.store.dispatch(actions_1.MacroActions.editMacroName(this.macro.id, name)); + }; + return MacroHeaderComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", macro_1.Macro) +], MacroHeaderComponent.prototype, "macro", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], MacroHeaderComponent.prototype, "isNew", void 0); +__decorate([ + core_1.ViewChild('macroName'), + __metadata("design:type", core_1.ElementRef) +], MacroHeaderComponent.prototype, "macroName", void 0); +MacroHeaderComponent = __decorate([ + core_1.Component({ + selector: 'macro-header', + template: __webpack_require__(659), + styles: [__webpack_require__(660)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", [store_1.Store, core_1.Renderer]) +], MacroHeaderComponent); +exports.MacroHeaderComponent = MacroHeaderComponent; + + +/***/ }), +/* 659 */ /***/ (function(module, exports) { module.exports = "
\r\n

\r\n \r\n \r\n \r\n \r\n

\r\n
"; /***/ }), -/* 683 */ +/* 660 */ /***/ (function(module, exports) { -module.exports = "
\r\n \r\n
\r\n \r\n
{{ title }}
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
"; +module.exports = ".macro__remove {\n font-size: 0.75em;\n top: 8px; }\n .macro__remove:hover {\n cursor: pointer;\n color: #900; }\n\n.macro__duplicate {\n font-size: 0.75em;\n top: 7px;\n margin-right: 15px;\n position: relative; }\n .macro__duplicate:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.pane-title {\n margin-bottom: 1em; }\n .pane-title__name {\n border: none;\n border-bottom: 2px dotted #999;\n padding: 0;\n margin: 0 0.25rem;\n width: 330px;\n text-overflow: ellipsis; }\n .pane-title__name:focus {\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\n border-color: transparent; }\n" /***/ }), -/* 684 */ -/***/ (function(module, exports) { +/* 661 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_edit_component_1 = __webpack_require__(240); +var not_found_1 = __webpack_require__(139); +exports.macroRoutes = [ + { + path: 'macro', + component: not_found_1.MacroNotFoundComponent, + canActivate: [not_found_1.MacroNotFoundGuard] + }, + { + path: 'macro/:id', + component: macro_edit_component_1.MacroEditComponent + }, + { + path: 'macro/:id/:empty', + component: macro_edit_component_1.MacroEditComponent + } +]; -module.exports = "
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
"; /***/ }), -/* 685 */ +/* 662 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var MacroNotFoundComponent = (function () { + function MacroNotFoundComponent() { + } + return MacroNotFoundComponent; +}()); +MacroNotFoundComponent = __decorate([ + core_1.Component({ + selector: 'macro-not-found', + template: __webpack_require__(663), + styles: [__webpack_require__(664)] + }) +], MacroNotFoundComponent); +exports.MacroNotFoundComponent = MacroNotFoundComponent; + + +/***/ }), +/* 663 */ /***/ (function(module, exports) { module.exports = "
\r\n You don't have any macros. Try to add one!\r\n
"; /***/ }), -/* 686 */ +/* 664 */ /***/ (function(module, exports) { -module.exports = "Keymap removed\r\nUndo\r\n×"; +module.exports = ".not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" /***/ }), -/* 687 */ +/* 665 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +__webpack_require__(73); +__webpack_require__(21); +var store_1 = __webpack_require__(5); +var user_configuration_1 = __webpack_require__(35); +var MacroNotFoundGuard = (function () { + function MacroNotFoundGuard(store, router) { + this.store = store; + this.router = router; + } + MacroNotFoundGuard.prototype.canActivate = function () { + var _this = this; + return this.store + .let(user_configuration_1.getMacros()) + .map(function (macros) { + var hasMacros = macros.length > 0; + if (hasMacros) { + _this.router.navigate(['/macro', macros[0].id]); + } + return !hasMacros; + }); + }; + return MacroNotFoundGuard; +}()); +MacroNotFoundGuard = __decorate([ + core_1.Injectable(), + __metadata("design:paramtypes", [store_1.Store, router_1.Router]) +], MacroNotFoundGuard); +exports.MacroNotFoundGuard = MacroNotFoundGuard; + + +/***/ }), +/* 666 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_item_component_1 = __webpack_require__(667); +exports.MacroItemComponent = macro_item_component_1.MacroItemComponent; + + +/***/ }), +/* 667 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var key_modifiers_1 = __webpack_require__(140); +var macro_action_1 = __webpack_require__(39); +var mapper_service_1 = __webpack_require__(22); +var MacroItemComponent = (function () { + function MacroItemComponent(mapper) { + this.mapper = mapper; + this.save = new core_1.EventEmitter(); + this.cancel = new core_1.EventEmitter(); + this.edit = new core_1.EventEmitter(); + this.delete = new core_1.EventEmitter(); + this.newItem = false; + } + MacroItemComponent.prototype.ngOnInit = function () { + this.updateView(); + if (!this.macroAction) { + this.editing = true; + this.newItem = true; + } + }; + MacroItemComponent.prototype.ngOnChanges = function (changes) { + if (changes['macroAction']) { + this.updateView(); + } + }; + MacroItemComponent.prototype.saveEditedAction = function (editedAction) { + this.macroAction = editedAction; + this.editing = false; + this.updateView(); + this.save.emit(editedAction); + }; + MacroItemComponent.prototype.editAction = function () { + if (!this.editable || this.editing) { + this.cancelEdit(); + return; + } + this.editing = true; + this.edit.emit(); + }; + MacroItemComponent.prototype.cancelEdit = function () { + this.editing = false; + this.cancel.emit(); + }; + MacroItemComponent.prototype.deleteAction = function () { + this.delete.emit(); + }; + MacroItemComponent.prototype.updateView = function () { + if (!this.macroAction) { + this.title = 'New macro action'; + } + else if (this.macroAction instanceof macro_action_1.DelayMacroAction) { + // Delay + this.iconName = 'clock'; + var action = this.macroAction; + var delay_1 = action.delay > 0 ? action.delay / 1000 : 0; + this.title = "Delay of " + delay_1 + "s"; + } + else if (this.macroAction instanceof macro_action_1.TextMacroAction) { + // Write text + var action = this.macroAction; + this.iconName = 'font'; + this.title = "Write text: " + action.text; + } + else if (this.macroAction instanceof macro_action_1.KeyMacroAction) { + // Key pressed/held/released + var action = this.macroAction; + this.setKeyActionContent(action); + } + else if (this.macroAction instanceof macro_action_1.MouseButtonMacroAction) { + // Mouse button clicked/held/released + var action = this.macroAction; + this.setMouseButtonActionContent(action); + } + else if (this.macroAction instanceof macro_action_1.MoveMouseMacroAction || this.macroAction instanceof macro_action_1.ScrollMouseMacroAction) { + // Mouse moved or scrolled + this.setMouseMoveScrollActionContent(this.macroAction); + } + else { + this.title = this.macroAction.constructor.name; + } + }; + MacroItemComponent.prototype.setKeyActionContent = function (action) { + if (!action.hasScancode() && !action.hasModifiers()) { + this.title = 'Invalid keypress'; + return; + } + if (action.isPressAction()) { + // Press key + this.iconName = 'hand-pointer'; + this.title = 'Press key: '; + } + else if (action.isHoldAction()) { + // Hold key + this.iconName = 'hand-rock'; + this.title = 'Hold key: '; + } + else if (action.isReleaseAction()) { + // Release key + this.iconName = 'hand-paper'; + this.title = 'Release key: '; + } + if (action.hasScancode()) { + var scancode = (this.mapper.scanCodeToText(action.scancode, action.type) || ['Unknown']).join(' '); + if (scancode) { + this.title += scancode; + } + } + if (action.hasModifiers()) { + // Press/hold/release modifiers + for (var i = key_modifiers_1.KeyModifiers.leftCtrl; i <= key_modifiers_1.KeyModifiers.rightGui; i <<= 1) { + if (action.isModifierActive(i)) { + this.title += ' ' + key_modifiers_1.KeyModifiers[i]; + } + } + } + }; + MacroItemComponent.prototype.setMouseMoveScrollActionContent = function (action) { + var typedAction; + if (action instanceof macro_action_1.MoveMouseMacroAction) { + // Move mouse pointer + this.iconName = 'mouse-pointer'; + this.title = 'Move pointer'; + typedAction = this.macroAction; + } + else { + // Scroll mouse + this.iconName = 'mouse-pointer'; + this.title = 'Scroll'; + typedAction = this.macroAction; + } + var needAnd; + if (Math.abs(typedAction.x) !== 0) { + this.title += " by " + Math.abs(typedAction.x) + "px " + (typedAction.x > 0 ? 'left' : 'right'); + needAnd = true; + } + if (Math.abs(typedAction.y) !== 0) { + this.title += " " + (needAnd ? 'and' : 'by') + " " + Math.abs(typedAction.y) + "px " + (typedAction.y > 0 ? 'down' : 'up'); + } + }; + MacroItemComponent.prototype.setMouseButtonActionContent = function (action) { + // Press/hold/release mouse buttons + if (action.isOnlyPressAction()) { + this.iconName = 'mouse-pointer'; + this.title = 'Click mouse button: '; + } + else if (action.isOnlyHoldAction()) { + this.iconName = 'hand-rock'; + this.title = 'Hold mouse button: '; + } + else if (action.isOnlyReleaseAction()) { + this.iconName = 'hand-paper'; + this.title = 'Release mouse button: '; + } + var buttonLabels = ['Left', 'Middle', 'Right']; + var selectedButtons = action.getMouseButtons(); + var selectedButtonLabels = []; + selectedButtons.forEach(function (isSelected, idx) { + if (isSelected && buttonLabels[idx]) { + selectedButtonLabels.push(buttonLabels[idx]); + } + }); + this.title += selectedButtonLabels.join(', '); + }; + return MacroItemComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", macro_action_1.MacroAction) +], MacroItemComponent.prototype, "macroAction", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], MacroItemComponent.prototype, "editable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], MacroItemComponent.prototype, "deletable", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], MacroItemComponent.prototype, "movable", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroItemComponent.prototype, "save", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroItemComponent.prototype, "cancel", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroItemComponent.prototype, "edit", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroItemComponent.prototype, "delete", void 0); +MacroItemComponent = __decorate([ + core_1.Component({ + animations: [ + animations_1.trigger('toggler', [ + animations_1.state('inactive', animations_1.style({ + height: '0px' + })), + animations_1.state('active', animations_1.style({ + height: '*' + })), + animations_1.transition('inactive <=> active', animations_1.animate('500ms ease-out')) + ]) + ], + selector: 'macro-item', + template: __webpack_require__(668), + styles: [__webpack_require__(669)], + host: { 'class': 'macro-item' } + }), + __metadata("design:paramtypes", [mapper_service_1.MapperService]) +], MacroItemComponent); +exports.MacroItemComponent = MacroItemComponent; + + +/***/ }), +/* 668 */ /***/ (function(module, exports) { -module.exports = "
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n"; +module.exports = "
\r\n \r\n
\r\n \r\n
{{ title }}
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
"; /***/ }), -/* 688 */ +/* 669 */ /***/ (function(module, exports) { -module.exports = "\r\n"; +module.exports = ":host {\n overflow: hidden;\n display: block; }\n :host.macro-item:first-of-type .list-group-item {\n border-radius: 4px 4px 0 0; }\n :host.macro-item:last-of-type .list-group-item {\n border-bottom: 0; }\n :host.gu-transit {\n opacity: 0.2; }\n :host.gu-transit .list-group-item {\n background: #f5f5f5; }\n\n.action--item {\n display: flex;\n flex-shrink: 0;\n border: 0;\n border-bottom: 1px solid #ddd; }\n .action--item icon {\n margin: 0 5px; }\n .action--item > div {\n display: flex;\n flex: 1; }\n .action--item:first-child {\n border-radius: 0; }\n .action--item.is-editing {\n background: #f5f5f5; }\n .action--item--wrap {\n justify-content: space-between; }\n .action--item--wrap.pointer:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.action--title {\n display: flex;\n flex: 1; }\n\n.action--movable:hover {\n cursor: move; }\n\n.list-group-item {\n margin-bottom: 0; }\n\n.macro-action-editor__container {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0;\n border: none;\n overflow: hidden; }\n" /***/ }), -/* 689 */ +/* 670 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_action_editor_component_1 = __webpack_require__(671); +exports.MacroActionEditorComponent = macro_action_editor_component_1.MacroActionEditorComponent; + + +/***/ }), +/* 671 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var macro_action_1 = __webpack_require__(39); +var tab_1 = __webpack_require__(241); +var TabName; +(function (TabName) { + TabName[TabName["Keypress"] = 0] = "Keypress"; + TabName[TabName["Text"] = 1] = "Text"; + TabName[TabName["Mouse"] = 2] = "Mouse"; + TabName[TabName["Delay"] = 3] = "Delay"; +})(TabName || (TabName = {})); +var MacroActionEditorComponent = (function () { + function MacroActionEditorComponent() { + this.save = new core_1.EventEmitter(); + this.cancel = new core_1.EventEmitter(); + /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ + this.TabName = TabName; + } + /* tslint:enable:variable-name */ + MacroActionEditorComponent.prototype.ngOnInit = function () { + this.updateEditableMacroAction(); + var tab = this.getTabName(this.editableMacroAction); + this.activeTab = tab; + }; + MacroActionEditorComponent.prototype.ngOnChanges = function () { + this.ngOnInit(); + }; + MacroActionEditorComponent.prototype.onCancelClick = function () { + this.cancel.emit(); + }; + MacroActionEditorComponent.prototype.onSaveClick = function () { + try { + // TODO: Refactor after getKeyMacroAction has been added to all tabs + var action = this.selectedTab instanceof tab_1.MacroKeyTabComponent ? + this.selectedTab.getKeyMacroAction() : + this.selectedTab.macroAction; + this.save.emit(action); + } + catch (e) { + // TODO: show error dialog + console.error(e); + } + }; + MacroActionEditorComponent.prototype.selectTab = function (tab) { + this.activeTab = tab; + if (tab === this.getTabName(this.macroAction)) { + this.updateEditableMacroAction(); + } + else { + this.editableMacroAction = undefined; + } + }; + MacroActionEditorComponent.prototype.getTabName = function (action) { + if (action instanceof macro_action_1.DelayMacroAction) { + return TabName.Delay; + } + else if (action instanceof macro_action_1.TextMacroAction) { + return TabName.Text; + } + else if (action instanceof macro_action_1.KeyMacroAction) { + return TabName.Keypress; + } + else if (action instanceof macro_action_1.MouseButtonMacroAction || + action instanceof macro_action_1.MoveMouseMacroAction || + action instanceof macro_action_1.ScrollMouseMacroAction) { + return TabName.Mouse; + } + return undefined; + }; + MacroActionEditorComponent.prototype.updateEditableMacroAction = function () { + var macroAction = this.macroAction ? this.macroAction : new macro_action_1.TextMacroAction(); + this.editableMacroAction = macro_action_1.Helper.createMacroAction(macroAction); + }; + return MacroActionEditorComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", macro_action_1.MacroAction) +], MacroActionEditorComponent.prototype, "macroAction", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroActionEditorComponent.prototype, "save", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], MacroActionEditorComponent.prototype, "cancel", void 0); +__decorate([ + core_1.ViewChild('tab'), + __metadata("design:type", Object) +], MacroActionEditorComponent.prototype, "selectedTab", void 0); +MacroActionEditorComponent = __decorate([ + core_1.Component({ + selector: 'macro-action-editor', + template: __webpack_require__(714), + styles: [__webpack_require__(141)], + host: { 'class': 'macro-action-editor' } + }) +], MacroActionEditorComponent); +exports.MacroActionEditorComponent = MacroActionEditorComponent; + + +/***/ }), +/* 672 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_delay_component_1 = __webpack_require__(673); +exports.MacroDelayTabComponent = macro_delay_component_1.MacroDelayTabComponent; + + +/***/ }), +/* 673 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var macro_action_1 = __webpack_require__(39); +var INITIAL_DELAY = 0.5; // In seconds +var MacroDelayTabComponent = (function () { + function MacroDelayTabComponent() { + this.presets = [0.3, 0.5, 0.8, 1, 2, 3, 4, 5]; + } + MacroDelayTabComponent.prototype.ngOnInit = function () { + if (!this.macroAction) { + this.macroAction = new macro_action_1.DelayMacroAction(); + } + this.delay = this.macroAction.delay > 0 ? this.macroAction.delay / 1000 : INITIAL_DELAY; + }; + MacroDelayTabComponent.prototype.setDelay = function (value) { + this.delay = value; + this.macroAction.delay = this.delay * 1000; + }; + return MacroDelayTabComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", macro_action_1.DelayMacroAction) +], MacroDelayTabComponent.prototype, "macroAction", void 0); +__decorate([ + core_1.ViewChild('macroDelayInput'), + __metadata("design:type", core_1.ElementRef) +], MacroDelayTabComponent.prototype, "input", void 0); +MacroDelayTabComponent = __decorate([ + core_1.Component({ + selector: 'macro-delay-tab', + template: __webpack_require__(674), + styles: [__webpack_require__(675)], + host: { 'class': 'macro__delay' }, + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", []) +], MacroDelayTabComponent); +exports.MacroDelayTabComponent = MacroDelayTabComponent; + + +/***/ }), +/* 674 */ /***/ (function(module, exports) { -module.exports = "
\r\n Scancode:\r\n \r\n \r\n
\r\n
\r\n Modifiers:\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Long press action:\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n When a key is configured as layer switcher key, you can't assign other functions to it.\r\n To assign a scancode to the key, set the Layer action to None.\r\n
"; +module.exports = "
\r\n
\r\n
\r\n

Enter delay in seconds

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Choose a preset
\r\n \r\n
\r\n
\r\n
\r\n"; /***/ }), -/* 690 */ +/* 675 */ /***/ (function(module, exports) { -module.exports = "\r\n"; +module.exports = ":host {\n display: flex;\n flex-direction: column;\n position: relative; }\n\n.macro-delay__presets {\n margin-top: 1rem; }\n .macro-delay__presets button {\n margin-right: 0.25rem;\n margin-bottom: 0.25rem; }\n" /***/ }), -/* 691 */ +/* 676 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var macro_key_component_1 = __webpack_require__(677); +exports.MacroKeyTabComponent = macro_key_component_1.MacroKeyTabComponent; + + +/***/ }), +/* 677 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); +var macro_action_1 = __webpack_require__(39); +var tab_1 = __webpack_require__(100); +var tab_2 = __webpack_require__(100); +var TabName; +(function (TabName) { + TabName[TabName["Keypress"] = 0] = "Keypress"; + TabName[TabName["Hold"] = 1] = "Hold"; + TabName[TabName["Release"] = 2] = "Release"; +})(TabName || (TabName = {})); +var MacroKeyTabComponent = (function () { + function MacroKeyTabComponent() { + /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ + this.TabName = TabName; + } + MacroKeyTabComponent.prototype.ngOnInit = function () { + if (!this.macroAction) { + this.macroAction = new macro_action_1.KeyMacroAction(); + } + this.defaultKeyAction = new key_action_1.KeystrokeAction(this.macroAction); + this.selectTab(this.getTabName(this.macroAction)); + }; + MacroKeyTabComponent.prototype.selectTab = function (tab) { + this.activeTab = tab; + }; + MacroKeyTabComponent.prototype.getTabName = function (macroAction) { + if (!macroAction.action) { + return TabName.Keypress; + } + else if (macroAction.action === macro_action_1.MacroSubAction.hold) { + return TabName.Hold; + } + else if (macroAction.action === macro_action_1.MacroSubAction.release) { + return TabName.Release; + } + }; + MacroKeyTabComponent.prototype.getActionType = function (tab) { + switch (tab) { + case TabName.Keypress: + return macro_action_1.MacroSubAction.press; + case TabName.Hold: + return macro_action_1.MacroSubAction.hold; + case TabName.Release: + return macro_action_1.MacroSubAction.release; + default: + throw new Error('Invalid tab type'); + } + }; + MacroKeyTabComponent.prototype.getKeyMacroAction = function () { + var keyMacroAction = Object.assign(new macro_action_1.KeyMacroAction(), this.keypressTab.toKeyAction()); + keyMacroAction.action = this.getActionType(this.activeTab); + return keyMacroAction; + }; + return MacroKeyTabComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", macro_action_1.KeyMacroAction) +], MacroKeyTabComponent.prototype, "macroAction", void 0); +__decorate([ + core_1.ViewChild('tab'), + __metadata("design:type", tab_2.Tab) +], MacroKeyTabComponent.prototype, "selectedTab", void 0); +__decorate([ + core_1.ViewChild('keypressTab'), + __metadata("design:type", tab_1.KeypressTabComponent) +], MacroKeyTabComponent.prototype, "keypressTab", void 0); +MacroKeyTabComponent = __decorate([ + core_1.Component({ + selector: 'macro-key-tab', + template: __webpack_require__(704), + styles: [ + __webpack_require__(141), + __webpack_require__(705) + ], + host: { 'class': 'macro__mouse' } + }) +], MacroKeyTabComponent); +exports.MacroKeyTabComponent = MacroKeyTabComponent; + + +/***/ }), +/* 678 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(679)); + + +/***/ }), +/* 679 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); +var tab_1 = __webpack_require__(40); +var KeymapTabComponent = (function (_super) { + __extends(KeymapTabComponent, _super); + function KeymapTabComponent() { + var _this = _super.call(this) || this; + _this.keymapOptions = []; + return _this; + } + KeymapTabComponent.prototype.ngOnInit = function () { + this.keymapOptions = this.keymaps + .map(function (keymap) { + return { + id: keymap.abbreviation, + text: keymap.name + }; + }); + if (this.keymaps.length > 0) { + this.selectedKeymap = this.keymaps[0]; + } + }; + KeymapTabComponent.prototype.ngOnChanges = function () { + this.fromKeyAction(this.defaultKeyAction); + this.validAction.emit(true); + }; + // TODO: change to the correct type when the wrapper has added it. + KeymapTabComponent.prototype.onChange = function (event) { + if (event.value === '-1') { + this.selectedKeymap = undefined; + } + else { + this.selectedKeymap = this.keymaps.find(function (keymap) { return keymap.abbreviation === event.value; }); + } + }; + KeymapTabComponent.prototype.keyActionValid = function () { + return !!this.selectedKeymap; + }; + KeymapTabComponent.prototype.fromKeyAction = function (keyAction) { + if (!(keyAction instanceof key_action_1.SwitchKeymapAction)) { + return false; + } + var switchKeymapAction = keyAction; + this.selectedKeymap = this.keymaps + .find(function (keymap) { return keymap.abbreviation === switchKeymapAction.keymapAbbreviation; }); + }; + KeymapTabComponent.prototype.toKeyAction = function () { + if (!this.keyActionValid()) { + throw new Error('KeyAction is not valid. No selected keymap!'); + } + var keymapAction = new key_action_1.SwitchKeymapAction(); + keymapAction.keymapAbbreviation = this.selectedKeymap.abbreviation; + return keymapAction; + }; + return KeymapTabComponent; +}(tab_1.Tab)); +__decorate([ + core_1.Input(), + __metadata("design:type", key_action_1.KeyAction) +], KeymapTabComponent.prototype, "defaultKeyAction", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Array) +], KeymapTabComponent.prototype, "keymaps", void 0); +KeymapTabComponent = __decorate([ + core_1.Component({ + selector: 'keymap-tab', + template: __webpack_require__(680), + styles: [__webpack_require__(681)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", []) +], KeymapTabComponent); +exports.KeymapTabComponent = KeymapTabComponent; + + +/***/ }), +/* 680 */ /***/ (function(module, exports) { -module.exports = "\r\n"; +module.exports = "\r\n No keymaps are available to choose from. Create a keymap first! \r\n\r\n 0\">\r\n
\r\n Switch to keymap:\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
"; /***/ }), -/* 692 */ +/* 681 */ /***/ (function(module, exports) { -module.exports = "
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Press this key along with mouse movement/scrolling to accelerate/decelerate the speed of the action.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

You can set the multiplier in the settings.

\r\n
\r\n
\r\n
\r\n
\r\n
"; +module.exports = ":host {\n display: flex;\n flex-direction: column; }\n :host > span {\n text-align: center; }\n :host > div {\n display: flex;\n margin-top: 2px; }\n :host > div b {\n display: flex;\n align-items: center;\n margin-right: 7px; }\n :host > div select2 {\n flex: 1; }\n :host > div:last-child {\n margin-top: 10px; }\n :host > div:last-child img {\n max-height: 100%;\n max-width: 100%; }\n\n.empty {\n display: flex; }\n .empty img {\n display: flex;\n width: 100%;\n height: 100%;\n position: relative; }\n" /***/ }), -/* 693 */ -/***/ (function(module, exports) { +/* 682 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(683)); -module.exports = "This key is unassigned and has no functionality."; /***/ }), -/* 694 */ -/***/ (function(module, exports) { +/* 683 */ +/***/ (function(module, exports, __webpack_require__) { -module.exports = ""; +"use strict"; +/* WEBPACK VAR INJECTION */(function(jQuery) { +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); +var tab_1 = __webpack_require__(40); +var mapper_service_1 = __webpack_require__(22); +var keystroke_type_1 = __webpack_require__(98); +var KeypressTabComponent = (function (_super) { + __extends(KeypressTabComponent, _super); + function KeypressTabComponent(mapper) { + var _this = _super.call(this) || this; + _this.mapper = mapper; + _this.scanCodeTemplateResult = function (state) { + if (!state.id) { + return state.text; + } + if (state.additional && state.additional.explanation) { + return jQuery('' + + '' + state.text + '' + + ' ' + + state.additional.explanation + + '' + + ''); + } + else { + return jQuery('' + state.text + ''); + } + }; + _this.leftModifiers = ['LShift', 'LCtrl', 'LSuper', 'LAlt']; + _this.rightModifiers = ['RShift', 'RCtrl', 'RSuper', 'RAlt']; + _this.scanCodeGroups = [{ + id: '0', + text: 'None' + }]; + _this.scanCodeGroups = _this.scanCodeGroups.concat(__webpack_require__(684)); + _this.longPressGroups = __webpack_require__(685); + _this.leftModifierSelects = Array(_this.leftModifiers.length).fill(false); + _this.rightModifierSelects = Array(_this.rightModifiers.length).fill(false); + _this.selectedScancodeOption = _this.scanCodeGroups[0]; + _this.selectedLongPressIndex = -1; + _this.options = { + templateResult: _this.scanCodeTemplateResult, + matcher: function (term, text, data) { + var found = text.toUpperCase().indexOf(term.toUpperCase()) > -1; + if (!found && data.additional && data.additional.explanation) { + found = data.additional.explanation.toUpperCase().indexOf(term.toUpperCase()) > -1; + } + return found; + } + }; + return _this; + } + KeypressTabComponent.prototype.ngOnChanges = function () { + this.fromKeyAction(this.defaultKeyAction); + this.validAction.emit(this.keyActionValid()); + }; + KeypressTabComponent.prototype.keyActionValid = function (keystrokeAction) { + if (!keystrokeAction) { + keystrokeAction = this.toKeyAction(); + } + return (keystrokeAction) ? (keystrokeAction.scancode > 0 || keystrokeAction.modifierMask > 0) : false; + }; + KeypressTabComponent.prototype.onKeysCapture = function (event) { + if (event.code) { + this.selectedScancodeOption = this.findScancodeOptionByScancode(event.code, keystroke_type_1.KeystrokeType.basic); + } + else { + this.selectedScancodeOption = this.scanCodeGroups[0]; + } + this.leftModifierSelects = event.left; + this.rightModifierSelects = event.right; + this.validAction.emit(this.keyActionValid()); + }; + KeypressTabComponent.prototype.fromKeyAction = function (keyAction) { + if (!(keyAction instanceof key_action_1.KeystrokeAction)) { + return false; + } + var keystrokeAction = keyAction; + // Restore selectedScancodeOption + this.selectedScancodeOption = this.findScancodeOptionByScancode(keystrokeAction.scancode || 0, keystrokeAction.type); + var leftModifiersLength = this.leftModifiers.length; + // Restore modifiers + for (var i = 0; i < leftModifiersLength; ++i) { + this.leftModifierSelects[this.mapper.modifierMapper(i)] = ((keystrokeAction.modifierMask >> i) & 1) === 1; + } + for (var i = leftModifiersLength; i < leftModifiersLength + this.rightModifierSelects.length; ++i) { + var index = this.mapper.modifierMapper(i) - leftModifiersLength; + this.rightModifierSelects[index] = ((keystrokeAction.modifierMask >> i) & 1) === 1; + } + // Restore longPressAction + if (keystrokeAction.longPressAction !== undefined) { + this.selectedLongPressIndex = this.mapper.modifierMapper(keystrokeAction.longPressAction); + } + return true; + }; + KeypressTabComponent.prototype.toKeyAction = function () { + var keystrokeAction = new key_action_1.KeystrokeAction(); + var scTypePair = this.toScancodeTypePair(this.selectedScancodeOption); + keystrokeAction.scancode = scTypePair[0]; + if (scTypePair[1] === 'media') { + keystrokeAction.type = keystroke_type_1.KeystrokeType.shortMedia; + } + else { + keystrokeAction.type = keystroke_type_1.KeystrokeType[scTypePair[1]]; + } + keystrokeAction.modifierMask = 0; + var modifiers = this.leftModifierSelects.concat(this.rightModifierSelects).map(function (x) { return x ? 1 : 0; }); + for (var i = 0; i < modifiers.length; ++i) { + keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i); + } + keystrokeAction.longPressAction = this.selectedLongPressIndex === -1 + ? undefined + : this.mapper.modifierMapper(this.selectedLongPressIndex); + if (this.keyActionValid(keystrokeAction)) { + return keystrokeAction; + } + }; + KeypressTabComponent.prototype.toggleModifier = function (right, index) { + var modifierSelects = right ? this.rightModifierSelects : this.leftModifierSelects; + modifierSelects[index] = !modifierSelects[index]; + this.validAction.emit(this.keyActionValid()); + }; + KeypressTabComponent.prototype.onLongpressChange = function (event) { + this.selectedLongPressIndex = +event.value; + }; + KeypressTabComponent.prototype.onScancodeChange = function (event) { + var id = event.value; + // ng2-select2 should provide the selectedOption in an upcoming release + // TODO: change this when it has become available + this.selectedScancodeOption = this.findScancodeOptionById(id); + this.validAction.emit(this.keyActionValid()); + }; + KeypressTabComponent.prototype.findScancodeOptionBy = function (predicate) { + var selectedOption; + var scanCodeGroups = this.scanCodeGroups.slice(); + while (scanCodeGroups.length > 0) { + var scanCodeGroup = scanCodeGroups.shift(); + if (predicate(scanCodeGroup)) { + selectedOption = scanCodeGroup; + break; + } + scanCodeGroups.push.apply(scanCodeGroups, scanCodeGroup.children); + } + return selectedOption; + }; + KeypressTabComponent.prototype.findScancodeOptionById = function (id) { + return this.findScancodeOptionBy(function (option) { return option.id === id; }); + }; + KeypressTabComponent.prototype.findScancodeOptionByScancode = function (scancode, type) { + var typeToFind = (type === keystroke_type_1.KeystrokeType.shortMedia || type === keystroke_type_1.KeystrokeType.longMedia) ? 'media' : keystroke_type_1.KeystrokeType[type]; + return this.findScancodeOptionBy(function (option) { + var additional = option.additional; + if (additional && additional.scancode === scancode && additional.type === typeToFind) { + return true; + } + else if ((!additional || additional.scancode === undefined) && +option.id === scancode) { + return true; + } + else { + return false; + } + }); + }; + KeypressTabComponent.prototype.toScancodeTypePair = function (option) { + var scanCode; + var type; + if (option.additional) { + scanCode = option.additional.scancode; + type = option.additional.type || 'basic'; + } + else { + type = 'basic'; + } + if (scanCode === undefined) { + scanCode = +option.id; + } + return [scanCode, type]; + }; + return KeypressTabComponent; +}(tab_1.Tab)); +__decorate([ + core_1.Input(), + __metadata("design:type", key_action_1.KeyAction) +], KeypressTabComponent.prototype, "defaultKeyAction", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], KeypressTabComponent.prototype, "longPressEnabled", void 0); +KeypressTabComponent = __decorate([ + core_1.Component({ + selector: 'keypress-tab', + template: __webpack_require__(686), + styles: [__webpack_require__(687)] + }), + __metadata("design:paramtypes", [mapper_service_1.MapperService]) +], KeypressTabComponent); +exports.KeypressTabComponent = KeypressTabComponent; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }), -/* 695 */ -/***/ (function(module, exports) { - -module.exports = "
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
"; - -/***/ }), -/* 696 */ -/***/ (function(module, exports) { - -module.exports = "
\r\n

\r\n \r\n Settings\r\n

\r\n
\r\nTo be done..."; - -/***/ }), -/* 697 */ -/***/ (function(module, exports) { - -module.exports = "\r\n"; - -/***/ }), -/* 698 */ -/***/ (function(module, exports) { - -module.exports = "\r\n \r\n \r\n \r\n"; - -/***/ }), -/* 699 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n {{ text }}\r\n"; - -/***/ }), -/* 700 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n"; - -/***/ }), -/* 701 */ -/***/ (function(module, exports) { - -module.exports = "\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n C\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"; - -/***/ }), -/* 702 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n Click \r\n\r\n\r\n {{ button }} \r\n"; - -/***/ }), -/* 703 */ -/***/ (function(module, exports) { - -module.exports = "\r\n \r\n \r\n \r\n \r\n"; - -/***/ }), -/* 704 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n Move \r\n\r\n"; - -/***/ }), -/* 705 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n Scroll \r\n\r\n"; - -/***/ }), -/* 706 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n Speed \r\n\r\n\r\n {{ sign }} \r\n"; - -/***/ }), -/* 707 */ -/***/ (function(module, exports) { - -module.exports = " \r\n {{ text }}\r\n "; - -/***/ }), -/* 708 */ -/***/ (function(module, exports) { - -module.exports = "\r\n"; - -/***/ }), -/* 709 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n {{ abbreviation }}\r\n"; - -/***/ }), -/* 710 */ -/***/ (function(module, exports) { - -module.exports = " \r\n {{ text }}\r\n \r\n\r\n"; - -/***/ }), -/* 711 */ -/***/ (function(module, exports) { - -module.exports = "\r\n {{ text }}\r\n "; - -/***/ }), -/* 712 */ -/***/ (function(module, exports) { - -module.exports = "\r\n"; - -/***/ }), -/* 713 */ -/***/ (function(module, exports) { - -module.exports = ""; - -/***/ }), -/* 714 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n"; - -/***/ }), -/* 715 */, -/* 716 */, -/* 717 */ +/* 684 */ /***/ (function(module, exports) { module.exports = [ { - "id": "-1", - "text": "None" - }, - { - "text": "Modifiers", - "children": [ - { - "id": "0", - "text": "LShift" - }, - { - "id": "1", - "text": "LCtrl" - }, - { - "id": "2", - "text": "LSuper" - }, - { - "id": "3", - "text": "LAlt" - }, - { - "id": "4", - "text": "RShift" - }, - { - "id": "5", - "text": "RCtrl" - }, - { - "id": "6", - "text": "RSuper" - }, - { - "id": "7", - "text": "RAlt" - } - ] - }, - { - "text": "Layer switcher", - "children": [ - { - "id": "8", - "text": "Mod" - }, - { - "id": "9", - "text": "Mouse" - }, - { - "id": "10", - "text": "Fn" - } - ] - } -]; - -/***/ }), -/* 718 */ -/***/ (function(module, exports) { - -module.exports = [ - { - "text": "Alphabet", + "text": "Letter", "children": [ { "id": "4", @@ -8334,8 +20100,12 @@ module.exports = [ ] }, { - "text": "Number Row", + "text": "Number", "children": [ + { + "id": "39", + "text": "0 )" + }, { "id": "30", "text": "1 !" @@ -8371,38 +20141,6 @@ module.exports = [ { "id": "38", "text": "9 (" - }, - { - "id": "39", - "text": "0 )" - } - ] - }, - { - "text": "Whitespace", - "children": [ - { - "id": "40", - "additional": { - "explanation": "Return" - }, - "text": "Enter" - }, - { - "id": "41", - "text": "Escape" - }, - { - "id": "42", - "text": "Backspace" - }, - { - "id": "43", - "text": "Tab" - }, - { - "id": "44", - "text": "Space" } ] }, @@ -8456,7 +20194,68 @@ module.exports = [ ] }, { - "text": "Function keys", + "text": "Whitespace", + "children": [ + { + "id": "40", + "additional": { + "explanation": "Return" + }, + "text": "Enter" + }, + { + "id": "44", + "text": "Space" + }, + { + "id": "43", + "text": "Tab" + } + ] + }, + { + "text": "Miscellaneous", + "children": [ + { + "id": "41", + "text": "Escape" + }, + { + "id": "42", + "text": "Backspace" + }, + { + "id": "73", + "text": "Insert" + }, + { + "id": "76", + "text": "Delete" + }, + { + "id": "118", + "text": "Menu" + }, + { + "id": "57", + "text": "Caps Lock" + }, + { + "id": "71", + "text": "Scroll Lock" + }, + { + "id": "70", + "text": "Print Screen" + }, + { + "id": "72", + "text": "Pause" + } + ] + }, + { + "text": "Function", "children": [ { "id": "58", @@ -8559,55 +20358,202 @@ module.exports = [ { "text": "Navigation", "children": [ - { - "id": "74", - "text": "Home" - }, { "id": "75", "additional": { - "explanation": "PgUp pageup" + "explanation": "PgUp" }, "text": "Page Up" }, + { + "id": "78", + "additional": { + "explanation": "PgDn" + }, + "text": "Page Down" + }, + { + "id": "74", + "text": "Home" + }, { "id": "77", "text": "End" }, - { - "id": "78", - "additional": { - "explanation": "PgDn pagedown" - }, - "text": "Page Down" - }, - { - "id": "79", - "additional": { - "explanation": "ArrowRight" - }, - "text": "Right Arrow" - }, { "id": "80", - "additional": { - "explanation": "ArrowLeft" - }, "text": "Left Arrow" }, { - "id": "81", - "additional": { - "explanation": "ArrowDown" - }, - "text": "Down Arrow" + "id": "79", + "text": "Right Arrow" }, { "id": "82", - "additional": { - "explanation": "ArrowUp" - }, "text": "Up Arrow" + }, + { + "id": "81", + "text": "Down Arrow" + } + ] + }, + { + "text": "Media", + "children": [ + { + "id": "127", + "text": "Mute", + "additional": { + "type": "media", + "scancode": 226 + } + }, + { + "id": "128", + "text": "Volume Up", + "additional": { + "type": "media", + "scancode": 233 + } + }, + { + "id": "129", + "text": "Volume Down", + "additional": { + "type": "media", + "scancode": 234 + } + }, + { + "id": "130", + "text": "Next Track", + "additional": { + "type": "media", + "scancode": 181 + } + }, + { + "id": "131", + "text": "Previous Track", + "additional": { + "type": "media", + "scancode": 182 + } + }, + { + "id": "132", + "text": "Stop/Eject", + "additional": { + "type": "media", + "scancode": 204 + } + }, + { + "id": "133", + "text": "Play/Pause", + "additional": { + "type": "media", + "scancode": 205 + } + }, + { + "id": "134", + "text": "Play", + "additional": { + "type": "media", + "scancode": 176 + } + }, + { + "id": "135", + "text": "Pause", + "additional": { + "type": "media", + "scancode": 177 + } + }, + { + "id": "136", + "text": "Stop", + "additional": { + "type": "media", + "scancode": 183 + } + }, + { + "id": "137", + "text": "Eject", + "additional": { + "type": "media", + "scancode": 184 + } + }, + { + "id": "138", + "text": "WWW", + "additional": { + "type": "media", + "scancode": 138 + } + } + ] + }, + { + "text": "Launch application", + "children": [ + { + "id": "142", + "text": "Launch Web Browser", + "additional": { + "type": "media", + "scancode": 406 + } + }, + { + "id": "143", + "text": "Launch Email Client", + "additional": { + "type": "media", + "scancode": 394 + } + }, + { + "id": "144", + "text": "Launch Calculator", + "additional": { + "type": "media", + "scancode": 402 + } + } + ] + }, + { + "text": "System", + "children": [ + { + "id": "139", + "text": "Power Down", + "additional": { + "type": "system", + "scancode": 129 + } + }, + { + "id": "140", + "text": "Sleep", + "additional": { + "type": "system", + "scancode": 130 + } + }, + { + "id": "141", + "text": "Wake Up", + "additional": { + "type": "system", + "scancode": 131 + } } ] }, @@ -8723,4734 +20669,605 @@ module.exports = [ { "id": "99", "additional": { - "explanation": "Period" + "explanation": "period" }, "text": "." - }, - { - "id": "176", - "additional": { - "explanation": "Doublezero" - }, - "text": "00" - }, - { - "id": "177", - "additional": { - "explanation": "Triplezero" - }, - "text": "000" - } - ] - }, - { - "text": "Misc", - "children": [ - { - "id": "118", - "text": "Menu" - }, - { - "id": "73", - "text": "Insert" - }, - { - "id": "76", - "additional": { - "explanation": "Delete Forward" - }, - "text": "Delete" - }, - { - "id": "57", - "text": "CapsLock" - }, - { - "id": "70", - "text": "PrintScreen" - }, - { - "id": "71", - "text": "ScrollLock" - }, - { - "id": "72", - "text": "Pause" - } - ] - }, - { - "text": "Media Keys", - "children": [ - { - "id": "127", - "text": "Mute" - }, - { - "id": "128", - "text": "Volume Up" - }, - { - "id": "129", - "text": "Volume Down" - }, - { - "id": "", - "text": "Next Track" - }, - { - "id": "", - "text": "Previous Track" - }, - { - "id": "", - "text": "Stop" - }, - { - "id": "", - "text": "Play/Pause" - }, - { - "id": "", - "text": "Eject" } ] } ]; /***/ }), -/* 719 */ +/* 685 */ /***/ (function(module, exports) { module.exports = [ { - "isDefault": false, - "abbreviation": "QTY", - "name": "QWERTY", - "description": "Maecenas sem dui, ullamcorper consequat pellentesque ut, mattis at velit. Duis scelerisque eleifend gravida. Aenean at mauris rhoncus, dictum mi vitae, semper eros. Quisque maximus est elit, at condimentum ligula consectetur vel. Aenean lorem felis, molestie id ex suscipit, sagittis mollis dui. Phasellus in felis in libero bibendum ornare. Duis vestibulum dolor sed diam tempor vulputate. Curabitur scelerisque pretium ipsum. Phasellus non orci vestibulum, vehicula lectus sit amet, lacinia velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In diam lacus, cursus at pretium vel, ullamcorper at ante.", - "layers": [ + "id": "-1", + "text": "None" + }, + { + "text": "Modifier", + "children": [ { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 36 - }, - { - "keyActionType": "keystroke", - "scancode": 37 - }, - { - "keyActionType": "keystroke", - "scancode": 38 - }, - { - "keyActionType": "keystroke", - "scancode": 39 - }, - { - "keyActionType": "keystroke", - "scancode": 45 - }, - { - "keyActionType": "keystroke", - "scancode": 46 - }, - { - "keyActionType": "keystroke", - "scancode": 42 - }, - { - "keyActionType": "keystroke", - "scancode": 28 - }, - { - "keyActionType": "keystroke", - "scancode": 24 - }, - { - "keyActionType": "keystroke", - "scancode": 12 - }, - { - "keyActionType": "keystroke", - "scancode": 18 - }, - { - "keyActionType": "keystroke", - "scancode": 19 - }, - { - "keyActionType": "keystroke", - "scancode": 47 - }, - { - "keyActionType": "keystroke", - "scancode": 48 - }, - { - "keyActionType": "keystroke", - "scancode": 49 - }, - { - "keyActionType": "keystroke", - "scancode": 11 - }, - { - "keyActionType": "keystroke", - "scancode": 13 - }, - { - "keyActionType": "keystroke", - "scancode": 14 - }, - { - "keyActionType": "keystroke", - "scancode": 15 - }, - { - "keyActionType": "keystroke", - "scancode": 51 - }, - { - "keyActionType": "keystroke", - "scancode": 52 - }, - { - "keyActionType": "keystroke", - "scancode": 40 - }, - { - "keyActionType": "keystroke", - "scancode": 17 - }, - { - "keyActionType": "keystroke", - "scancode": 16 - }, - { - "keyActionType": "keystroke", - "scancode": 54 - }, - { - "keyActionType": "keystroke", - "scancode": 55 - }, - { - "keyActionType": "keystroke", - "scancode": 56 - }, - { - "keyActionType": "keystroke", - "modifierMask": 32 - }, - { - "keyActionType": "keystroke", - "scancode": 44 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - } - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 53 - }, - { - "keyActionType": "keystroke", - "scancode": 30 - }, - { - "keyActionType": "keystroke", - "scancode": 31 - }, - { - "keyActionType": "keystroke", - "scancode": 32 - }, - { - "keyActionType": "keystroke", - "scancode": 33 - }, - { - "keyActionType": "keystroke", - "scancode": 34 - }, - { - "keyActionType": "keystroke", - "scancode": 35 - }, - { - "keyActionType": "keystroke", - "scancode": 43 - }, - { - "keyActionType": "keystroke", - "scancode": 20 - }, - { - "keyActionType": "keystroke", - "scancode": 26 - }, - { - "keyActionType": "keystroke", - "scancode": 8 - }, - { - "keyActionType": "keystroke", - "scancode": 21 - }, - { - "keyActionType": "keystroke", - "scancode": 23 - }, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": false - }, - { - "keyActionType": "keystroke", - "scancode": 4 - }, - { - "keyActionType": "keystroke", - "scancode": 22 - }, - { - "keyActionType": "keystroke", - "scancode": 7 - }, - { - "keyActionType": "keystroke", - "scancode": 9 - }, - { - "keyActionType": "keystroke", - "scancode": 10 - }, - { - "keyActionType": "keystroke", - "modifierMask": 2 - }, - { - "keyActionType": "keystroke", - "scancode": 29 - }, - { - "keyActionType": "keystroke", - "scancode": 27 - }, - { - "keyActionType": "keystroke", - "scancode": 6 - }, - { - "keyActionType": "keystroke", - "scancode": 25 - }, - { - "keyActionType": "keystroke", - "scancode": 5 - }, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - }, - { - "keyActionType": "keystroke", - "scancode": 44 - } - ] - }, - { - "id": 2, - "pointerRole": "scroll", - "keyActions": [] - } - ] + "id": "0", + "text": "LShift" }, { - "modules": [ - { - "id": 0, - "pointerRole": "none", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 75 - }, - { - "keyActionType": "keystroke", - "scancode": 74 - }, - { - "keyActionType": "keystroke", - "scancode": 82 - }, - { - "keyActionType": "keystroke", - "scancode": 77 - }, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 78 - }, - { - "keyActionType": "keystroke", - "scancode": 80 - }, - { - "keyActionType": "keystroke", - "scancode": 81 - }, - { - "keyActionType": "keystroke", - "scancode": 79 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "switchKeymap", - "keymapAbbreviation": "VIM" - }, - null, - { - "keyActionType": "keystroke", - "scancode": 118 - }, - { - "keyActionType": "keystroke", - "modifierMask": 32 - }, - null, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - } - ] - }, - { - "id": 1, - "pointerRole": "none", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": false - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 2 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - }, - null - ] - } - ] + "id": "1", + "text": "LCtrl" }, { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": true - }, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 232 - }, - { - "keyActionType": "keystroke", - "scancode": 237 - }, - { - "keyActionType": "keystroke", - "scancode": 233 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 234 - }, - { - "keyActionType": "keystroke", - "scancode": 238 - }, - { - "keyActionType": "keystroke", - "scancode": 235 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 239 - }, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 32 - }, - null, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": true - } - ] - }, - { - "id": 1, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": true - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": true - }, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": true - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 2 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": true - }, - null - ] - } - ] + "id": "2", + "text": "LSuper" }, { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "mouse", - "mouseAction": "scrollUp" - }, - null, - { - "keyActionType": "mouse", - "mouseAction": "moveUp" - }, - null, - null, - null, - null, - null, - { - "keyActionType": "mouse", - "mouseAction": "scrollDown" - }, - { - "keyActionType": "mouse", - "mouseAction": "moveLeft" - }, - { - "keyActionType": "mouse", - "mouseAction": "moveDown" - }, - { - "keyActionType": "mouse", - "mouseAction": "moveRight" - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": false - }, - null, - { - "keyActionType": "mouse", - "mouseAction": "rightClick" - }, - { - "keyActionType": "mouse", - "mouseAction": "middleClick" - }, - { - "keyActionType": "mouse", - "mouseAction": "leftClick" - }, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - null, - { - "keyActionType": "mouse", - "mouseAction": "accelerate" - }, - { - "keyActionType": "mouse", - "mouseAction": "decelerate" - } - ] - } - ] + "id": "3", + "text": "LAlt" + }, + { + "id": "4", + "text": "RShift" + }, + { + "id": "5", + "text": "RCtrl" + }, + { + "id": "6", + "text": "RSuper" + }, + { + "id": "7", + "text": "RAlt" } ] }, { - "isDefault": false, - "abbreviation": "VIM", - "name": "VIM", - "description": "Phasellus egestas ac tellus id tincidunt. Ut non nisl turpis. Morbi molestie diam elit, et cursus nibh tempus vel. Vestibulum mattis arcu nec nisi dictum, quis facilisis augue rutrum. Fusce vel tristique metus. Nullam pretium elit et enim maximus ornare. Praesent ultrices ligula ut mi convallis, quis ultrices enim venenatis. Aenean interdum odio aliquam quam vestibulum, vel bibendum elit ornare. Morbi leo enim, ullamcorper a bibendum sit amet, ultrices vitae ligula. Etiam consectetur et massa a convallis. Nullam non nisi aliquet, suscipit nulla a, tempor odio. Praesent eu turpis euismod, pellentesque mauris ut, imperdiet felis. Pellentesque vehicula luctus purus, et mattis ante volutpat eu. Quisque venenatis porta odio.", - "layers": [ + "text": "Layer switcher", + "children": [ { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "mouse", - "mouseAction": "scrollDown" - }, - null, - { - "keyActionType": "switchKeymap", - "keymapAbbreviation": "QTY" - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 2, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 111 - } - ] - } - ] + "id": "8", + "text": "Mod" }, { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] + "id": "9", + "text": "Mouse" }, { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - } - ] - }, - { - "isDefault": false, - "abbreviation": "DVR", - "name": "DVR", - "description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean dictum sollicitudin massa, ut lacinia ipsum. Ut bibendum ipsum ac pulvinar vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat lobortis lacus, id viverra nisl varius eu. Aliquam vitae eros a augue fermentum ultricies. Nam tempus dui sed ante ultricies bibendum. In ligula velit, aliquet a felis vitae, gravida tincidunt ante. Proin euismod velit odio, at pretium lacus porta egestas. Suspendisse aliquam, lacus accumsan dapibus elementum, orci felis egestas leo, non vulputate lorem turpis nec risus. Curabitur id volutpat orci. Sed aliquet finibus iaculis. In venenatis neque ac dolor posuere, vel vestibulum augue posuere.", - "layers": [ - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - } - ] - }, - { - "isDefault": false, - "abbreviation": "EMY", - "name": "Empty keymap", - "description": "None of the keys are bind to any key action. It is ideal if you want to start creating your keymap from the ground up.", - "layers": [ - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] + "id": "10", + "text": "Fn" } ] } ]; /***/ }), -/* 720 */ +/* 686 */ /***/ (function(module, exports) { -module.exports = { - "dataModelVersion": 3, - "moduleConfigurations": [ - { - "id": 1, - "initialPointerSpeed": 1, - "pointerAcceleration": 5, - "maxPointerSpeed": 200 - } - ], - "keymaps": [ - { - "isDefault": true, - "abbreviation": "QTY", - "name": "QWERTY", - "description": "", - "layers": [ - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 36 - }, - { - "keyActionType": "keystroke", - "scancode": 37 - }, - { - "keyActionType": "keystroke", - "scancode": 38 - }, - { - "keyActionType": "keystroke", - "scancode": 39 - }, - { - "keyActionType": "keystroke", - "scancode": 45 - }, - { - "keyActionType": "keystroke", - "scancode": 46 - }, - { - "keyActionType": "keystroke", - "scancode": 42 - }, - { - "keyActionType": "keystroke", - "scancode": 28 - }, - { - "keyActionType": "keystroke", - "scancode": 24 - }, - { - "keyActionType": "keystroke", - "scancode": 12 - }, - { - "keyActionType": "keystroke", - "scancode": 18 - }, - { - "keyActionType": "keystroke", - "scancode": 19 - }, - { - "keyActionType": "keystroke", - "scancode": 47 - }, - { - "keyActionType": "keystroke", - "scancode": 48 - }, - { - "keyActionType": "keystroke", - "scancode": 49 - }, - { - "keyActionType": "keystroke", - "scancode": 11 - }, - { - "keyActionType": "keystroke", - "scancode": 13 - }, - { - "keyActionType": "keystroke", - "scancode": 14 - }, - { - "keyActionType": "keystroke", - "scancode": 15 - }, - { - "keyActionType": "keystroke", - "scancode": 51 - }, - { - "keyActionType": "keystroke", - "scancode": 52 - }, - { - "keyActionType": "keystroke", - "scancode": 40 - }, - { - "keyActionType": "keystroke", - "scancode": 17 - }, - { - "keyActionType": "keystroke", - "scancode": 16 - }, - { - "keyActionType": "keystroke", - "scancode": 54 - }, - { - "keyActionType": "keystroke", - "scancode": 55 - }, - { - "keyActionType": "keystroke", - "scancode": 56 - }, - { - "keyActionType": "keystroke", - "modifierMask": 32 - }, - { - "keyActionType": "keystroke", - "scancode": 44 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - } - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 53 - }, - { - "keyActionType": "keystroke", - "scancode": 30 - }, - { - "keyActionType": "keystroke", - "scancode": 31 - }, - { - "keyActionType": "keystroke", - "scancode": 32 - }, - { - "keyActionType": "keystroke", - "scancode": 33 - }, - { - "keyActionType": "keystroke", - "scancode": 34 - }, - { - "keyActionType": "keystroke", - "scancode": 35 - }, - { - "keyActionType": "keystroke", - "scancode": 43 - }, - { - "keyActionType": "keystroke", - "scancode": 20 - }, - { - "keyActionType": "keystroke", - "scancode": 26 - }, - { - "keyActionType": "keystroke", - "scancode": 8 - }, - { - "keyActionType": "keystroke", - "scancode": 21 - }, - { - "keyActionType": "keystroke", - "scancode": 23 - }, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": false - }, - { - "keyActionType": "keystroke", - "scancode": 4 - }, - { - "keyActionType": "keystroke", - "scancode": 22 - }, - { - "keyActionType": "keystroke", - "scancode": 7 - }, - { - "keyActionType": "keystroke", - "scancode": 9 - }, - { - "keyActionType": "keystroke", - "scancode": 10 - }, - { - "keyActionType": "keystroke", - "modifierMask": 2 - }, - { - "keyActionType": "keystroke", - "scancode": 29 - }, - { - "keyActionType": "keystroke", - "scancode": 27 - }, - { - "keyActionType": "keystroke", - "scancode": 6 - }, - { - "keyActionType": "keystroke", - "scancode": 25 - }, - { - "keyActionType": "keystroke", - "scancode": 5 - }, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - }, - { - "keyActionType": "keystroke", - "scancode": 44 - } - ] - }, - { - "id": 2, - "pointerRole": "scroll", - "keyActions": [] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "none", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 75 - }, - { - "keyActionType": "keystroke", - "scancode": 74 - }, - { - "keyActionType": "keystroke", - "scancode": 82 - }, - { - "keyActionType": "keystroke", - "scancode": 77 - }, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 78 - }, - { - "keyActionType": "keystroke", - "scancode": 80 - }, - { - "keyActionType": "keystroke", - "scancode": 81 - }, - { - "keyActionType": "keystroke", - "scancode": 79 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "switchKeymap", - "keymapAbbreviation": "VIM" - }, - null, - { - "keyActionType": "keystroke", - "scancode": 118 - }, - { - "keyActionType": "keystroke", - "modifierMask": 32 - }, - null, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - } - ] - }, - { - "id": 1, - "pointerRole": "none", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": false - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 2 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": false - }, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": true - }, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 232 - }, - { - "keyActionType": "keystroke", - "scancode": 237 - }, - { - "keyActionType": "keystroke", - "scancode": 233 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 234 - }, - { - "keyActionType": "keystroke", - "scancode": 238 - }, - { - "keyActionType": "keystroke", - "scancode": 235 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "scancode": 239 - }, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 32 - }, - null, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": true - } - ] - }, - { - "id": 1, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": true - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": true - }, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": true - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 2 - }, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - { - "keyActionType": "switchLayer", - "layer": "fn", - "toggle": false - }, - { - "keyActionType": "switchLayer", - "layer": "mod", - "toggle": true - }, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "mouse", - "mouseAction": "scrollUp" - }, - null, - { - "keyActionType": "mouse", - "mouseAction": "moveUp" - }, - null, - null, - null, - null, - null, - { - "keyActionType": "mouse", - "mouseAction": "scrollDown" - }, - { - "keyActionType": "mouse", - "mouseAction": "moveLeft" - }, - { - "keyActionType": "mouse", - "mouseAction": "moveDown" - }, - { - "keyActionType": "mouse", - "mouseAction": "moveRight" - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 64 - }, - { - "keyActionType": "keystroke", - "modifierMask": 128 - }, - { - "keyActionType": "keystroke", - "modifierMask": 16 - }, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "switchLayer", - "layer": "mouse", - "toggle": false - }, - null, - { - "keyActionType": "mouse", - "mouseAction": "rightClick" - }, - { - "keyActionType": "mouse", - "mouseAction": "middleClick" - }, - { - "keyActionType": "mouse", - "mouseAction": "leftClick" - }, - null, - null, - null, - null, - null, - null, - null, - { - "keyActionType": "keystroke", - "modifierMask": 1 - }, - { - "keyActionType": "keystroke", - "modifierMask": 8 - }, - { - "keyActionType": "keystroke", - "modifierMask": 4 - }, - null, - { - "keyActionType": "mouse", - "mouseAction": "accelerate" - }, - { - "keyActionType": "mouse", - "mouseAction": "decelerate" - } - ] - } - ] - } - ] - }, - { - "isDefault": false, - "abbreviation": "VIM", - "name": "VIM", - "description": "", - "layers": [ - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "mouse", - "mouseAction": "scrollDown" - }, - { - "keyActionType": "playMacro", - "macroIndex": 0 - }, - { - "keyActionType": "switchKeymap", - "keymapAbbreviation": "QTY" - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 2, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 111 - } - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 111 - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 111 - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "scroll", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - { - "keyActionType": "keystroke", - "scancode": 111 - }, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - } - ] - }, - { - "isDefault": false, - "abbreviation": "DVR", - "name": "DVR", - "description": "", - "layers": [ - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - }, - { - "modules": [ - { - "id": 0, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - }, - { - "id": 1, - "pointerRole": "move", - "keyActions": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ] - } - ] - } - ] - } - ], - "macros": [ - { - "isLooped": false, - "isPrivate": true, - "name": "My address", - "macroActions": [ - { - "macroActionType": "key", - "action": "press", - "scancode": 111 - }, - { - "macroActionType": "key", - "action": "hold", - "scancode": 83 - }, - { - "macroActionType": "key", - "action": "release", - "scancode": 112 - }, - { - "macroActionType": "key", - "action": "press", - "modifierMask": 93 - }, - { - "macroActionType": "key", - "action": "hold", - "modifierMask": 101 - }, - { - "macroActionType": "key", - "action": "release", - "modifierMask": 133 - }, - { - "macroActionType": "mouseButton", - "action": "press", - "mouseButtonsMask": 9 - }, - { - "macroActionType": "mouseButton", - "action": "hold", - "mouseButtonsMask": 12 - }, - { - "macroActionType": "mouseButton", - "action": "release", - "mouseButtonsMask": 104 - }, - { - "macroActionType": "moveMouse", - "x": -1920, - "y": 220 - }, - { - "macroActionType": "scrollMouse", - "x": 0, - "y": 20000 - }, - { - "macroActionType": "delay", - "delay": 40000 - }, - { - "macroActionType": "text", - "text": "this is a text" - } - ] - }, - { - "isLooped": true, - "isPrivate": true, - "name": "Blah Blah blah", - "macroActions": [ - { - "macroActionType": "key", - "action": "press", - "scancode": 111 - }, - { - "macroActionType": "mouseButton", - "action": "release", - "mouseButtonsMask": 104 - }, - { - "macroActionType": "scrollMouse", - "x": 0, - "y": -20000 - }, - { - "macroActionType": "delay", - "delay": 40000 - }, - { - "macroActionType": "text", - "text": "blahhhhhhh" - } - ] - } - ] -}; +module.exports = "
\r\n Scancode:\r\n \r\n \r\n
\r\n
\r\n Modifiers:\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Long press action:\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n When a key is configured as layer switcher key, you can't assign other functions to it.\r\n To assign a scancode to the key, set the Layer action to None.\r\n
\r\n"; /***/ }), -/* 721 */, -/* 722 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n" - -/***/ }), -/* 723 */ -/***/ (function(module, exports) { - -module.exports = "svg-keyboard {\n width: 95%;\n max-width: 1400px;\n position: absolute;\n left: 0;\n transform: translateX(-101%);\n user-select: none; }\n" - -/***/ }), -/* 724 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n overflow-y: auto;\n display: block;\n height: 100%; }\n\n.uhk__layer-switcher--wrapper {\n position: relative; }\n .uhk__layer-switcher--wrapper:before {\n content: attr(data-title);\n display: inline-block;\n position: absolute;\n bottom: -0.3em;\n right: 100%;\n font-size: 2.4rem;\n padding-right: 0.25em;\n margin: 0; }\n\n.keymap__search {\n margin-top: 10px; }\n .keymap__search .input-group {\n width: 100%;\n max-width: 350px;\n float: left; }\n .keymap__search_amount {\n float: left;\n margin: 7px 0 0 20px; }\n\n.keymap__description {\n margin-bottom: 20px; }\n\n.keymap__list {\n margin-top: 40px; }\n .keymap__list_item {\n margin-bottom: 50px; }\n .keymap__list .btn-group-lg {\n margin: 30px 0 0;\n width: 100%;\n text-align: center; }\n .keymap__list .btn-group-lg .btn {\n float: none;\n padding-left: 50px;\n padding-right: 50px; }\n" - -/***/ }), -/* 725 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%;\n display: block; }\n\n.not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" - -/***/ }), -/* 726 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: block; }\n\n.keymap__is-default.fa-star-o {\n cursor: pointer; }\n .keymap__is-default.fa-star-o:hover {\n color: #337ab7; }\n\n.keymap__remove {\n font-size: 0.75em;\n top: 8px; }\n .keymap__remove:not(.disabled):hover {\n cursor: pointer;\n color: #900; }\n .keymap__remove.disabled {\n opacity: 0.25; }\n\n.keymap__duplicate {\n font-size: 0.75em;\n top: 7px;\n margin-right: 15px;\n position: relative; }\n .keymap__duplicate:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.layer__download {\n top: 10px;\n font-size: 0.8em;\n position: relative;\n margin-right: 10px; }\n .layer__download:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.pane-title {\n margin-bottom: 1em; }\n .pane-title__name, .pane-title__abbrev {\n border: none;\n border-bottom: 2px dotted #999;\n padding: 0;\n margin: 0 0.25rem; }\n .pane-title__name:focus, .pane-title__abbrev:focus {\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\n border-color: transparent; }\n .pane-title__name {\n width: 290px;\n text-overflow: ellipsis; }\n .pane-title__abbrev {\n width: 90px;\n text-align: center; }\n" - -/***/ }), -/* 727 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: block; }\n :host.disabled button {\n cursor: no-drop;\n background: rgba(204, 204, 204, 0.43);\n pointer-events: none; }\n :host.disabled button.btn-primary {\n background: #7c7c7c;\n border-color: #7c7c7c; }\n\nbutton {\n margin: 2px; }\n\n.uhk__layer-switcher--wrapper {\n position: relative;\n margin-bottom: 2rem; }\n .uhk__layer-switcher--wrapper:before {\n content: attr(data-title);\n display: inline-block;\n position: absolute;\n bottom: -0.3em;\n right: 100%;\n font-size: 2.4rem;\n padding-right: 0.25em;\n margin: 0; }\n" - -/***/ }), -/* 728 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n position: relative; }\n\n.macro-delay__presets {\n margin-top: 1rem; }\n .macro-delay__presets button {\n margin-right: 0.25rem;\n margin-bottom: 0.25rem; }\n" - -/***/ }), -/* 729 */ -/***/ (function(module, exports) { - -module.exports = ".macro-key__container {\n padding: 0; }\n\n.macro-key__types {\n margin-left: 0;\n padding: 0 0 1rem; }\n\n.macro-key__action {\n padding-left: 3rem;\n padding-bottom: 1rem; }\n .macro-key__action-container {\n margin-top: -1rem;\n padding-top: 1rem;\n border-left: 1px solid #ddd; }\n\n.fa {\n min-width: 14px; }\n" - -/***/ }), -/* 730 */ -/***/ (function(module, exports) { - -module.exports = ".macro-mouse__container {\n padding: 0; }\n\n.macro-mouse__types {\n border-right: 1px solid #ddd;\n border-left: 0;\n margin-top: -1rem;\n margin-left: 0;\n padding: 1rem 0; }\n\n.macro-mouse__actions {\n padding-left: 3rem;\n padding-bottom: 1rem; }\n\n.macro-mouse__buttons {\n margin-top: 3rem;\n margin-bottom: 1rem; }\n\n.fa {\n min-width: 14px; }\n\n.form-horizontal .form-group {\n margin: 0 0 0.5rem; }\n\n.form-horizontal label {\n display: inline-block;\n margin-right: 0.5rem; }\n\n.form-horizontal .form-control {\n display: inline-block;\n width: 60%; }\n" - -/***/ }), -/* 731 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n position: relative; }\n\n.macro__text-input {\n width: 100%;\n min-height: 10rem;\n margin-bottom: 1rem; }\n" - -/***/ }), -/* 732 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n\n.not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" - -/***/ }), -/* 733 */ -/***/ (function(module, exports) { - -module.exports = ".macro__remove {\n font-size: 0.75em;\n top: 8px; }\n .macro__remove:hover {\n cursor: pointer;\n color: #900; }\n\n.macro__duplicate {\n font-size: 0.75em;\n top: 7px;\n margin-right: 15px;\n position: relative; }\n .macro__duplicate:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.pane-title {\n margin-bottom: 1em; }\n .pane-title__name {\n border: none;\n border-bottom: 2px dotted #999;\n padding: 0;\n margin: 0 0.25rem;\n width: 330px;\n text-overflow: ellipsis; }\n .pane-title__name:focus {\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\n border-color: transparent; }\n" - -/***/ }), -/* 734 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n overflow: hidden;\n display: block; }\n :host.macro-item:first-of-type .list-group-item {\n border-radius: 4px 4px 0 0; }\n :host.macro-item:last-of-type .list-group-item {\n border-bottom: 0; }\n :host.gu-transit {\n opacity: 0.2; }\n :host.gu-transit .list-group-item {\n background: #f5f5f5; }\n\n.action--item {\n display: flex;\n flex-shrink: 0;\n border: 0;\n border-bottom: 1px solid #ddd; }\n .action--item icon {\n margin: 0 5px; }\n .action--item > div {\n display: flex;\n flex: 1; }\n .action--item:first-child {\n border-radius: 0; }\n .action--item.is-editing {\n background: #f5f5f5; }\n .action--item--wrap {\n justify-content: space-between; }\n .action--item--wrap.pointer:hover {\n cursor: pointer;\n color: #337ab7; }\n\n.action--title {\n display: flex;\n flex: 1; }\n\n.action--movable:hover {\n cursor: move; }\n\n.list-group-item {\n margin-bottom: 0; }\n\n.macro-action-editor__container {\n padding-top: 0;\n padding-bottom: 0;\n border-radius: 0;\n border: none;\n overflow: hidden; }\n" - -/***/ }), -/* 735 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column;\n height: 100%; }\n :host .list-container {\n display: flex;\n flex: 1; }\n\n.main-wrapper {\n width: 500px; }\n\nh1 {\n margin-bottom: 3rem; }\n\n.action--edit__form {\n background-color: #fff;\n margin-left: -0.5rem;\n margin-right: -15px;\n margin-top: 15px;\n padding-top: 15px;\n border-top: 1px solid #ddd; }\n\n.action--item {\n padding-left: 8px; }\n .action--item.active, .action--item.active:hover {\n background-color: white;\n font-weight: bold;\n color: black;\n border-color: black;\n z-index: 10; }\n\n.list-group {\n overflow: auto; }\n\n.macro__name {\n border-bottom: 2px dotted #999;\n padding: 0 0.5rem;\n margin: 0 0.25rem; }\n\n.macro-settings {\n border: 1px solid black;\n border-top-color: #999;\n z-index: 100; }\n .macro-settings .helper {\n position: absolute;\n display: block;\n height: 13px;\n background: #fff;\n width: 100%;\n left: 0;\n top: -14px; }\n\n.action--item.active.callout,\n.macro-settings.callout {\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.5); }\n\n.macro-actions-container {\n margin-bottom: 0;\n border-radius: 4px;\n border: 1px solid #ddd;\n border-bottom: 0; }\n\n.list-group-item .move-handle:hover {\n cursor: move; }\n\n.flex-button-wrapper {\n display: flex;\n flex-direction: row-reverse; }\n\n.flex-button {\n align-self: flex-end; }\n\n.add-new__action-container {\n overflow: hidden;\n flex-shrink: 0;\n border-top: 1px solid #ddd; }\n\n.add-new__action-item {\n border-radius: 0 0 4px 4px;\n border-top: 0;\n padding: 0; }\n .add-new__action-item:hover {\n cursor: pointer; }\n .add-new__action-item--link {\n width: 50%;\n float: left;\n padding: 10px 5px;\n text-align: center;\n color: #337ab7; }\n .add-new__action-item--link:first-of-type {\n border-right: 1px solid #ddd; }\n .add-new__action-item--link:hover {\n text-decoration: none;\n background: #e6e6e6; }\n .add-new__action-item .fa-circle {\n color: #c00; }\n\n.gu-mirror {\n position: fixed;\n margin: 0;\n z-index: 9999;\n opacity: 0.8; }\n\n.gu-hide {\n display: none; }\n\n.gu-unselectable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n" - -/***/ }), -/* 736 */ -/***/ (function(module, exports) { - -module.exports = ".not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" - -/***/ }), -/* 737 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n padding: 1rem 1.5rem;\n box-shadow: 0 0 0 1px #000;\n border-radius: 0.5rem;\n position: absolute;\n top: 2rem;\n right: 2rem;\n z-index: 10000;\n background-color: #333;\n color: #eee;\n display: none; }\n\n.action {\n margin-left: 1rem;\n margin-right: 1rem;\n color: #5bc0de;\n text-transform: uppercase;\n font-weight: bold; }\n .action:focus, .action:active, .action:hover {\n text-decoration: none;\n color: #5bc0de; }\n\n.dismiss {\n position: relative;\n bottom: 1px;\n color: #ccc; }\n .dismiss:hover {\n cursor: pointer;\n color: #fff; }\n" - -/***/ }), -/* 738 */ -/***/ (function(module, exports) { - -module.exports = ".popover {\n display: flex;\n flex-direction: column;\n padding: 0;\n max-width: 568px;\n width: 100%;\n user-select: none; }\n .popover.leftArrow .arrowCustom {\n transform: none;\n left: 22px; }\n .popover.rightArrow .arrowCustom {\n transform: none;\n right: 22px;\n left: auto; }\n .popover > .container-fluid {\n overflow: hidden; }\n\n.nav-tabs > li {\n overflow: hidden; }\n\n.arrowCustom {\n position: absolute;\n top: -16px;\n left: 50%;\n transform: translateX(-50%);\n width: 41px;\n height: 16px; }\n .arrowCustom:before {\n content: '';\n width: 0;\n height: 0;\n border-left: 21px solid transparent;\n border-right: 21px solid transparent;\n border-bottom: 17px solid rgba(0, 0, 0, 0.2);\n display: block;\n position: absolute;\n top: -1px; }\n .arrowCustom:after {\n content: '';\n width: 0;\n height: 0;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 16px solid #f7f7f7;\n display: block;\n position: absolute;\n top: 0; }\n\n.popover-action {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-top: 1px solid #ebebeb;\n border-radius: 0 0 5px 5px;\n text-align: right; }\n\n.popover-title.menu-tabs {\n padding: 0.5rem 0.5rem 0;\n display: block; }\n .popover-title.menu-tabs .nav-tabs {\n position: relative;\n top: 1px;\n display: flex; }\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item {\n display: flex;\n align-items: center;\n cursor: pointer; }\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item i {\n margin-right: 0.25em; }\n\n.popover-content {\n padding: 10px 24px; }\n\n.popover-overlay {\n position: fixed;\n width: 100%;\n height: 0;\n top: 0;\n left: 0;\n z-index: 1050;\n background: transparent;\n transition: background 200ms ease-out, height 0ms 200ms linear; }\n .popover-overlay.display {\n height: 100%;\n background: rgba(0, 0, 0, 0.2);\n transition: background 200ms ease-out; }\n\n.select2-item {\n position: relative;\n font-size: 1.5rem; }\n .select2-item.keymap-name--wrapper {\n padding-left: 50px; }\n .select2-item .layout-segment-code {\n height: 2rem;\n position: absolute;\n left: 0;\n top: 50%;\n margin-top: -1rem; }\n" - -/***/ }), -/* 739 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n flex-direction: column; }\n :host > span {\n text-align: center; }\n :host > div {\n display: flex;\n margin-top: 2px; }\n :host > div b {\n display: flex;\n align-items: center;\n margin-right: 7px; }\n :host > div select2 {\n flex: 1; }\n :host > div:last-child {\n margin-top: 10px; }\n :host > div:last-child img {\n max-height: 100%;\n max-width: 100%; }\n\n.empty {\n display: flex; }\n .empty img {\n display: flex;\n width: 100%;\n height: 100%;\n position: relative; }\n" - -/***/ }), -/* 740 */ +/* 687 */ /***/ (function(module, exports) { module.exports = ":host {\n display: flex;\n flex-direction: column;\n position: relative; }\n :host .scancode-options {\n margin-bottom: 10px;\n margin-top: 2px; }\n :host .scancode-options > b {\n position: relative;\n top: 2px; }\n :host .modifier-options > b {\n position: relative;\n top: -9px;\n margin-right: 4px; }\n :host .modifier-options .btn-toolbar {\n display: inline-block; }\n :host .long-press-container {\n display: flex;\n margin-top: 3rem; }\n :host .long-press-container > b {\n margin-right: 0.6em;\n align-items: center;\n display: flex; }\n :host .long-press-container .secondary-role {\n width: 135px; }\n :host .long-press-container icon {\n margin-left: 0.6em; }\n :host .setting-label.disabled {\n color: #999; }\n :host .disabled-state--text {\n display: none;\n position: absolute;\n top: 50%;\n margin-top: -4rem;\n color: #31708f;\n padding-right: 40px; }\n :host .disabled-state--text .fa {\n font-size: 2.6rem;\n float: left;\n padding: 1rem 1.5rem 2rem; }\n :host.disabled .scancode-options,\n :host.disabled .modifier-options,\n :host.disabled .long-press-container {\n visibility: hidden; }\n :host.disabled .disabled-state--text {\n display: block; }\n" /***/ }), -/* 741 */ +/* 688 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(689)); + + +/***/ }), +/* 689 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); +var tab_1 = __webpack_require__(40); +var LayerTabComponent = (function (_super) { + __extends(LayerTabComponent, _super); + function LayerTabComponent() { + var _this = _super.call(this) || this; + _this.toggleData = [ + { + id: false, + text: 'Activate' + }, + { + id: true, + text: 'Toggle' + } + ]; + _this.layerData = [ + { + id: 0, + text: 'Mod' + }, + { + id: 1, + text: 'Fn' + }, + { + id: 2, + text: 'Mouse' + } + ]; + _this.toggle = false; + _this.layer = key_action_1.LayerName.mod; + return _this; + } + LayerTabComponent.prototype.ngOnChanges = function (changes) { + if (changes['defaultKeyAction']) { + this.fromKeyAction(this.defaultKeyAction); + } + if (changes['currentLayer']) { + this.isNotBase = this.currentLayer > 0; + } + this.validAction.emit(true); + }; + LayerTabComponent.prototype.keyActionValid = function () { + return !this.isNotBase; + }; + LayerTabComponent.prototype.fromKeyAction = function (keyAction) { + if (!(keyAction instanceof key_action_1.SwitchLayerAction)) { + return false; + } + var switchLayerAction = keyAction; + this.toggle = switchLayerAction.isLayerToggleable; + this.layer = switchLayerAction.layer; + return true; + }; + LayerTabComponent.prototype.toKeyAction = function () { + var keyAction = new key_action_1.SwitchLayerAction(); + keyAction.isLayerToggleable = this.toggle; + keyAction.layer = this.layer; + if (!this.keyActionValid()) { + throw new Error('KeyAction is invalid!'); + } + return keyAction; + }; + LayerTabComponent.prototype.toggleChanged = function (value) { + this.toggle = value === 'true'; + }; + LayerTabComponent.prototype.layerChanged = function (value) { + this.layer = +value; + }; + return LayerTabComponent; +}(tab_1.Tab)); +__decorate([ + core_1.Input(), + __metadata("design:type", key_action_1.KeyAction) +], LayerTabComponent.prototype, "defaultKeyAction", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Number) +], LayerTabComponent.prototype, "currentLayer", void 0); +__decorate([ + core_1.HostBinding('class.no-base'), + __metadata("design:type", Boolean) +], LayerTabComponent.prototype, "isNotBase", void 0); +LayerTabComponent = __decorate([ + core_1.Component({ + selector: 'layer-tab', + template: __webpack_require__(690), + styles: [__webpack_require__(691)] + }), + __metadata("design:paramtypes", []) +], LayerTabComponent); +exports.LayerTabComponent = LayerTabComponent; + + +/***/ }), +/* 690 */ +/***/ (function(module, exports) { + +module.exports = "\r\n \r\n the\r\n \r\n \r\n layer by pressing this key.\r\n layer by holding this key.\r\n \r\n\r\n\r\n Layer switching is only possible from the base layer. \r\n"; + +/***/ }), +/* 691 */ /***/ (function(module, exports) { module.exports = ":host {\n display: flex;\n margin: 0 -5px; }\n :host.no-base {\n justify-content: center; }\n :host > span,\n :host > select {\n margin: 0 5px;\n display: flex;\n align-items: center; }\n\nselect {\n background-color: #fff;\n border: 1px solid #aaa;\n border-radius: 4px;\n padding: 4px 20px 4px 8px; }\n" /***/ }), -/* 742 */ +/* 692 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(693)); + + +/***/ }), +/* 693 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var store_1 = __webpack_require__(5); +var key_action_1 = __webpack_require__(14); +var tab_1 = __webpack_require__(40); +var user_configuration_1 = __webpack_require__(35); +var MacroTabComponent = (function (_super) { + __extends(MacroTabComponent, _super); + function MacroTabComponent(store) { + var _this = _super.call(this) || this; + _this.subscription = store.let(user_configuration_1.getMacros()) + .subscribe(function (macros) { return _this.macros = macros; }); + _this.macroOptions = []; + _this.selectedMacroIndex = 0; + return _this; + } + MacroTabComponent.prototype.ngOnInit = function () { + this.macroOptions = this.macros.map(function (macro, index) { + return { + id: index.toString(), + text: macro.name + }; + }); + }; + MacroTabComponent.prototype.ngOnChanges = function () { + this.fromKeyAction(this.defaultKeyAction); + this.validAction.emit(true); + }; + // TODO: change to the correct type when the wrapper has added it. + MacroTabComponent.prototype.onChange = function (event) { + this.selectedMacroIndex = +event.value; + }; + MacroTabComponent.prototype.keyActionValid = function () { + return this.selectedMacroIndex >= 0; + }; + MacroTabComponent.prototype.fromKeyAction = function (keyAction) { + if (!(keyAction instanceof key_action_1.PlayMacroAction)) { + return false; + } + var playMacroAction = keyAction; + this.selectedMacroIndex = this.macros.findIndex(function (macro) { return playMacroAction.macroId === macro.id; }); + return true; + }; + MacroTabComponent.prototype.toKeyAction = function () { + if (!this.keyActionValid()) { + throw new Error('KeyAction is not valid. No selected macro!'); + } + var keymapAction = new key_action_1.PlayMacroAction(); + keymapAction.macroId = this.macros[this.selectedMacroIndex].id; + return keymapAction; + }; + MacroTabComponent.prototype.ngOnDestroy = function () { + this.subscription.unsubscribe(); + }; + return MacroTabComponent; +}(tab_1.Tab)); +__decorate([ + core_1.Input(), + __metadata("design:type", key_action_1.KeyAction) +], MacroTabComponent.prototype, "defaultKeyAction", void 0); +MacroTabComponent = __decorate([ + core_1.Component({ + selector: 'macro-tab', + template: __webpack_require__(694), + styles: [__webpack_require__(695)] + }), + __metadata("design:paramtypes", [store_1.Store]) +], MacroTabComponent); +exports.MacroTabComponent = MacroTabComponent; + + +/***/ }), +/* 694 */ +/***/ (function(module, exports) { + +module.exports = "\r\n No macros are available to choose from. Create a macro first! \r\n\r\n 0\">\r\n
\r\n Play macro: \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
"; + +/***/ }), +/* 695 */ /***/ (function(module, exports) { module.exports = ":host {\n display: flex;\n flex-direction: column; }\n :host > span {\n text-align: center; }\n :host .macro-selector {\n display: flex;\n margin-top: 2px; }\n :host .macro-selector b {\n display: flex;\n align-items: center;\n margin-right: 7px; }\n :host .macro-selector select2 {\n flex: 1; }\n :host .macro-action-container {\n display: flex;\n flex-direction: column;\n min-height: 200px;\n max-height: 300px;\n margin: 20px 0;\n overflow-x: hidden;\n overflow-y: auto;\n border-radius: 4px;\n border: 1px solid #ddd; }\n :host .macro-action-container .list-group {\n margin-bottom: 0;\n border: 0; }\n" /***/ }), -/* 743 */ +/* 696 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(697)); + + +/***/ }), +/* 697 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); +var tab_1 = __webpack_require__(40); +var MouseTabComponent = (function (_super) { + __extends(MouseTabComponent, _super); + function MouseTabComponent() { + var _this = _super.call(this) || this; + /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ + _this.MouseActionParam = key_action_1.MouseActionParam; + _this.selectedPageIndex = 0; + _this.pages = ['Move', 'Scroll', 'Click', 'Speed']; + return _this; + } + MouseTabComponent.prototype.ngOnChanges = function () { + this.fromKeyAction(this.defaultKeyAction); + this.validAction.emit(this.keyActionValid()); + }; + MouseTabComponent.prototype.keyActionValid = function () { + return this.mouseActionParam !== undefined; + }; + MouseTabComponent.prototype.fromKeyAction = function (keyAction) { + if (!(keyAction instanceof key_action_1.MouseAction)) { + return false; + } + var mouseAction = keyAction; + this.mouseActionParam = mouseAction.mouseAction; + if (mouseAction.mouseAction === key_action_1.MouseActionParam.moveUp) { + this.selectedPageIndex = 0; + } + switch (mouseAction.mouseAction) { + case key_action_1.MouseActionParam.moveDown: + case key_action_1.MouseActionParam.moveUp: + case key_action_1.MouseActionParam.moveLeft: + case key_action_1.MouseActionParam.moveRight: + this.selectedPageIndex = 0; + break; + case key_action_1.MouseActionParam.scrollDown: + case key_action_1.MouseActionParam.scrollUp: + case key_action_1.MouseActionParam.scrollLeft: + case key_action_1.MouseActionParam.scrollRight: + this.selectedPageIndex = 1; + break; + case key_action_1.MouseActionParam.leftClick: + case key_action_1.MouseActionParam.middleClick: + case key_action_1.MouseActionParam.rightClick: + this.selectedPageIndex = 2; + break; + case key_action_1.MouseActionParam.decelerate: + case key_action_1.MouseActionParam.accelerate: + this.selectedPageIndex = 3; + break; + default: + return false; + } + return true; + }; + MouseTabComponent.prototype.toKeyAction = function () { + var mouseAction = new key_action_1.MouseAction(); + mouseAction.mouseAction = this.mouseActionParam; + return mouseAction; + }; + MouseTabComponent.prototype.changePage = function (index) { + if (index < -1 || index > 3) { + console.error("Invalid index error: " + index); + return; + } + this.selectedPageIndex = index; + this.mouseActionParam = undefined; + this.validAction.emit(false); + }; + MouseTabComponent.prototype.setMouseActionParam = function (mouseActionParam) { + this.mouseActionParam = mouseActionParam; + this.validAction.emit(true); + }; + return MouseTabComponent; +}(tab_1.Tab)); +__decorate([ + core_1.Input(), + __metadata("design:type", key_action_1.KeyAction) +], MouseTabComponent.prototype, "defaultKeyAction", void 0); +MouseTabComponent = __decorate([ + core_1.Component({ + selector: 'mouse-tab', + template: __webpack_require__(698), + styles: [__webpack_require__(699)] + }), + __metadata("design:paramtypes", []) +], MouseTabComponent); +exports.MouseTabComponent = MouseTabComponent; + + +/***/ }), +/* 698 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Press this key along with mouse movement/scrolling to accelerate/decelerate the speed of the action.

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

You can set the multiplier in the settings.

\r\n
\r\n
\r\n
\r\n
\r\n
"; + +/***/ }), +/* 699 */ /***/ (function(module, exports) { module.exports = ":host {\n display: flex; }\n :host.popover-content {\n padding: 10px;\n display: flex;\n align-items: center; }\n :host .mouse-action .nav {\n border-right: 1px solid #ccc; }\n :host .mouse-action .nav li a {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n :host .mouse-action .nav li a.selected {\n font-style: italic; }\n :host .mouse-action .nav li.active a.selected {\n font-style: normal; }\n :host .mouse-action .nav li.active a:after {\n content: '';\n display: block;\n position: absolute;\n width: 0;\n height: 0;\n top: 0;\n right: -4rem;\n border-color: transparent transparent transparent #337ab7;\n border-style: solid;\n border-width: 2rem; }\n :host .help-text--mouse-speed {\n margin-bottom: 2rem;\n font-size: 0.9em;\n color: #666; }\n :host .help-text--mouse-speed p {\n margin: 0; }\n :host .details .btn-placeholder {\n visibility: hidden; }\n\n.mouse__config--speed .btn-default {\n font-size: 25px;\n line-height: 22px;\n padding-top: 4px;\n padding-bottom: 4px; }\n .mouse__config--speed .btn-default span {\n font-size: 13px;\n display: block;\n text-align: center; }\n\n.help-text--mouse-speed.last-help {\n margin-bottom: 0;\n margin-top: 2rem; }\n" /***/ }), -/* 744 */ +/* 700 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(701)); + + +/***/ }), +/* 701 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var tab_1 = __webpack_require__(40); +var NoneTabComponent = (function (_super) { + __extends(NoneTabComponent, _super); + function NoneTabComponent() { + return _super !== null && _super.apply(this, arguments) || this; + } + NoneTabComponent.prototype.ngOnInit = function () { + this.validAction.emit(true); + }; + NoneTabComponent.prototype.keyActionValid = function () { + return true; + }; + NoneTabComponent.prototype.fromKeyAction = function () { + return false; + }; + NoneTabComponent.prototype.toKeyAction = function () { + return undefined; + }; + return NoneTabComponent; +}(tab_1.Tab)); +NoneTabComponent = __decorate([ + core_1.Component({ + selector: 'none-tab', + template: __webpack_require__(702), + styles: [__webpack_require__(703)] + }) +], NoneTabComponent); +exports.NoneTabComponent = NoneTabComponent; + + +/***/ }), +/* 702 */ +/***/ (function(module, exports) { + +module.exports = "This key is unassigned and has no functionality."; + +/***/ }), +/* 703 */ /***/ (function(module, exports) { module.exports = ":host {\n display: flex;\n justify-content: center;\n padding: 2rem 0; }\n" /***/ }), -/* 745 */ +/* 704 */ /***/ (function(module, exports) { -module.exports = "button {\n display: inline-block;\n margin: 0 0 0 0.25rem; }\n\n.fa-circle {\n color: #c00; }\n" +module.exports = "
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Press key

\r\n

Hold key

\r\n

Release key

\r\n \r\n
\r\n
\r\n
"; /***/ }), -/* 746 */ +/* 705 */ /***/ (function(module, exports) { -module.exports = ":host {\n display: flex;\n align-items: center; }\n\n.action--edit:hover {\n color: #337ab7;\n cursor: pointer; }\n\n.action--trash:hover {\n color: #d9534f;\n cursor: pointer; }\n" +module.exports = ".macro-key__container {\n padding: 0; }\n\n.macro-key__types {\n margin-left: 0;\n padding: 0 0 1rem; }\n\n.macro-key__action {\n padding-left: 3rem;\n padding-bottom: 1rem; }\n .macro-key__action-container {\n margin-top: -1rem;\n padding-top: 1rem;\n border-left: 1px solid #ddd; }\n\n.fa {\n min-width: 14px; }\n" /***/ }), -/* 747 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n" - -/***/ }), -/* 748 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n background-color: #f5f5f5;\n border-right: 1px solid #ccc;\n position: fixed;\n overflow-y: auto;\n width: 250px;\n height: 100%; }\n\na {\n color: #333; }\n\nul {\n padding: 0;\n margin: 0; }\n ul li {\n list-style: none;\n padding: 0; }\n ul ul {\n overflow: hidden; }\n\n.sidebar__level-1 {\n padding: 0.5rem 1rem;\n font-size: 2rem;\n line-height: 3rem;\n cursor: default; }\n .sidebar__level-1:hover .fa-chevron-up,\n .sidebar__level-1:hover .fa-chevron-down {\n display: inline-block; }\n .sidebar__level-1--item {\n margin-top: 0; }\n .sidebar__level-1--item:nth-child(1) {\n margin: 0; }\n .sidebar__level-1 .sidebar__name {\n width: 100%;\n display: block; }\n .sidebar__level-1 .fa-chevron-up,\n .sidebar__level-1 .fa-chevron-down {\n margin-right: 1rem;\n font-size: 1.5rem;\n position: relative;\n top: 0.5rem;\n display: none;\n cursor: pointer; }\n\n.sidebar__level-2--item {\n padding: 0 20px 0 0;\n position: relative; }\n .sidebar__level-2--item.active {\n background-color: #555;\n color: #fff; }\n .sidebar__level-2--item.active .fa-star {\n color: #fff; }\n .sidebar__level-2--item.active:hover {\n background-color: #555; }\n .sidebar__level-2--item:hover {\n cursor: pointer; }\n .sidebar__level-2--item .fa.pull-right {\n position: relative;\n top: 2px; }\n .sidebar__level-2--item .fa-star {\n color: #666; }\n .sidebar__level-2--item a {\n display: block;\n width: 100%;\n padding: 0 15px 0 30px; }\n .sidebar__level-2--item a:hover, .sidebar__level-2--item a:focus {\n text-decoration: none; }\n\n.sidebar__level-1:hover, .sidebar__level-2:hover {\n background-color: rgba(0, 0, 0, 0.05); }\n\n.sidebar__level-1.active, .sidebar__level-2.active {\n background-color: rgba(0, 0, 0, 0.18); }\n\n.sidebar__fav {\n position: absolute;\n right: 19px;\n top: 3px; }\n\n.menu--bottom {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%; }\n .menu--bottom .sidebar__level-1 {\n display: block;\n padding: 1rem;\n cursor: pointer; }\n .menu--bottom .sidebar__level-1:hover {\n text-decoration: none; }\n" - -/***/ }), -/* 749 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n display: flex;\n width: 100%;\n height: 100%;\n position: relative; }\n" - -/***/ }), -/* 750 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n cursor: pointer;\n outline: none; }\n :host /deep/ text {\n dominant-baseline: central; }\n :host:hover {\n fill: #494949; }\n" - -/***/ }), -/* 751 */ -/***/ (function(module, exports) { - -module.exports = ".disabled {\n fill: gray; }\n\ntext {\n font-size: 100px; }\n" - -/***/ }), -/* 752 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n position: relative; }\n" - -/***/ }), -/* 753 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%;\n display: block; }\n :host.space {\n margin-bottom: 405px; }\n\nkeyboard-slider {\n display: block;\n position: relative;\n overflow: hidden;\n /* TODO create dynamic */\n height: 500px;\n margin-top: 30px; }\n\n.tooltip {\n position: fixed;\n transform: translate(-50%, -6px);\n display: none; }\n .tooltip-inner {\n background: #fff;\n color: #000;\n box-shadow: 0 1px 5px #000;\n text-align: left; }\n .tooltip-inner p {\n margin-bottom: 2px; }\n .tooltip-inner p:last-of-type {\n margin-bottom: 0; }\n .tooltip.bottom .tooltip-arrow {\n border-bottom-color: #fff;\n top: 1px; }\n .tooltip.in {\n display: block;\n opacity: 1; }\n" - -/***/ }), -/* 754 */ -/***/ (function(module, exports) { - -module.exports = "main-app {\n display: block;\n overflow: hidden;\n position: relative; }\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n line-height: 26px; }\n\n.main-content {\n margin-left: 250px; }\n\n.select2-container {\n z-index: 1100; }\n .select2-container .scancode--searchterm {\n text-align: right;\n color: #b7b7b7; }\n\n.select2-item {\n display: flex;\n justify-content: space-between; }\n\n.select2-results {\n text-align: left; }\n\n.nav-pills > li > a {\n cursor: pointer; }\n\n.select2-container--default .select2-dropdown--below .select2-results > .select2-results__options {\n max-height: 300px; }\n" - -/***/ }), -/* 755 */ -/***/ (function(module, exports) { - -module.exports = "/* GitHub ribbon */\n.github-fork-ribbon {\n background-color: #a00;\n overflow: hidden;\n white-space: nowrap;\n position: fixed;\n right: -50px;\n bottom: 40px;\n z-index: 2000;\n /* stylelint-disable indentation */\n -webkit-transform: rotate(-45deg);\n -moz-transform: rotate(-45deg);\n -ms-transform: rotate(-45deg);\n -o-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-box-shadow: 0 0 10px #888;\n -moz-box-shadow: 0 0 10px #888;\n box-shadow: 0 0 10px #888;\n /* stylelint-enable indentation */ }\n .github-fork-ribbon a {\n border: 1px solid #faa;\n color: #fff;\n display: block;\n font: bold 81.25% 'Helvetica Neue', Helvetica, Arial, sans-serif;\n margin: 1px 0;\n padding: 10px 50px;\n text-align: center;\n text-decoration: none;\n text-shadow: 0 0 5px #444; }\n\nmain-app {\n min-height: 100vh;\n width: 100%; }\n" - -/***/ }), -/* 756 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(78) - - -/***/ }), -/* 757 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var Buffer = __webpack_require__(56).Buffer; -/**/ -var bufferShim = __webpack_require__(251); -/**/ - -module.exports = BufferList; - -function BufferList() { - this.head = null; - this.tail = null; - this.length = 0; -} - -BufferList.prototype.push = function (v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; -}; - -BufferList.prototype.unshift = function (v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; -}; - -BufferList.prototype.shift = function () { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; -}; - -BufferList.prototype.clear = function () { - this.head = this.tail = null; - this.length = 0; -}; - -BufferList.prototype.join = function (s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; -}; - -BufferList.prototype.concat = function (n) { - if (this.length === 0) return bufferShim.alloc(0); - if (this.length === 1) return this.head.data; - var ret = bufferShim.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - p.data.copy(ret, i); - i += p.data.length; - p = p.next; - } - return ret; -}; - -/***/ }), -/* 758 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(407) - - -/***/ }), -/* 759 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {var Stream = (function (){ - try { - return __webpack_require__(191); // hack to fix a circular dependency issue when used with browserify - } catch(_){} -}()); -exports = module.exports = __webpack_require__(408); -exports.Stream = Stream || exports; -exports.Readable = exports; -exports.Writable = __webpack_require__(271); -exports.Duplex = __webpack_require__(78); -exports.Transform = __webpack_require__(270); -exports.PassThrough = __webpack_require__(407); - -if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream; -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32))) - -/***/ }), -/* 760 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(270) - - -/***/ }), -/* 761 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(271) - - -/***/ }), -/* 762 */, -/* 763 */, -/* 764 */, -/* 765 */, -/* 766 */, -/* 767 */, -/* 768 */, -/* 769 */, -/* 770 */, -/* 771 */, -/* 772 */, -/* 773 */, -/* 774 */, -/* 775 */, -/* 776 */, -/* 777 */, -/* 778 */, -/* 779 */, -/* 780 */, -/* 781 */, -/* 782 */, -/* 783 */, -/* 784 */, -/* 785 */, -/* 786 */, -/* 787 */, -/* 788 */, -/* 789 */, -/* 790 */, -/* 791 */, -/* 792 */, -/* 793 */, -/* 794 */, -/* 795 */, -/* 796 */, -/* 797 */, -/* 798 */, -/* 799 */, -/* 800 */, -/* 801 */, -/* 802 */, -/* 803 */, -/* 804 */, -/* 805 */, -/* 806 */, -/* 807 */, -/* 808 */, -/* 809 */, -/* 810 */, -/* 811 */, -/* 812 */, -/* 813 */, -/* 814 */, -/* 815 */, -/* 816 */, -/* 817 */, -/* 818 */, -/* 819 */, -/* 820 */, -/* 821 */, -/* 822 */, -/* 823 */, -/* 824 */, -/* 825 */, -/* 826 */, -/* 827 */, -/* 828 */, -/* 829 */, -/* 830 */, -/* 831 */, -/* 832 */, -/* 833 */, -/* 834 */, -/* 835 */, -/* 836 */, -/* 837 */, -/* 838 */, -/* 839 */, -/* 840 */, -/* 841 */, -/* 842 */, -/* 843 */, -/* 844 */, -/* 845 */, -/* 846 */, -/* 847 */, -/* 848 */, -/* 849 */, -/* 850 */, -/* 851 */, -/* 852 */, -/* 853 */, -/* 854 */, -/* 855 */, -/* 856 */, -/* 857 */, -/* 858 */, -/* 859 */, -/* 860 */, -/* 861 */, -/* 862 */, -/* 863 */, -/* 864 */, -/* 865 */, -/* 866 */, -/* 867 */, -/* 868 */, -/* 869 */, -/* 870 */, -/* 871 */, -/* 872 */, -/* 873 */, -/* 874 */, -/* 875 */, -/* 876 */, -/* 877 */, -/* 878 */, -/* 879 */, -/* 880 */, -/* 881 */, -/* 882 */, -/* 883 */, -/* 884 */, -/* 885 */, -/* 886 */, -/* 887 */, -/* 888 */, -/* 889 */, -/* 890 */, -/* 891 */, -/* 892 */, -/* 893 */, -/* 894 */, -/* 895 */, -/* 896 */, -/* 897 */, -/* 898 */, -/* 899 */, -/* 900 */, -/* 901 */, -/* 902 */, -/* 903 */, -/* 904 */, -/* 905 */, -/* 906 */, -/* 907 */, -/* 908 */, -/* 909 */, -/* 910 */, -/* 911 */, -/* 912 */, -/* 913 */, -/* 914 */, -/* 915 */, -/* 916 */, -/* 917 */, -/* 918 */, -/* 919 */, -/* 920 */, -/* 921 */, -/* 922 */, -/* 923 */, -/* 924 */, -/* 925 */, -/* 926 */, -/* 927 */, -/* 928 */, -/* 929 */, -/* 930 */, -/* 931 */, -/* 932 */, -/* 933 */, -/* 934 */, -/* 935 */, -/* 936 */, -/* 937 */, -/* 938 */, -/* 939 */, -/* 940 */, -/* 941 */, -/* 942 */, -/* 943 */, -/* 944 */, -/* 945 */, -/* 946 */, -/* 947 */, -/* 948 */, -/* 949 */, -/* 950 */, -/* 951 */, -/* 952 */, -/* 953 */, -/* 954 */, -/* 955 */, -/* 956 */, -/* 957 */, -/* 958 */, -/* 959 */, -/* 960 */, -/* 961 */, -/* 962 */, -/* 963 */, -/* 964 */, -/* 965 */, -/* 966 */, -/* 967 */, -/* 968 */, -/* 969 */, -/* 970 */, -/* 971 */, -/* 972 */, -/* 973 */, -/* 974 */, -/* 975 */, -/* 976 */, -/* 977 */, -/* 978 */, -/* 979 */, -/* 980 */, -/* 981 */, -/* 982 */, -/* 983 */, -/* 984 */, -/* 985 */, -/* 986 */, -/* 987 */, -/* 988 */, -/* 989 */, -/* 990 */, -/* 991 */, -/* 992 */, -/* 993 */, -/* 994 */, -/* 995 */, -/* 996 */, -/* 997 */, -/* 998 */, -/* 999 */, -/* 1000 */, -/* 1001 */, -/* 1002 */, -/* 1003 */, -/* 1004 */, -/* 1005 */, -/* 1006 */, -/* 1007 */, -/* 1008 */, -/* 1009 */, -/* 1010 */, -/* 1011 */ +/* 706 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var add_on_component_1 = __webpack_require__(443); -exports.addOnRoutes = [ - { - path: 'add-on/:name', - component: add_on_component_1.AddOnComponent - } -]; - - -/***/ }), -/* 1012 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var keyboard_slider_component_1 = __webpack_require__(1013); -exports.KeyboardSliderComponent = keyboard_slider_component_1.KeyboardSliderComponent; - - -/***/ }), -/* 1013 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var KeyboardSliderComponent = (function () { - function KeyboardSliderComponent() { - this.keyClick = new core_1.EventEmitter(); - this.keyHover = new core_1.EventEmitter(); - this.capture = new core_1.EventEmitter(); - } - KeyboardSliderComponent.prototype.ngOnChanges = function (changes) { - if (changes['layers']) { - this.layerAnimationState = this.layers.map(function () { return 'leftOut'; }); - this.layerAnimationState[this.currentLayer] = 'leftIn'; - } - var layerChange = changes['currentLayer']; - if (layerChange) { - var prevValue = layerChange.isFirstChange() ? layerChange.currentValue : layerChange.previousValue; - this.onLayerChange(prevValue, layerChange.currentValue); - } - }; - KeyboardSliderComponent.prototype.trackKeyboard = function (index) { - return index; - }; - KeyboardSliderComponent.prototype.onLayerChange = function (oldIndex, index) { - if (index > oldIndex) { - this.layerAnimationState[oldIndex] = 'leftOut'; - this.layerAnimationState[index] = 'leftIn'; - } - else { - this.layerAnimationState[oldIndex] = 'rightOut'; - this.layerAnimationState[index] = 'rightIn'; - } - }; - return KeyboardSliderComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], KeyboardSliderComponent.prototype, "layers", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], KeyboardSliderComponent.prototype, "currentLayer", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], KeyboardSliderComponent.prototype, "keybindAnimationEnabled", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], KeyboardSliderComponent.prototype, "capturingEnabled", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], KeyboardSliderComponent.prototype, "keyClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], KeyboardSliderComponent.prototype, "keyHover", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], KeyboardSliderComponent.prototype, "capture", void 0); -KeyboardSliderComponent = __decorate([ - core_1.Component({ - selector: 'keyboard-slider', - template: __webpack_require__(671), - styles: [__webpack_require__(723)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush, - // We use 101%, because there was still a trace of the keyboard in the screen when animation was done - animations: [ - core_1.trigger('layerState', [ - core_1.state('leftIn, rightIn', core_1.style({ - transform: 'translateX(-50%)', - left: '50%' - })), - core_1.state('leftOut', core_1.style({ - transform: 'translateX(-101%)', - left: '0' - })), - core_1.state('rightOut', core_1.style({ - transform: 'translateX(0)', - left: '101%' - })), - core_1.transition('leftOut => leftIn, rightOut => leftIn', [ - core_1.animate('400ms ease-out', core_1.keyframes([ - core_1.style({ transform: 'translateX(0%)', left: '101%', offset: 0 }), - core_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 1 }) - ])) - ]), - core_1.transition('leftIn => leftOut, rightIn => leftOut', [ - core_1.animate('400ms ease-out', core_1.keyframes([ - core_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }), - core_1.style({ transform: 'translateX(-101%)', left: '0%', offset: 1 }) - ])) - ]), - core_1.transition('* => rightIn', [ - core_1.animate('400ms ease-out', core_1.keyframes([ - core_1.style({ transform: 'translateX(-101%)', left: '0%', offset: 0 }), - core_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 1 }) - ])) - ]), - core_1.transition('* => rightOut', [ - core_1.animate('400ms ease-out', core_1.keyframes([ - core_1.style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }), - core_1.style({ transform: 'translateX(0%)', left: '101%', offset: 1 }) - ])) - ]), - core_1.transition(':leave', [ - core_1.animate('2000ms ease-out', core_1.keyframes([ - core_1.style({ opacity: 1, offset: 0 }), - core_1.style({ opacity: 0, offset: 1 }) - ])) - ]) - ]) - ] - }) -], KeyboardSliderComponent); -exports.KeyboardSliderComponent = KeyboardSliderComponent; - - -/***/ }), -/* 1014 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -var Observable_1 = __webpack_require__(1); -__webpack_require__(178); -__webpack_require__(122); -__webpack_require__(123); -__webpack_require__(273); -var store_1 = __webpack_require__(9); -var user_configuration_1 = __webpack_require__(55); -var KeymapEditGuard = (function () { - function KeymapEditGuard(store, router) { - this.store = store; - this.router = router; - } - KeymapEditGuard.prototype.canActivate = function () { - var _this = this; - return this.store - .let(user_configuration_1.getKeymaps()) - .do(function (keymaps) { - var defaultKeymap = keymaps.find(function (keymap) { return keymap.isDefault; }); - _this.router.navigate(['/keymap', defaultKeymap.abbreviation]); - }) - .switchMap(function () { return Observable_1.Observable.of(false); }); - }; - return KeymapEditGuard; -}()); -KeymapEditGuard = __decorate([ - core_1.Injectable(), - __metadata("design:paramtypes", [store_1.Store, router_1.Router]) -], KeymapEditGuard); -exports.KeymapEditGuard = KeymapEditGuard; - - -/***/ }), -/* 1015 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -var Keymap_1 = __webpack_require__(80); -var actions_1 = __webpack_require__(54); -var KeymapHeaderComponent = (function () { - function KeymapHeaderComponent(store, renderer) { - this.store = store; - this.renderer = renderer; - this.downloadClick = new core_1.EventEmitter(); - } - KeymapHeaderComponent.prototype.ngOnChanges = function (changes) { - if (changes['keymap']) { - this.setKeymapTitle(); - } - if (changes['deletable']) { - this.setTrashTitle(); - } - }; - KeymapHeaderComponent.prototype.setDefault = function () { - if (!this.keymap.isDefault) { - this.store.dispatch(actions_1.KeymapActions.setDefault(this.keymap.abbreviation)); - } - }; - KeymapHeaderComponent.prototype.removeKeymap = function () { - if (this.deletable) { - this.store.dispatch(actions_1.KeymapActions.removeKeymap(this.keymap.abbreviation)); - } - }; - KeymapHeaderComponent.prototype.duplicateKeymap = function () { - this.store.dispatch(actions_1.KeymapActions.duplicateKeymap(this.keymap)); - }; - KeymapHeaderComponent.prototype.editKeymapName = function (name) { - if (name.length === 0) { - this.renderer.setElementProperty(this.keymapName.nativeElement, 'value', this.keymap.name); - return; - } - this.store.dispatch(actions_1.KeymapActions.editKeymapName(this.keymap.abbreviation, name)); - }; - KeymapHeaderComponent.prototype.editKeymapAbbr = function (newAbbr) { - if (newAbbr.length !== 3) { - this.renderer.setElementProperty(this.keymapAbbr.nativeElement, 'value', this.keymap.abbreviation); - return; - } - newAbbr = newAbbr.toUpperCase(); - this.store.dispatch(actions_1.KeymapActions.editKeymapAbbr(this.keymap.abbreviation, newAbbr)); - }; - KeymapHeaderComponent.prototype.setKeymapTitle = function () { - this.starTitle = this.keymap.isDefault - ? 'This is the default keymap which gets activated when powering the keyboard.' - : 'Makes this keymap the default keymap which gets activated when powering the keyboard.'; - }; - KeymapHeaderComponent.prototype.setTrashTitle = function () { - this.trashTitle = this.deletable ? '' : 'The last keymap cannot be deleted.'; - }; - KeymapHeaderComponent.prototype.onDownloadIconClick = function () { - this.downloadClick.emit(); - }; - return KeymapHeaderComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Keymap_1.Keymap) -], KeymapHeaderComponent.prototype, "keymap", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], KeymapHeaderComponent.prototype, "deletable", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], KeymapHeaderComponent.prototype, "downloadClick", void 0); -__decorate([ - core_1.ViewChild('name'), - __metadata("design:type", core_1.ElementRef) -], KeymapHeaderComponent.prototype, "keymapName", void 0); -__decorate([ - core_1.ViewChild('abbr'), - __metadata("design:type", core_1.ElementRef) -], KeymapHeaderComponent.prototype, "keymapAbbr", void 0); -KeymapHeaderComponent = __decorate([ - core_1.Component({ - selector: 'keymap-header', - template: __webpack_require__(674), - styles: [__webpack_require__(726)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [store_1.Store, core_1.Renderer]) -], KeymapHeaderComponent); -exports.KeymapHeaderComponent = KeymapHeaderComponent; - - -/***/ }), -/* 1016 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(445)); -__export(__webpack_require__(447)); -__export(__webpack_require__(1015)); - - -/***/ }), -/* 1017 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1018)); - - -/***/ }), -/* 1018 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var LayersComponent = (function () { - function LayersComponent() { - this.select = new core_1.EventEmitter(); - this.buttons = ['Base', 'Mod', 'Fn', 'Mouse']; - this.current = 0; - } - LayersComponent.prototype.selectLayer = function (index) { - if (this.current === index) { - return; - } - this.select.emit({ - oldIndex: this.current, - index: index - }); - this.current = index; - }; - return LayersComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], LayersComponent.prototype, "current", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], LayersComponent.prototype, "select", void 0); -LayersComponent = __decorate([ - core_1.Component({ - selector: 'layers', - template: __webpack_require__(675), - styles: [__webpack_require__(727)] - }), - __metadata("design:paramtypes", []) -], LayersComponent); -exports.LayersComponent = LayersComponent; - - -/***/ }), -/* 1019 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_action_editor_component_1 = __webpack_require__(1020); -exports.MacroActionEditorComponent = macro_action_editor_component_1.MacroActionEditorComponent; - - -/***/ }), -/* 1020 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var macro_action_1 = __webpack_require__(69); -var TabName; -(function (TabName) { - TabName[TabName["Keypress"] = 0] = "Keypress"; - TabName[TabName["Text"] = 1] = "Text"; - TabName[TabName["Mouse"] = 2] = "Mouse"; - TabName[TabName["Delay"] = 3] = "Delay"; -})(TabName || (TabName = {})); -; -var MacroActionEditorComponent = (function () { - function MacroActionEditorComponent() { - this.save = new core_1.EventEmitter(); - this.cancel = new core_1.EventEmitter(); - /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ - /* tslint:disable:no-unused-variable: It is used in the template. */ - this.TabName = TabName; - } - /* tslint:enable:no-unused-variable */ - /* tslint:enable:variable-name */ - MacroActionEditorComponent.prototype.ngOnInit = function () { - var macroAction = this.macroAction ? this.macroAction : new macro_action_1.TextMacroAction(); - this.editableMacroAction = new macro_action_1.EditableMacroAction(macroAction.toJsonObject()); - var tab = this.getTabName(this.editableMacroAction); - this.activeTab = tab; - }; - MacroActionEditorComponent.prototype.onCancelClick = function () { - this.cancel.emit(); - }; - MacroActionEditorComponent.prototype.onSaveClick = function () { - try { - var action = this.editableMacroAction; - if (action.isKeyAction()) { - // Could updating the saved keys be done in a better way? - var tab = this.selectedTab; - action.fromKeyAction(tab.getKeyAction()); - } - this.save.emit(action.toClass()); - } - catch (e) { - // TODO: show error dialog - console.error(e); - } - }; - MacroActionEditorComponent.prototype.selectTab = function (tab) { - this.activeTab = tab; - this.editableMacroAction.macroActionType = this.getTabMacroActionType(tab); - }; - MacroActionEditorComponent.prototype.getTabName = function (action) { - switch (action.macroActionType) { - // Delay action - case macro_action_1.macroActionType.DelayMacroAction: - return TabName.Delay; - // Text action - case macro_action_1.macroActionType.TextMacroAction: - return TabName.Text; - // Keypress actions - case macro_action_1.macroActionType.KeyMacroAction: - return TabName.Keypress; - // Mouse actions - case macro_action_1.macroActionType.MouseButtonMacroAction: - case macro_action_1.macroActionType.MoveMouseMacroAction: - case macro_action_1.macroActionType.ScrollMouseMacroAction: - return TabName.Mouse; - default: - return TabName.Keypress; - } - }; - MacroActionEditorComponent.prototype.getTabMacroActionType = function (tab) { - switch (tab) { - case TabName.Delay: - return macro_action_1.macroActionType.DelayMacroAction; - case TabName.Keypress: - return macro_action_1.macroActionType.KeyMacroAction; - case TabName.Mouse: - return macro_action_1.macroActionType.MouseButtonMacroAction; - case TabName.Text: - return macro_action_1.macroActionType.TextMacroAction; - default: - throw new Error('Could not get macro action type'); - } - }; - return MacroActionEditorComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", macro_action_1.MacroAction) -], MacroActionEditorComponent.prototype, "macroAction", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroActionEditorComponent.prototype, "save", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroActionEditorComponent.prototype, "cancel", void 0); -__decorate([ - core_1.ViewChild('tab'), - __metadata("design:type", Object) -], MacroActionEditorComponent.prototype, "selectedTab", void 0); -MacroActionEditorComponent = __decorate([ - core_1.Component({ - selector: 'macro-action-editor', - template: __webpack_require__(676), - styles: [__webpack_require__(269)], - host: { 'class': 'macro-action-editor' } - }) -], MacroActionEditorComponent); -exports.MacroActionEditorComponent = MacroActionEditorComponent; - - -/***/ }), -/* 1021 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_delay_component_1 = __webpack_require__(1022); -exports.MacroDelayTabComponent = macro_delay_component_1.MacroDelayTabComponent; - - -/***/ }), -/* 1022 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var macro_action_1 = __webpack_require__(69); -var INITIAL_DELAY = 0.5; // In seconds -var MacroDelayTabComponent = (function () { - /* tslint:enable:no-unused-variable */ - function MacroDelayTabComponent() { - /* tslint:disable:no-unused-variable: It is used in the template. */ - this.presets = [0.3, 0.5, 0.8, 1, 2, 3, 4, 5]; - } - MacroDelayTabComponent.prototype.ngOnInit = function () { - this.delay = this.macroAction.delay > 0 ? this.macroAction.delay / 1000 : INITIAL_DELAY; - }; - MacroDelayTabComponent.prototype.setDelay = function (value) { - this.delay = value; - this.macroAction.delay = this.delay * 1000; - }; - return MacroDelayTabComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", macro_action_1.EditableMacroAction) -], MacroDelayTabComponent.prototype, "macroAction", void 0); -__decorate([ - core_1.ViewChild('macroDelayInput'), - __metadata("design:type", core_1.ElementRef) -], MacroDelayTabComponent.prototype, "input", void 0); -MacroDelayTabComponent = __decorate([ - core_1.Component({ - selector: 'macro-delay-tab', - template: __webpack_require__(677), - styles: [__webpack_require__(728)], - host: { 'class': 'macro__delay' }, - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], MacroDelayTabComponent); -exports.MacroDelayTabComponent = MacroDelayTabComponent; - - -/***/ }), -/* 1023 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var delay_1 = __webpack_require__(1021); -exports.MacroDelayTabComponent = delay_1.MacroDelayTabComponent; -var key_1 = __webpack_require__(1024); -exports.MacroKeyTabComponent = key_1.MacroKeyTabComponent; -var mouse_1 = __webpack_require__(1026); -exports.MacroMouseTabComponent = mouse_1.MacroMouseTabComponent; -var text_1 = __webpack_require__(1028); -exports.MacroTextTabComponent = text_1.MacroTextTabComponent; - - -/***/ }), -/* 1024 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_key_component_1 = __webpack_require__(1025); -exports.MacroKeyTabComponent = macro_key_component_1.MacroKeyTabComponent; - - -/***/ }), -/* 1025 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var macro_action_1 = __webpack_require__(69); -var tab_1 = __webpack_require__(193); -var tab_2 = __webpack_require__(193); -var TabName; -(function (TabName) { - TabName[TabName["Keypress"] = 0] = "Keypress"; - TabName[TabName["Hold"] = 1] = "Hold"; - TabName[TabName["Release"] = 2] = "Release"; -})(TabName || (TabName = {})); -var MacroKeyTabComponent = (function () { - function MacroKeyTabComponent() { - /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ - /* tslint:disable:no-unused-variable: It is used in the template. */ - this.TabName = TabName; - } - /* tslint:enable:no-unused-variable */ - /* tslint:enable:variable-name */ - MacroKeyTabComponent.prototype.ngOnInit = function () { - this.defaultKeyAction = this.macroAction.toKeystrokeAction(); - this.selectTab(this.getTabName(this.macroAction)); - }; - MacroKeyTabComponent.prototype.selectTab = function (tab) { - this.activeTab = tab; - this.macroAction.action = this.getActionType(tab); - }; - MacroKeyTabComponent.prototype.getTabName = function (action) { - if (!action.action || action.isOnlyPressAction()) { - return TabName.Keypress; - } - else if (action.isOnlyHoldAction()) { - return TabName.Hold; - } - else if (action.isOnlyReleaseAction()) { - return TabName.Release; - } - }; - MacroKeyTabComponent.prototype.getActionType = function (tab) { - switch (tab) { - case TabName.Keypress: - return macro_action_1.MacroSubAction.press; - case TabName.Hold: - return macro_action_1.MacroSubAction.hold; - case TabName.Release: - return macro_action_1.MacroSubAction.release; - default: - throw new Error('Invalid tab type'); - } - }; - MacroKeyTabComponent.prototype.getKeyAction = function () { - return this.keypressTab.toKeyAction(); - }; - return MacroKeyTabComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", macro_action_1.EditableMacroAction) -], MacroKeyTabComponent.prototype, "macroAction", void 0); -__decorate([ - core_1.ViewChild('tab'), - __metadata("design:type", tab_2.Tab) -], MacroKeyTabComponent.prototype, "selectedTab", void 0); -__decorate([ - core_1.ViewChild('keypressTab'), - __metadata("design:type", tab_1.KeypressTabComponent) -], MacroKeyTabComponent.prototype, "keypressTab", void 0); -MacroKeyTabComponent = __decorate([ - core_1.Component({ - selector: 'macro-key-tab', - template: __webpack_require__(678), - styles: [ - __webpack_require__(269), - __webpack_require__(729) - ], - host: { 'class': 'macro__mouse' } - }) -], MacroKeyTabComponent); -exports.MacroKeyTabComponent = MacroKeyTabComponent; - - -/***/ }), -/* 1026 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_mouse_component_1 = __webpack_require__(1027); +var macro_mouse_component_1 = __webpack_require__(707); exports.MacroMouseTabComponent = macro_mouse_component_1.MacroMouseTabComponent; /***/ }), -/* 1027 */ +/* 707 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -13465,9 +21282,9 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var macro_action_1 = __webpack_require__(69); -var tab_1 = __webpack_require__(193); +var core_1 = __webpack_require__(1); +var macro_action_1 = __webpack_require__(39); +var tab_1 = __webpack_require__(100); var TabName; (function (TabName) { TabName[TabName["Move"] = 0] = "Move"; @@ -13477,16 +21294,17 @@ var TabName; TabName[TabName["Release"] = 4] = "Release"; })(TabName || (TabName = {})); var MacroMouseTabComponent = (function () { - /* tslint:enable:no-unused-variable */ - /* tslint:enable:variable-name */ function MacroMouseTabComponent() { /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ - /* tslint:disable:no-unused-variable: It is used in the template. */ this.TabName = TabName; this.buttonLabels = ['Left', 'Middle', 'Right']; this.selectedButtons = Array(this.buttonLabels.length).fill(false); } MacroMouseTabComponent.prototype.ngOnInit = function () { + if (!this.macroAction) { + this.macroAction = new macro_action_1.MouseButtonMacroAction(); + this.macroAction.action = macro_action_1.MacroSubAction.press; + } var tabName = this.getTabName(this.macroAction); this.selectTab(tabName); var buttonActions = [TabName.Click, TabName.Hold, TabName.Release]; @@ -13494,11 +21312,25 @@ var MacroMouseTabComponent = (function () { this.selectedButtons = this.macroAction.getMouseButtons(); } }; + MacroMouseTabComponent.prototype.ngOnChanges = function () { + this.ngOnInit(); + }; MacroMouseTabComponent.prototype.selectTab = function (tab) { this.activeTab = tab; - this.macroAction.macroActionType = this.getMacroActionType(tab); - if (this.macroAction.macroActionType === macro_action_1.macroActionType.MouseButtonMacroAction) { - this.macroAction.action = this.getAction(tab); + if (tab === this.getTabName(this.macroAction)) { + return; + } + switch (tab) { + case TabName.Scroll: + this.macroAction = new macro_action_1.ScrollMouseMacroAction(); + break; + case TabName.Move: + this.macroAction = new macro_action_1.MoveMouseMacroAction(); + break; + default: + this.macroAction = new macro_action_1.MouseButtonMacroAction(); + this.macroAction.action = this.getAction(tab); + break; } }; MacroMouseTabComponent.prototype.setMouseClick = function (index) { @@ -13517,45 +21349,34 @@ var MacroMouseTabComponent = (function () { case TabName.Release: return macro_action_1.MacroSubAction.release; default: - throw new Error('Invalid tab name'); + throw new Error("Invalid tab name: " + TabName[tab]); } }; MacroMouseTabComponent.prototype.getTabName = function (action) { - if (action.macroActionType === macro_action_1.macroActionType.MouseButtonMacroAction) { + if (action instanceof macro_action_1.MouseButtonMacroAction) { if (!action.action || action.isOnlyPressAction()) { return TabName.Click; } - else if (action.isOnlyPressAction()) { + else if (action.isOnlyHoldAction()) { return TabName.Hold; } else if (action.isOnlyReleaseAction()) { return TabName.Release; } } - else if (action.macroActionType === macro_action_1.macroActionType.MoveMouseMacroAction) { + else if (action instanceof macro_action_1.MoveMouseMacroAction) { return TabName.Move; } - else if (action.macroActionType === macro_action_1.macroActionType.ScrollMouseMacroAction) { + else if (action instanceof macro_action_1.ScrollMouseMacroAction) { return TabName.Scroll; } return TabName.Move; }; - MacroMouseTabComponent.prototype.getMacroActionType = function (tab) { - if (tab === TabName.Click || tab === TabName.Hold || tab === TabName.Release) { - return macro_action_1.macroActionType.MouseButtonMacroAction; - } - else if (tab === TabName.Move) { - return macro_action_1.macroActionType.MoveMouseMacroAction; - } - else if (tab === TabName.Scroll) { - return macro_action_1.macroActionType.ScrollMouseMacroAction; - } - }; return MacroMouseTabComponent; }()); __decorate([ core_1.Input(), - __metadata("design:type", macro_action_1.EditableMacroAction) + __metadata("design:type", Object) ], MacroMouseTabComponent.prototype, "macroAction", void 0); __decorate([ core_1.ViewChild('tab'), @@ -13564,10 +21385,10 @@ __decorate([ MacroMouseTabComponent = __decorate([ core_1.Component({ selector: 'macro-mouse-tab', - template: __webpack_require__(679), + template: __webpack_require__(708), styles: [ - __webpack_require__(269), - __webpack_require__(730) + __webpack_require__(141), + __webpack_require__(709) ], host: { 'class': 'macro__mouse' } }), @@ -13577,18 +21398,30 @@ exports.MacroMouseTabComponent = MacroMouseTabComponent; /***/ }), -/* 1028 */ +/* 708 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Move pointer

\r\n

Use negative values to move down or left from current position.

\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n
\r\n
\r\n

Scroll

\r\n

Use negative values to move down or left from current position.

\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n \r\n pixels\r\n
\r\n
\r\n
\r\n
\r\n

Click mouse button

\r\n

Hold mouse button

\r\n

Release mouse button

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n"; + +/***/ }), +/* 709 */ +/***/ (function(module, exports) { + +module.exports = ".macro-mouse__container {\n padding: 0; }\n\n.macro-mouse__types {\n border-right: 1px solid #ddd;\n border-left: 0;\n margin-top: -1rem;\n margin-left: 0;\n padding: 1rem 0; }\n\n.macro-mouse__actions {\n padding-left: 3rem;\n padding-bottom: 1rem; }\n\n.macro-mouse__buttons {\n margin-top: 3rem;\n margin-bottom: 1rem; }\n\n.fa {\n min-width: 14px; }\n\n.form-horizontal .form-group {\n margin: 0 0 0.5rem; }\n\n.form-horizontal label {\n display: inline-block;\n margin-right: 0.5rem; }\n\n.form-horizontal .form-control {\n display: inline-block;\n width: 60%; }\n" + +/***/ }), +/* 710 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var macro_text_component_1 = __webpack_require__(1029); +var macro_text_component_1 = __webpack_require__(711); exports.MacroTextTabComponent = macro_text_component_1.MacroTextTabComponent; /***/ }), -/* 1029 */ +/* 711 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -13603,12 +21436,17 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var macro_action_1 = __webpack_require__(69); +var core_1 = __webpack_require__(1); +var macro_action_1 = __webpack_require__(39); var MacroTextTabComponent = (function () { function MacroTextTabComponent(renderer) { this.renderer = renderer; } + MacroTextTabComponent.prototype.ngOnInit = function () { + if (!this.macroAction) { + this.macroAction = new macro_action_1.TextMacroAction(); + } + }; MacroTextTabComponent.prototype.ngAfterViewInit = function () { this.renderer.invokeElementMethod(this.input.nativeElement, 'focus'); }; @@ -13619,7 +21457,7 @@ var MacroTextTabComponent = (function () { }()); __decorate([ core_1.Input(), - __metadata("design:type", macro_action_1.EditableMacroAction) + __metadata("design:type", macro_action_1.TextMacroAction) ], MacroTextTabComponent.prototype, "macroAction", void 0); __decorate([ core_1.ViewChild('macroTextInput'), @@ -13628,8 +21466,8 @@ __decorate([ MacroTextTabComponent = __decorate([ core_1.Component({ selector: 'macro-text-tab', - template: __webpack_require__(680), - styles: [__webpack_require__(731)], + template: __webpack_require__(712), + styles: [__webpack_require__(713)], host: { 'class': 'macro__text' } }), __metadata("design:paramtypes", [core_1.Renderer]) @@ -13638,585 +21476,25 @@ exports.MacroTextTabComponent = MacroTextTabComponent; /***/ }), -/* 1030 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -var Macro_1 = __webpack_require__(194); -var actions_1 = __webpack_require__(54); -var MacroHeaderComponent = (function () { - function MacroHeaderComponent(store, renderer) { - this.store = store; - this.renderer = renderer; - } - MacroHeaderComponent.prototype.ngOnChanges = function () { - if (this.isNew) { - this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []); - } - }; - MacroHeaderComponent.prototype.ngAfterViewInit = function () { - if (this.isNew) { - this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []); - } - }; - MacroHeaderComponent.prototype.removeMacro = function () { - this.store.dispatch(actions_1.MacroActions.removeMacro(this.macro.id)); - }; - MacroHeaderComponent.prototype.duplicateMacro = function () { - this.store.dispatch(actions_1.MacroActions.duplicateMacro(this.macro)); - }; - MacroHeaderComponent.prototype.editMacroName = function (name) { - if (name.length === 0) { - this.renderer.setElementProperty(this.macroName.nativeElement, 'value', this.macro.name); - return; - } - this.store.dispatch(actions_1.MacroActions.editMacroName(this.macro.id, name)); - }; - return MacroHeaderComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Macro_1.Macro) -], MacroHeaderComponent.prototype, "macro", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], MacroHeaderComponent.prototype, "isNew", void 0); -__decorate([ - core_1.ViewChild('macroName'), - __metadata("design:type", core_1.ElementRef) -], MacroHeaderComponent.prototype, "macroName", void 0); -MacroHeaderComponent = __decorate([ - core_1.Component({ - selector: 'macro-header', - template: __webpack_require__(682), - styles: [__webpack_require__(733)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [store_1.Store, core_1.Renderer]) -], MacroHeaderComponent); -exports.MacroHeaderComponent = MacroHeaderComponent; +/* 712 */ +/***/ (function(module, exports) { +module.exports = "
\r\n

Type text

\r\n

Input the text you want to type with this macro action.

\r\n \r\n
"; /***/ }), -/* 1031 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_item_component_1 = __webpack_require__(1032); -exports.MacroItemComponent = macro_item_component_1.MacroItemComponent; +/* 713 */ +/***/ (function(module, exports) { +module.exports = ":host {\n display: flex;\n flex-direction: column;\n position: relative; }\n\n.macro__text-input {\n width: 100%;\n min-height: 10rem;\n margin-bottom: 1rem; }\n" /***/ }), -/* 1032 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var KeyModifiers_1 = __webpack_require__(290); -var macro_action_1 = __webpack_require__(69); -var mapper_service_1 = __webpack_require__(31); -var MacroItemComponent = (function () { - function MacroItemComponent(mapper) { - this.mapper = mapper; - this.save = new core_1.EventEmitter(); - this.cancel = new core_1.EventEmitter(); - this.edit = new core_1.EventEmitter(); - this.delete = new core_1.EventEmitter(); - this.newItem = false; - } - MacroItemComponent.prototype.ngOnInit = function () { - this.updateView(); - if (!this.macroAction) { - this.editing = true; - this.newItem = true; - } - }; - MacroItemComponent.prototype.ngOnChanges = function (changes) { - if (changes['macroAction']) { - this.updateView(); - } - }; - MacroItemComponent.prototype.saveEditedAction = function (editedAction) { - this.macroAction = editedAction; - this.editing = false; - this.updateView(); - this.save.emit(editedAction); - }; - MacroItemComponent.prototype.editAction = function () { - if (!this.editable || this.editing) { - return; - } - this.editing = true; - this.edit.emit(); - }; - MacroItemComponent.prototype.cancelEdit = function () { - this.editing = false; - this.cancel.emit(); - }; - MacroItemComponent.prototype.deleteAction = function () { - this.delete.emit(); - }; - MacroItemComponent.prototype.updateView = function () { - if (!this.macroAction) { - this.title = 'New macro action'; - } - else if (this.macroAction instanceof macro_action_1.DelayMacroAction) { - // Delay - this.iconName = 'clock'; - var action = this.macroAction; - var delay_1 = action.delay > 0 ? action.delay / 1000 : 0; - this.title = "Delay of " + delay_1 + "s"; - } - else if (this.macroAction instanceof macro_action_1.TextMacroAction) { - // Write text - var action = this.macroAction; - this.iconName = 'font'; - this.title = "Write text: " + action.text; - } - else if (this.macroAction instanceof macro_action_1.KeyMacroAction) { - // Key pressed/held/released - var action = this.macroAction; - this.setKeyActionContent(action); - } - else if (this.macroAction instanceof macro_action_1.MouseButtonMacroAction) { - // Mouse button clicked/held/released - var action = this.macroAction; - this.setMouseButtonActionContent(action); - } - else if (this.macroAction instanceof macro_action_1.MoveMouseMacroAction || this.macroAction instanceof macro_action_1.ScrollMouseMacroAction) { - // Mouse moved or scrolled - this.setMouseMoveScrollActionContent(this.macroAction); - } - else { - this.title = this.macroAction.constructor.name; - } - }; - MacroItemComponent.prototype.setKeyActionContent = function (action) { - if (!action.hasScancode() && !action.hasModifiers()) { - this.title = 'Invalid keypress'; - return; - } - if (action.isPressAction()) { - // Press key - this.iconName = 'hand-pointer'; - this.title = 'Press key: '; - } - else if (action.isHoldAction()) { - // Hold key - this.iconName = 'hand-rock'; - this.title = 'Hold key: '; - } - else if (action.isReleaseAction()) { - // Release key - this.iconName = 'hand-paper'; - this.title = 'Release key: '; - } - if (action.hasScancode()) { - var scancode = (this.mapper.scanCodeToText(action.scancode) || ['Unknown']).join(' '); - if (scancode) { - this.title += scancode; - } - } - if (action.hasModifiers()) { - // Press/hold/release modifiers - for (var i = KeyModifiers_1.KeyModifiers.leftCtrl; i !== KeyModifiers_1.KeyModifiers.rightGui; i <<= 1) { - if (action.isModifierActive(i)) { - this.title += ' ' + KeyModifiers_1.KeyModifiers[i]; - } - } - } - }; - MacroItemComponent.prototype.setMouseMoveScrollActionContent = function (action) { - var typedAction; - if (action instanceof macro_action_1.MoveMouseMacroAction) { - // Move mouse pointer - this.iconName = 'mouse-pointer'; - this.title = 'Move pointer'; - typedAction = this.macroAction; - } - else { - // Scroll mouse - this.iconName = 'mouse-pointer'; - this.title = 'Scroll'; - typedAction = this.macroAction; - } - var needAnd; - if (Math.abs(typedAction.x) !== 0) { - this.title += " by " + Math.abs(typedAction.x) + "px " + (typedAction.x > 0 ? 'left' : 'right'); - needAnd = true; - } - if (Math.abs(typedAction.y) !== 0) { - this.title += " " + (needAnd ? 'and' : 'by') + " " + Math.abs(typedAction.y) + "px " + (typedAction.y > 0 ? 'down' : 'up'); - } - }; - MacroItemComponent.prototype.setMouseButtonActionContent = function (action) { - // Press/hold/release mouse buttons - if (action.isOnlyPressAction()) { - this.iconName = 'mouse-pointer'; - this.title = 'Click mouse button: '; - } - else if (action.isOnlyHoldAction()) { - this.iconName = 'hand-rock'; - this.title = 'Hold mouse button: '; - } - else if (action.isOnlyReleaseAction()) { - this.iconName = 'hand-paper'; - this.title = 'Release mouse button: '; - } - var buttonLabels = ['Left', 'Middle', 'Right']; - var selectedButtons = action.getMouseButtons(); - var selectedButtonLabels = []; - selectedButtons.forEach(function (isSelected, idx) { - if (isSelected && buttonLabels[idx]) { - selectedButtonLabels.push(buttonLabels[idx]); - } - }); - this.title += selectedButtonLabels.join(', '); - }; - return MacroItemComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", macro_action_1.MacroAction) -], MacroItemComponent.prototype, "macroAction", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], MacroItemComponent.prototype, "editable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], MacroItemComponent.prototype, "deletable", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], MacroItemComponent.prototype, "movable", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroItemComponent.prototype, "save", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroItemComponent.prototype, "cancel", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroItemComponent.prototype, "edit", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroItemComponent.prototype, "delete", void 0); -MacroItemComponent = __decorate([ - core_1.Component({ - animations: [ - core_1.trigger('toggler', [ - core_1.state('inactive', core_1.style({ - height: '0px' - })), - core_1.state('active', core_1.style({ - height: '*' - })), - core_1.transition('inactive <=> active', core_1.animate('500ms ease-out')) - ]) - ], - selector: 'macro-item', - template: __webpack_require__(683), - styles: [__webpack_require__(734)], - host: { 'class': 'macro-item' } - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], MacroItemComponent); -exports.MacroItemComponent = MacroItemComponent; +/* 714 */ +/***/ (function(module, exports) { +module.exports = "
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
"; /***/ }), -/* 1033 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var ng2_dragula_1 = __webpack_require__(404); -var Macro_1 = __webpack_require__(194); -var index_1 = __webpack_require__(288); -var MacroListComponent = (function () { - function MacroListComponent(dragulaService) { - var _this = this; - this.dragulaService = dragulaService; - this.add = new core_1.EventEmitter(); - this.edit = new core_1.EventEmitter(); - this.delete = new core_1.EventEmitter(); - this.reorder = new core_1.EventEmitter(); - this.newMacro = undefined; - this.activeEdit = undefined; - this.showNew = false; - /* tslint:disable:no-unused-variable: Used by Dragula. */ - dragulaService.setOptions('macroActions', { - moves: function (el, container, handle) { - return handle.className.includes('action--movable'); - } - }); - dragulaService.drag.subscribe(function (value) { - _this.dragIndex = +value[1].getAttribute('data-index'); - }); - dragulaService.drop.subscribe(function (value) { - if (value[4]) { - _this.reorder.emit({ - macroId: _this.macro.id, - oldIndex: _this.dragIndex, - newIndex: +value[4].getAttribute('data-index') - }); - } - }); - } - MacroListComponent.prototype.showNewAction = function () { - this.hideActiveEditor(); - this.newMacro = undefined; - this.showNew = true; - }; - MacroListComponent.prototype.hideNewAction = function () { - this.showNew = false; - }; - MacroListComponent.prototype.addNewAction = function (macroAction) { - this.add.emit({ - macroId: this.macro.id, - action: macroAction - }); - this.newMacro = undefined; - this.showNew = false; - }; - MacroListComponent.prototype.editAction = function (index) { - // Hide other editors when clicking edit button of a macro action - this.hideActiveEditor(); - this.showNew = false; - this.activeEdit = index; - }; - MacroListComponent.prototype.cancelAction = function () { - this.activeEdit = undefined; - }; - MacroListComponent.prototype.saveAction = function (macroAction, index) { - this.edit.emit({ - macroId: this.macro.id, - index: index, - action: macroAction - }); - this.hideActiveEditor(); - }; - MacroListComponent.prototype.deleteAction = function (macroAction, index) { - this.delete.emit({ - macroId: this.macro.id, - index: index, - action: macroAction - }); - this.hideActiveEditor(); - }; - MacroListComponent.prototype.hideActiveEditor = function () { - if (this.activeEdit !== undefined) { - this.macroItems.toArray()[this.activeEdit].cancelEdit(); - } - }; - return MacroListComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Macro_1.Macro) -], MacroListComponent.prototype, "macro", void 0); -__decorate([ - core_1.ViewChildren(core_1.forwardRef(function () { return index_1.MacroItemComponent; })), - __metadata("design:type", core_1.QueryList) -], MacroListComponent.prototype, "macroItems", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroListComponent.prototype, "add", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroListComponent.prototype, "edit", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroListComponent.prototype, "delete", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], MacroListComponent.prototype, "reorder", void 0); -MacroListComponent = __decorate([ - core_1.Component({ - animations: [ - core_1.trigger('toggler', [ - core_1.state('inactive', core_1.style({ - height: '0px' - })), - core_1.state('active', core_1.style({ - height: '*' - })), - core_1.transition('inactive <=> active', core_1.animate('500ms ease-out')) - ]), - core_1.trigger('togglerNew', [ - core_1.state('void', core_1.style({ - height: '0px' - })), - core_1.state('active', core_1.style({ - height: '*' - })), - core_1.transition(':enter', core_1.animate('500ms ease-out')), - core_1.transition(':leave', core_1.animate('500ms ease-out')) - ]) - ], - selector: 'macro-list', - template: __webpack_require__(684), - styles: [__webpack_require__(735)], - viewProviders: [ng2_dragula_1.DragulaService] - }), - __metadata("design:paramtypes", [ng2_dragula_1.DragulaService]) -], MacroListComponent); -exports.MacroListComponent = MacroListComponent; - - -/***/ }), -/* 1034 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_edit_component_1 = __webpack_require__(448); -var not_found_1 = __webpack_require__(289); -exports.macroRoutes = [ - { - path: 'macro', - component: not_found_1.MacroNotFoundComponent, - canActivate: [not_found_1.MacroNotFoundGuard] - }, - { - path: 'macro/:id', - component: macro_edit_component_1.MacroEditComponent - }, - { - path: 'macro/:id/:empty', - component: macro_edit_component_1.MacroEditComponent - } -]; - - -/***/ }), -/* 1035 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -__webpack_require__(123); -__webpack_require__(65); -var store_1 = __webpack_require__(9); -var user_configuration_1 = __webpack_require__(55); -var MacroNotFoundGuard = (function () { - function MacroNotFoundGuard(store, router) { - this.store = store; - this.router = router; - } - MacroNotFoundGuard.prototype.canActivate = function () { - var _this = this; - return this.store - .let(user_configuration_1.getMacros()) - .map(function (macros) { - var hasMacros = macros.length > 0; - if (hasMacros) { - _this.router.navigate(['/macro', macros[0].id]); - } - return !hasMacros; - }); - }; - return MacroNotFoundGuard; -}()); -MacroNotFoundGuard = __decorate([ - core_1.Injectable(), - __metadata("design:paramtypes", [store_1.Store, router_1.Router]) -], MacroNotFoundGuard); -exports.MacroNotFoundGuard = MacroNotFoundGuard; - - -/***/ }), -/* 1036 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var MacroNotFoundComponent = (function () { - function MacroNotFoundComponent() { - } - return MacroNotFoundComponent; -}()); -MacroNotFoundComponent = __decorate([ - core_1.Component({ - selector: 'macro-not-found', - template: __webpack_require__(685), - styles: [__webpack_require__(736)] - }) -], MacroNotFoundComponent); -exports.MacroNotFoundComponent = MacroNotFoundComponent; - - -/***/ }), -/* 1037 */ +/* 715 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14225,11 +21503,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1038)); +__export(__webpack_require__(716)); /***/ }), -/* 1038 */ +/* 716 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14244,7 +21522,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var NotificationComponent = (function () { function NotificationComponent() { } @@ -14253,8 +21531,8 @@ var NotificationComponent = (function () { NotificationComponent = __decorate([ core_1.Component({ selector: 'notification', - template: __webpack_require__(686), - styles: [__webpack_require__(737)] + template: __webpack_require__(717), + styles: [__webpack_require__(718)] }), __metadata("design:paramtypes", []) ], NotificationComponent); @@ -14262,7 +21540,19 @@ exports.NotificationComponent = NotificationComponent; /***/ }), -/* 1039 */ +/* 717 */ +/***/ (function(module, exports) { + +module.exports = "Keymap removed\r\nUndo\r\n×"; + +/***/ }), +/* 718 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n padding: 1rem 1.5rem;\n box-shadow: 0 0 0 1px #000;\n border-radius: 0.5rem;\n position: absolute;\n top: 2rem;\n right: 2rem;\n z-index: 10000;\n background-color: #333;\n color: #eee;\n display: none; }\n\n.action {\n margin-left: 1rem;\n margin-right: 1rem;\n color: #5bc0de;\n text-transform: uppercase;\n font-weight: bold; }\n .action:focus, .action:active, .action:hover {\n text-decoration: none;\n color: #5bc0de; }\n\n.dismiss {\n position: relative;\n bottom: 1px;\n color: #ccc; }\n .dismiss:hover {\n cursor: pointer;\n color: #fff; }\n" + +/***/ }), +/* 719 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14277,12 +21567,13 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -var key_action_1 = __webpack_require__(22); -var Keymap_1 = __webpack_require__(80); -var tab_1 = __webpack_require__(67); -var user_configuration_1 = __webpack_require__(55); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var store_1 = __webpack_require__(5); +var key_action_1 = __webpack_require__(14); +var keymap_1 = __webpack_require__(48); +var tab_1 = __webpack_require__(40); +var user_configuration_1 = __webpack_require__(35); var TabName; (function (TabName) { TabName[TabName["Keypress"] = 0] = "Keypress"; @@ -14295,7 +21586,6 @@ var TabName; var PopoverComponent = (function () { function PopoverComponent(store) { var _this = this; - this.store = store; this.cancel = new core_1.EventEmitter(); this.remap = new core_1.EventEmitter(); this.tabName = TabName; @@ -14395,7 +21685,7 @@ __decorate([ ], PopoverComponent.prototype, "defaultKeyAction", void 0); __decorate([ core_1.Input(), - __metadata("design:type", Keymap_1.Keymap) + __metadata("design:type", keymap_1.Keymap) ], PopoverComponent.prototype, "currentKeymap", void 0); __decorate([ core_1.Input(), @@ -14438,33 +21728,33 @@ __decorate([ PopoverComponent = __decorate([ core_1.Component({ selector: 'popover', - template: __webpack_require__(687), - styles: [__webpack_require__(738)], + template: __webpack_require__(720), + styles: [__webpack_require__(721)], animations: [ - core_1.trigger('popover', [ - core_1.state('closed', core_1.style({ + animations_1.trigger('popover', [ + animations_1.state('closed', animations_1.style({ transform: 'translateY(30px)', visibility: 'hidden', opacity: 0 })), - core_1.state('opened', core_1.style({ + animations_1.state('opened', animations_1.style({ transform: 'translateY(0)', visibility: 'visible', opacity: 1 })), - core_1.transition('opened => closed', [ - core_1.animate('200ms ease-out', core_1.keyframes([ - core_1.style({ transform: 'translateY(0)', visibility: 'visible', opacity: 1, offset: 0 }), - core_1.style({ transform: 'translateY(30px)', visibility: 'hidden', opacity: 0, offset: 1 }) + animations_1.transition('opened => closed', [ + animations_1.animate('200ms ease-out', animations_1.keyframes([ + animations_1.style({ transform: 'translateY(0)', visibility: 'visible', opacity: 1, offset: 0 }), + animations_1.style({ transform: 'translateY(30px)', visibility: 'hidden', opacity: 0, offset: 1 }) ])) ]), - core_1.transition('closed => opened', [ - core_1.style({ + animations_1.transition('closed => opened', [ + animations_1.style({ visibility: 'visible' }), - core_1.animate('200ms ease-out', core_1.keyframes([ - core_1.style({ transform: 'translateY(30px)', opacity: 0, offset: 0 }), - core_1.style({ transform: 'translateY(0)', opacity: 1, offset: 1 }) + animations_1.animate('200ms ease-out', animations_1.keyframes([ + animations_1.style({ transform: 'translateY(30px)', opacity: 0, offset: 0 }), + animations_1.style({ transform: 'translateY(0)', opacity: 1, offset: 1 }) ])) ]) ]) @@ -14476,7 +21766,19 @@ exports.PopoverComponent = PopoverComponent; /***/ }), -/* 1040 */ +/* 720 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n"; + +/***/ }), +/* 721 */ +/***/ (function(module, exports) { + +module.exports = ".popover {\n display: flex;\n flex-direction: column;\n padding: 0;\n max-width: 568px;\n width: 100%;\n user-select: none; }\n .popover.leftArrow .arrowCustom {\n transform: none;\n left: 22px; }\n .popover.rightArrow .arrowCustom {\n transform: none;\n right: 22px;\n left: auto; }\n .popover > .container-fluid {\n overflow: hidden; }\n\n.nav-tabs > li {\n overflow: hidden; }\n\n.arrowCustom {\n position: absolute;\n top: -16px;\n left: 50%;\n transform: translateX(-50%);\n width: 41px;\n height: 16px; }\n .arrowCustom:before {\n content: '';\n width: 0;\n height: 0;\n border-left: 21px solid transparent;\n border-right: 21px solid transparent;\n border-bottom: 17px solid rgba(0, 0, 0, 0.2);\n display: block;\n position: absolute;\n top: -1px; }\n .arrowCustom:after {\n content: '';\n width: 0;\n height: 0;\n border-left: 20px solid transparent;\n border-right: 20px solid transparent;\n border-bottom: 16px solid #f7f7f7;\n display: block;\n position: absolute;\n top: 0; }\n\n.popover-action {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-top: 1px solid #ebebeb;\n border-radius: 0 0 5px 5px;\n text-align: right; }\n\n.popover-title.menu-tabs {\n padding: 0.5rem 0.5rem 0;\n display: block; }\n .popover-title.menu-tabs .nav-tabs {\n position: relative;\n top: 1px;\n display: flex; }\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item {\n display: flex;\n align-items: center;\n cursor: pointer; }\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item i {\n margin-right: 0.25em; }\n\n.popover-content {\n padding: 10px 24px; }\n\n.popover-overlay {\n position: fixed;\n width: 100%;\n height: 0;\n top: 0;\n left: 0;\n z-index: 1050;\n background: transparent;\n transition: background 200ms ease-out, height 0ms 200ms linear; }\n .popover-overlay.display {\n height: 100%;\n background: rgba(0, 0, 0, 0.2);\n transition: background 200ms ease-out; }\n\n.select2-item {\n position: relative;\n font-size: 1.5rem; }\n .select2-item.keymap-name--wrapper {\n padding-left: 50px; }\n .select2-item .layout-segment-code {\n height: 2rem;\n position: absolute;\n left: 0;\n top: 50%;\n margin-top: -1rem; }\n" + +/***/ }), +/* 722 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14485,736 +21787,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1041)); +__export(__webpack_require__(723)); /***/ }), -/* 1041 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var key_action_1 = __webpack_require__(22); -var tab_1 = __webpack_require__(67); -var KeymapTabComponent = (function (_super) { - __extends(KeymapTabComponent, _super); - function KeymapTabComponent() { - var _this = _super.call(this) || this; - _this.keymapOptions = []; - return _this; - } - KeymapTabComponent.prototype.ngOnInit = function () { - this.keymapOptions = this.keymaps - .map(function (keymap) { - return { - id: keymap.abbreviation, - text: keymap.name - }; - }); - if (this.keymaps.length > 0) { - this.selectedKeymap = this.keymaps[0]; - } - }; - KeymapTabComponent.prototype.ngOnChanges = function () { - this.fromKeyAction(this.defaultKeyAction); - this.validAction.emit(true); - }; - // TODO: change to the correct type when the wrapper has added it. - KeymapTabComponent.prototype.onChange = function (event) { - if (event.value === '-1') { - this.selectedKeymap = undefined; - } - else { - this.selectedKeymap = this.keymaps.find(function (keymap) { return keymap.abbreviation === event.value; }); - } - }; - KeymapTabComponent.prototype.keyActionValid = function () { - return !!this.selectedKeymap; - }; - KeymapTabComponent.prototype.fromKeyAction = function (keyAction) { - if (!(keyAction instanceof key_action_1.SwitchKeymapAction)) { - return false; - } - var switchKeymapAction = keyAction; - this.selectedKeymap = this.keymaps - .find(function (keymap) { return keymap.abbreviation === switchKeymapAction.keymapAbbreviation; }); - }; - KeymapTabComponent.prototype.toKeyAction = function () { - if (!this.keyActionValid()) { - throw new Error('KeyAction is not valid. No selected keymap!'); - } - var keymapAction = new key_action_1.SwitchKeymapAction(); - keymapAction.keymapAbbreviation = this.selectedKeymap.abbreviation; - return keymapAction; - }; - return KeymapTabComponent; -}(tab_1.Tab)); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], KeymapTabComponent.prototype, "defaultKeyAction", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], KeymapTabComponent.prototype, "keymaps", void 0); -KeymapTabComponent = __decorate([ - core_1.Component({ - selector: 'keymap-tab', - template: __webpack_require__(688), - styles: [__webpack_require__(739)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], KeymapTabComponent); -exports.KeymapTabComponent = KeymapTabComponent; - - -/***/ }), -/* 1042 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1043)); - - -/***/ }), -/* 1043 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(jQuery) { -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var key_action_1 = __webpack_require__(22); -var tab_1 = __webpack_require__(67); -var mapper_service_1 = __webpack_require__(31); -var KeypressTabComponent = (function (_super) { - __extends(KeypressTabComponent, _super); - function KeypressTabComponent(mapper) { - var _this = _super.call(this) || this; - _this.mapper = mapper; - _this.scanCodeTemplateResult = function (state) { - if (!state.id) { - return state.text; - } - if (state.additional && state.additional.explanation) { - return jQuery('' - + '' + state.text + '' - + ' ' - + state.additional.explanation - + '' + - ''); - } - else { - return jQuery('' + state.text + ''); - } - }; - _this.leftModifiers = ['LShift', 'LCtrl', 'LSuper', 'LAlt']; - _this.rightModifiers = ['RShift', 'RCtrl', 'RSuper', 'RAlt']; - _this.scanCodeGroups = [{ - id: '0', - text: 'None' - }]; - _this.scanCodeGroups = _this.scanCodeGroups.concat(__webpack_require__(718)); - _this.longPressGroups = __webpack_require__(717); - _this.leftModifierSelects = Array(_this.leftModifiers.length).fill(false); - _this.rightModifierSelects = Array(_this.rightModifiers.length).fill(false); - _this.scanCode = 0; - _this.selectedLongPressIndex = -1; - _this.options = { - templateResult: _this.scanCodeTemplateResult, - matcher: function (term, text, data) { - var found = text.toUpperCase().indexOf(term.toUpperCase()) > -1; - if (!found && data.additional && data.additional.explanation) { - found = data.additional.explanation.toUpperCase().indexOf(term.toUpperCase()) > -1; - } - return found; - } - }; - return _this; - } - KeypressTabComponent.prototype.ngOnChanges = function () { - this.fromKeyAction(this.defaultKeyAction); - this.validAction.emit(this.keyActionValid()); - }; - KeypressTabComponent.prototype.keyActionValid = function (keystrokeAction) { - if (!keystrokeAction) { - keystrokeAction = this.toKeyAction(); - } - return (keystrokeAction) ? (keystrokeAction.scancode > 0 || keystrokeAction.modifierMask > 0) : false; - }; - KeypressTabComponent.prototype.onKeysCapture = function (event) { - if (event.code) { - this.scanCode = event.code; - } - else { - this.scanCode = 0; - } - this.leftModifierSelects = event.left; - this.rightModifierSelects = event.right; - this.validAction.emit(this.keyActionValid()); - }; - KeypressTabComponent.prototype.fromKeyAction = function (keyAction) { - if (!(keyAction instanceof key_action_1.KeystrokeAction)) { - return false; - } - var keystrokeAction = keyAction; - // Restore scancode - this.scanCode = keystrokeAction.scancode || 0; - var leftModifiersLength = this.leftModifiers.length; - // Restore modifiers - for (var i = 0; i < leftModifiersLength; ++i) { - this.leftModifierSelects[this.mapper.modifierMapper(i)] = ((keystrokeAction.modifierMask >> i) & 1) === 1; - } - for (var i = leftModifiersLength; i < leftModifiersLength + this.rightModifierSelects.length; ++i) { - var index = this.mapper.modifierMapper(i) - leftModifiersLength; - this.rightModifierSelects[index] = ((keystrokeAction.modifierMask >> i) & 1) === 1; - } - // Restore longPressAction - if (keystrokeAction.longPressAction !== undefined) { - this.selectedLongPressIndex = this.mapper.modifierMapper(keystrokeAction.longPressAction); - } - return true; - }; - KeypressTabComponent.prototype.toKeyAction = function () { - var keystrokeAction = new key_action_1.KeystrokeAction(); - keystrokeAction.scancode = this.scanCode; - keystrokeAction.modifierMask = 0; - var modifiers = this.leftModifierSelects.concat(this.rightModifierSelects).map(function (x) { return x ? 1 : 0; }); - for (var i = 0; i < modifiers.length; ++i) { - keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i); - } - keystrokeAction.longPressAction = this.selectedLongPressIndex === -1 - ? undefined - : this.mapper.modifierMapper(this.selectedLongPressIndex); - if (this.keyActionValid(keystrokeAction)) { - return keystrokeAction; - } - }; - KeypressTabComponent.prototype.toggleModifier = function (right, index) { - var modifierSelects = right ? this.rightModifierSelects : this.leftModifierSelects; - modifierSelects[index] = !modifierSelects[index]; - this.validAction.emit(this.keyActionValid()); - }; - KeypressTabComponent.prototype.onLongpressChange = function (event) { - this.selectedLongPressIndex = +event.value; - }; - KeypressTabComponent.prototype.onScancodeChange = function (event) { - this.scanCode = +event.value; - this.validAction.emit(this.keyActionValid()); - }; - return KeypressTabComponent; -}(tab_1.Tab)); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], KeypressTabComponent.prototype, "defaultKeyAction", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], KeypressTabComponent.prototype, "longPressEnabled", void 0); -KeypressTabComponent = __decorate([ - core_1.Component({ - selector: 'keypress-tab', - template: __webpack_require__(689), - styles: [__webpack_require__(740)] - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], KeypressTabComponent); -exports.KeypressTabComponent = KeypressTabComponent; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18))) - -/***/ }), -/* 1044 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1045)); - - -/***/ }), -/* 1045 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var key_action_1 = __webpack_require__(22); -var tab_1 = __webpack_require__(67); -var LayerTabComponent = (function (_super) { - __extends(LayerTabComponent, _super); - function LayerTabComponent() { - var _this = _super.call(this) || this; - _this.toggleData = [ - { - id: false, - text: 'Activate' - }, - { - id: true, - text: 'Toggle' - } - ]; - _this.layerData = [ - { - id: 0, - text: 'Mod' - }, - { - id: 1, - text: 'Fn' - }, - { - id: 2, - text: 'Mouse' - } - ]; - _this.toggle = false; - _this.layer = key_action_1.LayerName.mod; - return _this; - } - LayerTabComponent.prototype.ngOnChanges = function (changes) { - if (changes['defaultKeyAction']) { - this.fromKeyAction(this.defaultKeyAction); - } - if (changes['currentLayer']) { - this.isNotBase = this.currentLayer > 0; - } - this.validAction.emit(true); - }; - LayerTabComponent.prototype.keyActionValid = function () { - return !this.isNotBase; - }; - LayerTabComponent.prototype.fromKeyAction = function (keyAction) { - if (!(keyAction instanceof key_action_1.SwitchLayerAction)) { - return false; - } - var switchLayerAction = keyAction; - this.toggle = switchLayerAction.isLayerToggleable; - this.layer = switchLayerAction.layer; - return true; - }; - LayerTabComponent.prototype.toKeyAction = function () { - var keyAction = new key_action_1.SwitchLayerAction(); - keyAction.isLayerToggleable = this.toggle; - keyAction.layer = this.layer; - if (!this.keyActionValid()) { - throw new Error('KeyAction is invalid!'); - } - return keyAction; - }; - LayerTabComponent.prototype.toggleChanged = function (value) { - this.toggle = value === 'true'; - }; - LayerTabComponent.prototype.layerChanged = function (value) { - this.layer = +value; - }; - return LayerTabComponent; -}(tab_1.Tab)); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], LayerTabComponent.prototype, "defaultKeyAction", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], LayerTabComponent.prototype, "currentLayer", void 0); -__decorate([ - core_1.HostBinding('class.no-base'), - __metadata("design:type", Boolean) -], LayerTabComponent.prototype, "isNotBase", void 0); -LayerTabComponent = __decorate([ - core_1.Component({ - selector: 'layer-tab', - template: __webpack_require__(690), - styles: [__webpack_require__(741)] - }), - __metadata("design:paramtypes", []) -], LayerTabComponent); -exports.LayerTabComponent = LayerTabComponent; - - -/***/ }), -/* 1046 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1047)); - - -/***/ }), -/* 1047 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -var key_action_1 = __webpack_require__(22); -var tab_1 = __webpack_require__(67); -var user_configuration_1 = __webpack_require__(55); -var MacroTabComponent = (function (_super) { - __extends(MacroTabComponent, _super); - function MacroTabComponent(store) { - var _this = _super.call(this) || this; - _this.store = store; - _this.subscription = store.let(user_configuration_1.getMacros()) - .subscribe(function (macros) { return _this.macros = macros; }); - _this.macroOptions = []; - _this.selectedMacroIndex = 0; - return _this; - } - MacroTabComponent.prototype.ngOnInit = function () { - this.macroOptions = this.macros.map(function (macro, index) { - return { - id: index.toString(), - text: macro.name - }; - }); - }; - MacroTabComponent.prototype.ngOnChanges = function () { - this.fromKeyAction(this.defaultKeyAction); - this.validAction.emit(true); - }; - // TODO: change to the correct type when the wrapper has added it. - MacroTabComponent.prototype.onChange = function (event) { - this.selectedMacroIndex = +event.value; - }; - MacroTabComponent.prototype.keyActionValid = function () { - return this.selectedMacroIndex >= 0; - }; - MacroTabComponent.prototype.fromKeyAction = function (keyAction) { - if (!(keyAction instanceof key_action_1.PlayMacroAction)) { - return false; - } - var playMacroAction = keyAction; - this.selectedMacroIndex = this.macros.findIndex(function (macro) { return playMacroAction.macroId === macro.id; }); - return true; - }; - MacroTabComponent.prototype.toKeyAction = function () { - if (!this.keyActionValid()) { - throw new Error('KeyAction is not valid. No selected macro!'); - } - var keymapAction = new key_action_1.PlayMacroAction(); - keymapAction.macroId = this.macros[this.selectedMacroIndex].id; - return keymapAction; - }; - MacroTabComponent.prototype.ngOnDestroy = function () { - this.subscription.unsubscribe(); - }; - return MacroTabComponent; -}(tab_1.Tab)); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], MacroTabComponent.prototype, "defaultKeyAction", void 0); -MacroTabComponent = __decorate([ - core_1.Component({ - selector: 'macro-tab', - template: __webpack_require__(691), - styles: [__webpack_require__(742)] - }), - __metadata("design:paramtypes", [store_1.Store]) -], MacroTabComponent); -exports.MacroTabComponent = MacroTabComponent; - - -/***/ }), -/* 1048 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1049)); - - -/***/ }), -/* 1049 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var key_action_1 = __webpack_require__(22); -var tab_1 = __webpack_require__(67); -var MouseTabComponent = (function (_super) { - __extends(MouseTabComponent, _super); - function MouseTabComponent() { - var _this = _super.call(this) || this; - /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ - /* tslint:disable:no-unused-variable: It is used in the template. */ - _this.MouseActionParam = key_action_1.MouseActionParam; - _this.selectedPageIndex = 0; - _this.pages = ['Move', 'Scroll', 'Click', 'Speed']; - return _this; - } - MouseTabComponent.prototype.ngOnChanges = function () { - this.fromKeyAction(this.defaultKeyAction); - this.validAction.emit(this.keyActionValid()); - }; - MouseTabComponent.prototype.keyActionValid = function () { - return this.mouseActionParam !== undefined; - }; - MouseTabComponent.prototype.fromKeyAction = function (keyAction) { - if (!(keyAction instanceof key_action_1.MouseAction)) { - return false; - } - var mouseAction = keyAction; - this.mouseActionParam = mouseAction.mouseAction; - if (mouseAction.mouseAction === key_action_1.MouseActionParam.moveUp) { - this.selectedPageIndex = 0; - } - switch (mouseAction.mouseAction) { - case key_action_1.MouseActionParam.moveDown: - case key_action_1.MouseActionParam.moveUp: - case key_action_1.MouseActionParam.moveLeft: - case key_action_1.MouseActionParam.moveRight: - this.selectedPageIndex = 0; - break; - case key_action_1.MouseActionParam.scrollDown: - case key_action_1.MouseActionParam.scrollUp: - case key_action_1.MouseActionParam.scrollLeft: - case key_action_1.MouseActionParam.scrollRight: - this.selectedPageIndex = 1; - break; - case key_action_1.MouseActionParam.leftClick: - case key_action_1.MouseActionParam.middleClick: - case key_action_1.MouseActionParam.rightClick: - this.selectedPageIndex = 2; - break; - case key_action_1.MouseActionParam.decelerate: - case key_action_1.MouseActionParam.accelerate: - this.selectedPageIndex = 3; - break; - default: - return false; - } - return true; - }; - MouseTabComponent.prototype.toKeyAction = function () { - var mouseAction = new key_action_1.MouseAction(); - mouseAction.mouseAction = this.mouseActionParam; - return mouseAction; - }; - MouseTabComponent.prototype.changePage = function (index) { - if (index < -1 || index > 3) { - console.error("Invalid index error: " + index); - return; - } - this.selectedPageIndex = index; - this.mouseActionParam = undefined; - this.validAction.emit(false); - }; - MouseTabComponent.prototype.setMouseActionParam = function (mouseActionParam) { - this.mouseActionParam = mouseActionParam; - this.validAction.emit(true); - }; - return MouseTabComponent; -}(tab_1.Tab)); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], MouseTabComponent.prototype, "defaultKeyAction", void 0); -MouseTabComponent = __decorate([ - core_1.Component({ - selector: 'mouse-tab', - template: __webpack_require__(692), - styles: [__webpack_require__(743)] - }), - __metadata("design:paramtypes", []) -], MouseTabComponent); -exports.MouseTabComponent = MouseTabComponent; - - -/***/ }), -/* 1050 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1051)); - - -/***/ }), -/* 1051 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var tab_1 = __webpack_require__(67); -var NoneTabComponent = (function (_super) { - __extends(NoneTabComponent, _super); - function NoneTabComponent() { - return _super !== null && _super.apply(this, arguments) || this; - } - NoneTabComponent.prototype.ngOnChanges = function (event) { - this.validAction.emit(true); - }; - NoneTabComponent.prototype.keyActionValid = function () { - return true; - }; - NoneTabComponent.prototype.fromKeyAction = function () { - return false; - }; - NoneTabComponent.prototype.toKeyAction = function () { - return undefined; - }; - return NoneTabComponent; -}(tab_1.Tab)); -NoneTabComponent = __decorate([ - core_1.Component({ - selector: 'none-tab', - template: __webpack_require__(693), - styles: [__webpack_require__(744)] - }) -], NoneTabComponent); -exports.NoneTabComponent = NoneTabComponent; - - -/***/ }), -/* 1052 */ +/* 723 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15229,8 +21806,8 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var capture_service_1 = __webpack_require__(292); +var core_1 = __webpack_require__(1); +var capture_service_1 = __webpack_require__(142); var CaptureKeystrokeButtonComponent = (function () { function CaptureKeystrokeButtonComponent(captureService) { this.captureService = captureService; @@ -15319,8 +21896,8 @@ __decorate([ CaptureKeystrokeButtonComponent = __decorate([ core_1.Component({ selector: 'capture-keystroke-button', - template: __webpack_require__(694), - styles: [__webpack_require__(745)] + template: __webpack_require__(724), + styles: [__webpack_require__(725)] }), __metadata("design:paramtypes", [capture_service_1.CaptureService]) ], CaptureKeystrokeButtonComponent); @@ -15328,7 +21905,19 @@ exports.CaptureKeystrokeButtonComponent = CaptureKeystrokeButtonComponent; /***/ }), -/* 1053 */ +/* 724 */ +/***/ (function(module, exports) { + +module.exports = ""; + +/***/ }), +/* 725 */ +/***/ (function(module, exports) { + +module.exports = "button {\n display: inline-block;\n margin: 0 0 0 0.25rem; }\n\n.fa-circle {\n color: #c00; }\n" + +/***/ }), +/* 726 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15337,11 +21926,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1052)); +__export(__webpack_require__(727)); /***/ }), -/* 1054 */ +/* 727 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15356,7 +21945,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var IconComponent = (function () { function IconComponent() { } @@ -15370,8 +21959,8 @@ __decorate([ IconComponent = __decorate([ core_1.Component({ selector: 'icon', - template: __webpack_require__(695), - styles: [__webpack_require__(746)] + template: __webpack_require__(728), + styles: [__webpack_require__(729)] }), __metadata("design:paramtypes", []) ], IconComponent); @@ -15379,26 +21968,231 @@ exports.IconComponent = IconComponent; /***/ }), -/* 1055 */ +/* 728 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
"; + +/***/ }), +/* 729 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n display: flex;\n align-items: center; }\n\n.action--edit:hover {\n color: #337ab7;\n cursor: pointer; }\n\n.action--trash:hover {\n color: #d9534f;\n cursor: pointer; }\n" + +/***/ }), +/* 730 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + +exports.__esModule = true; +exports.defaultMemoize = defaultMemoize; +exports.createSelectorCreator = createSelectorCreator; +exports.createStructuredSelector = createStructuredSelector; +function defaultEqualityCheck(a, b) { + return a === b; } + +function areArgumentsShallowlyEqual(equalityCheck, prev, next) { + if (prev === null || next === null || prev.length !== next.length) { + return false; + } + + // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible. + var length = prev.length; + for (var i = 0; i < length; i++) { + if (!equalityCheck(prev[i], next[i])) { + return false; + } + } + + return true; +} + +function defaultMemoize(func) { + var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck; + + var lastArgs = null; + var lastResult = null; + // we reference arguments instead of spreading them for performance reasons + return function () { + if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) { + // apply arguments instead of spreading for performance. + lastResult = func.apply(null, arguments); + } + + lastArgs = arguments; + return lastResult; + }; +} + +function getDependencies(funcs) { + var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs; + + if (!dependencies.every(function (dep) { + return typeof dep === 'function'; + })) { + var dependencyTypes = dependencies.map(function (dep) { + return typeof dep; + }).join(', '); + throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']')); + } + + return dependencies; +} + +function createSelectorCreator(memoize) { + for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + memoizeOptions[_key - 1] = arguments[_key]; + } + + return function () { + for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + funcs[_key2] = arguments[_key2]; + } + + var recomputations = 0; + var resultFunc = funcs.pop(); + var dependencies = getDependencies(funcs); + + var memoizedResultFunc = memoize.apply(undefined, [function () { + recomputations++; + // apply arguments instead of spreading for performance. + return resultFunc.apply(null, arguments); + }].concat(memoizeOptions)); + + // If a selector is called with the exact same arguments we don't need to traverse our dependencies again. + var selector = defaultMemoize(function () { + var params = []; + var length = dependencies.length; + + for (var i = 0; i < length; i++) { + // apply arguments instead of spreading and mutate a local list of params for performance. + params.push(dependencies[i].apply(null, arguments)); + } + + // apply arguments instead of spreading for performance. + return memoizedResultFunc.apply(null, params); + }); + + selector.resultFunc = resultFunc; + selector.recomputations = function () { + return recomputations; + }; + selector.resetRecomputations = function () { + return recomputations = 0; + }; + return selector; + }; +} + +var createSelector = exports.createSelector = createSelectorCreator(defaultMemoize); + +function createStructuredSelector(selectors) { + var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector; + + if (typeof selectors !== 'object') { + throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors)); + } + var objectKeys = Object.keys(selectors); + return selectorCreator(objectKeys.map(function (key) { + return selectors[key]; + }), function () { + for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + values[_key3] = arguments[_key3]; + } + + return values.reduce(function (composition, value, index) { + composition[objectKeys[index]] = value; + return composition; + }, {}); + }); +} + +/***/ }), +/* 731 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1054)); +var util_1 = __webpack_require__(57); +var PREFIX = '[app-update] '; +// tslint:disable-next-line:variable-name +exports.ActionTypes = { + UPDATE_AVAILABLE: util_1.type(PREFIX + 'update available'), + UPDATE_APP: util_1.type(PREFIX + 'update app'), + DO_NOT_UPDATE_APP: util_1.type(PREFIX + 'do not update app'), + UPDATE_DOWNLOADED: util_1.type(PREFIX + 'update downloaded'), + UPDATING: util_1.type(PREFIX + 'updating'), + UPDATE_ERROR: util_1.type(PREFIX + 'error') +}; +var UpdateAvailableAction = (function () { + function UpdateAvailableAction() { + this.type = exports.ActionTypes.UPDATE_AVAILABLE; + } + return UpdateAvailableAction; +}()); +exports.UpdateAvailableAction = UpdateAvailableAction; +var UpdateAppAction = (function () { + function UpdateAppAction() { + this.type = exports.ActionTypes.UPDATE_APP; + } + return UpdateAppAction; +}()); +exports.UpdateAppAction = UpdateAppAction; +var DoNotUpdateAppAction = (function () { + function DoNotUpdateAppAction() { + this.type = exports.ActionTypes.DO_NOT_UPDATE_APP; + } + return DoNotUpdateAppAction; +}()); +exports.DoNotUpdateAppAction = DoNotUpdateAppAction; +var UpdateDownloadedAction = (function () { + function UpdateDownloadedAction() { + this.type = exports.ActionTypes.UPDATE_DOWNLOADED; + } + return UpdateDownloadedAction; +}()); +exports.UpdateDownloadedAction = UpdateDownloadedAction; +var UpdatingAction = (function () { + function UpdatingAction() { + this.type = exports.ActionTypes.UPDATING; + } + return UpdatingAction; +}()); +exports.UpdatingAction = UpdatingAction; +var UpdateErrorAction = (function () { + function UpdateErrorAction(payload) { + this.payload = payload; + this.type = exports.ActionTypes.UPDATE_ERROR; + } + return UpdateErrorAction; +}()); +exports.UpdateErrorAction = UpdateErrorAction; /***/ }), -/* 1056 */ +/* 732 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n

\r\n \r\n Settings\r\n

\r\n
\r\n
\r\n To be done...\r\n
\r\n\r\n\r\n"; + +/***/ }), +/* 733 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n" + +/***/ }), +/* 734 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var settings_component_1 = __webpack_require__(451); +var settings_component_1 = __webpack_require__(244); exports.settingsRoutes = [ { path: 'settings', @@ -15408,7 +22202,7 @@ exports.settingsRoutes = [ /***/ }), -/* 1057 */ +/* 735 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15417,11 +22211,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1058)); +__export(__webpack_require__(736)); /***/ }), -/* 1058 */ +/* 736 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15436,13 +22230,14 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -__webpack_require__(122); -__webpack_require__(65); -__webpack_require__(123); -var actions_1 = __webpack_require__(54); -var user_configuration_1 = __webpack_require__(55); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var store_1 = __webpack_require__(5); +__webpack_require__(55); +__webpack_require__(21); +__webpack_require__(73); +var actions_1 = __webpack_require__(34); +var user_configuration_1 = __webpack_require__(35); var SideMenuComponent = (function () { function SideMenuComponent(store, renderer) { this.store = store; @@ -15484,19 +22279,19 @@ var SideMenuComponent = (function () { SideMenuComponent = __decorate([ core_1.Component({ animations: [ - core_1.trigger('toggler', [ - core_1.state('inactive', core_1.style({ + animations_1.trigger('toggler', [ + animations_1.state('inactive', animations_1.style({ height: '0px' })), - core_1.state('active', core_1.style({ + animations_1.state('active', animations_1.style({ height: '*' })), - core_1.transition('inactive <=> active', core_1.animate('500ms ease-out')) + animations_1.transition('inactive <=> active', animations_1.animate('500ms ease-out')) ]) ], selector: 'side-menu', - template: __webpack_require__(697), - styles: [__webpack_require__(748)] + template: __webpack_require__(737), + styles: [__webpack_require__(738)] }), __metadata("design:paramtypes", [store_1.Store, core_1.Renderer]) ], SideMenuComponent); @@ -15504,7 +22299,19 @@ exports.SideMenuComponent = SideMenuComponent; /***/ }), -/* 1059 */ +/* 737 */ +/***/ (function(module, exports) { + +module.exports = "\r\n"; + +/***/ }), +/* 738 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n background-color: #f5f5f5;\n border-right: 1px solid #ccc;\n position: fixed;\n overflow-y: auto;\n width: 250px;\n height: 100%; }\n\na {\n color: #333; }\n\nul {\n padding: 0;\n margin: 0; }\n ul li {\n list-style: none;\n padding: 0; }\n ul ul {\n overflow: hidden; }\n\n.sidebar__level-1 {\n padding: 0.5rem 1rem;\n font-size: 2rem;\n line-height: 3rem;\n cursor: default; }\n .sidebar__level-1:hover .fa-chevron-up,\n .sidebar__level-1:hover .fa-chevron-down {\n display: inline-block; }\n .sidebar__level-1--item {\n margin-top: 0; }\n .sidebar__level-1--item:nth-child(1) {\n margin: 0; }\n .sidebar__level-1 .sidebar__name {\n width: 100%;\n display: block; }\n .sidebar__level-1 .fa-chevron-up,\n .sidebar__level-1 .fa-chevron-down {\n margin-right: 1rem;\n font-size: 1.5rem;\n position: relative;\n top: 0.5rem;\n display: none;\n cursor: pointer; }\n\n.sidebar__level-2--item {\n padding: 0 20px 0 0;\n position: relative; }\n .sidebar__level-2--item.active {\n background-color: #555;\n color: #fff; }\n .sidebar__level-2--item.active .fa-star {\n color: #fff; }\n .sidebar__level-2--item.active:hover {\n background-color: #555; }\n .sidebar__level-2--item:hover {\n cursor: pointer; }\n .sidebar__level-2--item .fa.pull-right {\n position: relative;\n top: 2px; }\n .sidebar__level-2--item .fa-star {\n color: #666; }\n .sidebar__level-2--item a {\n display: block;\n width: 100%;\n padding: 0 15px 0 30px; }\n .sidebar__level-2--item a:hover, .sidebar__level-2--item a:focus {\n text-decoration: none; }\n\n.sidebar__level-1:hover, .sidebar__level-2:hover {\n background-color: rgba(0, 0, 0, 0.05); }\n\n.sidebar__level-1.active, .sidebar__level-2.active {\n background-color: rgba(0, 0, 0, 0.18); }\n\n.sidebar__fav {\n position: absolute;\n right: 19px;\n top: 3px; }\n\n.menu--bottom {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%; }\n .menu--bottom .sidebar__level-1 {\n display: block;\n padding: 1rem;\n cursor: pointer; }\n .menu--bottom .sidebar__level-1:hover {\n text-decoration: none; }\n" + +/***/ }), +/* 739 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15513,11 +22320,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1060)); +__export(__webpack_require__(740)); /***/ }), -/* 1060 */ +/* 740 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15532,18 +22339,27 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var module_1 = __webpack_require__(452); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var svg_module_provider_service_1 = __webpack_require__(245); var SvgKeyboardComponent = (function () { - function SvgKeyboardComponent() { + function SvgKeyboardComponent(svgModuleProvider) { + this.svgModuleProvider = svgModuleProvider; this.keyClick = new core_1.EventEmitter(); this.keyHover = new core_1.EventEmitter(); this.capture = new core_1.EventEmitter(); this.modules = []; - this.svgAttributes = this.getKeyboardSvgAttributes(); + this.viewBox = '-520 582 1100 470'; + this.halvesSplit = false; + this.moduleAnimationStates = []; } SvgKeyboardComponent.prototype.ngOnInit = function () { - this.modules = this.getSvgModules(); + this.modules = this.svgModuleProvider.getSvgModules(); + }; + SvgKeyboardComponent.prototype.ngOnChanges = function (changes) { + if (changes.halvesSplit) { + this.updateModuleAnimationStates(); + } }; SvgKeyboardComponent.prototype.onKeyClick = function (moduleId, keyId, keyTarget) { this.keyClick.emit({ @@ -15567,20 +22383,13 @@ var SvgKeyboardComponent = (function () { keyId: keyId }); }; - SvgKeyboardComponent.prototype.getKeyboardSvgAttributes = function () { - var svg = this.getBaseLayer(); - return { - viewBox: svg.$.viewBox, - transform: svg.g[0].$.transform, - fill: svg.g[0].$.fill - }; - }; - SvgKeyboardComponent.prototype.getSvgModules = function () { - var modules = this.getBaseLayer().g[0].g.map(function (obj) { return new module_1.SvgModule(obj); }); - return [modules[1], modules[0]]; // TODO: remove if the svg will be correct - }; - SvgKeyboardComponent.prototype.getBaseLayer = function () { - return __webpack_require__(1126).svg; + SvgKeyboardComponent.prototype.updateModuleAnimationStates = function () { + if (this.halvesSplit) { + this.moduleAnimationStates = ['rotateRight', 'rotateLeft']; + } + else { + this.moduleAnimationStates = []; + } }; return SvgKeyboardComponent; }()); @@ -15596,6 +22405,18 @@ __decorate([ core_1.Input(), __metadata("design:type", Boolean) ], SvgKeyboardComponent.prototype, "capturingEnabled", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], SvgKeyboardComponent.prototype, "selectedKey", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgKeyboardComponent.prototype, "selected", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgKeyboardComponent.prototype, "halvesSplit", void 0); __decorate([ core_1.Output(), __metadata("design:type", Object) @@ -15611,65 +22432,28 @@ __decorate([ SvgKeyboardComponent = __decorate([ core_1.Component({ selector: 'svg-keyboard', - template: __webpack_require__(698), - styles: [__webpack_require__(749)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush + template: __webpack_require__(749), + styles: [__webpack_require__(750)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush, + animations: [ + animations_1.trigger('split', [ + animations_1.state('rotateLeft', animations_1.style({ + transform: 'translate(-3%, 15%) rotate(4deg) scale(0.92, 0.92)' + })), + animations_1.state('rotateRight', animations_1.style({ + transform: 'translate(3%, 15%) rotate(-4deg) scale(0.92, 0.92)' + })), + animations_1.transition('* <=> *', animations_1.animate(500)) + ]) + ] }), - __metadata("design:paramtypes", []) + __metadata("design:paramtypes", [svg_module_provider_service_1.SvgModuleProviderService]) ], SvgKeyboardComponent); exports.SvgKeyboardComponent = SvgKeyboardComponent; /***/ }), -/* 1061 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var svg_icon_text_key_1 = __webpack_require__(1062); -exports.SvgIconTextKeyComponent = svg_icon_text_key_1.SvgIconTextKeyComponent; -var svg_keyboard_key_1 = __webpack_require__(1064); -exports.SvgKeyboardKeyComponent = svg_keyboard_key_1.SvgKeyboardKeyComponent; -var svg_keystroke_key_1 = __webpack_require__(1066); -exports.SvgKeystrokeKeyComponent = svg_keystroke_key_1.SvgKeystrokeKeyComponent; -var svg_mouse_key_1 = __webpack_require__(1070); -exports.SvgMouseKeyComponent = svg_mouse_key_1.SvgMouseKeyComponent; -var svg_mouse_click_key_1 = __webpack_require__(1068); -exports.SvgMouseClickKeyComponent = svg_mouse_click_key_1.SvgMouseClickKeyComponent; -var svg_mouse_move_key_1 = __webpack_require__(1072); -exports.SvgMouseMoveKeyComponent = svg_mouse_move_key_1.SvgMouseMoveKeyComponent; -var svg_mouse_speed_key_1 = __webpack_require__(1076); -exports.SvgMouseSpeedKeyComponent = svg_mouse_speed_key_1.SvgMouseSpeedKeyComponent; -var svg_mouse_scroll_key_1 = __webpack_require__(1074); -exports.SvgMouseScrollKeyComponent = svg_mouse_scroll_key_1.SvgMouseScrollKeyComponent; -var svg_one_line_text_key_1 = __webpack_require__(1078); -exports.SvgOneLineTextKeyComponent = svg_one_line_text_key_1.SvgOneLineTextKeyComponent; -var svg_single_icon_key_1 = __webpack_require__(1080); -exports.SvgSingleIconKeyComponent = svg_single_icon_key_1.SvgSingleIconKeyComponent; -var svg_switch_keymap_key_1 = __webpack_require__(1082); -exports.SvgSwitchKeymapKeyComponent = svg_switch_keymap_key_1.SvgSwitchKeymapKeyComponent; -var svg_text_icon_key_1 = __webpack_require__(1084); -exports.SvgTextIconKeyComponent = svg_text_icon_key_1.SvgTextIconKeyComponent; -var svg_two_line_text_key_1 = __webpack_require__(1086); -exports.SvgTwoLineTextKeyComponent = svg_two_line_text_key_1.SvgTwoLineTextKeyComponent; - - -/***/ }), -/* 1062 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1063)); - - -/***/ }), -/* 1063 */ +/* 741 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15684,7 +22468,235 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); +var SvgModuleComponent = (function () { + function SvgModuleComponent() { + this.keyClick = new core_1.EventEmitter(); + this.keyHover = new core_1.EventEmitter(); + this.capture = new core_1.EventEmitter(); + this.keyboardKeys = []; + } + SvgModuleComponent.prototype.onKeyClick = function (index, keyTarget) { + this.keyClick.emit({ + index: index, + keyTarget: keyTarget + }); + }; + SvgModuleComponent.prototype.onKeyHover = function (index, event, over) { + this.keyHover.emit({ + index: index, + event: event, + over: over + }); + }; + SvgModuleComponent.prototype.onCapture = function (index, captured) { + this.capture.emit({ + index: index, + captured: captured + }); + }; + return SvgModuleComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", Array) +], SvgModuleComponent.prototype, "coverages", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Array) +], SvgModuleComponent.prototype, "keyboardKeys", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Array) +], SvgModuleComponent.prototype, "keyActions", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], SvgModuleComponent.prototype, "selectedKey", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgModuleComponent.prototype, "selected", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgModuleComponent.prototype, "keybindAnimationEnabled", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgModuleComponent.prototype, "capturingEnabled", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], SvgModuleComponent.prototype, "keyClick", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], SvgModuleComponent.prototype, "keyHover", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], SvgModuleComponent.prototype, "capture", void 0); +SvgModuleComponent = __decorate([ + core_1.Component({ + selector: 'g[svg-module]', + template: __webpack_require__(742), + styles: [__webpack_require__(743)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", []) +], SvgModuleComponent); +exports.SvgModuleComponent = SvgModuleComponent; + + +/***/ }), +/* 742 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n \r\n\r\n"; + +/***/ }), +/* 743 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n position: relative; }\n" + +/***/ }), +/* 744 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var SvgModule = (function () { + function SvgModule(obj) { + var index; + var keys = obj.rect.map(function (rect) { return rect.$; }); + this.keyboardKeys = []; + for (var i = 0; i < keys.length; ++i) { + index = keys[i].id.slice(4) - 1; // remove 'key-' then switch to index from 0 + keys[i].height = +keys[i].height; + keys[i].width = +keys[i].width; + keys[i].fill = keys[i].style.slice(5); // remove 'fill:' + this.keyboardKeys[index] = keys[i]; + } + this.coverages = obj.path; + this.attributes = obj.$; + } + return SvgModule; +}()); +exports.SvgModule = SvgModule; + + +/***/ }), +/* 745 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var KeyboardLayout; +(function (KeyboardLayout) { + KeyboardLayout[KeyboardLayout["ANSI"] = 0] = "ANSI"; + KeyboardLayout[KeyboardLayout["ISO"] = 1] = "ISO"; +})(KeyboardLayout = exports.KeyboardLayout || (exports.KeyboardLayout = {})); + + +/***/ }), +/* 746 */ +/***/ (function(module, exports) { + +module.exports = {"svg":{"$":{"xmlns":"http://www.w3.org/2000/svg","version":"1.1","width":"744.094488189","height":"1052.36220472"},"rect":[{"$":{"id":"key-1","x":"-446.27197","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-2","x":"-379.92999","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-3","x":"-313.58899","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-4","x":"-247.24799","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-5","x":"-180.90698","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-6","x":"-114.56499","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-7","x":"-48.223999","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-8","x":"-446.27197","y":"744.89612","ry":"3.5107117","width":"96.728996","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-9","x":"-346.21698","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-10","x":"-279.87601","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-11","x":"-213.535","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-12","x":"-147.19299","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-14","x":"-80.852005","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-15","x":"-446.27197","y":"811.41315","ry":"3.5107117","width":"115.108","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-16","x":"-328.18799","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-17","x":"-262.19598","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-18","x":"-196.20499","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-19","x":"-130.21399","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-21","x":"-64.222992","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-22","x":"-446.27197","y":"877.92914","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-23","x":"-362.60098","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-24","x":"-296.26001","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-25","x":"-230.02377","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-26","x":"-163.78757","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-27","x":"-97.551331","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-28","x":"-31.315111","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-29","x":"-446.27197","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-30","x":"-363.79099","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-31","x":"-281.311","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-32","x":"-198.83099","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-33","x":"-116.351","y":"1011.1872","ry":"3.6962967","width":"115.108","height":"41.174999","style":"fill:#333"}},{"$":{"id":"key-34","x":"-116.351","y":"944.44714","ry":"3.5107117","width":"115.108","height":"63.014999","style":"fill:#333"}}],"path":[{"$":{"d":"M -94.51036,646.84101 C -94.11496,648.67469 -92.68469,649.80097 -91.0281,649.78029 L 13.023181,649.78029 C 14.001631,649.78029 14.794821,650.57349 14.794821,651.55194 L 14.794821,651.55868 14.794821,673.23866 C 14.794821,674.21746 14.001631,675.01093 13.023181,675.01093 L -444.52338,675.01093 C -447.45834,675.01093 -449.83652,677.38911 -449.83652,680.32407 L -449.83652,1005.8729 C -449.83652,1008.8079 -447.45834,1011.1861 -444.52338,1011.1861 L -120.57683,1011.1861 C -119.59838,1011.1861 -118.80518,1011.9795 -118.80518,1012.9583 L -118.80518,1050.5832 -118.80518,1050.5899 C -118.80518,1051.5684 -119.59838,1052.3616 -120.57683,1052.3616 L -464.45746,1052.3616 C -469.36122,1052.166 -473.26634,1048.3775 -473.2955,1043.5236 L -473.2955,658.54868 C -473.28473,654.0371 -470.24793,650.61741 -466.01444,649.84887 L -114.09291,586.86646 C -109.10971,586.16157 -104.69185,589.2677 -103.81746,594.05779 -100.59959,612.36858 -97.46095,630.10521 -94.51036,646.84101 Z","style":"fill:#333"}}]}} + +/***/ }), +/* 747 */ +/***/ (function(module, exports) { + +module.exports = {"svg":{"$":{"xmlns":"http://www.w3.org/2000/svg","version":"1.1","width":"744.094488189","height":"1052.36220472"},"rect":[{"$":{"id":"key-1","x":"-446.27197","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-2","x":"-379.92999","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-3","x":"-313.58899","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-4","x":"-247.24799","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-5","x":"-180.90698","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-6","x":"-114.56499","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-7","x":"-48.223999","y":"678.38013","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-8","x":"-446.27197","y":"744.89612","ry":"3.5107117","width":"96.728996","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-9","x":"-346.21698","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-10","x":"-279.87601","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-11","x":"-213.535","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-12","x":"-147.19299","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-14","x":"-80.852005","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-15","x":"-446.27197","y":"811.41315","ry":"3.5107117","width":"115.108","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-16","x":"-328.18799","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-17","x":"-262.19598","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-18","x":"-196.20499","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-19","x":"-130.21399","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-21","x":"-64.222992","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-22","x":"-446.27197","y":"877.92914","ry":"3.5107117","width":"146.686","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-24","x":"-296.26001","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-25","x":"-230.02377","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-26","x":"-163.78757","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-27","x":"-97.551331","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-28","x":"-31.315111","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-29","x":"-446.27197","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-30","x":"-363.79099","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-31","x":"-281.311","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-32","x":"-198.83099","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-33","x":"-116.351","y":"1011.1872","ry":"3.6962967","width":"115.108","height":"41.174999","style":"fill:#333"}},{"$":{"id":"key-34","x":"-116.351","y":"944.44714","ry":"3.5107117","width":"115.108","height":"63.014999","style":"fill:#333"}}],"path":[{"$":{"d":"M -94.51036,646.84101 C -94.11496,648.67469 -92.68469,649.80097 -91.0281,649.78029 L 13.023181,649.78029 C 14.001631,649.78029 14.794821,650.57349 14.794821,651.55194 L 14.794821,651.55868 14.794821,673.23866 C 14.794821,674.21746 14.001631,675.01093 13.023181,675.01093 L -444.52338,675.01093 C -447.45834,675.01093 -449.83652,677.38911 -449.83652,680.32407 L -449.83652,1005.8729 C -449.83652,1008.8079 -447.45834,1011.1861 -444.52338,1011.1861 L -120.57683,1011.1861 C -119.59838,1011.1861 -118.80518,1011.9795 -118.80518,1012.9583 L -118.80518,1050.5832 -118.80518,1050.5899 C -118.80518,1051.5684 -119.59838,1052.3616 -120.57683,1052.3616 L -464.45746,1052.3616 C -469.36122,1052.166 -473.26634,1048.3775 -473.2955,1043.5236 L -473.2955,658.54868 C -473.28473,654.0371 -470.24793,650.61741 -466.01444,649.84887 L -114.09291,586.86646 C -109.10971,586.16157 -104.69185,589.2677 -103.81746,594.05779 -100.59959,612.36858 -97.46095,630.10521 -94.51036,646.84101 Z","style":"fill:#333"}}]}} + +/***/ }), +/* 748 */ +/***/ (function(module, exports) { + +module.exports = {"svg":{"$":{"xmlns":"http://www.w3.org/2000/svg","version":"1.1","width":"744.094488189","height":"1052.36220472"},"rect":[{"$":{"id":"key-1","x":"18.116484","y":"678.38116","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-2","x":"84.457497","y":"678.38116","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-3","x":"150.79849","y":"678.38116","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-4","x":"217.14047","y":"678.38116","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-5","x":"283.48148","y":"678.38116","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-6","x":"349.82248","y":"678.38116","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-7","x":"416.16348","y":"678.38116","ry":"3.5107117","width":"96.728996","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-8","x":"51.829502","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-9","x":"118.17051","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-10","x":"184.51248","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-11","x":"250.85349","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-12","x":"317.19449","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-13","x":"383.53549","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-14","x":"449.87747","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-15","x":"-14.511499","y":"744.89612","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-16","x":"67.828499","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-17","x":"133.81949","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-18","x":"199.81052","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-19","x":"265.80252","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-20","x":"331.79349","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-21","x":"397.78452","y":"811.41412","ry":"3.5107117","width":"115.108","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-22","x":"1.8374995","y":"811.41315","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-23","x":"34.921108","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-24","x":"101.15734","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-25","x":"167.39355","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-26","x":"233.62976","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-27","x":"299.86551","y":"877.92914","ry":"3.5107117","width":"63.014999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-28","x":"366.20651","y":"877.93018","ry":"3.5107117","width":"146.686","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-30","x":"1.2074946","y":"944.44714","ry":"3.5107117","width":"115.108","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-31","x":"1.2074946","y":"1011.1872","ry":"3.6962967","width":"115.108","height":"41.174999","style":"fill:#333"}},{"$":{"id":"key-32","x":"118.76652","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-33","x":"201.24649","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-34","x":"283.72647","y":"944.44714","ry":"3.5107117","width":"80.029999","height":"63.014999","style":"fill:#333"}},{"$":{"id":"key-35","x":"366.20651","y":"944.44714","ry":"3.5107117","width":"146.686","height":"63.014999","style":"fill:#333"}}],"path":[{"$":{"d":"M 516.38706,680.32407 C 516.38706,677.38911 514.00888,675.01093 511.07392,675.01093 L 19.888327,675.01093 C 18.909867,675.01093 18.116667,674.21746 18.116667,673.23866 L 18.116667,651.55868 18.116667,651.55194 C 18.116667,650.57349 18.909867,649.78029 19.888327,649.78029 L 125.68888,649.78029 C 127.81809,649.73639 128.89871,648.55406 129.17114,646.84101 132.26186,628.99452 135.45421,611.20795 138.49949,593.93731 139.53551,589.17354 143.88942,585.96932 148.65533,586.72553 281.11656,609.26905 403.66743,628.75963 532.4454,649.98632 536.92364,650.86249 539.55062,654.40739 539.84604,658.70669 L 539.84604,1043.5236 C 539.65045,1048.4273 535.86191,1052.3324 531.008,1052.3616 L 120.53833,1052.3616 C 119.55987,1052.3616 118.76667,1051.5684 118.76667,1050.5899 L 118.76667,1050.5832 118.76667,1012.9583 C 118.76667,1011.9795 119.55987,1011.1861 120.53833,1011.1861 L 511.07392,1011.1861 C 514.00888,1011.1861 516.38706,1008.8079 516.38706,1005.8729 Z","style":"fill:#333"}}]}} + +/***/ }), +/* 749 */ +/***/ (function(module, exports) { + +module.exports = "\r\n \r\n\r\n"; + +/***/ }), +/* 750 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n display: flex;\n width: 100%;\n height: 100%;\n position: relative; }\n" + +/***/ }), +/* 751 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var svg_icon_text_key_1 = __webpack_require__(752); +exports.SvgIconTextKeyComponent = svg_icon_text_key_1.SvgIconTextKeyComponent; +var svg_keyboard_key_1 = __webpack_require__(755); +exports.SvgKeyboardKeyComponent = svg_keyboard_key_1.SvgKeyboardKeyComponent; +var svg_keystroke_key_1 = __webpack_require__(759); +exports.SvgKeystrokeKeyComponent = svg_keystroke_key_1.SvgKeystrokeKeyComponent; +var svg_mouse_key_1 = __webpack_require__(763); +exports.SvgMouseKeyComponent = svg_mouse_key_1.SvgMouseKeyComponent; +var svg_mouse_click_key_1 = __webpack_require__(766); +exports.SvgMouseClickKeyComponent = svg_mouse_click_key_1.SvgMouseClickKeyComponent; +var svg_mouse_move_key_1 = __webpack_require__(769); +exports.SvgMouseMoveKeyComponent = svg_mouse_move_key_1.SvgMouseMoveKeyComponent; +var svg_mouse_speed_key_1 = __webpack_require__(772); +exports.SvgMouseSpeedKeyComponent = svg_mouse_speed_key_1.SvgMouseSpeedKeyComponent; +var svg_mouse_scroll_key_1 = __webpack_require__(775); +exports.SvgMouseScrollKeyComponent = svg_mouse_scroll_key_1.SvgMouseScrollKeyComponent; +var svg_one_line_text_key_1 = __webpack_require__(778); +exports.SvgOneLineTextKeyComponent = svg_one_line_text_key_1.SvgOneLineTextKeyComponent; +var svg_single_icon_key_1 = __webpack_require__(781); +exports.SvgSingleIconKeyComponent = svg_single_icon_key_1.SvgSingleIconKeyComponent; +var svg_switch_keymap_key_1 = __webpack_require__(784); +exports.SvgSwitchKeymapKeyComponent = svg_switch_keymap_key_1.SvgSwitchKeymapKeyComponent; +var svg_text_icon_key_1 = __webpack_require__(787); +exports.SvgTextIconKeyComponent = svg_text_icon_key_1.SvgTextIconKeyComponent; +var svg_two_line_text_key_1 = __webpack_require__(790); +exports.SvgTwoLineTextKeyComponent = svg_two_line_text_key_1.SvgTwoLineTextKeyComponent; + + +/***/ }), +/* 752 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(753)); + + +/***/ }), +/* 753 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); var SvgIconTextKeyComponent = (function () { function SvgIconTextKeyComponent() { } @@ -15717,7 +22729,7 @@ __decorate([ SvgIconTextKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-icon-text-key]', - template: __webpack_require__(699), + template: __webpack_require__(754), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", []) @@ -15726,7 +22738,13 @@ exports.SvgIconTextKeyComponent = SvgIconTextKeyComponent; /***/ }), -/* 1064 */ +/* 754 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n\r\n {{ text }}\r\n"; + +/***/ }), +/* 755 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15735,11 +22753,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1065)); +__export(__webpack_require__(756)); /***/ }), -/* 1065 */ +/* 756 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15754,13 +22772,14 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var store_1 = __webpack_require__(9); -var key_action_1 = __webpack_require__(22); -var KeyModifiers_1 = __webpack_require__(290); -var capture_service_1 = __webpack_require__(292); -var mapper_service_1 = __webpack_require__(31); -var user_configuration_1 = __webpack_require__(55); +var core_1 = __webpack_require__(1); +var animations_1 = __webpack_require__(33); +var store_1 = __webpack_require__(5); +var key_action_1 = __webpack_require__(14); +var key_modifiers_1 = __webpack_require__(140); +var capture_service_1 = __webpack_require__(142); +var mapper_service_1 = __webpack_require__(22); +var user_configuration_1 = __webpack_require__(35); var LabelTypes; (function (LabelTypes) { LabelTypes[LabelTypes["KeystrokeKey"] = 0] = "KeystrokeKey"; @@ -15776,7 +22795,6 @@ var SvgKeyboardKeyComponent = (function () { function SvgKeyboardKeyComponent(mapper, store, element, captureService, renderer) { var _this = this; this.mapper = mapper; - this.store = store; this.element = element; this.captureService = captureService; this.renderer = renderer; @@ -15888,9 +22906,9 @@ var SvgKeyboardKeyComponent = (function () { var newLabelSource = void 0; if (!keyAction.hasActiveModifier() && keyAction.hasScancode()) { var scancode = keyAction.scancode; - newLabelSource = this.mapper.scanCodeToText(scancode); - if (this.mapper.hasScancodeIcon(scancode)) { - this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode); + newLabelSource = this.mapper.scanCodeToText(scancode, keyAction.type); + if (this.mapper.hasScancodeIcon(scancode, keyAction.type)) { + this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode, keyAction.type); this.labelType = LabelTypes.SingleIcon; } else if (newLabelSource !== undefined) { @@ -15907,20 +22925,20 @@ var SvgKeyboardKeyComponent = (function () { else if (keyAction.hasOnlyOneActiveModifier() && !keyAction.hasScancode()) { newLabelSource = []; switch (keyAction.modifierMask) { - case KeyModifiers_1.KeyModifiers.leftCtrl: - case KeyModifiers_1.KeyModifiers.rightCtrl: + case key_modifiers_1.KeyModifiers.leftCtrl: + case key_modifiers_1.KeyModifiers.rightCtrl: newLabelSource.push('Ctrl'); break; - case KeyModifiers_1.KeyModifiers.leftShift: - case KeyModifiers_1.KeyModifiers.rightShift: + case key_modifiers_1.KeyModifiers.leftShift: + case key_modifiers_1.KeyModifiers.rightShift: newLabelSource.push('Shift'); break; - case KeyModifiers_1.KeyModifiers.leftAlt: - case KeyModifiers_1.KeyModifiers.rightAlt: + case key_modifiers_1.KeyModifiers.leftAlt: + case key_modifiers_1.KeyModifiers.rightAlt: newLabelSource.push('Alt'); break; - case KeyModifiers_1.KeyModifiers.leftGui: - case KeyModifiers_1.KeyModifiers.rightGui: + case key_modifiers_1.KeyModifiers.leftGui: + case key_modifiers_1.KeyModifiers.rightGui: newLabelSource.push('Super'); break; default: @@ -16018,6 +23036,10 @@ __decorate([ core_1.Input(), __metadata("design:type", Boolean) ], SvgKeyboardKeyComponent.prototype, "capturingEnabled", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgKeyboardKeyComponent.prototype, "active", void 0); __decorate([ core_1.Output(), __metadata("design:type", Object) @@ -16059,29 +23081,36 @@ __decorate([ SvgKeyboardKeyComponent = __decorate([ core_1.Component({ animations: [ - core_1.trigger('change', [ - core_1.transition('inactive => active', [ - core_1.style({ fill: '#fff' }), - core_1.group([ - core_1.animate('1s ease-out', core_1.style({ + animations_1.trigger('change', [ + animations_1.transition('inactive => active', [ + animations_1.style({ fill: '#fff' }), + animations_1.group([ + animations_1.animate('1s ease-out', animations_1.style({ fill: '#333' })) ]) ]) ]), - core_1.trigger('recording', [ - core_1.state('inactive', core_1.style({ + animations_1.trigger('active', [ + // http://colorblendy.com/#!/multiply/4099e5/cccccc + animations_1.state('1', animations_1.style({ fill: '#4099e5' })), + animations_1.transition('1 => *', animations_1.animate('200ms')), + animations_1.transition('* => 1', animations_1.animate('0ms')) // Instant color to blue + ]), + animations_1.trigger('recording', [ + animations_1.state('inactive', animations_1.style({ fill: 'rgba(204, 0, 0, 1)' })), - core_1.state('active', core_1.style({ + animations_1.state('active', animations_1.style({ fill: 'rgba(204, 0, 0, 0.6)' })), - core_1.transition('inactive <=> active', core_1.animate('600ms ease-in-out')) + animations_1.transition('inactive <=> active', animations_1.animate('600ms ease-in-out')) ]) ], selector: 'g[svg-keyboard-key]', - template: __webpack_require__(700), - styles: [__webpack_require__(750)] + template: __webpack_require__(757), + styles: [__webpack_require__(758)], + changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", [mapper_service_1.MapperService, store_1.Store, @@ -16093,7 +23122,19 @@ exports.SvgKeyboardKeyComponent = SvgKeyboardKeyComponent; /***/ }), -/* 1066 */ +/* 757 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n"; + +/***/ }), +/* 758 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n cursor: pointer;\n outline: none; }\n :host /deep/ text {\n dominant-baseline: central; }\n :host:hover {\n fill: #494949; }\n" + +/***/ }), +/* 759 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16102,11 +23143,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1067)); +__export(__webpack_require__(760)); /***/ }), -/* 1067 */ +/* 760 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16121,10 +23162,10 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var key_action_1 = __webpack_require__(22); -var KeyModifiers_1 = __webpack_require__(290); -var mapper_service_1 = __webpack_require__(31); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); +var key_modifiers_1 = __webpack_require__(140); +var mapper_service_1 = __webpack_require__(22); var SvgAttributes = (function () { function SvgAttributes() { this.width = 0; @@ -16135,13 +23176,6 @@ var SvgAttributes = (function () { } return SvgAttributes; }()); -var Modifiers; -(function (Modifiers) { - Modifiers[Modifiers["Shift"] = 0] = "Shift"; - Modifiers[Modifiers["Control"] = 1] = "Control"; - Modifiers[Modifiers["Alt"] = 2] = "Alt"; - Modifiers[Modifiers["Command"] = 3] = "Command"; -})(Modifiers || (Modifiers = {})); var SvgKeystrokeKeyComponent = (function () { function SvgKeystrokeKeyComponent(mapper) { this.mapper = mapper; @@ -16220,7 +23254,7 @@ var SvgKeystrokeKeyComponent = (function () { var newLabelSource; if (this.keystrokeAction.hasScancode()) { var scancode = this.keystrokeAction.scancode; - newLabelSource = this.mapper.scanCodeToText(scancode); + newLabelSource = this.mapper.scanCodeToText(scancode, this.keystrokeAction.type); if (newLabelSource) { if (newLabelSource.length === 1) { this.labelSource = newLabelSource[0]; @@ -16232,17 +23266,17 @@ var SvgKeystrokeKeyComponent = (function () { } } else { - this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode); + this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode, this.keystrokeAction.type); this.labelType = 'icon'; } } else { this.labelType = 'empty'; } - this.shift.disabled = !this.keystrokeAction.isActive(KeyModifiers_1.KeyModifiers.leftShift | KeyModifiers_1.KeyModifiers.rightShift); - this.control.disabled = !this.keystrokeAction.isActive(KeyModifiers_1.KeyModifiers.leftCtrl | KeyModifiers_1.KeyModifiers.rightCtrl); - this.option.disabled = !this.keystrokeAction.isActive(KeyModifiers_1.KeyModifiers.leftAlt | KeyModifiers_1.KeyModifiers.rightAlt); - this.command.disabled = !this.keystrokeAction.isActive(KeyModifiers_1.KeyModifiers.leftGui | KeyModifiers_1.KeyModifiers.rightGui); + this.shift.disabled = !this.keystrokeAction.isActive(key_modifiers_1.KeyModifiers.leftShift | key_modifiers_1.KeyModifiers.rightShift); + this.control.disabled = !this.keystrokeAction.isActive(key_modifiers_1.KeyModifiers.leftCtrl | key_modifiers_1.KeyModifiers.rightCtrl); + this.option.disabled = !this.keystrokeAction.isActive(key_modifiers_1.KeyModifiers.leftAlt | key_modifiers_1.KeyModifiers.rightAlt); + this.command.disabled = !this.keystrokeAction.isActive(key_modifiers_1.KeyModifiers.leftGui | key_modifiers_1.KeyModifiers.rightGui); }; return SvgKeystrokeKeyComponent; }()); @@ -16261,8 +23295,8 @@ __decorate([ SvgKeystrokeKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-keystroke-key]', - template: __webpack_require__(701), - styles: [__webpack_require__(751)], + template: __webpack_require__(761), + styles: [__webpack_require__(762)], changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", [mapper_service_1.MapperService]) @@ -16271,7 +23305,19 @@ exports.SvgKeystrokeKeyComponent = SvgKeystrokeKeyComponent; /***/ }), -/* 1068 */ +/* 761 */ +/***/ (function(module, exports) { + +module.exports = "\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n C\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n"; + +/***/ }), +/* 762 */ +/***/ (function(module, exports) { + +module.exports = ".disabled {\n fill: gray; }\n\ntext {\n font-size: 100px; }\n" + +/***/ }), +/* 763 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16280,11 +23326,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1069)); +__export(__webpack_require__(764)); /***/ }), -/* 1069 */ +/* 764 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16299,62 +23345,8 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var mapper_service_1 = __webpack_require__(31); -var SvgMouseClickKeyComponent = (function () { - function SvgMouseClickKeyComponent(mapper) { - this.mapper = mapper; - this.icon = this.mapper.getIcon('mouse'); - } - SvgMouseClickKeyComponent.prototype.ngOnInit = function () { }; - return SvgMouseClickKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgMouseClickKeyComponent.prototype, "button", void 0); -SvgMouseClickKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-mouse-click-key]', - template: __webpack_require__(702), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], SvgMouseClickKeyComponent); -exports.SvgMouseClickKeyComponent = SvgMouseClickKeyComponent; - - -/***/ }), -/* 1070 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1071)); - - -/***/ }), -/* 1071 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var key_action_1 = __webpack_require__(22); +var core_1 = __webpack_require__(1); +var key_action_1 = __webpack_require__(14); var SvgMouseKeyComponent = (function () { function SvgMouseKeyComponent() { } @@ -16425,7 +23417,7 @@ __decorate([ SvgMouseKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-mouse-key]', - template: __webpack_require__(703), + template: __webpack_require__(765), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", []) @@ -16434,7 +23426,13 @@ exports.SvgMouseKeyComponent = SvgMouseKeyComponent; /***/ }), -/* 1072 */ +/* 765 */ +/***/ (function(module, exports) { + +module.exports = "\r\n \r\n \r\n \r\n \r\n"; + +/***/ }), +/* 766 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16443,11 +23441,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1073)); +__export(__webpack_require__(767)); /***/ }), -/* 1073 */ +/* 767 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16462,8 +23460,68 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var mapper_service_1 = __webpack_require__(31); +var core_1 = __webpack_require__(1); +var mapper_service_1 = __webpack_require__(22); +var SvgMouseClickKeyComponent = (function () { + function SvgMouseClickKeyComponent(mapper) { + this.mapper = mapper; + this.icon = this.mapper.getIcon('mouse'); + } + SvgMouseClickKeyComponent.prototype.ngOnInit = function () { }; + return SvgMouseClickKeyComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], SvgMouseClickKeyComponent.prototype, "button", void 0); +SvgMouseClickKeyComponent = __decorate([ + core_1.Component({ + selector: 'g[svg-mouse-click-key]', + template: __webpack_require__(768), + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", [mapper_service_1.MapperService]) +], SvgMouseClickKeyComponent); +exports.SvgMouseClickKeyComponent = SvgMouseClickKeyComponent; + + +/***/ }), +/* 768 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n\r\n Click \r\n\r\n\r\n {{ button }} \r\n"; + +/***/ }), +/* 769 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(770)); + + +/***/ }), +/* 770 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var mapper_service_1 = __webpack_require__(22); var SvgMouseMoveKeyComponent = (function () { function SvgMouseMoveKeyComponent(mapper) { this.mapper = mapper; @@ -16481,7 +23539,7 @@ __decorate([ SvgMouseMoveKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-mouse-move-key]', - template: __webpack_require__(704), + template: __webpack_require__(771), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", [mapper_service_1.MapperService]) @@ -16490,7 +23548,13 @@ exports.SvgMouseMoveKeyComponent = SvgMouseMoveKeyComponent; /***/ }), -/* 1074 */ +/* 771 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n Move \r\n\r\n"; + +/***/ }), +/* 772 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16499,11 +23563,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1075)); +__export(__webpack_require__(773)); /***/ }), -/* 1075 */ +/* 773 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16518,64 +23582,8 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var mapper_service_1 = __webpack_require__(31); -var SvgMouseScrollKeyComponent = (function () { - function SvgMouseScrollKeyComponent(mapper) { - this.mapper = mapper; - } - SvgMouseScrollKeyComponent.prototype.ngOnChanges = function () { - this.mouseIcon = this.mapper.getIcon('mouse'); - this.directionIcon = this.mapper.getIcon("scroll-" + this.direction); - }; - return SvgMouseScrollKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgMouseScrollKeyComponent.prototype, "direction", void 0); -SvgMouseScrollKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-mouse-scroll-key]', - template: __webpack_require__(705), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], SvgMouseScrollKeyComponent); -exports.SvgMouseScrollKeyComponent = SvgMouseScrollKeyComponent; - - -/***/ }), -/* 1076 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1077)); - - -/***/ }), -/* 1077 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var mapper_service_1 = __webpack_require__(31); +var core_1 = __webpack_require__(1); +var mapper_service_1 = __webpack_require__(22); var SvgMouseSpeedKeyComponent = (function () { function SvgMouseSpeedKeyComponent(mapper) { this.mapper = mapper; @@ -16593,7 +23601,7 @@ __decorate([ SvgMouseSpeedKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-mouse-speed-key]', - template: __webpack_require__(706), + template: __webpack_require__(774), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", [mapper_service_1.MapperService]) @@ -16602,7 +23610,13 @@ exports.SvgMouseSpeedKeyComponent = SvgMouseSpeedKeyComponent; /***/ }), -/* 1078 */ +/* 774 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n\r\n Speed \r\n\r\n\r\n {{ sign }} \r\n"; + +/***/ }), +/* 775 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16611,11 +23625,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1079)); +__export(__webpack_require__(776)); /***/ }), -/* 1079 */ +/* 776 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16630,7 +23644,69 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); +var mapper_service_1 = __webpack_require__(22); +var SvgMouseScrollKeyComponent = (function () { + function SvgMouseScrollKeyComponent(mapper) { + this.mapper = mapper; + } + SvgMouseScrollKeyComponent.prototype.ngOnChanges = function () { + this.mouseIcon = this.mapper.getIcon('mouse'); + this.directionIcon = this.mapper.getIcon("scroll-" + this.direction); + }; + return SvgMouseScrollKeyComponent; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], SvgMouseScrollKeyComponent.prototype, "direction", void 0); +SvgMouseScrollKeyComponent = __decorate([ + core_1.Component({ + selector: 'g[svg-mouse-scroll-key]', + template: __webpack_require__(777), + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", [mapper_service_1.MapperService]) +], SvgMouseScrollKeyComponent); +exports.SvgMouseScrollKeyComponent = SvgMouseScrollKeyComponent; + + +/***/ }), +/* 777 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n Scroll \r\n\r\n"; + +/***/ }), +/* 778 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(779)); + + +/***/ }), +/* 779 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); var SvgOneLineTextKeyComponent = (function () { function SvgOneLineTextKeyComponent() { } @@ -16655,7 +23731,7 @@ __decorate([ SvgOneLineTextKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-one-line-text-key]', - template: __webpack_require__(707), + template: __webpack_require__(780), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", []) @@ -16664,7 +23740,13 @@ exports.SvgOneLineTextKeyComponent = SvgOneLineTextKeyComponent; /***/ }), -/* 1080 */ +/* 780 */ +/***/ (function(module, exports) { + +module.exports = " \r\n {{ text }}\r\n "; + +/***/ }), +/* 781 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16673,11 +23755,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1081)); +__export(__webpack_require__(782)); /***/ }), -/* 1081 */ +/* 782 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16692,7 +23774,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var SvgSingleIconKeyComponent = (function () { function SvgSingleIconKeyComponent() { } @@ -16717,7 +23799,7 @@ __decorate([ SvgSingleIconKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-single-icon-key]', - template: __webpack_require__(708), + template: __webpack_require__(783), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", []) @@ -16726,7 +23808,13 @@ exports.SvgSingleIconKeyComponent = SvgSingleIconKeyComponent; /***/ }), -/* 1082 */ +/* 783 */ +/***/ (function(module, exports) { + +module.exports = "\r\n"; + +/***/ }), +/* 784 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16735,11 +23823,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1083)); +__export(__webpack_require__(785)); /***/ }), -/* 1083 */ +/* 785 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16754,8 +23842,8 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var mapper_service_1 = __webpack_require__(31); +var core_1 = __webpack_require__(1); +var mapper_service_1 = __webpack_require__(22); var SvgSwitchKeymapKeyComponent = (function () { function SvgSwitchKeymapKeyComponent(mapperService) { this.mapperService = mapperService; @@ -16786,7 +23874,7 @@ __decorate([ SvgSwitchKeymapKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-switch-keymap-key]', - template: __webpack_require__(709), + template: __webpack_require__(786), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", [mapper_service_1.MapperService]) @@ -16795,7 +23883,13 @@ exports.SvgSwitchKeymapKeyComponent = SvgSwitchKeymapKeyComponent; /***/ }), -/* 1084 */ +/* 786 */ +/***/ (function(module, exports) { + +module.exports = "\r\n\r\n\r\n {{ abbreviation }}\r\n"; + +/***/ }), +/* 787 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16804,11 +23898,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1085)); +__export(__webpack_require__(788)); /***/ }), -/* 1085 */ +/* 788 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16823,7 +23917,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var SvgTextIconKeyComponent = (function () { function SvgTextIconKeyComponent() { } @@ -16857,7 +23951,7 @@ __decorate([ SvgTextIconKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-text-icon-key]', - template: __webpack_require__(710), + template: __webpack_require__(789), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", []) @@ -16866,7 +23960,13 @@ exports.SvgTextIconKeyComponent = SvgTextIconKeyComponent; /***/ }), -/* 1086 */ +/* 789 */ +/***/ (function(module, exports) { + +module.exports = " \r\n {{ text }}\r\n \r\n\r\n"; + +/***/ }), +/* 790 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16875,11 +23975,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1087)); +__export(__webpack_require__(791)); /***/ }), -/* 1087 */ +/* 791 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -16894,7 +23994,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var SvgTwoLineTextKeyComponent = (function () { function SvgTwoLineTextKeyComponent() { this.spanYs = []; @@ -16923,7 +24023,7 @@ __decorate([ SvgTwoLineTextKeyComponent = __decorate([ core_1.Component({ selector: 'g[svg-two-line-text-key]', - template: __webpack_require__(711), + template: __webpack_require__(792), changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", []) @@ -16932,118 +24032,13 @@ exports.SvgTwoLineTextKeyComponent = SvgTwoLineTextKeyComponent; /***/ }), -/* 1088 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var SvgModuleComponent = (function () { - function SvgModuleComponent() { - this.keyClick = new core_1.EventEmitter(); - this.keyHover = new core_1.EventEmitter(); - this.capture = new core_1.EventEmitter(); - this.keyboardKeys = []; - } - SvgModuleComponent.prototype.onKeyClick = function (index, keyTarget) { - this.keyClick.emit({ - index: index, - keyTarget: keyTarget - }); - }; - SvgModuleComponent.prototype.onKeyHover = function (index, event, over) { - this.keyHover.emit({ - index: index, - event: event, - over: over - }); - }; - SvgModuleComponent.prototype.onCapture = function (index, captured) { - this.capture.emit({ - index: index, - captured: captured - }); - }; - return SvgModuleComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], SvgModuleComponent.prototype, "coverages", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], SvgModuleComponent.prototype, "keyboardKeys", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], SvgModuleComponent.prototype, "keyActions", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], SvgModuleComponent.prototype, "keybindAnimationEnabled", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], SvgModuleComponent.prototype, "capturingEnabled", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], SvgModuleComponent.prototype, "keyClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], SvgModuleComponent.prototype, "keyHover", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], SvgModuleComponent.prototype, "capture", void 0); -SvgModuleComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-module]', - template: __webpack_require__(712), - styles: [__webpack_require__(752)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgModuleComponent); -exports.SvgModuleComponent = SvgModuleComponent; +/* 792 */ +/***/ (function(module, exports) { +module.exports = "\r\n {{ text }}\r\n "; /***/ }), -/* 1089 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var SvgModule = (function () { - function SvgModule(obj) { - this.keyboardKeys = obj.rect.map(function (rect) { return rect.$; }).map(function (rect) { - rect.height = +rect.height; - rect.width = +rect.width; - return rect; - }); - this.coverages = obj.path; - this.attributes = obj.$; - } - return SvgModule; -}()); -exports.SvgModule = SvgModule; - - -/***/ }), -/* 1090 */ +/* 793 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17052,11 +24047,11 @@ function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1091)); +__export(__webpack_require__(794)); /***/ }), -/* 1091 */ +/* 794 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17071,18 +24066,18 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var Observable_1 = __webpack_require__(1); -__webpack_require__(178); -__webpack_require__(65); -var store_1 = __webpack_require__(9); -var mapper_service_1 = __webpack_require__(31); -var key_action_1 = __webpack_require__(22); -var Keymap_1 = __webpack_require__(80); -var LongPressAction_1 = __webpack_require__(455); -var util_1 = __webpack_require__(1115); -var actions_1 = __webpack_require__(54); -var popover_1 = __webpack_require__(449); +var core_1 = __webpack_require__(1); +var Observable_1 = __webpack_require__(0); +__webpack_require__(54); +__webpack_require__(21); +var store_1 = __webpack_require__(5); +var mapper_service_1 = __webpack_require__(22); +var key_action_1 = __webpack_require__(14); +var keymap_1 = __webpack_require__(48); +var long_press_action_1 = __webpack_require__(235); +var util_1 = __webpack_require__(57); +var actions_1 = __webpack_require__(34); +var popover_1 = __webpack_require__(242); var SvgKeyboardWrapComponent = (function () { function SvgKeyboardWrapComponent(store, mapper, element, renderer) { this.store = store; @@ -17127,7 +24122,8 @@ var SvgKeyboardWrapComponent = (function () { if (keymapChanges) { this.popoverShown = false; this.layers = this.keymap.layers; - if (keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) { + if (keymapChanges.isFirstChange() || + keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) { this.currentLayer = 0; this.keybindAnimationEnabled = keymapChanges.isFirstChange(); } @@ -17142,6 +24138,7 @@ var SvgKeyboardWrapComponent = (function () { moduleId: moduleId, keyId: keyId }; + this.selectedKey = { layerId: this.currentLayer, moduleId: moduleId, keyId: keyId }; var keyActionToEdit = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId]; this.keyElement = keyTarget; this.showPopover(keyActionToEdit); @@ -17202,6 +24199,7 @@ var SvgKeyboardWrapComponent = (function () { }; SvgKeyboardWrapComponent.prototype.hidePopover = function () { this.popoverShown = false; + this.selectedKey = undefined; }; SvgKeyboardWrapComponent.prototype.selectLayer = function (index) { this.currentLayer = index; @@ -17219,7 +24217,8 @@ var SvgKeyboardWrapComponent = (function () { }); if (keystrokeAction.hasScancode()) { var value = keystrokeAction.scancode.toString(); - var scanCodeTexts = (this.mapper.scanCodeToText(keystrokeAction.scancode) || []).join(', '); + var scanCodeTexts = (this.mapper.scanCodeToText(keystrokeAction.scancode, keystrokeAction.type) || []) + .join(', '); if (scanCodeTexts.length > 0) { value += ' (' + scanCodeTexts + ')'; } @@ -17237,7 +24236,7 @@ var SvgKeyboardWrapComponent = (function () { if (keystrokeAction.hasLongPressAction()) { content.push({ name: 'Long press', - value: LongPressAction_1.LongPressAction[keystrokeAction.longPressAction] + value: long_press_action_1.LongPressAction[keystrokeAction.longPressAction] }); } return Observable_1.Observable.of(content); @@ -17320,7 +24319,7 @@ var SvgKeyboardWrapComponent = (function () { }()); __decorate([ core_1.Input(), - __metadata("design:type", Keymap_1.Keymap) + __metadata("design:type", keymap_1.Keymap) ], SvgKeyboardWrapComponent.prototype, "keymap", void 0); __decorate([ core_1.Input(), @@ -17330,6 +24329,10 @@ __decorate([ core_1.Input(), __metadata("design:type", Boolean) ], SvgKeyboardWrapComponent.prototype, "tooltipEnabled", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], SvgKeyboardWrapComponent.prototype, "halvesSplit", void 0); __decorate([ core_1.ViewChild(popover_1.PopoverComponent, { read: core_1.ElementRef }), __metadata("design:type", core_1.ElementRef) @@ -17348,8 +24351,8 @@ __decorate([ SvgKeyboardWrapComponent = __decorate([ core_1.Component({ selector: 'svg-keyboard-wrap', - template: __webpack_require__(713), - styles: [__webpack_require__(753)], + template: __webpack_require__(795), + styles: [__webpack_require__(796)], changeDetection: core_1.ChangeDetectionStrategy.OnPush }), __metadata("design:paramtypes", [store_1.Store, @@ -17361,7 +24364,33 @@ exports.SvgKeyboardWrapComponent = SvgKeyboardWrapComponent; /***/ }), -/* 1092 */ +/* 795 */ +/***/ (function(module, exports) { + +module.exports = "\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n {{ item.name }}: {{ item.value }}\r\n

\r\n
\r\n
\r\n
\r\n"; + +/***/ }), +/* 796 */ +/***/ (function(module, exports) { + +module.exports = ":host {\n width: 100%;\n display: block; }\n :host.space {\n margin-bottom: 405px; }\n\nkeyboard-slider {\n display: block;\n position: relative;\n overflow: hidden;\n /* TODO create dynamic */\n height: 500px;\n margin-top: 30px; }\n\n.tooltip {\n position: fixed;\n transform: translate(-50%, -6px);\n display: none; }\n .tooltip-inner {\n background: #fff;\n color: #000;\n box-shadow: 0 1px 5px #000;\n text-align: left; }\n .tooltip-inner p {\n margin-bottom: 2px; }\n .tooltip-inner p:last-of-type {\n margin-bottom: 0; }\n .tooltip.bottom .tooltip-arrow {\n border-bottom-color: #fff;\n top: 1px; }\n .tooltip.in {\n display: block;\n opacity: 1; }\n" + +/***/ }), +/* 797 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(798)); +__export(__webpack_require__(802)); + + +/***/ }), +/* 798 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17372,82 +24401,112 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var ModuleConfiguration = (function () { - function ModuleConfiguration() { +var core_1 = __webpack_require__(1); +var MainAppComponent = (function () { + function MainAppComponent() { } - ModuleConfiguration.prototype.fromJsonObject = function (jsonObject) { - this.id = jsonObject.id; - this.initialPointerSpeed = jsonObject.initialPointerSpeed; - this.pointerAcceleration = jsonObject.pointerAcceleration; - this.maxPointerSpeed = jsonObject.maxPointerSpeed; - return this; - }; - ModuleConfiguration.prototype.fromBinary = function (buffer) { - this.id = buffer.readUInt8(); - this.initialPointerSpeed = buffer.readUInt8(); - this.pointerAcceleration = buffer.readUInt8(); - this.maxPointerSpeed = buffer.readUInt8(); - return this; - }; - ModuleConfiguration.prototype.toJsonObject = function () { - return { - id: this.id, - initialPointerSpeed: this.initialPointerSpeed, - pointerAcceleration: this.pointerAcceleration, - maxPointerSpeed: this.maxPointerSpeed - }; - }; - ModuleConfiguration.prototype.toBinary = function (buffer) { - buffer.writeUInt8(this.id); - buffer.writeUInt8(this.initialPointerSpeed); - buffer.writeUInt8(this.pointerAcceleration); - buffer.writeUInt8(this.maxPointerSpeed); - }; - ModuleConfiguration.prototype.toString = function () { - return ""; - }; - return ModuleConfiguration; + return MainAppComponent; }()); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], ModuleConfiguration.prototype, "id", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], ModuleConfiguration.prototype, "initialPointerSpeed", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], ModuleConfiguration.prototype, "pointerAcceleration", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], ModuleConfiguration.prototype, "maxPointerSpeed", void 0); -exports.ModuleConfiguration = ModuleConfiguration; +MainAppComponent = __decorate([ + core_1.Component({ + selector: 'main-app', + template: __webpack_require__(799), + styles: [ + __webpack_require__(800), + __webpack_require__(801) + ], + encapsulation: core_1.ViewEncapsulation.None + }) +], MainAppComponent); +exports.MainAppComponent = MainAppComponent; /***/ }), -/* 1093 */ +/* 799 */ +/***/ (function(module, exports) { + +module.exports = "\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n"; + +/***/ }), +/* 800 */ +/***/ (function(module, exports) { + +module.exports = ".notifier__container * {\n box-sizing: border-box; }\n\n.notifier__container-list {\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none; }\n\n.notifier__notification {\n display: block;\n position: fixed;\n visibility: hidden;\n z-index: 10000;\n will-change: transform;\n backface-visibility: hidden; }\n\n.notifier__notification--material {\n border-radius: 3px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n cursor: default;\n padding-top: 11px;\n padding-right: 26px;\n padding-bottom: 10px;\n padding-left: 26px; }\n .notifier__notification--material .notifier__notification-message {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: top;\n line-height: 32px;\n font-size: 15px; }\n .notifier__notification--material .notifier__notification-button {\n display: inline-block;\n transition: opacity .2s ease;\n opacity: .5;\n margin-right: -10px;\n margin-left: 10px;\n outline: none;\n border: none;\n background: none;\n cursor: pointer;\n padding: 6px;\n width: 32px;\n height: 32px;\n vertical-align: top; }\n .notifier__notification--material .notifier__notification-button:hover, .notifier__notification--material .notifier__notification-button:focus {\n opacity: 1; }\n .notifier__notification--material .notifier__notification-button:active {\n transform: scale(0.82);\n opacity: 1; }\n\n.notifier__notification--default {\n background-color: #444;\n color: #FFF; }\n .notifier__notification--default .notifier__notification-button-icon {\n fill: #FFF; }\n\n.notifier__notification--error {\n background-color: #D9534F;\n color: #FFF; }\n .notifier__notification--error .notifier__notification-button-icon {\n fill: #FFF; }\n\n.notifier__notification--info {\n background-color: #5BC0DE;\n color: #FFF; }\n .notifier__notification--info .notifier__notification-button-icon {\n fill: #FFF; }\n\n.notifier__notification--success {\n background-color: #5CB85C;\n color: #FFF; }\n .notifier__notification--success .notifier__notification-button-icon {\n fill: #FFF; }\n\n.notifier__notification--warning {\n background-color: #F0AD4E;\n color: #FFF; }\n .notifier__notification--warning .notifier__notification-button-icon {\n fill: #FFF; }\n\n.tooltip {\n z-index: 10001; }\n .tooltip .tooltip-inner {\n color: #fff;\n background: #333; }\n .tooltip .tooltip-arrow {\n /* stylelint-disable-next-line declaration-no-important */\n border-top-color: #333 !important;\n /* stylelint-disable-next-line declaration-no-important */\n border-bottom-color: #333 !important; }\n\nmain-app {\n display: block;\n overflow: hidden;\n position: relative; }\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n line-height: 26px; }\n\n.main-content {\n margin-left: 250px; }\n\n.select2-container {\n z-index: 1100; }\n .select2-container .scancode--searchterm {\n text-align: right;\n color: #b7b7b7; }\n\n.select2-item {\n display: flex;\n justify-content: space-between; }\n\n.select2-results {\n text-align: left; }\n\n.nav-pills > li > a {\n cursor: pointer; }\n\n.select2-container--default .select2-dropdown--below .select2-results > .select2-results__options {\n max-height: 300px; }\n" + +/***/ }), +/* 801 */ +/***/ (function(module, exports) { + +module.exports = "/* GitHub ribbon */\n.github-fork-ribbon {\n background-color: #a00;\n overflow: hidden;\n white-space: nowrap;\n position: fixed;\n right: -50px;\n bottom: 40px;\n z-index: 2000;\n /* stylelint-disable indentation */\n -webkit-transform: rotate(-45deg);\n -moz-transform: rotate(-45deg);\n -ms-transform: rotate(-45deg);\n -o-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-box-shadow: 0 0 10px #888;\n -moz-box-shadow: 0 0 10px #888;\n box-shadow: 0 0 10px #888;\n /* stylelint-enable indentation */ }\n .github-fork-ribbon a {\n border: 1px solid #faa;\n color: #fff;\n display: block;\n font: bold 81.25% 'Helvetica Neue', Helvetica, Arial, sans-serif;\n margin: 1px 0;\n padding: 10px 50px;\n text-align: center;\n text-decoration: none;\n text-shadow: 0 0 5px #444; }\n\nmain-app {\n min-height: 100vh;\n width: 100%; }\n" + +/***/ }), +/* 802 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var router_1 = __webpack_require__(20); +var add_on_1 = __webpack_require__(229); +var keymap_1 = __webpack_require__(803); +var macro_1 = __webpack_require__(138); +var settings_1 = __webpack_require__(243); +var appRoutes = keymap_1.keymapRoutes.concat(macro_1.macroRoutes, add_on_1.addOnRoutes, settings_1.settingsRoutes); +exports.appRoutingProviders = []; +exports.routing = router_1.RouterModule.forRoot(appRoutes, { useHash: true }); + + +/***/ }), +/* 803 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(804)); + + +/***/ }), +/* 804 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var keymap_add_component_1 = __webpack_require__(231); +var edit_1 = __webpack_require__(247); +exports.keymapRoutes = [ + { + path: '', + redirectTo: '/keymap', + pathMatch: 'full' + }, + { + path: 'keymap', + component: edit_1.KeymapEditComponent, + canActivate: [edit_1.KeymapEditGuard] + }, + { + path: 'keymap/add', + component: keymap_add_component_1.KeymapAddComponent + }, + { + path: 'keymap/:abbr', + component: edit_1.KeymapEditComponent + } +]; + + +/***/ }), +/* 805 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -17458,845 +24517,68 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var LongPressAction_1 = __webpack_require__(455); -var KeyAction_1 = __webpack_require__(81); -var KeystrokeActionFlag; -(function (KeystrokeActionFlag) { - KeystrokeActionFlag[KeystrokeActionFlag["scancode"] = 1] = "scancode"; - KeystrokeActionFlag[KeystrokeActionFlag["modifierMask"] = 2] = "modifierMask"; - KeystrokeActionFlag[KeystrokeActionFlag["longPressAction"] = 4] = "longPressAction"; -})(KeystrokeActionFlag = exports.KeystrokeActionFlag || (exports.KeystrokeActionFlag = {})); -var MODIFIERS = ['LCtrl', 'LShift', 'LAlt', 'LSuper', 'RCtrl', 'RShift', 'RAlt', 'RSuper']; -var KeystrokeAction = (function (_super) { - __extends(KeystrokeAction, _super); - function KeystrokeAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.scancode = other.scancode; - _this.modifierMask = other.modifierMask; - _this.longPressAction = other.longPressAction; - return _this; +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +var Observable_1 = __webpack_require__(0); +__webpack_require__(54); +__webpack_require__(55); +__webpack_require__(73); +__webpack_require__(56); +var store_1 = __webpack_require__(5); +var user_configuration_1 = __webpack_require__(35); +var KeymapEditGuard = (function () { + function KeymapEditGuard(store, router) { + this.store = store; + this.router = router; } - KeystrokeAction.prototype.fromJsonObject = function (jsonObject) { - this.assertKeyActionType(jsonObject); - this.scancode = jsonObject.scancode; - this.modifierMask = jsonObject.modifierMask; - this.longPressAction = LongPressAction_1.LongPressAction[jsonObject.longPressAction]; - return this; - }; - KeystrokeAction.prototype.fromBinary = function (buffer) { - var keyActionId = this.readAndAssertKeyActionId(buffer); - var flags = keyActionId - KeyAction_1.KeyActionId.KeystrokeAction; - if (flags & KeystrokeActionFlag.scancode) { - this.scancode = buffer.readUInt8(); - } - if (flags & KeystrokeActionFlag.modifierMask) { - this.modifierMask = buffer.readUInt8(); - } - if (flags & KeystrokeActionFlag.longPressAction) { - this.longPressAction = buffer.readUInt8(); - } - return this; - }; - KeystrokeAction.prototype.toJsonObject = function () { - var jsonObject = { - keyActionType: KeyAction_1.keyActionType.KeystrokeAction - }; - if (this.hasScancode()) { - jsonObject.scancode = this.scancode; - } - if (this.hasActiveModifier()) { - jsonObject.modifierMask = this.modifierMask; - } - if (this.hasLongPressAction()) { - jsonObject.longPressAction = LongPressAction_1.LongPressAction[this.longPressAction]; - } - return jsonObject; - }; - KeystrokeAction.prototype.toBinary = function (buffer) { - var flags = 0; - var bufferData = []; - if (this.hasScancode()) { - flags |= KeystrokeActionFlag.scancode; - bufferData.push(this.scancode); - } - if (this.hasActiveModifier()) { - flags |= KeystrokeActionFlag.modifierMask; - bufferData.push(this.modifierMask); - } - if (this.hasLongPressAction()) { - flags |= KeystrokeActionFlag.longPressAction; - bufferData.push(this.longPressAction); - } - buffer.writeUInt8(KeyAction_1.KeyActionId.KeystrokeAction + flags); - for (var i = 0; i < bufferData.length; ++i) { - buffer.writeUInt8(bufferData[i]); - } - }; - KeystrokeAction.prototype.toString = function () { - var properties = []; - if (this.hasScancode()) { - properties.push("scancode=\"" + this.scancode + "\""); - } - if (this.hasActiveModifier()) { - properties.push("modifierMask=\"" + this.modifierMask + "\""); - } - if (this.hasLongPressAction()) { - properties.push("longPressAction=\"" + this.longPressAction + "\""); - } - return ""; - }; - KeystrokeAction.prototype.isActive = function (modifier) { - return (this.modifierMask & modifier) > 0; - }; - KeystrokeAction.prototype.hasActiveModifier = function () { - return this.modifierMask > 0; - }; - KeystrokeAction.prototype.hasLongPressAction = function () { - return this.longPressAction !== undefined; - }; - KeystrokeAction.prototype.hasScancode = function () { - return !!this.scancode; - }; - KeystrokeAction.prototype.hasOnlyOneActiveModifier = function () { - return this.modifierMask !== 0 && !(this.modifierMask & this.modifierMask - 1); - }; - KeystrokeAction.prototype.getModifierList = function () { - var modifierList = []; - var modifierMask = this.modifierMask; - for (var i = 0; modifierMask !== 0; ++i, modifierMask >>= 1) { - if (modifierMask & 1) { - modifierList.push(MODIFIERS[i]); - } - } - return modifierList; - }; - return KeystrokeAction; -}(KeyAction_1.KeyAction)); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], KeystrokeAction.prototype, "scancode", void 0); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], KeystrokeAction.prototype, "modifierMask", void 0); -__decorate([ - assert_1.assertEnum(LongPressAction_1.LongPressAction), - __metadata("design:type", Number) -], KeystrokeAction.prototype, "longPressAction", void 0); -exports.KeystrokeAction = KeystrokeAction; - - -/***/ }), -/* 1094 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var KeyAction_1 = __webpack_require__(81); -var MouseActionParam; -(function (MouseActionParam) { - MouseActionParam[MouseActionParam["leftClick"] = 0] = "leftClick"; - MouseActionParam[MouseActionParam["middleClick"] = 1] = "middleClick"; - MouseActionParam[MouseActionParam["rightClick"] = 2] = "rightClick"; - MouseActionParam[MouseActionParam["moveUp"] = 3] = "moveUp"; - MouseActionParam[MouseActionParam["moveDown"] = 4] = "moveDown"; - MouseActionParam[MouseActionParam["moveLeft"] = 5] = "moveLeft"; - MouseActionParam[MouseActionParam["moveRight"] = 6] = "moveRight"; - MouseActionParam[MouseActionParam["scrollUp"] = 7] = "scrollUp"; - MouseActionParam[MouseActionParam["scrollDown"] = 8] = "scrollDown"; - MouseActionParam[MouseActionParam["scrollLeft"] = 9] = "scrollLeft"; - MouseActionParam[MouseActionParam["scrollRight"] = 10] = "scrollRight"; - MouseActionParam[MouseActionParam["accelerate"] = 11] = "accelerate"; - MouseActionParam[MouseActionParam["decelerate"] = 12] = "decelerate"; -})(MouseActionParam = exports.MouseActionParam || (exports.MouseActionParam = {})); -var MouseAction = (function (_super) { - __extends(MouseAction, _super); - function MouseAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.mouseAction = other.mouseAction; - return _this; - } - MouseAction.prototype.fromJsonObject = function (jsObject) { - this.assertKeyActionType(jsObject); - this.mouseAction = MouseActionParam[jsObject.mouseAction]; - return this; - }; - MouseAction.prototype.fromBinary = function (buffer) { - this.readAndAssertKeyActionId(buffer); - this.mouseAction = buffer.readUInt8(); - return this; - }; - MouseAction.prototype.toJsonObject = function () { - return { - keyActionType: KeyAction_1.keyActionType.MouseAction, - mouseAction: MouseActionParam[this.mouseAction] - }; - }; - MouseAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(KeyAction_1.KeyActionId.MouseAction); - buffer.writeUInt8(this.mouseAction); - }; - MouseAction.prototype.toString = function () { - return ""; - }; - return MouseAction; -}(KeyAction_1.KeyAction)); -__decorate([ - assert_1.assertEnum(MouseActionParam), - __metadata("design:type", Number) -], MouseAction.prototype, "mouseAction", void 0); -exports.MouseAction = MouseAction; - - -/***/ }), -/* 1095 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var KeyAction_1 = __webpack_require__(81); -/** - * NoneAction is only intended for binary serialization of undefined key actions - * DO NOT use it as a real KeyAction - * - */ -var NoneAction = (function (_super) { - __extends(NoneAction, _super); - function NoneAction() { - return _super !== null && _super.apply(this, arguments) || this; - } - NoneAction.prototype.fromJsonObject = function (jsonObject) { - this.assertKeyActionType(jsonObject); - return this; - }; - NoneAction.prototype.fromBinary = function (buffer) { - this.readAndAssertKeyActionId(buffer); - return this; - }; - NoneAction.prototype.toJsonObject = function () { - return { - keyActionType: KeyAction_1.keyActionType.NoneAction - }; - }; - NoneAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(KeyAction_1.KeyActionId.NoneAction); - }; - NoneAction.prototype.toString = function () { - return ''; - }; - return NoneAction; -}(KeyAction_1.KeyAction)); -exports.NoneAction = NoneAction; - - -/***/ }), -/* 1096 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var KeyAction_1 = __webpack_require__(81); -var PlayMacroAction = (function (_super) { - __extends(PlayMacroAction, _super); - function PlayMacroAction(parameter) { - var _this = _super.call(this) || this; - if (!parameter) { - return _this; - } - if (parameter instanceof PlayMacroAction) { - _this.macroId = parameter.macroId; - } - else { - _this.macroId = parameter.id; - } - return _this; - } - PlayMacroAction.prototype.fromJsonObject = function (jsonObject, macros) { - this.assertKeyActionType(jsonObject); - this.macroId = macros[jsonObject.macroIndex].id; - return this; - }; - PlayMacroAction.prototype.fromBinary = function (buffer, macros) { - this.readAndAssertKeyActionId(buffer); - var macroIndex = buffer.readUInt8(); - this.macroId = macros[macroIndex].id; - return this; - }; - PlayMacroAction.prototype.toJsonObject = function (macros) { + KeymapEditGuard.prototype.canActivate = function () { var _this = this; - return { - keyActionType: KeyAction_1.keyActionType.PlayMacroAction, - macroIndex: macros.findIndex(function (macro) { return macro.id === _this.macroId; }) - }; - }; - PlayMacroAction.prototype.toBinary = function (buffer, macros) { - var _this = this; - buffer.writeUInt8(KeyAction_1.KeyActionId.PlayMacroAction); - buffer.writeUInt8(macros.findIndex(function (macro) { return macro.id === _this.macroId; })); - }; - PlayMacroAction.prototype.toString = function () { - return ""; - }; - return PlayMacroAction; -}(KeyAction_1.KeyAction)); -__decorate([ - assert_1.assertUInt8, - __metadata("design:type", Number) -], PlayMacroAction.prototype, "macroId", void 0); -exports.PlayMacroAction = PlayMacroAction; - - -/***/ }), -/* 1097 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var Keymap_1 = __webpack_require__(80); -var KeyAction_1 = __webpack_require__(81); -var SwitchKeymapAction = (function (_super) { - __extends(SwitchKeymapAction, _super); - function SwitchKeymapAction(parameter) { - var _this = _super.call(this) || this; - if (!parameter) { - return _this; - } - if (parameter instanceof SwitchKeymapAction) { - _this.keymapAbbreviation = parameter.keymapAbbreviation; - } - else if (parameter instanceof Keymap_1.Keymap) { - _this.keymapAbbreviation = parameter.abbreviation; - } - else { - _this.keymapAbbreviation = parameter; - } - return _this; - } - SwitchKeymapAction.prototype.fromJsonObject = function (jsonObject) { - this.assertKeyActionType(jsonObject); - this.keymapAbbreviation = jsonObject.keymapAbbreviation; - return this; - }; - SwitchKeymapAction.prototype.fromBinary = function (buffer) { - this.readAndAssertKeyActionId(buffer); - this.keymapAbbreviation = buffer.readString(); - return this; - }; - SwitchKeymapAction.prototype.toJsonObject = function () { - return { - keyActionType: KeyAction_1.keyActionType.SwitchKeymapAction, - keymapAbbreviation: this.keymapAbbreviation - }; - }; - SwitchKeymapAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(KeyAction_1.KeyActionId.SwitchKeymapAction); - buffer.writeString(this.keymapAbbreviation); - }; - SwitchKeymapAction.prototype.toString = function () { - return ""; - }; - SwitchKeymapAction.prototype.renameKeymap = function (oldAbbr, newAbbr) { - if (this.keymapAbbreviation !== oldAbbr) { - return this; - } - return new SwitchKeymapAction(newAbbr); - }; - return SwitchKeymapAction; -}(KeyAction_1.KeyAction)); -exports.SwitchKeymapAction = SwitchKeymapAction; - - -/***/ }), -/* 1098 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var assert_1 = __webpack_require__(26); -var KeyAction_1 = __webpack_require__(81); -var LayerName; -(function (LayerName) { - LayerName[LayerName["mod"] = 0] = "mod"; - LayerName[LayerName["fn"] = 1] = "fn"; - LayerName[LayerName["mouse"] = 2] = "mouse"; -})(LayerName = exports.LayerName || (exports.LayerName = {})); -var SwitchLayerAction = (function (_super) { - __extends(SwitchLayerAction, _super); - function SwitchLayerAction(other) { - var _this = _super.call(this) || this; - if (!other) { - return _this; - } - _this.isLayerToggleable = other.isLayerToggleable; - _this.layer = other.layer; - return _this; - } - SwitchLayerAction.prototype.fromJsonObject = function (jsonObject) { - this.assertKeyActionType(jsonObject); - this.layer = LayerName[jsonObject.layer]; - this.isLayerToggleable = jsonObject.toggle; - return this; - }; - SwitchLayerAction.prototype.fromBinary = function (buffer) { - this.readAndAssertKeyActionId(buffer); - this.layer = buffer.readUInt8(); - this.isLayerToggleable = buffer.readBoolean(); - return this; - }; - SwitchLayerAction.prototype.toJsonObject = function () { - return { - keyActionType: KeyAction_1.keyActionType.SwitchLayerAction, - layer: LayerName[this.layer], - toggle: this.isLayerToggleable - }; - }; - SwitchLayerAction.prototype.toBinary = function (buffer) { - buffer.writeUInt8(KeyAction_1.KeyActionId.SwitchLayerAction); - buffer.writeUInt8(this.layer); - buffer.writeBoolean(this.isLayerToggleable); - }; - SwitchLayerAction.prototype.toString = function () { - return ""; - }; - return SwitchLayerAction; -}(KeyAction_1.KeyAction)); -__decorate([ - assert_1.assertEnum(LayerName), - __metadata("design:type", Number) -], SwitchLayerAction.prototype, "layer", void 0); -exports.SwitchLayerAction = SwitchLayerAction; - - -/***/ }), -/* 1099 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var UhkBuffer_1 = __webpack_require__(453); -var index_1 = __webpack_require__(22); -var Helper = (function () { - function Helper() { - } - Helper.createKeyAction = function (source, macros) { - if (source instanceof index_1.KeyAction) { - return Helper.fromKeyAction(source); - } - else if (source instanceof UhkBuffer_1.UhkBuffer) { - return Helper.fromUhkBuffer(source, macros); - } - else { - return Helper.fromJSONObject(source, macros); - } - }; - Helper.fromUhkBuffer = function (buffer, macros) { - var keyActionFirstByte = buffer.readUInt8(); - buffer.backtrack(); - if (keyActionFirstByte >= index_1.KeyActionId.KeystrokeAction && keyActionFirstByte < index_1.KeyActionId.LastKeystrokeAction) { - return new index_1.KeystrokeAction().fromBinary(buffer); - } - switch (keyActionFirstByte) { - case index_1.KeyActionId.NoneAction: - buffer.readUInt8(); // Read type just to skip it - return undefined; - case index_1.KeyActionId.SwitchLayerAction: - return new index_1.SwitchLayerAction().fromBinary(buffer); - case index_1.KeyActionId.SwitchKeymapAction: - return new index_1.SwitchKeymapAction().fromBinary(buffer); - case index_1.KeyActionId.MouseAction: - return new index_1.MouseAction().fromBinary(buffer); - case index_1.KeyActionId.PlayMacroAction: - return new index_1.PlayMacroAction().fromBinary(buffer, macros); - default: - throw "Invalid KeyAction first byte: " + keyActionFirstByte; - } - }; - Helper.fromKeyAction = function (keyAction) { - var newKeyAction; - if (keyAction instanceof index_1.KeystrokeAction) { - newKeyAction = new index_1.KeystrokeAction(keyAction); - } - else if (keyAction instanceof index_1.SwitchLayerAction) { - newKeyAction = new index_1.SwitchLayerAction(keyAction); - } - else if (keyAction instanceof index_1.SwitchKeymapAction) { - newKeyAction = new index_1.SwitchKeymapAction(keyAction); - } - else if (keyAction instanceof index_1.MouseAction) { - newKeyAction = new index_1.MouseAction(keyAction); - } - else if (keyAction instanceof index_1.PlayMacroAction) { - newKeyAction = new index_1.PlayMacroAction(keyAction); - } - return newKeyAction; - }; - Helper.fromJSONObject = function (keyAction, macros) { - if (!keyAction) { - return; - } - switch (keyAction.keyActionType) { - case index_1.keyActionType.KeystrokeAction: - return new index_1.KeystrokeAction().fromJsonObject(keyAction); - case index_1.keyActionType.SwitchLayerAction: - return new index_1.SwitchLayerAction().fromJsonObject(keyAction); - case index_1.keyActionType.SwitchKeymapAction: - return new index_1.SwitchKeymapAction().fromJsonObject(keyAction); - case index_1.keyActionType.MouseAction: - return new index_1.MouseAction().fromJsonObject(keyAction); - case index_1.keyActionType.PlayMacroAction: - return new index_1.PlayMacroAction().fromJsonObject(keyAction, macros); - default: - throw "Invalid KeyAction.keyActionType: \"" + keyAction.keyActionType + "\""; - } - }; - return Helper; -}()); -exports.Helper = Helper; - - -/***/ }), -/* 1100 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var key_action_1 = __webpack_require__(22); -var DelayMacroAction_1 = __webpack_require__(457); -var KeyMacroAction_1 = __webpack_require__(458); -var MacroAction_1 = __webpack_require__(68); -var MouseButtonMacroAction_1 = __webpack_require__(459); -var MoveMouseMacroAction_1 = __webpack_require__(460); -var ScrollMouseMacroAction_1 = __webpack_require__(461); -var TextMacroAction_1 = __webpack_require__(462); -var EditableMacroAction = (function () { - function EditableMacroAction(jsObject) { - if (!jsObject) { - return; - } - this.macroActionType = jsObject.macroActionType; - switch (this.macroActionType) { - case MacroAction_1.macroActionType.KeyMacroAction: - this.action = MacroAction_1.MacroSubAction[jsObject.action]; - this.scancode = jsObject.scancode; - this.modifierMask = jsObject.modifierMask; - break; - case MacroAction_1.macroActionType.MouseButtonMacroAction: - this.action = MacroAction_1.MacroSubAction[jsObject.action]; - this.mouseButtonsMask = jsObject.mouseButtonsMask; - break; - case MacroAction_1.macroActionType.MoveMouseMacroAction: - this.moveX = jsObject.x; - this.moveY = jsObject.y; - break; - case MacroAction_1.macroActionType.ScrollMouseMacroAction: - this.scrollX = jsObject.x; - this.scrollY = jsObject.y; - break; - case MacroAction_1.macroActionType.TextMacroAction: - this.text = jsObject.text; - break; - case MacroAction_1.macroActionType.DelayMacroAction: - this.delay = jsObject.delay; - break; - default: - break; - } - } - EditableMacroAction.prototype.toJsObject = function () { - return { - macroActionType: this.macroActionType, - action: this.action, - delay: this.delay, - text: this.text, - scancode: this.scancode, - modifierMask: this.modifierMask, - mouseButtonsMask: this.mouseButtonsMask, - mouseMove: { - x: this.moveX, - y: this.moveY - }, - mouseScroll: { - x: this.scrollX, - y: this.scrollY + return this.store + .let(user_configuration_1.getKeymaps()) + .do(function (keymaps) { + var defaultKeymap = keymaps.find(function (keymap) { return keymap.isDefault; }); + if (defaultKeymap) { + _this.router.navigate(['/keymap', defaultKeymap.abbreviation]); } - }; + }) + .switchMap(function () { return Observable_1.Observable.of(false); }); }; - EditableMacroAction.prototype.fromKeyAction = function (keyAction) { - var data = keyAction.toJsonObject(); - this.scancode = data.scancode; - this.modifierMask = data.modifierMask; - }; - EditableMacroAction.prototype.toKeystrokeAction = function () { - var data = this.toJsObject(); - data.keyActionType = key_action_1.keyActionType.KeystrokeAction; - return (new key_action_1.KeystrokeAction().fromJsonObject(data)); - }; - EditableMacroAction.prototype.setMouseButtons = function (buttonStates) { - var bitmask = 0; - for (var i = 0; i < buttonStates.length; i++) { - bitmask |= Number(buttonStates[i]) << i; - } - this.mouseButtonsMask = bitmask; - }; - EditableMacroAction.prototype.getMouseButtons = function () { - var enabledMouseButtons = []; - for (var bitmask = this.mouseButtonsMask; bitmask; bitmask >>>= 1) { - enabledMouseButtons.push(Boolean(bitmask & 1)); - } - return enabledMouseButtons; - }; - EditableMacroAction.prototype.toClass = function () { - switch (this.macroActionType) { - // Delay action - case MacroAction_1.macroActionType.DelayMacroAction: - return new DelayMacroAction_1.DelayMacroAction().fromJsonObject({ - macroActionType: this.macroActionType, - delay: this.delay - }); - // Text action - case MacroAction_1.macroActionType.TextMacroAction: - return new TextMacroAction_1.TextMacroAction().fromJsonObject({ - macroActionType: this.macroActionType, - text: this.text - }); - // Keypress action - case MacroAction_1.macroActionType.KeyMacroAction: - return new KeyMacroAction_1.KeyMacroAction().fromJsonObject({ - macroActionType: this.macroActionType, - action: MacroAction_1.MacroSubAction[this.action], - scancode: this.scancode, - modifierMask: this.modifierMask - }); - // Mouse actions - case MacroAction_1.macroActionType.MouseButtonMacroAction: - return new MouseButtonMacroAction_1.MouseButtonMacroAction().fromJsonObject({ - macroActionType: this.macroActionType, - action: MacroAction_1.MacroSubAction[this.action], - mouseButtonsMask: this.mouseButtonsMask - }); - case MacroAction_1.macroActionType.MoveMouseMacroAction: - return new MoveMouseMacroAction_1.MoveMouseMacroAction().fromJsonObject({ - macroActionType: this.macroActionType, - x: this.moveX, - y: this.moveY - }); - case MacroAction_1.macroActionType.ScrollMouseMacroAction: - return new ScrollMouseMacroAction_1.ScrollMouseMacroAction().fromJsonObject({ - macroActionType: this.macroActionType, - x: this.scrollX, - y: this.scrollY - }); - default: - throw new Error('Macro action type is missing or not implemented.'); - } - }; - EditableMacroAction.prototype.isKeyAction = function () { - return this.macroActionType === MacroAction_1.macroActionType.KeyMacroAction; - }; - EditableMacroAction.prototype.isMouseButtonAction = function () { - return this.macroActionType === MacroAction_1.macroActionType.MouseButtonMacroAction; - }; - EditableMacroAction.prototype.isOnlyHoldAction = function () { - return this.action === MacroAction_1.MacroSubAction.hold; - }; - EditableMacroAction.prototype.isOnlyPressAction = function () { - return this.action === MacroAction_1.MacroSubAction.press; - }; - EditableMacroAction.prototype.isOnlyReleaseAction = function () { - return this.action === MacroAction_1.MacroSubAction.release; - }; - return EditableMacroAction; + return KeymapEditGuard; }()); -exports.EditableMacroAction = EditableMacroAction; +KeymapEditGuard = __decorate([ + core_1.Injectable(), + __metadata("design:paramtypes", [store_1.Store, router_1.Router]) +], KeymapEditGuard); +exports.KeymapEditGuard = KeymapEditGuard; /***/ }), -/* 1101 */ +/* 806 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(807)); +__export(__webpack_require__(809)); + + +/***/ }), +/* 807 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var UhkBuffer_1 = __webpack_require__(453); -var index_1 = __webpack_require__(69); -var Helper = (function () { - function Helper() { - } - Helper.createMacroAction = function (source) { - if (source instanceof index_1.MacroAction) { - return Helper.fromMacroAction(source); - } - else if (source instanceof UhkBuffer_1.UhkBuffer) { - return Helper.fromUhkBuffer(source); - } - else { - return Helper.fromJSONObject(source); - } - }; - Helper.fromUhkBuffer = function (buffer) { - var macroActionFirstByte = buffer.readUInt8(); - buffer.backtrack(); - if (macroActionFirstByte >= index_1.MacroActionId.KeyMacroAction && macroActionFirstByte <= index_1.MacroActionId.LastKeyMacroAction) { - return new index_1.KeyMacroAction().fromBinary(buffer); - } - else if (macroActionFirstByte >= index_1.MacroActionId.MouseButtonMacroAction && - macroActionFirstByte <= index_1.MacroActionId.LastMouseButtonMacroAction) { - return new index_1.MouseButtonMacroAction().fromBinary(buffer); - } - switch (macroActionFirstByte) { - case index_1.MacroActionId.MoveMouseMacroAction: - return new index_1.MoveMouseMacroAction().fromBinary(buffer); - case index_1.MacroActionId.ScrollMouseMacroAction: - return new index_1.ScrollMouseMacroAction().fromBinary(buffer); - case index_1.MacroActionId.DelayMacroAction: - return new index_1.DelayMacroAction().fromBinary(buffer); - case index_1.MacroActionId.TextMacroAction: - return new index_1.TextMacroAction().fromBinary(buffer); - default: - throw "Invalid MacroAction first byte: " + macroActionFirstByte; - } - }; - Helper.fromMacroAction = function (macroAction) { - var newMacroAction; - if (macroAction instanceof index_1.KeyMacroAction) { - newMacroAction = new index_1.KeyMacroAction(macroAction); - } - else if (macroAction instanceof index_1.MouseButtonMacroAction) { - newMacroAction = new index_1.MouseButtonMacroAction(macroAction); - } - else if (macroAction instanceof index_1.MoveMouseMacroAction) { - newMacroAction = new index_1.MoveMouseMacroAction(macroAction); - } - else if (macroAction instanceof index_1.ScrollMouseMacroAction) { - newMacroAction = new index_1.ScrollMouseMacroAction(macroAction); - } - else if (macroAction instanceof index_1.DelayMacroAction) { - newMacroAction = new index_1.DelayMacroAction(macroAction); - } - else if (macroAction instanceof index_1.TextMacroAction) { - newMacroAction = new index_1.TextMacroAction(macroAction); - } - return newMacroAction; - }; - Helper.fromJSONObject = function (macroAction) { - switch (macroAction.macroActionType) { - case index_1.macroActionType.KeyMacroAction: - return new index_1.KeyMacroAction().fromJsonObject(macroAction); - case index_1.macroActionType.MouseButtonMacroAction: - return new index_1.MouseButtonMacroAction().fromJsonObject(macroAction); - case index_1.macroActionType.MoveMouseMacroAction: - return new index_1.MoveMouseMacroAction().fromJsonObject(macroAction); - case index_1.macroActionType.ScrollMouseMacroAction: - return new index_1.ScrollMouseMacroAction().fromJsonObject(macroAction); - case index_1.macroActionType.DelayMacroAction: - return new index_1.DelayMacroAction().fromJsonObject(macroAction); - case index_1.macroActionType.TextMacroAction: - return new index_1.TextMacroAction().fromJsonObject(macroAction); - default: - throw "Invalid MacroAction.macroActionType: \"" + macroAction.macroActionType + "\""; - } - }; - return Helper; -}()); -exports.Helper = Helper; +var cancelable_directive_1 = __webpack_require__(808); +exports.CancelableDirective = cancelable_directive_1.CancelableDirective; /***/ }), -/* 1102 */ +/* 808 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18311,7 +24593,7 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); +var core_1 = __webpack_require__(1); var CancelableDirective = (function () { function CancelableDirective(elementRef, renderer) { this.elementRef = elementRef; @@ -18348,228 +24630,71 @@ exports.CancelableDirective = CancelableDirective; /***/ }), -/* 1103 */ +/* 809 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var cancelable_directive_1 = __webpack_require__(1102); -exports.CancelableDirective = cancelable_directive_1.CancelableDirective; +var tooltip_directive_1 = __webpack_require__(810); +exports.TooltipDirective = tooltip_directive_1.TooltipDirective; /***/ }), -/* 1104 */ +/* 810 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} +/* WEBPACK VAR INJECTION */(function(jQuery) { +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1103)); +var core_1 = __webpack_require__(1); +var TooltipDirective = (function () { + function TooltipDirective(elementRef, renderer) { + this.elementRef = elementRef; + this.renderer = renderer; + this.customTooltipTemplate = "\n
\n
\n
\n
\n "; + } + TooltipDirective.prototype.ngAfterContentInit = function () { + jQuery(this.elementRef.nativeElement).tooltip({ + placement: 'top', + html: true, + template: this.customTooltipTemplate + }); + }; + return TooltipDirective; +}()); +TooltipDirective = __decorate([ + core_1.Directive({ + selector: '[data-toggle="tooltip"]' + }), + __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer2]) +], TooltipDirective); +exports.TooltipDirective = TooltipDirective; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8))) /***/ }), -/* 1105 */ +/* 811 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var KeymapActions; -(function (KeymapActions) { - KeymapActions.PREFIX = '[Keymap] '; - KeymapActions.ADD = KeymapActions.PREFIX + 'Add keymap'; - KeymapActions.DUPLICATE = KeymapActions.PREFIX + 'Duplicate keymap'; - KeymapActions.EDIT_ABBR = KeymapActions.PREFIX + 'Edit keymap abbreviation'; - KeymapActions.EDIT_NAME = KeymapActions.PREFIX + 'Edit keymap title'; - KeymapActions.SAVE_KEY = KeymapActions.PREFIX + 'Save key action'; - KeymapActions.SET_DEFAULT = KeymapActions.PREFIX + 'Set default option'; - KeymapActions.REMOVE = KeymapActions.PREFIX + 'Remove keymap'; - KeymapActions.CHECK_MACRO = KeymapActions.PREFIX + 'Check deleted macro'; - function addKeymap(item) { - return { - type: KeymapActions.ADD, - payload: item - }; - } - KeymapActions.addKeymap = addKeymap; - function setDefault(abbr) { - return { - type: KeymapActions.SET_DEFAULT, - payload: abbr - }; - } - KeymapActions.setDefault = setDefault; - function removeKeymap(abbr) { - return { - type: KeymapActions.REMOVE, - payload: abbr - }; - } - KeymapActions.removeKeymap = removeKeymap; - function duplicateKeymap(keymap) { - return { - type: KeymapActions.DUPLICATE, - payload: keymap - }; - } - KeymapActions.duplicateKeymap = duplicateKeymap; - function editKeymapName(abbr, name) { - return { - type: KeymapActions.EDIT_NAME, - payload: { - abbr: abbr, - name: name - } - }; - } - KeymapActions.editKeymapName = editKeymapName; - function editKeymapAbbr(abbr, newAbbr) { - return { - type: KeymapActions.EDIT_ABBR, - payload: { - abbr: abbr, - newAbbr: newAbbr - } - }; - } - KeymapActions.editKeymapAbbr = editKeymapAbbr; - function saveKey(keymap, layer, module, key, keyAction) { - return { - type: KeymapActions.SAVE_KEY, - payload: { - keymap: keymap, - layer: layer, - module: module, - key: key, - keyAction: keyAction - } - }; - } - KeymapActions.saveKey = saveKey; - function checkMacro(macro) { - return { - type: KeymapActions.CHECK_MACRO, - payload: macro - }; - } - KeymapActions.checkMacro = checkMacro; -})(KeymapActions = exports.KeymapActions || (exports.KeymapActions = {})); +var safe_style_pipe_1 = __webpack_require__(812); +exports.SafeStylePipe = safe_style_pipe_1.SafeStylePipe; /***/ }), -/* 1106 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var MacroActions; -(function (MacroActions) { - MacroActions.PREFIX = '[Macro] '; - MacroActions.DUPLICATE = MacroActions.PREFIX + 'Duplicate macro'; - MacroActions.EDIT_NAME = MacroActions.PREFIX + 'Edit macro title'; - MacroActions.REMOVE = MacroActions.PREFIX + 'Remove macro'; - MacroActions.ADD = MacroActions.PREFIX + 'Add macro'; - MacroActions.ADD_ACTION = MacroActions.PREFIX + 'Add macro action'; - MacroActions.SAVE_ACTION = MacroActions.PREFIX + 'Save macro action'; - MacroActions.DELETE_ACTION = MacroActions.PREFIX + 'Delete macro action'; - MacroActions.REORDER_ACTION = MacroActions.PREFIX + 'Reorder macro action'; - function addMacro() { - return { - type: MacroActions.ADD - }; - } - MacroActions.addMacro = addMacro; - function removeMacro(macroId) { - return { - type: MacroActions.REMOVE, - payload: macroId - }; - } - MacroActions.removeMacro = removeMacro; - function duplicateMacro(macro) { - return { - type: MacroActions.DUPLICATE, - payload: macro - }; - } - MacroActions.duplicateMacro = duplicateMacro; - function editMacroName(id, name) { - return { - type: MacroActions.EDIT_NAME, - payload: { - id: id, - name: name - } - }; - } - MacroActions.editMacroName = editMacroName; - function addMacroAction(id, action) { - return { - type: MacroActions.ADD_ACTION, - payload: { - id: id, - action: action - } - }; - } - MacroActions.addMacroAction = addMacroAction; - function saveMacroAction(id, index, action) { - return { - type: MacroActions.SAVE_ACTION, - payload: { - id: id, - index: index, - action: action - } - }; - } - MacroActions.saveMacroAction = saveMacroAction; - function deleteMacroAction(id, index, action) { - return { - type: MacroActions.DELETE_ACTION, - payload: { - id: id, - index: index, - action: action - } - }; - } - MacroActions.deleteMacroAction = deleteMacroAction; - function reorderMacroAction(id, oldIndex, newIndex) { - return { - type: MacroActions.REORDER_ACTION, - payload: { - id: id, - oldIndex: oldIndex, - newIndex: newIndex - } - }; - } - MacroActions.reorderMacroAction = reorderMacroAction; -})(MacroActions = exports.MacroActions || (exports.MacroActions = {})); - - -/***/ }), -/* 1107 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1108)); -__export(__webpack_require__(1109)); - - -/***/ }), -/* 1108 */ +/* 812 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18584,20 +24709,87 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -var effects_1 = __webpack_require__(165); -var store_1 = __webpack_require__(9); -__webpack_require__(122); -__webpack_require__(65); -__webpack_require__(274); -var actions_1 = __webpack_require__(54); +var core_1 = __webpack_require__(1); +var platform_browser_1 = __webpack_require__(42); +var SafeStylePipe = (function () { + function SafeStylePipe(sanitizer) { + this.sanitizer = sanitizer; + } + SafeStylePipe.prototype.transform = function (style) { + return this.sanitizer.bypassSecurityTrustStyle(style); + }; + return SafeStylePipe; +}()); +SafeStylePipe = __decorate([ + core_1.Pipe({ + name: 'safeStyle' + }), + __metadata("design:paramtypes", [platform_browser_1.DomSanitizer]) +], SafeStylePipe); +exports.SafeStylePipe = SafeStylePipe; + + +/***/ }), +/* 813 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(814)); +__export(__webpack_require__(820)); +__export(__webpack_require__(821)); +__export(__webpack_require__(823)); +__export(__webpack_require__(824)); + + +/***/ }), +/* 814 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +var effects_1 = __webpack_require__(46); +var store_1 = __webpack_require__(5); +var Observable_1 = __webpack_require__(0); +__webpack_require__(55); +__webpack_require__(21); +__webpack_require__(95); +__webpack_require__(56); +__webpack_require__(74); +__webpack_require__(54); +var actions_1 = __webpack_require__(34); +var keymap_1 = __webpack_require__(48); var KeymapEffects = (function () { function KeymapEffects(actions$, router, store) { var _this = this; this.actions$ = actions$; this.router = router; this.store = store; + this.loadKeymaps$ = this.actions$ + .ofType(actions_1.KeymapActions.LOAD_KEYMAPS) + .startWith(actions_1.KeymapActions.loadKeymaps()) + .switchMap(function () { + var presetsRequireContext = __webpack_require__(815); + var uhkPresets = presetsRequireContext.keys().map(presetsRequireContext) // load the presets into an array + .map(function (keymap) { return new keymap_1.Keymap().fromJsonObject(keymap); }); + return Observable_1.Observable.of(actions_1.KeymapActions.loadKeymapsSuccess(uhkPresets)); + }); this.addOrDuplicate$ = this.actions$ .ofType(actions_1.KeymapActions.ADD, actions_1.KeymapActions.DUPLICATE) .withLatestFrom(this.store) @@ -18627,6 +24819,10 @@ var KeymapEffects = (function () { } return KeymapEffects; }()); +__decorate([ + effects_1.Effect(), + __metadata("design:type", Observable_1.Observable) +], KeymapEffects.prototype, "loadKeymaps$", void 0); __decorate([ effects_1.Effect({ dispatch: false }), __metadata("design:type", Object) @@ -18647,7 +24843,1922 @@ exports.KeymapEffects = KeymapEffects; /***/ }), -/* 1109 */ +/* 815 */ +/***/ (function(module, exports, __webpack_require__) { + +var map = { + "./DVR.json": 816, + "./EMY.json": 817, + "./QTY.json": 818, + "./VIM.json": 819 +}; +function webpackContext(req) { + return __webpack_require__(webpackContextResolve(req)); +}; +function webpackContextResolve(req) { + var id = map[req]; + if(!(id + 1)) // check for number or string + throw new Error("Cannot find module '" + req + "'."); + return id; +}; +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = 815; + +/***/ }), +/* 816 */ +/***/ (function(module, exports) { + +module.exports = { + "isDefault": false, + "abbreviation": "DVR", + "name": "DVR", + "description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean dictum sollicitudin massa, ut lacinia ipsum. Ut bibendum ipsum ac pulvinar vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat lobortis lacus, id viverra nisl varius eu. Aliquam vitae eros a augue fermentum ultricies. Nam tempus dui sed ante ultricies bibendum. In ligula velit, aliquet a felis vitae, gravida tincidunt ante. Proin euismod velit odio, at pretium lacus porta egestas. Suspendisse aliquam, lacus accumsan dapibus elementum, orci felis egestas leo, non vulputate lorem turpis nec risus. Curabitur id volutpat orci. Sed aliquet finibus iaculis. In venenatis neque ac dolor posuere, vel vestibulum augue posuere.", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + } + ] +}; + +/***/ }), +/* 817 */ +/***/ (function(module, exports) { + +module.exports = { + "isDefault": false, + "abbreviation": "EMY", + "name": "Empty keymap", + "description": "None of the keys are bind to any key action. It is ideal if you want to start creating your keymap from the ground up.", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + } + ] +}; + +/***/ }), +/* 818 */ +/***/ (function(module, exports) { + +module.exports = { + "isDefault": false, + "abbreviation": "QTY", + "name": "QWERTY", + "description": "Maecenas sem dui, ullamcorper consequat pellentesque ut, mattis at velit. Duis scelerisque eleifend gravida. Aenean at mauris rhoncus, dictum mi vitae, semper eros. Quisque maximus est elit, at condimentum ligula consectetur vel. Aenean lorem felis, molestie id ex suscipit, sagittis mollis dui. Phasellus in felis in libero bibendum ornare. Duis vestibulum dolor sed diam tempor vulputate. Curabitur scelerisque pretium ipsum. Phasellus non orci vestibulum, vehicula lectus sit amet, lacinia velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In diam lacus, cursus at pretium vel, ullamcorper at ante.", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 36 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 37 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 38 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 39 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 45 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 46 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 24 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 12 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 18 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 19 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 47 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 48 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 49 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 28 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 13 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 14 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 15 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 51 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 52 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 11 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 17 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 16 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 54 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 55 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 56 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 44 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 53 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 30 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 31 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 32 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 33 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 34 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 35 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 43 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 20 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 26 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 21 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 23 + }, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 22 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 7 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 9 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 10 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 29 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 27 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 6 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 25 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 5 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 44 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + }, + { + "id": 2, + "pointerRole": "scroll", + "keyActions": [] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "none", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 74 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 82 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 77 + }, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 75 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 80 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 81 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 79 + }, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 78 + }, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 118 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "none", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 176 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 233 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 183 + }, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 182 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 234 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 181 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 226 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "moveUp" + }, + null, + null, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "scrollUp" + }, + { + "keyActionType": "mouse", + "mouseAction": "moveLeft" + }, + { + "keyActionType": "mouse", + "mouseAction": "moveDown" + }, + { + "keyActionType": "mouse", + "mouseAction": "moveRight" + }, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "scrollDown" + }, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + null, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "mouse", + "mouseAction": "decelerate" + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + } + ] + } + ] +}; + +/***/ }), +/* 819 */ +/***/ (function(module, exports) { + +module.exports = { + "isDefault": false, + "abbreviation": "VIM", + "name": "VIM", + "description": "Phasellus egestas ac tellus id tincidunt. Ut non nisl turpis. Morbi molestie diam elit, et cursus nibh tempus vel. Vestibulum mattis arcu nec nisi dictum, quis facilisis augue rutrum. Fusce vel tristique metus. Nullam pretium elit et enim maximus ornare. Praesent ultrices ligula ut mi convallis, quis ultrices enim venenatis. Aenean interdum odio aliquam quam vestibulum, vel bibendum elit ornare. Morbi leo enim, ullamcorper a bibendum sit amet, ultrices vitae ligula. Etiam consectetur et massa a convallis. Nullam non nisi aliquet, suscipit nulla a, tempor odio. Praesent eu turpis euismod, pellentesque mauris ut, imperdiet felis. Pellentesque vehicula luctus purus, et mattis ante volutpat eu. Quisque venenatis porta odio.", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "scrollDown" + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 2, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "scancode": 111, + "type": "basic" + } + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + } + ] +}; + +/***/ }), +/* 820 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18662,14 +26773,14 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var router_1 = __webpack_require__(45); -var effects_1 = __webpack_require__(165); -var store_1 = __webpack_require__(9); -__webpack_require__(122); -__webpack_require__(65); -__webpack_require__(274); -var actions_1 = __webpack_require__(54); +var core_1 = __webpack_require__(1); +var router_1 = __webpack_require__(20); +var effects_1 = __webpack_require__(46); +var store_1 = __webpack_require__(5); +__webpack_require__(55); +__webpack_require__(21); +__webpack_require__(74); +var actions_1 = __webpack_require__(34); var MacroEffects = (function () { function MacroEffects(actions$, router, store) { var _this = this; @@ -18716,59 +26827,1904 @@ exports.MacroEffects = MacroEffects; /***/ }), -/* 1110 */ +/* 821 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; Object.defineProperty(exports, "__esModule", { value: true }); -var user_configuration_1 = __webpack_require__(55); -exports.userConfigurationReducer = user_configuration_1.default; -exports.getUserConfiguration = user_configuration_1.getUserConfiguration; -var preset_1 = __webpack_require__(1111); -exports.presetReducer = preset_1.default; - - -/***/ }), -/* 1111 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var initialState = []; -function default_1(state) { - if (state === void 0) { state = initialState; } - return state; -} -exports.default = default_1; - - -/***/ }), -/* 1112 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var Electron = (function () { - function Electron() { +var core_1 = __webpack_require__(1); +var effects_1 = __webpack_require__(46); +var Observable_1 = __webpack_require__(0); +var store_1 = __webpack_require__(5); +__webpack_require__(21); +__webpack_require__(56); +__webpack_require__(95); +__webpack_require__(74); +__webpack_require__(54); +var user_config_1 = __webpack_require__(239); +var user_configuration_1 = __webpack_require__(137); +var datastorage_repository_service_1 = __webpack_require__(146); +var default_user_configuration_service_1 = __webpack_require__(248); +var index_1 = __webpack_require__(143); +var keymap_1 = __webpack_require__(136); +var macro_1 = __webpack_require__(232); +var UserConfigEffects = (function () { + function UserConfigEffects(actions$, dataStorageRepository, store, defaultUserConfigurationService) { + var _this = this; + this.actions$ = actions$; + this.dataStorageRepository = dataStorageRepository; + this.store = store; + this.defaultUserConfigurationService = defaultUserConfigurationService; + this.loadUserConfig$ = this.actions$ + .ofType(user_config_1.ActionTypes.LOAD_USER_CONFIG) + .startWith(new user_config_1.LoadUserConfigAction()) + .switchMap(function () { + var configJsonObject = _this.dataStorageRepository.getConfig(); + var config; + if (configJsonObject) { + if (configJsonObject.dataModelVersion === _this.defaultUserConfigurationService.getDefault().dataModelVersion) { + config = new user_configuration_1.UserConfiguration().fromJsonObject(configJsonObject); + } + } + if (!config) { + config = _this.defaultUserConfigurationService.getDefault(); + } + return Observable_1.Observable.of(new user_config_1.LoadUserConfigSuccessAction(config)); + }); + this.saveUserConfig$ = this.actions$ + .ofType(keymap_1.KeymapActions.ADD, keymap_1.KeymapActions.DUPLICATE, keymap_1.KeymapActions.EDIT_NAME, keymap_1.KeymapActions.EDIT_ABBR, keymap_1.KeymapActions.SET_DEFAULT, keymap_1.KeymapActions.REMOVE, keymap_1.KeymapActions.SAVE_KEY, keymap_1.KeymapActions.CHECK_MACRO, macro_1.MacroActions.ADD, macro_1.MacroActions.DUPLICATE, macro_1.MacroActions.EDIT_NAME, macro_1.MacroActions.REMOVE, macro_1.MacroActions.ADD_ACTION, macro_1.MacroActions.SAVE_ACTION, macro_1.MacroActions.DELETE_ACTION, macro_1.MacroActions.REORDER_ACTION) + .withLatestFrom(this.store.select(index_1.getUserConfiguration)) + .map(function (_a) { + var action = _a[0], config = _a[1]; + _this.dataStorageRepository.saveConfig(config); + return new user_config_1.SaveUserConfigSuccessAction(); + }); } - Electron.prototype.getConfig = function () { - // TODO implement load logic - return; - }; - /* tslint:disable:no-unused-variable */ - Electron.prototype.saveConfig = function (config) { - // TODO implement save logic - }; - return Electron; + return UserConfigEffects; }()); -exports.Electron = Electron; +__decorate([ + effects_1.Effect(), + __metadata("design:type", Observable_1.Observable) +], UserConfigEffects.prototype, "loadUserConfig$", void 0); +__decorate([ + effects_1.Effect(), + __metadata("design:type", Observable_1.Observable) +], UserConfigEffects.prototype, "saveUserConfig$", void 0); +UserConfigEffects = __decorate([ + core_1.Injectable(), + __param(1, core_1.Inject(datastorage_repository_service_1.DATA_STORAGE_REPOSITORY)), + __metadata("design:paramtypes", [effects_1.Actions, Object, store_1.Store, + default_user_configuration_service_1.DefaultUserConfigurationService]) +], UserConfigEffects); +exports.UserConfigEffects = UserConfigEffects; /***/ }), -/* 1113 */ +/* 822 */ +/***/ (function(module, exports) { + +module.exports = { + "dataModelVersion": 4, + "moduleConfigurations": [ + { + "id": 1, + "initialPointerSpeed": 1, + "pointerAcceleration": 5, + "maxPointerSpeed": 200 + } + ], + "keymaps": [ + { + "isDefault": true, + "abbreviation": "QTY", + "name": "QWERTY", + "description": "", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 36 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 37 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 38 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 39 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 45 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 46 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 24 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 12 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 18 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 19 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 47 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 48 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 49 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 28 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 13 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 14 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 15 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 51 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 52 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 11 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 17 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 16 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 54 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 55 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 56 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 44 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 53 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 30 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 31 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 32 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 33 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 34 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 35 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 43 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 20 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 26 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 21 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 23 + }, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 22 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 7 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 9 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 10 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 29 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 27 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 6 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 25 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 5 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 44 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + }, + { + "id": 2, + "pointerRole": "scroll", + "keyActions": [] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "none", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 74 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 82 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 77 + }, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 75 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 80 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 81 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 79 + }, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 78 + }, + null, + null, + { + "keyActionType": "switchKeymap", + "keymapAbbreviation": "VIM" + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 118 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "none", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 176 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 233 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 183 + }, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 182 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 234 + }, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 181 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "media", + "scancode": 226 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "moveUp" + }, + null, + null, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "scrollUp" + }, + { + "keyActionType": "mouse", + "mouseAction": "moveLeft" + }, + { + "keyActionType": "mouse", + "mouseAction": "moveDown" + }, + { + "keyActionType": "mouse", + "mouseAction": "moveRight" + }, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "scrollDown" + }, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 128 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 16 + } + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "toggle": false + }, + null, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "switchLayer", + "layer": "fn", + "toggle": false + }, + { + "keyActionType": "mouse", + "mouseAction": "decelerate" + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "toggle": false + }, + null + ] + } + ] + } + ] + }, + { + "isDefault": false, + "abbreviation": "VIM", + "name": "VIM", + "description": "", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "scrollDown" + }, + { + "keyActionType": "playMacro", + "macroIndex": 0 + }, + { + "keyActionType": "switchKeymap", + "keymapAbbreviation": "QTY" + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 2, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 111 + } + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 111 + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 111 + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "scroll", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 111 + }, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + } + ] + }, + { + "isDefault": false, + "abbreviation": "DVR", + "name": "DVR", + "description": "", + "layers": [ + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + }, + { + "id": 1, + "pointerRole": "move", + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } + ] + } + ] + } + ], + "macros": [ + { + "isLooped": false, + "isPrivate": true, + "name": "My address", + "macroActions": [ + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 111 + }, + { + "macroActionType": "key", + "action": "hold", + "type": "basic", + "scancode": 83 + }, + { + "macroActionType": "key", + "action": "release", + "type": "basic", + "scancode": 112 + }, + { + "macroActionType": "key", + "action": "press", + "modifierMask": 93 + }, + { + "macroActionType": "key", + "action": "hold", + "modifierMask": 101 + }, + { + "macroActionType": "key", + "action": "release", + "modifierMask": 133 + }, + { + "macroActionType": "mouseButton", + "action": "press", + "mouseButtonsMask": 9 + }, + { + "macroActionType": "mouseButton", + "action": "hold", + "mouseButtonsMask": 12 + }, + { + "macroActionType": "mouseButton", + "action": "release", + "mouseButtonsMask": 104 + }, + { + "macroActionType": "moveMouse", + "x": -1920, + "y": 220 + }, + { + "macroActionType": "scrollMouse", + "x": 0, + "y": 20000 + }, + { + "macroActionType": "delay", + "delay": 40000 + }, + { + "macroActionType": "text", + "text": "this is a text" + } + ] + }, + { + "isLooped": true, + "isPrivate": true, + "name": "Blah Blah blah", + "macroActions": [ + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 111 + }, + { + "macroActionType": "mouseButton", + "action": "release", + "mouseButtonsMask": 104 + }, + { + "macroActionType": "scrollMouse", + "x": 0, + "y": -20000 + }, + { + "macroActionType": "delay", + "delay": 40000 + }, + { + "macroActionType": "text", + "text": "blahhhhhhh" + } + ] + } + ] +}; + +/***/ }), +/* 823 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var effects_1 = __webpack_require__(46); +var Observable_1 = __webpack_require__(0); +var store_1 = __webpack_require__(5); +__webpack_require__(95); +__webpack_require__(56); +__webpack_require__(74); +__webpack_require__(21); +var auto_update_settings_1 = __webpack_require__(145); +var datastorage_repository_service_1 = __webpack_require__(146); +var index_1 = __webpack_require__(143); +var auto_update_settings_2 = __webpack_require__(144); +var notification_1 = __webpack_require__(249); +var app_action_1 = __webpack_require__(250); +var AutoUpdateSettingsEffects = (function () { + function AutoUpdateSettingsEffects(actions$, dataStorageRepository, store) { + var _this = this; + this.actions$ = actions$; + this.dataStorageRepository = dataStorageRepository; + this.store = store; + this.loadUserConfig$ = this.actions$ + .ofType(auto_update_settings_1.ActionTypes.LOAD_AUTO_UPDATE_SETTINGS) + .startWith(new auto_update_settings_1.LoadAutoUpdateSettingsAction()) + .switchMap(function () { + var settings = _this.dataStorageRepository.getAutoUpdateSettings(); + if (!settings) { + settings = auto_update_settings_2.initialState; + } + return Observable_1.Observable.of(new auto_update_settings_1.LoadAutoUpdateSettingsSuccessAction(settings)); + }); + this.saveAutoUpdateConfig$ = this.actions$ + .ofType(auto_update_settings_1.ActionTypes.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP, auto_update_settings_1.ActionTypes.TOGGLE_PRE_RELEASE_FLAG) + .withLatestFrom(this.store.select(index_1.getAutoUpdateSettings)) + .map(function (_a) { + var action = _a[0], config = _a[1]; + _this.dataStorageRepository.saveAutoUpdateSettings(config); + return new auto_update_settings_1.SaveAutoUpdateSettingsSuccessAction(); + }); + this.sendNotification$ = this.actions$ + .ofType(auto_update_settings_1.ActionTypes.CHECK_FOR_UPDATE_FAILED, auto_update_settings_1.ActionTypes.CHECK_FOR_UPDATE_SUCCESS) + .map(effects_1.toPayload) + .map(function (message) { + return new app_action_1.ShowNotificationAction({ + type: notification_1.NotificationType.Info, + message: message + }); + }); + } + return AutoUpdateSettingsEffects; +}()); +__decorate([ + effects_1.Effect(), + __metadata("design:type", Observable_1.Observable) +], AutoUpdateSettingsEffects.prototype, "loadUserConfig$", void 0); +__decorate([ + effects_1.Effect(), + __metadata("design:type", Observable_1.Observable) +], AutoUpdateSettingsEffects.prototype, "saveAutoUpdateConfig$", void 0); +__decorate([ + effects_1.Effect(), + __metadata("design:type", Observable_1.Observable) +], AutoUpdateSettingsEffects.prototype, "sendNotification$", void 0); +AutoUpdateSettingsEffects = __decorate([ + core_1.Injectable(), + __param(1, core_1.Inject(datastorage_repository_service_1.DATA_STORAGE_REPOSITORY)), + __metadata("design:paramtypes", [effects_1.Actions, Object, store_1.Store]) +], AutoUpdateSettingsEffects); +exports.AutoUpdateSettingsEffects = AutoUpdateSettingsEffects; + + +/***/ }), +/* 824 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18783,175 +28739,60 @@ var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var Keymap_1 = __webpack_require__(80); -var UserConfiguration_1 = __webpack_require__(291); -var electron_1 = __webpack_require__(1112); -var local_1 = __webpack_require__(1114); -var DataStorage = (function () { - function DataStorage() { - this.initUHKJson(); - this.detectEnvironment(); - } - DataStorage.prototype.initialState = function () { - var config = this.getConfiguration(); - return { - userConfiguration: config, - presetKeymaps: this.uhkPresets - }; - }; - DataStorage.prototype.detectEnvironment = function () { - // Electron - // TODO check if we can remove when electron will be implemented (maybe use process.versions['electron']) - if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { - this._environment = new electron_1.Electron(); - } - else { - this._environment = new local_1.Local(this.defaultUserConfiguration.dataModelVersion); - } - }; - // TODO: Add type for state - DataStorage.prototype.saveState = function (reducer) { +var core_1 = __webpack_require__(1); +var effects_1 = __webpack_require__(46); +var Observable_1 = __webpack_require__(0); +var angular_notifier_1 = __webpack_require__(221); +__webpack_require__(55); +__webpack_require__(21); +var app_action_1 = __webpack_require__(250); +var notification_1 = __webpack_require__(249); +var ApplicationEffects = ApplicationEffects_1 = (function () { + function ApplicationEffects(actions$, notifierService) { var _this = this; - return function (state, action) { - var nextState = reducer(state, action); - _this._environment.saveConfig(nextState); - return nextState; - }; - }; - DataStorage.prototype.initUHKJson = function () { - this.defaultUserConfiguration = new UserConfiguration_1.UserConfiguration() - .fromJsonObject(__webpack_require__(720)); - this.uhkPresets = __webpack_require__(719) - .map(function (keymap) { return new Keymap_1.Keymap().fromJsonObject(keymap); }); - }; - DataStorage.prototype.getConfiguration = function () { - var config = this._environment.getConfig(); - if (!config) { - config = this.defaultUserConfiguration; + this.actions$ = actions$; + this.notifierService = notifierService; + this.appStart$ = this.actions$ + .ofType(app_action_1.ActionTypes.APP_SHOW_NOTIFICATION) + .map(effects_1.toPayload) + .do(function (notification) { + var type = ApplicationEffects_1.mapNotificationType(notification.type); + _this.notifierService.notify(type, notification.message); + }); + } + // TODO: Change typescript -> 2.4 and use string enum. + // Corrently ngrx store is not compatible witn typescript 2.4 + ApplicationEffects.mapNotificationType = function (type) { + switch (type) { + case notification_1.NotificationType.Success: + return 'success'; + case notification_1.NotificationType.Error: + return 'error'; + case notification_1.NotificationType.Info: + return 'info'; + case notification_1.NotificationType.Warning: + return 'warning'; + default: + return 'default'; } - return config; }; - return DataStorage; + return ApplicationEffects; }()); -DataStorage = __decorate([ +__decorate([ + effects_1.Effect({ dispatch: false }), + __metadata("design:type", Observable_1.Observable) +], ApplicationEffects.prototype, "appStart$", void 0); +ApplicationEffects = ApplicationEffects_1 = __decorate([ core_1.Injectable(), - __metadata("design:paramtypes", []) -], DataStorage); -exports.DataStorage = DataStorage; + __metadata("design:paramtypes", [effects_1.Actions, + angular_notifier_1.NotifierService]) +], ApplicationEffects); +exports.ApplicationEffects = ApplicationEffects; +var ApplicationEffects_1; /***/ }), -/* 1114 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var UserConfiguration_1 = __webpack_require__(291); -var Local = (function () { - function Local(dataModelVersion) { - this.dataModelVersion = dataModelVersion; - } - Local.prototype.getConfig = function () { - var configJsonString = localStorage.getItem('config'); - var config; - if (configJsonString) { - var configJsonObject = JSON.parse(configJsonString); - if (configJsonObject.dataModelVersion === this.dataModelVersion) { - config = new UserConfiguration_1.UserConfiguration().fromJsonObject(configJsonObject); - } - } - return config; - }; - Local.prototype.saveConfig = function (config) { - localStorage.setItem('config', JSON.stringify(config.toJsonObject())); - }; - return Local; -}()); -exports.Local = Local; - - -/***/ }), -/* 1115 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -// Source: http://stackoverflow.com/questions/13720256/javascript-regex-camelcase-to-sentence -function camelCaseToSentence(camelCasedText) { - return camelCasedText.replace(/^[a-z]|[A-Z]/g, function (v, i) { - return i === 0 ? v.toUpperCase() : ' ' + v.toLowerCase(); - }); -} -exports.camelCaseToSentence = camelCaseToSentence; -function capitalizeFirstLetter(text) { - return text.charAt(0).toUpperCase() + text.slice(1); -} -exports.capitalizeFirstLetter = capitalizeFirstLetter; - - -/***/ }), -/* 1116 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1117)); - - -/***/ }), -/* 1117 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var keymap_add_component_1 = __webpack_require__(445); -var edit_1 = __webpack_require__(446); -exports.keymapRoutes = [ - { - path: '', - redirectTo: '/keymap', - pathMatch: 'full' - }, - { - path: 'keymap', - component: edit_1.KeymapEditComponent, - canActivate: [edit_1.KeymapEditGuard] - }, - { - path: 'keymap/add', - component: keymap_add_component_1.KeymapAddComponent - }, - { - path: 'keymap/:abbr', - component: edit_1.KeymapEditComponent - } -]; - - -/***/ }), -/* 1118 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; -} -Object.defineProperty(exports, "__esModule", { value: true }); -__export(__webpack_require__(1119)); -__export(__webpack_require__(1120)); - - -/***/ }), -/* 1119 */ +/* 825 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18963,45 +28804,484 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); -var core_1 = __webpack_require__(0); -var MainAppComponent = (function () { - function MainAppComponent() { +var core_1 = __webpack_require__(1); +var LocalDataStorageRepositoryService = (function () { + function LocalDataStorageRepositoryService() { } - return MainAppComponent; + LocalDataStorageRepositoryService.prototype.getConfig = function () { + return JSON.parse(localStorage.getItem('config')); + }; + LocalDataStorageRepositoryService.prototype.saveConfig = function (config) { + localStorage.setItem('config', JSON.stringify(config.toJsonObject())); + }; + LocalDataStorageRepositoryService.prototype.getAutoUpdateSettings = function () { + return JSON.parse(localStorage.getItem('auto-update-settings')); + }; + LocalDataStorageRepositoryService.prototype.saveAutoUpdateSettings = function (settings) { + localStorage.setItem('auto-update-settings', JSON.stringify(settings)); + }; + return LocalDataStorageRepositoryService; }()); -MainAppComponent = __decorate([ - core_1.Component({ - selector: 'main-app', - template: __webpack_require__(714), - styles: [ - __webpack_require__(754), - __webpack_require__(755) - ], - encapsulation: core_1.ViewEncapsulation.None - }) -], MainAppComponent); -exports.MainAppComponent = MainAppComponent; +LocalDataStorageRepositoryService = __decorate([ + core_1.Injectable() +], LocalDataStorageRepositoryService); +exports.LocalDataStorageRepositoryService = LocalDataStorageRepositoryService; /***/ }), -/* 1120 */ +/* 826 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var router_1 = __webpack_require__(45); -var add_on_1 = __webpack_require__(444); -var keymap_1 = __webpack_require__(1116); -var macro_1 = __webpack_require__(288); -var settings_1 = __webpack_require__(450); -var appRoutes = keymap_1.keymapRoutes.concat(macro_1.macroRoutes, add_on_1.addOnRoutes, settings_1.settingsRoutes); -exports.appRoutingProviders = []; -exports.routing = router_1.RouterModule.forRoot(appRoutes, { useHash: true }); +var router_store_1 = __webpack_require__(227); +var user_configuration_1 = __webpack_require__(35); +exports.userConfigurationReducer = user_configuration_1.default; +var preset_1 = __webpack_require__(827); +exports.presetReducer = preset_1.default; +var auto_update_settings_1 = __webpack_require__(144); +exports.autoUpdateReducer = auto_update_settings_1.reducer; +// All reducers that are used in application +exports.reducer = { + userConfiguration: user_configuration_1.default, + presetKeymaps: preset_1.default, + router: router_store_1.routerReducer, + autoUpdateSettings: auto_update_settings_1.reducer +}; /***/ }), -/* 1121 */ +/* 827 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var keymap_1 = __webpack_require__(136); +var initialState = []; +function default_1(state, action) { + if (state === void 0) { state = initialState; } + switch (action.type) { + case keymap_1.KeymapActions.LOAD_KEYMAPS_SUCCESS: { + return action.payload; + } + default: + return state; + } +} +exports.default = default_1; + + +/***/ }), +/* 828 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var LogService = (function () { + function LogService() { + } + LogService.prototype.error = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + console.error(args); + }; + LogService.prototype.info = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + console.info(args); + }; + return LogService; +}()); +LogService = __decorate([ + core_1.Injectable() +], LogService); +exports.LogService = LogService; + + +/***/ }), +/* 829 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var core_1 = __webpack_require__(1); +var AutoUpdateSettings = (function () { + function AutoUpdateSettings() { + this.toggleCheckForUpdateOnStartUp = new core_1.EventEmitter(); + this.toggleUsePreReleaseUpdate = new core_1.EventEmitter(); + this.checkForUpdate = new core_1.EventEmitter(); + } + AutoUpdateSettings.prototype.emitCheckForUpdateOnStartUp = function (value) { + this.toggleCheckForUpdateOnStartUp.emit(value); + }; + AutoUpdateSettings.prototype.emitUsePreReleaseUpdate = function (value) { + this.toggleUsePreReleaseUpdate.emit(value); + }; + AutoUpdateSettings.prototype.emitCheckForUpdate = function () { + this.checkForUpdate.emit(); + }; + return AutoUpdateSettings; +}()); +__decorate([ + core_1.Input(), + __metadata("design:type", String) +], AutoUpdateSettings.prototype, "version", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Object) +], AutoUpdateSettings.prototype, "settings", void 0); +__decorate([ + core_1.Input(), + __metadata("design:type", Boolean) +], AutoUpdateSettings.prototype, "checkingForUpdate", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], AutoUpdateSettings.prototype, "toggleCheckForUpdateOnStartUp", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], AutoUpdateSettings.prototype, "toggleUsePreReleaseUpdate", void 0); +__decorate([ + core_1.Output(), + __metadata("design:type", Object) +], AutoUpdateSettings.prototype, "checkForUpdate", void 0); +AutoUpdateSettings = __decorate([ + core_1.Component({ + selector: 'auto-update-settings', + template: __webpack_require__(830), + changeDetection: core_1.ChangeDetectionStrategy.OnPush + }), + __metadata("design:paramtypes", []) +], AutoUpdateSettings); +exports.AutoUpdateSettings = AutoUpdateSettings; + + +/***/ }), +/* 830 */ +/***/ (function(module, exports) { + +module.exports = "
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

{{version}}

\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n {{message}}\r\n
\r\n
\r\n
\r\n"; + +/***/ }), +/* 831 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +exports.angularNotifierConfig = { + position: { + horizontal: { + /** + * Defines the horizontal position on the screen + * @type {'left' | 'middle' | 'right'} + */ + position: 'right', + /** + * Defines the horizontal distance to the screen edge (in px) + * @type {number} + */ + distance: 12 + }, + vertical: { + /** + * Defines the vertical position on the screen + * @type {'top' | 'bottom'} + */ + position: 'top', + /** + * Defines the vertical distance to the screen edge (in px) + * @type {number} + */ + distance: 12, + /** + * Defines the vertical gap, existing between multiple notifications (in px) + * @type {number} + */ + gap: 10 + } + } +}; + + +/***/ }), +/* 832 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process) {var WritableStream = __webpack_require__(833).Writable +var inherits = __webpack_require__(842).inherits + +module.exports = BrowserStdout + + +inherits(BrowserStdout, WritableStream) + +function BrowserStdout(opts) { + if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) + + opts = opts || {} + WritableStream.call(this, opts) + this.label = (opts.label !== undefined) ? opts.label : 'stdout' +} + +BrowserStdout.prototype._write = function(chunks, encoding, cb) { + var output = chunks.toString ? chunks.toString() : chunks + if (this.label === false) { + console.log(output) + } else { + console.log(this.label+':', output) + } + process.nextTick(cb) +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38))) + +/***/ }), +/* 833 */ +/***/ (function(module, exports, __webpack_require__) { + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +module.exports = Stream; + +var EE = __webpack_require__(147).EventEmitter; +var inherits = __webpack_require__(58); + +inherits(Stream, EE); +Stream.Readable = __webpack_require__(148); +Stream.Writable = __webpack_require__(838); +Stream.Duplex = __webpack_require__(839); +Stream.Transform = __webpack_require__(840); +Stream.PassThrough = __webpack_require__(841); + +// Backwards-compat with node 0.4.x +Stream.Stream = Stream; + + + +// old-style streams. Note that the pipe method (the only relevant +// part of this class) is overridden in the Readable class. + +function Stream() { + EE.call(this); +} + +Stream.prototype.pipe = function(dest, options) { + var source = this; + + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } + } + } + + source.on('data', ondata); + + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + + dest.on('drain', ondrain); + + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); + } + + var didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; + + dest.end(); + } + + + function onclose() { + if (didOnEnd) return; + didOnEnd = true; + + if (typeof dest.destroy === 'function') dest.destroy(); + } + + // don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, 'error') === 0) { + throw er; // Unhandled stream error in pipe. + } + } + + source.on('error', onerror); + dest.on('error', onerror); + + // remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); + + source.removeListener('end', onend); + source.removeListener('close', onclose); + + source.removeListener('error', onerror); + dest.removeListener('error', onerror); + + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); + + dest.removeListener('close', cleanup); + } + + source.on('end', cleanup); + source.on('close', cleanup); + + dest.on('close', cleanup); + + dest.emit('pipe', source); + + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; +}; + + +/***/ }), +/* 834 */ +/***/ (function(module, exports) { + +/* (ignored) */ + +/***/ }), +/* 835 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/**/ + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Buffer = __webpack_require__(149).Buffer; +/**/ + +function copyBuffer(src, target, offset) { + src.copy(target, offset); +} + +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); + + this.head = null; + this.tail = null; + this.length = 0; + } + + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; + + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; + + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; + + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + return BufferList; +}(); + +/***/ }), +/* 836 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) { @@ -19072,50 +29352,91 @@ function config (name) { return String(val).toLowerCase() === 'true'; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(15))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13))) /***/ }), -/* 1122 */ -/***/ (function(module, exports) { +/* 837 */ +/***/ (function(module, exports, __webpack_require__) { -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + + + +module.exports = PassThrough; + +var Transform = __webpack_require__(255); + +/**/ +var util = __webpack_require__(76); +util.inherits = __webpack_require__(58); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); } +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; /***/ }), -/* 1123 */ -/***/ (function(module, exports) { +/* 838 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(150); -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} /***/ }), -/* 1124 */ +/* 839 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(50); + + +/***/ }), +/* 840 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(148).Transform + + +/***/ }), +/* 841 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(148).PassThrough + + +/***/ }), +/* 842 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. @@ -19643,7 +29964,7 @@ function isPrimitive(arg) { } exports.isPrimitive = isPrimitive; -exports.isBuffer = __webpack_require__(1123); +exports.isBuffer = __webpack_require__(843); function objectToString(o) { return Object.prototype.toString.call(o); @@ -19687,7 +30008,7 @@ exports.log = function() { * prototype. * @param {function} superCtor Constructor function to inherit prototype from. */ -exports.inherits = __webpack_require__(1122); +exports.inherits = __webpack_require__(844); exports._extend = function(origin, add) { // Don't do anything if add isn't an object @@ -19705,46 +30026,48 @@ function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(15), __webpack_require__(32))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13), __webpack_require__(38))) /***/ }), -/* 1125 */ +/* 843 */ /***/ (function(module, exports) { -module.exports = function() { - throw new Error("define cannot be used indirect"); -}; - - -/***/ }), -/* 1126 */ -/***/ (function(module, exports) { - -module.exports = {"svg":{"$":{"xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:cc":"http://creativecommons.org/ns#","xmlns:rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","xmlns:svg":"http://www.w3.org/2000/svg","xmlns":"http://www.w3.org/2000/svg","xmlns:sodipodi":"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd","xmlns:inkscape":"http://www.inkscape.org/namespaces/inkscape","version":"1.1","width":"1024.3346","height":"471.36612","viewBox":"0 0 1024.3346 471.36612","style":"overflow:visible;","id":"SvgjsSvg1006","inkscape:version":"0.91 r","sodipodi:docname":"base-layer.svg"},"metadata":[{"$":{"id":"metadata230"},"rdf:RDF":[{"cc:Work":[{"$":{"rdf:about":""},"dc:format":["image/svg+xml"],"dc:type":[{"$":{"rdf:resource":"http://purl.org/dc/dcmitype/StillImage"}}]}]}]}],"defs":[{"$":{"id":"defs228"}}],"sodipodi:namedview":[{"$":{"pagecolor":"#ffffff","bordercolor":"#666666","borderopacity":"1","objecttolerance":"10","gridtolerance":"10","guidetolerance":"10","inkscape:pageopacity":"0","inkscape:pageshadow":"2","inkscape:window-width":"1920","inkscape:window-height":"1028","id":"namedview226","showgrid":"false","inkscape:zoom":"1.046533","inkscape:cx":"461.77814","inkscape:cy":"312.8806","inkscape:window-x":"0","inkscape:window-y":"25","inkscape:window-maximized":"1","inkscape:current-layer":"left-parts"}}],"text":[{"$":{"x":"495.03632","y":"20","style":"font-size:34px;fill:#000000;font-family:Sans;text-align:center;text-anchor:middle;display:none;","font-family":"Helvetica, Arial, sans-serif","id":"layer-text"},"tspan":[{"_":"\r\n Base layer\r\n ","$":{"x":"495.03632","dy":"20.8","id":"SvgjsTspan1235"}}]}],"g":[{"$":{"transform":"translate(0 -580.99607)","style":"stroke:none;","id":"root","fill":"#333333"},"g":[{"$":{"transform":"translate(221.57008 1101.7666)","id":"left-parts"},"path":[{"$":{"d":"m 272.81516,-456.8166 -110.96971,0 c -0.32924,0 -0.65827,-0.0468 -0.97472,-0.1386 -0.31645,-0.0918 -0.62027,-0.22866 -0.89995,-0.40551 -0.27968,-0.17684 -0.53514,-0.39367 -0.7565,-0.64244 -0.22135,-0.24877 -0.40854,-0.52944 -0.55411,-0.83133 -0.14558,-0.3019 -0.24947,-0.62497 -0.30744,-0.95668 -3.11169,-17.80554 -6.22337,-35.61107 -9.33505,-53.41661 -0.16174,-0.9255 -0.46824,-1.8252 -0.90498,-2.65546 -0.43675,-0.83027 -1.00365,-1.59085 -1.67347,-2.24448 -0.66982,-0.65363 -1.44238,-1.20007 -2.2801,-1.61231 -0.83772,-0.41224 -1.74031,-0.69012 -2.66354,-0.81983 -0.92322,-0.12971 -1.86673,-0.11121 -2.78423,0.0544 l -352.97851,63.7382 c -0.81059,0.14636 -1.60096,0.40708 -2.34074,0.77257 -0.73979,0.3655 -1.42881,0.83571 -2.04035,1.39272 -0.61154,0.55702 -1.14547,1.20071 -1.58116,1.90622 -0.43571,0.70551 -0.77307,1.47267 -0.99931,2.2718 -0.22626,0.79913 -0.34137,1.63006 -0.34137,2.4609 l 0,389.594539 c 0,0.936363 0.14626,1.872858 0.43247,2.764016 0.2862,0.891158 0.7123,1.736655 1.25787,2.494964 0.54557,0.75831 1.21044,1.429141 1.96201,1.979608 0.75157,0.550465 1.58955,0.980376 2.47279,1.269152 0.88324,0.288776 1.8114,0.436358 2.73944,0.436358 l 342.7307,-1.4e-5 c 1.77165,0 3.54314,-1.7716 3.54314,-3.5432 0,-12.931979 0,-22.981768 0,-34.5827 0,-1.7717 -1.77149,-3.545 -3.54314,-3.545 l -322.73675,0.0013 c -2.79101,0 -5.3291,-2.56086 -5.3291,-5.376898 l 0,-329.455425 c 0,-2.81604 2.53809,-5.3769 5.3291,-5.3769 l 463.75521,0 c 0.93041,0 1.77697,-0.85444 1.77697,-1.79353 0,-7.80504 0,-14.68214 0,-21.94355 0,-0.94218 -0.84656,-1.79632 -1.77697,-1.79632","id":"left-case"}}],"rect":[{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-194.89622","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-0"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-127.57339","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-1"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-60.250557","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-2"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"7.072278","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-3"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"74.395111","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-4"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"141.71794","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-5"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"209.04079","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-6"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-194.89622","y":"-360.50003","height":"63.779526","width":"95.669289","id":"key-7"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-95.683624","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-8"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-28.360792","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-9"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"38.962044","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-10"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"106.28487","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-11"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"173.60771","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-12"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-194.89622","y":"-293.17719","height":"63.779526","width":"111.61417","id":"key-13"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-79.419846","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-14"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-11.778116","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-15"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"55.863617","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-16"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"123.50535","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-17"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"191.14708","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-18"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-194.89622","y":"-225.85435","height":"63.779526","width":"143.50394","id":"key-19"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-47.14032","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-20"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"20.891174","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-21"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"88.922668","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-22"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"156.95416","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-23"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"224.98566","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-24"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-194.89622","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-25"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-111.98284","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-26"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"-29.069458","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-27"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"53.843929","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-28"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"137.11165","y":"-158.53151","height":"63.779526","width":"131.10236","id":"key-29"}},{"$":{"rx":"3.4856062","ry":"3.5433071","x":"137.11165","y":"-91.071709","height":"41.667309","width":"131.10236","id":"key-30"}}],"text":[{"$":{"y":"-435.0346495","x":"-163.006457","font-size":"19","id":"SvgjsText1084","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"~","$":{"x":"-163.006457","dy":"30.400000000000002","id":"SvgjsTspan1085"}},{"_":"`","$":{"x":"-163.006457","dy":"30.400000000000002","id":"SvgjsTspan1086"}}]},{"$":{"y":"-435.0346495","x":"-95.683627","font-size":"19","id":"SvgjsText1087","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"!","$":{"x":"-95.683627","dy":"30.400000000000002","id":"SvgjsTspan1088"}},{"_":"1","$":{"x":"-95.683627","dy":"30.400000000000002","id":"SvgjsTspan1089"}}]},{"$":{"y":"-435.0346495","x":"-28.360794000000002","font-size":"19","id":"SvgjsText1090","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"@","$":{"x":"-28.360794000000002","dy":"30.400000000000002","id":"SvgjsTspan1091"}},{"_":"2","$":{"x":"-28.360794000000002","dy":"30.400000000000002","id":"SvgjsTspan1092"}}]},{"$":{"y":"-435.0346495","x":"38.962041","font-size":"19","id":"SvgjsText1093","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"#","$":{"x":"38.962041","dy":"30.400000000000002","id":"SvgjsTspan1094"}},{"_":"3","$":{"x":"38.962041","dy":"30.400000000000002","id":"SvgjsTspan1095"}}]},{"$":{"y":"-435.0346495","x":"106.284874","font-size":"19","id":"SvgjsText1096","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"$","$":{"x":"106.284874","dy":"30.400000000000002","id":"SvgjsTspan1097"}},{"_":"4","$":{"x":"106.284874","dy":"30.400000000000002","id":"SvgjsTspan1098"}}]},{"$":{"y":"-435.0346495","x":"173.607703","font-size":"19","id":"SvgjsText1099","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"%","$":{"x":"173.607703","dy":"30.400000000000002","id":"SvgjsTspan1100"}},{"_":"5","$":{"x":"173.607703","dy":"30.400000000000002","id":"SvgjsTspan1101"}}]},{"$":{"y":"-435.0346495","x":"240.93055299999997","font-size":"19","id":"SvgjsText1102","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"^","$":{"x":"240.93055299999997","dy":"30.400000000000002","id":"SvgjsTspan1103"}},{"_":"6","$":{"x":"240.93055299999997","dy":"30.400000000000002","id":"SvgjsTspan1104"}}]},{"$":{"y":"-352.50870449999996","x":"-147.0615755","font-size":"19","id":"SvgjsText1125","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Tab\r\n ","$":{"x":"-147.0615755","dy":"30.400000000000002","id":"SvgjsTspan1126"}}]},{"$":{"y":"-352.50870449999996","x":"-63.79386099999999","font-size":"19","id":"SvgjsText1127","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Q\r\n ","$":{"x":"-63.79386099999999","dy":"30.400000000000002","id":"SvgjsTspan1128"}}]},{"$":{"y":"-352.50870449999996","x":"3.5289709999999985","font-size":"19","id":"SvgjsText1129","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n W\r\n ","$":{"x":"3.5289709999999985","dy":"30.400000000000002","id":"SvgjsTspan1130"}}]},{"$":{"y":"-352.50870449999996","x":"70.851807","font-size":"19","id":"SvgjsText1131","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n E\r\n ","$":{"x":"70.851807","dy":"30.400000000000002","id":"SvgjsTspan1132"}}]},{"$":{"y":"-352.50870449999996","x":"138.174633","font-size":"19","id":"SvgjsText1133","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n R\r\n ","$":{"x":"138.174633","dy":"30.400000000000002","id":"SvgjsTspan1134"}}]},{"$":{"y":"-352.50870449999996","x":"205.49747299999999","font-size":"19","id":"SvgjsText1135","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n T\r\n ","$":{"x":"205.49747299999999","dy":"30.400000000000002","id":"SvgjsTspan1136"}}]},{"$":{"y":"-285.1858645","x":"-139.089135","font-size":"19","id":"SvgjsText1156","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Mouse\r\n ","$":{"x":"-139.089135","dy":"30.400000000000002","id":"SvgjsTspan1157"}}]},{"$":{"y":"-285.1858645","x":"-47.530083000000005","font-size":"19","id":"SvgjsText1158","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n A\r\n ","$":{"x":"-47.530083000000005","dy":"30.400000000000002","id":"SvgjsTspan1159"}}]},{"$":{"y":"-285.1858645","x":"20.111646999999998","font-size":"19","id":"SvgjsText1160","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n S\r\n ","$":{"x":"20.111646999999998","dy":"30.400000000000002","id":"SvgjsTspan1161"}}]},{"$":{"y":"-285.1858645","x":"87.75337999999999","font-size":"19","id":"SvgjsText1162","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n D\r\n ","$":{"x":"87.75337999999999","dy":"30.400000000000002","id":"SvgjsTspan1163"}}]},{"$":{"y":"-285.1858645","x":"155.395113","font-size":"19","id":"SvgjsText1164","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n F\r\n ","$":{"x":"155.395113","dy":"30.400000000000002","id":"SvgjsTspan1165"}}]},{"$":{"y":"-285.1858645","x":"223.03684299999998","font-size":"19","id":"SvgjsText1166","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n G\r\n ","$":{"x":"223.03684299999998","dy":"30.400000000000002","id":"SvgjsTspan1167"}}]},{"$":{"y":"-217.86302450000002","x":"-123.14425","font-size":"19","id":"SvgjsText1184","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Shift\r\n ","$":{"x":"-123.14425","dy":"30.400000000000002","id":"SvgjsTspan1185"}}]},{"$":{"y":"-217.86302450000002","x":"-15.250557000000004","font-size":"19","id":"SvgjsText1186","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Z\r\n ","$":{"x":"-15.250557000000004","dy":"30.400000000000002","id":"SvgjsTspan1187"}}]},{"$":{"y":"-217.86302450000002","x":"52.780936999999994","font-size":"19","id":"SvgjsText1188","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n X\r\n ","$":{"x":"52.780936999999994","dy":"30.400000000000002","id":"SvgjsTspan1189"}}]},{"$":{"y":"-217.86302450000002","x":"120.812431","font-size":"19","id":"SvgjsText1190","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n C\r\n ","$":{"x":"120.812431","dy":"30.400000000000002","id":"SvgjsTspan1191"}}]},{"$":{"y":"-217.86302450000002","x":"188.843923","font-size":"19","id":"SvgjsText1192","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n V\r\n ","$":{"x":"188.843923","dy":"30.400000000000002","id":"SvgjsTspan1193"}}]},{"$":{"y":"-217.86302450000002","x":"256.875423","font-size":"19","id":"SvgjsText1194","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n B\r\n ","$":{"x":"256.875423","dy":"30.400000000000002","id":"SvgjsTspan1195"}}]},{"$":{"y":"-150.5401845","x":"-155.0340145","font-size":"19","id":"SvgjsText1211","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Ctrl\r\n ","$":{"x":"-155.0340145","dy":"30.400000000000002","id":"SvgjsTspan1212"}}]},{"$":{"y":"-150.5401845","x":"-72.1206345","font-size":"19","id":"SvgjsText1213","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Super\r\n ","$":{"x":"-72.1206345","dy":"30.400000000000002","id":"SvgjsTspan1214"}}]},{"$":{"y":"-150.5401845","x":"10.7927475","font-size":"19","id":"SvgjsText1215","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Alt\r\n ","$":{"x":"10.7927475","dy":"30.400000000000002","id":"SvgjsTspan1216"}}]},{"$":{"y":"-150.5401845","x":"93.7061345","font-size":"19","id":"SvgjsText1217","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Fn\r\n ","$":{"x":"93.7061345","dy":"30.400000000000002","id":"SvgjsTspan1218"}}]},{"$":{"y":"-150.5401845","x":"202.66282999999999","font-size":"19","id":"SvgjsText1219","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Mod\r\n ","$":{"x":"202.66282999999999","dy":"30.400000000000002","id":"SvgjsTspan1220"}}]},{"$":{"y":"-94.136492","x":"202.66282999999999","font-size":"19","id":"SvgjsText1231","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Space\r\n ","$":{"x":"202.66282999999999","dy":"30.400000000000002","id":"SvgjsTspan1232"}}]}]},{"$":{"transform":"translate(44.404903 1101.7674)","id":"right-parts"},"path":[{"$":{"d":"m 951.05862,-431.2832 c 2.791,0 5.32908,2.56086 5.32908,5.3769 l 0,329.455425 c 0,2.816038 -2.53808,5.376898 -5.32908,5.376898 l -370.67909,-0.0013 c -1.77166,0 -3.54347,1.7733 -3.54347,3.545 0,12.895215 0,23.315027 0,34.58266 0,1.7716 1.77181,3.5432 3.54347,3.5432 l 390.67297,1.44e-4 c 0.92804,0 1.85621,-0.147582 2.73944,-0.436358 0.88324,-0.288776 1.72122,-0.718687 2.47277,-1.269152 0.75157,-0.550467 1.41644,-1.221298 1.96201,-1.979608 0.54557,-0.758309 0.97166,-1.603806 1.25787,-2.494964 0.2862,-0.891158 0.43247,-1.827653 0.43247,-2.764016 l 0,-389.434639 c 0,-0.83901 -0.11739,-1.67813 -0.34806,-2.4845 -0.23066,-0.80638 -0.57456,-1.57983 -1.01841,-2.28986 -0.44385,-0.71002 -0.98756,-1.35643 -1.60971,-1.91378 -0.62215,-0.55735 -1.3226,-1.0255 -2.07365,-1.38629 -0.75105,-0.36078 -1.55253,-0.61412 -2.37301,-0.75058 -130.52433,-21.7076 -270.93602,-45.05959 -384.94144,-64.01992 -0.91165,-0.15162 -1.8469,-0.15828 -2.76061,-0.0195 -0.91372,0.13871 -1.8056,0.42276 -2.63265,0.83829 -0.82706,0.41551 -1.58903,0.96236 -2.24949,1.61394 -0.66047,0.65158 -1.21924,1.40768 -1.64996,2.2319 -0.43072,0.82422 -0.73327,1.71631 -0.8936,2.63375 -3.12168,17.84567 -6.23258,35.69325 -9.35634,53.53854 -0.058,0.33171 -0.16187,0.65478 -0.30744,0.95668 -0.14556,0.30189 -0.33275,0.58256 -0.5541,0.83133 -0.22136,0.24877 -0.47683,0.4656 -0.7565,0.64244 -0.27967,0.17685 -0.5835,0.31372 -0.89995,0.40551 -0.31645,0.0919 -0.64548,0.1386 -0.97471,0.1386 l -109.19782,-2e-5 c -0.93043,-10e-6 -1.77697,0.85413 -1.77697,1.79631 10e-6,7.4108 -1e-5,15.64271 0,21.94355 0,0.93909 0.84654,1.79353 1.77697,1.79353 l 495.73901,0","id":"right-case"}}],"rect":[{"$":{"rx":"3.5433071","ry":"3.5433071","x":"453.52896","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-0"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"520.85181","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-1"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"588.17462","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-2"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"655.4975","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-3"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"722.82031","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-4"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"790.14313","y":"-427.82285","height":"63.779526","width":"63.779526","id":"key-5"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"857.466","y":"-427.82285","height":"63.779526","width":"95.669289","id":"key-6"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"418.09589","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-7"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"485.41873","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-8"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"552.74158","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-9"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"620.06439","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-10"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"687.38727","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-11"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"754.71008","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-12"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"822.0329","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-13"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"889.35571","y":"-360.50003","height":"63.779526","width":"63.779526","id":"key-14"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"435.67072","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-15"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"503.31244","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-16"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"570.95416","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-17"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"638.59589","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-18"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"706.23761","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-19"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"773.87939","y":"-293.17719","height":"63.779526","width":"63.779526","id":"key-20"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"841.52112","y":"-293.17719","height":"63.779526","width":"111.61417","id":"key-21"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"469.47385","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-22"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"537.50537","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-23"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"605.53687","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-24"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"673.56836","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-25"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"741.59985","y":"-225.85435","height":"63.779526","width":"63.779526","id":"key-26"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"809.63135","y":"-225.85435","height":"63.779526","width":"143.50394","id":"key-27"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"448.92267","y":"-158.53151","height":"63.779526","width":"124.37008","id":"key-28"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"576.83606","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-29"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"659.74945","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-30"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"742.66284","y":"-158.53151","height":"63.779526","width":"79.724411","id":"key-31"}},{"$":{"rx":"3.5433071","ry":"3.5433071","x":"825.57623","y":"-158.53151","height":"63.779526","width":"127.55905","id":"key-32"}},{"$":{"rx":"3.493542","ry":"3.5433071","x":"448.92267","y":"-91.071663","height":"41.667309","width":"124.37009","id":"key-33"}}],"text":[{"$":{"y":"-435.0346495","x":"485.418723","font-size":"19","id":"SvgjsText1105","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"&","$":{"x":"485.418723","dy":"30.400000000000002","id":"SvgjsTspan1106"}},{"_":"7","$":{"x":"485.418723","dy":"30.400000000000002","id":"SvgjsTspan1107"}}]},{"$":{"y":"-435.0346495","x":"552.741573","font-size":"19","id":"SvgjsText1108","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"*","$":{"x":"552.741573","dy":"30.400000000000002","id":"SvgjsTspan1109"}},{"_":"8","$":{"x":"552.741573","dy":"30.400000000000002","id":"SvgjsTspan1110"}}]},{"$":{"y":"-435.0346495","x":"620.064383","font-size":"19","id":"SvgjsText1111","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"(","$":{"x":"620.064383","dy":"30.400000000000002","id":"SvgjsTspan1112"}},{"_":"9","$":{"x":"620.064383","dy":"30.400000000000002","id":"SvgjsTspan1113"}}]},{"$":{"y":"-435.0346495","x":"687.387263","font-size":"19","id":"SvgjsText1114","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":")","$":{"x":"687.387263","dy":"30.400000000000002","id":"SvgjsTspan1115"}},{"_":"0","$":{"x":"687.387263","dy":"30.400000000000002","id":"SvgjsTspan1116"}}]},{"$":{"y":"-435.0346495","x":"754.710073","font-size":"19","id":"SvgjsText1117","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"_","$":{"x":"754.710073","dy":"30.400000000000002","id":"SvgjsTspan1118"}},{"_":"-","$":{"x":"754.710073","dy":"30.400000000000002","id":"SvgjsTspan1119"}}]},{"$":{"y":"-435.0346495","x":"822.0328930000001","font-size":"19","id":"SvgjsText1120","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"+","$":{"x":"822.0328930000001","dy":"30.400000000000002","id":"SvgjsTspan1121"}},{"_":"=","$":{"x":"822.0328930000001","dy":"30.400000000000002","id":"SvgjsTspan1122"}}]},{"$":{"y":"-419.8315245","x":"905.3006445","font-size":"19","id":"SvgjsText1123","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n ←\r\n ","$":{"x":"905.3006445","dy":"30.400000000000002","id":"SvgjsTspan1124"}}]},{"$":{"y":"-352.50870449999996","x":"449.985653","font-size":"19","id":"SvgjsText1137","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Y\r\n ","$":{"x":"449.985653","dy":"30.400000000000002","id":"SvgjsTspan1138"}}]},{"$":{"y":"-352.50870449999996","x":"517.308493","font-size":"19","id":"SvgjsText1139","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n U\r\n ","$":{"x":"517.308493","dy":"30.400000000000002","id":"SvgjsTspan1140"}}]},{"$":{"y":"-352.50870449999996","x":"584.631343","font-size":"19","id":"SvgjsText1141","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n I\r\n ","$":{"x":"584.631343","dy":"30.400000000000002","id":"SvgjsTspan1142"}}]},{"$":{"y":"-352.50870449999996","x":"651.954153","font-size":"19","id":"SvgjsText1143","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n O\r\n ","$":{"x":"651.954153","dy":"30.400000000000002","id":"SvgjsTspan1144"}}]},{"$":{"y":"-352.50870449999996","x":"719.277033","font-size":"19","id":"SvgjsText1145","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n P\r\n ","$":{"x":"719.277033","dy":"30.400000000000002","id":"SvgjsTspan1146"}}]},{"$":{"y":"-367.71182949999996","x":"786.599843","font-size":"19","id":"SvgjsText1147","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"{","$":{"x":"786.599843","dy":"30.400000000000002","id":"SvgjsTspan1148"}},{"_":"[","$":{"x":"786.599843","dy":"30.400000000000002","id":"SvgjsTspan1149"}}]},{"$":{"y":"-367.71182949999996","x":"853.9226630000001","font-size":"19","id":"SvgjsText1150","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"}","$":{"x":"853.9226630000001","dy":"30.400000000000002","id":"SvgjsTspan1151"}},{"_":"]","$":{"x":"853.9226630000001","dy":"30.400000000000002","id":"SvgjsTspan1152"}}]},{"$":{"y":"-367.71182949999996","x":"921.2454730000001","font-size":"19","id":"SvgjsText1153","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"|","$":{"x":"921.2454730000001","dy":"30.400000000000002","id":"SvgjsTspan1154"}},{"_":"\\","$":{"x":"921.2454730000001","dy":"30.400000000000002","id":"SvgjsTspan1155"}}]},{"$":{"y":"-285.1858645","x":"467.56048300000003","font-size":"19","id":"SvgjsText1168","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n H\r\n ","$":{"x":"467.56048300000003","dy":"30.400000000000002","id":"SvgjsTspan1169"}}]},{"$":{"y":"-285.1858645","x":"535.2022029999999","font-size":"19","id":"SvgjsText1170","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n J\r\n ","$":{"x":"535.2022029999999","dy":"30.400000000000002","id":"SvgjsTspan1171"}}]},{"$":{"y":"-285.1858645","x":"602.843923","font-size":"19","id":"SvgjsText1172","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n K\r\n ","$":{"x":"602.843923","dy":"30.400000000000002","id":"SvgjsTspan1173"}}]},{"$":{"y":"-285.1858645","x":"670.4856530000001","font-size":"19","id":"SvgjsText1174","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n L\r\n ","$":{"x":"670.4856530000001","dy":"30.400000000000002","id":"SvgjsTspan1175"}}]},{"$":{"y":"-300.3889895","x":"738.127373","font-size":"19","id":"SvgjsText1176","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":":","$":{"x":"738.127373","dy":"30.400000000000002","id":"SvgjsTspan1177"}},{"_":";","$":{"x":"738.127373","dy":"30.400000000000002","id":"SvgjsTspan1178"}}]},{"$":{"y":"-300.3889895","x":"805.769153","font-size":"19","id":"SvgjsText1179","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\"","$":{"x":"805.769153","dy":"30.400000000000002","id":"SvgjsTspan1180"}},{"_":"'","$":{"x":"805.769153","dy":"30.400000000000002","id":"SvgjsTspan1181"}}]},{"$":{"y":"-285.1858645","x":"897.328205","font-size":"19","id":"SvgjsText1182","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Enter\r\n ","$":{"x":"897.328205","dy":"30.400000000000002","id":"SvgjsTspan1183"}}]},{"$":{"y":"-217.86302450000002","x":"501.36361300000004","font-size":"19","id":"SvgjsText1196","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n N\r\n ","$":{"x":"501.36361300000004","dy":"30.400000000000002","id":"SvgjsTspan1197"}}]},{"$":{"y":"-217.86302450000002","x":"569.395133","font-size":"19","id":"SvgjsText1198","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n M\r\n ","$":{"x":"569.395133","dy":"30.400000000000002","id":"SvgjsTspan1199"}}]},{"$":{"y":"-233.06614950000002","x":"637.426633","font-size":"19","id":"SvgjsText1200","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"<","$":{"x":"637.426633","dy":"30.400000000000002","id":"SvgjsTspan1201"}},{"_":",","$":{"x":"637.426633","dy":"30.400000000000002","id":"SvgjsTspan1202"}}]},{"$":{"y":"-233.06614950000002","x":"705.458123","font-size":"19","id":"SvgjsText1203","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":">","$":{"x":"705.458123","dy":"30.400000000000002","id":"SvgjsTspan1204"}},{"_":".","$":{"x":"705.458123","dy":"30.400000000000002","id":"SvgjsTspan1205"}}]},{"$":{"y":"-233.06614950000002","x":"773.489613","font-size":"19","id":"SvgjsText1206","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"?","$":{"x":"773.489613","dy":"30.400000000000002","id":"SvgjsTspan1207"}},{"_":"/","$":{"x":"773.489613","dy":"30.400000000000002","id":"SvgjsTspan1208"}}]},{"$":{"y":"-217.86302450000002","x":"881.38332","font-size":"19","id":"SvgjsText1209","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Shift\r\n ","$":{"x":"881.38332","dy":"30.400000000000002","id":"SvgjsTspan1210"}}]},{"$":{"y":"-150.5401845","x":"511.10771","font-size":"19","id":"SvgjsText1221","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Space\r\n ","$":{"x":"511.10771","dy":"30.400000000000002","id":"SvgjsTspan1222"}}]},{"$":{"y":"-150.5401845","x":"616.6982654999999","font-size":"19","id":"SvgjsText1223","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Fn\r\n ","$":{"x":"616.6982654999999","dy":"30.400000000000002","id":"SvgjsTspan1224"}}]},{"$":{"y":"-150.5401845","x":"699.6116555","font-size":"19","id":"SvgjsText1225","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Alt\r\n ","$":{"x":"699.6116555","dy":"30.400000000000002","id":"SvgjsTspan1226"}}]},{"$":{"y":"-150.5401845","x":"782.5250454999999","font-size":"19","id":"SvgjsText1227","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Super\r\n ","$":{"x":"782.5250454999999","dy":"30.400000000000002","id":"SvgjsTspan1228"}}]},{"$":{"y":"-150.5401845","x":"889.355755","font-size":"19","id":"SvgjsText1229","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Ctrl\r\n ","$":{"x":"889.355755","dy":"30.400000000000002","id":"SvgjsTspan1230"}}]},{"$":{"y":"-94.136446","x":"511.107715","font-size":"19","id":"SvgjsText1233","text-anchor":"middle","font-family":"Helvetica","fill":"#ffffff"},"tspan":[{"_":"\r\n Mod\r\n ","$":{"x":"511.107715","dy":"30.400000000000002","id":"SvgjsTspan1234"}}]}]}]}]}} - -/***/ }), -/* 1127 */ -/***/ (function(module, exports) { - -/* (ignored) */ - -/***/ }), -/* 1128 */, -/* 1129 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { -Object.defineProperty(exports, "__esModule", { value: true }); -var platform_browser_dynamic_1 = __webpack_require__(293); -var app_module_1 = __webpack_require__(468); -if (!process.stdout) { - process.stdout = __webpack_require__(464)(); +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; +} + +/***/ }), +/* 844 */ +/***/ (function(module, exports) { + +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } } -platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(app_module_1.AppModule); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32))) /***/ }) -]),[1129]); +],[591]); //# sourceMappingURL=app.uhk.js.map \ No newline at end of file diff --git a/app.uhk.js.map b/app.uhk.js.map index 5d98dc36..b7b430ae 100644 --- a/app.uhk.js.map +++ b/app.uhk.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./shared/src/config-serializer/config-items/key-action/index.ts","webpack:///./shared/src/config-serializer/assert.ts","webpack:///./shared/src/services/mapper.service.ts","webpack:///./shared/src/store/actions/index.ts","webpack:///./shared/src/store/reducers/user-configuration.ts","webpack:///./shared/src/components/popover/tab/tab.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/MacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/index.ts","webpack:///./~/readable-stream/lib/_stream_duplex.js","webpack:///./shared/src/config-serializer/config-items/Keymap.ts","webpack:///./shared/src/config-serializer/config-items/key-action/KeyAction.ts","webpack:///./~/inherits/inherits_browser.js","webpack:///./~/core-util-is/lib/util.js","webpack:///./~/events/events.js","webpack:///./~/stream-browserify/index.js","webpack:///./shared/src/components/popover/tab/index.ts","webpack:///./shared/src/config-serializer/config-items/Macro.ts","webpack:///./~/@ngrx/core/operator/select.js","webpack:///./~/@ngrx/store-devtools/index.js","webpack:///./~/@ngrx/store-devtools/src/actions.js","webpack:///./~/@ngrx/store-devtools/src/utils.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/actions.js","webpack:///./~/buffer-shims/index.js","webpack:///./~/process-nextick-args/index.js","webpack:///./shared/src/components/macro/action-editor/macro-action-editor.component.scss","webpack:///./~/readable-stream/lib/_stream_transform.js","webpack:///./~/readable-stream/lib/_stream_writable.js","webpack:///./shared/src/components/macro/index.ts","webpack:///./shared/src/components/macro/not-found/index.ts","webpack:///./shared/src/config-serializer/config-items/KeyModifiers.ts","webpack:///./shared/src/config-serializer/config-items/UserConfiguration.ts","webpack:///./shared/src/services/capture.service.ts","webpack:///./~/@ngrx/core/add/operator/select.js","webpack:///./~/@ngrx/store-devtools/src/config.js","webpack:///./~/@ngrx/store-devtools/src/devtools.js","webpack:///./~/@ngrx/store-devtools/src/extension.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/index.js","webpack:///./~/@ngrx/store-log-monitor/src/json-tree/types.js","webpack:///./~/ng2-dragula/ng2-dragula.js","webpack:///./~/readable-stream/lib/_stream_passthrough.js","webpack:///./~/readable-stream/lib/_stream_readable.js","webpack:///./~/string_decoder/index.js","webpack:///./shared/src/components/add-on/add-on.component.ts","webpack:///./shared/src/components/add-on/index.ts","webpack:///./shared/src/components/keymap/add/keymap-add.component.ts","webpack:///./shared/src/components/keymap/edit/index.ts","webpack:///./shared/src/components/keymap/edit/keymap-edit.component.ts","webpack:///./shared/src/components/macro/edit/macro-edit.component.ts","webpack:///./shared/src/components/popover/index.ts","webpack:///./shared/src/components/settings/index.ts","webpack:///./shared/src/components/settings/settings.component.ts","webpack:///./shared/src/components/svg/module/index.ts","webpack:///./shared/src/config-serializer/UhkBuffer.ts","webpack:///./shared/src/config-serializer/config-items/Layer.ts","webpack:///./shared/src/config-serializer/config-items/LongPressAction.ts","webpack:///./shared/src/config-serializer/config-items/Module.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/DelayMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/KeyMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/MouseButtonMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/MoveMouseMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/ScrollMouseMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/TextMacroAction.ts","webpack:///./~/browser-stdout/index.js","webpack:///./web/src/app.module.ts","webpack:///./~/@ngrx/core/compose.js","webpack:///./~/@ngrx/store-devtools/src/instrument.js","webpack:///./~/@ngrx/store-devtools/src/reducer.js","webpack:///./~/@ngrx/store-log-monitor/index.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/commander.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/dock-monitor.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/dock.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/keycodes.js","webpack:///./~/@ngrx/store-log-monitor/src/dock-monitor/reducer.js","webpack:///./~/@ngrx/store-log-monitor/src/json-tree/index.js","webpack:///./~/@ngrx/store-log-monitor/src/json-tree/json-node.js","webpack:///./~/@ngrx/store-log-monitor/src/json-tree/json-tree.js","webpack:///./~/@ngrx/store-log-monitor/src/log-monitor/index.js","webpack:///./~/@ngrx/store-log-monitor/src/log-monitor/log-monitor-button.js","webpack:///./~/@ngrx/store-log-monitor/src/log-monitor/log-monitor-entry.js","webpack:///./~/@ngrx/store-log-monitor/src/log-monitor/log-monitor.js","webpack:///./~/@ngrx/store-log-monitor/src/store-log-monitor.js","webpack:///./~/filesaver.js/FileSaver.min.js","webpack:///./shared/src/components/add-on/add-on.component.html","webpack:///./shared/src/components/keyboard/slider/keyboard-slider.component.html","webpack:///./shared/src/components/keymap/add/keymap-add.component.html","webpack:///./shared/src/components/keymap/edit/keymap-edit.component.html","webpack:///./shared/src/components/keymap/header/keymap-header.component.html","webpack:///./shared/src/components/layers/layers.component.html","webpack:///./shared/src/components/macro/action-editor/macro-action-editor.component.html","webpack:///./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.html","webpack:///./shared/src/components/macro/action-editor/tab/key/macro-key.component.html","webpack:///./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.html","webpack:///./shared/src/components/macro/action-editor/tab/text/macro-text.component.html","webpack:///./shared/src/components/macro/edit/macro-edit.component.html","webpack:///./shared/src/components/macro/header/macro-header.component.html","webpack:///./shared/src/components/macro/item/macro-item.component.html","webpack:///./shared/src/components/macro/list/macro-list.component.html","webpack:///./shared/src/components/macro/not-found/macro-not-found.component.html","webpack:///./shared/src/components/notification/notification.component.html","webpack:///./shared/src/components/popover/popover.component.html","webpack:///./shared/src/components/popover/tab/keymap/keymap-tab.component.html","webpack:///./shared/src/components/popover/tab/keypress/keypress-tab.component.html","webpack:///./shared/src/components/popover/tab/layer/layer-tab.component.html","webpack:///./shared/src/components/popover/tab/macro/macro-tab.component.html","webpack:///./shared/src/components/popover/tab/mouse/mouse-tab.component.html","webpack:///./shared/src/components/popover/tab/none/none-tab.component.html","webpack:///./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.html","webpack:///./shared/src/components/popover/widgets/icon/icon.component.html","webpack:///./shared/src/components/settings/settings.component.html","webpack:///./shared/src/components/side-menu/side-menu.component.html","webpack:///./shared/src/components/svg/keyboard/svg-keyboard.component.html","webpack:///./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.html","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.html","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.html","webpack:///./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.html","webpack:///./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.html","webpack:///./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.html","webpack:///./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.html","webpack:///./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.html","webpack:///./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.html","webpack:///./shared/src/components/svg/module/svg-module.component.html","webpack:///./shared/src/components/svg/wrap/svg-keyboard-wrap.component.html","webpack:///./web/src/main-app/main-app.component.html","webpack:///./shared/src/components/popover/tab/keypress/longPress.json","webpack:///./shared/src/components/popover/tab/keypress/scancodes.json","webpack:///./shared/src/config-serializer/preset-keymaps.json","webpack:///./shared/src/config-serializer/user-config.json","webpack:///./shared/src/components/add-on/add-on.component.scss","webpack:///./shared/src/components/keyboard/slider/keyboard-slider.component.scss","webpack:///./shared/src/components/keymap/add/keymap-add.component.scss","webpack:///./shared/src/components/keymap/edit/keymap-edit.component.scss","webpack:///./shared/src/components/keymap/header/keymap-header.component.scss","webpack:///./shared/src/components/layers/layers.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/key/macro-key.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/text/macro-text.component.scss","webpack:///./shared/src/components/macro/edit/macro-edit.component.scss","webpack:///./shared/src/components/macro/header/macro-header.component.scss","webpack:///./shared/src/components/macro/item/macro-item.component.scss","webpack:///./shared/src/components/macro/list/macro-list.component.scss","webpack:///./shared/src/components/macro/not-found/macro-not-found.component.scss","webpack:///./shared/src/components/notification/notification.component.scss","webpack:///./shared/src/components/popover/popover.component.scss","webpack:///./shared/src/components/popover/tab/keymap/keymap-tab.component.scss","webpack:///./shared/src/components/popover/tab/keypress/keypress-tab.component.scss","webpack:///./shared/src/components/popover/tab/layer/layer-tab.component.scss","webpack:///./shared/src/components/popover/tab/macro/macro-tab.component.scss","webpack:///./shared/src/components/popover/tab/mouse/mouse-tab.component.scss","webpack:///./shared/src/components/popover/tab/none/none-tab.component.scss","webpack:///./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.scss","webpack:///./shared/src/components/popover/widgets/icon/icon.component.scss","webpack:///./shared/src/components/settings/settings.component.scss","webpack:///./shared/src/components/side-menu/side-menu.component.scss","webpack:///./shared/src/components/svg/keyboard/svg-keyboard.component.scss","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.scss","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.scss","webpack:///./shared/src/components/svg/module/svg-module.component.scss","webpack:///./shared/src/components/svg/wrap/svg-keyboard-wrap.component.scss","webpack:///./shared/src/main-app/main-app.component.scss","webpack:///./web/src/main-app/main-app.component.scss","webpack:///./~/readable-stream/duplex.js","webpack:///./~/readable-stream/lib/internal/streams/BufferList.js","webpack:///./~/readable-stream/passthrough.js","webpack:///./~/readable-stream/readable.js","webpack:///./~/readable-stream/transform.js","webpack:///./~/readable-stream/writable.js","webpack:///./shared/src/components/add-on/add-on.routes.ts","webpack:///./shared/src/components/keyboard/slider/index.ts","webpack:///./shared/src/components/keyboard/slider/keyboard-slider.component.ts","webpack:///./shared/src/components/keymap/edit/keymap-edit-guard.service.ts","webpack:///./shared/src/components/keymap/header/keymap-header.component.ts","webpack:///./shared/src/components/keymap/index.ts","webpack:///./shared/src/components/layers/index.ts","webpack:///./shared/src/components/layers/layers.component.ts","webpack:///./shared/src/components/macro/action-editor/index.ts","webpack:///./shared/src/components/macro/action-editor/macro-action-editor.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/delay/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/key/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/key/macro-key.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/mouse/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/text/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/text/macro-text.component.ts","webpack:///./shared/src/components/macro/header/macro-header.component.ts","webpack:///./shared/src/components/macro/item/index.ts","webpack:///./shared/src/components/macro/item/macro-item.component.ts","webpack:///./shared/src/components/macro/list/macro-list.component.ts","webpack:///./shared/src/components/macro/macro.routes.ts","webpack:///./shared/src/components/macro/not-found/macro-not-found-guard.service.ts","webpack:///./shared/src/components/macro/not-found/macro-not-found.component.ts","webpack:///./shared/src/components/notification/index.ts","webpack:///./shared/src/components/notification/notification.component.ts","webpack:///./shared/src/components/popover/popover.component.ts","webpack:///./shared/src/components/popover/tab/keymap/index.ts","webpack:///./shared/src/components/popover/tab/keymap/keymap-tab.component.ts","webpack:///./shared/src/components/popover/tab/keypress/index.ts","webpack:///./shared/src/components/popover/tab/keypress/keypress-tab.component.ts","webpack:///./shared/src/components/popover/tab/layer/index.ts","webpack:///./shared/src/components/popover/tab/layer/layer-tab.component.ts","webpack:///./shared/src/components/popover/tab/macro/index.ts","webpack:///./shared/src/components/popover/tab/macro/macro-tab.component.ts","webpack:///./shared/src/components/popover/tab/mouse/index.ts","webpack:///./shared/src/components/popover/tab/mouse/mouse-tab.component.ts","webpack:///./shared/src/components/popover/tab/none/index.ts","webpack:///./shared/src/components/popover/tab/none/none-tab.component.ts","webpack:///./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.ts","webpack:///./shared/src/components/popover/widgets/capture-keystroke/index.ts","webpack:///./shared/src/components/popover/widgets/icon/icon.component.ts","webpack:///./shared/src/components/popover/widgets/icon/index.ts","webpack:///./shared/src/components/settings/settings.routes.ts","webpack:///./shared/src/components/side-menu/index.ts","webpack:///./shared/src/components/side-menu/side-menu.component.ts","webpack:///./shared/src/components/svg/keyboard/index.ts","webpack:///./shared/src/components/svg/keyboard/svg-keyboard.component.ts","webpack:///./shared/src/components/svg/keys/index.ts","webpack:///./shared/src/components/svg/keys/svg-icon-text-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-click-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-move-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-scroll-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-speed-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.ts","webpack:///./shared/src/components/svg/keys/svg-one-line-text-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-single-icon-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-switch-keymap-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-text-icon-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-two-line-text-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.ts","webpack:///./shared/src/components/svg/module/svg-module.component.ts","webpack:///./shared/src/components/svg/module/svg-module.model.ts","webpack:///./shared/src/components/svg/wrap/index.ts","webpack:///./shared/src/components/svg/wrap/svg-keyboard-wrap.component.ts","webpack:///./shared/src/config-serializer/config-items/ModuleConfiguration.ts","webpack:///./shared/src/config-serializer/config-items/key-action/KeystrokeAction.ts","webpack:///./shared/src/config-serializer/config-items/key-action/MouseAction.ts","webpack:///./shared/src/config-serializer/config-items/key-action/NoneAction.ts","webpack:///./shared/src/config-serializer/config-items/key-action/PlayMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/key-action/SwitchKeymapAction.ts","webpack:///./shared/src/config-serializer/config-items/key-action/SwitchLayerAction.ts","webpack:///./shared/src/config-serializer/config-items/key-action/helper.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/EditableMacroAction.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/helper.ts","webpack:///./shared/src/directives/cancelable/cancelable.directive.ts","webpack:///./shared/src/directives/cancelable/index.ts","webpack:///./shared/src/directives/index.ts","webpack:///./shared/src/store/actions/keymap.ts","webpack:///./shared/src/store/actions/macro.ts","webpack:///./shared/src/store/effects/index.ts","webpack:///./shared/src/store/effects/keymap.ts","webpack:///./shared/src/store/effects/macro.ts","webpack:///./shared/src/store/reducers/index.ts","webpack:///./shared/src/store/reducers/preset.ts","webpack:///./shared/src/store/storage/electron.ts","webpack:///./shared/src/store/storage/index.ts","webpack:///./shared/src/store/storage/local.ts","webpack:///./shared/src/util/index.ts","webpack:///./web/src/components/keymap/index.ts","webpack:///./web/src/components/keymap/keymap.routes.ts","webpack:///./web/src/main-app/index.ts","webpack:///./web/src/main-app/main-app.component.ts","webpack:///./web/src/main-app/main-app.routes.ts","webpack:///./~/util-deprecate/browser.js","webpack:///./~/util/~/inherits/inherits_browser.js","webpack:///./~/util/support/isBufferBrowser.js","webpack:///./~/util/util.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./images/base-layer.svg","webpack:///util (ignored)","webpack:///./web/src/main.ts"],"names":[],"mappings":"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e,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,C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ACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC7SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;AC9HA,kCAAsB;AACtB,yCAA8C;AAArC,wDAAkB;AAC3B,2CAAkD;AAAzC,8DAAoB;AAC7B,wCAA4C;AAAnC,qDAAiB;AAC1B,wCAA4C;AAAnC,qDAAiB;AAC1B,wCAA4C;AAAnC,qDAAiB;AAC1B,uCAA0C;AAAjC,kDAAgB;;;;;;;;;;;;;;;;;;;ACN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AChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,mC;;;;;;;;;;;;;AChD8B;AAC9B;AACA,yCAAyC,iCAAiC,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iC;;;;;;;;;AC3BqB;AACrB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kEAAmB;AAC5B;AACA;AACA;AACA;AACA,CAAC;AACD,mC;;;;;;;8CC3BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;+CC3GA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;AC1CA,yBAAyB,mBAAmB,gBAAgB,EAAE,qBAAqB,mBAAmB,sBAAsB,qBAAqB,cAAc,EAAE,UAAU,yBAAyB,EAAE,eAAe,iCAAiC,oCAAoC,EAAE,0BAA0B,2BAA2B,EAAE,uBAAuB,wBAAwB,EAAE,oBAAoB,iBAAiB,EAAE,iCAAiC,2BAA2B,EAAE,8BAA8B,oBAAoB,uBAAuB,2BAA2B,iBAAiB,kBAAkB,eAAe,qBAAqB,kEAAkE,4BAA4B,2BAA2B,EAAE,uCAAuC,sBAAsB,EAAE,mBAAmB,gCAAgC,yBAAyB,uBAAuB,EAAE,sBAAsB,iBAAiB,EAAE,gCAAgC,0BAA0B,iCAAiC,oCAAoC,2BAA2B,EAAE,0BAA0B,kBAAkB,gCAAgC,EAAE,kBAAkB,yBAAyB,EAAE,G;;;;;;;ACAnvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,C;;;;;;;ACrLA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;AAChB;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD;;AAElD;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACziBA,mCAA4C;AAC5C,oCAA4C;AAC5C,oCAAgD;AAChD,oCAA+B;AAC/B,mCAA4B;AAC5B,oCAAuB;AACvB,oCAAgC;AAChC,oCAAoC;;;;;;;;;;ACPpC,4DAAqE;AAA5D,mFAAsB;AAC/B,gEAAqE;AAA5D,+EAAkB;;;;;;;;;;ACD3B,IAAY,YASX;AATD,WAAY,YAAY;IACpB,uDAAmB;IACnB,yDAAmB;IACnB,qDAAmB;IACnB,qDAAmB;IACnB,0DAAmB;IACnB,4DAAmB;IACnB,wDAAmB;IACnB,yDAAmB;AACvB,CAAC,EATW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QASvB;;;;;;;;;;;;;;;;;;;ACTD,uCAAyC;AAEzC,uCAAkC;AAClC,uCAAgC;AAChC,sDAA4D;AAE5D;IAAA;IAqEA,CAAC;IA1DG,0CAAc,GAAd,UAAe,UAAe;QAA9B,iBAYC;QAXG,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAC,mBAAwB;YACrF,MAAM,CAAC,IAAI,yCAAmB,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,eAAoB,EAAE,KAAa;YACpE,IAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC1D,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAW,IAAK,WAAI,eAAM,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,KAAI,CAAC,MAAM,CAAC,EAAhD,CAAgD,CAAC,CAAC;QACzG,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,sCAAU,GAAV,UAAW,MAAiB;QAA5B,iBAYC;QAXG,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAsB,mBAAS;YACvE,MAAM,CAAC,IAAI,yCAAmB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAQ,UAAC,SAAS,EAAE,KAAK;YACnD,IAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAChD,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAS,mBAAS,IAAI,WAAI,eAAM,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,EAA/C,CAA+C,CAAC,CAAC;QACtG,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,wCAAY,GAAZ;QAAA,iBAOC;QANG,MAAM,CAAC;YACH,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,6BAAmB,IAAI,0BAAmB,CAAC,YAAY,EAAE,EAAlC,CAAkC,CAAC;YAC9G,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,YAAY,CAAC,KAAI,CAAC,MAAM,CAAC,EAAhC,CAAgC,CAAC;YACrE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAK,IAAI,YAAK,CAAC,YAAY,EAAE,EAApB,CAAoB,CAAC;SACzD,CAAC;IACN,CAAC;IAED,oCAAQ,GAAR,UAAS,MAAiB;QAA1B,iBAOC;QANG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,SAAoB,EAAE,MAAc;YACjE,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oCAAQ,GAAR;QACI,MAAM,CAAC,2CAAwC,IAAI,CAAC,gBAAgB,QAAI,CAAC;IAC7E,CAAC;IAED,qCAAS,GAAT,UAAU,kBAA0B;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAM,IAAI,yBAAkB,KAAK,MAAM,CAAC,YAAY,EAA1C,CAA0C,CAAC,CAAC;IACnF,CAAC;IAED,oCAAQ,GAAR,UAAS,OAAe;QACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,IAAI,cAAO,KAAK,KAAK,CAAC,EAAE,EAApB,CAAoB,CAAC,CAAC;IAC3D,CAAC;IAEL,wBAAC;AAAD,CAAC;AAlEG;IADC,qBAAY;;2DACY;AAHhB,8CAAiB;;;;;;;;;;;;;;;;;;;ACN9B,oCAA2C;AAG3C,IAAa,cAAc;IAKvB;QACI,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,CAAC;IAEM,+BAAM,GAAb,UAAc,IAAY;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,+BAAM,GAAb,UAAc,IAAY;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,oCAAW,GAAlB,UAAmB,IAAa,EAAE,IAAY;QAC1C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAEM,qCAAY,GAAnB,UAAoB,IAAa;QAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnF,CAAC;IAEM,sCAAa,GAApB;QACI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ;QAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO;QAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM;QACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ;QAE3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ;QAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO;QAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM;QAC1C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ;IAChD,CAAC;IAEM,wCAAe,GAAtB;QACI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAG,YAAY;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAG,MAAM;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,QAAQ;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,cAAc;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,YAAY;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,SAAS;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,UAAU;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,UAAU;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,YAAY;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,MAAM;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,OAAO;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,aAAa;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,WAAW;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,cAAc;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,aAAa;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,SAAS;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,SAAS;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,OAAO;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kEAAmB;AAC5B;AACA;AACA;AACA,SAAS,4BAA4B;AACrC,SAAS,iEAAoB;AAC7B,SAAS,8DAAiB;AAC1B,SAAS,gFAA2B;AACpC,SAAS,gCAAgC,mIAAuC,IAAI;AACpF,SAAS,gCAAgC,gJAA+C,IAAI;AAC5F;AACA;AACA,CAAC;AACD,oC;;;;;;;;;;;;;;;;;;;;;;;;;;AC7G0C;AACrB;AACL;AACC;AACH;AACE;AACI;AACA;AACK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,+BAA+B;AAC7F,oDAAoD,gCAAgC,EAAE;AACtF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oHAA8D,mDAAmD,EAAE;AACnH;AACA,mHAA6D,kDAAkD,EAAE;AACjH;AACA;AACA,8FAAwC,sDAAsD,EAAE;AAChG,wFAAqC,2CAA2C,EAAE;AAClF;AACA;AACA;AACA,8FAAwC,oDAAoD,EAAE;AAC9F,wFAAqC,2CAA2C,EAAE;AAClF;AACA;AACA;AACA;AACA,qHAA4D,0BAA0B,EAAE;AACxF,2HAAkE,yBAAyB,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA,SAAS,kEAAmB;AAC5B;AACA;AACA;AACA,SAAS,gCAAgC,iGAAkD,IAAI;AAC/F;AACA;AACA,CAAC;AACD,qC;;;;;;;;;;;;;;;;AC3EmB;AACI;AACM;AACL;AACO;AACT;AACtB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB,iC;;;;;;;;;;;;;AChCkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD,6CAA6C,2BAA2B,0DAA0D,GAAG;AACrI,8CAA8C,0BAA0B,sCAAsC,GAAG;AACjH,oCAAoC,qBAAqB,aAAa,GAAG;AACzE,iCAAiC,4BAA4B;AAC7D,+BAA+B,uBAAuB;AACtD,wCAAwC,0BAA0B;AAClE,qCAAqC;AACrC;AACA,2HAAgD;AAChD;AACA;AACA,wCAAwC,+BAA+B,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC;AAC/E,qCAA4C,0DAA0D;AACtG;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,E;;;;;;;+CCzBA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;AAChB;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,2EAA2E,6EAA6E;AACxJ;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC56BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;A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;AACA;AACA,yDAAyD,qBAAqB,EAAE;AAChF;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd6B;AACqD;AACtC;AACK;AACK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD,sC;;;;;;;;;;;;;ACzI8B;AACG;AACX;AACtB,mBAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,sBAAsB,oGAA6B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,uCAAuC,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,0BAA0B,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,mC;;;;;;;;;;;;;;;ACrPmB;AACI;AACK;AACD;AACQ;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACyC;AAC1C,iC;;;;;;;;;;;;;;AC5BiD;AAChC;AACH;AACK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,6DAAc;AACpC,qBAAqB,8DAAe;AACpC;AACA;AACA,CAAC;AACD,qC;;;;;;;;;;;;;;;;;AChFkE;AACjD;AACO;AACR;AACF;AACQ;AACtB;AACA;AACA,+HAAmE,uBAAuB,EAAE;AAC5F,2HAA+D,kBAAkB,EAAE;AACnF,4HAAgE,mBAAmB,EAAE;AACrF,wHAA4D,eAAe,EAAE;AAC7E;AACA;AACA,8MAA6E,mCAAmC,EAAE,kGAA+C,iCAAiC,EAAE;AACpM;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA,SAAS,6EAAuB;AAChC,SAAS,uEAAqB;AAC9B;AACA;AACA,2BAA2B,6DAAc;AACzC,6BAA6B,6DAAc;AAC3C;AACA;AACA,CAAC;AACD,wC;;;;;;;;;ACrCwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,wBAAwB,eAAe,gBAAgB,iBAAiB,kBAAkB,6BAA6B,sBAAsB,OAAO,eAAe,2BAA2B,mBAAmB,+CAA+C,gCAAgC,gBAAgB,eAAe,oBAAoB,qBAAqB,OAAO,uBAAuB,oBAAoB,qBAAqB,uBAAuB,OAAO;AACxf,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,6DAAc;AACpC,kBAAkB,6DAAc;AAChC,qBAAqB,6DAAc;AACnC,0BAA0B,0FAA2C;AACrE,2BAA2B,2FAA4C;AACvE,yBAAyB,yFAA0C;AACnE,4BAA4B,4FAA6C;AACzE;AACA;AACA,CAAC;AACD,gC;;;;;;;ACzFA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;AC3C0B;AACJ;AACtB;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mC;;;;;;;;;;;;AClCmB;AACI;AACK;AACA;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD,iC;;;;;;;;;;ACzB2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2CAA2C,uBAAuB,kCAAkC,2BAA2B,uBAAuB,uEAAuE,OAAO,2BAA2B,2BAA2B,iBAAiB,kBAAkB,wBAAwB,oCAAoC,OAAO,uCAAuC,iCAAiC,OAAO,0BAA0B,sBAAsB,wBAAwB,OAAO,+BAA+B,kCAAkC,OAAO,qBAAqB,uBAAuB,OAAO,mEAAmE,uBAAuB,OAAO,wEAAwE,uBAAuB,OAAO;AACh2B,2MAA2M,OAAO,+DAA+D,SAAS;AAC1R,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,iBAAiB,6DAAc;AAC/B,sBAAsB,6DAAc;AACpC,mBAAmB,6DAAc;AACjC;AACA;AACA,CAAC;AACD,qC;;;;;;;;;;ACzC2B;AACF;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS;AACT;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,6DAAc;AACpC,mBAAmB,6DAAc;AACjC;AACA;AACA,CAAC;AACD,qC;;;;;;;;;;;;;;AC5BmB;AACI;AACE;AACK;AACM;AACD;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD,iC;;;;;;;;;AC7B4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0CAA0C,qBAAqB,8BAA8B,uEAAuE,wBAAwB,0BAA0B,2BAA2B,yBAAyB,gCAAgC,yBAAyB,qBAAqB,8BAA8B,kCAAkC,OAAO,uBAAuB,qBAAqB,qBAAqB,sCAAsC,OAAO;AAC7gB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,8FAA+C,GAAG,6DAAc;AACtF,oBAAoB,8DAAe;AACnC,0BAA0B,kGAAmD;AAC7E;AACA;AACA,CAAC;AACD,8C;;;;;;;;;AC5BiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2EAA2E,4BAA4B,wCAAwC,oBAAoB;AACnK,0CAA0C,uBAAuB,kCAAkC,wBAAwB,OAAO,iBAAiB,gCAAgC,0CAA0C,OAAO,kBAAkB,sBAAsB,OAAO,iBAAiB,sCAAsC,2BAA2B,qBAAqB,OAAO;AACjY,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,2BAA2B,6DAAc;AACzC,sBAAsB,6DAAc;AACpC,kBAAkB,6DAAc;AAChC,oBAAoB,8DAAe;AACnC;AACA;AACA,CAAC;AACD,6C;;;;;;;;;;;;;;ACjD2B;AACb;AACU;AACP;AACjB;AACA;AACA;AACA;AACA,sIAA0E,uCAAuC,EAAE;AACnH,qIAAyE,yCAAyC,EAAE;AACpH,sIAA0E,uCAAuC,EAAE;AACnH;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2CAA2C,uBAAuB,kCAAkC,uEAAuE,2BAA2B,2BAA2B,oBAAoB,qBAAqB,yBAAyB,uBAAuB,OAAO,qBAAqB,2BAA2B,iCA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CA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gBAAgB;AAChB,IAAI;AACJ;AACA;AACA,gBAAgB;AAChB,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACjlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC5tDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AC7gDA,yBAAyB,gBAAgB,iBAAiB,mBAAmB,EAAE,G;;;;;;ACA/E,gCAAgC,eAAe,sBAAsB,uBAAuB,YAAY,iCAAiC,sBAAsB,EAAE,G;;;;;;ACAjK,yBAAyB,qBAAqB,mBAAmB,iBAAiB,EAAE,mCAAmC,uBAAuB,EAAE,0CAA0C,gCAAgC,4BAA4B,yBAAyB,qBAAqB,kBAAkB,wBAAwB,4BAA4B,gBAAgB,EAAE,qBAAqB,qBAAqB,EAAE,kCAAkC,kBAAkB,uBAAuB,kBAAkB,EAAE,4BAA4B,kBAAkB,2BAA2B,EAAE,0BAA0B,wBAAwB,EAAE,mBAAmB,qBAAqB,EAAE,wBAAwB,0BAA0B,EAAE,iCAAiC,uBAAuB,kBAAkB,yBAAyB,EAAE,wCAAwC,oBAAoB,2BAA2B,4BAA4B,EAAE,G;;;;;;ACA97B,yBAAyB,gBAAgB,mBAAmB,EAAE,gBAAgB,qBAAqB,oBAAoB,uBAAuB,EAAE,G;;;;;;ACAhJ,yBAAyB,mBAAmB,EAAE,mCAAmC,oBAAoB,EAAE,yCAAyC,qBAAqB,EAAE,qBAAqB,sBAAsB,aAAa,EAAE,0CAA0C,sBAAsB,kBAAkB,EAAE,8BAA8B,oBAAoB,EAAE,wBAAwB,sBAAsB,aAAa,uBAAuB,uBAAuB,EAAE,8BAA8B,sBAAsB,qBAAqB,EAAE,sBAAsB,cAAc,qBAAqB,uBAAuB,uBAAuB,EAAE,4BAA4B,sBAAsB,qBAAqB,EAAE,iBAAiB,uBAAuB,EAAE,4CAA4C,mBAAmB,qCAAqC,iBAAiB,wBAAwB,EAAE,0DAA0D,mDAAmD,kCAAkC,EAAE,uBAAuB,mBAAmB,8BAA8B,EAAE,yBAAyB,kBAAkB,yBAAyB,EAAE,G;;;;;;ACA3qC,yBAAyB,mBAAmB,EAAE,2BAA2B,sBAAsB,4CAA4C,2BAA2B,EAAE,yCAAyC,4BAA4B,8BAA8B,EAAE,YAAY,gBAAgB,EAAE,mCAAmC,uBAAuB,wBAAwB,EAAE,0CAA0C,gCAAgC,4BAA4B,yBAAyB,qBAAqB,kBAAkB,wBAAwB,4BAA4B,gBAAgB,EAAE,G;;;;;;ACA3mB,yBAAyB,kBAAkB,2BAA2B,uBAAuB,EAAE,2BAA2B,qBAAqB,EAAE,kCAAkC,4BAA4B,6BAA6B,EAAE,G;;;;;;ACA9O,yCAAyC,eAAe,EAAE,uBAAuB,mBAAmB,sBAAsB,EAAE,wBAAwB,uBAAuB,yBAAyB,EAAE,kCAAkC,wBAAwB,wBAAwB,kCAAkC,EAAE,SAAS,oBAAoB,EAAE,G;;;;;;ACA3V,2CAA2C,eAAe,EAAE,yBAAyB,iCAAiC,mBAAmB,sBAAsB,mBAAmB,oBAAoB,EAAE,2BAA2B,uBAAuB,yBAAyB,EAAE,2BAA2B,qBAAqB,wBAAwB,EAAE,SAAS,oBAAoB,EAAE,kCAAkC,uBAAuB,EAAE,4BAA4B,0BAA0B,yBAAyB,EAAE,oCAAoC,0BAA0B,eAAe,EAAE,G;;;;;;ACAzlB,yBAAyB,kBAAkB,2BAA2B,uBAAuB,EAAE,wBAAwB,gBAAgB,sBAAsB,wBAAwB,EAAE,G;;;;;;ACAvL,yBAAyB,gBAAgB,iBAAiB,mBAAmB,EAAE,gBAAgB,qBAAqB,oBAAoB,uBAAuB,EAAE,G;;;;;;ACAjK,kCAAkC,sBAAsB,aAAa,EAAE,0BAA0B,sBAAsB,kBAAkB,EAAE,uBAAuB,sBAAsB,aAAa,uBAAuB,uBAAuB,EAAE,6BAA6B,sBAAsB,qBAAqB,EAAE,iBAAiB,uBAAuB,EAAE,uBAAuB,mBAAmB,qCAAqC,iBAAiB,wBAAwB,mBAAmB,8BAA8B,EAAE,+BAA+B,mDAAmD,kCAAkC,EAAE,G;;;;;;ACA1oB,yBAAyB,qBAAqB,mBAAmB,EAAE,qDAAqD,iCAAiC,EAAE,oDAAoD,uBAAuB,EAAE,sBAAsB,mBAAmB,EAAE,yCAAyC,4BAA4B,EAAE,mBAAmB,kBAAkB,mBAAmB,cAAc,kCAAkC,EAAE,wBAAwB,oBAAoB,EAAE,yBAAyB,oBAAoB,cAAc,EAAE,+BAA+B,uBAAuB,EAAE,8BAA8B,0BAA0B,EAAE,yBAAyB,qCAAqC,EAAE,yCAAyC,wBAAwB,uBAAuB,EAAE,oBAAoB,kBAAkB,YAAY,EAAE,4BAA4B,iBAAiB,EAAE,sBAAsB,qBAAqB,EAAE,qCAAqC,mBAAmB,sBAAsB,qBAAqB,iBAAiB,qBAAqB,EAAE,G;;;;;;ACAtlC,yBAAyB,kBAAkB,2BAA2B,iBAAiB,EAAE,2BAA2B,oBAAoB,cAAc,EAAE,mBAAmB,iBAAiB,EAAE,QAAQ,wBAAwB,EAAE,yBAAyB,2BAA2B,yBAAyB,wBAAwB,qBAAqB,sBAAsB,+BAA+B,EAAE,mBAAmB,sBAAsB,EAAE,sDAAsD,8BAA8B,wBAAwB,mBAAmB,0BAA0B,kBAAkB,EAAE,iBAAiB,mBAAmB,EAAE,kBAAkB,mCAAmC,sBAAsB,sBAAsB,EAAE,qBAAqB,4BAA4B,2BAA2B,iBAAiB,EAAE,6BAA6B,yBAAyB,qBAAqB,mBAAmB,uBAAuB,kBAAkB,cAAc,iBAAiB,EAAE,4DAA4D,8CAA8C,EAAE,8BAA8B,qBAAqB,uBAAuB,2BAA2B,qBAAqB,EAAE,yCAAyC,iBAAiB,EAAE,0BAA0B,kBAAkB,gCAAgC,EAAE,kBAAkB,yBAAyB,EAAE,gCAAgC,qBAAqB,mBAAmB,+BAA+B,EAAE,2BAA2B,+BAA+B,kBAAkB,eAAe,EAAE,iCAAiC,sBAAsB,EAAE,iCAAiC,iBAAiB,kBAAkB,wBAAwB,yBAAyB,qBAAqB,EAAE,iDAAiD,qCAAqC,EAAE,yCAAyC,8BAA8B,4BAA4B,EAAE,sCAAsC,kBAAkB,EAAE,gBAAgB,oBAAoB,cAAc,kBAAkB,iBAAiB,EAAE,cAAc,kBAAkB,EAAE,sBAAsB,8BAA8B,2BAA2B,0BAA0B,sBAAsB,EAAE,G;;;;;;ACApxE,8BAA8B,qBAAqB,oBAAoB,uBAAuB,EAAE,G;;;;;;ACAhG,yBAAyB,yBAAyB,+BAA+B,0BAA0B,uBAAuB,cAAc,gBAAgB,mBAAmB,2BAA2B,gBAAgB,kBAAkB,EAAE,aAAa,sBAAsB,uBAAuB,mBAAmB,8BAA8B,sBAAsB,EAAE,kDAAkD,4BAA4B,qBAAqB,EAAE,cAAc,uBAAuB,gBAAgB,gBAAgB,EAAE,oBAAoB,sBAAsB,kBAAkB,EAAE,G;;;;;;ACA/lB,4BAA4B,kBAAkB,2BAA2B,eAAe,qBAAqB,gBAAgB,sBAAsB,EAAE,qCAAqC,sBAAsB,iBAAiB,EAAE,sCAAsC,sBAAsB,kBAAkB,iBAAiB,EAAE,iCAAiC,uBAAuB,EAAE,oBAAoB,qBAAqB,EAAE,kBAAkB,uBAAuB,eAAe,cAAc,gCAAgC,gBAAgB,iBAAiB,EAAE,yBAAyB,kBAAkB,eAAe,gBAAgB,0CAA0C,2CAA2C,mDAAmD,qBAAqB,yBAAyB,gBAAgB,EAAE,wBAAwB,kBAAkB,eAAe,gBAAgB,0CAA0C,2CAA2C,wCAAwC,qBAAqB,yBAAyB,aAAa,EAAE,qBAAqB,sBAAsB,cAAc,oBAAoB,8BAA8B,kCAAkC,+BAA+B,sBAAsB,EAAE,8BAA8B,6BAA6B,mBAAmB,EAAE,wCAAwC,yBAAyB,eAAe,oBAAoB,EAAE,2DAA2D,sBAAsB,4BAA4B,wBAAwB,EAAE,+DAA+D,+BAA+B,EAAE,sBAAsB,uBAAuB,EAAE,sBAAsB,oBAAoB,gBAAgB,cAAc,WAAW,YAAY,kBAAkB,4BAA4B,mEAAmE,EAAE,8BAA8B,mBAAmB,qCAAqC,4CAA4C,EAAE,mBAAmB,uBAAuB,sBAAsB,EAAE,wCAAwC,yBAAyB,EAAE,wCAAwC,mBAAmB,yBAAyB,cAAc,eAAe,wBAAwB,EAAE,G;;;;;;ACA7zE,yBAAyB,kBAAkB,2BAA2B,EAAE,kBAAkB,yBAAyB,EAAE,iBAAiB,oBAAoB,sBAAsB,EAAE,qBAAqB,sBAAsB,4BAA4B,0BAA0B,EAAE,2BAA2B,gBAAgB,EAAE,4BAA4B,uBAAuB,EAAE,kCAAkC,yBAAyB,wBAAwB,EAAE,YAAY,kBAAkB,EAAE,gBAAgB,oBAAoB,kBAAkB,mBAAmB,yBAAyB,EAAE,G;;;;;;ACAhlB,yBAAyB,kBAAkB,2BAA2B,uBAAuB,EAAE,6BAA6B,0BAA0B,sBAAsB,EAAE,mCAAmC,2BAA2B,iBAAiB,EAAE,iCAAiC,yBAAyB,gBAAgB,wBAAwB,EAAE,0CAA0C,4BAA4B,EAAE,iCAAiC,oBAAoB,uBAAuB,EAAE,uCAAuC,4BAA4B,4BAA4B,sBAAsB,EAAE,mDAAmD,qBAAqB,EAAE,wCAAwC,2BAA2B,EAAE,mCAAmC,kBAAkB,EAAE,iCAAiC,oBAAoB,yBAAyB,eAAe,wBAAwB,qBAAqB,0BAA0B,EAAE,uCAAuC,0BAA0B,oBAAoB,kCAAkC,EAAE,oHAAoH,yBAAyB,EAAE,0CAA0C,qBAAqB,EAAE,G;;;;;;ACAryC,yBAAyB,kBAAkB,mBAAmB,EAAE,mBAAmB,8BAA8B,EAAE,qCAAqC,oBAAoB,oBAAoB,0BAA0B,EAAE,YAAY,2BAA2B,2BAA2B,uBAAuB,8BAA8B,EAAE,G;;;;;;ACArV,yBAAyB,kBAAkB,2BAA2B,EAAE,kBAAkB,yBAAyB,EAAE,2BAA2B,oBAAoB,sBAAsB,EAAE,+BAA+B,sBAAsB,4BAA4B,0BAA0B,EAAE,qCAAqC,gBAAgB,EAAE,mCAAmC,oBAAoB,6BAA6B,wBAAwB,wBAAwB,qBAAqB,yBAAyB,uBAAuB,yBAAyB,6BAA6B,EAAE,iDAAiD,yBAAyB,kBAAkB,EAAE,G;;;;;;ACA/rB,yBAAyB,kBAAkB,EAAE,2BAA2B,oBAAoB,oBAAoB,0BAA0B,EAAE,8BAA8B,mCAAmC,EAAE,qCAAqC,mCAAmC,sCAAsC,EAAE,gDAAgD,6BAA6B,EAAE,qDAAqD,2BAA2B,EAAE,kDAAkD,oBAAoB,uBAAuB,2BAA2B,iBAAiB,kBAAkB,eAAe,qBAAqB,kEAAkE,4BAA4B,2BAA2B,EAAE,mCAAmC,0BAA0B,uBAAuB,kBAAkB,EAAE,uCAAuC,kBAAkB,EAAE,qCAAqC,yBAAyB,EAAE,wCAAwC,oBAAoB,sBAAsB,qBAAqB,wBAAwB,EAAE,6CAA6C,sBAAsB,qBAAqB,yBAAyB,EAAE,uCAAuC,qBAAqB,qBAAqB,EAAE,G;;;;;;ACAp0C,yBAAyB,kBAAkB,4BAA4B,oBAAoB,EAAE,G;;;;;;ACA7F,0BAA0B,0BAA0B,0BAA0B,EAAE,gBAAgB,gBAAgB,EAAE,G;;;;;;ACAlH,yBAAyB,kBAAkB,wBAAwB,EAAE,yBAAyB,mBAAmB,oBAAoB,EAAE,0BAA0B,mBAAmB,oBAAoB,EAAE,G;;;;;;ACA1M,yBAAyB,gBAAgB,iBAAiB,mBAAmB,EAAE,G;;;;;;ACA/E,yBAAyB,8BAA8B,iCAAiC,oBAAoB,qBAAqB,iBAAiB,iBAAiB,EAAE,OAAO,gBAAgB,EAAE,QAAQ,eAAe,cAAc,EAAE,WAAW,uBAAuB,iBAAiB,EAAE,WAAW,uBAAuB,EAAE,uBAAuB,yBAAyB,oBAAoB,sBAAsB,oBAAoB,EAAE,yFAAyF,4BAA4B,EAAE,6BAA6B,oBAAoB,EAAE,4CAA4C,kBAAkB,EAAE,sCAAsC,kBAAkB,qBAAqB,EAAE,6EAA6E,yBAAyB,wBAAwB,yBAAyB,kBAAkB,oBAAoB,sBAAsB,EAAE,6BAA6B,wBAAwB,uBAAuB,EAAE,oCAAoC,6BAA6B,kBAAkB,EAAE,+CAA+C,oBAAoB,EAAE,4CAA4C,+BAA+B,EAAE,mCAAmC,sBAAsB,EAAE,4CAA4C,yBAAyB,eAAe,EAAE,sCAAsC,kBAAkB,EAAE,+BAA+B,qBAAqB,kBAAkB,6BAA6B,EAAE,wEAAwE,8BAA8B,EAAE,sDAAsD,0CAA0C,EAAE,wDAAwD,0CAA0C,EAAE,mBAAmB,uBAAuB,gBAAgB,aAAa,EAAE,mBAAmB,uBAAuB,cAAc,YAAY,gBAAgB,EAAE,qCAAqC,qBAAqB,oBAAoB,sBAAsB,EAAE,6CAA6C,8BAA8B,EAAE,G;;;;;;ACAjqE,yBAAyB,kBAAkB,gBAAgB,iBAAiB,uBAAuB,EAAE,G;;;;;;ACArG,yBAAyB,oBAAoB,kBAAkB,EAAE,uBAAuB,iCAAiC,EAAE,iBAAiB,oBAAoB,EAAE,G;;;;;;ACAlK,6BAA6B,eAAe,EAAE,UAAU,qBAAqB,EAAE,G;;;;;;ACA/E,yBAAyB,uBAAuB,EAAE,G;;;;;;ACAlD,yBAAyB,gBAAgB,mBAAmB,EAAE,iBAAiB,2BAA2B,EAAE,qBAAqB,mBAAmB,uBAAuB,qBAAqB,+CAA+C,qBAAqB,EAAE,cAAc,oBAAoB,qCAAqC,kBAAkB,EAAE,oBAAoB,uBAAuB,kBAAkB,iCAAiC,uBAAuB,EAAE,wBAAwB,2BAA2B,EAAE,uCAAuC,2BAA2B,EAAE,oCAAoC,gCAAgC,eAAe,EAAE,iBAAiB,qBAAqB,iBAAiB,EAAE,G;;;;;;ACA/tB,4BAA4B,mBAAmB,qBAAqB,uBAAuB,EAAE,yFAAyF,sBAAsB,EAAE,mBAAmB,uBAAuB,EAAE,wBAAwB,kBAAkB,EAAE,8CAA8C,wBAAwB,qBAAqB,EAAE,mBAAmB,kBAAkB,mCAAmC,EAAE,sBAAsB,qBAAqB,EAAE,yBAAyB,oBAAoB,EAAE,uGAAuG,sBAAsB,EAAE,G;;;;;;ACAxqB,4DAA4D,2BAA2B,qBAAqB,wBAAwB,oBAAoB,iBAAiB,iBAAiB,kBAAkB,6EAA6E,mCAAmC,kCAAkC,iCAAiC,8BAA8B,sCAAsC,mCAAmC,8BAA8B,wCAAwC,2BAA2B,6BAA6B,kBAAkB,qBAAqB,uEAAuE,oBAAoB,yBAAyB,yBAAyB,4BAA4B,gCAAgC,EAAE,cAAc,sBAAsB,gBAAgB,EAAE,G;;;;;;ACA54B;;;;;;;;ACAA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC/DA;;;;;;;ACAA;AACA;AACA,oCAAkC;AAClC,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACfA;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEA,kDAAoD;AAEvC,mBAAW,GAAW;IAC/B;QACI,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,iCAAc;KAC5B;CACJ,CAAC;;;;;;;;;;ACTF,4DAAsE;AAA7D,qFAAuB;;;;;;;;;;;;;;;;;;;ACAhC,oCAcuB;AA+DvB,IAAa,uBAAuB;IArDpC;QA0Dc,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,YAAO,GAAG,IAAI,mBAAY,EAAE,CAAC;IA+B3C,CAAC;IA3BG,6CAAW,GAAX,UAAY,OAAsB;QAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAoB,cAAM,gBAAS,EAAT,CAAS,CAAC,CAAC;YAC/E,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;QAC3D,CAAC;QACD,IAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5C,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACd,IAAM,SAAS,GAAG,WAAW,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC;YACrG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED,+CAAa,GAAb,UAAc,KAAa;QACvB,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,+CAAa,GAAb,UAAc,QAAgB,EAAE,KAAa;QACzC,EAAE,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;YAC/C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAChD,CAAC;IAEL,CAAC;IAEL,8BAAC;AAAD,CAAC;AArCY;IAAR,YAAK,EAAE;;uDAAiB;AAChB;IAAR,YAAK,EAAE;;6DAAsB;AACrB;IAAR,YAAK,EAAE;;wEAAkC;AACjC;IAAR,YAAK,EAAE;;iEAA2B;AACzB;IAAT,aAAM,EAAE;;yDAA+B;AAC9B;IAAT,aAAM,EAAE;;yDAA+B;AAC9B;IAAT,aAAM,EAAE;;wDAA8B;AAP9B,uBAAuB;IArDnC,gBAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,mBAAO,CAAC,GAAkC,CAAC;QACrD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAkC,CAAC,CAAC;QACrD,eAAe,EAAE,8BAAuB,CAAC,MAAM;QAC/C,qGAAqG;QACrG,UAAU,EAAE;YACR,cAAO,CAAC,YAAY,EAAE;gBAClB,YAAK,CAAC,iBAAiB,EAAE,YAAK,CAAC;oBAC3B,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,YAAK,CAAC,SAAS,EAAE,YAAK,CAAC;oBACnB,SAAS,EAAE,mBAAmB;oBAC9B,IAAI,EAAE,GAAG;iBACZ,CAAC,CAAC;gBACH,YAAK,CAAC,UAAU,EAAE,YAAK,CAAC;oBACpB,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,MAAM;iBACf,CAAC,CAAC;gBACH,iBAAU,CAAC,uCAAuC,EAAE;oBAChD,cAAO,CAAC,gBAAgB,EAAE,gBAAS,CAAC;wBAChC,YAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAC/D,YAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnE,CAAC,CAAC;iBACN,CAAC;gBACF,iBAAU,CAAC,uCAAuC,EAAE;oBAChD,cAAO,CAAC,gBAAgB,EAAE,gBAAS,CAAC;wBAChC,YAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,YAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnE,CAAC,CAAC;iBACN,CAAC;gBACF,iBAAU,CAAC,cAAc,EAAE;oBACvB,cAAO,CAAC,gBAAgB,EAAE,gBAAS,CAAC;wBAChC,YAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,YAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnE,CAAC,CAAC;iBACN,CAAC;gBACF,iBAAU,CAAC,eAAe,EAAE;oBACxB,cAAO,CAAC,gBAAgB,EAAE,gBAAS,CAAC;wBAChC,YAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,YAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBAClE,CAAC,CAAC;iBACN,CAAC;gBACF,iBAAU,CAAC,QAAQ,EAAE;oBACjB,cAAO,CAAC,iBAAiB,EAAE,gBAAS,CAAC;wBACjC,YAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChC,YAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnC,CAAC,CAAC;iBACN,CAAC;aACL,CAAC;SACL;KACJ,CAAC;GACW,uBAAuB,CAsCnC;AAtCY,0DAAuB;;;;;;;;;;;;;;;;;;;AC7EpC,oCAA2C;AAC3C,uCAAsD;AAEtD,0CAA6C;AAE7C,yBAAgC;AAChC,yBAA8B;AAC9B,yBAA+B;AAC/B,yBAAqC;AAErC,qCAAoC;AAIpC,mDAAwE;AAGxE,IAAa,eAAe;IAExB,yBAAoB,KAAsB,EAAU,MAAc;QAA9C,UAAK,GAAL,KAAK,CAAiB;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAEvE,qCAAW,GAAX;QAAA,iBAQC;QAPG,MAAM,CAAC,IAAI,CAAC,KAAK;aACZ,GAAG,CAAC,+BAAU,EAAE,CAAC;aACjB,EAAE,CAAC,UAAC,OAAiB;YAClB,IAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAM,IAAI,aAAM,CAAC,SAAS,EAAhB,CAAgB,CAAC,CAAC;YAC/D,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,SAAS,CAAC,cAAM,8BAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAApB,CAAoB,CAAC,CAAC;IAC/C,CAAC;IACL,sBAAC;AAAD,CAAC;AAbY,eAAe;IAD3B,iBAAU,EAAE;qCAGkB,aAAK,EAA4B,eAAM;GAFzD,eAAe,CAa3B;AAbY,0CAAe;;;;;;;;;;;;;;;;;;;ACjB5B,oCAWuB;AAEvB,qCAAoC;AAEpC,uCAAwE;AAGxE,wCAAuD;AAQvD,IAAa,qBAAqB;IAW9B,+BAAoB,KAAsB,EAAU,QAAkB;QAAlD,UAAK,GAAL,KAAK,CAAiB;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAR5D,kBAAa,GAAG,IAAI,mBAAY,EAAQ,CAAC;IAQuB,CAAC;IAE3E,2CAAW,GAAX,UAAY,OAAsB;QAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;QACD,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,0CAAU,GAAV;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IAED,4CAAY,GAAZ;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,+CAAe,GAAf;QACI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAa,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,8CAAc,GAAd,UAAe,IAAY;QACvB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3F,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAa,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,8CAAc,GAAd,UAAe,OAAe;QAC1B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACnG,MAAM,CAAC;QACX,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAa,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,8CAAc,GAAd;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;cAChC,6EAA6E;cAC7E,uFAAuF,CAAC;IAClG,CAAC;IAED,6CAAa,GAAb;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,oCAAoC,CAAC;IACjF,CAAC;IAED,mDAAmB,GAAnB;QACI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IACL,4BAAC;AAAD,CAAC;AArEY;IAAR,YAAK,EAAE;8BAAS,eAAM;qDAAC;AACf;IAAR,YAAK,EAAE;;wDAAoB;AAClB;IAAT,aAAM,EAAE;;4DAA0C;AAEhC;IAAlB,gBAAS,CAAC,MAAM,CAAC;8BAAa,iBAAU;yDAAC;AACvB;IAAlB,gBAAS,CAAC,MAAM,CAAC;8BAAa,iBAAU;yDAAC;AANjC,qBAAqB;IANjC,gBAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,mBAAO,CAAC,GAAgC,CAAC;QACnD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAgC,CAAC,CAAC;QACnD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAY6B,aAAK,EAA8B,eAAQ;GAX7D,qBAAqB,CAsEjC;AAtEY,sDAAqB;;;;;;;;;;;;;AC1BlC,mCAA2C;AAC3C,mCAA6C;AAC7C,oCAAiD;;;;;;;;;;;;;ACFjD,oCAAmC;;;;;;;;;;;;;;;;;;;ACAnC,oCAAuE;AAOvE,IAAa,eAAe;IAMxB;QAJU,WAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;QAKlC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,qCAAW,GAAX,UAAY,KAAa;QACrB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC;AAtBY;IAAR,YAAK,EAAE;;gDAAiB;AACf;IAAT,aAAM,EAAE;;+CAA6B;AAF7B,eAAe;IAL3B,gBAAS,CAAC;QACP,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,mBAAO,CAAC,GAAyB,CAAC;QAC5C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAyB,CAAC,CAAC;KAC/C,CAAC;;GACW,eAAe,CAuB3B;AAvBY,0CAAe;;;;;;;;;;ACP5B,gEAA6E;AAApE,+FAA0B;;;;;;;;;;;;;;;;;;;ACAnC,oCAA0F;AAE1F,6CAK8D;AAG9D,IAAK,OAKJ;AALD,WAAK,OAAO;IACR,6CAAQ;IACR,qCAAI;IACJ,uCAAK;IACL,uCAAK;AACT,CAAC,EALI,OAAO,KAAP,OAAO,QAKX;AAAA,CAAC;AAQF,IAAa,0BAA0B;IANvC;QASc,SAAI,GAAG,IAAI,mBAAY,EAAe,CAAC;QACvC,WAAM,GAAG,IAAI,mBAAY,EAAQ,CAAC;QAM5C,uFAAuF;QACvF,oEAAoE;QAC5D,YAAO,GAAG,OAAO,CAAC;IAuE9B,CAAC;IAtEG,sCAAsC;IACtC,iCAAiC;IAEjC,6CAAQ,GAAR;QACI,IAAI,WAAW,GAAgB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,8BAAe,EAAE,CAAC;QAC3F,IAAI,CAAC,mBAAmB,GAAG,IAAI,kCAAmB,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,IAAI,GAAG,GAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,kDAAa,GAAb;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,gDAAW,GAAX;QACI,IAAI,CAAC;YACD,IAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACxC,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACvB,yDAAyD;gBACzD,IAAM,GAAG,GAAG,IAAI,CAAC,WAAmC,CAAC;gBACrD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,0BAA0B;YAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,8CAAS,GAAT,UAAU,GAAY;QAClB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,+CAAU,GAAV,UAAW,MAA2B;QAClC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7B,eAAe;YACf,KAAK,8BAAe,CAAC,gBAAgB;gBACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACzB,cAAc;YACd,KAAK,8BAAe,CAAC,eAAe;gBAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,mBAAmB;YACnB,KAAK,8BAAe,CAAC,cAAc;gBAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5B,gBAAgB;YAChB,KAAK,8BAAe,CAAC,sBAAsB,CAAC;YAC5C,KAAK,8BAAe,CAAC,oBAAoB,CAAC;YAC1C,KAAK,8BAAe,CAAC,sBAAsB;gBACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACzB;gBACI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChC,CAAC;IACL,CAAC;IAED,0DAAqB,GAArB,UAAsB,GAAY;QAC9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACV,KAAK,OAAO,CAAC,KAAK;gBACd,MAAM,CAAC,8BAAe,CAAC,gBAAgB,CAAC;YAC5C,KAAK,OAAO,CAAC,QAAQ;gBACjB,MAAM,CAAC,8BAAe,CAAC,cAAc,CAAC;YAC1C,KAAK,OAAO,CAAC,KAAK;gBACd,MAAM,CAAC,8BAAe,CAAC,sBAAsB,CAAC;YAClD,KAAK,OAAO,CAAC,IAAI;gBACb,MAAM,CAAC,8BAAe,CAAC,eAAe,CAAC;YAC3C;gBACI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEL,iCAAC;AAAD,CAAC;AAlFY;IAAR,YAAK,EAAE;8BAAc,0BAAW;+DAAC;AAExB;IAAT,aAAM,EAAE;;wDAAwC;AACvC;IAAT,aAAM,EAAE;;0DAAmC;AAE1B;IAAjB,gBAAS,CAAC,KAAK,CAAC;;+DAAkB;AAN1B,0BAA0B;IANtC,gBAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,mBAAO,CAAC,GAAsC,CAAC;QACzD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAsC,CAAC,CAAC;QACzD,IAAI,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;KAC3C,CAAC;GACW,0BAA0B,CAmFtC;AAnFY,gEAA0B;;;;;;;;;;ACvBvC,wDAAiE;AAAxD,+EAAsB;;;;;;;;;;;;;;;;;;;ACA/B,oCAOuB;AAEvB,6CAAiG;AAEjG,IAAM,aAAa,GAAG,GAAG,CAAC,CAAC,aAAa;AASxC,IAAa,sBAAsB;IAO/B,sCAAsC;IAEtC;QAJA,oEAAoE;QAC5D,YAAO,GAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAG3C,CAAC;IAEjB,yCAAQ,GAAR;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC;IAC5F,CAAC;IAED,yCAAQ,GAAR,UAAS,KAAa;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAC/C,CAAC;IACL,6BAAC;AAAD,CAAC;AAlBY;IAAR,YAAK,EAAE;8BAAc,kCAAmB;2DAAC;AACZ;IAA7B,gBAAS,CAAC,iBAAiB,CAAC;8BAAQ,iBAAU;qDAAC;AAFvC,sBAAsB;IAPlC,gBAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,mBAAO,CAAC,GAA8B,CAAC;QACjD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA8B,CAAC,CAAC;QACjD,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;QACjC,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,sBAAsB,CAmBlC;AAnBY,wDAAsB;;;;;;;;;;ACpBnC,wCAAiD;AAAxC,+DAAsB;AAC/B,sCAA6C;AAApC,yDAAoB;AAC7B,wCAAiD;AAAxC,+DAAsB;AAC/B,uCAA+C;AAAtC,4DAAqB;;;;;;;;;;ACH9B,sDAA6D;AAApD,yEAAoB;;;;;;;;;;;;;;;;;;;ACA7B,oCAAoE;AAGpE,6CAAiH;AACjH,qCAA+D;AAC/D,qCAA8C;AAE9C,IAAK,OAIJ;AAJD,WAAK,OAAO;IACR,6CAAQ;IACR,qCAAI;IACJ,2CAAO;AACX,CAAC,EAJI,OAAO,KAAP,OAAO,QAIX;AAWD,IAAa,oBAAoB;IATjC;QAiBI,uFAAuF;QACvF,oEAAoE;QAC5D,YAAO,GAAG,OAAO,CAAC;IAyC9B,CAAC;IAxCG,sCAAsC;IACtC,iCAAiC;IAEjC,uCAAQ,GAAR;QACI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,wCAAS,GAAT,UAAU,GAAY;QAClB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,yCAAU,GAAV,UAAW,MAA2B;QAClC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,CAAC;IACL,CAAC;IAED,4CAAa,GAAb,UAAc,GAAY;QACtB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACV,KAAK,OAAO,CAAC,QAAQ;gBACjB,MAAM,CAAC,6BAAc,CAAC,KAAK,CAAC;YAChC,KAAK,OAAO,CAAC,IAAI;gBACb,MAAM,CAAC,6BAAc,CAAC,IAAI,CAAC;YAC/B,KAAK,OAAO,CAAC,OAAO;gBAChB,MAAM,CAAC,6BAAc,CAAC,OAAO,CAAC;YAClC;gBACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,2CAAY,GAAZ;QACI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAEL,2BAAC;AAAD,CAAC;AAlDY;IAAR,YAAK,EAAE;8BAAc,kCAAmB;yDAAC;AACxB;IAAjB,gBAAS,CAAC,KAAK,CAAC;8BAAc,SAAG;yDAAC;AACT;IAAzB,gBAAS,CAAC,aAAa,CAAC;8BAAc,0BAAoB;yDAAC;AAHnD,oBAAoB;IAThC,gBAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,MAAM,EAAE;YACJ,mBAAO,CAAC,GAA0C,CAAC;YACnD,mBAAO,CAAC,GAA4B,CAAC;SACxC;QACD,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;KACpC,CAAC;GACW,oBAAoB,CAmDhC;AAnDY,oDAAoB;;;;;;;;;;ACtBjC,wDAAiE;AAAxD,+EAAsB;;;;;;;;;;;;;;;;;;;ACA/B,oCAAoE;AAEpE,6CAAkI;AAClI,qCAA8C;AAE9C,IAAK,OAMJ;AAND,WAAK,OAAO;IACR,qCAAI;IACJ,yCAAM;IACN,uCAAK;IACL,qCAAI;IACJ,2CAAO;AACX,CAAC,EANI,OAAO,KAAP,OAAO,QAMX;AAWD,IAAa,sBAAsB;IAU/B,sCAAsC;IACtC,iCAAiC;IAEjC;QANA,uFAAuF;QACvF,oEAAoE;QAC5D,YAAO,GAAG,OAAO,CAAC;QAKtB,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,yCAAQ,GAAR;QACI,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxB,IAAM,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,0CAAS,GAAT,UAAU,GAAY;QAClB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAChE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,8BAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,8CAAa,GAAb,UAAc,KAAa;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,0CAAS,GAAT,UAAU,KAAa;QACnB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,0CAAS,GAAT,UAAU,GAAY;QAClB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACV,KAAK,OAAO,CAAC,KAAK;gBACd,MAAM,CAAC,6BAAc,CAAC,KAAK,CAAC;YAChC,KAAK,OAAO,CAAC,IAAI;gBACb,MAAM,CAAC,6BAAc,CAAC,IAAI,CAAC;YAC/B,KAAK,OAAO,CAAC,OAAO;gBAChB,MAAM,CAAC,6BAAc,CAAC,OAAO,CAAC;YAClC;gBACI,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,2CAAU,GAAV,UAAW,MAA2B;QAClC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,KAAK,8BAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACpE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YACzB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,KAAK,8BAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,KAAK,8BAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,mDAAkB,GAAlB,UAAmB,GAAY;QAC3B,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,8BAAe,CAAC,sBAAsB,CAAC;QAClD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,8BAAe,CAAC,oBAAoB,CAAC;QAChD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,8BAAe,CAAC,sBAAsB,CAAC;QAClD,CAAC;IACL,CAAC;IAEL,6BAAC;AAAD,CAAC;AAnFY;IAAR,YAAK,EAAE;8BAAc,kCAAmB;2DAAC;AACxB;IAAjB,gBAAS,CAAC,KAAK,CAAC;8BAAc,SAAG;2DAAC;AAF1B,sBAAsB;IATlC,gBAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,mBAAO,CAAC,GAA8B,CAAC;QACjD,MAAM,EAAE;YACJ,mBAAO,CAAC,GAA0C,CAAC;YACnD,mBAAO,CAAC,GAA8B,CAAC;SAC1C;QACD,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;KACpC,CAAC;;GACW,sBAAsB,CAoFlC;AApFY,wDAAsB;;;;;;;;;;ACtBnC,uDAA+D;AAAtD,4EAAqB;;;;;;;;;;;;;;;;;;;ACA9B,oCAOuB;AAEvB,6CAAiG;AAQjG,IAAa,qBAAqB;IAI9B,+BAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAE1C,+CAAe,GAAf;QACI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,4CAAY,GAAZ;QACI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IAC3D,CAAC;IAEL,4BAAC;AAAD,CAAC;AAbY;IAAR,YAAK,EAAE;8BAAc,kCAAmB;0DAAC;AACb;IAA5B,gBAAS,CAAC,gBAAgB,CAAC;8BAAQ,iBAAU;oDAAC;AAFtC,qBAAqB;IANjC,gBAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,mBAAO,CAAC,GAA6B,CAAC;QAChD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA6B,CAAC,CAAC;QAChD,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;KACnC,CAAC;qCAKgC,eAAQ;GAJ7B,qBAAqB,CAcjC;AAdY,sDAAqB;;;;;;;;;;;;;;;;;;;ACjBlC,oCAGuB;AAEvB,qCAAoC;AAEpC,uCAAsE;AAEtE,wCAAsD;AAStD,IAAa,oBAAoB;IAK7B,8BAAoB,KAAsB,EAAU,QAAkB;QAAlD,UAAK,GAAL,KAAK,CAAiB;QAAU,aAAQ,GAAR,QAAQ,CAAU;IAAI,CAAC;IAE3E,0CAAW,GAAX;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED,8CAAe,GAAf;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED,0CAAW,GAAX;QACI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,6CAAc,GAAd;QACI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,4CAAa,GAAb,UAAc,IAAY;QACtB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzF,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAY,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAEL,2BAAC;AAAD,CAAC;AAnCY;IAAR,YAAK,EAAE;8BAAQ,aAAK;mDAAC;AACb;IAAR,YAAK,EAAE;;mDAAgB;AACA;IAAvB,gBAAS,CAAC,WAAW,CAAC;8BAAY,iBAAU;uDAAC;AAHrC,oBAAoB;IANhC,gBAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,mBAAO,CAAC,GAA+B,CAAC;QAClD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA+B,CAAC,CAAC;QAClD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAM6B,aAAK,EAA8B,eAAQ;GAL7D,oBAAoB,CAoChC;AApCY,oDAAoB;;;;;;;;;;AClBjC,uDAA4D;AAAnD,sEAAkB;;;;;;;;;;;;;;;;;;;ACA3B,oCAauB;AAEvB,8CAAoF;AACpF,6CAQ8D;AAE9D,+CAAiE;AAmBjE,IAAa,kBAAkB;IAgB3B,4BAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAV/B,SAAI,GAAG,IAAI,mBAAY,EAAe,CAAC;QACvC,WAAM,GAAG,IAAI,mBAAY,EAAQ,CAAC;QAClC,SAAI,GAAG,IAAI,mBAAY,EAAQ,CAAC;QAChC,WAAM,GAAG,IAAI,mBAAY,EAAQ,CAAC;QAKpC,YAAO,GAAY,KAAK,CAAC;IAEY,CAAC;IAE9C,qCAAQ,GAAR;QACI,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;IACL,CAAC;IAED,wCAAW,GAAX,UAAY,OAAsB;QAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAED,6CAAgB,GAAhB,UAAiB,YAAyB;QACtC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,uCAAU,GAAV;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,uCAAU,GAAV;QACI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,yCAAY,GAAZ;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEO,uCAAU,GAAlB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,+BAAgB,CAAC,CAAC,CAAC;YACtD,QAAQ;YACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,MAAM,GAAqB,IAAI,CAAC,WAA+B,CAAC;YACpE,IAAM,OAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,GAAG,cAAY,OAAK,MAAG,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,8BAAe,CAAC,CAAC,CAAC;YACrD,aAAa;YACb,IAAI,MAAM,GAAoB,IAAI,CAAC,WAA8B,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,iBAAe,MAAM,CAAC,IAAM,CAAC;QAC9C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,6BAAc,CAAC,CAAC,CAAC;YACpD,4BAA4B;YAC5B,IAAM,MAAM,GAAmB,IAAI,CAAC,WAA6B,CAAC;YAClE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,qCAAsB,CAAC,CAAC,CAAC;YAC5D,qCAAqC;YACrC,IAAM,MAAM,GAA2B,IAAI,CAAC,WAAqC,CAAC;YAClF,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,mCAAoB,IAAI,IAAI,CAAC,WAAW,YAAY,qCAAsB,CAAC,CAAC,CAAC;YAChH,0BAA0B;YAC1B,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC;QACnD,CAAC;IACL,CAAC;IAEO,gDAAmB,GAA3B,UAA4B,MAAsB;QAC9C,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;YAChC,MAAM,CAAC;QACX,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACzB,YAAY;YACZ,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC/B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC/B,WAAW;YACX,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAClC,cAAc;YACd,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;QACjC,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACvB,IAAM,QAAQ,GAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAE,SAAS,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACxB,+BAA+B;YAC/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,2BAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,2BAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvE,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,2BAAY,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,4DAA+B,GAAvC,UAAwC,MAAmB;QACvD,IAAI,WAAgB,CAAC;QACrB,EAAE,CAAC,CAAC,MAAM,YAAY,mCAAoB,CAAC,CAAC,CAAC;YACzC,qBAAqB;YACrB,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;YAC5B,WAAW,GAAG,IAAI,CAAC,WAAmC,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,eAAe;YACf,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,WAAW,GAAG,IAAI,CAAC,WAAqC,CAAC;QAC7D,CAAC;QAED,IAAI,OAAgB,CAAC;QACrB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,IAAI,SAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,YAAM,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAE,CAAC;YACzF,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,IAAI,OAAI,OAAO,GAAG,KAAK,GAAG,IAAI,UAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,YAAM,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAE,CAAC;QACjH,CAAC;IACL,CAAC;IAEO,wDAA2B,GAAnC,UAAoC,MAA8B;QAC9D,mCAAmC;QACnC,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC;QACxC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;QACvC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,wBAAwB,CAAC;QAC1C,CAAC;QAED,IAAM,YAAY,GAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAM,eAAe,GAAc,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5D,IAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,eAAe,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,GAAG;YACpC,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACL,yBAAC;AAAD,CAAC;AA1KY;IAAR,YAAK,EAAE;8BAAc,0BAAW;uDAAC;AACzB;IAAR,YAAK,EAAE;;oDAAmB;AAClB;IAAR,YAAK,EAAE;;qDAAoB;AACnB;IAAR,YAAK,EAAE;;mDAAkB;AAEhB;IAAT,aAAM,EAAE;;gDAAwC;AACvC;IAAT,aAAM,EAAE;;kDAAmC;AAClC;IAAT,aAAM,EAAE;;gDAAiC;AAChC;IAAT,aAAM,EAAE;;kDAAmC;AATnC,kBAAkB;IAjB9B,gBAAS,CAAC;QACP,UAAU,EAAE;YACR,cAAO,CAAC,SAAS,EAAE;gBACf,YAAK,CAAC,UAAU,EAAE,YAAK,CAAC;oBACpB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,YAAK,CAAC,QAAQ,EAAI,YAAK,CAAC;oBACpB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,iBAAU,CAAC,qBAAqB,EAAE,cAAO,CAAC,gBAAgB,CAAC,CAAC;aAC/D,CAAC;SACL;QACD,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,mBAAO,CAAC,GAA6B,CAAC;QAChD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA6B,CAAC,CAAC;QAChD,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;KAClC,CAAC;qCAiB8B,8BAAa;GAhBhC,kBAAkB,CA2K9B;AA3KY,gDAAkB;;;;;;;;;;;;;;;;;;;AC7C/B,oCAauB;AAEvB,6CAAyD;AAEzD,uCAAsE;AAEtE,uCAAgD;AA6BhD,IAAa,kBAAkB;IAc3B,4BAAoB,cAA8B;QAAlD,iBAqBC;QArBmB,mBAAc,GAAd,cAAc,CAAgB;QAVxC,QAAG,GAAG,IAAI,mBAAY,EAAE,CAAC;QACzB,SAAI,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC1B,WAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC5B,YAAO,GAAG,IAAI,mBAAY,EAAE,CAAC;QAE/B,aAAQ,GAAU,SAAS,CAAC;QAC5B,eAAU,GAAW,SAAS,CAAC;QAE/B,YAAO,GAAY,KAAK,CAAC;QAG7B,yDAAyD;QACzD,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE;YACtC,KAAK,EAAE,UAAU,EAAO,EAAE,SAAc,EAAE,MAAW;gBACjD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACxD,CAAC;SACJ,CAAC,CAAC;QAEH,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,KAAU;YACrC,KAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,KAAU;YACrC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACX,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBACd,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,EAAE;oBACtB,QAAQ,EAAE,KAAI,CAAC,SAAS;oBACxB,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC;iBACjD,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0CAAa,GAAb;QACI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,0CAAa,GAAb;QACI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,yCAAY,GAAZ,UAAa,WAAwB;QACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,MAAM,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,uCAAU,GAAV,UAAW,KAAa;QACpB,iEAAiE;QACjE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,yCAAY,GAAZ;QACI,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,uCAAU,GAAV,UAAW,WAAwB,EAAE,KAAa;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,yCAAY,GAAZ,UAAa,WAAwB,EAAE,KAAa;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,6CAAgB,GAAxB;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5D,CAAC;IACL,CAAC;IACL,yBAAC;AAAD,CAAC;AA7FY;IAAR,YAAK,EAAE;8BAAQ,aAAK;iDAAC;AAC8B;IAAnD,mBAAY,CAAC,iBAAU,CAAC,cAAM,iCAAkB,EAAlB,CAAkB,CAAC,CAAC;8BAAa,gBAAS;sDAAqB;AAEpF;IAAT,aAAM,EAAE;;+CAA0B;AACzB;IAAT,aAAM,EAAE;;gDAA2B;AAC1B;IAAT,aAAM,EAAE;;kDAA6B;AAC5B;IAAT,aAAM,EAAE;;mDAA8B;AAP9B,kBAAkB;IA3B9B,gBAAS,CAAC;QACP,UAAU,EAAE;YACR,cAAO,CAAC,SAAS,EAAE;gBACf,YAAK,CAAC,UAAU,EAAE,YAAK,CAAC;oBACpB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;oBAClB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,iBAAU,CAAC,qBAAqB,EAAE,cAAO,CAAC,gBAAgB,CAAC,CAAC;aAC/D,CAAC;YACF,cAAO,CAAC,YAAY,EAAE;gBAClB,YAAK,CAAC,MAAM,EAAE,YAAK,CAAC;oBAChB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;oBAClB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,iBAAU,CAAC,QAAQ,EAAE,cAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,iBAAU,CAAC,QAAQ,EAAE,cAAO,CAAC,gBAAgB,CAAC,CAAC;aAClD,CAAC;SACL;QACD,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,mBAAO,CAAC,GAA6B,CAAC;QAChD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA6B,CAAC,CAAC;QAChD,aAAa,EAAE,CAAC,4BAAc,CAAC;KAClC,CAAC;qCAesC,4BAAc;GAdzC,kBAAkB,CA8F9B;AA9FY,gDAAkB;;;;;;;;;;AC9C/B,sDAAiE;AACjE,2CAAyE;AAE5D,mBAAW,GAAW;IAC/B;QACI,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,kCAAsB;QACjC,WAAW,EAAE,CAAC,8BAAkB,CAAC;KACpC;IACD;QACI,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,yCAAkB;KAChC;IACD;QACI,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,yCAAkB;KAChC;CACJ,CAAC;;;;;;;;;;;;;;;;;;;ACnBF,oCAA2C;AAC3C,uCAAsD;AAItD,yBAA+B;AAC/B,wBAA+B;AAE/B,qCAAoC;AAGpC,mDAAuE;AAIvE,IAAa,kBAAkB;IAE3B,4BAAoB,KAAsB,EAAU,MAAc;QAA9C,UAAK,GAAL,KAAK,CAAiB;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAEvE,wCAAW,GAAX;QAAA,iBAUC;QATG,MAAM,CAAC,IAAI,CAAC,KAAK;aACZ,GAAG,CAAC,8BAAS,EAAE,CAAC;aAChB,GAAG,CAAC,UAAC,MAAe;YACjB,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACZ,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,CAAC,CAAC,SAAS,CAAC;QACtB,CAAC,CAAC,CAAC;IACX,CAAC;IACL,yBAAC;AAAD,CAAC;AAfY,kBAAkB;IAD9B,iBAAU,EAAE;qCAGkB,aAAK,EAA4B,eAAM;GAFzD,kBAAkB,CAe9B;AAfY,gDAAkB;;;;;;;;;;;;;;;;ACf/B,oCAA0C;AAO1C,IAAa,sBAAsB;IAAnC;IAAsC,CAAC;IAAD,6BAAC;AAAD,CAAC;AAA1B,sBAAsB;IALlC,gBAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,QAAQ,EAAE,mBAAO,CAAC,GAAkC,CAAC;QACrD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAkC,CAAC,CAAC;KACxD,CAAC;GACW,sBAAsB,CAAI;AAA1B,wDAAsB;;;;;;;;;;;;;ACPnC,oCAAyC;;;;;;;;;;;;;;;;;;;ACAzC,oCAA0C;AAO1C,IAAa,qBAAqB;IAE9B;IACA,CAAC;IACL,4BAAC;AAAD,CAAC;AAJY,qBAAqB;IALjC,gBAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,mBAAO,CAAC,GAA+B,CAAC;QAClD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA+B,CAAC,CAAC;KACrD,CAAC;;GACW,qBAAqB,CAIjC;AAJY,sDAAqB;;;;;;;;;;;;;;;;;;;ACPlC,oCAGuB;AAEvB,qCAAoC;AAKpC,2CAOyD;AACzD,uCAAqE;AAErE,oCAAgC;AAGhC,mDAAqE;AAErE,IAAK,OAOJ;AAPD,WAAK,OAAO;IACR,6CAAQ;IACR,uCAAK;IACL,uCAAK;IACL,uCAAK;IACL,yCAAM;IACN,qCAAI;AACR,CAAC,EAPI,OAAO,KAAP,OAAO,QAOX;AAoCD,IAAa,gBAAgB;IAwBzB,0BAAoB,KAAsB;QAA1C,iBAMC;QANmB,UAAK,GAAL,KAAK,CAAiB;QAhBhC,WAAM,GAAG,IAAI,mBAAY,EAAO,CAAC;QACjC,UAAK,GAAG,IAAI,mBAAY,EAAa,CAAC;QAKzC,YAAO,GAAG,OAAO,CAAC;QAIjB,cAAS,GAAY,KAAK,CAAC;QAC3B,eAAU,GAAY,KAAK,CAAC;QAC5B,gBAAW,GAAW,CAAC,CAAC;QACxB,iBAAY,GAAW,CAAC,CAAC;QAI7B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,+BAAU,EAAE,CAAC;aAClC,GAAG,CAAC,UAAC,OAAiB;YACnB,cAAO,CAAC,MAAM,CAAC,UAAC,MAAc,IAAK,YAAI,CAAC,aAAa,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,EAAvD,CAAuD,CAAC;QAA3F,CAA2F,CAC9F,CAAC;IACV,CAAC;IAED,sCAAW,GAAX,UAAY,MAAqB;QAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,GAAG,SAAS,CAAC;YAEjB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,YAAY,4BAAe,CAAC,CAAC,CAAC;gBACnD,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC3B,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,YAAY,8BAAiB,CAAC,CAAC,CAAC;gBAC5D,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,YAAY,wBAAW,CAAC,CAAC,CAAC;gBACtD,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,YAAY,4BAAe,CAAC,CAAC,CAAC;gBAC1D,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;YACxB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,YAAY,+BAAkB,CAAC,CAAC,CAAC;gBAC7D,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YACzB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpB,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YACnC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,wCAAa,GAAb;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,qCAAU,GAAV;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC;gBACD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACT,0BAA0B;gBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;IAGD,mCAAQ,GAAR;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,oCAAS,GAAT,UAAU,GAAY;QAClB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,oCAAS,GAAT;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAEO,4CAAiB,GAAzB;QACI,IAAM,UAAU,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,gDAAgD;QACzG,IAAM,OAAO,GAAgB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC5D,IAAI,OAAO,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE3E,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAEzF,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACnF,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACvF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAChC,CAAC;IACL,uBAAC;AAAD,CAAC;AAlHY;IAAR,YAAK,EAAE;8BAAmB,sBAAS;0DAAC;AAC5B;IAAR,YAAK,EAAE;8BAAgB,eAAM;uDAAC;AACtB;IAAR,YAAK,EAAE;;sDAAsB;AACrB;IAAR,YAAK,EAAE;;qDAAyB;AACxB;IAAR,YAAK,EAAE;;sDAA0B;AACzB;IAAR,YAAK,EAAE;;iDAAkB;AAEhB;IAAT,aAAM,EAAE;;gDAAkC;AACjC;IAAT,aAAM,EAAE;;+CAAuC;AAE9B;IAAjB,gBAAS,CAAC,KAAK,CAAC;8BAAc,SAAG;qDAAC;AACb;IAArB,gBAAS,CAAC,SAAS,CAAC;8BAAc,iBAAU;qDAAC;AAuE9C;IADC,mBAAY,CAAC,gBAAgB,CAAC;;;;gDAG9B;AArFQ,gBAAgB;IAlC5B,gBAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,mBAAO,CAAC,GAA0B,CAAC;QAC7C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA0B,CAAC,CAAC;QAC7C,UAAU,EAAE;YACR,cAAO,CAAC,SAAS,EAAE;gBACf,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;oBAClB,SAAS,EAAE,kBAAkB;oBAC7B,UAAU,EAAE,QAAQ;oBACpB,OAAO,EAAE,CAAC;iBACb,CAAC,CAAC;gBACH,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;oBAClB,SAAS,EAAE,eAAe;oBAC1B,UAAU,EAAE,SAAS;oBACrB,OAAO,EAAE,CAAC;iBACb,CAAC,CAAC;gBACH,iBAAU,CAAC,kBAAkB,EAAE;oBAC3B,cAAO,CAAC,gBAAgB,EAAE,gBAAS,CAAC;wBAChC,YAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBACnF,YAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACxF,CAAC,CAAC;iBACN,CAAC;gBACF,iBAAU,CAAC,kBAAkB,EAAE;oBAC3B,YAAK,CAAC;wBACF,UAAU,EAAE,SAAS;qBACxB,CAAC;oBACF,cAAO,CAAC,gBAAgB,EAAE,gBAAS,CAAC;wBAChC,YAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAC/D,YAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBAC/D,CAAC,CAAC;iBACN,CAAC;aACL,CAAC;SACL;KACJ,CAAC;qCAyB6B,aAAK;GAxBvB,gBAAgB,CAmH5B;AAnHY,4CAAgB;;;;;;;;;;;;;ACpE7B,oCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAvC,oCAAmH;AAInH,2CAAsG;AAEtG,oCAA6B;AAQ7B,IAAa,kBAAkB;IAAS,sCAAG;IAOvC;QAAA,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,aAAa,GAAG,EAAE,CAAC;;IAC5B,CAAC;IAED,qCAAQ,GAAR;QACI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO;aAC5B,GAAG,CAAC,UAAC,MAAc;YAChB,MAAM,CAAC;gBACH,EAAE,EAAE,MAAM,CAAC,YAAY;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC;QACN,CAAC,CAAC,CAAC;QACP,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,wCAAW,GAAX;QACI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,kEAAkE;IAClE,qCAAQ,GAAR,UAAS,KAAU;QACf,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAc,IAAK,aAAM,CAAC,YAAY,KAAK,KAAK,CAAC,KAAK,EAAnC,CAAmC,CAAC,CAAC;QACrG,CAAC;IACL,CAAC;IAED,2CAAc,GAAd;QACI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IACjC,CAAC;IAED,0CAAa,GAAb,UAAc,SAAoB;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,+BAAkB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QAED,IAAM,kBAAkB,GAA2C,SAAS,CAAC;QAC7E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO;aAC7B,IAAI,CAAC,UAAC,MAAc,IAAK,aAAM,CAAC,YAAY,KAAK,kBAAkB,CAAC,kBAAkB,EAA7D,CAA6D,CAAC,CAAC;IACjG,CAAC;IAED,wCAAW,GAAX;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QAED,IAAM,YAAY,GAAG,IAAI,+BAAkB,EAAE,CAAC;QAC9C,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;QACnE,MAAM,CAAC,YAAY,CAAC;IACxB,CAAC;IACL,yBAAC;AAAD,CAAC,CA9DuC,SAAG,GA8D1C;AA7DY;IAAR,YAAK,EAAE;8BAAmB,sBAAS;4DAAC;AAC5B;IAAR,YAAK,EAAE;;mDAAmB;AAFlB,kBAAkB;IAN9B,gBAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,mBAAO,CAAC,GAA6B,CAAC;QAChD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA6B,CAAC,CAAC;QAChD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,kBAAkB,CA8D9B;AA9DY,gDAAkB;;;;;;;;;;;;;ACd/B,oCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAzC,oCAAkF;AAIlF,2CAAmG;AAEnG,oCAA6B;AAC7B,+CAAoE;AAOpE,IAAa,oBAAoB;IAAS,wCAAG;IAiBzC,8BAAoB,MAAqB;QAAzC,YACI,iBAAO,SAyBV;QA1BmB,YAAM,GAAN,MAAM,CAAe;QAoGzC,4BAAsB,GAA4B,UAAC,KAAwB;YACvE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACtB,CAAC;YAED,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnD,MAAM,CAAC,MAAM,CACT,6BAA6B;sBACvB,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS;sBACjC,sCAAsC;sBACtC,KAAK,CAAC,UAAU,CAAC,WAAW;sBAC5B,SAAS;oBACf,SAAS,CACZ,CAAC;YACN,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,MAAM,CAAC,6BAA6B,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC;QAnHG,KAAI,CAAC,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,KAAI,CAAC,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5D,KAAI,CAAC,cAAc,GAAG,CAAC;gBACnB,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,MAAM;aACf,CAAC,CAAC;QACH,KAAI,CAAC,cAAc,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAO,CAAC,GAA8B,CAAC,CAAC,CAAC;QAC1F,KAAI,CAAC,eAAe,GAAG,mBAAO,CAAC,GAA8B,CAAC,CAAC;QAC/D,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,KAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,KAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;QACjC,KAAI,CAAC,OAAO,GAAG;YACX,cAAc,EAAE,KAAI,CAAC,sBAAsB;YAC3C,OAAO,EAAE,UAAC,IAAY,EAAE,IAAY,EAAE,IAAuB;gBACzD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEhE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC3D,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvF,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC;;IACN,CAAC;IAED,0CAAW,GAAX;QACI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,6CAAc,GAAd,UAAe,eAAiC;QAC5C,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YACnB,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,GAAG,CAAC,IAAI,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC1G,CAAC;IAED,4CAAa,GAAb,UAAc,KAAwD;QAClE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAC/B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,4CAAa,GAAb,UAAc,SAAoB;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,4BAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,eAAe,GAAqC,SAAS,CAAC;QAClE,mBAAmB;QACnB,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,CAAC,CAAC;QAE9C,IAAI,mBAAmB,GAAW,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAE5D,oBAAoB;QACpB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9G,CAAC;QAED,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,mBAAmB,EAAE,CAAC,GAAG,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAChG,IAAI,KAAK,GAAW,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;YACxE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACvF,CAAC;QAED,0BAA0B;QAC1B,EAAE,CAAC,CAAC,eAAe,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,0CAAW,GAAX;QACI,IAAI,eAAe,GAAoB,IAAI,4BAAe,EAAE,CAAC;QAC7D,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEzC,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,GAAG,CAAC,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;QAC/F,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACxC,eAAe,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,KAAK,CAAC,CAAC;cAC9D,SAAS;cACT,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE9D,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,eAAe,CAAC;QAC3B,CAAC;IACL,CAAC;IAqBD,6CAAc,GAAd,UAAe,KAAc,EAAE,KAAa;QACxC,IAAI,eAAe,GAAc,KAAK,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC9F,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,gDAAiB,GAAjB,UAAkB,KAAsB;QACpC,IAAI,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;IAC/C,CAAC;IAED,+CAAgB,GAAhB,UAAiB,KAAsB;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IACL,2BAAC;AAAD,CAAC,CAvJyC,SAAG,GAuJ5C;AAtJY;IAAR,YAAK,EAAE;8BAAmB,sBAAS;8DAAC;AAC5B;IAAR,YAAK,EAAE;;8DAA2B;AAF1B,oBAAoB;IALhC,gBAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,mBAAO,CAAC,GAA+B,CAAC;QAClD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA+B,CAAC,CAAC;KACrD,CAAC;qCAkB8B,8BAAa;GAjBhC,oBAAoB,CAuJhC;AAvJY,oDAAoB;;;;;;;;;;;;;;ACdjC,oCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAtC,oCAA8G;AAE9G,2CAAgH;AAEhH,oCAA6B;AAO7B,IAAa,iBAAiB;IAAS,qCAAG;IAmCtC;QAAA,YACI,iBAAO,SAGV;QAjCD,gBAAU,GAAoC;YAC1C;gBACI,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,UAAU;aACnB;YACD;gBACI,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,QAAQ;aACjB;SACJ,CAAC;QAEF,eAAS,GAAmC;YACxC;gBACI,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,KAAK;aACd;YACD;gBACI,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,IAAI;aACb;YACD;gBACI,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,OAAO;aAChB;SACJ,CAAC;QAOE,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAI,CAAC,KAAK,GAAG,sBAAS,CAAC,GAAG,CAAC;;IAC/B,CAAC;IAED,uCAAW,GAAX,UAAY,OAAsB;QAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9C,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,0CAAc,GAAd;QACI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC3B,CAAC;IAED,yCAAa,GAAb,UAAc,SAAoB;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,8BAAiB,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,iBAAiB,GAAyC,SAAS,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,uCAAW,GAAX;QACI,IAAI,SAAS,GAAG,IAAI,8BAAiB,EAAE,CAAC;QACxC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1C,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IAED,yCAAa,GAAb,UAAc,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC;IACnC,CAAC;IAED,wCAAY,GAAZ,UAAa,KAAa;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC;IACxB,CAAC;IACL,wBAAC;AAAD,CAAC,CArFsC,SAAG,GAqFzC;AApFY;IAAR,YAAK,EAAE;8BAAmB,sBAAS;2DAAC;AAC5B;IAAR,YAAK,EAAE;;uDAAsB;AAEA;IAA7B,kBAAW,CAAC,eAAe,CAAC;;oDAAoB;AAJxC,iBAAiB;IAL7B,gBAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA4B,CAAC,CAAC;KAClD,CAAC;;GACW,iBAAiB,CAqF7B;AArFY,8CAAiB;;;;;;;;;;;;;ACX9B,oCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAtC,oCAAqG;AAErG,qCAAoC;AAMpC,2CAAmG;AAGnG,oCAA6B;AAG7B,mDAA0E;AAO1E,IAAa,iBAAiB;IAAS,qCAAG;IAQtC,2BAAoB,KAAsB;QAA1C,YACI,iBAAO,SAKV;QANmB,WAAK,GAAL,KAAK,CAAiB;QAEtC,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,8BAAS,EAAE,CAAC;aACrC,SAAS,CAAC,UAAC,MAAe,IAAK,YAAI,CAAC,MAAM,GAAG,MAAM,EAApB,CAAoB,CAAC,CAAC;QAC1D,KAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;;IAChC,CAAC;IAED,oCAAQ,GAAR;QACI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,KAAY,EAAE,KAAa;YACrE,MAAM,CAAC;gBACH,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;aACnB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,uCAAW,GAAX;QACI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,kEAAkE;IAClE,oCAAQ,GAAR,UAAS,KAAU;QACf,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,0CAAc,GAAd;QACI,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,yCAAa,GAAb,UAAc,SAAoB;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,4BAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,IAAM,eAAe,GAAqC,SAAS,CAAC;QACpE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAK,IAAI,sBAAe,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,EAApC,CAAoC,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,uCAAW,GAAX;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAClE,CAAC;QAED,IAAM,YAAY,GAAG,IAAI,4BAAe,EAAE,CAAC;QAC3C,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,YAAY,CAAC;IACxB,CAAC;IAED,uCAAW,GAAX;QACI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IACL,wBAAC;AAAD,CAAC,CA7DsC,SAAG,GA6DzC;AA5DY;IAAR,YAAK,EAAE;8BAAmB,sBAAS;2DAAC;AAD5B,iBAAiB;IAL7B,gBAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA4B,CAAC,CAAC;KAClD,CAAC;qCAS6B,aAAK;GARvB,iBAAiB,CA6D7B;AA7DY,8CAAiB;;;;;;;;;;;;;ACrB9B,oCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAtC,oCAAkF;AAElF,2CAAiH;AACjH,oCAA6B;AAO7B,IAAa,iBAAiB;IAAS,qCAAG;IAYtC;QAAA,YACI,iBAAO,SAGV;QAXD,uFAAuF;QACvF,oEAAoE;QAC5D,sBAAgB,GAAG,6BAAgB,CAAC;QAOxC,KAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,KAAI,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;;IACtD,CAAC;IAED,uCAAW,GAAX;QACI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,0CAAc,GAAd;QACI,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,yCAAa,GAAb,UAAc,SAAoB;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,wBAAW,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,WAAW,GAA6B,SAAS,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC;QAEhD,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,KAAK,6BAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9B,KAAK,6BAAgB,CAAC,QAAQ,CAAC;YAC/B,KAAK,6BAAgB,CAAC,MAAM,CAAC;YAC7B,KAAK,6BAAgB,CAAC,QAAQ,CAAC;YAC/B,KAAK,6BAAgB,CAAC,SAAS;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU,CAAC;YACjC,KAAK,6BAAgB,CAAC,QAAQ,CAAC;YAC/B,KAAK,6BAAgB,CAAC,UAAU,CAAC;YACjC,KAAK,6BAAgB,CAAC,WAAW;gBAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,SAAS,CAAC;YAChC,KAAK,6BAAgB,CAAC,WAAW,CAAC;YAClC,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU,CAAC;YACjC,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC;YACV;gBACI,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,uCAAW,GAAX;QACI,IAAI,WAAW,GAAgB,IAAI,wBAAW,EAAE,CAAC;QACjD,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC;IACvB,CAAC;IAED,sCAAU,GAAV,UAAW,KAAa;QACpB,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,0BAAwB,KAAO,CAAC,CAAC;YAC/C,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,+CAAmB,GAAnB,UAAoB,gBAAkC;QAClD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACL,wBAAC;AAAD,CAAC,CAzFsC,SAAG,GAyFzC;AAxFY;IAAR,YAAK,EAAE;8BAAmB,sBAAS;2DAAC;AAD5B,iBAAiB;IAL7B,gBAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA4B,CAAC,CAAC;KAClD,CAAC;;GACW,iBAAiB,CAyF7B;AAzFY,8CAAiB;;;;;;;;;;;;;ACV9B,oCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;ACArC,oCAA2E;AAE3E,oCAA6B;AAO7B,IAAa,gBAAgB;IAAS,oCAAG;IAAzC;;IAiBA,CAAC;IAhBG,sCAAW,GAAX,UAAY,KAAU;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,yCAAc,GAAd;QACI,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,wCAAa,GAAb;QACI,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,sCAAW,GAAX;QACI,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IAEL,uBAAC;AAAD,CAAC,CAjBqC,SAAG,GAiBxC;AAjBY,gBAAgB;IAL5B,gBAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,mBAAO,CAAC,GAA2B,CAAC;QAC9C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA2B,CAAC,CAAC;KACjD,CAAC;GACW,gBAAgB,CAiB5B;AAjBY,4CAAgB;;;;;;;;;;;;;;;;;;;ACT7B,oCAA8E;AAC9E,iDAAsE;AAOtE,IAAa,+BAA+B;IAOxC,yCAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QANxC,YAAO,GAAG,IAAI,mBAAY,EAAO,CAAC;QAOxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IAGD,iDAAO,GAAP,UAAQ,CAAgB;QACpB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAGD,mDAAS,GAAT,UAAU,CAAgB;QACtB,IAAM,IAAI,GAAW,CAAC,CAAC,OAAO,CAAC;QAC/B,IAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;IACL,CAAC;IAGD,oDAAU,GAAV;QACI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,+CAAK,GAAL;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,sDAAY,GAApB,UAAqB,IAAa;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAM,IAAI,GAAc,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAM,KAAK,GAAc,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,IAAI;YACJ,KAAK;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEO,+CAAK,GAAb;QACI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IACL,sCAAC;AAAD,CAAC;AA1Ea;IAAT,aAAM,EAAE;;gEAAmC;AAc5C;IADC,mBAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCACvB,aAAa;;8DAQvB;AAGD;IADC,mBAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCACvB,aAAa;;gEAmBzB;AAGD;IADC,mBAAY,CAAC,UAAU,CAAC;;;;iEAIxB;AAnDQ,+BAA+B;IAL3C,gBAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,mBAAO,CAAC,GAA2C,CAAC;QAC9D,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA2C,CAAC,CAAC;KACjE,CAAC;qCAQsC,gCAAc;GAPzC,+BAA+B,CA2E3C;AA3EY,0EAA+B;;;;;;;;;;;;;ACR5C,oCAAqD;;;;;;;;;;;;;;;;;;;ACArD,oCAAyD;AAOzD,IAAa,aAAa;IAItB;IAAgB,CAAC;IAEjB,gCAAQ,GAAR,cAAa,CAAC;IAElB,oBAAC;AAAD,CAAC;AANY;IAAR,YAAK,EAAE;;2CAAc;AAFb,aAAa;IALzB,gBAAS,CAAC;QACP,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,mBAAO,CAAC,GAAuB,CAAC;QAC1C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAuB,CAAC,CAAC;KAC7C,CAAC;;GACW,aAAa,CAQzB;AARY,sCAAa;;;;;;;;;;;;;ACP1B,oCAAiC;;;;;;;;;;ACEjC,oDAAyD;AAE5C,sBAAc,GAAW;IAClC;QACI,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,sCAAiB;KAC/B;CACJ,CAAC;;;;;;;;;;;;;ACTF,oCAAsC;;;;;;;;;;;;;;;;;;;ACAtC,oCAAgG;AAEhG,qCAAoC;AAGpC,yBAA8B;AAC9B,wBAA+B;AAC/B,yBAA+B;AAM/B,wCAAmD;AACnD,mDAAgF;AAkBhF,IAAa,iBAAiB;IAK1B,2BAAoB,KAAsB,EAAU,QAAkB;QAAlD,UAAK,GAAL,KAAK,CAAiB;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAClE,IAAI,CAAC,SAAS,GAAG;YACb,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,QAAQ;SAClB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,+BAAU,EAAE,CAAC;aAClC,GAAG,CAAC,iBAAO,IAAI,cAAO,CAAC,KAAK,EAAE,EAAf,CAAe,CAAC,CAAC,uEAAuE;aACvG,EAAE,CAAC,UAAC,OAAiB;YAClB,OAAO,CAAC,IAAI,CAAC,UAAC,KAAa,EAAE,MAAc,IAAK,YAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAArC,CAAqC,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,8BAAS,EAAE,CAAC;aAChC,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,KAAK,EAAE,EAAd,CAAc,CAAC,CAAC,uEAAuE;aACrG,EAAE,CAAC,UAAC,MAAe;YAChB,MAAM,CAAC,IAAI,CAAC,UAAC,KAAY,EAAE,MAAa,IAAK,YAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAArC,CAAqC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACX,CAAC;IAED,sCAAU,GAAV,UAAW,KAAY,EAAE,IAAY;QACjC,IAAI,MAAM,GAA2B,KAAK,CAAC,MAAO,CAAC,SAAS,CAAC;QAC7D,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,oCAAQ,GAAR;QACI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACL,wBAAC;AAAD,CAAC;AA3CY,iBAAiB;IAhB7B,gBAAS,CAAC;QACP,UAAU,EAAE;YACR,cAAO,CAAC,SAAS,EAAE;gBACf,YAAK,CAAC,UAAU,EAAE,YAAK,CAAC;oBACpB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;oBAClB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,iBAAU,CAAC,qBAAqB,EAAE,cAAO,CAAC,gBAAgB,CAAC,CAAC;aAC/D,CAAC;SACL;QACD,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA4B,CAAC,CAAC;KAClD,CAAC;qCAM6B,aAAK,EAA8B,eAAQ;GAL7D,iBAAiB,CA2C7B;AA3CY,8CAAiB;;;;;;;;;;;;;AChC9B,oCAAyC;;;;;;;;;;;;;;;;;;;ACAzC,oCAAwG;AAGxG,wCAAsC;AAQtC,IAAa,oBAAoB;IAW7B;QAPU,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,YAAO,GAAG,IAAI,mBAAY,EAAE,CAAC;QAMnC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACzD,CAAC;IAED,uCAAQ,GAAR;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,yCAAU,GAAV,UAAW,QAAgB,EAAE,KAAa,EAAE,SAAsB;QAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,QAAQ;YACR,KAAK;YACL,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,wCAAS,GAAT,UAAU,QAAgB,EAAE,KAAa,EAAE,QAA2D;QAClG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,QAAQ;YACR,KAAK;YACL,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,yCAAU,GAAV,UAAW,KAAa,EAAE,KAAiB,EAAE,IAAa,EAAE,QAAgB;QACxE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,QAAQ;YACR,KAAK;YACL,IAAI;YACJ,KAAK;SACR,CAAC,CAAC;IACP,CAAC;IAEO,uDAAwB,GAAhC;QACI,IAAI,GAAG,GAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,CAAC;YACH,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO;YACtB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/B,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;SACxB,CAAC;IACN,CAAC;IAEO,4CAAa,GAArB;QACI,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,GAAQ,IAAK,WAAI,kBAAS,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC,CAAC;QAC/E,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;IAC/E,CAAC;IAEO,2CAAY,GAApB;QACI,MAAM,CAAC,mBAAO,CAAC,IAAiD,CAAC,CAAC,GAAG,CAAC;IAC1E,CAAC;IAEL,2BAAC;AAAD,CAAC;AA9DY;IAAR,YAAK,EAAE;;0DAAwB;AACvB;IAAR,YAAK,EAAE;;qEAAkC;AACjC;IAAR,YAAK,EAAE;;8DAA2B;AACzB;IAAT,aAAM,EAAE;;sDAA+B;AAC9B;IAAT,aAAM,EAAE;;sDAA+B;AAC9B;IAAT,aAAM,EAAE;;qDAA8B;AAN9B,oBAAoB;IANhC,gBAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,mBAAO,CAAC,GAA+B,CAAC;QAClD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA+B,CAAC,CAAC;QAClD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,oBAAoB,CA+DhC;AA/DY,oDAAoB;;;;;;;;;;ACXjC,oDAA8D;AAArD,6EAAuB;AAChC,mDAA6E;AAApE,4EAAuB;AAChC,oDAA+D;AAAtD,+EAAwB;AACjC,gDAAuD;AAA9C,mEAAoB;AAC7B,sDAAkE;AAAzD,mFAAyB;AAClC,qDAAgE;AAAvD,gFAAwB;AACjC,sDAAkE;AAAzD,mFAAyB;AAClC,uDAAoE;AAA3D,sFAA0B;AACnC,wDAAqE;AAA5D,uFAA0B;AACnC,sDAAkE;AAAzD,mFAAyB;AAClC,wDAAsE;AAA7D,yFAA2B;AACpC,oDAA8D;AAArD,6EAAuB;AAChC,wDAAqE;AAA5D,uFAA0B;;;;;;;;;;;;;ACZnC,oCAA8C;;;;;;;;;;;;;;;;;;;ACA9C,oCAAkF;AAOlF,IAAa,uBAAuB;IAahC;IACA,CAAC;IAED,0CAAQ,GAAR;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAChF,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClF,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACpF,CAAC;IACL,8BAAC;AAAD,CAAC;AAvBY;IAAR,YAAK,EAAE;;sDAAe;AACd;IAAR,YAAK,EAAE;;uDAAgB;AACf;IAAR,YAAK,EAAE;;qDAAc;AACb;IAAR,YAAK,EAAE;;qDAAc;AAJb,uBAAuB;IALnC,gBAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,mBAAO,CAAC,GAAoC,CAAC;QACvD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,uBAAuB,CAwBnC;AAxBY,0DAAuB;;;;;;;;;;;;;ACPpC,oCAA6C;;;;;;;;;;;;;;;;;;;ACA7C,oCAGuB;AAEvB,qCAAoC;AAIpC,2CAQ+D;AAC/D,8CAAuF;AAGvF,iDAAsE;AACtE,+CAAoE;AAGpE,mDAA0E;AAE1E,IAAK,UASJ;AATD,WAAK,UAAU;IACX,2DAAY;IACZ,mDAAQ;IACR,yDAAW;IACX,yDAAW;IACX,mDAAQ;IACR,uDAAU;IACV,2DAAY;IACZ,mDAAQ;AACZ,CAAC,EATI,UAAU,KAAV,UAAU,QASd;AA4BD,IAAa,uBAAuB;IA6EhC,iCACY,MAAqB,EACrB,KAAsB,EACtB,OAAmB,EACnB,cAA8B,EAC9B,QAAkB;QAL9B,iBAaC;QAZW,WAAM,GAAN,MAAM,CAAe;QACrB,UAAK,GAAL,KAAK,CAAiB;QACtB,YAAO,GAAP,OAAO,CAAY;QACnB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,aAAQ,GAAR,QAAQ,CAAU;QAzEpB,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,YAAO,GAAG,IAAI,mBAAY,EAAE,CAAC;QAEvC,mBAAc,GAAG,UAAU,CAAC;QAErB,oBAAe,GAAW,UAAU,CAAC;QAsExC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,8BAAS,EAAE,CAAC;aACrC,SAAS,CAAC,UAAC,MAAe,IAAK,YAAI,CAAC,MAAM,GAAG,MAAM,EAApB,CAAoB,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IAjED,yCAAO,GAAP;QACI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAGD,6CAAW,GAAX,UAAY,CAAa;QACrB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEvE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IAGD,0CAAQ,GAAR,UAAS,CAAgB;QACrB,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAGD,2CAAS,GAAT,UAAU,CAAgB;QACtB,IAAM,IAAI,GAAW,CAAC,CAAC,OAAO,CAAC;QAE/B,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;IACL,CAAC;IAGD,4CAAU,GAAV;QACI,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAiBD,0CAAQ,GAAR;QACI,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,6CAAW,GAAX,UAAY,OAAiD;QACzD,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IAED,6CAAW,GAAX;QACI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,uDAAqB,GAArB;QACI,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;IACtC,CAAC;IAED,0DAAwB,GAAxB;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QACtC,CAAC;IACL,CAAC;IAEO,uCAAK,GAAb;QACI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAEO,8CAAY,GAApB,UAAqB,IAAQ;QAAR,+BAAQ;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,IAAM,IAAI,GAAc,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAM,KAAK,GAAc,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,IAAI;YACJ,KAAK;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAEO,2CAAS,GAAjB;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;YACxC,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;QAExC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,4BAAe,CAAC,CAAC,CAAC;YAC5C,IAAI,SAAS,GAAoB,IAAI,CAAC,SAA4B,CAAC;YACnE,IAAI,cAAc,SAAU,CAAC;YAE7B,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC5D,IAAI,QAAQ,GAAW,SAAS,CAAC,QAAQ,CAAC;gBAC1C,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;oBAChE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC;gBAC3C,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC;oBACtC,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBACrC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;oBAC5C,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACJ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;wBAClC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC1E,cAAc,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC7B,KAAK,2BAAY,CAAC,QAAQ,CAAC;oBAC3B,KAAK,2BAAY,CAAC,SAAS;wBACvB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC5B,KAAK,CAAC;oBACV,KAAK,2BAAY,CAAC,SAAS,CAAC;oBAC5B,KAAK,2BAAY,CAAC,UAAU;wBACxB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,KAAK,CAAC;oBACV,KAAK,2BAAY,CAAC,OAAO,CAAC;oBAC1B,KAAK,2BAAY,CAAC,QAAQ;wBACtB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC3B,KAAK,CAAC;oBACV,KAAK,2BAAY,CAAC,OAAO,CAAC;oBAC1B,KAAK,2BAAY,CAAC,QAAQ;wBACtB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,KAAK,CAAC;oBACV;wBACI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACjC,KAAK,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;YACtC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;gBACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YACtC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,8BAAiB,CAAC,CAAC,CAAC;YACrD,IAAI,SAAS,GAAsB,IAAI,CAAC,SAA8B,CAAC;YACvE,IAAI,cAAc,SAAQ,CAAC;YAC3B,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,KAAK,sBAAS,CAAC,GAAG;oBACd,cAAc,GAAG,KAAK,CAAC;oBACvB,KAAK,CAAC;gBACV,KAAK,sBAAS,CAAC,EAAE;oBACb,cAAc,GAAG,IAAI,CAAC;oBACtB,KAAK,CAAC;gBACV,KAAK,sBAAS,CAAC,KAAK;oBAChB,cAAc,GAAG,OAAO,CAAC;oBACzB,KAAK,CAAC;gBACV;oBACI,KAAK,CAAC;YACd,CAAC;YAED,EAAE,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;gBACrC,IAAI,CAAC,WAAW,GAAG;oBACf,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;iBACtC,CAAC;YACN,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;gBACxC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;YACtC,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,+BAAkB,CAAC,CAAC,CAAC;YACtD,IAAI,SAAS,GAAuB,IAAI,CAAC,SAA+B,CAAC;YACzE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;YACzC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,kBAAkB,CAAC;QACpD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,4BAAe,CAAC,CAAC,CAAC;YACnD,IAAI,WAAS,GAAoB,IAAI,CAAC,SAA4B,CAAC;YACnE,IAAM,KAAK,GAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,MAAa,IAAK,aAAM,CAAC,EAAE,KAAK,WAAS,CAAC,OAAO,EAA/B,CAA+B,CAAC,CAAC;YAC1F,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG;gBACf,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;aACnB,CAAC;QACN,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,wBAAW,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACjC,CAAC;IACL,CAAC;IACL,8BAAC;AAAD,CAAC;AApPY;IAAR,YAAK,EAAE;;mDAAY;AACX;IAAR,YAAK,EAAE;;mDAAY;AACX;IAAR,YAAK,EAAE;;mDAAY;AACX;IAAR,YAAK,EAAE;;uDAAgB;AACf;IAAR,YAAK,EAAE;;sDAAe;AACd;IAAR,YAAK,EAAE;8BAAY,sBAAS;0DAAC;AACrB;IAAR,YAAK,EAAE;;wEAAkC;AACjC;IAAR,YAAK,EAAE;;iEAA2B;AACzB;IAAT,aAAM,EAAE;;yDAA+B;AAC9B;IAAT,aAAM,EAAE;;wDAA8B;AAevC;IADC,mBAAY,CAAC,OAAO,CAAC;;;;sDAIrB;AAGD;IADC,mBAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCACvB,UAAU;;0DAYxB;AAGD;IADC,mBAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCACtB,aAAa;;uDAQxB;AAGD;IADC,mBAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCACvB,aAAa;;wDAazB;AAGD;IADC,mBAAY,CAAC,UAAU,CAAC;;;;yDAGxB;AA3EQ,uBAAuB;IA1BnC,gBAAS,CAAC;QACP,UAAU,EAAE;YACR,cAAO,CAAC,QAAQ,EAAE;gBACd,iBAAU,CAAC,oBAAoB,EAAE;oBAC7B,YAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oBACvB,YAAK,CAAC;wBACF,cAAO,CAAC,aAAa,EAAE,YAAK,CAAC;4BACzB,IAAI,EAAE,MAAM;yBACf,CAAC,CAAC;qBACN,CAAC;iBACL,CAAC;aACL,CAAC;YACF,cAAO,CAAC,WAAW,EAAE;gBACjB,YAAK,CAAC,UAAU,EAAE,YAAK,CAAC;oBACpB,IAAI,EAAE,oBAAoB;iBAC7B,CAAC,CAAC;gBACH,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;oBAClB,IAAI,EAAE,sBAAsB;iBAC/B,CAAC,CAAC;gBACH,iBAAU,CAAC,qBAAqB,EAAE,cAAO,CAAC,mBAAmB,CAAC,CAAC;aAClE,CAAC;SACL;QACD,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,mBAAO,CAAC,GAAmC,CAAC;QACtD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAmC,CAAC,CAAC;KACzD,CAAC;qCA+EsB,8BAAa;QACd,aAAK;QACH,iBAAU;QACH,gCAAc;QACpB,eAAQ;GAlFrB,uBAAuB,CAqPnC;AArPY,0DAAuB;;;;;;;;;;;;;AChEpC,oCAA8C;;;;;;;;;;;;;;;;;;;ACA9C,oCAA6F;AAE7F,2CAAwF;AACxF,8CAAuF;AACvF,+CAAoE;AAEpE;IAOI;QACI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IACL,oBAAC;AAAD,CAAC;AAED,IAAK,SAEJ;AAFD,WAAK,SAAS;IACV,2CAAK;IAAE,+CAAO;IAAE,uCAAG;IAAE,+CAAO;AAChC,CAAC,EAFI,SAAS,KAAT,SAAS,QAEb;AAQD,IAAa,wBAAwB;IAsBjC,kCAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACrC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,aAAa,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,2CAAQ,GAAR;QACI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhE,IAAI,cAAc,GAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAE7D,IAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAElD,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACjB,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACpC,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YAClC,IAAM,iBAAiB,GAAG,GAAG,CAAC;YAC9B,IAAI,SAAS,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,YAAY,CAAC;YACpE,IAAI,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAAC;YACnD,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9D,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAErE,IAAM,QAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE7F,IAAM,iBAAiB,GAAG,GAAG,CAAC;YAC9B,IAAM,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3F,IAAM,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,QAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,8CAAW,GAAX;QACI,IAAI,cAAwB,CAAC;QAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,QAAQ,GAAW,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACrD,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjB,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;gBAChC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;oBAClC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;gBAChC,CAAC;YACL,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;YAC5B,CAAC;QACL,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,2BAAY,CAAC,SAAS,GAAG,2BAAY,CAAC,UAAU,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,2BAAY,CAAC,QAAQ,GAAG,2BAAY,CAAC,SAAS,CAAC,CAAC;QACvG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,2BAAY,CAAC,OAAO,GAAG,2BAAY,CAAC,QAAQ,CAAC,CAAC;QACpG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,2BAAY,CAAC,OAAO,GAAG,2BAAY,CAAC,QAAQ,CAAC,CAAC;IAEzG,CAAC;IAEL,+BAAC;AAAD,CAAC;AAhIY;IAAR,YAAK,EAAE;;wDAAgB;AACf;IAAR,YAAK,EAAE;;uDAAe;AACd;IAAR,YAAK,EAAE;8BAAkB,4BAAe;iEAAC;AAHjC,wBAAwB;IANpC,gBAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,mBAAO,CAAC,GAAoC,CAAC;QACvD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAoC,CAAC,CAAC;QACvD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAuB8B,8BAAa;GAtBhC,wBAAwB,CAiIpC;AAjIY,4DAAwB;;;;;;;;;;;;;AChCrC,oCAAsC;;;;;;;;;;;;;;;;;;;ACAtC,oCAAkF;AAElF,+CAAoE;AAOpE,IAAa,yBAAyB;IAKlC,mCAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,4CAAQ,GAAR,cAAa,CAAC;IAClB,gCAAC;AAAD,CAAC;AATY;IAAR,YAAK,EAAE;;yDAAgB;AADf,yBAAyB;IALrC,gBAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAM8B,8BAAa;GALhC,yBAAyB,CAUrC;AAVY,8DAAyB;;;;;;;;;;;;;ACTtC,oCAAgC;;;;;;;;;;;;;;;;;;;ACAhC,oCAAqF;AAErF,2CAAsG;AAOtG,IAAa,oBAAoB;IAK7B;IAAgB,CAAC;IAEjB,0CAAW,GAAX;QACI,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;YACnC,KAAK,6BAAgB,CAAC,SAAS;gBAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,WAAW;gBAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,WAAW;gBAC7B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,QAAQ;gBAC1B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,QAAQ;gBAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,QAAQ;gBAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,SAAS;gBAC3B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,MAAM;gBACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,KAAK,CAAC;YACV,KAAK,6BAAgB,CAAC,UAAU;gBAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,KAAK,CAAC;YACV;gBACI,KAAK,CAAC;QACd,CAAC;IACL,CAAC;IACL,2BAAC;AAAD,CAAC;AAhEY;IAAR,YAAK,EAAE;8BAAc,wBAAW;yDAAC;AADzB,oBAAoB;IALhC,gBAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,mBAAO,CAAC,GAAsB,CAAC;QACzC,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,oBAAoB,CAiEhC;AAjEY,oDAAoB;;;;;;;;;;;;;ACTjC,oCAAqC;;;;;;;;;;;;;;;;;;;ACArC,oCAAqF;AAErF,+CAAoE;AAOpE,IAAa,wBAAwB;IAMjC,kCAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAI,CAAC;IAE9C,8CAAW,GAAX;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,WAAQ,CAAC,CAAC;IACxE,CAAC;IACL,+BAAC;AAAD,CAAC;AAXY;IAAR,YAAK,EAAE;;2DAAmB;AADlB,wBAAwB;IALpC,gBAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,mBAAO,CAAC,GAA2B,CAAC;QAC9C,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAO8B,8BAAa;GANhC,wBAAwB,CAYpC;AAZY,4DAAwB;;;;;;;;;;;;;ACTrC,oCAAuC;;;;;;;;;;;;;;;;;;;ACAvC,oCAAqF;AAErF,+CAAoE;AAOpE,IAAa,0BAA0B;IAMnC,oCAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAI,CAAC;IAE9C,gDAAW,GAAX;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAU,IAAI,CAAC,SAAW,CAAC,CAAC;IACzE,CAAC;IACL,iCAAC;AAAD,CAAC;AAXY;IAAR,YAAK,EAAE;;6DAAmB;AADlB,0BAA0B;IALtC,gBAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE,mBAAO,CAAC,GAA6B,CAAC;QAChD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAO8B,8BAAa;GANhC,0BAA0B,CAYtC;AAZY,gEAA0B;;;;;;;;;;;;;ACTvC,oCAAsC;;;;;;;;;;;;;;;;;;;ACAtC,oCAAqF;AAErF,+CAAoE;AAOpE,IAAa,yBAAyB;IAMlC,mCAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,+CAAW,GAAX;QACI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;IACtC,CAAC;IACL,gCAAC;AAAD,CAAC;AAZY;IAAR,YAAK,EAAE;;uDAAe;AADd,yBAAyB;IALrC,gBAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,mBAAO,CAAC,GAA4B,CAAC;QAC/C,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAO8B,8BAAa;GANhC,yBAAyB,CAarC;AAbY,8DAAyB;;;;;;;;;;;;;ACTtC,oCAAkD;;;;;;;;;;;;;;;;;;;ACAlD,oCAAkF;AAOlF,IAAa,0BAA0B;IAQnC;IAAgB,CAAC;IAEjB,6CAAQ,GAAR;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAChC,CAAC;IACL,iCAAC;AAAD,CAAC;AAbY;IAAR,YAAK,EAAE;;0DAAgB;AACf;IAAR,YAAK,EAAE;;yDAAe;AACd;IAAR,YAAK,EAAE;;wDAAc;AAHb,0BAA0B;IALtC,gBAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,mBAAO,CAAC,GAAwC,CAAC;QAC3D,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,0BAA0B,CActC;AAdY,gEAA0B;;;;;;;;;;;;;ACPvC,oCAAgD;;;;;;;;;;;;;;;;;;;ACAhD,oCAAkF;AAOlF,IAAa,yBAAyB;IAQlC;IAAgB,CAAC;IAEjB,4CAAQ,GAAR;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;IACL,gCAAC;AAAD,CAAC;AAbY;IAAR,YAAK,EAAE;;wDAAe;AACd;IAAR,YAAK,EAAE;;yDAAgB;AACf;IAAR,YAAK,EAAE;;uDAAc;AAHb,yBAAyB;IALrC,gBAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,mBAAO,CAAC,GAAsC,CAAC;QACzD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,yBAAyB,CAcrC;AAdY,8DAAyB;;;;;;;;;;;;;ACPtC,oCAAkD;;;;;;;;;;;;;;;;;;;ACAlD,oCAAkF;AAElF,+CAAoE;AAOpE,IAAa,2BAA2B;IAapC,qCAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAI,CAAC;IAErD,8CAAQ,GAAR;QACI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAChC,CAAC;IACL,kCAAC;AAAD,CAAC;AAxBY;IAAR,YAAK,EAAE;;0DAAe;AACd;IAAR,YAAK,EAAE;;2DAAgB;AACf;IAAR,YAAK,EAAE;;iEAAsB;AAHrB,2BAA2B;IALvC,gBAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,mBAAO,CAAC,GAAwC,CAAC;QAC3D,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAcqC,8BAAa;GAbvC,2BAA2B,CAyBvC;AAzBY,kEAA2B;;;;;;;;;;;;;ACTxC,oCAA8C;;;;;;;;;;;;;;;;;;;ACA9C,oCAAkF;AAOlF,IAAa,uBAAuB;IAchC;IAAgB,CAAC;IAEjB,0CAAQ,GAAR;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACpF,CAAC;IACL,8BAAC;AAAD,CAAC;AAxBY;IAAR,YAAK,EAAE;;sDAAe;AACd;IAAR,YAAK,EAAE;;uDAAgB;AACf;IAAR,YAAK,EAAE;;qDAAc;AACb;IAAR,YAAK,EAAE;;qDAAc;AAJb,uBAAuB;IALnC,gBAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,mBAAO,CAAC,GAAoC,CAAC;QACvD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,uBAAuB,CAyBnC;AAzBY,0DAAuB;;;;;;;;;;;;;ACPpC,oCAAkD;;;;;;;;;;;;;;;;;;;ACAlD,oCAAkF;AAOlF,IAAa,0BAA0B;IASnC;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,6CAAQ,GAAR;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IACL,iCAAC;AAAD,CAAC;AAnBY;IAAR,YAAK,EAAE;;0DAAgB;AACf;IAAR,YAAK,EAAE;;yDAAe;AACd;IAAR,YAAK,EAAE;;yDAAiB;AAHhB,0BAA0B;IALtC,gBAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,mBAAO,CAAC,GAAwC,CAAC;QAC3D,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,0BAA0B,CAoBtC;AApBY,gEAA0B;;;;;;;;;;;;;;;;;;;ACPvC,oCAAgG;AAYhG,IAAa,kBAAkB;IAU3B;QAJU,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,aAAQ,GAAG,IAAI,mBAAY,EAAE,CAAC;QAC9B,YAAO,GAAG,IAAI,mBAAY,EAAE,CAAC;QAGnC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,uCAAU,GAAV,UAAW,KAAa,EAAE,SAAsB;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,KAAK;YACL,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,uCAAU,GAAV,UAAW,KAAa,EAAE,KAAiB,EAAE,IAAa;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,KAAK;YACL,KAAK;YACL,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED,sCAAS,GAAT,UAAU,KAAa,EAAE,QAA2D;QAChF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,KAAK;YACL,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IACL,yBAAC;AAAD,CAAC;AAlCY;IAAR,YAAK,EAAE;;qDAAkB;AACjB;IAAR,YAAK,EAAE;;wDAAgC;AAC/B;IAAR,YAAK,EAAE;;sDAAyB;AACxB;IAAR,YAAK,EAAE;;mEAAkC;AACjC;IAAR,YAAK,EAAE;;4DAA2B;AACzB;IAAT,aAAM,EAAE;;oDAA+B;AAC9B;IAAT,aAAM,EAAE;;oDAA+B;AAC9B;IAAT,aAAM,EAAE;;mDAA8B;AAR9B,kBAAkB;IAN9B,gBAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,mBAAO,CAAC,GAA6B,CAAC;QAChD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAA6B,CAAC,CAAC;QAChD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;;GACW,kBAAkB,CAmC9B;AAnCY,gDAAkB;;;;;;;;;;ACV/B;IAKI,mBAAY,GAA4C;QACpD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAI,IAAI,WAAI,CAAC,CAAC,EAAN,CAAM,CAAC,CAAC,GAAG,CAAC,cAAI;YACrD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IACL,gBAAC;AAAD,CAAC;AAdY,8BAAS;;;;;;;;;;;;;ACFtB,oCAA8C;;;;;;;;;;;;;;;;;;;ACA9C,oCAYuB;AAEvB,0CAA6C;AAC7C,yBAAgC;AAChC,wBAA+B;AAC/B,qCAAoC;AAIpC,+CAAiE;AAEjE,2CAS4D;AAC5D,uCAAwE;AAExE,iDAA0F;AAC1F,uCAA2E;AAG3E,wCAAuD;AACvD,yCAAiD;AAajD,IAAa,wBAAwB;IAuCjC,kCACY,KAAsB,EACtB,MAAqB,EACrB,OAAmB,EACnB,QAAkB;QAHlB,UAAK,GAAL,KAAK,CAAiB;QACtB,WAAM,GAAN,MAAM,CAAe;QACrB,YAAO,GAAP,OAAO,CAAY;QACnB,aAAQ,GAAR,QAAQ,CAAU;QAzCrB,mBAAc,GAAY,IAAI,CAAC;QAC/B,mBAAc,GAAY,KAAK,CAAC;QAQjC,iBAAY,GAAW,CAAC,CAAC;QAkC7B,IAAI,CAAC,aAAa,GAAG;YACjB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACnB,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG;YACf,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,uBAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,EAAE,KAAK;SACd,CAAC;IACN,CAAC;IAhC2B,sBAAI,2CAAK;aAAT;YACxB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;;;OAAA;IAGD,2CAAQ,GAAR;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC9D,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QAC/D,CAAC;IACL,CAAC;IAqBD,2CAAQ,GAAR;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC9D,CAAC;IAED,8CAAW,GAAX,UAAY,OAAsB;QAC9B,IAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACjC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,KAAK,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvF,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,uBAAuB,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;YACjE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACxC,CAAC;QACL,CAAC;IAEL,CAAC;IAED,6CAAU,GAAV,UAAW,QAAgB,EAAE,KAAa,EAAE,SAAsB;QAC9D,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,GAAG;gBACjB,QAAQ;gBACR,KAAK;aACR,CAAC;YAEF,IAAM,eAAe,GAAc,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,6CAAU,GAAV,UAAW,QAAgB,EAAE,KAAiB,EAAE,IAAa,EAAE,KAAa;QACxE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACtB,IAAM,eAAe,GAAc,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEtG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACP,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAED,4CAAS,GAAT,UAAU,QAAgB,EAAE,KAAa,EAAE,QAA6D;QACpG,IAAI,eAAe,GAAoB,IAAI,4BAAe,EAAE,CAAC;QAC7D,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,GAAG,CAAC,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;QAE3E,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzC,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;QAEjC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACxC,eAAe,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CACf,uBAAa,CAAC,OAAO,CACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,QAAQ,EACR,KAAK,EACL,eAAe,CAAC,CACvB,CAAC;IACN,CAAC;IAED,0CAAO,GAAP,UAAQ,SAAoB;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACf,uBAAa,CAAC,OAAO,CACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EACxB,SAAS,CAAC,CACjB,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,8CAAW,GAAX,UAAY,SAAoB;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QAC3D,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,8CAAW,GAAX,UAAY,SAAoB,EAAE,KAAiB;QAC/C,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC;QACX,CAAC;QAED,IAAM,EAAE,GAAY,KAAK,CAAC,MAAiB,IAAI,KAAK,CAAC,UAAU,CAAC;QAChE,IAAM,QAAQ,GAAe,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACxD,IAAI,OAAO,GAAW,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QAC/C,IAAI,MAAM,GAAW,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAE7C,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;YACrB,OAAO,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,WAAW,GAAG;YACf,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAC5C,IAAI,EAAE,IAAI;SACb,CAAC;IACN,CAAC;IAED,8CAAW,GAAX;QACI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,8CAAW,GAAX;QACI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,8CAAW,GAAX,UAAY,KAAa;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,mDAAgB,GAAhB;QACI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEO,sDAAmB,GAA3B,UAA4B,SAAoB;QAC5C,EAAE,CAAC,CAAC,SAAS,YAAY,4BAAe,CAAC,CAAC,CAAC;YACvC,IAAM,eAAe,GAAoB,SAAS,CAAC;YACnD,IAAM,OAAO,GAAoB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,EAAE,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAChC,IAAI,KAAK,GAAW,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACxD,IAAM,aAAa,GAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtG,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC3B,KAAK,IAAI,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC;gBACxC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,UAAU;oBAChB,KAAK;iBACR,CAAC,CAAC;YACP,CAAC;YAED,EAAE,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACtD,CAAC,CAAC;YACP,CAAC;YAED,EAAE,CAAC,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,iCAAe,CAAC,eAAe,CAAC,eAAe,CAAC;iBAC1D,CAAC,CAAC;YACP,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,wBAAW,CAAC,CAAC,CAAC;YAC1C,IAAM,WAAW,GAAgB,SAAS,CAAC;YAC3C,IAAM,OAAO,GACT;gBACI;oBACI,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,OAAO;iBACjB;gBACD;oBACI,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,0BAAmB,CAAC,6BAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;iBACxE;aACJ,CAAC;YACN,MAAM,CAAC,uBAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,4BAAe,CAAC,CAAC,CAAC;YAC9C,IAAM,iBAAe,GAAoB,SAAS,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,KAAK;iBACZ,MAAM,CAAC,kBAAQ,IAAI,eAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAjC,CAAiC,CAAC;iBACrD,GAAG,CAAC,oBAAU,IAAI,iBAAU,CAAC,IAAI,CAAC,eAAK;gBACpC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,iBAAe,CAAC,OAAO,CAAC;YAChD,CAAC,CAAC,CAAC,IAAI,EAFY,CAEZ,CAAC;iBACP,GAAG,CAAC,mBAAS;gBACV,IAAM,OAAO,GAAoB;oBAC7B;wBACI,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,YAAY;qBACtB;oBACD;wBACI,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,SAAS;qBACnB;iBACJ,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC;YACnB,CAAC,CAAC,CAAC;QACX,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,+BAAkB,CAAC,CAAC,CAAC;YACjD,IAAM,oBAAkB,GAAuB,SAAS,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,KAAK;iBACZ,MAAM,CAAC,kBAAQ,IAAI,eAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAlC,CAAkC,CAAC;iBACtD,GAAG,CAAC,iBAAO,IAAI,cAAO,CAAC,IAAI,CAAC,gBAAM,IAAI,aAAM,CAAC,YAAY,KAAK,oBAAkB,CAAC,kBAAkB,EAA7D,CAA6D,CAAC,CAAC,IAAI,EAA1F,CAA0F,CAAC;iBAC1G,GAAG,CAAC,oBAAU;gBACX,IAAM,OAAO,GAAoB;oBAC7B;wBACI,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,eAAe;qBACzB;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,UAAU;qBACpB;iBACJ,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC;YACnB,CAAC,CAAC,CAAC;QACX,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,8BAAiB,CAAC,CAAC,CAAC;YAChD,IAAM,iBAAiB,GAAsB,SAAS,CAAC;YACvD,IAAM,OAAO,GACT;gBACI;oBACI,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,cAAc;iBACxB;gBACD;oBACI,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,4BAAqB,CAAC,sBAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBACnE;gBACD;oBACI,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,GAAG,KAAK;iBAC5D;aACJ,CAAC;YACN,MAAM,CAAC,uBAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,uBAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACL,+BAAC;AAAD,CAAC;AAlSY;IAAR,YAAK,EAAE;8BAAS,eAAM;wDAAC;AACf;IAAR,YAAK,EAAE;;gEAAgC;AAC/B;IAAR,YAAK,EAAE;;gEAAiC;AAEU;IAAlD,gBAAS,CAAC,0BAAgB,EAAE,EAAE,IAAI,EAAE,iBAAU,EAAE,CAAC;8BAAU,iBAAU;yDAAC;AAmB3C;IAA3B,kBAAW,CAAC,aAAa,CAAC;;;qDAE1B;AAGD;IADC,mBAAY,CAAC,eAAe,CAAC;;;;wDAS7B;AArCQ,wBAAwB;IANpC,gBAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,mBAAO,CAAC,GAAoC,CAAC;QACvD,MAAM,EAAE,CAAC,mBAAO,CAAC,GAAoC,CAAC,CAAC;QACvD,eAAe,EAAE,8BAAuB,CAAC,MAAM;KAClD,CAAC;qCAyCqB,aAAK;QACJ,8BAAa;QACZ,iBAAU;QACT,eAAQ;GA3CrB,wBAAwB,CAmSpC;AAnSY,4DAAwB;;;;;;;;;;;;;;;;;;;ACrDrC,uCAAwC;AAGxC;IAAA;IAsDA,CAAC;IApCG,4CAAc,GAAd,UAAe,UAAe;QAC1B,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QAC1D,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,wCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,0CAAY,GAAZ;QACI,MAAM,CAAC;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;SACxC,CAAC;IACN,CAAC;IAED,sCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED,sCAAQ,GAAR;QACI,MAAM,CAAC,+BAA4B,IAAI,CAAC,EAAE,SAAK,CAAC;IACpD,CAAC;IAEL,0BAAC;AAAD,CAAC;AA/CG;IADC,oBAAW;;+CACD;AAGX;IADC,oBAAW;;gEACgB;AAG5B;IADC,oBAAW;;gEACgB;AAG5B;IADC,oBAAW;;4DACY;AAhBf,kDAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHhC,uCAAuD;AAGvD,iDAAqD;AACrD,0CAAoE;AAEpE,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,qEAAiB;IACjB,6EAAqB;IACrB,mFAAwB;AAC5B,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AASD,IAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAG,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9F;IAAqC,mCAAS;IAW1C,yBAAY,KAAuB;QAAnC,YACI,iBAAO,SAOV;QANG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACvC,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;;IACjD,CAAC;IAED,wCAAc,GAAd,UAAe,UAAqC;QAChD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,iCAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,WAAW,GAAgB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,KAAK,GAAW,WAAW,GAAG,uBAAW,CAAC,eAAe,CAAC;QAC9D,EAAE,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,EAAE,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,CAAC;QACD,EAAE,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,sCAAY,GAAZ;QACI,IAAI,UAAU,GAA8B;YACxC,aAAa,EAAE,yBAAa,CAAC,eAAe;SAC/C,CAAC;QAEF,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxC,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC3B,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAChD,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,eAAe,GAAG,iCAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,CAAC,UAAU,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR,UAAS,MAAiB;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,GAAa,EAAE,CAAC;QAE9B,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,KAAK,IAAI,mBAAmB,CAAC,QAAQ,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,mBAAmB,CAAC,YAAY,CAAC;YAC1C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,IAAI,mBAAmB,CAAC,eAAe,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,uBAAW,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC;QACvD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,kCAAQ,GAAR;QACI,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,gBAAa,IAAI,CAAC,QAAQ,OAAG,CAAC,CAAC;QACnD,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,oBAAiB,IAAI,CAAC,YAAY,OAAG,CAAC,CAAC;QAC3D,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC,uBAAoB,IAAI,CAAC,eAAe,OAAG,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,CAAC,sBAAoB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAG,CAAC;IACvD,CAAC;IAED,kCAAQ,GAAR,UAAS,QAAsB;QAC3B,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,2CAAiB,GAAjB;QACI,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,4CAAkB,GAAlB;QACI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC;IAC9C,CAAC;IAED,qCAAW,GAAX;QACI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,kDAAwB,GAAxB;QACI,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,yCAAe,GAAf;QACI,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,YAAY,KAAK,CAAC,EAAE,CAAC;YAC1D,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,YAAY,CAAC;IACxB,CAAC;IACL,sBAAC;AAAD,CAAC,CAtIoC,qBAAS,GAsI7C;AAnIG;IADC,oBAAW;;iDACK;AAGjB;IADC,oBAAW;;qDACS;AAGrB;IADC,mBAAU,CAAC,iCAAe,CAAC;;wDACK;AATxB,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrB5B,uCAA0C;AAE1C,0CAAoE;AAEpE,IAAY,gBAcX;AAdD,WAAY,gBAAgB;IACxB,iEAAS;IACT,qEAAW;IACX,mEAAU;IACV,2DAAM;IACN,+DAAQ;IACR,+DAAQ;IACR,iEAAS;IACT,+DAAQ;IACR,mEAAU;IACV,mEAAU;IACV,sEAAW;IACX,oEAAU;IACV,oEAAU;AACd,CAAC,EAdW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAc3B;AAED;IAAiC,+BAAS;IAKtC,qBAAY,KAAmB;QAA/B,YACI,iBAAO,SAKV;QAJG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;;IACzC,CAAC;IAED,oCAAc,GAAd,UAAe,QAAa;QACxB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAS,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,gCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,kCAAY,GAAZ;QACI,MAAM,CAAC;YACH,aAAa,EAAE,yBAAa,CAAC,WAAW;YACxC,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;SAClD,CAAC;IACN,CAAC;IAED,8BAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,uBAAW,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,8BAAQ,GAAR;QACI,MAAM,CAAC,gCAA6B,IAAI,CAAC,WAAW,QAAI,CAAC;IAC7D,CAAC;IACL,kBAAC;AAAD,CAAC,CAxCgC,qBAAS,GAwCzC;AArCG;IADC,mBAAU,CAAC,gBAAgB,CAAC;;gDACC;AAHrB,kCAAW;;;;;;;;;;;;;;;;;;;;ACnBxB,0CAAoE;AAEpE;;;;GAIG;AAEH;IAAgC,8BAAS;IAAzC;;IAyBA,CAAC;IAvBG,mCAAc,GAAd,UAAe,UAAe;QAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,+BAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,iCAAY,GAAZ;QACI,MAAM,CAAC;YACH,aAAa,EAAE,yBAAa,CAAC,UAAU;SAC1C,CAAC;IACN,CAAC;IAED,6BAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,uBAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,6BAAQ,GAAR;QACI,MAAM,CAAC,cAAc,CAAC;IAC1B,CAAC;IACL,iBAAC;AAAD,CAAC,CAzB+B,qBAAS,GAyBxC;AAzBY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTvB,uCAA2C;AAG3C,0CAAoE;AAEpE;IAAqC,mCAAS;IAK1C,yBAAY,SAAmC;QAA/C,YACI,iBAAO,SASV;QARG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;QAEjB,CAAC;QACD,EAAE,CAAC,CAAC,SAAS,YAAY,eAAe,CAAC,CAAC,CAAC;YACvC,KAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACrC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,KAAI,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;QAChC,CAAC;;IACL,CAAC;IAED,wCAAc,GAAd,UAAe,UAAe,EAAE,MAAe;QAC3C,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAiB,EAAE,MAAe;QACzC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,sCAAY,GAAZ,UAAa,MAAe;QAA5B,iBAKC;QAJG,MAAM,CAAC;YACH,aAAa,EAAE,yBAAa,CAAC,eAAe;YAC5C,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,eAAK,IAAI,YAAK,CAAC,EAAE,KAAK,KAAI,CAAC,OAAO,EAAzB,CAAyB,CAAC;SACnE,CAAC;IACN,CAAC;IAED,kCAAQ,GAAR,UAAS,MAAiB,EAAE,MAAe;QAA3C,iBAGC;QAFG,MAAM,CAAC,UAAU,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,eAAK,IAAI,YAAK,CAAC,EAAE,KAAK,KAAI,CAAC,OAAO,EAAzB,CAAyB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,kCAAQ,GAAR;QACI,MAAM,CAAC,gCAA6B,IAAI,CAAC,OAAO,QAAI,CAAC;IACzD,CAAC;IACL,sBAAC;AAAD,CAAC,CA7CoC,qBAAS,GA6C7C;AA1CG;IADC,oBAAW;;gDACI;AAHP,0CAAe;;;;;;;;;;;;;;;;;;;;ACJ5B,uCAAmC;AACnC,0CAAoE;AAEpE;IAAwC,sCAAS;IAI7C,4BAAY,SAAgD;QAA5D,YACI,iBAAO,SAWV;QAVG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;QAEjB,CAAC;QACD,EAAE,CAAC,CAAC,SAAS,YAAY,kBAAkB,CAAC,CAAC,CAAC;YAC1C,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,eAAM,CAAC,CAAC,CAAC;YACrC,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC;QACrD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,KAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACxC,CAAC;;IACL,CAAC;IAED,2CAAc,GAAd,UAAe,UAAe;QAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,uCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,yCAAY,GAAZ;QACI,MAAM,CAAC;YACH,aAAa,EAAE,yBAAa,CAAC,kBAAkB;YAC/C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC;IACN,CAAC;IAED,qCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,uBAAW,CAAC,kBAAkB,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChD,CAAC;IAED,qCAAQ,GAAR;QACI,MAAM,CAAC,8CAA2C,IAAI,CAAC,kBAAkB,QAAI,CAAC;IAClF,CAAC;IAED,yCAAY,GAAZ,UAAa,OAAe,EAAE,OAAe;QACzC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACL,yBAAC;AAAD,CAAC,CApDuC,qBAAS,GAoDhD;AApDY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJ/B,uCAA0C;AAE1C,0CAAoE;AAEpE,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,uCAAG;IACH,qCAAE;IACF,2CAAK;AACT,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED;IAAuC,qCAAS;IAO5C,2BAAY,KAAyB;QAArC,YACI,iBAAO,SAMV;QALG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACjD,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;;IAC7B,CAAC;IAED,0CAAc,GAAd,UAAe,UAAe;QAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAS,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,sCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,wCAAY,GAAZ;QACI,MAAM,CAAC;YACH,aAAa,EAAE,yBAAa,CAAC,iBAAiB;YAC9C,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,iBAAiB;SACjC,CAAC;IACN,CAAC;IAED,oCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,uBAAW,CAAC,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,oCAAQ,GAAR;QACI,MAAM,CAAC,gCAA6B,IAAI,CAAC,KAAK,oBAAa,IAAI,CAAC,iBAAiB,QAAI,CAAC;IAC1F,CAAC;IAEL,wBAAC;AAAD,CAAC,CAhDsC,qBAAS,GAgD/C;AA3CG;IADC,mBAAU,CAAC,SAAS,CAAC;;gDACL;AALR,8CAAiB;;;;;;;;;;ACV9B,2CAA4C;AAC5C,sCASiB;AAKjB;IAAA;IAyEA,CAAC;IAvEU,sBAAe,GAAtB,UAAuB,MAAmC,EAAE,MAAgB;QACxE,EAAE,CAAC,CAAC,MAAM,YAAY,iBAAS,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,YAAY,qBAAS,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAEc,oBAAa,GAA5B,UAA6B,MAAiB,EAAE,MAAe;QAC3D,IAAI,kBAAkB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,CAAC,SAAS,EAAE,CAAC;QAEnB,EAAE,CAAC,CAAC,kBAAkB,IAAI,mBAAW,CAAC,eAAe,IAAI,kBAAkB,GAAG,mBAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC5G,MAAM,CAAC,IAAI,uBAAe,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACzB,KAAK,mBAAW,CAAC,UAAU;gBACvB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,4BAA4B;gBAChD,MAAM,CAAC,SAAS,CAAC;YACrB,KAAK,mBAAW,CAAC,iBAAiB;gBAC9B,MAAM,CAAC,IAAI,yBAAiB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,mBAAW,CAAC,kBAAkB;gBAC/B,MAAM,CAAC,IAAI,0BAAkB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvD,KAAK,mBAAW,CAAC,WAAW;gBACxB,MAAM,CAAC,IAAI,mBAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,mBAAW,CAAC,eAAe;gBAC5B,MAAM,CAAC,IAAI,uBAAe,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D;gBACI,MAAM,mCAAiC,kBAAoB,CAAC;QACpE,CAAC;IACL,CAAC;IAEc,oBAAa,GAA5B,UAA6B,SAAoB;QAC7C,IAAI,YAAuB,CAAC;QAC5B,EAAE,CAAC,CAAC,SAAS,YAAY,uBAAe,CAAC,CAAC,CAAC;YACvC,YAAY,GAAG,IAAI,uBAAe,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,yBAAiB,CAAC,CAAC,CAAC;YAChD,YAAY,GAAG,IAAI,yBAAiB,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,0BAAkB,CAAC,CAAC,CAAC;YACjD,YAAY,GAAG,IAAI,0BAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,mBAAW,CAAC,CAAC,CAAC;YAC1C,YAAY,GAAG,IAAI,mBAAW,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,uBAAe,CAAC,CAAC,CAAC;YAC9C,YAAY,GAAG,IAAI,uBAAe,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,YAAY,CAAC;IACxB,CAAC;IAEc,qBAAc,GAA7B,UAA8B,SAAc,EAAE,MAAe;QACzD,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,CAAC;QACX,CAAC;QAED,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC9B,KAAK,qBAAa,CAAC,eAAe;gBAC9B,MAAM,CAAC,IAAI,uBAAe,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC3D,KAAK,qBAAa,CAAC,iBAAiB;gBAChC,MAAM,CAAC,IAAI,yBAAiB,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC7D,KAAK,qBAAa,CAAC,kBAAkB;gBACjC,MAAM,CAAC,IAAI,0BAAkB,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC9D,KAAK,qBAAa,CAAC,WAAW;gBAC1B,MAAM,CAAC,IAAI,mBAAW,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACvD,KAAK,qBAAa,CAAC,eAAe;gBAC9B,MAAM,CAAC,IAAI,uBAAe,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACnE;gBACI,MAAM,wCAAqC,SAAS,CAAC,aAAa,OAAG,CAAC;QAC9E,CAAC;IACL,CAAC;IACL,aAAC;AAAD,CAAC;AAzEY,wBAAM;;;;;;;;;;ACfnB,2CAA0E;AAC1E,kDAAsD;AACtD,gDAAkD;AAClD,4CAA6E;AAC7E,wDAAkE;AAClE,sDAA8D;AAC9D,wDAAkE;AAClE,iDAAoD;AAcpD;IAiBI,6BAAY,QAAsC;QAC9C,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAEhD,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3B,KAAK,6BAAe,CAAC,cAAc;gBAC/B,IAAI,CAAC,MAAM,GAAG,4BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAClC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAC1C,KAAK,CAAC;YACV,KAAK,6BAAe,CAAC,sBAAsB;gBACvC,IAAI,CAAC,MAAM,GAAG,4BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;gBAClD,KAAK,CAAC;YACV,KAAK,6BAAe,CAAC,oBAAoB;gBACrC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;gBACxB,KAAK,CAAC;YACV,KAAK,6BAAe,CAAC,sBAAsB;gBACvC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC1B,KAAK,CAAC;YACV,KAAK,6BAAe,CAAC,eAAe;gBAChC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC1B,KAAK,CAAC;YACV,KAAK,6BAAe,CAAC,gBAAgB;gBACjC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC5B,KAAK,CAAC;YACV;gBACI,KAAK,CAAC;QACd,CAAC;IACL,CAAC;IAED,wCAAU,GAAV;QACI,MAAM,CAAC;YACH,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE;gBACP,CAAC,EAAE,IAAI,CAAC,KAAK;gBACb,CAAC,EAAE,IAAI,CAAC,KAAK;aAChB;YACD,WAAW,EAAE;gBACT,CAAC,EAAE,IAAI,CAAC,OAAO;gBACf,CAAC,EAAE,IAAI,CAAC,OAAO;aAClB;SACJ,CAAC;IACN,CAAC;IAED,2CAAa,GAAb,UAAc,SAAoB;QAC9B,IAAI,IAAI,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,+CAAiB,GAAjB;QACI,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,0BAAa,CAAC,eAAe,CAAC;QACnD,MAAM,CAAkB,CAAC,IAAI,4BAAe,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,6CAAe,GAAf,UAAgB,YAAuB;QACnC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IACpC,CAAC;IAED,6CAAe,GAAf;QACI,IAAI,mBAAmB,GAAc,EAAE,CAAC;QACxC,GAAG,CAAC,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,MAAM,CAAC,EAAE,CAAC;YAChE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC;IAC/B,CAAC;IAED,qCAAO,GAAP;QACI,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3B,eAAe;YACf,KAAK,6BAAe,CAAC,gBAAgB;gBACjC,MAAM,CAAC,IAAI,mCAAgB,EAAE,CAAC,cAAc,CAAC;oBACzC,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;iBACpB,CAAC,CAAC;YACP,cAAc;YACd,KAAK,6BAAe,CAAC,eAAe;gBAChC,MAAM,CAAC,IAAI,iCAAe,EAAE,CAAC,cAAc,CAAC;oBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,IAAI,EAAE,IAAI,CAAC,IAAI;iBAClB,CAAC,CAAC;YACP,kBAAkB;YAClB,KAAK,6BAAe,CAAC,cAAc;gBAC/B,MAAM,CAAC,IAAI,+BAAc,EAAE,CAAC,cAAc,CAAC;oBACvC,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,MAAM,EAAE,4BAAc,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAClC,CAAC,CAAC;YACP,gBAAgB;YAChB,KAAK,6BAAe,CAAC,sBAAsB;gBACvC,MAAM,CAAC,IAAI,+CAAsB,EAAE,CAAC,cAAc,CAAC;oBAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,MAAM,EAAE,4BAAc,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;YACP,KAAK,6BAAe,CAAC,oBAAoB;gBACrC,MAAM,CAAC,IAAI,2CAAoB,EAAE,CAAC,cAAc,CAAC;oBAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,CAAC,EAAE,IAAI,CAAC,KAAK;oBACb,CAAC,EAAE,IAAI,CAAC,KAAK;iBAChB,CAAC,CAAC;YACP,KAAK,6BAAe,CAAC,sBAAsB;gBACvC,MAAM,CAAC,IAAI,+CAAsB,EAAE,CAAC,cAAc,CAAC;oBAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,CAAC,EAAE,IAAI,CAAC,OAAO;oBACf,CAAC,EAAE,IAAI,CAAC,OAAO;iBAClB,CAAC,CAAC;YACP;gBACI,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IAED,yCAAW,GAAX;QACI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,6BAAe,CAAC,cAAc,CAAC;IACnE,CAAC;IAED,iDAAmB,GAAnB;QACI,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,6BAAe,CAAC,sBAAsB,CAAC;IAC3E,CAAC;IAED,8CAAgB,GAAhB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,4BAAc,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,+CAAiB,GAAjB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,4BAAc,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,iDAAmB,GAAnB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,4BAAc,CAAC,OAAO,CAAC;IAClD,CAAC;IAEL,0BAAC;AAAD,CAAC;AAvKY,kDAAmB;;;;;;;;;;ACrBhC,2CAA4C;AAC5C,sCAUiB;AAEjB;IAAA;IA0EA,CAAC;IAxEU,wBAAiB,GAAxB,UAAyB,MAAqC;QAC1D,EAAE,CAAC,CAAC,MAAM,YAAY,mBAAW,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,YAAY,qBAAS,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAEc,oBAAa,GAA5B,UAA6B,MAAiB;QAC1C,IAAI,oBAAoB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,SAAS,EAAE,CAAC;QAEnB,EAAE,CAAC,CAAC,oBAAoB,IAAI,qBAAa,CAAC,cAAc,IAAI,oBAAoB,IAAI,qBAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACnH,MAAM,CAAC,IAAI,sBAAc,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CACN,oBAAoB,IAAI,qBAAa,CAAC,sBAAsB;YAC5D,oBAAoB,IAAI,qBAAa,CAAC,0BAC1C,CAAC,CAAC,CAAC;YACC,MAAM,CAAC,IAAI,8BAAsB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC3B,KAAK,qBAAa,CAAC,oBAAoB;gBACnC,MAAM,CAAC,IAAI,4BAAoB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzD,KAAK,qBAAa,CAAC,sBAAsB;gBACrC,MAAM,CAAC,IAAI,8BAAsB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC3D,KAAK,qBAAa,CAAC,gBAAgB;gBAC/B,MAAM,CAAC,IAAI,wBAAgB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACrD,KAAK,qBAAa,CAAC,eAAe;gBAC9B,MAAM,CAAC,IAAI,uBAAe,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACpD;gBACI,MAAM,qCAAmC,oBAAsB,CAAC;QACxE,CAAC;IACL,CAAC;IAEc,sBAAe,GAA9B,UAA+B,WAAwB;QACnD,IAAI,cAA2B,CAAC;QAChC,EAAE,CAAC,CAAC,WAAW,YAAY,sBAAc,CAAC,CAAC,CAAC;YACxC,cAAc,GAAG,IAAI,sBAAc,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,8BAAsB,CAAC,CAAC,CAAC;YACvD,cAAc,GAAG,IAAI,8BAAsB,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,4BAAoB,CAAC,CAAC,CAAC;YACrD,cAAc,GAAG,IAAI,4BAAoB,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,8BAAsB,CAAC,CAAC,CAAC;YACvD,cAAc,GAAG,IAAI,8BAAsB,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,wBAAgB,CAAC,CAAC,CAAC;YACjD,cAAc,GAAG,IAAI,wBAAgB,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,YAAY,uBAAe,CAAC,CAAC,CAAC;YAChD,cAAc,GAAG,IAAI,uBAAe,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,cAAc,CAAC;IAC1B,CAAC;IAEc,qBAAc,GAA7B,UAA8B,WAAgB;QAC3C,MAAM,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YACjC,KAAK,uBAAe,CAAC,cAAc;gBAC/B,MAAM,CAAC,IAAI,sBAAc,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5D,KAAK,uBAAe,CAAC,sBAAsB;gBACvC,MAAM,CAAC,IAAI,8BAAsB,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACpE,KAAK,uBAAe,CAAC,oBAAoB;gBACrC,MAAM,CAAC,IAAI,4BAAoB,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAClE,KAAK,uBAAe,CAAC,sBAAsB;gBACvC,MAAM,CAAC,IAAI,8BAAsB,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACpE,KAAK,uBAAe,CAAC,gBAAgB;gBACjC,MAAM,CAAC,IAAI,wBAAgB,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC9D,KAAK,uBAAe,CAAC,eAAe;gBAChC,MAAM,CAAC,IAAI,uBAAe,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC7D;gBACI,MAAM,4CAAyC,WAAW,CAAC,eAAe,OAAG,CAAC;QACtF,CAAC;IACL,CAAC;IACL,aAAC;AAAD,CAAC;AA1EY,wBAAM;;;;;;;;;;;;;;;;;;;ACbnB,oCAA8E;AAK9E,IAAa,mBAAmB;IAI5B,6BAAoB,UAAsB,EAAU,QAAkB;QAAlD,eAAU,GAAV,UAAU,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAU;IAAI,CAAC;IAEpD,qCAAO,GAAP;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7D,CAAC;IAE6B,sCAAQ,GAAR;QAC1B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7F,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAEL,0BAAC;AAAD,CAAC;AAT0B;IAAtB,mBAAY,CAAC,OAAO,CAAC;;;;kDAErB;AAE6B;IAA7B,mBAAY,CAAC,cAAc,CAAC;;;;mDAG5B;AAbQ,mBAAmB;IAH/B,gBAAS,CAAC;QACP,QAAQ,EAAE,cAAc;KAC3B,CAAC;qCAKkC,iBAAU,EAAoB,eAAQ;GAJ7D,mBAAmB,CAe/B;AAfY,kDAAmB;;;;;;;;;;ACLhC,uDAA6D;AAApD,wEAAmB;;;;;;;;;;;;;ACA5B,oCAA6B;;;;;;;;;;ACM7B,IAAiB,aAAa,CA8E7B;AA9ED,WAAiB,aAAa;IACb,oBAAM,GAAG,WAAW,CAAC;IACrB,iBAAG,GAAG,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC;IAC1C,uBAAS,GAAG,aAAa,CAAC,MAAM,GAAG,kBAAkB,CAAC;IACtD,uBAAS,GAAG,aAAa,CAAC,MAAM,GAAG,0BAA0B,CAAC;IAC9D,uBAAS,GAAG,aAAa,CAAC,MAAM,GAAG,mBAAmB,CAAC;IACvD,sBAAQ,GAAG,aAAa,CAAC,MAAM,GAAG,iBAAiB,CAAC;IACpD,yBAAW,GAAG,aAAa,CAAC,MAAM,GAAG,oBAAoB,CAAC;IAC1D,oBAAM,GAAG,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC;IAChD,yBAAW,GAAG,aAAa,CAAC,MAAM,GAAG,qBAAqB,CAAC;IAExE,mBAA0B,IAAY;QAClC,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,GAAG;YACvB,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IALe,uBAAS,YAKxB;IAED,oBAA2B,IAAY;QACnC,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,WAAW;YAC/B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IALe,wBAAU,aAKzB;IAED,sBAA6B,IAAY;QACrC,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI;SAChB,CAAC;IACN,CAAC;IALe,0BAAY,eAK3B;IAED,yBAAgC,MAAc;QAC1C,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,OAAO,EAAE,MAAM;SAClB,CAAC;IACN,CAAC;IALe,6BAAe,kBAK9B;IAED,wBAA+B,IAAY,EAAE,IAAY;QACrD,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,OAAO,EAAE;gBACL,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;aACb;SACJ,CAAC;IACN,CAAC;IARe,4BAAc,iBAQ7B;IAED,wBAA+B,IAAY,EAAE,OAAe;QACxD,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,OAAO,EAAE;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC;IACN,CAAC;IARe,4BAAc,iBAQ7B;IAED,iBAAwB,MAAc,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,SAAoB;QACpG,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,QAAQ;YAC5B,OAAO,EAAE;gBACL,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,GAAG;gBACH,SAAS;aACZ;SACJ,CAAC;IACN,CAAC;IAXe,qBAAO,UAWtB;IAED,oBAA2B,KAAY;QACnC,MAAM,CAAC;YACH,IAAI,EAAE,aAAa,CAAC,WAAW;YAC/B,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC;IALe,wBAAU,aAKzB;AACL,CAAC,EA9EgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA8E7B;;;;;;;;;;AC/ED,IAAiB,YAAY,CAqF5B;AArFD,WAAiB,YAAY;IACZ,mBAAM,GAAG,UAAU,CAAC;IAEpB,sBAAS,GAAG,YAAY,CAAC,MAAM,GAAG,iBAAiB,CAAC;IACpD,sBAAS,GAAG,YAAY,CAAC,MAAM,GAAG,kBAAkB,CAAC;IACrD,mBAAM,GAAG,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC;IAC9C,gBAAG,GAAG,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC;IAExC,uBAAU,GAAG,YAAY,CAAC,MAAM,GAAG,kBAAkB,CAAC;IACtD,wBAAW,GAAG,YAAY,CAAC,MAAM,GAAG,mBAAmB,CAAC;IACxD,0BAAa,GAAG,YAAY,CAAC,MAAM,GAAG,qBAAqB,CAAC;IAC5D,2BAAc,GAAG,YAAY,CAAC,MAAM,GAAG,sBAAsB,CAAC;IAE3E;QACI,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,GAAG;SACzB,CAAC;IACN,CAAC;IAJe,qBAAQ,WAIvB;IAED,qBAA4B,OAAe;QACvC,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,MAAM;YACzB,OAAO,EAAE,OAAO;SACnB,CAAC;IACN,CAAC;IALe,wBAAW,cAK1B;IAED,wBAA+B,KAAY;QACvC,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC;IALe,2BAAc,iBAK7B;IAED,uBAA8B,EAAU,EAAE,IAAY;QAClD,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,IAAI;aACb;SACJ,CAAC;IACN,CAAC;IARe,0BAAa,gBAQ5B;IAED,wBAA+B,EAAU,EAAE,MAAmB;QAC1D,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,UAAU;YAC7B,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,MAAM,EAAE,MAAM;aACjB;SACJ,CAAC;IACN,CAAC;IARe,2BAAc,iBAQ7B;IAED,yBAAgC,EAAU,EAAE,KAAa,EAAE,MAAmB;QAC1E,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,WAAW;YAC9B,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM;aACjB;SACJ,CAAC;IACN,CAAC;IATe,4BAAe,kBAS9B;IAED,2BAAkC,EAAU,EAAE,KAAa,EAAE,MAAmB;QAC5E,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,aAAa;YAChC,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM;aACjB;SACJ,CAAC;IACN,CAAC;IATe,8BAAiB,oBAShC;IAED,4BAAmC,EAAU,EAAE,QAAgB,EAAE,QAAgB;QAC7E,MAAM,CAAC;YACH,IAAI,EAAE,YAAY,CAAC,cAAc;YACjC,OAAO,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;IACN,CAAC;IATe,+BAAkB,qBASjC;AACL,CAAC,EArFgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAqF5B;;;;;;;;;;;;;AC1FD,oCAAyB;AACzB,oCAAwB;;;;;;;;;;;;;;;;;;;ACDxB,oCAA2C;AAC3C,uCAAyC;AAEzC,yCAAgD;AAChD,qCAAoC;AAEpC,yBAA8B;AAC9B,wBAA+B;AAC/B,yBAA0C;AAE1C,wCAA2C;AAM3C,IAAa,aAAa;IA8BtB,uBAAoB,QAAiB,EAAU,MAAc,EAAU,KAAsB;QAA7F,iBAAkG;QAA9E,aAAQ,GAAR,QAAQ,CAAS;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAiB;QA5BhE,oBAAe,GAAQ,IAAI,CAAC,QAAQ;aAC5D,MAAM,CAAC,uBAAa,CAAC,GAAG,EAAE,uBAAa,CAAC,SAAS,CAAC;aAClD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAnC,CAAmC,CAAC;aAClD,EAAE,CAAC,iBAAO;YACP,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEsB,YAAO,GAAQ,IAAI,CAAC,QAAQ;aACpD,MAAM,CAAC,uBAAa,CAAC,MAAM,CAAC;aAC5B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAnC,CAAmC,CAAC;aAClD,EAAE,CAAC,iBAAO;YACP,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAM,SAAS,GAAW,OAAO,CAAC,IAAI,CAAC,gBAAM,IAAI,aAAM,CAAC,SAAS,EAAhB,CAAgB,CAAC,CAAC;gBACnE,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEsB,cAAS,GAAQ,IAAI,CAAC,QAAQ;aACtD,MAAM,CAAC,uBAAa,CAAC,SAAS,CAAC;aAC/B,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,OAAO,CAAC,OAAO,EAAtB,CAAsB,CAAC;aACrC,EAAE,CAAC,iBAAO;YACP,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IAE0F,CAAC;IACtG,oBAAC;AAAD,CAAC;AA7BgC;IAA5B,gBAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;sDAMrB;AAEsB;IAA5B,gBAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;8CAWrB;AAEsB;IAA5B,gBAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gDAKrB;AA5BE,aAAa;IADzB,iBAAU,EAAE;qCA+BqB,iBAAO,EAAkB,eAAM,EAAiB,aAAK;GA9B1E,aAAa,CA+BzB;AA/BY,sCAAa;;;;;;;;;;;;;;;;;;;AChB1B,oCAA2C;AAC3C,uCAAyC;AAEzC,yCAAgD;AAChD,qCAAoC;AAEpC,yBAA8B;AAC9B,wBAA+B;AAC/B,yBAA0C;AAI1C,wCAAyD;AAIzD,IAAa,YAAY;IAwBrB,sBAAoB,QAAiB,EAAU,MAAc,EAAU,KAAsB;QAA7F,iBAAiG;QAA7E,aAAQ,GAAR,QAAQ,CAAS;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAiB;QAtBlE,YAAO,GAAQ,IAAI,CAAC,QAAQ;aAClD,MAAM,CAAC,sBAAY,CAAC,MAAM,CAAC;aAC3B,GAAG,CAAC,gBAAM,IAAI,YAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAa,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAA7D,CAA6D,CAAC;aAC5E,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAlC,CAAkC,CAAC;aACjD,EAAE,CAAC,gBAAM;YACN,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACL,CAAC,CAAC,CAAC;QAEoB,SAAI,GAAQ,IAAI,CAAC,QAAQ;aAC/C,MAAM,CAAC,sBAAY,CAAC,GAAG,CAAC;aACxB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAlC,CAAkC,CAAC;aACjD,GAAG,CAAC,gBAAM,IAAI,aAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAzB,CAAyB,CAAC;aACxC,EAAE,CAAC,mBAAS;YACT,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IAEyF,CAAC;IACrG,mBAAC;AAAD,CAAC;AAvB8B;IAA1B,gBAAM,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;;6CAWnB;AAEoB;IAA1B,gBAAM,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;;0CAOnB;AAtBE,YAAY;IADxB,iBAAU,EAAE;qCAyBqB,iBAAO,EAAkB,eAAM,EAAiB,aAAK;GAxB1E,YAAY,CAyBxB;AAzBY,oCAAY;;;;;;;;;;AChBzB,mDAAsF;AAG7E,gEAAwB;AAAiB,yEAAoB;AAFtE,yCAAqC;AAEF,yCAAa;;;;;;;;;;ACDhD,IAAM,YAAY,GAAa,EAAE,CAAC;AAElC,mBAAwB,KAAoB;IAApB,4CAAoB;IACxC,MAAM,CAAC,KAAK,CAAC;AACjB,CAAC;AAFD,4BAEC;;;;;;;;;;ACJD;IAAA;IAUA,CAAC;IATG,4BAAS,GAAT;QACI,4BAA4B;QAC5B,MAAM,CAAC;IACX,CAAC;IAED,uCAAuC;IACvC,6BAAU,GAAV,UAAW,MAAyB;QAChC,4BAA4B;IAChC,CAAC;IACL,eAAC;AAAD,CAAC;AAVY,4BAAQ;;;;;;;;;;;;;;;;;;;ACFrB,oCAA2C;AAI3C,uCAAqE;AAErE,mDAA2F;AAI3F,2CAAsC;AACtC,wCAAgC;AAGhC,IAAa,WAAW;IAMpB;QACI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,kCAAY,GAAZ;QACI,IAAM,MAAM,GAAsB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,CAAC;YACH,iBAAiB,EAAE,MAAM;YACzB,aAAa,EAAE,IAAI,CAAC,UAAU;SACjC,CAAC;IACN,CAAC;IAED,uCAAiB,GAAjB;QACI,WAAW;QACX,+GAA+G;QAC/G,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAU,MAAO,CAAC,OAAO,IAAU,MAAO,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;YACtG,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAQ,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,CAAC;YACF,IAAI,CAAC,YAAY,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,+BAAS,GAAT,UAAU,OAAY;QAAtB,iBAMC;QALG,MAAM,CAAC,UAAC,KAAU,EAAE,MAAc;YAC9B,IAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzC,KAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC;IACN,CAAC;IAED,iCAAW,GAAX;QACI,IAAI,CAAC,wBAAwB,GAAG,IAAI,qCAAiB,EAAE;aAClD,cAAc,CAAC,mBAAO,CAAC,GAAsD,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,UAAU,GAAW,mBAAO,CAAC,GAAyD,CAAE;aACxF,GAAG,CAAC,gBAAM,IAAI,WAAI,eAAM,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAnC,CAAmC,CAAC,CAAC;IAC5D,CAAC;IAED,sCAAgB,GAAhB;QACI,IAAI,MAAM,GAAsB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAC9D,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAClB,CAAC;IACL,kBAAC;AAAD,CAAC;AAtDY,WAAW;IADvB,iBAAU,EAAE;;GACA,WAAW,CAsDvB;AAtDY,kCAAW;;;;;;;;;;ACdxB,mDAA2F;AAE3F;IAEI,eAAoB,gBAAwB;QAAxB,qBAAgB,GAAhB,gBAAgB,CAAQ;IAAI,CAAC;IAEjD,yBAAS,GAAT;QACI,IAAI,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,MAAyB,CAAC;QAE9B,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACnB,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtD,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC9D,MAAM,GAAG,IAAI,qCAAiB,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAClB,CAAC;IAED,0BAAU,GAAV,UAAW,MAAyB;QAChC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IACL,YAAC;AAAD,CAAC;AArBY,sBAAK;;;;;;;;;;ACFlB,6FAA6F;AAC7F,6BAAoC,cAAsB;IACtD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC;AAJD,kDAIC;AAED,+BAAsC,IAAY;IAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAFD,sDAEC;;;;;;;;;;;;;ACTD,oCAAgC;;;;;;;;;;ACEhC,sDAA6F;AAC7F,sCAA2F;AAE9E,oBAAY,GAAW;IAChC;QACI,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,MAAM;KACpB;IACD;QACI,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,0BAAmB;QAC9B,WAAW,EAAE,CAAC,sBAAe,CAAC;KACjC;IACD;QACI,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,yCAAkB;KAChC;IACD;QACI,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,0BAAmB;KACjC;CACJ,CAAC;;;;;;;;;;;;;ACxBF,oCAAqC;AACrC,oCAAkC;;;;;;;;;;;;;;;;ACDlC,oCAA6D;AAW7D,IAAa,gBAAgB;IAA7B;IAAgC,CAAC;IAAD,uBAAC;AAAD,CAAC;AAApB,gBAAgB;IAT5B,gBAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,mBAAO,CAAC,GAA2B,CAAC;QAC9C,MAAM,EAAE;YACJ,mBAAO,CAAC,GAA4C,CAAC;YACrD,mBAAO,CAAC,GAA2B,CAAC;SACvC;QACD,aAAa,EAAE,wBAAiB,CAAC,IAAI;KACxC,CAAC;GACW,gBAAgB,CAAI;AAApB,4CAAgB;;;;;;;;;;ACV7B,uCAAwD;AAExD,wCAA0D;AAC1D,yCAAoD;AACpD,uCAAyD;AACzD,0CAA+D;AAE/D,IAAM,SAAS,GACR,qBAAY,QACZ,mBAAW,EACX,oBAAW,EACX,yBAAc,CACpB,CAAC;AAEW,2BAAmB,GAAU,EAAG,CAAC;AAEjC,eAAO,GAAyB,qBAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;;AChBhG;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA,C;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,SAAS;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACzkBA;AACA;AACA;;;;;;;ACFA,kBAAkB,OAAO,KAAK,8dAA8d,sFAAsF,cAAc,KAAK,mBAAmB,aAAa,YAAY,KAAK,eAAe,2CAA2C,KAAK,yDAAyD,EAAE,EAAE,EAAE,WAAW,KAAK,gBAAgB,yBAAyB,KAAK,qeAAqe,WAAW,KAAK,iDAAiD,aAAa,iBAAiB,kBAAkB,mBAAmB,aAAa,iEAAiE,WAAW,kDAAkD,mDAAmD,EAAE,QAAQ,KAAK,2DAA2D,+BAA+B,OAAO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","file":"app.uhk.js","sourcesContent":["export * from './KeyAction';\r\nexport * from './KeystrokeAction';\r\nexport * from './MouseAction';\r\nexport * from './NoneAction';\r\nexport * from './PlayMacroAction';\r\nexport * from './SwitchKeymapAction';\r\nexport * from './SwitchLayerAction';\r\nexport * from './helper';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/index.ts","export function assertUInt8(target: any, key: string) {\r\n return assertInteger(target, key, 0, 0xFF);\r\n}\r\n\r\nexport function assertInt8(target: any, key: string) {\r\n return assertInteger(target, key, -0x80, 0x7F);\r\n}\r\n\r\nexport function assertUInt16(target: any, key: string) {\r\n return assertInteger(target, key, 0, 0xFFFF);\r\n}\r\n\r\nexport function assertInt16(target: any, key: string) {\r\n return assertInteger(target, key, -0x8000, 0x7FFF);\r\n}\r\n\r\nexport function assertUInt32(target: any, key: string) {\r\n return assertInteger(target, key, 0, 0xFFFFFFFF);\r\n}\r\n\r\nexport function assertInt32(target: any, key: string) {\r\n return assertInteger(target, key, -0x80000000, 0x7FFFFFFF);\r\n}\r\n\r\nexport function assertCompactLength(target: any, key: string) {\r\n return assertUInt16(target, key);\r\n}\r\n\r\nfunction assertInteger(target: any, key: string, min: number, max: number) {\r\n const priv = '_' + key;\r\n\r\n function getter() {\r\n return this[priv];\r\n }\r\n\r\n function setter(newVal: any) {\r\n if (this[priv] !== newVal) {\r\n if (newVal < min || newVal > max) {\r\n throw `${target.constructor.name}.${key}: ` +\r\n `Integer ${newVal} is outside the valid [${min}, ${max}] interval`;\r\n }\r\n this[priv] = newVal;\r\n }\r\n }\r\n\r\n Object.defineProperty(target, key, {\r\n get: getter,\r\n set: setter,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n}\r\n\r\nexport function assertEnum(enumerated: E) {\r\n return function(target: any, key: string) {\r\n const priv = '_' + key;\r\n\r\n function getter() {\r\n return this[priv];\r\n }\r\n\r\n function setter(newVal: any) {\r\n if (this[priv] !== newVal) {\r\n if (enumerated[newVal] === undefined) {\r\n throw `${target.constructor.name}.${key}: ${newVal} is not enum`;\r\n }\r\n this[priv] = newVal;\r\n }\r\n }\r\n\r\n Object.defineProperty(target, key, {\r\n get: getter,\r\n set: setter,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/assert.ts","/* tslint:disable:variable-name */\r\nconst __svg__ = { path: '../../../images/icons/**/*.svg', name: 'assets/compiled_sprite.svg' };\r\n/* tslint:enable:variable-name */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MapperService {\r\n\r\n private scanCodeTextMap: Map;\r\n\r\n private scanCodeFileName: Map;\r\n private nameToFileName: Map;\r\n\r\n constructor() {\r\n this.initScanCodeTextMap();\r\n this.initScanCodeFileName();\r\n this.initNameToFileNames();\r\n }\r\n\r\n public scanCodeToText(scanCode: number): string[] {\r\n return this.scanCodeTextMap.get(scanCode);\r\n }\r\n\r\n public hasScancodeIcon(scancode: number): boolean {\r\n return this.scanCodeFileName.has(scancode);\r\n }\r\n\r\n public scanCodeToSvgImagePath(scanCode: number): string {\r\n let fileName: string = this.scanCodeFileName.get(scanCode);\r\n if (fileName) {\r\n return 'assets/compiled_sprite.svg#' + fileName;\r\n }\r\n return undefined;\r\n }\r\n\r\n public getIcon(iconName: string): string {\r\n return 'assets/compiled_sprite.svg#' + this.nameToFileName.get(iconName);\r\n }\r\n\r\n public modifierMapper(x: number) {\r\n if (x < 8) {\r\n return Math.floor(x / 2) * 4 + 1 - x; // 1, 0, 3, 2, 5, 4, 7, 6\r\n } else {\r\n return x;\r\n }\r\n }\r\n\r\n // TODO: read the mapping from JSON\r\n private initScanCodeTextMap(): void {\r\n this.scanCodeTextMap = new Map();\r\n this.scanCodeTextMap.set(4, ['A']);\r\n this.scanCodeTextMap.set(5, ['B']);\r\n this.scanCodeTextMap.set(6, ['C']);\r\n this.scanCodeTextMap.set(7, ['D']);\r\n this.scanCodeTextMap.set(8, ['E']);\r\n this.scanCodeTextMap.set(9, ['F']);\r\n this.scanCodeTextMap.set(10, ['G']);\r\n this.scanCodeTextMap.set(11, ['H']);\r\n this.scanCodeTextMap.set(12, ['I']);\r\n this.scanCodeTextMap.set(13, ['J']);\r\n this.scanCodeTextMap.set(14, ['K']);\r\n this.scanCodeTextMap.set(15, ['L']);\r\n this.scanCodeTextMap.set(16, ['M']);\r\n this.scanCodeTextMap.set(17, ['N']);\r\n this.scanCodeTextMap.set(18, ['O']);\r\n this.scanCodeTextMap.set(19, ['P']);\r\n this.scanCodeTextMap.set(20, ['Q']);\r\n this.scanCodeTextMap.set(21, ['R']);\r\n this.scanCodeTextMap.set(22, ['S']);\r\n this.scanCodeTextMap.set(23, ['T']);\r\n this.scanCodeTextMap.set(24, ['U']);\r\n this.scanCodeTextMap.set(25, ['V']);\r\n this.scanCodeTextMap.set(26, ['W']);\r\n this.scanCodeTextMap.set(27, ['X']);\r\n this.scanCodeTextMap.set(28, ['Y']);\r\n this.scanCodeTextMap.set(29, ['Z']);\r\n this.scanCodeTextMap.set(30, ['1', '!']);\r\n this.scanCodeTextMap.set(31, ['2', '@']);\r\n this.scanCodeTextMap.set(32, ['3', '#']);\r\n this.scanCodeTextMap.set(33, ['4', '$']);\r\n this.scanCodeTextMap.set(34, ['5', '%']);\r\n this.scanCodeTextMap.set(35, ['6', '^']);\r\n this.scanCodeTextMap.set(36, ['7', '&']);\r\n this.scanCodeTextMap.set(37, ['8', '*']);\r\n this.scanCodeTextMap.set(38, ['9', '(']);\r\n this.scanCodeTextMap.set(39, ['0', ')']);\r\n this.scanCodeTextMap.set(40, ['Enter']);\r\n this.scanCodeTextMap.set(41, ['Esc']);\r\n this.scanCodeTextMap.set(42, ['Backspace']);\r\n this.scanCodeTextMap.set(43, ['Tab']);\r\n this.scanCodeTextMap.set(44, ['Space']);\r\n this.scanCodeTextMap.set(45, ['-', '_']);\r\n this.scanCodeTextMap.set(46, ['=', '+']);\r\n this.scanCodeTextMap.set(47, ['[', '{']);\r\n this.scanCodeTextMap.set(48, [']', '}']);\r\n this.scanCodeTextMap.set(49, ['\\\\', '|']);\r\n this.scanCodeTextMap.set(50, ['NON_US_HASHMARK_AND_TILDE']);\r\n this.scanCodeTextMap.set(51, [';', ':']);\r\n this.scanCodeTextMap.set(52, ['\\'', '\"']);\r\n this.scanCodeTextMap.set(53, ['`', '~']);\r\n this.scanCodeTextMap.set(54, [',', '<']);\r\n this.scanCodeTextMap.set(55, ['.', '>']);\r\n this.scanCodeTextMap.set(56, ['/', '?']);\r\n this.scanCodeTextMap.set(57, ['Caps Lock']);\r\n this.scanCodeTextMap.set(58, ['F1']);\r\n this.scanCodeTextMap.set(59, ['F2']);\r\n this.scanCodeTextMap.set(60, ['F3']);\r\n this.scanCodeTextMap.set(61, ['F4']);\r\n this.scanCodeTextMap.set(62, ['F5']);\r\n this.scanCodeTextMap.set(63, ['F6']);\r\n this.scanCodeTextMap.set(64, ['F7']);\r\n this.scanCodeTextMap.set(65, ['F8']);\r\n this.scanCodeTextMap.set(66, ['F9']);\r\n this.scanCodeTextMap.set(67, ['F10']);\r\n this.scanCodeTextMap.set(68, ['F11']);\r\n this.scanCodeTextMap.set(69, ['F12']);\r\n this.scanCodeTextMap.set(70, ['PrtScn']);\r\n this.scanCodeTextMap.set(71, ['Scroll Lock']);\r\n this.scanCodeTextMap.set(72, ['Pause']);\r\n this.scanCodeTextMap.set(73, ['Insert']);\r\n this.scanCodeTextMap.set(74, ['Home']);\r\n this.scanCodeTextMap.set(75, ['PgUp']);\r\n this.scanCodeTextMap.set(76, ['Del']);\r\n this.scanCodeTextMap.set(77, ['End']);\r\n this.scanCodeTextMap.set(78, ['PgDn']);\r\n this.scanCodeTextMap.set(79, ['Right Arrow']);\r\n this.scanCodeTextMap.set(80, ['Left Arrow']);\r\n this.scanCodeTextMap.set(81, ['Down Arrow']);\r\n this.scanCodeTextMap.set(82, ['Up Arrow']);\r\n this.scanCodeTextMap.set(83, ['Num Lock']);\r\n this.scanCodeTextMap.set(84, ['/']);\r\n this.scanCodeTextMap.set(85, ['*']);\r\n this.scanCodeTextMap.set(86, ['-']);\r\n this.scanCodeTextMap.set(87, ['+']);\r\n this.scanCodeTextMap.set(88, ['Enter']);\r\n this.scanCodeTextMap.set(89, ['end', '1']);\r\n this.scanCodeTextMap.set(90, ['2']);\r\n this.scanCodeTextMap.set(91, ['pgdn', '3']);\r\n this.scanCodeTextMap.set(92, ['4']);\r\n this.scanCodeTextMap.set(93, ['5']);\r\n this.scanCodeTextMap.set(94, ['6']);\r\n this.scanCodeTextMap.set(95, ['home', '7']);\r\n this.scanCodeTextMap.set(96, ['8']);\r\n this.scanCodeTextMap.set(97, ['pgup', '9']);\r\n this.scanCodeTextMap.set(98, ['Insert', '0']);\r\n this.scanCodeTextMap.set(99, ['Del', '.']);\r\n this.scanCodeTextMap.set(104, ['F13']);\r\n this.scanCodeTextMap.set(105, ['F14']);\r\n this.scanCodeTextMap.set(106, ['F15']);\r\n this.scanCodeTextMap.set(107, ['F16']);\r\n this.scanCodeTextMap.set(108, ['F17']);\r\n this.scanCodeTextMap.set(109, ['F18']);\r\n this.scanCodeTextMap.set(110, ['F19']);\r\n this.scanCodeTextMap.set(111, ['F20']);\r\n this.scanCodeTextMap.set(112, ['F21']);\r\n this.scanCodeTextMap.set(113, ['F22']);\r\n this.scanCodeTextMap.set(114, ['F23']);\r\n this.scanCodeTextMap.set(115, ['F24']);\r\n this.scanCodeTextMap.set(118, ['Menu']);\r\n this.scanCodeTextMap.set(176, ['00']);\r\n this.scanCodeTextMap.set(177, ['000']);\r\n this.scanCodeTextMap.set(232, ['Play']);\r\n this.scanCodeTextMap.set(233, ['Stop']);\r\n this.scanCodeTextMap.set(234, ['Prev']);\r\n this.scanCodeTextMap.set(235, ['Next']);\r\n this.scanCodeTextMap.set(236, ['Eject']);\r\n this.scanCodeTextMap.set(237, ['Vol +']);\r\n this.scanCodeTextMap.set(238, ['Vol -']);\r\n this.scanCodeTextMap.set(239, ['Mute']);\r\n this.scanCodeTextMap.set(240, ['WWW']);\r\n this.scanCodeTextMap.set(241, ['Bckwrd']);\r\n this.scanCodeTextMap.set(242, ['Frwrd']);\r\n this.scanCodeTextMap.set(243, ['Cancel']);\r\n }\r\n\r\n private initScanCodeFileName(): void {\r\n this.scanCodeFileName = new Map();\r\n this.scanCodeFileName.set(79, 'icon-kbd__mod--arrow-right');\r\n this.scanCodeFileName.set(80, 'icon-kbd__mod--arrow-left');\r\n this.scanCodeFileName.set(81, 'icon-kbd__mod--arrow-down');\r\n this.scanCodeFileName.set(82, 'icon-kbd__mod--arrow-up');\r\n this.scanCodeFileName.set(118, 'icon-kbd__mod--menu');\r\n }\r\n\r\n private initNameToFileNames(): void {\r\n this.nameToFileName = new Map();\r\n this.nameToFileName.set('toggle', 'icon-kbd__fn--toggle');\r\n this.nameToFileName.set('switch-keymap', 'icon-kbd__mod--switch-keymap');\r\n this.nameToFileName.set('macro', 'icon-icon__macro');\r\n this.nameToFileName.set('shift', 'icon-kbd__default--modifier-shift');\r\n this.nameToFileName.set('option', 'icon-kbd__default--modifier-option');\r\n this.nameToFileName.set('command', 'icon-kbd__default--modifier-command');\r\n this.nameToFileName.set('mouse', 'icon-kbd__mouse');\r\n this.nameToFileName.set('left-arrow', 'icon-kbd__mod--arrow-left');\r\n this.nameToFileName.set('right-arrow', 'icon-kbd__mod--arrow-right');\r\n this.nameToFileName.set('down-arrow', 'icon-kbd__mod--arrow-down');\r\n this.nameToFileName.set('up-arrow', 'icon-kbd__mod--arrow-up');\r\n this.nameToFileName.set('scroll-left', 'icon-kbd__mouse--scroll-left');\r\n this.nameToFileName.set('scroll-right', 'icon-kbd__mouse--scroll-right');\r\n this.nameToFileName.set('scroll-down', 'icon-kbd__mouse--scroll-down');\r\n this.nameToFileName.set('scroll-up', 'icon-kbd__mouse--scroll-up');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/services/mapper.service.ts","export * from './keymap';\r\nexport * from './macro';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/actions/index.ts","import '@ngrx/core/add/operator/select';\r\nimport { Action } from '@ngrx/store';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport { Helper as KeyActionHelper, KeyAction, SwitchKeymapAction } from '../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../config-serializer/config-items/Keymap';\r\nimport { Macro } from '../../config-serializer/config-items/Macro';\r\nimport { UserConfiguration } from '../../config-serializer/config-items/UserConfiguration';\r\nimport { Layer } from '../../config-serializer/config-items/Layer';\r\nimport { Module } from '../../config-serializer/config-items/Module';\r\nimport { KeymapActions, MacroActions } from '../actions';\r\nimport { AppState } from '../index';\r\n\r\nconst initialState: UserConfiguration = new UserConfiguration();\r\n\r\n/* tslint:disable:no-switch-case-fall-through */\r\n// tslint bug: https://github.com/palantir/tslint/issues/1538\r\n\r\nexport default function (state = initialState, action: Action): UserConfiguration {\r\n const changedUserConfiguration: UserConfiguration = Object.assign(new UserConfiguration(), state);\r\n\r\n switch (action.type) {\r\n case KeymapActions.ADD:\r\n case KeymapActions.DUPLICATE:\r\n {\r\n const newKeymap: Keymap = new Keymap(action.payload);\r\n newKeymap.abbreviation = generateAbbr(state.keymaps, newKeymap.abbreviation);\r\n newKeymap.name = generateName(state.keymaps, newKeymap.name);\r\n newKeymap.isDefault = (state.keymaps.length === 0);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.concat(newKeymap);\r\n break;\r\n }\r\n case KeymapActions.EDIT_NAME:\r\n {\r\n const name: string = generateName(state.keymaps, action.payload.name);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.map((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload.abbr) {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.name = name;\r\n }\r\n return keymap;\r\n });\r\n break;\r\n }\r\n case KeymapActions.EDIT_ABBR:\r\n const abbr: string = generateAbbr(state.keymaps, action.payload.newAbbr);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.map((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload.abbr) {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.abbreviation = abbr;\r\n } else {\r\n keymap = keymap.renameKeymap(action.payload.abbr, action.payload.newAbbr);\r\n }\r\n\r\n return keymap;\r\n });\r\n break;\r\n case KeymapActions.SET_DEFAULT:\r\n changedUserConfiguration.keymaps = state.keymaps.map((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload || keymap.isDefault) {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.isDefault = keymap.abbreviation === action.payload;\r\n }\r\n\r\n return keymap;\r\n });\r\n break;\r\n case KeymapActions.REMOVE:\r\n let isDefault: boolean;\r\n\r\n let filtered: Keymap[] = state.keymaps.filter((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload) {\r\n isDefault = keymap.isDefault;\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // If deleted one is default set default keymap to the first on the list of keymaps\r\n if (isDefault && filtered.length > 0) {\r\n filtered[0].isDefault = true;\r\n }\r\n\r\n // Check for the deleted keymap in other keymaps\r\n changedUserConfiguration.keymaps = filtered.map(keymap => {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.layers = checkExistence(keymap.layers, 'keymapAbbreviation', action.payload);\r\n\r\n return keymap;\r\n });\r\n break;\r\n\r\n case KeymapActions.SAVE_KEY:\r\n {\r\n const newKeymap: Keymap = Object.assign(new Keymap(), action.payload.keymap);\r\n newKeymap.layers = newKeymap.layers.slice();\r\n\r\n const layerIndex: number = action.payload.layer;\r\n const newLayer: Layer = Object.assign(new Layer(), newKeymap.layers[layerIndex]);\r\n newKeymap.layers[layerIndex] = newLayer;\r\n\r\n const moduleIndex: number = action.payload.module;\r\n const newModule: Module = Object.assign(new Module(), newLayer.modules[moduleIndex]);\r\n newLayer.modules = newLayer.modules.slice();\r\n newLayer.modules[moduleIndex] = newModule;\r\n\r\n const keyIndex: number = action.payload.key;\r\n newModule.keyActions = newModule.keyActions.slice();\r\n newModule.keyActions[keyIndex] = KeyActionHelper.createKeyAction(action.payload.keyAction);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.map(keymap => {\r\n if (keymap.abbreviation === newKeymap.abbreviation) {\r\n keymap = newKeymap;\r\n }\r\n\r\n return keymap;\r\n });\r\n break;\r\n }\r\n case KeymapActions.CHECK_MACRO:\r\n changedUserConfiguration.keymaps = state.keymaps.map(keymap => {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.layers = checkExistence(keymap.layers, '_macroId', action.payload);\r\n return keymap;\r\n });\r\n break;\r\n case MacroActions.ADD:\r\n {\r\n const newMacro = new Macro();\r\n newMacro.id = generateMacroId(state.macros);\r\n newMacro.name = generateName(state.macros, 'New macro');\r\n newMacro.isLooped = false;\r\n newMacro.isPrivate = true;\r\n newMacro.macroActions = [];\r\n\r\n changedUserConfiguration.macros = state.macros.concat(newMacro);\r\n break;\r\n }\r\n case MacroActions.DUPLICATE:\r\n {\r\n const newMacro = new Macro(action.payload);\r\n newMacro.name = generateName(state.macros, newMacro.name);\r\n newMacro.id = generateMacroId(state.macros);\r\n\r\n changedUserConfiguration.macros = state.macros.concat(newMacro);\r\n break;\r\n }\r\n case MacroActions.EDIT_NAME:\r\n {\r\n const name: string = generateName(state.macros, action.payload.name);\r\n\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro.name = name;\r\n }\r\n\r\n return macro;\r\n });\r\n\r\n break;\r\n }\r\n case MacroActions.REMOVE:\r\n changedUserConfiguration.macros = state.macros.filter((macro: Macro) => macro.id !== action.payload);\r\n break;\r\n case MacroActions.ADD_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro = new Macro(macro);\r\n macro.macroActions.push(action.payload.action);\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n case MacroActions.SAVE_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro = new Macro(macro);\r\n macro.macroActions[action.payload.index] = action.payload.action;\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n case MacroActions.DELETE_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro = new Macro(macro);\r\n macro.macroActions.splice(action.payload.index, 1);\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n case MacroActions.REORDER_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n let newIndex: number = action.payload.newIndex;\r\n\r\n // We need to reduce the new index for one when we are moving action down\r\n if (newIndex > action.payload.oldIndex) {\r\n --newIndex;\r\n }\r\n\r\n macro = new Macro(macro);\r\n macro.macroActions.splice(\r\n newIndex,\r\n 0,\r\n macro.macroActions.splice(action.payload.oldIndex, 1)[0]\r\n );\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return changedUserConfiguration;\r\n}\r\n\r\nexport function getUserConfiguration(): (state$: Observable) => Observable {\r\n return (state$: Observable) => state$\r\n .select(state => state.userConfiguration);\r\n}\r\n\r\nexport function getKeymaps(): (state$: Observable) => Observable {\r\n return (state$: Observable) => state$\r\n .select(state => state.userConfiguration.keymaps);\r\n}\r\n\r\nexport function getKeymap(abbr: string) {\r\n if (abbr === undefined) {\r\n return getDefaultKeymap();\r\n }\r\n\r\n return (state$: Observable) => getKeymaps()(state$)\r\n .map((keymaps: Keymap[]) =>\r\n keymaps.find((keymap: Keymap) => keymap.abbreviation === abbr)\r\n );\r\n}\r\n\r\nexport function getDefaultKeymap() {\r\n return (state$: Observable) => getKeymaps()(state$)\r\n .map((keymaps: Keymap[]) =>\r\n keymaps.find((keymap: Keymap) => keymap.isDefault)\r\n );\r\n}\r\n\r\nexport function getMacros(): (state$: Observable) => Observable {\r\n return (state$: Observable) => state$\r\n .select(state => state.userConfiguration.macros);\r\n}\r\n\r\nexport function getMacro(id: number) {\r\n if (isNaN(id)) {\r\n return () => Observable.of(undefined);\r\n } else {\r\n return (state$: Observable) => getMacros()(state$)\r\n .map((macros: Macro[]) => macros.find((macro: Macro) => macro.id === id));\r\n }\r\n}\r\n\r\nfunction generateAbbr(keymaps: Keymap[], abbr: string): string {\r\n const chars: string[] = '23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');\r\n let position = 0;\r\n\r\n while (keymaps.some((keymap: Keymap) => keymap.abbreviation === abbr)) {\r\n abbr = abbr.substring(0, abbr.length - 1) + chars[position];\r\n ++position;\r\n }\r\n\r\n return abbr;\r\n}\r\n\r\nfunction generateName(items: { name: string }[], name: string) {\r\n let suffix = 2;\r\n const oldName: string = name;\r\n\r\n while (items.some(item => item.name === name)) {\r\n name = oldName + ` (${suffix})`;\r\n ++suffix;\r\n }\r\n\r\n return name;\r\n}\r\n\r\nfunction generateMacroId(macros: Macro[]) {\r\n let newId = 0;\r\n\r\n macros.forEach((macro: Macro) => {\r\n if (macro.id > newId) {\r\n newId = macro.id;\r\n }\r\n });\r\n\r\n return newId + 1;\r\n}\r\n\r\nfunction checkExistence(layers: Layer[], property: string, value: any) {\r\n let newLayers = layers.map((layer) => {\r\n let newLayer = new Layer(layer);\r\n\r\n newLayer.modules = layer.modules.map((module: Module) => {\r\n module.keyActions.forEach((action: KeyAction, index: number) => {\r\n if (action && action.hasOwnProperty(property) && action[property] === value) {\r\n module.keyActions[index] = undefined;\r\n }\r\n });\r\n\r\n return module;\r\n });\r\n\r\n return newLayer;\r\n });\r\n\r\n return newLayers;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/reducers/user-configuration.ts","import { EventEmitter, Output } from '@angular/core';\r\n\r\nimport { KeyAction } from '../../../config-serializer/config-items/key-action';\r\n\r\nexport abstract class Tab {\r\n @Output() validAction = new EventEmitter();\r\n\r\n abstract keyActionValid(): boolean;\r\n abstract fromKeyAction(keyAction: KeyAction): boolean;\r\n abstract toKeyAction(): KeyAction;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/tab.ts","import { UhkBuffer } from '../../UhkBuffer';\r\n\r\nexport enum MacroActionId {\r\n KeyMacroAction = 0,\r\n /*\r\n 0 - 8 are reserved for KeyMacroAction\r\n PressKeyMacroAction with scancode: 0\r\n PressKeyMacroAction with modifiers: 1\r\n PressKeyMacroAction with scancode and modifiers 2\r\n HoldKeyMacroAction with scancode: 3\r\n HoldKeyMacroAction with modifiers: 4\r\n HoldKeyMacroAction with scancode and modifiers 5\r\n ReleaseKeyMacroAction with scancode: 6\r\n ReleaseKeyMacroAction with modifiers: 7\r\n ReleaseKeyMacroAction with scancode and modifiers 8\r\n */\r\n LastKeyMacroAction = 8,\r\n MouseButtonMacroAction = 9,\r\n /*\r\n 9 - 11 are reserved for MouseButtonMacroAction\r\n PressMouseButtonsMacroAction = 9,\r\n HoldMouseButtonsMacroAction = 10,\r\n ReleaseMouseButtonsMacroAction = 11,\r\n */\r\n LastMouseButtonMacroAction = 11,\r\n MoveMouseMacroAction = 12,\r\n ScrollMouseMacroAction = 13,\r\n DelayMacroAction = 14,\r\n TextMacroAction = 15\r\n}\r\n\r\nexport enum MacroSubAction {\r\n press = 0,\r\n hold = 1,\r\n release = 2\r\n}\r\n\r\nexport let macroActionType = {\r\n KeyMacroAction : 'key',\r\n MouseButtonMacroAction : 'mouseButton',\r\n MoveMouseMacroAction : 'moveMouse',\r\n ScrollMouseMacroAction : 'scrollMouse',\r\n DelayMacroAction : 'delay',\r\n TextMacroAction : 'text'\r\n};\r\n\r\nexport abstract class MacroAction {\r\n assertMacroActionType(jsObject: any) {\r\n let macroActionClassname = this.constructor.name;\r\n let macroActionTypeString = macroActionType[macroActionClassname];\r\n if (jsObject.macroActionType !== macroActionTypeString) {\r\n throw `Invalid ${macroActionClassname}.macroActionType: ${jsObject.macroActionType}`;\r\n }\r\n }\r\n\r\n readAndAssertMacroActionId(buffer: UhkBuffer): MacroActionId {\r\n let classname: string = this.constructor.name;\r\n let readMacroActionId: MacroActionId = buffer.readUInt8();\r\n let macroActionId: MacroActionId = MacroActionId[classname];\r\n if (macroActionId === MacroActionId.KeyMacroAction) {\r\n if (readMacroActionId < MacroActionId.KeyMacroAction || readMacroActionId > MacroActionId.LastKeyMacroAction) {\r\n throw `Invalid ${classname} first byte: ${readMacroActionId}`;\r\n }\r\n } else if (macroActionId === MacroActionId.MouseButtonMacroAction) {\r\n if (readMacroActionId < MacroActionId.MouseButtonMacroAction ||\r\n readMacroActionId > MacroActionId.LastMouseButtonMacroAction) {\r\n throw `Invalid ${classname} first byte: ${readMacroActionId}`;\r\n }\r\n } else if (readMacroActionId !== macroActionId) {\r\n throw `Invalid ${classname} first byte: ${readMacroActionId}`;\r\n }\r\n return readMacroActionId;\r\n }\r\n\r\n abstract toJsonObject(): any;\r\n abstract toBinary(buffer: UhkBuffer): void;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/MacroAction.ts","export * from './DelayMacroAction';\r\nexport * from './EditableMacroAction';\r\nexport * from './KeyMacroAction';\r\nexport * from './MacroAction';\r\nexport * from './MoveMouseMacroAction';\r\nexport * from './MouseButtonMacroAction';\r\nexport * from './ScrollMouseMacroAction';\r\nexport * from './TextMacroAction';\r\nexport * from './helper';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/index.ts","// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar processNextTick = require('process-nextick-args');\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\nvar keys = objectKeys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n processNextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/lib/_stream_duplex.js\n// module id = 78\n// module chunks = 1","import { UhkBuffer } from '../UhkBuffer';\r\nimport { Layer } from './Layer';\r\nimport { Macro } from './Macro';\r\n\r\nexport class Keymap {\r\n\r\n name: string;\r\n\r\n description: string;\r\n\r\n abbreviation: string;\r\n\r\n isDefault: boolean;\r\n\r\n layers: Layer[];\r\n\r\n constructor(keymap?: Keymap) {\r\n if (!keymap) {\r\n return;\r\n }\r\n\r\n this.name = keymap.name;\r\n this.description = keymap.description;\r\n this.abbreviation = keymap.abbreviation;\r\n this.isDefault = keymap.isDefault;\r\n this.layers = keymap.layers.map(layer => new Layer(layer));\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros?: Macro[]): Keymap {\r\n this.isDefault = jsonObject.isDefault;\r\n this.abbreviation = jsonObject.abbreviation;\r\n this.name = jsonObject.name;\r\n this.description = jsonObject.description;\r\n this.layers = jsonObject.layers.map((layer: any) => new Layer().fromJsonObject(layer, macros));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros?: Macro[]): Keymap {\r\n this.abbreviation = buffer.readString();\r\n this.isDefault = buffer.readBoolean();\r\n this.name = buffer.readString();\r\n this.description = buffer.readString();\r\n this.layers = buffer.readArray(uhkBuffer => {\r\n return new Layer().fromBinary(uhkBuffer, macros);\r\n });\r\n return this;\r\n }\r\n\r\n toJsonObject(macros?: Macro[]): any {\r\n return {\r\n isDefault: this.isDefault,\r\n abbreviation: this.abbreviation,\r\n name: this.name,\r\n description: this.description,\r\n layers: this.layers.map(layer => layer.toJsonObject(macros))\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros?: Macro[]): void {\r\n buffer.writeString(this.abbreviation);\r\n buffer.writeBoolean(this.isDefault);\r\n buffer.writeString(this.name);\r\n buffer.writeString(this.description);\r\n buffer.writeArray(this.layers, (uhkBuffer: UhkBuffer, layer: Layer) => {\r\n layer.toBinary(uhkBuffer, macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): Keymap {\r\n let layers: Layer[];\r\n let layerModified = false;\r\n this.layers.forEach((layer, index) => {\r\n const newLayer = layer.renameKeymap(oldAbbr, newAbbr);\r\n if (newLayer !== layer) {\r\n if (!layerModified) {\r\n layers = this.layers.slice();\r\n layerModified = true;\r\n }\r\n layers[index] = newLayer;\r\n }\r\n });\r\n if (layerModified) {\r\n const newKeymap = Object.assign(new Keymap(), this);\r\n newKeymap.layers = layers;\r\n return newKeymap;\r\n }\r\n return this;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/Keymap.ts","/// \r\n\r\nimport { Macro } from '../Macro';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\n\r\nexport enum KeyActionId {\r\n NoneAction = 0,\r\n KeystrokeAction = 1,\r\n /*\r\n 1 - 7 are reserved for KeystrokeAction\r\n 3 bits:\r\n 1: Do we have scancode?\r\n 2: Do we have modifiers?\r\n 3: Do we have longpress?\r\n */\r\n LastKeystrokeAction = 7, // TODO: remove this after refactoring the keyActionId check\r\n SwitchLayerAction = 8,\r\n SwitchKeymapAction = 9,\r\n MouseAction = 10,\r\n PlayMacroAction = 11\r\n}\r\n\r\nexport let keyActionType = {\r\n NoneAction : 'none',\r\n KeystrokeAction : 'keystroke',\r\n SwitchLayerAction : 'switchLayer',\r\n SwitchKeymapAction : 'switchKeymap',\r\n MouseAction : 'mouse',\r\n PlayMacroAction : 'playMacro'\r\n};\r\n\r\nexport abstract class KeyAction {\r\n\r\n assertKeyActionType(jsObject: any): void {\r\n let keyActionClassname: string = this.constructor.name;\r\n let keyActionTypeString: string = keyActionType[keyActionClassname];\r\n if (jsObject.keyActionType !== keyActionTypeString) {\r\n throw `Invalid ${keyActionClassname}.keyActionType: ${jsObject.keyActionType}`;\r\n }\r\n }\r\n\r\n readAndAssertKeyActionId(buffer: UhkBuffer): KeyActionId {\r\n let classname: string = this.constructor.name;\r\n let readKeyActionId: number = buffer.readUInt8();\r\n let keyActionId: number = KeyActionId[classname];\r\n if (keyActionId === KeyActionId.KeystrokeAction) {\r\n if (readKeyActionId < KeyActionId.KeystrokeAction || readKeyActionId > KeyActionId.LastKeystrokeAction) {\r\n throw `Invalid ${classname} first byte: ${readKeyActionId}`;\r\n }\r\n } else if (readKeyActionId !== keyActionId) {\r\n throw `Invalid ${classname} first byte: ${readKeyActionId}`;\r\n }\r\n return readKeyActionId;\r\n }\r\n\r\n abstract toJsonObject(macros?: Macro[]): any;\r\n abstract toBinary(buffer: UhkBuffer, macros?: Macro[]): any;\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): KeyAction {\r\n return this;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/KeyAction.ts","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/inherits/inherits_browser.js\n// module id = 92\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-util-is/lib/util.js\n// module id = 120\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/events/events.js\n// module id = 175\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/stream-browserify/index.js\n// module id = 191\n// module chunks = 1","export * from './tab';\r\nexport { KeymapTabComponent } from './keymap';\r\nexport { KeypressTabComponent } from './keypress';\r\nexport { LayerTabComponent } from './layer';\r\nexport { MacroTabComponent } from './macro';\r\nexport { MouseTabComponent } from './mouse';\r\nexport { NoneTabComponent } from './none';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/index.ts","import { assertUInt8 } from '../assert';\r\nimport { UhkBuffer } from '../UhkBuffer';\r\nimport { Helper as MacroActionHelper, MacroAction } from './macro-action';\r\n\r\nexport class Macro {\r\n\r\n @assertUInt8\r\n id: number;\r\n\r\n isLooped: boolean;\r\n\r\n isPrivate: boolean;\r\n\r\n name: string;\r\n\r\n macroActions: MacroAction[];\r\n\r\n constructor(other?: Macro) {\r\n if (!other) {\r\n return;\r\n }\r\n this.id = other.id;\r\n this.isLooped = other.isLooped;\r\n this.isPrivate = other.isPrivate;\r\n this.name = other.name;\r\n this.macroActions = other.macroActions.map(macroAction => MacroActionHelper.createMacroAction(macroAction));\r\n }\r\n\r\n fromJsonObject(jsonObject: any): Macro {\r\n this.isLooped = jsonObject.isLooped;\r\n this.isPrivate = jsonObject.isPrivate;\r\n this.name = jsonObject.name;\r\n this.macroActions = jsonObject.macroActions.map((macroAction: any) => MacroActionHelper.createMacroAction(macroAction));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): Macro {\r\n this.isLooped = buffer.readBoolean();\r\n this.isPrivate = buffer.readBoolean();\r\n this.name = buffer.readString();\r\n let macroActionsLength: number = buffer.readCompactLength();\r\n this.macroActions = [];\r\n for (let i = 0; i < macroActionsLength; ++i) {\r\n this.macroActions.push(MacroActionHelper.createMacroAction(buffer));\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n isLooped: this.isLooped,\r\n isPrivate: this.isPrivate,\r\n name: this.name,\r\n macroActions: this.macroActions.map(macroAction => macroAction.toJsonObject())\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeBoolean(this.isLooped);\r\n buffer.writeBoolean(this.isPrivate);\r\n buffer.writeString(this.name);\r\n buffer.writeArray(this.macroActions);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/Macro.ts","\"use strict\";\nvar pluck_1 = require('rxjs/operator/pluck');\nvar map_1 = require('rxjs/operator/map');\nvar distinctUntilChanged_1 = require('rxjs/operator/distinctUntilChanged');\nfunction select(pathOrMapFn) {\n var paths = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n paths[_i - 1] = arguments[_i];\n }\n var mapped$;\n if (typeof pathOrMapFn === 'string') {\n mapped$ = pluck_1.pluck.call.apply(pluck_1.pluck, [this, pathOrMapFn].concat(paths));\n }\n else if (typeof pathOrMapFn === 'function') {\n mapped$ = map_1.map.call(this, pathOrMapFn);\n }\n else {\n throw new TypeError((\"Unexpected type \" + typeof pathOrMapFn + \" in select operator,\")\n + \" expected 'string' or 'function'\");\n }\n return distinctUntilChanged_1.distinctUntilChanged.call(mapped$);\n}\nexports.select = select;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/core/operator/select.js\n// module id = 246\n// module chunks = 1","export { StoreDevtoolsModule } from './src/instrument';\nexport { StoreDevtools } from './src/devtools';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/index.js\n// module id = 247\n// module chunks = 1","export var ActionTypes = {\n PERFORM_ACTION: 'PERFORM_ACTION',\n RESET: 'RESET',\n ROLLBACK: 'ROLLBACK',\n COMMIT: 'COMMIT',\n SWEEP: 'SWEEP',\n TOGGLE_ACTION: 'TOGGLE_ACTION',\n SET_ACTIONS_ACTIVE: 'SET_ACTIONS_ACTIVE',\n JUMP_TO_STATE: 'JUMP_TO_STATE',\n IMPORT_STATE: 'IMPORT_STATE'\n};\n/**\n* Action creators to change the History state.\n*/\nexport var StoreDevtoolActions = {\n performAction: function (action) {\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' +\n 'Have you misspelled a constant?');\n }\n return { type: ActionTypes.PERFORM_ACTION, action: action, timestamp: Date.now() };\n },\n reset: function () {\n return { type: ActionTypes.RESET, timestamp: Date.now() };\n },\n rollback: function () {\n return { type: ActionTypes.ROLLBACK, timestamp: Date.now() };\n },\n commit: function () {\n return { type: ActionTypes.COMMIT, timestamp: Date.now() };\n },\n sweep: function () {\n return { type: ActionTypes.SWEEP };\n },\n toggleAction: function (id) {\n return { type: ActionTypes.TOGGLE_ACTION, id: id };\n },\n setActionsActive: function (start, end, active) {\n if (active === void 0) { active = true; }\n return { type: ActionTypes.SET_ACTIONS_ACTIVE, start: start, end: end, active: active };\n },\n jumpToState: function (index) {\n return { type: ActionTypes.JUMP_TO_STATE, index: index };\n },\n importState: function (nextLiftedState) {\n return { type: ActionTypes.IMPORT_STATE, nextLiftedState: nextLiftedState };\n }\n};\n//# sourceMappingURL=actions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/actions.js\n// module id = 248\n// module chunks = 1","import { StoreDevtoolActions } from './actions';\nexport function difference(first, second) {\n return first.filter(function (item) { return second.indexOf(item) < 0; });\n}\n/**\n * Provides an app's view into the state of the lifted store.\n */\nexport function unliftState(liftedState) {\n var computedStates = liftedState.computedStates, currentStateIndex = liftedState.currentStateIndex;\n var state = computedStates[currentStateIndex].state;\n return state;\n}\nexport function unliftAction(liftedState) {\n return liftedState.actionsById[liftedState.nextActionId - 1];\n}\n/**\n* Lifts an app's action into an action on the lifted store.\n*/\nexport function liftAction(action) {\n return StoreDevtoolActions.performAction(action);\n}\nexport function applyOperators(input$, operators) {\n return operators.reduce(function (source$, _a) {\n var operator = _a[0], args = _a.slice(1);\n return operator.apply(source$, args);\n }, input$);\n}\n//# sourceMappingURL=utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/utils.js\n// module id = 249\n// module chunks = 1","import { Injectable } from '@angular/core';\nexport var DockActions = (function () {\n function DockActions() {\n }\n DockActions.prototype.toggleVisibility = function () {\n return { type: DockActions.TOGGLE_VISIBILITY };\n };\n DockActions.prototype.changePosition = function () {\n return { type: DockActions.CHANGE_POSITION };\n };\n DockActions.prototype.changeSize = function (size) {\n return { type: DockActions.CHANGE_SIZE, payload: size };\n };\n DockActions.prototype.changeMonitor = function () {\n return { type: DockActions.CHANGE_MONITOR };\n };\n DockActions.TOGGLE_VISIBILITY = '@@redux-devtools-log-monitor/TOGGLE_VISIBILITY';\n DockActions.CHANGE_POSITION = '@@redux-devtools-log-monitor/CHANGE_POSITION';\n DockActions.CHANGE_SIZE = '@@redux-devtools-log-monitor/CHANGE_SIZE';\n DockActions.CHANGE_MONITOR = '@@redux-devtools-log-monitor/CHANGE_MONITOR';\n DockActions.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n DockActions.ctorParameters = [];\n return DockActions;\n}());\n//# sourceMappingURL=actions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/actions.js\n// module id = 250\n// module chunks = 1","'use strict';\n\nvar buffer = require('buffer');\nvar Buffer = buffer.Buffer;\nvar SlowBuffer = buffer.SlowBuffer;\nvar MAX_LEN = buffer.kMaxLength || 2147483647;\nexports.alloc = function alloc(size, fill, encoding) {\n if (typeof Buffer.alloc === 'function') {\n return Buffer.alloc(size, fill, encoding);\n }\n if (typeof encoding === 'number') {\n throw new TypeError('encoding must not be number');\n }\n if (typeof size !== 'number') {\n throw new TypeError('size must be a number');\n }\n if (size > MAX_LEN) {\n throw new RangeError('size is too large');\n }\n var enc = encoding;\n var _fill = fill;\n if (_fill === undefined) {\n enc = undefined;\n _fill = 0;\n }\n var buf = new Buffer(size);\n if (typeof _fill === 'string') {\n var fillBuf = new Buffer(_fill, enc);\n var flen = fillBuf.length;\n var i = -1;\n while (++i < size) {\n buf[i] = fillBuf[i % flen];\n }\n } else {\n buf.fill(_fill);\n }\n return buf;\n}\nexports.allocUnsafe = function allocUnsafe(size) {\n if (typeof Buffer.allocUnsafe === 'function') {\n return Buffer.allocUnsafe(size);\n }\n if (typeof size !== 'number') {\n throw new TypeError('size must be a number');\n }\n if (size > MAX_LEN) {\n throw new RangeError('size is too large');\n }\n return new Buffer(size);\n}\nexports.from = function from(value, encodingOrOffset, length) {\n if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {\n return Buffer.from(value, encodingOrOffset, length);\n }\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n if (typeof value === 'string') {\n return new Buffer(value, encodingOrOffset);\n }\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n var offset = encodingOrOffset;\n if (arguments.length === 1) {\n return new Buffer(value);\n }\n if (typeof offset === 'undefined') {\n offset = 0;\n }\n var len = length;\n if (typeof len === 'undefined') {\n len = value.byteLength - offset;\n }\n if (offset >= value.byteLength) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n if (len > value.byteLength - offset) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n return new Buffer(value.slice(offset, offset + len));\n }\n if (Buffer.isBuffer(value)) {\n var out = new Buffer(value.length);\n value.copy(out, 0, 0, value.length);\n return out;\n }\n if (value) {\n if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {\n return new Buffer(value);\n }\n if (value.type === 'Buffer' && Array.isArray(value.data)) {\n return new Buffer(value.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');\n}\nexports.allocUnsafeSlow = function allocUnsafeSlow(size) {\n if (typeof Buffer.allocUnsafeSlow === 'function') {\n return Buffer.allocUnsafeSlow(size);\n }\n if (typeof size !== 'number') {\n throw new TypeError('size must be a number');\n }\n if (size >= MAX_LEN) {\n throw new RangeError('size is too large');\n }\n return new SlowBuffer(size);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/buffer-shims/index.js\n// module id = 251\n// module chunks = 1","'use strict';\n\nif (!process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = nextTick;\n} else {\n module.exports = process.nextTick;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process-nextick-args/index.js\n// module id = 268\n// module chunks = 1","module.exports = \":host {\\n display: block;\\n width: 100%; }\\n\\n.action--editor {\\n padding-top: 0;\\n padding-bottom: 0;\\n border-radius: 0;\\n border: 0; }\\n\\n.nav {\\n padding-bottom: 1rem; }\\n .nav li a {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .nav li a.selected {\\n font-style: italic; }\\n .nav li a:hover {\\n cursor: pointer; }\\n .nav li.active {\\n z-index: 2; }\\n .nav li.active a.selected {\\n font-style: normal; }\\n .nav li.active a:after {\\n content: '';\\n display: block;\\n position: absolute;\\n width: 0;\\n height: 0;\\n top: 0;\\n right: -4rem;\\n border-color: transparent transparent transparent #337ab7;\\n border-style: solid;\\n border-width: 2rem; }\\n\\n.editor__tabs, .editor__tab-links {\\n padding-top: 1rem; }\\n\\n.editor__tabs {\\n border-left: 1px solid #ddd;\\n margin-left: -1.6rem;\\n padding-left: 3rem; }\\n\\n.editor__actions {\\n float: right; }\\n .editor__actions-container {\\n background: #f5f5f5;\\n border-top: 1px solid #ddd;\\n border-bottom: 1px solid #ddd;\\n padding: 1rem 1.5rem; }\\n\\n.flex-button-wrapper {\\n display: flex;\\n flex-direction: row-reverse; }\\n\\n.flex-button {\\n align-self: flex-end; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/macro-action-editor.component.scss\n// module id = 269\n// module chunks = 1","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er, data) {\n done(stream, er, data);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data !== null && data !== undefined) stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/lib/_stream_transform.js\n// module id = 270\n// module chunks = 1","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/**/\nvar processNextTick = require('process-nextick-args');\n/**/\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream;\n(function () {\n try {\n Stream = require('st' + 'ream');\n } catch (_) {} finally {\n if (!Stream) Stream = require('events').EventEmitter;\n }\n})();\n/**/\n\nvar Buffer = require('buffer').Buffer;\n/**/\nvar bufferShim = require('buffer-shims');\n/**/\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n processNextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n processNextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = bufferShim.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) processNextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) processNextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/lib/_stream_writable.js\n// module id = 271\n// module chunks = 1","export * from './edit/macro-edit.component';\r\nexport * from './list/macro-list.component';\r\nexport * from './header/macro-header.component';\r\nexport * from './macro.routes';\r\nexport * from './not-found';\r\nexport * from './item';\r\nexport * from './action-editor';\r\nexport * from './action-editor/tab';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/index.ts","export { MacroNotFoundComponent } from './macro-not-found.component';\r\nexport { MacroNotFoundGuard } from './macro-not-found-guard.service';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/not-found/index.ts","export enum KeyModifiers {\r\n leftCtrl = 1 << 0,\r\n leftShift = 1 << 1,\r\n leftAlt = 1 << 2,\r\n leftGui = 1 << 3,\r\n rightCtrl = 1 << 4,\r\n rightShift = 1 << 5,\r\n rightAlt = 1 << 6,\r\n rightGui = 1 << 7\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/KeyModifiers.ts","import { assertUInt16 } from '../assert';\r\nimport { UhkBuffer } from '../UhkBuffer';\r\nimport { Keymap } from './Keymap';\r\nimport { Macro } from './Macro';\r\nimport { ModuleConfiguration } from './ModuleConfiguration';\r\n\r\nexport class UserConfiguration {\r\n\r\n @assertUInt16\r\n dataModelVersion: number;\r\n\r\n moduleConfigurations: ModuleConfiguration[];\r\n\r\n keymaps: Keymap[];\r\n\r\n macros: Macro[];\r\n\r\n fromJsonObject(jsonObject: any): UserConfiguration {\r\n this.dataModelVersion = jsonObject.dataModelVersion;\r\n this.moduleConfigurations = jsonObject.moduleConfigurations.map((moduleConfiguration: any) => {\r\n return new ModuleConfiguration().fromJsonObject(moduleConfiguration);\r\n });\r\n this.macros = jsonObject.macros.map((macroJsonObject: any, index: number) => {\r\n const macro = new Macro().fromJsonObject(macroJsonObject);\r\n macro.id = index;\r\n return macro;\r\n });\r\n this.keymaps = jsonObject.keymaps.map((keymap: any) => new Keymap().fromJsonObject(keymap, this.macros));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): UserConfiguration {\r\n this.dataModelVersion = buffer.readUInt16();\r\n this.moduleConfigurations = buffer.readArray(uhkBuffer => {\r\n return new ModuleConfiguration().fromBinary(uhkBuffer);\r\n });\r\n this.macros = buffer.readArray((uhkBuffer, index) => {\r\n const macro = new Macro().fromBinary(uhkBuffer);\r\n macro.id = index;\r\n return macro;\r\n });\r\n this.keymaps = buffer.readArray(uhkBuffer => new Keymap().fromBinary(uhkBuffer, this.macros));\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n dataModelVersion: this.dataModelVersion,\r\n moduleConfigurations: this.moduleConfigurations.map(moduleConfiguration => moduleConfiguration.toJsonObject()),\r\n keymaps: this.keymaps.map(keymap => keymap.toJsonObject(this.macros)),\r\n macros: this.macros.map(macro => macro.toJsonObject())\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeUInt16(this.dataModelVersion);\r\n buffer.writeArray(this.moduleConfigurations);\r\n buffer.writeArray(this.macros);\r\n buffer.writeArray(this.keymaps, (uhkBuffer: UhkBuffer, keymap: Keymap) => {\r\n keymap.toBinary(uhkBuffer, this.macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n getKeymap(keymapAbbreviation: string): Keymap {\r\n return this.keymaps.find(keymap => keymapAbbreviation === keymap.abbreviation);\r\n }\r\n\r\n getMacro(macroId: number): Macro {\r\n return this.macros.find(macro => macroId === macro.id);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/UserConfiguration.ts","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CaptureService {\r\n private mapping: Map;\r\n private leftModifiers: Map;\r\n private rightModifiers: Map;\r\n\r\n constructor() {\r\n this.leftModifiers = new Map();\r\n this.rightModifiers = new Map();\r\n this.mapping = new Map();\r\n }\r\n\r\n public getMap(code: number) {\r\n return this.mapping.get(code);\r\n }\r\n\r\n public hasMap(code: number) {\r\n return this.mapping.has(code);\r\n }\r\n\r\n public setModifier(left: boolean, code: number) {\r\n return left ? this.leftModifiers.set(code, true) : this.rightModifiers.set(code, true);\r\n }\r\n\r\n public getModifiers(left: boolean) {\r\n return left ? this.reMap(this.leftModifiers) : this.reMap(this.rightModifiers);\r\n }\r\n\r\n public initModifiers() {\r\n this.leftModifiers.set(16, false); // Shift\r\n this.leftModifiers.set(17, false); // Ctrl\r\n this.leftModifiers.set(18, false); // Alt\r\n this.leftModifiers.set(91, false); // Super\r\n\r\n this.rightModifiers.set(16, false); // Shift\r\n this.rightModifiers.set(17, false); // Ctrl\r\n this.rightModifiers.set(18, false); // Alt\r\n this.rightModifiers.set(91, false); // Super\r\n }\r\n\r\n public populateMapping () {\r\n this.mapping.set(8, 42); // Backspace\r\n this.mapping.set(9, 43); // Tab\r\n this.mapping.set(13, 40); // Enter\r\n this.mapping.set(19, 72); // Pause/break\r\n this.mapping.set(20, 57); // Caps lock\r\n this.mapping.set(27, 41); // Escape\r\n this.mapping.set(32, 44); // (space)\r\n this.mapping.set(33, 75); // Page up\r\n this.mapping.set(34, 78); // Page down\r\n this.mapping.set(35, 77); // End\r\n this.mapping.set(36, 74); // Home\r\n this.mapping.set(37, 80); // Left arrow\r\n this.mapping.set(38, 82); // Up arrow\r\n this.mapping.set(39, 79); // Right arrow\r\n this.mapping.set(40, 81); // Down arrow\r\n this.mapping.set(45, 73); // Insert\r\n this.mapping.set(46, 76); // Delete\r\n this.mapping.set(48, 39); // 0\r\n this.mapping.set(49, 30); // 1\r\n this.mapping.set(50, 31); // 2\r\n this.mapping.set(51, 32); // 3\r\n this.mapping.set(52, 33); // 4\r\n this.mapping.set(53, 34); // 5\r\n this.mapping.set(54, 35); // 6\r\n this.mapping.set(55, 36); // 7\r\n this.mapping.set(56, 37); // 8\r\n this.mapping.set(57, 38); // 9\r\n this.mapping.set(65, 4); // A\r\n this.mapping.set(66, 5); // B\r\n this.mapping.set(67, 6); // C\r\n this.mapping.set(68, 7); // D\r\n this.mapping.set(69, 8); // E\r\n this.mapping.set(70, 9); // F\r\n this.mapping.set(71, 10); // G\r\n this.mapping.set(72, 11); // H\r\n this.mapping.set(73, 12); // I\r\n this.mapping.set(74, 13); // J\r\n this.mapping.set(75, 14); // K\r\n this.mapping.set(76, 15); // L\r\n this.mapping.set(77, 16); // M\r\n this.mapping.set(78, 17); // N\r\n this.mapping.set(79, 18); // O\r\n this.mapping.set(80, 19); // P\r\n this.mapping.set(81, 20); // Q\r\n this.mapping.set(82, 21); // R\r\n this.mapping.set(83, 22); // S\r\n this.mapping.set(84, 23); // T\r\n this.mapping.set(85, 24); // U\r\n this.mapping.set(86, 25); // V\r\n this.mapping.set(87, 26); // W\r\n this.mapping.set(88, 27); // X\r\n this.mapping.set(89, 28); // Y\r\n this.mapping.set(90, 29); // Z\r\n this.mapping.set(93, 118); // Menu\r\n this.mapping.set(96, 98); // Num pad 0\r\n this.mapping.set(97, 89); // Num pad 1\r\n this.mapping.set(98, 90); // Num pad 2\r\n this.mapping.set(99, 91); // Num pad 3\r\n this.mapping.set(100, 92); // Num pad 4\r\n this.mapping.set(101, 93); // Num pad 5\r\n this.mapping.set(102, 94); // Num pad 6\r\n this.mapping.set(103, 95); // Num pad 7\r\n this.mapping.set(104, 96); // Num pad 8\r\n this.mapping.set(105, 97); // Num pad 9\r\n this.mapping.set(106, 85); // Multiply\r\n this.mapping.set(107, 87); // Add\r\n this.mapping.set(109, 86); // Subtract\r\n this.mapping.set(110, 99); // Decimal point\r\n this.mapping.set(111, 84); // Divide\r\n this.mapping.set(112, 58); // F1\r\n this.mapping.set(113, 59); // F2\r\n this.mapping.set(114, 60); // F3\r\n this.mapping.set(115, 61); // F4\r\n this.mapping.set(116, 62); // F5\r\n this.mapping.set(117, 63); // F6\r\n this.mapping.set(118, 64); // F7\r\n this.mapping.set(119, 65); // F8\r\n this.mapping.set(120, 66); // F9\r\n this.mapping.set(121, 67); // F10\r\n this.mapping.set(122, 68); // F11\r\n this.mapping.set(123, 69); // F12\r\n this.mapping.set(144, 83); // Num lock\r\n this.mapping.set(145, 71); // Scroll lock\r\n this.mapping.set(186, 51); // Semi-colon\r\n this.mapping.set(187, 46); // Equal sign\r\n this.mapping.set(188, 54); // Comma\r\n this.mapping.set(189, 45); // Dash\r\n this.mapping.set(190, 55); // Period\r\n this.mapping.set(191, 56); // Forward slash\r\n this.mapping.set(192, 53); // Grave accent\r\n this.mapping.set(219, 47); // Open bracket\r\n this.mapping.set(220, 49); // Back slash\r\n this.mapping.set(221, 48); // Close bracket\r\n this.mapping.set(222, 52); // Single quote\r\n }\r\n\r\n private reMap(value: Map): boolean[] {\r\n return [value.get(16), value.get(17), value.get(91), value.get(18)];\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/services/capture.service.ts","\"use strict\";\nvar Observable_1 = require('rxjs/Observable');\nvar select_1 = require('../../operator/select');\nObservable_1.Observable.prototype.select = select_1.select;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/core/add/operator/select.js\n// module id = 375\n// module chunks = 1","import { OpaqueToken } from '@angular/core';\nexport var STORE_DEVTOOLS_CONFIG = new OpaqueToken('@ngrx/devtools Options');\nexport var INITIAL_OPTIONS = new OpaqueToken('@ngrx/devtools Initial Config');\n//# sourceMappingURL=config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/config.js\n// module id = 380\n// module chunks = 1","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nimport { Injectable, Inject } from '@angular/core';\nimport { INITIAL_STATE, Dispatcher, Reducer } from '@ngrx/store';\nimport { ReplaySubject } from 'rxjs/ReplaySubject';\nimport { map } from 'rxjs/operator/map';\nimport { merge } from 'rxjs/operator/merge';\nimport { observeOn } from 'rxjs/operator/observeOn';\nimport { scan } from 'rxjs/operator/scan';\nimport { skip } from 'rxjs/operator/skip';\nimport { withLatestFrom } from 'rxjs/operator/withLatestFrom';\nimport { queue } from 'rxjs/scheduler/queue';\nimport { DevtoolsExtension } from './extension';\nimport { liftAction, unliftState, applyOperators } from './utils';\nimport { liftReducerWith, liftInitialState } from './reducer';\nimport { StoreDevtoolActions as actions } from './actions';\nimport { STORE_DEVTOOLS_CONFIG } from './config';\nexport var DevtoolsDispatcher = (function (_super) {\n __extends(DevtoolsDispatcher, _super);\n function DevtoolsDispatcher() {\n _super.apply(this, arguments);\n }\n DevtoolsDispatcher.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n DevtoolsDispatcher.ctorParameters = [];\n return DevtoolsDispatcher;\n}(Dispatcher));\nexport var StoreDevtools = (function () {\n function StoreDevtools(dispatcher, actions$, reducers$, extension, initialState, config) {\n var liftedInitialState = liftInitialState(initialState, config.monitor);\n var liftReducer = liftReducerWith(initialState, liftedInitialState, config.monitor, {\n maxAge: config.maxAge\n });\n var liftedAction$ = applyOperators(actions$, [\n [skip, 1],\n [merge, extension.actions$],\n [map, liftAction],\n [merge, dispatcher, extension.liftedActions$],\n [observeOn, queue]\n ]);\n var liftedReducer$ = map.call(reducers$, liftReducer);\n var liftedStateSubject = new ReplaySubject(1);\n var liftedStateSubscription = applyOperators(liftedAction$, [\n [withLatestFrom, liftedReducer$],\n [scan, function (liftedState, _a) {\n var action = _a[0], reducer = _a[1];\n var nextState = reducer(liftedState, action);\n extension.notify(action, nextState);\n return nextState;\n }, liftedInitialState]\n ]).subscribe(liftedStateSubject);\n var liftedState$ = liftedStateSubject.asObservable();\n var state$ = map.call(liftedState$, unliftState);\n this.stateSubscription = liftedStateSubscription;\n this.dispatcher = dispatcher;\n this.liftedState = liftedState$;\n this.state = state$;\n }\n StoreDevtools.prototype.dispatch = function (action) {\n this.dispatcher.dispatch(action);\n };\n StoreDevtools.prototype.next = function (action) {\n this.dispatcher.dispatch(action);\n };\n StoreDevtools.prototype.error = function (error) { };\n StoreDevtools.prototype.complete = function () { };\n StoreDevtools.prototype.performAction = function (action) {\n this.dispatch(actions.performAction(action));\n };\n StoreDevtools.prototype.reset = function () {\n this.dispatch(actions.reset());\n };\n StoreDevtools.prototype.rollback = function () {\n this.dispatch(actions.rollback());\n };\n StoreDevtools.prototype.commit = function () {\n this.dispatch(actions.commit());\n };\n StoreDevtools.prototype.sweep = function () {\n this.dispatch(actions.sweep());\n };\n StoreDevtools.prototype.toggleAction = function (id) {\n this.dispatch(actions.toggleAction(id));\n };\n StoreDevtools.prototype.jumpToState = function (index) {\n this.dispatch(actions.jumpToState(index));\n };\n StoreDevtools.prototype.importState = function (nextLiftedState) {\n this.dispatch(actions.importState(nextLiftedState));\n };\n StoreDevtools.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n StoreDevtools.ctorParameters = [\n { type: DevtoolsDispatcher, },\n { type: Dispatcher, },\n { type: Reducer, },\n { type: DevtoolsExtension, },\n { type: undefined, decorators: [{ type: Inject, args: [INITIAL_STATE,] },] },\n { type: undefined, decorators: [{ type: Inject, args: [STORE_DEVTOOLS_CONFIG,] },] },\n ];\n return StoreDevtools;\n}());\n//# sourceMappingURL=devtools.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/devtools.js\n// module id = 381\n// module chunks = 1","import { OpaqueToken, Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport { empty } from 'rxjs/observable/empty';\nimport { filter } from 'rxjs/operator/filter';\nimport { map } from 'rxjs/operator/map';\nimport { share } from 'rxjs/operator/share';\nimport { switchMap } from 'rxjs/operator/switchMap';\nimport { takeUntil } from 'rxjs/operator/takeUntil';\nimport { applyOperators } from './utils';\nexport var ExtensionActionTypes = {\n START: 'START',\n DISPATCH: 'DISPATCH',\n STOP: 'STOP',\n ACTION: 'ACTION'\n};\nexport var REDUX_DEVTOOLS_EXTENSION = new OpaqueToken('Redux Devtools Extension');\nexport var DevtoolsExtension = (function () {\n function DevtoolsExtension(devtoolsExtension) {\n this.instanceId = \"ngrx-store-\" + Date.now();\n this.devtoolsExtension = devtoolsExtension;\n this.createActionStreams();\n }\n DevtoolsExtension.prototype.notify = function (action, state) {\n if (!this.devtoolsExtension) {\n return;\n }\n this.devtoolsExtension.send(null, state, false, this.instanceId);\n };\n DevtoolsExtension.prototype.createChangesObservable = function () {\n var _this = this;\n if (!this.devtoolsExtension) {\n return empty();\n }\n return new Observable(function (subscriber) {\n var connection = _this.devtoolsExtension.connect({ instanceId: _this.instanceId });\n connection.subscribe(function (change) { return subscriber.next(change); });\n return connection.unsubscribe;\n });\n };\n DevtoolsExtension.prototype.createActionStreams = function () {\n var _this = this;\n // Listens to all changes based on our instanceId\n var changes$ = share.call(this.createChangesObservable());\n // Listen for the start action\n var start$ = filter.call(changes$, function (change) { return change.type === ExtensionActionTypes.START; });\n // Listen for the stop action\n var stop$ = filter.call(changes$, function (change) { return change.type === ExtensionActionTypes.STOP; });\n // Listen for lifted actions\n var liftedActions$ = applyOperators(changes$, [\n [filter, function (change) { return change.type === ExtensionActionTypes.DISPATCH; }],\n [map, function (change) { return _this.unwrapAction(change.payload); }]\n ]);\n // Listen for unlifted actions\n var actions$ = applyOperators(changes$, [\n [filter, function (change) { return change.type === ExtensionActionTypes.ACTION; }],\n [map, function (change) { return _this.unwrapAction(change.payload); }]\n ]);\n var actionsUntilStop$ = takeUntil.call(actions$, stop$);\n var liftedUntilStop$ = takeUntil.call(liftedActions$, stop$);\n // Only take the action sources between the start/stop events\n this.actions$ = switchMap.call(start$, function () { return actionsUntilStop$; });\n this.liftedActions$ = switchMap.call(start$, function () { return liftedUntilStop$; });\n };\n DevtoolsExtension.prototype.unwrapAction = function (action) {\n return typeof action === 'string' ? eval(\"(\" + action + \")\") : action;\n };\n DevtoolsExtension.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n DevtoolsExtension.ctorParameters = [\n { type: undefined, decorators: [{ type: Inject, args: [REDUX_DEVTOOLS_EXTENSION,] },] },\n ];\n return DevtoolsExtension;\n}());\n//# sourceMappingURL=extension.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/extension.js\n// module id = 382\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CommanderComponent } from './commander';\nimport { DockComponent } from './dock';\nimport { DockMonitorComponent } from './dock-monitor';\nimport { DockActions } from './actions';\nexport var DockMonitorModule = (function () {\n function DockMonitorModule() {\n }\n DockMonitorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n CommanderComponent,\n DockComponent,\n DockMonitorComponent\n ],\n providers: [\n DockActions\n ],\n exports: [\n DockMonitorComponent\n ]\n },] },\n ];\n /** @nocollapse */\n DockMonitorModule.ctorParameters = [];\n return DockMonitorModule;\n}());\nexport { useDockMonitor } from './reducer';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/index.js\n// module id = 383\n// module chunks = 1","import { compose } from '@ngrx/core/compose';\nexport var KNOWN = {\n Array: 'array',\n Object: 'object',\n Null: 'null',\n Undefined: 'undefined',\n Boolean: 'boolean',\n Number: 'number',\n String: 'string',\n Symbol: 'symbol',\n Function: 'function',\n Iterable: 'iterable'\n};\nexport function getTypeOf(object) {\n var literalType = typeof object;\n if (literalType === 'object') {\n if (Array.isArray(object)) {\n return KNOWN.Array;\n }\n if (object === null) {\n return KNOWN.Null;\n }\n if (typeof object[Symbol.iterator] === 'function') {\n return KNOWN.Iterable;\n }\n }\n return literalType;\n}\nvar arrayLength = function (value) { return value.length; };\nvar lengthLabel = function (single, plural) { return function (length) { return (length + \" \" + (length === 1 ? single : plural)); }; };\nvar typeIndicator = function (typeIndicator) { return function (input) { return (typeIndicator + \" \" + input); }; };\nvar typeIdentity = function (type) { return function () { return type; }; };\nvar withQuotes = function (val) { return (\"\\\"\" + val + \"\\\"\"); };\nvar toString = function (val) { return val.toString(); };\nvar iterableToArray = function (value) { return Array.from(value); };\nvar labelFactoriesForTypes = (_a = {},\n _a[KNOWN.Array] = compose(typeIndicator('[]'), lengthLabel('item', 'items'), arrayLength),\n _a[KNOWN.Object] = compose(typeIndicator('{}'), lengthLabel('key', 'keys'), arrayLength, Object.getOwnPropertyNames),\n _a[KNOWN.Null] = typeIdentity(KNOWN.Null),\n _a[KNOWN.Undefined] = typeIdentity(KNOWN.Undefined),\n _a[KNOWN.Boolean] = function (val) { return val ? 'true' : 'false'; },\n _a[KNOWN.Number] = toString,\n _a[KNOWN.String] = withQuotes,\n _a[KNOWN.Symbol] = compose(withQuotes, toString),\n _a[KNOWN.Function] = typeIdentity(KNOWN.Function),\n _a[KNOWN.Iterable] = compose(typeIndicator('()'), lengthLabel('entry', 'entries'), arrayLength, iterableToArray),\n _a\n);\nvar lookupLabelForType = function (type) { return labelFactoriesForTypes[type]; };\nexport var getLabelFor = function (object) { return labelFactoriesForTypes[getTypeOf(object)](object); };\nexport function getChildrenFor(object) {\n var literalType = getTypeOf(object);\n if (literalType === KNOWN.Object) {\n return Object.getOwnPropertyNames(object).map(function (name) {\n return { key: name, value: object[name] };\n });\n }\n else if (literalType === KNOWN.Array) {\n return object.map(function (value, index) {\n return { key: index, value: value };\n });\n }\n else if (literalType === KNOWN.Iterable) {\n return Array.from(object).map(function (value, index) {\n return { key: index, value: value };\n });\n }\n throw new TypeError(\"Tried to get children for non-enumerable type \\\"\" + literalType + \"\\\"\");\n}\nvar _a;\n//# sourceMappingURL=types.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/json-tree/types.js\n// module id = 384\n// module chunks = 1","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\n__export(require('./index'));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ng2-dragula/ng2-dragula.js\n// module id = 404\n// module chunks = 1","// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/lib/_stream_passthrough.js\n// module id = 407\n// module chunks = 1","'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar processNextTick = require('process-nextick-args');\n/**/\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream;\n(function () {\n try {\n Stream = require('st' + 'ream');\n } catch (_) {} finally {\n if (!Stream) Stream = require('events').EventEmitter;\n }\n})();\n/**/\n\nvar Buffer = require('buffer').Buffer;\n/**/\nvar bufferShim = require('buffer-shims');\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n }\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n Stream.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = bufferShim.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n processNextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n processNextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n processNextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = bufferShim.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n processNextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/lib/_stream_readable.js\n// module id = 408\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar Buffer = require('buffer').Buffer;\n\nvar isBufferEncoding = Buffer.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nvar StringDecoder = exports.StringDecoder = function(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/string_decoder/index.js\n// module id = 442\n// module chunks = 1","import { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Component({\r\n selector: 'add-on',\r\n template: require('./add-on.component.html'),\r\n styles: [require('./add-on.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class AddOnComponent {\r\n private name$: Observable;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this.name$ = route\r\n .params\r\n .select('name');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/add-on/add-on.component.ts","export * from './add-on.component';\r\nexport * from './add-on.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/add-on/index.ts","import { Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/combineLatest';\r\nimport 'rxjs/add/operator/publishReplay';\r\n\r\nimport { Keymap } from '../../../config-serializer/config-items/Keymap';\r\nimport { AppState } from '../../../store';\r\nimport { KeymapActions } from '../../../store/actions';\r\n\r\n@Component({\r\n selector: 'keymap-add',\r\n template: require('./keymap-add.component.html'),\r\n styles: [require('./keymap-add.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class KeymapAddComponent {\r\n presets$: Observable;\r\n private presetsAll$: Observable;\r\n private filterExpression$: BehaviorSubject;\r\n\r\n constructor(private store: Store) {\r\n this.presetsAll$ = store.select((appState: AppState) => appState.presetKeymaps);\r\n this.filterExpression$ = new BehaviorSubject('');\r\n\r\n this.presets$ = this.presetsAll$\r\n .combineLatest(this.filterExpression$, (keymaps: Keymap[], filterExpression: string) => {\r\n return keymaps.filter((keymap: Keymap) => keymap.name.toLocaleLowerCase().includes(filterExpression));\r\n })\r\n .publishReplay(1)\r\n .refCount();\r\n }\r\n\r\n filterKeyboards(filterExpression: string) {\r\n this.filterExpression$.next(filterExpression);\r\n }\r\n\r\n addKeymap(keymap: Keymap) {\r\n this.store.dispatch(KeymapActions.addKeymap(keymap));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keymap/add/keymap-add.component.ts","export { KeymapEditComponent } from './keymap-edit.component';\r\nexport { KeymapEditGuard } from './keymap-edit-guard.service';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keymap/edit/index.ts","import { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport '@ngrx/core/add/operator/select';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/first';\r\nimport 'rxjs/add/operator/let';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/publishReplay';\r\nimport 'rxjs/add/operator/switchMap';\r\n\r\nimport { saveAs } from 'file-saver';\r\n\r\nimport { Keymap } from '../../../config-serializer/config-items/Keymap';\r\nimport { AppState } from '../../../store';\r\nimport { getKeymap, getKeymaps, getUserConfiguration } from '../../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n selector: 'keymap-edit',\r\n template: require('./keymap-edit.component.html'),\r\n styles: [require('./keymap-edit.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class KeymapEditComponent {\r\n\r\n protected keymap$: Observable;\r\n private deletable$: Observable;\r\n\r\n constructor(\r\n protected store: Store,\r\n private route: ActivatedRoute\r\n ) {\r\n this.keymap$ = route\r\n .params\r\n .select('abbr')\r\n .switchMap((abbr: string) => store.let(getKeymap(abbr)))\r\n .publishReplay(1)\r\n .refCount();\r\n\r\n this.deletable$ = store.let(getKeymaps())\r\n .map((keymaps: Keymap[]) => keymaps.length > 1);\r\n }\r\n\r\n downloadKeymap() {\r\n const exportableJSON$: Observable = this.keymap$\r\n .switchMap(keymap => this.toExportableJSON(keymap))\r\n .map(exportableJSON => JSON.stringify(exportableJSON));\r\n\r\n this.keymap$\r\n .combineLatest(exportableJSON$)\r\n .first()\r\n .subscribe(latest => {\r\n const keymap = latest[0];\r\n const exportableJSON = latest[1];\r\n const fileName = keymap.name + '_keymap.json';\r\n saveAs(new Blob([exportableJSON], { type: 'application/json' }), fileName);\r\n });\r\n }\r\n\r\n private toExportableJSON(keymap: Keymap): Observable {\r\n return this.store\r\n .let(getUserConfiguration())\r\n .first()\r\n .map(userConfiguration => {\r\n return {\r\n site: 'https://ultimatehackingkeyboard.com',\r\n description: 'Ultimate Hacking Keyboard keymap',\r\n keyboardModel: 'UHK60',\r\n dataModelVersion: userConfiguration.dataModelVersion,\r\n objectType: 'keymap',\r\n objectValue: keymap.toJsonObject()\r\n };\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keymap/edit/keymap-edit.component.ts","import { Component, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { Macro } from '../../../config-serializer/config-items/Macro';\r\nimport { MacroAction } from '../../../config-serializer/config-items/macro-action/MacroAction';\r\n\r\nimport { MacroActions } from '../../../store/actions';\r\nimport { AppState } from '../../../store/index';\r\nimport { getMacro } from '../../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n selector: 'macro-edit',\r\n template: require('./macro-edit.component.html'),\r\n styles: [require('./macro-edit.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class MacroEditComponent implements OnDestroy {\r\n private subscription: Subscription;\r\n private macro: Macro;\r\n private isNew: boolean;\r\n\r\n constructor(private store: Store, public route: ActivatedRoute) {\r\n this.subscription = route\r\n .params\r\n .select('id')\r\n .switchMap((id: string) => store.let(getMacro(+id)))\r\n .subscribe((macro: Macro) => {\r\n this.macro = macro;\r\n });\r\n\r\n this.isNew = this.route.snapshot.params['empty'] === 'new';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n addAction(macroId: number, action: MacroAction) {\r\n this.store.dispatch(MacroActions.addMacroAction(macroId, action));\r\n }\r\n\r\n editAction(macroId: number, index: number, action: MacroAction) {\r\n this.store.dispatch(MacroActions.saveMacroAction(macroId, index, action));\r\n }\r\n\r\n deleteAction(macroId: number, index: number, action: MacroAction) {\r\n this.store.dispatch(MacroActions.deleteMacroAction(macroId, index, action));\r\n }\r\n\r\n reorderAction(macroId: number, oldIndex: number, newIndex: number) {\r\n this.store.dispatch(MacroActions.reorderMacroAction(macroId, oldIndex, newIndex));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/edit/macro-edit.component.ts","export * from './popover.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/index.ts","export * from './settings.component';\r\nexport * from './settings.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/settings/index.ts","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'settings',\r\n template: require('./settings.component.html'),\r\n styles: [require('./settings.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class SettingsComponent {\r\n constructor() { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/settings/settings.component.ts","export * from './svg-module.component';\r\nexport * from './svg-module.model';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/module/index.ts","export class UhkBuffer {\r\n\r\n private static eepromSize = 32 * 1024;\r\n private static maxCompactLength = 0xFFFF;\r\n private static longCompactLengthPrefix = 0xFF;\r\n private static stringEncoding = 'utf8';\r\n private static isFirstElementToDump = false;\r\n\r\n offset: number;\r\n private _enableDump = false;\r\n\r\n private buffer: Buffer;\r\n private bytesToBacktrack: number;\r\n\r\n static simpleElementWriter(buffer: UhkBuffer, element: T): void {\r\n (element).toBinary(buffer); // TODO: Remove any\r\n }\r\n\r\n constructor() {\r\n this.offset = 0;\r\n this.bytesToBacktrack = 0;\r\n this.buffer = new Buffer(UhkBuffer.eepromSize);\r\n this.buffer.fill(0);\r\n }\r\n\r\n readInt8(): number {\r\n let value = this.buffer.readInt8(this.offset);\r\n this.dump(`i8(${value})`);\r\n this.bytesToBacktrack = 1;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeInt8(value: number): void {\r\n this.dump(`i8(${value})`);\r\n this.buffer.writeInt8(value, this.offset);\r\n this.offset += 1;\r\n }\r\n\r\n readUInt8(): number {\r\n let value = this.buffer.readUInt8(this.offset);\r\n this.dump(`u8(${value})`);\r\n this.bytesToBacktrack = 1;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeUInt8(value: number): void {\r\n this.dump(`u8(${value})`);\r\n this.buffer.writeUInt8(value, this.offset);\r\n this.offset += 1;\r\n }\r\n\r\n readInt16(): number {\r\n let value = this.buffer.readInt16LE(this.offset);\r\n this.dump(`i16(${value})`);\r\n this.bytesToBacktrack = 2;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeInt16(value: number): void {\r\n this.dump(`i16(${value})`);\r\n this.buffer.writeInt16LE(value, this.offset);\r\n this.offset += 2;\r\n }\r\n\r\n readUInt16(): number {\r\n let value = this.buffer.readUInt16LE(this.offset);\r\n this.dump(`u16(${value})`);\r\n this.bytesToBacktrack = 2;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeUInt16(value: number): void {\r\n this.dump(`u16(${value})`);\r\n this.buffer.writeUInt16LE(value, this.offset);\r\n this.offset += 2;\r\n }\r\n\r\n readInt32(): number {\r\n let value = this.buffer.readInt32LE(this.offset);\r\n this.dump(`i32(${value})`);\r\n this.bytesToBacktrack = 4;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeInt32(value: number): void {\r\n this.dump(`i32(${value})`);\r\n this.buffer.writeInt32LE(value, this.offset);\r\n this.offset += 4;\r\n }\r\n\r\n readUInt32(): number {\r\n let value = this.buffer.readUInt32LE(this.offset);\r\n this.dump(`u32(${value})`);\r\n this.bytesToBacktrack = 4;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeUInt32(value: number): void {\r\n this.dump(`u32(${value})`);\r\n this.buffer.writeUInt32LE(value, this.offset);\r\n this.offset += 4;\r\n }\r\n\r\n readCompactLength(): number {\r\n let length = this.readUInt8();\r\n if (length === UhkBuffer.longCompactLengthPrefix) {\r\n length += this.readUInt8() << 8;\r\n }\r\n return length;\r\n }\r\n\r\n writeCompactLength(length: number) {\r\n if (length >= UhkBuffer.longCompactLengthPrefix) {\r\n this.writeUInt8(UhkBuffer.longCompactLengthPrefix);\r\n this.writeUInt16(length);\r\n } else {\r\n this.writeUInt8(length);\r\n }\r\n }\r\n\r\n readString(): string {\r\n let stringByteLength = this.readCompactLength();\r\n let str = this.buffer.toString(UhkBuffer.stringEncoding, this.offset, this.offset + stringByteLength);\r\n this.dump(`${UhkBuffer.stringEncoding}(${str})`);\r\n this.bytesToBacktrack = stringByteLength;\r\n this.offset += stringByteLength;\r\n return str;\r\n }\r\n\r\n writeString(str: string): void {\r\n let stringByteLength = Buffer.byteLength(str, UhkBuffer.stringEncoding);\r\n\r\n if (stringByteLength > UhkBuffer.maxCompactLength) {\r\n throw `Cannot serialize string: ${stringByteLength} bytes is larger\r\n than the maximum allowed length of ${UhkBuffer.maxCompactLength} bytes`;\r\n }\r\n\r\n this.writeCompactLength(stringByteLength);\r\n this.dump(`${UhkBuffer.stringEncoding}(${str})`);\r\n this.buffer.write(str, this.offset, stringByteLength, UhkBuffer.stringEncoding);\r\n this.offset += stringByteLength;\r\n }\r\n\r\n readBoolean(): boolean {\r\n return this.readUInt8() !== 0;\r\n }\r\n\r\n writeBoolean(bool: boolean) {\r\n this.writeUInt8(bool ? 1 : 0);\r\n }\r\n\r\n readArray(elementReader: (buffer: UhkBuffer, index?: number) => T): T[] {\r\n let array: T[] = [];\r\n let length = this.readCompactLength();\r\n for (let i = 0; i < length; ++i) {\r\n array.push(elementReader(this, i));\r\n }\r\n return array;\r\n }\r\n\r\n writeArray(\r\n array: T[],\r\n elementWriter: (buffer: UhkBuffer, element: T, index?: number) => void = UhkBuffer.simpleElementWriter\r\n ): void {\r\n const length = array.length;\r\n this.writeCompactLength(length);\r\n for (let i = 0; i < length; ++i) {\r\n elementWriter(this, array[i], i);\r\n }\r\n }\r\n\r\n backtrack(): void {\r\n this.offset -= this.bytesToBacktrack;\r\n this.bytesToBacktrack = 0;\r\n }\r\n\r\n getBufferContent(): Buffer {\r\n return this.buffer.slice(0, this.offset);\r\n }\r\n\r\n get enableDump() {\r\n return this._enableDump;\r\n }\r\n\r\n set enableDump(value) {\r\n if (value) {\r\n UhkBuffer.isFirstElementToDump = true;\r\n }\r\n this._enableDump = value;\r\n }\r\n\r\n dump(value: any) {\r\n if (!this.enableDump) {\r\n return;\r\n }\r\n\r\n if (!UhkBuffer.isFirstElementToDump) {\r\n process.stdout.write(', ');\r\n }\r\n\r\n process.stdout.write(value);\r\n\r\n if (UhkBuffer.isFirstElementToDump) {\r\n UhkBuffer.isFirstElementToDump = false;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/UhkBuffer.ts","import { UhkBuffer } from '../UhkBuffer';\r\nimport { Keymap } from './Keymap';\r\nimport { Macro } from './Macro';\r\nimport { Module } from './Module';\r\n\r\nexport class Layer {\r\n\r\n modules: Module[];\r\n\r\n constructor(layers?: Layer) {\r\n if (!layers) {\r\n return;\r\n }\r\n this.modules = layers.modules.map(module => new Module(module));\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros?: Macro[]): Layer {\r\n this.modules = jsonObject.modules.map((module: any) => new Module().fromJsonObject(module, macros));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros?: Macro[]): Layer {\r\n this.modules = buffer.readArray(uhkBuffer => {\r\n return new Module().fromBinary(uhkBuffer, macros);\r\n });\r\n return this;\r\n }\r\n\r\n toJsonObject(macros?: Macro[]): any {\r\n return {\r\n modules: this.modules.map(module => module.toJsonObject(macros))\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros?: Macro[]): void {\r\n buffer.writeArray(this.modules, (uhkBuffer: UhkBuffer, module: Module) => {\r\n module.toBinary(uhkBuffer, macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): Layer {\r\n let modules: Module[];\r\n let moduleModified = false;\r\n this.modules.forEach((module, index) => {\r\n const newModule = module.renameKeymap(oldAbbr, newAbbr);\r\n if (newModule !== module) {\r\n if (!moduleModified) {\r\n modules = this.modules.slice();\r\n moduleModified = true;\r\n }\r\n modules[index] = newModule;\r\n }\r\n });\r\n if (moduleModified) {\r\n const newLayer = Object.assign(new Layer(), this);\r\n newLayer.modules = modules;\r\n return newLayer;\r\n }\r\n return this;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/Layer.ts","export enum LongPressAction {\r\n leftCtrl,\r\n leftShift,\r\n leftAlt,\r\n leftSuper,\r\n rightCtrl,\r\n rightShift,\r\n rightAlt,\r\n rightSuper,\r\n mod,\r\n fn,\r\n mouse\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/LongPressAction.ts","import { assertEnum, assertUInt8 } from '../assert';\r\nimport { UhkBuffer } from '../UhkBuffer';\r\nimport { Helper as KeyActionHelper, KeyAction, NoneAction } from './key-action';\r\nimport { Keymap } from './Keymap';\r\nimport { Macro } from './Macro';\r\nimport { PlayMacroAction, SwitchLayerAction } from './key-action';\r\n\r\nenum PointerRole {\r\n none,\r\n move,\r\n scroll\r\n}\r\n\r\nexport class Module {\r\n\r\n @assertUInt8\r\n id: number;\r\n\r\n keyActions: KeyAction[];\r\n\r\n @assertEnum(PointerRole)\r\n pointerRole: PointerRole;\r\n\r\n constructor(other?: Module) {\r\n if (!other) {\r\n return;\r\n }\r\n this.id = other.id;\r\n this.keyActions = other.keyActions.map(keyAction => KeyActionHelper.createKeyAction(keyAction));\r\n this.pointerRole = other.pointerRole;\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros?: Macro[]): Module {\r\n this.id = jsonObject.id;\r\n this.pointerRole = PointerRole[jsonObject.pointerRole];\r\n this.keyActions = jsonObject.keyActions.map((keyAction: any) => {\r\n return KeyActionHelper.createKeyAction(keyAction, macros);\r\n });\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros?: Macro[]): Module {\r\n this.id = buffer.readUInt8();\r\n this.pointerRole = buffer.readUInt8();\r\n let keyActionsLength: number = buffer.readCompactLength();\r\n this.keyActions = [];\r\n for (let i = 0; i < keyActionsLength; ++i) {\r\n this.keyActions.push(KeyActionHelper.createKeyAction(buffer, macros));\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(macros?: Macro[]): any {\r\n return {\r\n id: this.id,\r\n pointerRole: PointerRole[this.pointerRole],\r\n keyActions: this.keyActions.map(keyAction => {\r\n if (keyAction && (macros || !(keyAction instanceof PlayMacroAction || keyAction instanceof SwitchLayerAction))) {\r\n return keyAction.toJsonObject(macros);\r\n }\r\n })\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros?: Macro[]): void {\r\n buffer.writeUInt8(this.id);\r\n buffer.writeUInt8(this.pointerRole);\r\n\r\n const noneAction = new NoneAction();\r\n\r\n const keyActions: KeyAction[] = this.keyActions.map(keyAction => {\r\n if (keyAction) {\r\n return keyAction;\r\n }\r\n return noneAction;\r\n });\r\n\r\n buffer.writeArray(keyActions, (uhkBuffer: UhkBuffer, keyAction: KeyAction) => {\r\n keyAction.toBinary(uhkBuffer, macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): Module {\r\n let keyActions: KeyAction[];\r\n let keyActionModified = false;\r\n this.keyActions.forEach((keyAction, index) => {\r\n if (!keyAction) { return; }\r\n const newKeyAction = keyAction.renameKeymap(oldAbbr, newAbbr);\r\n if (newKeyAction !== keyAction) {\r\n if (!keyActionModified) {\r\n keyActions = this.keyActions.slice();\r\n keyActionModified = true;\r\n }\r\n keyActions[index] = newKeyAction;\r\n }\r\n });\r\n if (keyActionModified) {\r\n const newModule = Object.assign(new Module(), this);\r\n newModule.keyActions = keyActions;\r\n return newModule;\r\n }\r\n return this;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/Module.ts","import { assertUInt16 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './MacroAction';\r\n\r\nexport class DelayMacroAction extends MacroAction {\r\n\r\n @assertUInt16\r\n delay: number;\r\n\r\n constructor(other?: DelayMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.delay = other.delay;\r\n }\r\n\r\n fromJsonObject(jsObject: any): DelayMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.delay = jsObject.delay;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): DelayMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.delay = buffer.readUInt16();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.DelayMacroAction,\r\n delay: this.delay\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.DelayMacroAction);\r\n buffer.writeUInt16(this.delay);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/DelayMacroAction.ts","import { assertEnum, assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { KeyModifiers } from '../KeyModifiers';\r\nimport { MacroAction, MacroActionId, MacroSubAction, macroActionType } from './MacroAction';\r\n\r\nconst NUM_OF_COMBINATIONS = 3; // Cases: scancode, modifer, both\r\n\r\ninterface JsObjectKeyMacroAction {\r\n macroActionType: string;\r\n action: string;\r\n scancode?: number;\r\n modifierMask?: number;\r\n}\r\n\r\nexport class KeyMacroAction extends MacroAction {\r\n\r\n @assertEnum(MacroSubAction)\r\n action: MacroSubAction;\r\n\r\n @assertUInt8\r\n scancode: number;\r\n\r\n @assertUInt8\r\n modifierMask: number;\r\n\r\n constructor(other?: KeyMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.action = other.action;\r\n this.scancode = other.scancode;\r\n this.modifierMask = other.modifierMask;\r\n }\r\n\r\n fromJsonObject(jsObject: JsObjectKeyMacroAction): KeyMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.action = MacroSubAction[jsObject.action];\r\n this.scancode = jsObject.scancode;\r\n this.modifierMask = jsObject.modifierMask;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): KeyMacroAction {\r\n let macroActionId: MacroActionId = this.readAndAssertMacroActionId(buffer);\r\n let keyMacroType: number = macroActionId - MacroActionId.KeyMacroAction;\r\n this.action = Math.floor(keyMacroType / NUM_OF_COMBINATIONS);\r\n keyMacroType %= NUM_OF_COMBINATIONS;\r\n if (keyMacroType % 2 === 0) {\r\n this.scancode = buffer.readUInt8();\r\n }\r\n if (keyMacroType !== 0) {\r\n this.modifierMask = buffer.readUInt8();\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n let jsObject: JsObjectKeyMacroAction = {\r\n macroActionType: macroActionType.KeyMacroAction,\r\n action: MacroSubAction[this.action]\r\n };\r\n\r\n if (this.hasScancode()) {\r\n jsObject.scancode = this.scancode;\r\n }\r\n\r\n if (this.hasModifiers()) {\r\n jsObject.modifierMask = this.modifierMask;\r\n }\r\n\r\n return jsObject;\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n let keyMacroType: number = MacroActionId.KeyMacroAction;\r\n keyMacroType += NUM_OF_COMBINATIONS * this.action;\r\n\r\n if (this.hasModifiers()) {\r\n ++keyMacroType;\r\n if (this.hasScancode()) {\r\n ++keyMacroType;\r\n }\r\n }\r\n buffer.writeUInt8(keyMacroType);\r\n if (this.hasScancode()) {\r\n buffer.writeUInt8(this.scancode);\r\n }\r\n if (this.hasModifiers()) {\r\n buffer.writeUInt8(this.modifierMask);\r\n }\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n isModifierActive(modifier: KeyModifiers): boolean {\r\n return (this.modifierMask & modifier) > 0;\r\n }\r\n\r\n hasScancode(): boolean {\r\n return !!this.scancode;\r\n }\r\n\r\n hasModifiers(): boolean {\r\n return !!this.modifierMask;\r\n }\r\n\r\n isHoldAction(): boolean {\r\n return this.action === MacroSubAction.hold;\r\n }\r\n\r\n isPressAction(): boolean {\r\n return this.action === MacroSubAction.press;\r\n }\r\n\r\n isReleaseAction(): boolean {\r\n return this.action === MacroSubAction.release;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/KeyMacroAction.ts","import { assertEnum, assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { MacroAction, MacroActionId, MacroSubAction, macroActionType } from './MacroAction';\r\n\r\nexport enum MouseButtons {\r\n Left = 1 << 0,\r\n Middle = 1 << 1,\r\n Right = 1 << 2\r\n};\r\n\r\ninterface JsObjectMouseButtonMacroAction {\r\n macroActionType: string;\r\n action: string;\r\n mouseButtonsMask?: number;\r\n}\r\n\r\nexport class MouseButtonMacroAction extends MacroAction {\r\n @assertEnum(MacroSubAction)\r\n action: MacroSubAction;\r\n\r\n @assertUInt8\r\n mouseButtonsMask: number;\r\n\r\n constructor(other?: MouseButtonMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.action = other.action;\r\n this.mouseButtonsMask = other.mouseButtonsMask;\r\n }\r\n\r\n fromJsonObject(jsObject: JsObjectMouseButtonMacroAction): MouseButtonMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.action = MacroSubAction[jsObject.action];\r\n this.mouseButtonsMask = jsObject.mouseButtonsMask;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): MouseButtonMacroAction {\r\n let macroActionId: MacroActionId = this.readAndAssertMacroActionId(buffer);\r\n this.action = macroActionId - MacroActionId.MouseButtonMacroAction;\r\n this.mouseButtonsMask = buffer.readUInt8();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.MouseButtonMacroAction,\r\n action: MacroSubAction[this.action],\r\n mouseButtonsMask: this.mouseButtonsMask\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeUInt8(MacroActionId.MouseButtonMacroAction + this.action);\r\n buffer.writeUInt8(this.mouseButtonsMask);\r\n }\r\n\r\n setMouseButtons(buttonStates: boolean[]): void {\r\n let bitmask = 0;\r\n for (let i = 0; i < buttonStates.length; i++) {\r\n bitmask |= Number(buttonStates[i]) << i;\r\n }\r\n this.mouseButtonsMask = bitmask;\r\n }\r\n\r\n getMouseButtons(): boolean[] {\r\n let enabledMouseButtons: boolean[] = [];\r\n for (let bitmask = this.mouseButtonsMask; bitmask; bitmask >>>= 1) {\r\n enabledMouseButtons.push(Boolean(bitmask & 1));\r\n }\r\n return enabledMouseButtons;\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n hasButtons(): boolean {\r\n return this.mouseButtonsMask !== 0;\r\n }\r\n\r\n isOnlyHoldAction(): boolean {\r\n return this.action === MacroSubAction.hold;\r\n }\r\n\r\n isOnlyPressAction(): boolean {\r\n return this.action === MacroSubAction.press;\r\n }\r\n\r\n isOnlyReleaseAction(): boolean {\r\n return this.action === MacroSubAction.release;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/MouseButtonMacroAction.ts","import { assertInt16 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './MacroAction';\r\n\r\nexport class MoveMouseMacroAction extends MacroAction {\r\n\r\n @assertInt16\r\n x: number;\r\n\r\n @assertInt16\r\n y: number;\r\n\r\n constructor(other?: MoveMouseMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.x = other.x;\r\n this.y = other.y;\r\n }\r\n\r\n fromJsonObject(jsObject: any): MoveMouseMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.x = jsObject.x;\r\n this.y = jsObject.y;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): MoveMouseMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.x = buffer.readInt16();\r\n this.y = buffer.readInt16();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.MoveMouseMacroAction,\r\n x: this.x,\r\n y: this.y\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.MoveMouseMacroAction);\r\n buffer.writeInt16(this.x);\r\n buffer.writeInt16(this.y);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/MoveMouseMacroAction.ts","import { assertInt16 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './MacroAction';\r\n\r\nexport class ScrollMouseMacroAction extends MacroAction {\r\n\r\n @assertInt16\r\n x: number;\r\n\r\n @assertInt16\r\n y: number;\r\n\r\n constructor(other?: ScrollMouseMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.x = other.x;\r\n this.y = other.y;\r\n }\r\n\r\n fromJsonObject(jsObject: any): ScrollMouseMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.x = jsObject.x;\r\n this.y = jsObject.y;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): ScrollMouseMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.x = buffer.readInt16();\r\n this.y = buffer.readInt16();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.ScrollMouseMacroAction,\r\n x: this.x,\r\n y: this.y\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.ScrollMouseMacroAction);\r\n buffer.writeInt16(this.x);\r\n buffer.writeInt16(this.y);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/ScrollMouseMacroAction.ts","import { UhkBuffer } from '../../UhkBuffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './MacroAction';\r\n\r\nexport class TextMacroAction extends MacroAction {\r\n\r\n text: string;\r\n\r\n constructor(other?: TextMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.text = other.text;\r\n }\r\n\r\n fromJsonObject(jsObject: any): TextMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.text = jsObject.text;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): TextMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.text = buffer.readString();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.TextMacroAction,\r\n text: this.text\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.TextMacroAction);\r\n buffer.writeString(this.text);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/TextMacroAction.ts","var WritableStream = require('stream').Writable\nvar inherits = require('util').inherits\n\nmodule.exports = BrowserStdout\n\n\ninherits(BrowserStdout, WritableStream)\n\nfunction BrowserStdout(opts) {\n if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)\n\n opts = opts || {}\n WritableStream.call(this, opts)\n this.label = (opts.label !== undefined) ? opts.label : 'stdout'\n}\n\nBrowserStdout.prototype._write = function(chunks, encoding, cb) {\n var output = chunks.toString ? chunks.toString() : chunks\n if (this.label === false) {\n console.log(output)\n } else {\n console.log(this.label+':', output)\n }\n process.nextTick(cb)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/browser-stdout/index.js\n// module id = 464\n// module chunks = 1","import { NgModule, ReflectiveInjector } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { StoreLogMonitorModule, useLogMonitor } from '@ngrx/store-log-monitor';\r\n\r\nimport { DragulaModule } from 'ng2-dragula/ng2-dragula';\r\nimport { Select2Module } from 'ng2-select2/ng2-select2';\r\n\r\nimport { AddOnComponent } from './shared/components/add-on';\r\nimport { KeyboardSliderComponent } from './shared/components/keyboard/slider';\r\nimport { KeymapAddComponent, KeymapEditComponent, KeymapHeaderComponent } from './shared/components/keymap';\r\nimport { LayersComponent } from './shared/components/layers';\r\nimport {\r\n MacroActionEditorComponent,\r\n MacroDelayTabComponent,\r\n MacroEditComponent,\r\n MacroHeaderComponent,\r\n MacroItemComponent,\r\n MacroKeyTabComponent,\r\n MacroListComponent,\r\n MacroMouseTabComponent,\r\n MacroNotFoundComponent,\r\n MacroTextTabComponent\r\n} from './shared/components/macro';\r\nimport { NotificationComponent } from './shared/components/notification';\r\nimport { PopoverComponent } from './shared/components/popover';\r\nimport {\r\n KeymapTabComponent,\r\n KeypressTabComponent,\r\n LayerTabComponent,\r\n MacroTabComponent,\r\n MouseTabComponent,\r\n NoneTabComponent\r\n} from './shared/components/popover/tab';\r\nimport { CaptureKeystrokeButtonComponent } from './shared/components/popover/widgets/capture-keystroke';\r\nimport { IconComponent } from './shared/components/popover/widgets/icon';\r\nimport { SettingsComponent } from './shared/components/settings';\r\nimport { SideMenuComponent } from './shared/components/side-menu';\r\nimport { SvgKeyboardComponent } from './shared/components/svg/keyboard';\r\nimport {\r\n SvgIconTextKeyComponent,\r\n SvgKeyboardKeyComponent,\r\n SvgKeystrokeKeyComponent,\r\n SvgMouseClickKeyComponent,\r\n SvgMouseKeyComponent,\r\n SvgMouseMoveKeyComponent,\r\n SvgMouseScrollKeyComponent,\r\n SvgMouseSpeedKeyComponent,\r\n SvgOneLineTextKeyComponent,\r\n SvgSingleIconKeyComponent,\r\n SvgSwitchKeymapKeyComponent,\r\n SvgTextIconKeyComponent,\r\n SvgTwoLineTextKeyComponent\r\n} from './shared/components/svg/keys';\r\nimport { SvgModuleComponent } from './shared/components/svg/module';\r\nimport { SvgKeyboardWrapComponent } from './shared/components/svg/wrap';\r\nimport { MainAppComponent, appRoutingProviders, routing } from './main-app';\r\n\r\nimport { CancelableDirective } from './shared/directives';\r\n\r\nimport { CaptureService } from './shared/services/capture.service';\r\nimport { MapperService } from './shared/services/mapper.service';\r\n\r\nimport { KeymapEffects, MacroEffects } from './shared/store/effects';\r\nimport { userConfigurationReducer, presetReducer } from './shared/store/reducers';\r\nimport { DataStorage } from './shared/store/storage';\r\n\r\nimport { KeymapEditGuard } from './shared/components/keymap/edit';\r\nimport { MacroNotFoundGuard } from './shared/components/macro/not-found';\r\n\r\n// Create DataStorage dependency injection\r\nconst storageProvider = ReflectiveInjector.resolve([DataStorage]);\r\nconst storageInjector = ReflectiveInjector.fromResolvedProviders(storageProvider);\r\nconst storageService: DataStorage = storageInjector.get(DataStorage);\r\n\r\n// All reducers that are used in application\r\nconst storeConfig = {\r\n userConfiguration: storageService.saveState(userConfigurationReducer),\r\n presetKeymaps: presetReducer\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n MainAppComponent,\r\n KeymapEditComponent,\r\n KeymapHeaderComponent,\r\n NotificationComponent,\r\n SvgIconTextKeyComponent,\r\n SvgKeyboardKeyComponent,\r\n SvgKeystrokeKeyComponent,\r\n SvgMouseKeyComponent,\r\n SvgMouseClickKeyComponent,\r\n SvgMouseMoveKeyComponent,\r\n SvgMouseScrollKeyComponent,\r\n SvgMouseSpeedKeyComponent,\r\n SvgOneLineTextKeyComponent,\r\n SvgSingleIconKeyComponent,\r\n SvgSwitchKeymapKeyComponent,\r\n SvgTextIconKeyComponent,\r\n SvgTwoLineTextKeyComponent,\r\n SvgKeyboardKeyComponent,\r\n SvgKeyboardWrapComponent,\r\n SvgKeyboardComponent,\r\n SvgModuleComponent,\r\n LayersComponent,\r\n PopoverComponent,\r\n KeymapAddComponent,\r\n SideMenuComponent,\r\n KeypressTabComponent,\r\n KeymapTabComponent,\r\n LayerTabComponent,\r\n MacroTabComponent,\r\n MouseTabComponent,\r\n NoneTabComponent,\r\n CaptureKeystrokeButtonComponent,\r\n IconComponent,\r\n MacroEditComponent,\r\n MacroListComponent,\r\n MacroHeaderComponent,\r\n MacroItemComponent,\r\n MacroActionEditorComponent,\r\n MacroDelayTabComponent,\r\n MacroKeyTabComponent,\r\n MacroMouseTabComponent,\r\n MacroTextTabComponent,\r\n MacroNotFoundComponent,\r\n AddOnComponent,\r\n SettingsComponent,\r\n KeyboardSliderComponent,\r\n CancelableDirective\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n DragulaModule,\r\n routing,\r\n StoreModule.provideStore(storeConfig, storageService.initialState()),\r\n StoreDevtoolsModule.instrumentStore({\r\n monitor: useLogMonitor({\r\n visible: false,\r\n position: 'right'\r\n })\r\n }),\r\n StoreLogMonitorModule,\r\n Select2Module,\r\n EffectsModule.runAfterBootstrap(KeymapEffects),\r\n EffectsModule.runAfterBootstrap(MacroEffects)\r\n ],\r\n providers: [\r\n MapperService,\r\n appRoutingProviders,\r\n KeymapEditGuard,\r\n MacroNotFoundGuard,\r\n CaptureService\r\n ],\r\n bootstrap: [MainAppComponent]\r\n})\r\nexport class AppModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/app.module.ts","\"use strict\";\nexports.compose = function () {\n var functions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n functions[_i - 0] = arguments[_i];\n }\n return function (arg) {\n if (functions.length === 0) {\n return arg;\n }\n var last = functions[functions.length - 1];\n var rest = functions.slice(0, -1);\n return rest.reduceRight(function (composed, fn) { return fn(composed); }, last(arg));\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/core/compose.js\n// module id = 579\n// module chunks = 1","import { NgModule, Injector } from '@angular/core';\nimport { StoreModule, State, INITIAL_STATE, INITIAL_REDUCER, Dispatcher, Reducer } from '@ngrx/store';\nimport { StoreDevtools, DevtoolsDispatcher } from './devtools';\nimport { STORE_DEVTOOLS_CONFIG, INITIAL_OPTIONS } from './config';\nimport { DevtoolsExtension, REDUX_DEVTOOLS_EXTENSION } from './extension';\nexport function _createReduxDevtoolsExtension() {\n var legacyExtensionKey = 'devToolsExtension';\n var extensionKey = '__REDUX_DEVTOOLS_EXTENSION__';\n if (typeof window === 'object' && typeof window[legacyExtensionKey] !== 'undefined') {\n return window[legacyExtensionKey];\n }\n else if (typeof window === 'object' && typeof window[extensionKey] !== 'undefined') {\n return window[extensionKey];\n }\n else {\n return null;\n }\n}\nexport function _createState(devtools) {\n return devtools.state;\n}\nexport function _createReducer(dispatcher, reducer) {\n return new Reducer(dispatcher, reducer);\n}\nexport function _createStateIfExtension(extension, injector) {\n if (!!extension) {\n var devtools = injector.get(StoreDevtools);\n return _createState(devtools);\n }\n else {\n var initialState = injector.get(INITIAL_STATE);\n var dispatcher = injector.get(Dispatcher);\n var reducer = injector.get(Reducer);\n return new State(initialState, dispatcher, reducer);\n }\n}\nexport function _createReducerIfExtension(extension, injector) {\n if (!!extension) {\n var devtoolsDispatcher = injector.get(DevtoolsDispatcher);\n var reducer = injector.get(INITIAL_REDUCER);\n return _createReducer(devtoolsDispatcher, reducer);\n }\n else {\n var dispatcher = injector.get(Dispatcher);\n var reducer = injector.get(INITIAL_REDUCER);\n return new Reducer(dispatcher, reducer);\n }\n}\nexport function noMonitor() {\n return null;\n}\nexport function _createOptions(_options) {\n var DEFAULT_OPTIONS = { monitor: noMonitor };\n var options = typeof _options === 'function' ? _options() : _options;\n options = Object.assign({}, DEFAULT_OPTIONS, options);\n if (options.maxAge && options.maxAge < 2) {\n throw new Error(\"Devtools 'maxAge' cannot be less than 2, got \" + options.maxAge);\n }\n return options;\n}\nexport var StoreDevtoolsModule = (function () {\n function StoreDevtoolsModule() {\n }\n StoreDevtoolsModule.instrumentStore = function (_options) {\n if (_options === void 0) { _options = {}; }\n return {\n ngModule: StoreDevtoolsModule,\n providers: [\n {\n provide: State,\n deps: [StoreDevtools],\n useFactory: _createState\n },\n {\n provide: INITIAL_OPTIONS,\n useValue: _options\n },\n {\n provide: Reducer,\n deps: [DevtoolsDispatcher, INITIAL_REDUCER],\n useFactory: _createReducer\n },\n {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: _createOptions\n }\n ]\n };\n };\n StoreDevtoolsModule.instrumentOnlyWithExtension = function (_options) {\n if (_options === void 0) { _options = {}; }\n return {\n ngModule: StoreDevtoolsModule,\n providers: [\n {\n provide: State,\n deps: [REDUX_DEVTOOLS_EXTENSION, Injector],\n useFactory: _createStateIfExtension\n },\n {\n provide: Reducer,\n deps: [REDUX_DEVTOOLS_EXTENSION, Injector],\n useFactory: _createReducerIfExtension\n },\n {\n provide: INITIAL_OPTIONS,\n useValue: _options\n },\n {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: _createOptions\n }\n ]\n };\n };\n StoreDevtoolsModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n StoreModule\n ],\n providers: [\n DevtoolsExtension,\n DevtoolsDispatcher,\n StoreDevtools,\n {\n provide: REDUX_DEVTOOLS_EXTENSION,\n useFactory: _createReduxDevtoolsExtension\n }\n ]\n },] },\n ];\n /** @nocollapse */\n StoreDevtoolsModule.ctorParameters = [];\n return StoreDevtoolsModule;\n}());\n//# sourceMappingURL=instrument.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/instrument.js\n// module id = 587\n// module chunks = 1","import { Dispatcher, Reducer } from '@ngrx/store';\nimport { difference, liftAction } from './utils';\nimport { ActionTypes } from './actions';\nexport var INIT_ACTION = { type: Dispatcher.INIT };\n/**\n* Computes the next entry in the log by applying an action.\n*/\nfunction computeNextEntry(reducer, action, state, error) {\n if (error) {\n return {\n state: state,\n error: 'Interrupted by an error up the chain'\n };\n }\n var nextState = state;\n var nextError;\n try {\n nextState = reducer(state, action);\n }\n catch (err) {\n nextError = err.toString();\n console.error(err.stack || err);\n }\n return {\n state: nextState,\n error: nextError\n };\n}\n/**\n* Runs the reducer on invalidated actions to get a fresh computation log.\n*/\nfunction recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds) {\n // Optimization: exit early and return the same reference\n // if we know nothing could have changed.\n if (minInvalidatedStateIndex >= computedStates.length &&\n computedStates.length === stagedActionIds.length) {\n return computedStates;\n }\n var nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex);\n for (var i = minInvalidatedStateIndex; i < stagedActionIds.length; i++) {\n var actionId = stagedActionIds[i];\n var action = actionsById[actionId].action;\n var previousEntry = nextComputedStates[i - 1];\n var previousState = previousEntry ? previousEntry.state : committedState;\n var previousError = previousEntry ? previousEntry.error : undefined;\n var shouldSkip = skippedActionIds.indexOf(actionId) > -1;\n var entry = shouldSkip ?\n previousEntry :\n computeNextEntry(reducer, action, previousState, previousError);\n nextComputedStates.push(entry);\n }\n return nextComputedStates;\n}\nexport function liftInitialState(initialCommittedState, monitorReducer) {\n return {\n monitorState: monitorReducer(undefined, {}),\n nextActionId: 1,\n actionsById: { 0: liftAction(INIT_ACTION) },\n stagedActionIds: [0],\n skippedActionIds: [],\n committedState: initialCommittedState,\n currentStateIndex: 0,\n computedStates: []\n };\n}\n/**\n* Creates a history state reducer from an app's reducer.\n*/\nexport function liftReducerWith(initialCommittedState, initialLiftedState, monitorReducer, options) {\n if (options === void 0) { options = {}; }\n /**\n * Manages how the history actions modify the history state.\n */\n return function (reducer) { return function (liftedState, liftedAction) {\n var _a = liftedState || initialLiftedState, monitorState = _a.monitorState, actionsById = _a.actionsById, nextActionId = _a.nextActionId, stagedActionIds = _a.stagedActionIds, skippedActionIds = _a.skippedActionIds, committedState = _a.committedState, currentStateIndex = _a.currentStateIndex, computedStates = _a.computedStates;\n if (!liftedState) {\n // Prevent mutating initialLiftedState\n actionsById = Object.create(actionsById);\n }\n function commitExcessActions(n) {\n // Auto-commits n-number of excess actions.\n var excess = n;\n var idsToDelete = stagedActionIds.slice(1, excess + 1);\n for (var i = 0; i < idsToDelete.length; i++) {\n if (computedStates[i + 1].error) {\n // Stop if error is found. Commit actions up to error.\n excess = i;\n idsToDelete = stagedActionIds.slice(1, excess + 1);\n break;\n }\n else {\n delete actionsById[idsToDelete[i]];\n }\n }\n skippedActionIds = skippedActionIds.filter(function (id) { return idsToDelete.indexOf(id) === -1; });\n stagedActionIds = [0].concat(stagedActionIds.slice(excess + 1));\n committedState = computedStates[excess].state;\n computedStates = computedStates.slice(excess);\n currentStateIndex = currentStateIndex > excess\n ? currentStateIndex - excess\n : 0;\n }\n // By default, agressively recompute every state whatever happens.\n // This has O(n) performance, so we'll override this to a sensible\n // value whenever we feel like we don't have to recompute the states.\n var minInvalidatedStateIndex = 0;\n switch (liftedAction.type) {\n case ActionTypes.RESET: {\n // Get back to the state the store was created with.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = initialCommittedState;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case ActionTypes.COMMIT: {\n // Consider the last committed state the new starting point.\n // Squash any staged actions into a single committed state.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = computedStates[currentStateIndex].state;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case ActionTypes.ROLLBACK: {\n // Forget about any staged actions.\n // Start again from the last committed state.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case ActionTypes.TOGGLE_ACTION: {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n var actionId_1 = liftedAction.id;\n var index = skippedActionIds.indexOf(actionId_1);\n if (index === -1) {\n skippedActionIds = [actionId_1].concat(skippedActionIds);\n }\n else {\n skippedActionIds = skippedActionIds.filter(function (id) { return id !== actionId_1; });\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(actionId_1);\n break;\n }\n case ActionTypes.SET_ACTIONS_ACTIVE: {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n var start = liftedAction.start, end = liftedAction.end, active = liftedAction.active;\n var actionIds = [];\n for (var i = start; i < end; i++)\n actionIds.push(i);\n if (active) {\n skippedActionIds = difference(skippedActionIds, actionIds);\n }\n else {\n skippedActionIds = skippedActionIds.concat(actionIds);\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(start);\n break;\n }\n case ActionTypes.JUMP_TO_STATE: {\n // Without recomputing anything, move the pointer that tell us\n // which state is considered the current one. Useful for sliders.\n currentStateIndex = liftedAction.index;\n // Optimization: we know the history has not changed.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case ActionTypes.SWEEP: {\n // Forget any actions that are currently being skipped.\n stagedActionIds = difference(stagedActionIds, skippedActionIds);\n skippedActionIds = [];\n currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1);\n break;\n }\n case ActionTypes.PERFORM_ACTION: {\n // Auto-commit as new actions come in.\n if (options.maxAge && stagedActionIds.length === options.maxAge) {\n commitExcessActions(1);\n }\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n var actionId = nextActionId++;\n // Mutation! This is the hottest path, and we optimize on purpose.\n // It is safe because we set a new key in a cache dictionary.\n actionsById[actionId] = liftedAction;\n stagedActionIds = stagedActionIds.concat([actionId]);\n // Optimization: we know that only the new action needs computing.\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n break;\n }\n case ActionTypes.IMPORT_STATE: {\n // Completely replace everything.\n (_b = liftedAction.nextLiftedState, monitorState = _b.monitorState, actionsById = _b.actionsById, nextActionId = _b.nextActionId, stagedActionIds = _b.stagedActionIds, skippedActionIds = _b.skippedActionIds, committedState = _b.committedState, currentStateIndex = _b.currentStateIndex, computedStates = _b.computedStates, _b);\n break;\n }\n case Reducer.REPLACE:\n case Dispatcher.INIT: {\n // Always recompute states on hot reload and init.\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n default: {\n // If the action is not recognized, it's a monitor action.\n // Optimization: a monitor action can't change history.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n }\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds);\n monitorState = monitorReducer(monitorState, liftedAction);\n return {\n monitorState: monitorState,\n actionsById: actionsById,\n nextActionId: nextActionId,\n stagedActionIds: stagedActionIds,\n skippedActionIds: skippedActionIds,\n committedState: committedState,\n currentStateIndex: currentStateIndex,\n computedStates: computedStates\n };\n var _b;\n }; };\n}\n//# sourceMappingURL=reducer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-devtools/src/reducer.js\n// module id = 588\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DockMonitorModule } from './src/dock-monitor/index';\nimport { LogMonitorModule } from './src/log-monitor/index';\nimport { StoreLogMonitorComponent } from './src/store-log-monitor';\nexport var StoreLogMonitorModule = (function () {\n function StoreLogMonitorModule() {\n }\n StoreLogMonitorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n DockMonitorModule,\n LogMonitorModule\n ],\n declarations: [\n StoreLogMonitorComponent\n ],\n exports: [\n StoreLogMonitorComponent\n ]\n },] },\n ];\n /** @nocollapse */\n StoreLogMonitorModule.ctorParameters = [];\n return StoreLogMonitorModule;\n}());\nexport { useDockMonitor as useLogMonitor } from './src/dock-monitor/index';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/index.js\n// module id = 589\n// module chunks = 1","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { filter } from 'rxjs/operator/filter';\nimport { map } from 'rxjs/operator/map';\nimport { KEYCODES } from './keycodes';\nexport var CommanderComponent = (function () {\n function CommanderComponent() {\n var _this = this;\n this.keydown$ = new EventEmitter();\n this._ignoreTags = ['INPUT', 'SELECT', 'TEXTAREA'];\n this.keydown$ = new EventEmitter();\n var filtered$ = filter.call(this.keydown$, function (e) {\n if (_this._ignoreTags.indexOf(e.target.tagName) !== -1) {\n return false;\n }\n if (e.target.isContentEditable) {\n return false;\n }\n var command = _this.parseCommand(_this.shortcut);\n if (!command) {\n return false;\n }\n var charCode = e.keyCode || e.which;\n var char = String.fromCharCode(charCode);\n return command.name.toUpperCase() === char.toUpperCase() &&\n command.alt === e.altKey &&\n command.ctrl === e.ctrlKey &&\n command.meta === e.metaKey &&\n command.shift === e.shiftKey;\n });\n this.command = map.call(filtered$, function (e) {\n e.preventDefault();\n return { command: _this.shortcut };\n });\n }\n CommanderComponent.prototype.parseCommand = function (s) {\n var keyString = s.trim().toLowerCase();\n if (!/^(ctrl-|shift-|alt-|meta-){0,4}\\w+$/.test(keyString)) {\n throw new Error('The string to parse needs to be of the format \"c\", \"ctrl-c\", \"shift-ctrl-c\".');\n }\n var parts = keyString.split('-');\n var key = {\n ctrl: false,\n meta: false,\n shift: false,\n alt: false\n };\n var c;\n key.name = parts.pop();\n while ((c = parts.pop())) {\n key[c] = true;\n }\n if (key.ctrl) {\n key.sequence = KEYCODES.ctrl[key.name] || key.name;\n }\n else {\n key.sequence = KEYCODES.nomod[key.name] || key.name;\n }\n if (key.shift && key.sequence && key.sequence.length === 1) {\n key.sequence = key.sequence.toUpperCase();\n }\n return key;\n };\n CommanderComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-commander',\n template: '',\n styles: [':host{ display: none }'],\n host: {\n '(document:keydown)': 'keydown$.emit($event)'\n }\n },] },\n ];\n /** @nocollapse */\n CommanderComponent.ctorParameters = [];\n CommanderComponent.propDecorators = {\n 'shortcut': [{ type: Input },],\n 'command': [{ type: Output },],\n };\n return CommanderComponent;\n}());\n//# sourceMappingURL=commander.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/commander.js\n// module id = 590\n// module chunks = 1","import { Component, ChangeDetectionStrategy, Input, EventEmitter } from '@angular/core';\nimport { select } from '@ngrx/core/operator/select';\nimport { StoreDevtools } from '@ngrx/store-devtools';\nimport { merge } from 'rxjs/observable/merge';\nimport { map } from 'rxjs/operator/map';\nimport { DockActions } from './actions';\nexport var DockMonitorComponent = (function () {\n function DockMonitorComponent(tools, actions) {\n this.state$ = select.call(tools.liftedState, function (s) { return s.monitorState; });\n this.visible$ = select.call(this.state$, function (s) { return s.visible; });\n this.position$ = select.call(this.state$, function (s) { return s.position; });\n this.size$ = select.call(this.state$, function (s) { return s.size; });\n this.toggle$ = new EventEmitter();\n this.changePosition$ = new EventEmitter();\n this.actionsSubscription = merge(map.call(this.toggle$, function () { return actions.toggleVisibility(); }), map.call(this.changePosition$, function () { return actions.changePosition(); })).subscribe(tools);\n }\n DockMonitorComponent.prototype.ngOnDestroy = function () {\n this.actionsSubscription.unsubscribe();\n };\n DockMonitorComponent.decorators = [\n { type: Component, args: [{\n selector: 'dock-monitor',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n \\n\\n \\n \\n \\n \"\n },] },\n ];\n /** @nocollapse */\n DockMonitorComponent.ctorParameters = [\n { type: StoreDevtools, },\n { type: DockActions, },\n ];\n DockMonitorComponent.propDecorators = {\n 'toggleCommand': [{ type: Input },],\n 'positionCommand': [{ type: Input },],\n };\n return DockMonitorComponent;\n}());\n//# sourceMappingURL=dock-monitor.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/dock-monitor.js\n// module id = 591\n// module chunks = 1","import { Component, HostBinding, Input } from '@angular/core';\nexport var DockComponent = (function () {\n function DockComponent() {\n this.position = 'right';\n this.size = 0.3;\n this.visible = true;\n }\n Object.defineProperty(DockComponent.prototype, \"absoluteSize\", {\n get: function () {\n return 100 * this.size + \"%\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"restSize\", {\n get: function () {\n return (100 - (100 * this.size)) + \"%\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"leftPosition\", {\n get: function () {\n return this.calculatePosition('left', 'right');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"rightPosition\", {\n get: function () {\n return this.calculatePosition('right', 'left');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"topPosition\", {\n get: function () {\n return this.calculatePosition('top', 'bottom');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"bottomPosition\", {\n get: function () {\n return this.calculatePosition('bottom', 'top');\n },\n enumerable: true,\n configurable: true\n });\n DockComponent.prototype.calculatePosition = function (primary, secondary) {\n if (this.visible) {\n switch (this.position) {\n case secondary:\n return this.restSize;\n default:\n return '0%';\n }\n }\n else {\n switch (this.position) {\n case primary:\n return \"-\" + this.absoluteSize;\n case secondary:\n return '100%';\n default:\n return '0%';\n }\n }\n };\n DockComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-dock',\n template: \"\\n
\\n
\\n \\n
\\n
\\n \",\n styles: [\"\\n :host {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n transition: all 0.3s;\\n z-index: 9999;\\n }\\n\\n .dock {\\n position: absolute;\\n z-index: 1;\\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\\n background-color: white;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n }\\n\\n .dock-content {\\n width: 100%;\\n height: 100%;\\n overflow: auto;\\n }\\n \"]\n },] },\n ];\n /** @nocollapse */\n DockComponent.ctorParameters = [];\n DockComponent.propDecorators = {\n 'position': [{ type: Input },],\n 'size': [{ type: Input },],\n 'visible': [{ type: Input },],\n 'leftPosition': [{ type: HostBinding, args: ['style.left',] },],\n 'rightPosition': [{ type: HostBinding, args: ['style.right',] },],\n 'topPosition': [{ type: HostBinding, args: ['style.top',] },],\n 'bottomPosition': [{ type: HostBinding, args: ['style.bottom',] },],\n };\n return DockComponent;\n}());\n//# sourceMappingURL=dock.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/dock.js\n// module id = 592\n// module chunks = 1","// Most of these are according to this table: http://www.ssicom.org/js/x171166.htm\n// However where nodejs readline diverges, they are adjusted to conform to it\nexport var KEYCODES = {\n nomod: {\n escape: '\\u001b',\n space: ' ' // actually '\\u0020'\n },\n ctrl: {\n ' ': '\\u0000',\n 'a': '\\u0001',\n 'b': '\\u0002',\n 'c': '\\u0003',\n 'd': '\\u0004',\n 'e': '\\u0005',\n 'f': '\\u0006',\n 'g': '\\u0007',\n 'h': '\\u0008',\n 'i': '\\u0009',\n 'j': '\\u000a',\n 'k': '\\u000b',\n 'm': '\\u000c',\n 'n': '\\u000d',\n 'l': '\\u000e',\n 'o': '\\u000f',\n 'p': '\\u0010',\n 'q': '\\u0011',\n 'r': '\\u0012',\n 's': '\\u0013',\n 't': '\\u0014',\n 'u': '\\u0015',\n 'v': '\\u0016',\n 'w': '\\u0017',\n 'x': '\\u0018',\n 'y': '\\u0019',\n 'z': '\\u001a',\n '[': '\\u001b',\n '\\\\': '\\u001c',\n ']': '\\u001d',\n '^': '\\u001e',\n '_': '\\u001f',\n 'space': '\\u0000'\n }\n};\n//# sourceMappingURL=keycodes.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/keycodes.js\n// module id = 593\n// module chunks = 1","import { combineReducers } from '@ngrx/store';\nimport { DockActions } from './actions';\nexport var POSITIONS = ['left', 'top', 'right', 'bottom'];\nexport function useDockMonitor(_options) {\n if (_options === void 0) { _options = {}; }\n var options = Object.assign({\n position: 'right',\n visible: true,\n size: 0.3\n }, _options);\n function position(state, action) {\n if (state === void 0) { state = options.position; }\n return (action.type === DockActions.CHANGE_POSITION) ?\n POSITIONS[(POSITIONS.indexOf(state) + 1) % POSITIONS.length] :\n state;\n }\n function size(state, action) {\n if (state === void 0) { state = options.size; }\n return (action.type === DockActions.CHANGE_SIZE) ?\n action.size :\n state;\n }\n function visible(state, action) {\n if (state === void 0) { state = options.visible; }\n return (action.type === DockActions.TOGGLE_VISIBILITY) ?\n !state :\n state;\n }\n return combineReducers({\n position: position,\n visible: visible,\n size: size\n });\n}\n//# sourceMappingURL=reducer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/dock-monitor/reducer.js\n// module id = 594\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonNodeComponent } from './json-node';\nimport { JsonTreeComponent } from './json-tree';\nexport var JsonTreeModule = (function () {\n function JsonTreeModule() {\n }\n JsonTreeModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n JsonNodeComponent,\n JsonTreeComponent\n ],\n exports: [\n JsonTreeComponent\n ]\n },] },\n ];\n /** @nocollapse */\n JsonTreeModule.ctorParameters = [];\n return JsonTreeModule;\n}());\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/json-tree/index.js\n// module id = 595\n// module chunks = 1","import { Component, Input } from '@angular/core';\nimport * as types from './types';\nexport var JsonNodeComponent = (function () {\n function JsonNodeComponent() {\n this.expanded = false;\n }\n Object.defineProperty(JsonNodeComponent.prototype, \"value\", {\n set: function (value) {\n this.label = types.getLabelFor(value);\n this.type = types.getTypeOf(value);\n if (this.type === types.KNOWN.Array || this.type === types.KNOWN.Object || this.type === types.KNOWN.Iterable) {\n this.children = types.getChildrenFor(value);\n }\n else {\n this.children = null;\n }\n },\n enumerable: true,\n configurable: true\n });\n JsonNodeComponent.prototype.toggle = function () {\n if (this.children) {\n this.expanded = !this.expanded;\n }\n };\n JsonNodeComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-json-node',\n styles: [\"\\n :host {\\n display: block;\\n padding: 2px 2px 2px 20px;\\n position: relative;\\n color: #70AFCD;\\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\\n }\\n .expanded-indicator {\\n position: absolute;\\n top: 7px;\\n left: 5px;\\n font-size: 10px;\\n transition: transform 200ms;\\n }\\n\\n .expanded .expanded-indicator {\\n transform: rotate(90deg);\\n }\\n\\n .node-key::after {\\n content: ': ';\\n display: inline;\\n }\\n\\n .expanded .node-label {\\n color: #BABBBD !important;\\n }\\n\\n .node-label {\\n color: #9AC05C;\\n }\\n\\n .node-label.array, .node-label.null, .node-label.iterable {\\n color: #D182C0;\\n }\\n\\n .node-label.number, .node-label.undefined, .node-label.boolean {\\n color: #F86936;\\n }\\n \"],\n template: \"\\n
\\n \\u25B6\\n {{ key }}\\n {{ label }}\\n
\\n
\\n \\n
\\n \"\n },] },\n ];\n /** @nocollapse */\n JsonNodeComponent.ctorParameters = [];\n JsonNodeComponent.propDecorators = {\n 'key': [{ type: Input },],\n 'expanded': [{ type: Input },],\n 'value': [{ type: Input },],\n };\n return JsonNodeComponent;\n}());\n//# sourceMappingURL=json-node.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/json-tree/json-node.js\n// module id = 596\n// module chunks = 1","import { Component, Input } from '@angular/core';\nimport { getChildrenFor } from './types';\nexport var JsonTreeComponent = (function () {\n function JsonTreeComponent() {\n this.children = [];\n this.expanded = true;\n }\n Object.defineProperty(JsonTreeComponent.prototype, \"value\", {\n set: function (value) {\n this.children = getChildrenFor(value);\n },\n enumerable: true,\n configurable: true\n });\n JsonTreeComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-json-tree',\n template: \"\\n \\n \"\n },] },\n ];\n /** @nocollapse */\n JsonTreeComponent.ctorParameters = [];\n JsonTreeComponent.propDecorators = {\n 'expanded': [{ type: Input },],\n 'value': [{ type: Input },],\n };\n return JsonTreeComponent;\n}());\n//# sourceMappingURL=json-tree.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/json-tree/json-tree.js\n// module id = 597\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonTreeModule } from '../json-tree/index';\nimport { LogMonitorComponent } from './log-monitor';\nimport { LogMonitorButtonComponent } from './log-monitor-button';\nimport { LogMonitorEntryComponent } from './log-monitor-entry';\nexport var LogMonitorModule = (function () {\n function LogMonitorModule() {\n }\n LogMonitorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n JsonTreeModule\n ],\n declarations: [\n LogMonitorComponent,\n LogMonitorButtonComponent,\n LogMonitorEntryComponent\n ],\n exports: [\n LogMonitorComponent\n ]\n },] },\n ];\n /** @nocollapse */\n LogMonitorModule.ctorParameters = [];\n return LogMonitorModule;\n}());\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/log-monitor/index.js\n// module id = 598\n// module chunks = 1","import { Component, Input, Output, EventEmitter, HostListener, HostBinding } from '@angular/core';\nexport var LogMonitorButtonComponent = (function () {\n function LogMonitorButtonComponent() {\n this.action = new EventEmitter();\n }\n LogMonitorButtonComponent.prototype.handleAction = function ($event) {\n if (!this.disabled) {\n this.action.next({});\n }\n $event.stopPropagation();\n return false;\n };\n LogMonitorButtonComponent.decorators = [\n { type: Component, args: [{\n selector: 'log-monitor-button',\n template: \"\\n \\n \",\n styles: [\"\\n :host{\\n flex-grow: 1;\\n display: inline-block;\\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\\n cursor: pointer;\\n font-weight: bold;\\n border-radius: 3px;\\n padding: 4px 8px;\\n margin: 5px 3px 5px 3px;\\n font-size: 0.8em;\\n color: white;\\n text-decoration: none;\\n background-color: #4F5A65;\\n }\\n\\n :host.disabled{\\n opacity: 0.2;\\n cursor: text;\\n background-color: transparent;\\n }\\n \"]\n },] },\n ];\n /** @nocollapse */\n LogMonitorButtonComponent.ctorParameters = [];\n LogMonitorButtonComponent.propDecorators = {\n 'disabled': [{ type: HostBinding, args: ['class.disabled',] }, { type: Input },],\n 'action': [{ type: Output },],\n 'handleAction': [{ type: HostListener, args: ['click', ['$event'],] },],\n };\n return LogMonitorButtonComponent;\n}());\n//# sourceMappingURL=log-monitor-button.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/log-monitor/log-monitor-button.js\n// module id = 599\n// module chunks = 1","import { Component, Input, Output, EventEmitter } from '@angular/core';\nexport var LogMonitorEntryComponent = (function () {\n function LogMonitorEntryComponent() {\n this.expandEntries = false;\n this.disabled = false;\n this.toggle = new EventEmitter();\n }\n Object.defineProperty(LogMonitorEntryComponent.prototype, \"item\", {\n get: function () {\n return this._item;\n },\n set: function (value) {\n this._item = value;\n this.stateActionPair = {\n state: value.state,\n action: value.action\n };\n },\n enumerable: true,\n configurable: true\n });\n LogMonitorEntryComponent.prototype.handleToggle = function () {\n if (!this.disabled) {\n this.toggle.next({ id: this.item.actionId });\n }\n };\n LogMonitorEntryComponent.prototype.logPayload = function () {\n console.log(this.item.action);\n };\n LogMonitorEntryComponent.prototype.logState = function () {\n console.log(this.item.state);\n };\n LogMonitorEntryComponent.decorators = [\n { type: Component, args: [{\n selector: 'log-monitor-entry',\n template: \"\\n
\\n {{ item.action.type }}\\n
\\n
\\n \\n
\\n \",\n styles: [\"\\n :host{\\n color: #FFFFFF;\\n background-color: #4F5A65;\\n cursor: pointer;\\n }\\n .title-bar{\\n padding: 8px 0 7px 16px;\\n background-color: rgba(0,0,0,0.1);\\n }\\n .action-bar{\\n padding: 20px;\\n }\\n .collapsed{\\n text-decoration: line-through;\\n font-style: italic;\\n opacity: 0.5;\\n }\\n \"]\n },] },\n ];\n /** @nocollapse */\n LogMonitorEntryComponent.ctorParameters = [];\n LogMonitorEntryComponent.propDecorators = {\n 'expandEntries': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'item': [{ type: Input },],\n 'toggle': [{ type: Output },],\n };\n return LogMonitorEntryComponent;\n}());\n//# sourceMappingURL=log-monitor-entry.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/log-monitor/log-monitor-entry.js\n// module id = 600\n// module chunks = 1","import { Component, Input } from '@angular/core';\nimport { map } from 'rxjs/operator/map';\nimport { StoreDevtools } from '@ngrx/store-devtools';\nimport { select } from '@ngrx/core/operator/select';\nexport var LogMonitorComponent = (function () {\n function LogMonitorComponent(devtools) {\n this.devtools = devtools;\n this.expandEntries = true;\n this.canRevert$ = select.call(devtools.liftedState, function (s) { return !(s.computedStates.length > 1); });\n this.canSweep$ = select.call(devtools.liftedState, function (s) { return !(s.skippedActionIds.length > 0); });\n this.canCommit$ = select.call(devtools.liftedState, function (s) { return !(s.computedStates.length > 1); });\n this.items$ = map.call(devtools.liftedState, function (_a) {\n var actionsById = _a.actionsById, skippedActionIds = _a.skippedActionIds, stagedActionIds = _a.stagedActionIds, computedStates = _a.computedStates;\n var actions = [];\n for (var i = 0; i < stagedActionIds.length; i++) {\n var actionId = stagedActionIds[i];\n var action = actionsById[actionId].action;\n var _b = computedStates[i], state = _b.state, error = _b.error;\n var previousState = void 0;\n if (i > 0) {\n previousState = computedStates[i - 1].state;\n }\n actions.push({\n key: actionId,\n collapsed: skippedActionIds.indexOf(actionId) > -1,\n action: action,\n actionId: actionId,\n state: state,\n previousState: previousState,\n error: error\n });\n }\n return actions;\n });\n }\n LogMonitorComponent.prototype.handleToggle = function (id) {\n this.devtools.toggleAction(id);\n };\n LogMonitorComponent.prototype.handleReset = function () {\n this.devtools.reset();\n };\n LogMonitorComponent.prototype.handleRollback = function () {\n this.devtools.rollback();\n };\n LogMonitorComponent.prototype.handleSweep = function () {\n this.devtools.sweep();\n };\n LogMonitorComponent.prototype.handleCommit = function () {\n this.devtools.commit();\n };\n LogMonitorComponent.decorators = [\n { type: Component, args: [{\n selector: 'log-monitor',\n styles: [\"\\n :host {\\n display: block;\\n background-color: #2A2F3A;\\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\\n position: relative;\\n overflow-y: hidden;\\n width: 100%;\\n height: 100%;\\n min-width: 300px;\\n direction: ltr;\\n }\\n\\n .button-bar {\\n text-align: center;\\n border-bottom-width: 1px;\\n border-bottom-style: solid;\\n border-color: transparent;\\n z-index: 1;\\n display: flex;\\n flex-direction: row;\\n padding: 0 4px;\\n }\\n\\n .elements {\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 38px;\\n bottom: 0;\\n overflow-x: hidden;\\n overflow-y: auto;\\n }\\n \"],\n template: \"\\n
\\n \\n Reset\\n \\n\\n \\n Revert\\n \\n\\n \\n Sweep\\n \\n\\n \\n Commit\\n \\n
\\n
\\n \\n \\n
\\n \"\n },] },\n ];\n /** @nocollapse */\n LogMonitorComponent.ctorParameters = [\n { type: StoreDevtools, },\n ];\n LogMonitorComponent.propDecorators = {\n 'expandEntries': [{ type: Input },],\n };\n return LogMonitorComponent;\n}());\n//# sourceMappingURL=log-monitor.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/log-monitor/log-monitor.js\n// module id = 601\n// module chunks = 1","import { Component, Input } from '@angular/core';\nexport var StoreLogMonitorComponent = (function () {\n function StoreLogMonitorComponent() {\n this.toggleCommand = 'ctrl-h';\n this.positionCommand = 'ctrl-m';\n this.expandEntries = false;\n }\n StoreLogMonitorComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-store-log-monitor',\n template: \"\\n \\n \\n \\n \"\n },] },\n ];\n /** @nocollapse */\n StoreLogMonitorComponent.ctorParameters = [];\n StoreLogMonitorComponent.propDecorators = {\n 'toggleCommand': [{ type: Input },],\n 'positionCommand': [{ type: Input },],\n 'expandEntries': [{ type: Input },],\n };\n return StoreLogMonitorComponent;\n}());\n//# sourceMappingURL=store-log-monitor.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@ngrx/store-log-monitor/src/store-log-monitor.js\n// module id = 602\n// module chunks = 1","/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\nvar saveAs=saveAs||function(e){\"use strict\";if(\"undefined\"==typeof navigator||!/MSIE [1-9]\\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS(\"http://www.w3.org/1999/xhtml\",\"a\"),r=\"download\"in o,i=function(e){var t=new MouseEvent(\"click\");e.dispatchEvent(t)},a=e.webkitRequestFileSystem,c=e.requestFileSystem||a||e.mozRequestFileSystem,u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},f=\"application/octet-stream\",s=0,d=500,l=function(t){var o=function(){\"string\"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,d)},v=function(e,t,n){t=[].concat(t);for(var o=t.length;o--;){var r=e[\"on\"+t[o]];if(\"function\"==typeof r)try{r.call(e,n||e)}catch(i){u(i)}}},p=function(e){return/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(e.type)?new Blob([\"\",e],{type:e.type}):e},w=function(t,u,d){d||(t=p(t));var w,y,m,S=this,h=t.type,O=!1,R=function(){v(S,\"writestart progress write writeend\".split(\" \"))},b=function(){if((O||!w)&&(w=n().createObjectURL(t)),y)y.location.href=w;else{var o=e.open(w,\"_blank\");void 0==o&&\"undefined\"!=typeof safari&&(e.location.href=w)}S.readyState=S.DONE,R(),l(w)},g=function(e){return function(){return S.readyState!==S.DONE?e.apply(this,arguments):void 0}},E={create:!0,exclusive:!1};return S.readyState=S.INIT,u||(u=\"download\"),r?(w=n().createObjectURL(t),o.href=w,o.download=u,void setTimeout(function(){i(o),R(),l(w),S.readyState=S.DONE})):(e.chrome&&h&&h!==f&&(m=t.slice||t.webkitSlice,t=m.call(t,0,t.size,f),O=!0),a&&\"download\"!==u&&(u+=\".download\"),(h===f||a)&&(y=e),c?(s+=t.size,void c(e.TEMPORARY,s,g(function(e){e.root.getDirectory(\"saved\",E,g(function(e){var n=function(){e.getFile(u,E,g(function(e){e.createWriter(g(function(n){n.onwriteend=function(t){y.location.href=e.toURL(),S.readyState=S.DONE,v(S,\"writeend\",t),l(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&b()},\"writestart progress write abort\".split(\" \").forEach(function(e){n[\"on\"+e]=S[\"on\"+e]}),n.write(t),S.abort=function(){n.abort(),S.readyState=S.DONE},S.readyState=S.WRITING}),b)}),b)};e.getFile(u,{create:!1},g(function(e){e.remove(),n()}),g(function(e){e.code===e.NOT_FOUND_ERR?n():b()}))}),b)}),b)):void b())},y=w.prototype,m=function(e,t,n){return new w(e,t,n)};return\"undefined\"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return n||(e=p(e)),navigator.msSaveOrOpenBlob(e,t||\"download\")}:(y.abort=function(){var e=this;e.readyState=e.DONE,v(e,\"abort\")},y.readyState=y.INIT=0,y.WRITING=1,y.DONE=2,y.error=y.onwritestart=y.onprogress=y.onwrite=y.onabort=y.onerror=y.onwriteend=null,m)}}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||this.content);\"undefined\"!=typeof module&&module.exports?module.exports.saveAs=saveAs:\"undefined\"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/filesaver.js/FileSaver.min.js\n// module id = 669\n// module chunks = 1","module.exports = \"
\\r\\n

\\r\\n \\r\\n {{ name$ | async }}\\r\\n

\\r\\n
\\r\\nTo be done...\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/add-on/add-on.component.html\n// module id = 670\n// module chunks = 1","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keyboard/slider/keyboard-slider.component.html\n// module id = 671\n// module chunks = 1","module.exports = \"

\\r\\n \\r\\n Add new keymap\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n

{{ keymap.name }}

\\r\\n

\\r\\n {{ keymap.description }}\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Sorry, no keyboard found under this search query.\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/add/keymap-add.component.html\n// module id = 672\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n
\\r\\n Sorry, there is no keymap with this abbreviation.\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/edit/keymap-edit.component.html\n// module id = 673\n// module chunks = 1","module.exports = \"
\\r\\n

\\r\\n \\r\\n keymap\\r\\n ()\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/header/keymap-header.component.html\n// module id = 674\n// module chunks = 1","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/layers/layers.component.html\n// module id = 675\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/macro-action-editor.component.html\n// module id = 676\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Enter delay in seconds

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Choose a preset
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.html\n// module id = 677\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Press key

\\r\\n

Hold key

\\r\\n

Release key

\\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/key/macro-key.component.html\n// module id = 678\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Move pointer

\\r\\n

Use negative values to move down or left from current position.

\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Scroll

\\r\\n

Use negative values to move down or left from current position.

\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Click mouse button

\\r\\n

Hold mouse button

\\r\\n

Release mouse button

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.html\n// module id = 679\n// module chunks = 1","module.exports = \"
\\r\\n

Type text

\\r\\n

Input the text you want to type with this macro action.

\\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/text/macro-text.component.html\n// module id = 680\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n
\\r\\n There is no macro with id {{ route.params.select('id') | async }}.\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/edit/macro-edit.component.html\n// module id = 681\n// module chunks = 1","module.exports = \"
\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/header/macro-header.component.html\n// module id = 682\n// module chunks = 1","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n
{{ title }}
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/item/macro-item.component.html\n// module id = 683\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/list/macro-list.component.html\n// module id = 684\n// module chunks = 1","module.exports = \"
\\r\\n You don't have any macros. Try to add one!\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/not-found/macro-not-found.component.html\n// module id = 685\n// module chunks = 1","module.exports = \"Keymap removed\\r\\nUndo\\r\\n×\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/notification/notification.component.html\n// module id = 686\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/popover.component.html\n// module id = 687\n// module chunks = 1","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keymap/keymap-tab.component.html\n// module id = 688\n// module chunks = 1","module.exports = \"
\\r\\n Scancode:\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Modifiers:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Long press action:\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n When a key is configured as layer switcher key, you can't assign other functions to it.\\r\\n To assign a scancode to the key, set the Layer action to None.\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keypress/keypress-tab.component.html\n// module id = 689\n// module chunks = 1","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/layer/layer-tab.component.html\n// module id = 690\n// module chunks = 1","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/macro/macro-tab.component.html\n// module id = 691\n// module chunks = 1","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Press this key along with mouse movement/scrolling to accelerate/decelerate the speed of the action.

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

You can set the multiplier in the settings.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/mouse/mouse-tab.component.html\n// module id = 692\n// module chunks = 1","module.exports = \"This key is unassigned and has no functionality.\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/none/none-tab.component.html\n// module id = 693\n// module chunks = 1","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.html\n// module id = 694\n// module chunks = 1","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/icon/icon.component.html\n// module id = 695\n// module chunks = 1","module.exports = \"
\\r\\n

\\r\\n \\r\\n Settings\\r\\n

\\r\\n
\\r\\nTo be done...\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/settings/settings.component.html\n// module id = 696\n// module chunks = 1","module.exports = \"
    \\r\\n
  • \\r\\n
    \\r\\n Keymaps\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n Macros\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n Add-on modules\\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/side-menu/side-menu.component.html\n// module id = 697\n// module chunks = 1","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keyboard/svg-keyboard.component.html\n// module id = 698\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n\\r\\n {{ text }}\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.html\n// module id = 699\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.html\n// module id = 700\n// module chunks = 1","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n C\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.html\n// module id = 701\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n\\r\\n Click \\r\\n\\r\\n\\r\\n {{ button }} \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.html\n// module id = 702\n// module chunks = 1","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.html\n// module id = 703\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n Move \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.html\n// module id = 704\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n Scroll \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.html\n// module id = 705\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n\\r\\n Speed \\r\\n\\r\\n\\r\\n {{ sign }} \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.html\n// module id = 706\n// module chunks = 1","module.exports = \" \\r\\n {{ text }}\\r\\n \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.html\n// module id = 707\n// module chunks = 1","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.html\n// module id = 708\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n\\r\\n {{ abbreviation }}\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.html\n// module id = 709\n// module chunks = 1","module.exports = \" \\r\\n {{ text }}\\r\\n \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.html\n// module id = 710\n// module chunks = 1","module.exports = \"\\r\\n {{ text }}\\r\\n \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.html\n// module id = 711\n// module chunks = 1","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/module/svg-module.component.html\n// module id = 712\n// module chunks = 1","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/wrap/svg-keyboard-wrap.component.html\n// module id = 713\n// module chunks = 1","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Fork me on GitHub\\r\\n
\\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./web/src/main-app/main-app.component.html\n// module id = 714\n// module chunks = 1","module.exports = [\n\t{\n\t\t\"id\": \"-1\",\n\t\t\"text\": \"None\"\n\t},\n\t{\n\t\t\"text\": \"Modifiers\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"0\",\n\t\t\t\t\"text\": \"LShift\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"1\",\n\t\t\t\t\"text\": \"LCtrl\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"2\",\n\t\t\t\t\"text\": \"LSuper\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"3\",\n\t\t\t\t\"text\": \"LAlt\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"4\",\n\t\t\t\t\"text\": \"RShift\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"5\",\n\t\t\t\t\"text\": \"RCtrl\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"6\",\n\t\t\t\t\"text\": \"RSuper\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"7\",\n\t\t\t\t\"text\": \"RAlt\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Layer switcher\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"8\",\n\t\t\t\t\"text\": \"Mod\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"9\",\n\t\t\t\t\"text\": \"Mouse\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"10\",\n\t\t\t\t\"text\": \"Fn\"\n\t\t\t}\n\t\t]\n\t}\n];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/json-loader!./shared/src/components/popover/tab/keypress/longPress.json\n// module id = 717\n// module chunks = 1","module.exports = [\n\t{\n\t\t\"text\": \"Alphabet\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"4\",\n\t\t\t\t\"text\": \"A\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"5\",\n\t\t\t\t\"text\": \"B\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"6\",\n\t\t\t\t\"text\": \"C\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"7\",\n\t\t\t\t\"text\": \"D\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"8\",\n\t\t\t\t\"text\": \"E\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"9\",\n\t\t\t\t\"text\": \"F\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"10\",\n\t\t\t\t\"text\": \"G\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"11\",\n\t\t\t\t\"text\": \"H\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"12\",\n\t\t\t\t\"text\": \"I\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"13\",\n\t\t\t\t\"text\": \"J\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"14\",\n\t\t\t\t\"text\": \"K\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"15\",\n\t\t\t\t\"text\": \"L\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"16\",\n\t\t\t\t\"text\": \"M\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"17\",\n\t\t\t\t\"text\": \"N\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"18\",\n\t\t\t\t\"text\": \"O\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"19\",\n\t\t\t\t\"text\": \"P\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"20\",\n\t\t\t\t\"text\": \"Q\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"21\",\n\t\t\t\t\"text\": \"R\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"22\",\n\t\t\t\t\"text\": \"S\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"23\",\n\t\t\t\t\"text\": \"T\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"24\",\n\t\t\t\t\"text\": \"U\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"25\",\n\t\t\t\t\"text\": \"V\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"26\",\n\t\t\t\t\"text\": \"W\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"27\",\n\t\t\t\t\"text\": \"X\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"28\",\n\t\t\t\t\"text\": \"Y\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"29\",\n\t\t\t\t\"text\": \"Z\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Number Row\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"30\",\n\t\t\t\t\"text\": \"1 !\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"31\",\n\t\t\t\t\"text\": \"2 @\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"32\",\n\t\t\t\t\"text\": \"3 #\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"33\",\n\t\t\t\t\"text\": \"4 $\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"34\",\n\t\t\t\t\"text\": \"5 %\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"35\",\n\t\t\t\t\"text\": \"6 ^\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"36\",\n\t\t\t\t\"text\": \"7 &\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"37\",\n\t\t\t\t\"text\": \"8 *\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"38\",\n\t\t\t\t\"text\": \"9 (\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"39\",\n\t\t\t\t\"text\": \"0 )\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Whitespace\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"40\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"Return\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Enter\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"41\",\n\t\t\t\t\"text\": \"Escape\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"42\",\n\t\t\t\t\"text\": \"Backspace\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"43\",\n\t\t\t\t\"text\": \"Tab\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"44\",\n\t\t\t\t\"text\": \"Space\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Punctuation\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"45\",\n\t\t\t\t\"text\": \"- _\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"46\",\n\t\t\t\t\"text\": \"= +\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"47\",\n\t\t\t\t\"text\": \"[ {\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"48\",\n\t\t\t\t\"text\": \"] }\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"49\",\n\t\t\t\t\"text\": \"\\\\ |\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"51\",\n\t\t\t\t\"text\": \"; :\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"52\",\n\t\t\t\t\"text\": \"' \\\"\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"53\",\n\t\t\t\t\"text\": \"` ~\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"54\",\n\t\t\t\t\"text\": \", <\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"55\",\n\t\t\t\t\"text\": \". >\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"56\",\n\t\t\t\t\"text\": \"/ ?\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Function keys\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"58\",\n\t\t\t\t\"text\": \"F1\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"59\",\n\t\t\t\t\"text\": \"F2\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"60\",\n\t\t\t\t\"text\": \"F3\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"61\",\n\t\t\t\t\"text\": \"F4\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"62\",\n\t\t\t\t\"text\": \"F5\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"63\",\n\t\t\t\t\"text\": \"F6\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"64\",\n\t\t\t\t\"text\": \"F7\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"65\",\n\t\t\t\t\"text\": \"F8\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"66\",\n\t\t\t\t\"text\": \"F9\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"67\",\n\t\t\t\t\"text\": \"F10\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"68\",\n\t\t\t\t\"text\": \"F11\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"69\",\n\t\t\t\t\"text\": \"F12\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"104\",\n\t\t\t\t\"text\": \"F13\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"105\",\n\t\t\t\t\"text\": \"F14\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"106\",\n\t\t\t\t\"text\": \"F15\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"107\",\n\t\t\t\t\"text\": \"F16\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"108\",\n\t\t\t\t\"text\": \"F17\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"109\",\n\t\t\t\t\"text\": \"F18\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"110\",\n\t\t\t\t\"text\": \"F19\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"111\",\n\t\t\t\t\"text\": \"F20\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"112\",\n\t\t\t\t\"text\": \"F21\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"113\",\n\t\t\t\t\"text\": \"F22\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"114\",\n\t\t\t\t\"text\": \"F23\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"115\",\n\t\t\t\t\"text\": \"F24\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Navigation\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"74\",\n\t\t\t\t\"text\": \"Home\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"75\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"PgUp pageup\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Page Up\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"77\",\n\t\t\t\t\"text\": \"End\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"78\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"PgDn pagedown\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Page Down\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"79\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"ArrowRight\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Right Arrow\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"80\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"ArrowLeft\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Left Arrow\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"81\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"ArrowDown\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Down Arrow\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"82\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"ArrowUp\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Up Arrow\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Numpad\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"83\",\n\t\t\t\t\"text\": \"NumLock\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"84\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"slash\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"/\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"85\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"asterisk\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"*\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"86\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"minus\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"-\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"87\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"plus\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"+\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"88\",\n\t\t\t\t\"text\": \"Enter\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"89\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"one\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"1\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"90\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"two\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"2\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"91\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"three\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"3\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"92\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"four\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"4\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"93\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"five\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"5\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"94\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"six\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"6\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"95\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"seven\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"7\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"96\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"eight\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"8\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"97\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"nine\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"9\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"98\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"zero\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"0\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"99\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"Period\"\n\t\t\t\t},\n\t\t\t\t\"text\": \".\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"176\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"Doublezero\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"00\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"177\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"Triplezero\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"000\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Misc\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"118\",\n\t\t\t\t\"text\": \"Menu\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"73\",\n\t\t\t\t\"text\": \"Insert\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"76\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"Delete Forward\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Delete\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"57\",\n\t\t\t\t\"text\": \"CapsLock\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"70\",\n\t\t\t\t\"text\": \"PrintScreen\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"71\",\n\t\t\t\t\"text\": \"ScrollLock\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"72\",\n\t\t\t\t\"text\": \"Pause\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Media Keys\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"127\",\n\t\t\t\t\"text\": \"Mute\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"128\",\n\t\t\t\t\"text\": \"Volume Up\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"129\",\n\t\t\t\t\"text\": \"Volume Down\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"\",\n\t\t\t\t\"text\": \"Next Track\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"\",\n\t\t\t\t\"text\": \"Previous Track\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"\",\n\t\t\t\t\"text\": \"Stop\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"\",\n\t\t\t\t\"text\": \"Play/Pause\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"\",\n\t\t\t\t\"text\": \"Eject\"\n\t\t\t}\n\t\t]\n\t}\n];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/json-loader!./shared/src/components/popover/tab/keypress/scancodes.json\n// module id = 718\n// module chunks = 1","module.exports = [\n\t{\n\t\t\"isDefault\": false,\n\t\t\"abbreviation\": \"QTY\",\n\t\t\"name\": \"QWERTY\",\n\t\t\"description\": \"Maecenas sem dui, ullamcorper consequat pellentesque ut, mattis at velit. Duis scelerisque eleifend gravida. Aenean at mauris rhoncus, dictum mi vitae, semper eros. Quisque maximus est elit, at condimentum ligula consectetur vel. Aenean lorem felis, molestie id ex suscipit, sagittis mollis dui. Phasellus in felis in libero bibendum ornare. Duis vestibulum dolor sed diam tempor vulputate. Curabitur scelerisque pretium ipsum. Phasellus non orci vestibulum, vehicula lectus sit amet, lacinia velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In diam lacus, cursus at pretium vel, ullamcorper at ante.\",\n\t\t\"layers\": [\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 36\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 37\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 38\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 39\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 45\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 46\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 42\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 28\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 24\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 12\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 18\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 19\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 47\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 48\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 49\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 11\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 13\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 14\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 15\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 51\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 52\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 40\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 17\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 16\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 54\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 55\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 56\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 53\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 30\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 31\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 32\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 33\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 34\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 35\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 43\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 20\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 26\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 8\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 21\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 23\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 4\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 22\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 7\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 9\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 10\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 29\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 27\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 6\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 25\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 5\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\"keyActions\": []\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 75\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 74\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 82\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 77\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 78\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 80\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 81\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 79\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchKeymap\",\n\t\t\t\t\t\t\t\t\"keymapAbbreviation\": \"VIM\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 118\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 232\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 237\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 233\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 234\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 238\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 235\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 239\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollUp\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"moveUp\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"moveLeft\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"moveDown\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"moveRight\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"rightClick\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"middleClick\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"leftClick\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"accelerate\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"decelerate\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"isDefault\": false,\n\t\t\"abbreviation\": \"VIM\",\n\t\t\"name\": \"VIM\",\n\t\t\"description\": \"Phasellus egestas ac tellus id tincidunt. Ut non nisl turpis. Morbi molestie diam elit, et cursus nibh tempus vel. Vestibulum mattis arcu nec nisi dictum, quis facilisis augue rutrum. Fusce vel tristique metus. Nullam pretium elit et enim maximus ornare. Praesent ultrices ligula ut mi convallis, quis ultrices enim venenatis. Aenean interdum odio aliquam quam vestibulum, vel bibendum elit ornare. Morbi leo enim, ullamcorper a bibendum sit amet, ultrices vitae ligula. Etiam consectetur et massa a convallis. Nullam non nisi aliquet, suscipit nulla a, tempor odio. Praesent eu turpis euismod, pellentesque mauris ut, imperdiet felis. Pellentesque vehicula luctus purus, et mattis ante volutpat eu. Quisque venenatis porta odio.\",\n\t\t\"layers\": [\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"switchKeymap\",\n\t\t\t\t\t\t\t\t\"keymapAbbreviation\": \"QTY\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"isDefault\": false,\n\t\t\"abbreviation\": \"DVR\",\n\t\t\"name\": \"DVR\",\n\t\t\"description\": \"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean dictum sollicitudin massa, ut lacinia ipsum. Ut bibendum ipsum ac pulvinar vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat lobortis lacus, id viverra nisl varius eu. Aliquam vitae eros a augue fermentum ultricies. Nam tempus dui sed ante ultricies bibendum. In ligula velit, aliquet a felis vitae, gravida tincidunt ante. Proin euismod velit odio, at pretium lacus porta egestas. Suspendisse aliquam, lacus accumsan dapibus elementum, orci felis egestas leo, non vulputate lorem turpis nec risus. Curabitur id volutpat orci. Sed aliquet finibus iaculis. In venenatis neque ac dolor posuere, vel vestibulum augue posuere.\",\n\t\t\"layers\": [\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"isDefault\": false,\n\t\t\"abbreviation\": \"EMY\",\n\t\t\"name\": \"Empty keymap\",\n\t\t\"description\": \"None of the keys are bind to any key action. It is ideal if you want to start creating your keymap from the ground up.\",\n\t\t\"layers\": [\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"modules\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t}\n];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/json-loader!./shared/src/config-serializer/preset-keymaps.json\n// module id = 719\n// module chunks = 1","module.exports = {\n\t\"dataModelVersion\": 3,\n\t\"moduleConfigurations\": [\n\t\t{\n\t\t\t\"id\": 1,\n\t\t\t\"initialPointerSpeed\": 1,\n\t\t\t\"pointerAcceleration\": 5,\n\t\t\t\"maxPointerSpeed\": 200\n\t\t}\n\t],\n\t\"keymaps\": [\n\t\t{\n\t\t\t\"isDefault\": true,\n\t\t\t\"abbreviation\": \"QTY\",\n\t\t\t\"name\": \"QWERTY\",\n\t\t\t\"description\": \"\",\n\t\t\t\"layers\": [\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 36\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 37\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 38\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 39\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 45\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 46\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 42\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 28\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 24\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 12\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 18\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 19\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 47\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 48\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 49\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 11\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 13\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 14\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 15\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 51\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 52\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 40\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 17\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 16\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 54\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 55\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 56\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 53\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 30\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 31\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 33\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 34\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 35\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 43\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 20\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 26\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 21\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 23\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 22\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 7\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 9\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 10\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 29\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 27\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 6\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 25\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 5\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": []\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 75\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 74\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 82\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 77\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 78\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 80\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 81\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 79\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchKeymap\",\n\t\t\t\t\t\t\t\t\t\"keymapAbbreviation\": \"VIM\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 118\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 232\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 237\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 233\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 234\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 238\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 235\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 239\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": true\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollUp\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveUp\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveLeft\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveDown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveRight\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"rightClick\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"middleClick\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"leftClick\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"accelerate\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"decelerate\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"isDefault\": false,\n\t\t\t\"abbreviation\": \"VIM\",\n\t\t\t\"name\": \"VIM\",\n\t\t\t\"description\": \"\",\n\t\t\t\"layers\": [\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"playMacro\",\n\t\t\t\t\t\t\t\t\t\"macroIndex\": 0\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchKeymap\",\n\t\t\t\t\t\t\t\t\t\"keymapAbbreviation\": \"QTY\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"isDefault\": false,\n\t\t\t\"abbreviation\": \"DVR\",\n\t\t\t\"name\": \"DVR\",\n\t\t\t\"description\": \"\",\n\t\t\t\"layers\": [\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t],\n\t\"macros\": [\n\t\t{\n\t\t\t\"isLooped\": false,\n\t\t\t\"isPrivate\": true,\n\t\t\t\"name\": \"My address\",\n\t\t\t\"macroActions\": [\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"scancode\": 111\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"hold\",\n\t\t\t\t\t\"scancode\": 83\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"scancode\": 112\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"modifierMask\": 93\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"hold\",\n\t\t\t\t\t\"modifierMask\": 101\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"modifierMask\": 133\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"mouseButtonsMask\": 9\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"hold\",\n\t\t\t\t\t\"mouseButtonsMask\": 12\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"mouseButtonsMask\": 104\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"moveMouse\",\n\t\t\t\t\t\"x\": -1920,\n\t\t\t\t\t\"y\": 220\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"scrollMouse\",\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": 20000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"delay\",\n\t\t\t\t\t\"delay\": 40000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"text\",\n\t\t\t\t\t\"text\": \"this is a text\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"isLooped\": true,\n\t\t\t\"isPrivate\": true,\n\t\t\t\"name\": \"Blah Blah blah\",\n\t\t\t\"macroActions\": [\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"scancode\": 111\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"mouseButtonsMask\": 104\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"scrollMouse\",\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": -20000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"delay\",\n\t\t\t\t\t\"delay\": 40000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"text\",\n\t\t\t\t\t\"text\": \"blahhhhhhh\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/json-loader!./shared/src/config-serializer/user-config.json\n// module id = 720\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n height: 100%;\\n display: block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/add-on/add-on.component.scss\n// module id = 722\n// module chunks = 1","module.exports = \"svg-keyboard {\\n width: 95%;\\n max-width: 1400px;\\n position: absolute;\\n left: 0;\\n transform: translateX(-101%);\\n user-select: none; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keyboard/slider/keyboard-slider.component.scss\n// module id = 723\n// module chunks = 1","module.exports = \":host {\\n overflow-y: auto;\\n display: block;\\n height: 100%; }\\n\\n.uhk__layer-switcher--wrapper {\\n position: relative; }\\n .uhk__layer-switcher--wrapper:before {\\n content: attr(data-title);\\n display: inline-block;\\n position: absolute;\\n bottom: -0.3em;\\n right: 100%;\\n font-size: 2.4rem;\\n padding-right: 0.25em;\\n margin: 0; }\\n\\n.keymap__search {\\n margin-top: 10px; }\\n .keymap__search .input-group {\\n width: 100%;\\n max-width: 350px;\\n float: left; }\\n .keymap__search_amount {\\n float: left;\\n margin: 7px 0 0 20px; }\\n\\n.keymap__description {\\n margin-bottom: 20px; }\\n\\n.keymap__list {\\n margin-top: 40px; }\\n .keymap__list_item {\\n margin-bottom: 50px; }\\n .keymap__list .btn-group-lg {\\n margin: 30px 0 0;\\n width: 100%;\\n text-align: center; }\\n .keymap__list .btn-group-lg .btn {\\n float: none;\\n padding-left: 50px;\\n padding-right: 50px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/add/keymap-add.component.scss\n// module id = 724\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n display: block; }\\n\\n.not-found {\\n margin-top: 30px;\\n font-size: 16px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/edit/keymap-edit.component.scss\n// module id = 725\n// module chunks = 1","module.exports = \":host {\\n display: block; }\\n\\n.keymap__is-default.fa-star-o {\\n cursor: pointer; }\\n .keymap__is-default.fa-star-o:hover {\\n color: #337ab7; }\\n\\n.keymap__remove {\\n font-size: 0.75em;\\n top: 8px; }\\n .keymap__remove:not(.disabled):hover {\\n cursor: pointer;\\n color: #900; }\\n .keymap__remove.disabled {\\n opacity: 0.25; }\\n\\n.keymap__duplicate {\\n font-size: 0.75em;\\n top: 7px;\\n margin-right: 15px;\\n position: relative; }\\n .keymap__duplicate:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.layer__download {\\n top: 10px;\\n font-size: 0.8em;\\n position: relative;\\n margin-right: 10px; }\\n .layer__download:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.pane-title {\\n margin-bottom: 1em; }\\n .pane-title__name, .pane-title__abbrev {\\n border: none;\\n border-bottom: 2px dotted #999;\\n padding: 0;\\n margin: 0 0.25rem; }\\n .pane-title__name:focus, .pane-title__abbrev:focus {\\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\\n border-color: transparent; }\\n .pane-title__name {\\n width: 290px;\\n text-overflow: ellipsis; }\\n .pane-title__abbrev {\\n width: 90px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/header/keymap-header.component.scss\n// module id = 726\n// module chunks = 1","module.exports = \":host {\\n display: block; }\\n :host.disabled button {\\n cursor: no-drop;\\n background: rgba(204, 204, 204, 0.43);\\n pointer-events: none; }\\n :host.disabled button.btn-primary {\\n background: #7c7c7c;\\n border-color: #7c7c7c; }\\n\\nbutton {\\n margin: 2px; }\\n\\n.uhk__layer-switcher--wrapper {\\n position: relative;\\n margin-bottom: 2rem; }\\n .uhk__layer-switcher--wrapper:before {\\n content: attr(data-title);\\n display: inline-block;\\n position: absolute;\\n bottom: -0.3em;\\n right: 100%;\\n font-size: 2.4rem;\\n padding-right: 0.25em;\\n margin: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/layers/layers.component.scss\n// module id = 727\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n position: relative; }\\n\\n.macro-delay__presets {\\n margin-top: 1rem; }\\n .macro-delay__presets button {\\n margin-right: 0.25rem;\\n margin-bottom: 0.25rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.scss\n// module id = 728\n// module chunks = 1","module.exports = \".macro-key__container {\\n padding: 0; }\\n\\n.macro-key__types {\\n margin-left: 0;\\n padding: 0 0 1rem; }\\n\\n.macro-key__action {\\n padding-left: 3rem;\\n padding-bottom: 1rem; }\\n .macro-key__action-container {\\n margin-top: -1rem;\\n padding-top: 1rem;\\n border-left: 1px solid #ddd; }\\n\\n.fa {\\n min-width: 14px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/key/macro-key.component.scss\n// module id = 729\n// module chunks = 1","module.exports = \".macro-mouse__container {\\n padding: 0; }\\n\\n.macro-mouse__types {\\n border-right: 1px solid #ddd;\\n border-left: 0;\\n margin-top: -1rem;\\n margin-left: 0;\\n padding: 1rem 0; }\\n\\n.macro-mouse__actions {\\n padding-left: 3rem;\\n padding-bottom: 1rem; }\\n\\n.macro-mouse__buttons {\\n margin-top: 3rem;\\n margin-bottom: 1rem; }\\n\\n.fa {\\n min-width: 14px; }\\n\\n.form-horizontal .form-group {\\n margin: 0 0 0.5rem; }\\n\\n.form-horizontal label {\\n display: inline-block;\\n margin-right: 0.5rem; }\\n\\n.form-horizontal .form-control {\\n display: inline-block;\\n width: 60%; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.scss\n// module id = 730\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n position: relative; }\\n\\n.macro__text-input {\\n width: 100%;\\n min-height: 10rem;\\n margin-bottom: 1rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/text/macro-text.component.scss\n// module id = 731\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n height: 100%;\\n display: block; }\\n\\n.not-found {\\n margin-top: 30px;\\n font-size: 16px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/edit/macro-edit.component.scss\n// module id = 732\n// module chunks = 1","module.exports = \".macro__remove {\\n font-size: 0.75em;\\n top: 8px; }\\n .macro__remove:hover {\\n cursor: pointer;\\n color: #900; }\\n\\n.macro__duplicate {\\n font-size: 0.75em;\\n top: 7px;\\n margin-right: 15px;\\n position: relative; }\\n .macro__duplicate:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.pane-title {\\n margin-bottom: 1em; }\\n .pane-title__name {\\n border: none;\\n border-bottom: 2px dotted #999;\\n padding: 0;\\n margin: 0 0.25rem;\\n width: 330px;\\n text-overflow: ellipsis; }\\n .pane-title__name:focus {\\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\\n border-color: transparent; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/header/macro-header.component.scss\n// module id = 733\n// module chunks = 1","module.exports = \":host {\\n overflow: hidden;\\n display: block; }\\n :host.macro-item:first-of-type .list-group-item {\\n border-radius: 4px 4px 0 0; }\\n :host.macro-item:last-of-type .list-group-item {\\n border-bottom: 0; }\\n :host.gu-transit {\\n opacity: 0.2; }\\n :host.gu-transit .list-group-item {\\n background: #f5f5f5; }\\n\\n.action--item {\\n display: flex;\\n flex-shrink: 0;\\n border: 0;\\n border-bottom: 1px solid #ddd; }\\n .action--item icon {\\n margin: 0 5px; }\\n .action--item > div {\\n display: flex;\\n flex: 1; }\\n .action--item:first-child {\\n border-radius: 0; }\\n .action--item.is-editing {\\n background: #f5f5f5; }\\n .action--item--wrap {\\n justify-content: space-between; }\\n .action--item--wrap.pointer:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.action--title {\\n display: flex;\\n flex: 1; }\\n\\n.action--movable:hover {\\n cursor: move; }\\n\\n.list-group-item {\\n margin-bottom: 0; }\\n\\n.macro-action-editor__container {\\n padding-top: 0;\\n padding-bottom: 0;\\n border-radius: 0;\\n border: none;\\n overflow: hidden; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/item/macro-item.component.scss\n// module id = 734\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n height: 100%; }\\n :host .list-container {\\n display: flex;\\n flex: 1; }\\n\\n.main-wrapper {\\n width: 500px; }\\n\\nh1 {\\n margin-bottom: 3rem; }\\n\\n.action--edit__form {\\n background-color: #fff;\\n margin-left: -0.5rem;\\n margin-right: -15px;\\n margin-top: 15px;\\n padding-top: 15px;\\n border-top: 1px solid #ddd; }\\n\\n.action--item {\\n padding-left: 8px; }\\n .action--item.active, .action--item.active:hover {\\n background-color: white;\\n font-weight: bold;\\n color: black;\\n border-color: black;\\n z-index: 10; }\\n\\n.list-group {\\n overflow: auto; }\\n\\n.macro__name {\\n border-bottom: 2px dotted #999;\\n padding: 0 0.5rem;\\n margin: 0 0.25rem; }\\n\\n.macro-settings {\\n border: 1px solid black;\\n border-top-color: #999;\\n z-index: 100; }\\n .macro-settings .helper {\\n position: absolute;\\n display: block;\\n height: 13px;\\n background: #fff;\\n width: 100%;\\n left: 0;\\n top: -14px; }\\n\\n.action--item.active.callout,\\n.macro-settings.callout {\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.5); }\\n\\n.macro-actions-container {\\n margin-bottom: 0;\\n border-radius: 4px;\\n border: 1px solid #ddd;\\n border-bottom: 0; }\\n\\n.list-group-item .move-handle:hover {\\n cursor: move; }\\n\\n.flex-button-wrapper {\\n display: flex;\\n flex-direction: row-reverse; }\\n\\n.flex-button {\\n align-self: flex-end; }\\n\\n.add-new__action-container {\\n overflow: hidden;\\n flex-shrink: 0;\\n border-top: 1px solid #ddd; }\\n\\n.add-new__action-item {\\n border-radius: 0 0 4px 4px;\\n border-top: 0;\\n padding: 0; }\\n .add-new__action-item:hover {\\n cursor: pointer; }\\n .add-new__action-item--link {\\n width: 50%;\\n float: left;\\n padding: 10px 5px;\\n text-align: center;\\n color: #337ab7; }\\n .add-new__action-item--link:first-of-type {\\n border-right: 1px solid #ddd; }\\n .add-new__action-item--link:hover {\\n text-decoration: none;\\n background: #e6e6e6; }\\n .add-new__action-item .fa-circle {\\n color: #c00; }\\n\\n.gu-mirror {\\n position: fixed;\\n margin: 0;\\n z-index: 9999;\\n opacity: 0.8; }\\n\\n.gu-hide {\\n display: none; }\\n\\n.gu-unselectable {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/list/macro-list.component.scss\n// module id = 735\n// module chunks = 1","module.exports = \".not-found {\\n margin-top: 30px;\\n font-size: 16px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/not-found/macro-not-found.component.scss\n// module id = 736\n// module chunks = 1","module.exports = \":host {\\n padding: 1rem 1.5rem;\\n box-shadow: 0 0 0 1px #000;\\n border-radius: 0.5rem;\\n position: absolute;\\n top: 2rem;\\n right: 2rem;\\n z-index: 10000;\\n background-color: #333;\\n color: #eee;\\n display: none; }\\n\\n.action {\\n margin-left: 1rem;\\n margin-right: 1rem;\\n color: #5bc0de;\\n text-transform: uppercase;\\n font-weight: bold; }\\n .action:focus, .action:active, .action:hover {\\n text-decoration: none;\\n color: #5bc0de; }\\n\\n.dismiss {\\n position: relative;\\n bottom: 1px;\\n color: #ccc; }\\n .dismiss:hover {\\n cursor: pointer;\\n color: #fff; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/notification/notification.component.scss\n// module id = 737\n// module chunks = 1","module.exports = \".popover {\\n display: flex;\\n flex-direction: column;\\n padding: 0;\\n max-width: 568px;\\n width: 100%;\\n user-select: none; }\\n .popover.leftArrow .arrowCustom {\\n transform: none;\\n left: 22px; }\\n .popover.rightArrow .arrowCustom {\\n transform: none;\\n right: 22px;\\n left: auto; }\\n .popover > .container-fluid {\\n overflow: hidden; }\\n\\n.nav-tabs > li {\\n overflow: hidden; }\\n\\n.arrowCustom {\\n position: absolute;\\n top: -16px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 41px;\\n height: 16px; }\\n .arrowCustom:before {\\n content: '';\\n width: 0;\\n height: 0;\\n border-left: 21px solid transparent;\\n border-right: 21px solid transparent;\\n border-bottom: 17px solid rgba(0, 0, 0, 0.2);\\n display: block;\\n position: absolute;\\n top: -1px; }\\n .arrowCustom:after {\\n content: '';\\n width: 0;\\n height: 0;\\n border-left: 20px solid transparent;\\n border-right: 20px solid transparent;\\n border-bottom: 16px solid #f7f7f7;\\n display: block;\\n position: absolute;\\n top: 0; }\\n\\n.popover-action {\\n padding: 8px 14px;\\n margin: 0;\\n font-size: 14px;\\n background-color: #f7f7f7;\\n border-top: 1px solid #ebebeb;\\n border-radius: 0 0 5px 5px;\\n text-align: right; }\\n\\n.popover-title.menu-tabs {\\n padding: 0.5rem 0.5rem 0;\\n display: block; }\\n .popover-title.menu-tabs .nav-tabs {\\n position: relative;\\n top: 1px;\\n display: flex; }\\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item {\\n display: flex;\\n align-items: center;\\n cursor: pointer; }\\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item i {\\n margin-right: 0.25em; }\\n\\n.popover-content {\\n padding: 10px 24px; }\\n\\n.popover-overlay {\\n position: fixed;\\n width: 100%;\\n height: 0;\\n top: 0;\\n left: 0;\\n z-index: 1050;\\n background: transparent;\\n transition: background 200ms ease-out, height 0ms 200ms linear; }\\n .popover-overlay.display {\\n height: 100%;\\n background: rgba(0, 0, 0, 0.2);\\n transition: background 200ms ease-out; }\\n\\n.select2-item {\\n position: relative;\\n font-size: 1.5rem; }\\n .select2-item.keymap-name--wrapper {\\n padding-left: 50px; }\\n .select2-item .layout-segment-code {\\n height: 2rem;\\n position: absolute;\\n left: 0;\\n top: 50%;\\n margin-top: -1rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/popover.component.scss\n// module id = 738\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column; }\\n :host > span {\\n text-align: center; }\\n :host > div {\\n display: flex;\\n margin-top: 2px; }\\n :host > div b {\\n display: flex;\\n align-items: center;\\n margin-right: 7px; }\\n :host > div select2 {\\n flex: 1; }\\n :host > div:last-child {\\n margin-top: 10px; }\\n :host > div:last-child img {\\n max-height: 100%;\\n max-width: 100%; }\\n\\n.empty {\\n display: flex; }\\n .empty img {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n position: relative; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keymap/keymap-tab.component.scss\n// module id = 739\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n position: relative; }\\n :host .scancode-options {\\n margin-bottom: 10px;\\n margin-top: 2px; }\\n :host .scancode-options > b {\\n position: relative;\\n top: 2px; }\\n :host .modifier-options > b {\\n position: relative;\\n top: -9px;\\n margin-right: 4px; }\\n :host .modifier-options .btn-toolbar {\\n display: inline-block; }\\n :host .long-press-container {\\n display: flex;\\n margin-top: 3rem; }\\n :host .long-press-container > b {\\n margin-right: 0.6em;\\n align-items: center;\\n display: flex; }\\n :host .long-press-container .secondary-role {\\n width: 135px; }\\n :host .long-press-container icon {\\n margin-left: 0.6em; }\\n :host .setting-label.disabled {\\n color: #999; }\\n :host .disabled-state--text {\\n display: none;\\n position: absolute;\\n top: 50%;\\n margin-top: -4rem;\\n color: #31708f;\\n padding-right: 40px; }\\n :host .disabled-state--text .fa {\\n font-size: 2.6rem;\\n float: left;\\n padding: 1rem 1.5rem 2rem; }\\n :host.disabled .scancode-options,\\n :host.disabled .modifier-options,\\n :host.disabled .long-press-container {\\n visibility: hidden; }\\n :host.disabled .disabled-state--text {\\n display: block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keypress/keypress-tab.component.scss\n// module id = 740\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n margin: 0 -5px; }\\n :host.no-base {\\n justify-content: center; }\\n :host > span,\\n :host > select {\\n margin: 0 5px;\\n display: flex;\\n align-items: center; }\\n\\nselect {\\n background-color: #fff;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n padding: 4px 20px 4px 8px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/layer/layer-tab.component.scss\n// module id = 741\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column; }\\n :host > span {\\n text-align: center; }\\n :host .macro-selector {\\n display: flex;\\n margin-top: 2px; }\\n :host .macro-selector b {\\n display: flex;\\n align-items: center;\\n margin-right: 7px; }\\n :host .macro-selector select2 {\\n flex: 1; }\\n :host .macro-action-container {\\n display: flex;\\n flex-direction: column;\\n min-height: 200px;\\n max-height: 300px;\\n margin: 20px 0;\\n overflow-x: hidden;\\n overflow-y: auto;\\n border-radius: 4px;\\n border: 1px solid #ddd; }\\n :host .macro-action-container .list-group {\\n margin-bottom: 0;\\n border: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/macro/macro-tab.component.scss\n// module id = 742\n// module chunks = 1","module.exports = \":host {\\n display: flex; }\\n :host.popover-content {\\n padding: 10px;\\n display: flex;\\n align-items: center; }\\n :host .mouse-action .nav {\\n border-right: 1px solid #ccc; }\\n :host .mouse-action .nav li a {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n :host .mouse-action .nav li a.selected {\\n font-style: italic; }\\n :host .mouse-action .nav li.active a.selected {\\n font-style: normal; }\\n :host .mouse-action .nav li.active a:after {\\n content: '';\\n display: block;\\n position: absolute;\\n width: 0;\\n height: 0;\\n top: 0;\\n right: -4rem;\\n border-color: transparent transparent transparent #337ab7;\\n border-style: solid;\\n border-width: 2rem; }\\n :host .help-text--mouse-speed {\\n margin-bottom: 2rem;\\n font-size: 0.9em;\\n color: #666; }\\n :host .help-text--mouse-speed p {\\n margin: 0; }\\n :host .details .btn-placeholder {\\n visibility: hidden; }\\n\\n.mouse__config--speed .btn-default {\\n font-size: 25px;\\n line-height: 22px;\\n padding-top: 4px;\\n padding-bottom: 4px; }\\n .mouse__config--speed .btn-default span {\\n font-size: 13px;\\n display: block;\\n text-align: center; }\\n\\n.help-text--mouse-speed.last-help {\\n margin-bottom: 0;\\n margin-top: 2rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/mouse/mouse-tab.component.scss\n// module id = 743\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n justify-content: center;\\n padding: 2rem 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/none/none-tab.component.scss\n// module id = 744\n// module chunks = 1","module.exports = \"button {\\n display: inline-block;\\n margin: 0 0 0 0.25rem; }\\n\\n.fa-circle {\\n color: #c00; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.scss\n// module id = 745\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n align-items: center; }\\n\\n.action--edit:hover {\\n color: #337ab7;\\n cursor: pointer; }\\n\\n.action--trash:hover {\\n color: #d9534f;\\n cursor: pointer; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/icon/icon.component.scss\n// module id = 746\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n height: 100%;\\n display: block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/settings/settings.component.scss\n// module id = 747\n// module chunks = 1","module.exports = \":host {\\n background-color: #f5f5f5;\\n border-right: 1px solid #ccc;\\n position: fixed;\\n overflow-y: auto;\\n width: 250px;\\n height: 100%; }\\n\\na {\\n color: #333; }\\n\\nul {\\n padding: 0;\\n margin: 0; }\\n ul li {\\n list-style: none;\\n padding: 0; }\\n ul ul {\\n overflow: hidden; }\\n\\n.sidebar__level-1 {\\n padding: 0.5rem 1rem;\\n font-size: 2rem;\\n line-height: 3rem;\\n cursor: default; }\\n .sidebar__level-1:hover .fa-chevron-up,\\n .sidebar__level-1:hover .fa-chevron-down {\\n display: inline-block; }\\n .sidebar__level-1--item {\\n margin-top: 0; }\\n .sidebar__level-1--item:nth-child(1) {\\n margin: 0; }\\n .sidebar__level-1 .sidebar__name {\\n width: 100%;\\n display: block; }\\n .sidebar__level-1 .fa-chevron-up,\\n .sidebar__level-1 .fa-chevron-down {\\n margin-right: 1rem;\\n font-size: 1.5rem;\\n position: relative;\\n top: 0.5rem;\\n display: none;\\n cursor: pointer; }\\n\\n.sidebar__level-2--item {\\n padding: 0 20px 0 0;\\n position: relative; }\\n .sidebar__level-2--item.active {\\n background-color: #555;\\n color: #fff; }\\n .sidebar__level-2--item.active .fa-star {\\n color: #fff; }\\n .sidebar__level-2--item.active:hover {\\n background-color: #555; }\\n .sidebar__level-2--item:hover {\\n cursor: pointer; }\\n .sidebar__level-2--item .fa.pull-right {\\n position: relative;\\n top: 2px; }\\n .sidebar__level-2--item .fa-star {\\n color: #666; }\\n .sidebar__level-2--item a {\\n display: block;\\n width: 100%;\\n padding: 0 15px 0 30px; }\\n .sidebar__level-2--item a:hover, .sidebar__level-2--item a:focus {\\n text-decoration: none; }\\n\\n.sidebar__level-1:hover, .sidebar__level-2:hover {\\n background-color: rgba(0, 0, 0, 0.05); }\\n\\n.sidebar__level-1.active, .sidebar__level-2.active {\\n background-color: rgba(0, 0, 0, 0.18); }\\n\\n.sidebar__fav {\\n position: absolute;\\n right: 19px;\\n top: 3px; }\\n\\n.menu--bottom {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n width: 100%; }\\n .menu--bottom .sidebar__level-1 {\\n display: block;\\n padding: 1rem;\\n cursor: pointer; }\\n .menu--bottom .sidebar__level-1:hover {\\n text-decoration: none; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/side-menu/side-menu.component.scss\n// module id = 748\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n position: relative; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keyboard/svg-keyboard.component.scss\n// module id = 749\n// module chunks = 1","module.exports = \":host {\\n cursor: pointer;\\n outline: none; }\\n :host /deep/ text {\\n dominant-baseline: central; }\\n :host:hover {\\n fill: #494949; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.scss\n// module id = 750\n// module chunks = 1","module.exports = \".disabled {\\n fill: gray; }\\n\\ntext {\\n font-size: 100px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.scss\n// module id = 751\n// module chunks = 1","module.exports = \":host {\\n position: relative; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/module/svg-module.component.scss\n// module id = 752\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n display: block; }\\n :host.space {\\n margin-bottom: 405px; }\\n\\nkeyboard-slider {\\n display: block;\\n position: relative;\\n overflow: hidden;\\n /* TODO create dynamic */\\n height: 500px;\\n margin-top: 30px; }\\n\\n.tooltip {\\n position: fixed;\\n transform: translate(-50%, -6px);\\n display: none; }\\n .tooltip-inner {\\n background: #fff;\\n color: #000;\\n box-shadow: 0 1px 5px #000;\\n text-align: left; }\\n .tooltip-inner p {\\n margin-bottom: 2px; }\\n .tooltip-inner p:last-of-type {\\n margin-bottom: 0; }\\n .tooltip.bottom .tooltip-arrow {\\n border-bottom-color: #fff;\\n top: 1px; }\\n .tooltip.in {\\n display: block;\\n opacity: 1; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/wrap/svg-keyboard-wrap.component.scss\n// module id = 753\n// module chunks = 1","module.exports = \"main-app {\\n display: block;\\n overflow: hidden;\\n position: relative; }\\n\\n.select2-container--default .select2-selection--single .select2-selection__rendered {\\n line-height: 26px; }\\n\\n.main-content {\\n margin-left: 250px; }\\n\\n.select2-container {\\n z-index: 1100; }\\n .select2-container .scancode--searchterm {\\n text-align: right;\\n color: #b7b7b7; }\\n\\n.select2-item {\\n display: flex;\\n justify-content: space-between; }\\n\\n.select2-results {\\n text-align: left; }\\n\\n.nav-pills > li > a {\\n cursor: pointer; }\\n\\n.select2-container--default .select2-dropdown--below .select2-results > .select2-results__options {\\n max-height: 300px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/main-app/main-app.component.scss\n// module id = 754\n// module chunks = 1","module.exports = \"/* GitHub ribbon */\\n.github-fork-ribbon {\\n background-color: #a00;\\n overflow: hidden;\\n white-space: nowrap;\\n position: fixed;\\n right: -50px;\\n bottom: 40px;\\n z-index: 2000;\\n /* stylelint-disable indentation */\\n -webkit-transform: rotate(-45deg);\\n -moz-transform: rotate(-45deg);\\n -ms-transform: rotate(-45deg);\\n -o-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n -webkit-box-shadow: 0 0 10px #888;\\n -moz-box-shadow: 0 0 10px #888;\\n box-shadow: 0 0 10px #888;\\n /* stylelint-enable indentation */ }\\n .github-fork-ribbon a {\\n border: 1px solid #faa;\\n color: #fff;\\n display: block;\\n font: bold 81.25% 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n margin: 1px 0;\\n padding: 10px 50px;\\n text-align: center;\\n text-decoration: none;\\n text-shadow: 0 0 5px #444; }\\n\\nmain-app {\\n min-height: 100vh;\\n width: 100%; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./web/src/main-app/main-app.component.scss\n// module id = 755\n// module chunks = 1","module.exports = require(\"./lib/_stream_duplex.js\")\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/duplex.js\n// module id = 756\n// module chunks = 1","'use strict';\n\nvar Buffer = require('buffer').Buffer;\n/**/\nvar bufferShim = require('buffer-shims');\n/**/\n\nmodule.exports = BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return bufferShim.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = bufferShim.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/lib/internal/streams/BufferList.js\n// module id = 757\n// module chunks = 1","module.exports = require(\"./lib/_stream_passthrough.js\")\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/passthrough.js\n// module id = 758\n// module chunks = 1","var Stream = (function (){\n try {\n return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify\n } catch(_){}\n}());\nexports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = Stream || exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n\nif (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/readable.js\n// module id = 759\n// module chunks = 1","module.exports = require(\"./lib/_stream_transform.js\")\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/transform.js\n// module id = 760\n// module chunks = 1","module.exports = require(\"./lib/_stream_writable.js\")\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/readable-stream/writable.js\n// module id = 761\n// module chunks = 1","import { Routes } from '@angular/router';\r\n\r\nimport { AddOnComponent } from './add-on.component';\r\n\r\nexport const addOnRoutes: Routes = [\r\n {\r\n path: 'add-on/:name',\r\n component: AddOnComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/add-on/add-on.routes.ts","export { KeyboardSliderComponent } from './keyboard-slider.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keyboard/slider/index.ts","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n animate,\r\n keyframes,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/core';\r\n\r\nimport { Layer } from '../../../config-serializer/config-items/Layer';\r\n\r\ntype AnimationKeyboard =\r\n 'leftIn' |\r\n 'leftOut' |\r\n 'rightIn' |\r\n 'rightOut';\r\n\r\n@Component({\r\n selector: 'keyboard-slider',\r\n template: require('./keyboard-slider.component.html'),\r\n styles: [require('./keyboard-slider.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n // We use 101%, because there was still a trace of the keyboard in the screen when animation was done\r\n animations: [\r\n trigger('layerState', [\r\n state('leftIn, rightIn', style({\r\n transform: 'translateX(-50%)',\r\n left: '50%'\r\n })),\r\n state('leftOut', style({\r\n transform: 'translateX(-101%)',\r\n left: '0'\r\n })),\r\n state('rightOut', style({\r\n transform: 'translateX(0)',\r\n left: '101%'\r\n })),\r\n transition('leftOut => leftIn, rightOut => leftIn', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(0%)', left: '101%', offset: 0 }),\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 1 })\r\n ]))\r\n ]),\r\n transition('leftIn => leftOut, rightIn => leftOut', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }),\r\n style({ transform: 'translateX(-101%)', left: '0%', offset: 1 })\r\n ]))\r\n ]),\r\n transition('* => rightIn', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(-101%)', left: '0%', offset: 0 }),\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 1 })\r\n ]))\r\n ]),\r\n transition('* => rightOut', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }),\r\n style({ transform: 'translateX(0%)', left: '101%', offset: 1 })\r\n ]))\r\n ]),\r\n transition(':leave', [\r\n animate('2000ms ease-out', keyframes([\r\n style({ opacity: 1, offset: 0 }),\r\n style({ opacity: 0, offset: 1 })\r\n ]))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class KeyboardSliderComponent implements OnChanges {\r\n @Input() layers: Layer[];\r\n @Input() currentLayer: number;\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Output() keyClick = new EventEmitter();\r\n @Output() keyHover = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n private layerAnimationState: AnimationKeyboard[];\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['layers']) {\r\n this.layerAnimationState = this.layers.map(() => 'leftOut');\r\n this.layerAnimationState[this.currentLayer] = 'leftIn';\r\n }\r\n const layerChange = changes['currentLayer'];\r\n if (layerChange) {\r\n const prevValue = layerChange.isFirstChange() ? layerChange.currentValue : layerChange.previousValue;\r\n this.onLayerChange(prevValue, layerChange.currentValue);\r\n }\r\n }\r\n\r\n trackKeyboard(index: number) {\r\n return index;\r\n }\r\n\r\n onLayerChange(oldIndex: number, index: number): void {\r\n if (index > oldIndex) {\r\n this.layerAnimationState[oldIndex] = 'leftOut';\r\n this.layerAnimationState[index] = 'leftIn';\r\n } else {\r\n this.layerAnimationState[oldIndex] = 'rightOut';\r\n this.layerAnimationState[index] = 'rightIn';\r\n }\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keyboard/slider/keyboard-slider.component.ts","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/let';\r\nimport 'rxjs/add/operator/switchMap';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Keymap } from './../../../config-serializer/config-items/Keymap';\r\nimport { AppState } from '../../../store/index';\r\nimport { getKeymaps } from '../../../store/reducers/user-configuration';\r\n\r\n@Injectable()\r\nexport class KeymapEditGuard implements CanActivate {\r\n\r\n constructor(private store: Store, private router: Router) { }\r\n\r\n canActivate(): Observable {\r\n return this.store\r\n .let(getKeymaps())\r\n .do((keymaps: Keymap[]) => {\r\n const defaultKeymap = keymaps.find(keymap => keymap.isDefault);\r\n this.router.navigate(['/keymap', defaultKeymap.abbreviation]);\r\n })\r\n .switchMap(() => Observable.of(false));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keymap/edit/keymap-edit-guard.service.ts","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges,\r\n Renderer,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Keymap } from '../../../config-serializer/config-items/Keymap';\r\n\r\nimport { AppState } from '../../../store';\r\nimport { KeymapActions } from '../../../store/actions';\r\n\r\n@Component({\r\n selector: 'keymap-header',\r\n template: require('./keymap-header.component.html'),\r\n styles: [require('./keymap-header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class KeymapHeaderComponent implements OnChanges {\r\n @Input() keymap: Keymap;\r\n @Input() deletable: boolean;\r\n @Output() downloadClick = new EventEmitter();\r\n\r\n @ViewChild('name') keymapName: ElementRef;\r\n @ViewChild('abbr') keymapAbbr: ElementRef;\r\n\r\n private starTitle: string;\r\n private trashTitle: string;\r\n\r\n constructor(private store: Store, private renderer: Renderer) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['keymap']) {\r\n this.setKeymapTitle();\r\n }\r\n if (changes['deletable']) {\r\n this.setTrashTitle();\r\n }\r\n }\r\n\r\n setDefault() {\r\n if (!this.keymap.isDefault) {\r\n this.store.dispatch(KeymapActions.setDefault(this.keymap.abbreviation));\r\n }\r\n }\r\n\r\n removeKeymap() {\r\n if (this.deletable) {\r\n this.store.dispatch(KeymapActions.removeKeymap(this.keymap.abbreviation));\r\n }\r\n }\r\n\r\n duplicateKeymap() {\r\n this.store.dispatch(KeymapActions.duplicateKeymap(this.keymap));\r\n }\r\n\r\n editKeymapName(name: string) {\r\n if (name.length === 0) {\r\n this.renderer.setElementProperty(this.keymapName.nativeElement, 'value', this.keymap.name);\r\n return;\r\n }\r\n\r\n this.store.dispatch(KeymapActions.editKeymapName(this.keymap.abbreviation, name));\r\n }\r\n\r\n editKeymapAbbr(newAbbr: string) {\r\n if (newAbbr.length !== 3) {\r\n this.renderer.setElementProperty(this.keymapAbbr.nativeElement, 'value', this.keymap.abbreviation);\r\n return;\r\n }\r\n\r\n newAbbr = newAbbr.toUpperCase();\r\n this.store.dispatch(KeymapActions.editKeymapAbbr(this.keymap.abbreviation, newAbbr));\r\n }\r\n\r\n setKeymapTitle(): void {\r\n this.starTitle = this.keymap.isDefault\r\n ? 'This is the default keymap which gets activated when powering the keyboard.'\r\n : 'Makes this keymap the default keymap which gets activated when powering the keyboard.';\r\n }\r\n\r\n setTrashTitle(): void {\r\n this.trashTitle = this.deletable ? '' : 'The last keymap cannot be deleted.';\r\n }\r\n\r\n onDownloadIconClick(): void {\r\n this.downloadClick.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keymap/header/keymap-header.component.ts","export * from './add/keymap-add.component';\r\nexport * from './edit/keymap-edit.component';\r\nexport * from './header/keymap-header.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/keymap/index.ts","export * from './layers.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/layers/index.ts","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'layers',\r\n template: require('./layers.component.html'),\r\n styles: [require('./layers.component.scss')]\r\n})\r\nexport class LayersComponent {\r\n @Input() current: number;\r\n @Output() select = new EventEmitter();\r\n\r\n private buttons: string[];\r\n\r\n constructor() {\r\n this.buttons = ['Base', 'Mod', 'Fn', 'Mouse'];\r\n this.current = 0;\r\n }\r\n\r\n selectLayer(index: number) {\r\n if (this.current === index) {\r\n return;\r\n }\r\n\r\n this.select.emit({\r\n oldIndex: this.current,\r\n index: index\r\n });\r\n\r\n this.current = index;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/layers/layers.component.ts","export { MacroActionEditorComponent } from './macro-action-editor.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/index.ts","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n EditableMacroAction,\r\n MacroAction,\r\n TextMacroAction,\r\n macroActionType\r\n} from '../../../config-serializer/config-items/macro-action';\r\nimport { MacroKeyTabComponent } from './tab/key';\r\n\r\nenum TabName {\r\n Keypress,\r\n Text,\r\n Mouse,\r\n Delay\r\n};\r\n\r\n@Component({\r\n selector: 'macro-action-editor',\r\n template: require('./macro-action-editor.component.html'),\r\n styles: [require('./macro-action-editor.component.scss')],\r\n host: { 'class': 'macro-action-editor' }\r\n})\r\nexport class MacroActionEditorComponent implements OnInit {\r\n @Input() macroAction: MacroAction;\r\n\r\n @Output() save = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n\r\n @ViewChild('tab') selectedTab: any;\r\n\r\n private editableMacroAction: EditableMacroAction;\r\n private activeTab: TabName;\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n /* tslint:disable:no-unused-variable: It is used in the template. */\r\n private TabName = TabName;\r\n /* tslint:enable:no-unused-variable */\r\n /* tslint:enable:variable-name */\r\n\r\n ngOnInit() {\r\n let macroAction: MacroAction = this.macroAction ? this.macroAction : new TextMacroAction();\r\n this.editableMacroAction = new EditableMacroAction(macroAction.toJsonObject());\r\n let tab: TabName = this.getTabName(this.editableMacroAction);\r\n this.activeTab = tab;\r\n }\r\n\r\n onCancelClick(): void {\r\n this.cancel.emit();\r\n }\r\n\r\n onSaveClick(): void {\r\n try {\r\n const action = this.editableMacroAction;\r\n if (action.isKeyAction()) {\r\n // Could updating the saved keys be done in a better way?\r\n const tab = this.selectedTab as MacroKeyTabComponent;\r\n action.fromKeyAction(tab.getKeyAction());\r\n }\r\n this.save.emit(action.toClass());\r\n } catch (e) {\r\n // TODO: show error dialog\r\n console.error(e);\r\n }\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n this.editableMacroAction.macroActionType = this.getTabMacroActionType(tab);\r\n }\r\n\r\n getTabName(action: EditableMacroAction): TabName {\r\n switch (action.macroActionType) {\r\n // Delay action\r\n case macroActionType.DelayMacroAction:\r\n return TabName.Delay;\r\n // Text action\r\n case macroActionType.TextMacroAction:\r\n return TabName.Text;\r\n // Keypress actions\r\n case macroActionType.KeyMacroAction:\r\n return TabName.Keypress;\r\n // Mouse actions\r\n case macroActionType.MouseButtonMacroAction:\r\n case macroActionType.MoveMouseMacroAction:\r\n case macroActionType.ScrollMouseMacroAction:\r\n return TabName.Mouse;\r\n default:\r\n return TabName.Keypress;\r\n }\r\n }\r\n\r\n getTabMacroActionType(tab: TabName): string {\r\n switch (tab) {\r\n case TabName.Delay:\r\n return macroActionType.DelayMacroAction;\r\n case TabName.Keypress:\r\n return macroActionType.KeyMacroAction;\r\n case TabName.Mouse:\r\n return macroActionType.MouseButtonMacroAction;\r\n case TabName.Text:\r\n return macroActionType.TextMacroAction;\r\n default:\r\n throw new Error('Could not get macro action type');\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/macro-action-editor.component.ts","export { MacroDelayTabComponent } from './macro-delay.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/delay/index.ts","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { EditableMacroAction } from '../../../../../config-serializer/config-items/macro-action';\r\n\r\nconst INITIAL_DELAY = 0.5; // In seconds\r\n\r\n@Component({\r\n selector: 'macro-delay-tab',\r\n template: require('./macro-delay.component.html'),\r\n styles: [require('./macro-delay.component.scss')],\r\n host: { 'class': 'macro__delay' },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MacroDelayTabComponent implements OnInit {\r\n @Input() macroAction: EditableMacroAction;\r\n @ViewChild('macroDelayInput') input: ElementRef;\r\n\r\n private delay: number;\r\n /* tslint:disable:no-unused-variable: It is used in the template. */\r\n private presets: number[] = [0.3, 0.5, 0.8, 1, 2, 3, 4, 5];\r\n /* tslint:enable:no-unused-variable */\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.delay = this.macroAction.delay > 0 ? this.macroAction.delay / 1000 : INITIAL_DELAY;\r\n }\r\n\r\n setDelay(value: number): void {\r\n this.delay = value;\r\n this.macroAction.delay = this.delay * 1000;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.ts","export { MacroDelayTabComponent } from './delay';\r\nexport { MacroKeyTabComponent } from './key';\r\nexport { MacroMouseTabComponent } from './mouse';\r\nexport { MacroTextTabComponent } from './text';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/index.ts","export { MacroKeyTabComponent } from './macro-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/key/index.ts","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { KeyAction } from '../../../../../config-serializer/config-items/key-action';\r\nimport { EditableMacroAction, MacroSubAction } from '../../../../../config-serializer/config-items/macro-action';\r\nimport { KeypressTabComponent } from '../../../../popover/tab';\r\nimport { Tab } from '../../../../popover/tab';\r\n\r\nenum TabName {\r\n Keypress,\r\n Hold,\r\n Release\r\n}\r\n\r\n@Component({\r\n selector: 'macro-key-tab',\r\n template: require('./macro-key.component.html'),\r\n styles: [\r\n require('../../macro-action-editor.component.scss'),\r\n require('./macro-key.component.scss')\r\n ],\r\n host: { 'class': 'macro__mouse' }\r\n})\r\nexport class MacroKeyTabComponent implements OnInit {\r\n @Input() macroAction: EditableMacroAction;\r\n @ViewChild('tab') selectedTab: Tab;\r\n @ViewChild('keypressTab') keypressTab: KeypressTabComponent;\r\n\r\n private defaultKeyAction: KeyAction;\r\n\r\n private activeTab: TabName;\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n /* tslint:disable:no-unused-variable: It is used in the template. */\r\n private TabName = TabName;\r\n /* tslint:enable:no-unused-variable */\r\n /* tslint:enable:variable-name */\r\n\r\n ngOnInit() {\r\n this.defaultKeyAction = this.macroAction.toKeystrokeAction();\r\n this.selectTab(this.getTabName(this.macroAction));\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n this.macroAction.action = this.getActionType(tab);\r\n }\r\n\r\n getTabName(action: EditableMacroAction): TabName {\r\n if (!action.action || action.isOnlyPressAction()) {\r\n return TabName.Keypress;\r\n } else if (action.isOnlyHoldAction()) {\r\n return TabName.Hold;\r\n } else if (action.isOnlyReleaseAction()) {\r\n return TabName.Release;\r\n }\r\n }\r\n\r\n getActionType(tab: TabName): MacroSubAction {\r\n switch (tab) {\r\n case TabName.Keypress:\r\n return MacroSubAction.press;\r\n case TabName.Hold:\r\n return MacroSubAction.hold;\r\n case TabName.Release:\r\n return MacroSubAction.release;\r\n default:\r\n throw new Error('Invalid tab type');\r\n }\r\n }\r\n\r\n getKeyAction(): KeyAction {\r\n return this.keypressTab.toKeyAction();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/key/macro-key.component.ts","export { MacroMouseTabComponent } from './macro-mouse.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/mouse/index.ts","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { EditableMacroAction, MacroSubAction, macroActionType } from '../../../../../config-serializer/config-items/macro-action';\r\nimport { Tab } from '../../../../popover/tab';\r\n\r\nenum TabName {\r\n Move,\r\n Scroll,\r\n Click,\r\n Hold,\r\n Release\r\n}\r\n\r\n@Component({\r\n selector: 'macro-mouse-tab',\r\n template: require('./macro-mouse.component.html'),\r\n styles: [\r\n require('../../macro-action-editor.component.scss'),\r\n require('./macro-mouse.component.scss')\r\n ],\r\n host: { 'class': 'macro__mouse' }\r\n})\r\nexport class MacroMouseTabComponent implements OnInit {\r\n @Input() macroAction: EditableMacroAction;\r\n @ViewChild('tab') selectedTab: Tab;\r\n\r\n private activeTab: TabName;\r\n private buttonLabels: string[];\r\n private selectedButtons: boolean[];\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n /* tslint:disable:no-unused-variable: It is used in the template. */\r\n private TabName = TabName;\r\n /* tslint:enable:no-unused-variable */\r\n /* tslint:enable:variable-name */\r\n\r\n constructor() {\r\n this.buttonLabels = ['Left', 'Middle', 'Right'];\r\n this.selectedButtons = Array(this.buttonLabels.length).fill(false);\r\n }\r\n\r\n ngOnInit() {\r\n const tabName = this.getTabName(this.macroAction);\r\n this.selectTab(tabName);\r\n const buttonActions = [TabName.Click, TabName.Hold, TabName.Release];\r\n if (buttonActions.includes(this.activeTab)) {\r\n this.selectedButtons = this.macroAction.getMouseButtons();\r\n }\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n this.macroAction.macroActionType = this.getMacroActionType(tab);\r\n if (this.macroAction.macroActionType === macroActionType.MouseButtonMacroAction) {\r\n this.macroAction.action = this.getAction(tab);\r\n }\r\n }\r\n\r\n setMouseClick(index: number): void {\r\n this.selectedButtons[index] = !this.selectedButtons[index];\r\n this.macroAction.setMouseButtons(this.selectedButtons);\r\n }\r\n\r\n hasButton(index: number): boolean {\r\n return this.selectedButtons[index];\r\n }\r\n\r\n getAction(tab: TabName): MacroSubAction {\r\n switch (tab) {\r\n case TabName.Click:\r\n return MacroSubAction.press;\r\n case TabName.Hold:\r\n return MacroSubAction.hold;\r\n case TabName.Release:\r\n return MacroSubAction.release;\r\n default:\r\n throw new Error('Invalid tab name');\r\n }\r\n }\r\n\r\n getTabName(action: EditableMacroAction): TabName {\r\n if (action.macroActionType === macroActionType.MouseButtonMacroAction) {\r\n if (!action.action || action.isOnlyPressAction()) {\r\n return TabName.Click;\r\n } else if (action.isOnlyPressAction()) {\r\n return TabName.Hold;\r\n } else if (action.isOnlyReleaseAction()) {\r\n return TabName.Release;\r\n }\r\n } else if (action.macroActionType === macroActionType.MoveMouseMacroAction) {\r\n return TabName.Move;\r\n } else if (action.macroActionType === macroActionType.ScrollMouseMacroAction) {\r\n return TabName.Scroll;\r\n }\r\n return TabName.Move;\r\n }\r\n\r\n getMacroActionType(tab: TabName): string {\r\n if (tab === TabName.Click || tab === TabName.Hold || tab === TabName.Release) {\r\n return macroActionType.MouseButtonMacroAction;\r\n } else if (tab === TabName.Move) {\r\n return macroActionType.MoveMouseMacroAction;\r\n } else if (tab === TabName.Scroll) {\r\n return macroActionType.ScrollMouseMacroAction;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.ts","export { MacroTextTabComponent } from './macro-text.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/text/index.ts","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n Renderer,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { EditableMacroAction } from '../../../../../config-serializer/config-items/macro-action';\r\n\r\n@Component({\r\n selector: 'macro-text-tab',\r\n template: require('./macro-text.component.html'),\r\n styles: [require('./macro-text.component.scss')],\r\n host: { 'class': 'macro__text' }\r\n})\r\nexport class MacroTextTabComponent implements AfterViewInit {\r\n @Input() macroAction: EditableMacroAction;\r\n @ViewChild('macroTextInput') input: ElementRef;\r\n\r\n constructor(private renderer: Renderer) {}\r\n\r\n ngAfterViewInit() {\r\n this.renderer.invokeElementMethod(this.input.nativeElement, 'focus');\r\n }\r\n\r\n onTextChange() {\r\n this.macroAction.text = this.input.nativeElement.value;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/action-editor/tab/text/macro-text.component.ts","import {\r\n AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, Renderer,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Macro } from '../../../config-serializer/config-items/Macro';\r\n\r\nimport { MacroActions } from '../../../store/actions';\r\nimport { AppState } from '../../../store/index';\r\n\r\n@Component({\r\n selector: 'macro-header',\r\n template: require('./macro-header.component.html'),\r\n styles: [require('./macro-header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MacroHeaderComponent implements AfterViewInit, OnChanges {\r\n @Input() macro: Macro;\r\n @Input() isNew: boolean;\r\n @ViewChild('macroName') macroName: ElementRef;\r\n\r\n constructor(private store: Store, private renderer: Renderer) { }\r\n\r\n ngOnChanges() {\r\n if (this.isNew) {\r\n this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isNew) {\r\n this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []);\r\n }\r\n }\r\n\r\n removeMacro() {\r\n this.store.dispatch(MacroActions.removeMacro(this.macro.id));\r\n }\r\n\r\n duplicateMacro() {\r\n this.store.dispatch(MacroActions.duplicateMacro(this.macro));\r\n }\r\n\r\n editMacroName(name: string) {\r\n if (name.length === 0) {\r\n this.renderer.setElementProperty(this.macroName.nativeElement, 'value', this.macro.name);\r\n return;\r\n }\r\n\r\n this.store.dispatch(MacroActions.editMacroName(this.macro.id, name));\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/header/macro-header.component.ts","export { MacroItemComponent } from './macro-item.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/item/index.ts","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/core';\r\n\r\nimport { KeyModifiers } from '../../../config-serializer/config-items/KeyModifiers';\r\nimport {\r\n DelayMacroAction,\r\n KeyMacroAction,\r\n MacroAction,\r\n MouseButtonMacroAction,\r\n MoveMouseMacroAction,\r\n ScrollMouseMacroAction,\r\n TextMacroAction\r\n} from '../../../config-serializer/config-items/macro-action';\r\n\r\nimport { MapperService } from '../../../services/mapper.service';\r\n\r\n@Component({\r\n animations: [\r\n trigger('toggler', [\r\n state('inactive', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition('inactive <=> active', animate('500ms ease-out'))\r\n ])\r\n ],\r\n selector: 'macro-item',\r\n template: require('./macro-item.component.html'),\r\n styles: [require('./macro-item.component.scss')],\r\n host: { 'class': 'macro-item' }\r\n})\r\nexport class MacroItemComponent implements OnInit, OnChanges {\r\n @Input() macroAction: MacroAction;\r\n @Input() editable: boolean;\r\n @Input() deletable: boolean;\r\n @Input() movable: boolean;\r\n\r\n @Output() save = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n @Output() edit = new EventEmitter();\r\n @Output() delete = new EventEmitter();\r\n\r\n private title: string;\r\n private iconName: string;\r\n private editing: boolean;\r\n private newItem: boolean = false;\r\n\r\n constructor(private mapper: MapperService) { }\r\n\r\n ngOnInit() {\r\n this.updateView();\r\n if (!this.macroAction) {\r\n this.editing = true;\r\n this.newItem = true;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['macroAction']) {\r\n this.updateView();\r\n }\r\n }\r\n\r\n saveEditedAction(editedAction: MacroAction): void {\r\n this.macroAction = editedAction;\r\n this.editing = false;\r\n this.updateView();\r\n this.save.emit(editedAction);\r\n }\r\n\r\n editAction(): void {\r\n if (!this.editable || this.editing) {\r\n return;\r\n }\r\n\r\n this.editing = true;\r\n this.edit.emit();\r\n }\r\n\r\n cancelEdit(): void {\r\n this.editing = false;\r\n this.cancel.emit();\r\n }\r\n\r\n deleteAction(): void {\r\n this.delete.emit();\r\n }\r\n\r\n private updateView(): void {\r\n if (!this.macroAction) {\r\n this.title = 'New macro action';\r\n } else if (this.macroAction instanceof DelayMacroAction) {\r\n // Delay\r\n this.iconName = 'clock';\r\n let action: DelayMacroAction = this.macroAction as DelayMacroAction;\r\n const delay = action.delay > 0 ? action.delay / 1000 : 0;\r\n this.title = `Delay of ${delay}s`;\r\n } else if (this.macroAction instanceof TextMacroAction) {\r\n // Write text\r\n let action: TextMacroAction = this.macroAction as TextMacroAction;\r\n this.iconName = 'font';\r\n this.title = `Write text: ${action.text}`;\r\n } else if (this.macroAction instanceof KeyMacroAction) {\r\n // Key pressed/held/released\r\n const action: KeyMacroAction = this.macroAction as KeyMacroAction;\r\n this.setKeyActionContent(action);\r\n } else if (this.macroAction instanceof MouseButtonMacroAction) {\r\n // Mouse button clicked/held/released\r\n const action: MouseButtonMacroAction = this.macroAction as MouseButtonMacroAction;\r\n this.setMouseButtonActionContent(action);\r\n } else if (this.macroAction instanceof MoveMouseMacroAction || this.macroAction instanceof ScrollMouseMacroAction) {\r\n // Mouse moved or scrolled\r\n this.setMouseMoveScrollActionContent(this.macroAction);\r\n } else {\r\n this.title = this.macroAction.constructor.name;\r\n }\r\n }\r\n\r\n private setKeyActionContent(action: KeyMacroAction): void {\r\n if (!action.hasScancode() && !action.hasModifiers()) {\r\n this.title = 'Invalid keypress';\r\n return;\r\n }\r\n\r\n if (action.isPressAction()) {\r\n // Press key\r\n this.iconName = 'hand-pointer';\r\n this.title = 'Press key: ';\r\n } else if (action.isHoldAction()) {\r\n // Hold key\r\n this.iconName = 'hand-rock';\r\n this.title = 'Hold key: ';\r\n } else if (action.isReleaseAction()) {\r\n // Release key\r\n this.iconName = 'hand-paper';\r\n this.title = 'Release key: ';\r\n }\r\n\r\n if (action.hasScancode()) {\r\n const scancode: string = (this.mapper.scanCodeToText(action.scancode) || [ 'Unknown' ]).join(' ');\r\n if (scancode) {\r\n this.title += scancode;\r\n }\r\n }\r\n\r\n if (action.hasModifiers()) {\r\n // Press/hold/release modifiers\r\n for (let i = KeyModifiers.leftCtrl; i !== KeyModifiers.rightGui; i <<= 1) {\r\n if (action.isModifierActive(i)) {\r\n this.title += ' ' + KeyModifiers[i];\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setMouseMoveScrollActionContent(action: MacroAction): void {\r\n let typedAction: any;\r\n if (action instanceof MoveMouseMacroAction) {\r\n // Move mouse pointer\r\n this.iconName = 'mouse-pointer';\r\n this.title = 'Move pointer';\r\n typedAction = this.macroAction as MoveMouseMacroAction;\r\n } else {\r\n // Scroll mouse\r\n this.iconName = 'mouse-pointer';\r\n this.title = 'Scroll';\r\n typedAction = this.macroAction as ScrollMouseMacroAction;\r\n }\r\n\r\n let needAnd: boolean;\r\n if (Math.abs(typedAction.x) !== 0) {\r\n this.title += ` by ${Math.abs(typedAction.x)}px ${typedAction.x > 0 ? 'left' : 'right'}`;\r\n needAnd = true;\r\n }\r\n if (Math.abs(typedAction.y) !== 0) {\r\n this.title += ` ${needAnd ? 'and' : 'by'} ${Math.abs(typedAction.y)}px ${typedAction.y > 0 ? 'down' : 'up'}`;\r\n }\r\n }\r\n\r\n private setMouseButtonActionContent(action: MouseButtonMacroAction): void {\r\n // Press/hold/release mouse buttons\r\n if (action.isOnlyPressAction()) {\r\n this.iconName = 'mouse-pointer';\r\n this.title = 'Click mouse button: ';\r\n } else if (action.isOnlyHoldAction()) {\r\n this.iconName = 'hand-rock';\r\n this.title = 'Hold mouse button: ';\r\n } else if (action.isOnlyReleaseAction()) {\r\n this.iconName = 'hand-paper';\r\n this.title = 'Release mouse button: ';\r\n }\r\n\r\n const buttonLabels: string[] = ['Left', 'Middle', 'Right'];\r\n const selectedButtons: boolean[] = action.getMouseButtons();\r\n const selectedButtonLabels: string[] = [];\r\n selectedButtons.forEach((isSelected, idx) => {\r\n if (isSelected && buttonLabels[idx]) {\r\n selectedButtonLabels.push(buttonLabels[idx]);\r\n }\r\n });\r\n this.title += selectedButtonLabels.join(', ');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/item/macro-item.component.ts","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewChildren,\r\n animate,\r\n forwardRef,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/core';\r\n\r\nimport { DragulaService } from 'ng2-dragula/ng2-dragula';\r\n\r\nimport { Macro } from '../../../config-serializer/config-items/Macro';\r\nimport { MacroAction } from '../../../config-serializer/config-items/macro-action';\r\nimport { MacroItemComponent } from './../index';\r\n\r\n@Component({\r\n animations: [\r\n trigger('toggler', [\r\n state('inactive', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition('inactive <=> active', animate('500ms ease-out'))\r\n ]),\r\n trigger('togglerNew', [\r\n state('void', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition(':enter', animate('500ms ease-out')),\r\n transition(':leave', animate('500ms ease-out'))\r\n ])\r\n ],\r\n selector: 'macro-list',\r\n template: require('./macro-list.component.html'),\r\n styles: [require('./macro-list.component.scss')],\r\n viewProviders: [DragulaService]\r\n})\r\nexport class MacroListComponent {\r\n @Input() macro: Macro;\r\n @ViewChildren(forwardRef(() => MacroItemComponent)) macroItems: QueryList;\r\n\r\n @Output() add = new EventEmitter();\r\n @Output() edit = new EventEmitter();\r\n @Output() delete = new EventEmitter();\r\n @Output() reorder = new EventEmitter();\r\n\r\n private newMacro: Macro = undefined;\r\n private activeEdit: number = undefined;\r\n private dragIndex: number;\r\n private showNew: boolean = false;\r\n\r\n constructor(private dragulaService: DragulaService) {\r\n /* tslint:disable:no-unused-variable: Used by Dragula. */\r\n dragulaService.setOptions('macroActions', {\r\n moves: function (el: any, container: any, handle: any) {\r\n return handle.className.includes('action--movable');\r\n }\r\n });\r\n\r\n dragulaService.drag.subscribe((value: any) => {\r\n this.dragIndex = +value[1].getAttribute('data-index');\r\n });\r\n\r\n dragulaService.drop.subscribe((value: any) => {\r\n if (value[4]) {\r\n this.reorder.emit({\r\n macroId: this.macro.id,\r\n oldIndex: this.dragIndex,\r\n newIndex: +value[4].getAttribute('data-index')\r\n });\r\n }\r\n });\r\n }\r\n\r\n showNewAction() {\r\n this.hideActiveEditor();\r\n\r\n this.newMacro = undefined;\r\n this.showNew = true;\r\n }\r\n\r\n hideNewAction() {\r\n this.showNew = false;\r\n }\r\n\r\n addNewAction(macroAction: MacroAction) {\r\n this.add.emit({\r\n macroId: this.macro.id,\r\n action: macroAction\r\n });\r\n\r\n this.newMacro = undefined;\r\n this.showNew = false;\r\n }\r\n\r\n editAction(index: number) {\r\n // Hide other editors when clicking edit button of a macro action\r\n this.hideActiveEditor();\r\n this.showNew = false;\r\n this.activeEdit = index;\r\n }\r\n\r\n cancelAction() {\r\n this.activeEdit = undefined;\r\n }\r\n\r\n saveAction(macroAction: MacroAction, index: number) {\r\n this.edit.emit({\r\n macroId: this.macro.id,\r\n index: index,\r\n action: macroAction\r\n });\r\n\r\n this.hideActiveEditor();\r\n }\r\n\r\n deleteAction(macroAction: MacroAction, index: number) {\r\n this.delete.emit({\r\n macroId: this.macro.id,\r\n index: index,\r\n action: macroAction\r\n });\r\n\r\n this.hideActiveEditor();\r\n }\r\n\r\n private hideActiveEditor() {\r\n if (this.activeEdit !== undefined) {\r\n this.macroItems.toArray()[this.activeEdit].cancelEdit();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/list/macro-list.component.ts","import { Routes } from '@angular/router';\r\n\r\nimport { MacroEditComponent } from './edit/macro-edit.component';\r\nimport { MacroNotFoundComponent, MacroNotFoundGuard } from './not-found';\r\n\r\nexport const macroRoutes: Routes = [\r\n {\r\n path: 'macro',\r\n component: MacroNotFoundComponent,\r\n canActivate: [MacroNotFoundGuard]\r\n },\r\n {\r\n path: 'macro/:id',\r\n component: MacroEditComponent\r\n },\r\n {\r\n path: 'macro/:id/:empty',\r\n component: MacroEditComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/macro.routes.ts","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport 'rxjs/add/operator/let';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { AppState } from '../../../store/index';\r\nimport { getMacros } from '../../../store/reducers/user-configuration';\r\nimport { Macro } from './../../../config-serializer/config-items/Macro';\r\n\r\n@Injectable()\r\nexport class MacroNotFoundGuard implements CanActivate {\r\n\r\n constructor(private store: Store, private router: Router) { }\r\n\r\n canActivate(): Observable {\r\n return this.store\r\n .let(getMacros())\r\n .map((macros: Macro[]) => {\r\n const hasMacros = macros.length > 0;\r\n if (hasMacros) {\r\n this.router.navigate(['/macro', macros[0].id]);\r\n }\r\n return !hasMacros;\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/not-found/macro-not-found-guard.service.ts","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'macro-not-found',\r\n template: require('./macro-not-found.component.html'),\r\n styles: [require('./macro-not-found.component.scss')]\r\n})\r\nexport class MacroNotFoundComponent { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/macro/not-found/macro-not-found.component.ts","export * from './notification.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/notification/index.ts","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'notification',\r\n template: require('./notification.component.html'),\r\n styles: [require('./notification.component.scss')]\r\n})\r\nexport class NotificationComponent {\r\n\r\n constructor() {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/notification/notification.component.ts","import {\r\n Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges, ViewChild,\r\n animate, keyframes, state, style, transition, trigger\r\n} from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { ClientRect } from '../../dom';\r\n\r\nimport {\r\n KeyAction,\r\n KeystrokeAction,\r\n MouseAction,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction\r\n} from '../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../config-serializer/config-items/Keymap';\r\n\r\nimport { Tab } from './tab/tab';\r\n\r\nimport { AppState } from '../../store';\r\nimport { getKeymaps } from '../../store/reducers/user-configuration';\r\n\r\nenum TabName {\r\n Keypress,\r\n Layer,\r\n Mouse,\r\n Macro,\r\n Keymap,\r\n None\r\n}\r\n\r\n@Component({\r\n selector: 'popover',\r\n template: require('./popover.component.html'),\r\n styles: [require('./popover.component.scss')],\r\n animations: [\r\n trigger('popover', [\r\n state('closed', style({\r\n transform: 'translateY(30px)',\r\n visibility: 'hidden',\r\n opacity: 0\r\n })),\r\n state('opened', style({\r\n transform: 'translateY(0)',\r\n visibility: 'visible',\r\n opacity: 1\r\n })),\r\n transition('opened => closed', [\r\n animate('200ms ease-out', keyframes([\r\n style({ transform: 'translateY(0)', visibility: 'visible', opacity: 1, offset: 0 }),\r\n style({ transform: 'translateY(30px)', visibility: 'hidden', opacity: 0, offset: 1 })\r\n ]))\r\n ]),\r\n transition('closed => opened', [\r\n style({\r\n visibility: 'visible'\r\n }),\r\n animate('200ms ease-out', keyframes([\r\n style({ transform: 'translateY(30px)', opacity: 0, offset: 0 }),\r\n style({ transform: 'translateY(0)', opacity: 1, offset: 1 })\r\n ]))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class PopoverComponent implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() currentKeymap: Keymap;\r\n @Input() currentLayer: number;\r\n @Input() keyPosition: ClientRect;\r\n @Input() wrapPosition: ClientRect;\r\n @Input() visible: boolean;\r\n\r\n @Output() cancel = new EventEmitter();\r\n @Output() remap = new EventEmitter();\r\n\r\n @ViewChild('tab') selectedTab: Tab;\r\n @ViewChild('popover') popoverHost: ElementRef;\r\n\r\n public tabName = TabName;\r\n public keyActionValid: boolean;\r\n private activeTab: TabName;\r\n private keymaps$: Observable;\r\n private leftArrow: boolean = false;\r\n private rightArrow: boolean = false;\r\n private topPosition: number = 0;\r\n private leftPosition: number = 0;\r\n private animationState: string;\r\n\r\n constructor(private store: Store) {\r\n this.animationState = 'closed';\r\n this.keymaps$ = store.let(getKeymaps())\r\n .map((keymaps: Keymap[]) =>\r\n keymaps.filter((keymap: Keymap) => this.currentKeymap.abbreviation !== keymap.abbreviation)\r\n );\r\n }\r\n\r\n ngOnChanges(change: SimpleChanges) {\r\n if (this.keyPosition && this.wrapPosition && (change['keyPosition'] || change['wrapPosition'])) {\r\n this.calculatePosition();\r\n }\r\n\r\n if (change['defaultKeyAction']) {\r\n let tab: TabName;\r\n\r\n if (this.defaultKeyAction instanceof KeystrokeAction) {\r\n tab = TabName.Keypress;\r\n } else if (this.defaultKeyAction instanceof SwitchLayerAction) {\r\n tab = TabName.Layer;\r\n } else if (this.defaultKeyAction instanceof MouseAction) {\r\n tab = TabName.Mouse;\r\n } else if (this.defaultKeyAction instanceof PlayMacroAction) {\r\n tab = TabName.Macro;\r\n } else if (this.defaultKeyAction instanceof SwitchKeymapAction) {\r\n tab = TabName.Keymap;\r\n } else {\r\n tab = TabName.None;\r\n }\r\n\r\n this.selectTab(tab);\r\n }\r\n\r\n if (change['visible']) {\r\n if (change['visible'].currentValue) {\r\n this.animationState = 'opened';\r\n } else {\r\n this.animationState = 'closed';\r\n }\r\n }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.cancel.emit(undefined);\r\n }\r\n\r\n onRemapKey(): void {\r\n if (this.keyActionValid) {\r\n try {\r\n let keyAction = this.selectedTab.toKeyAction();\r\n this.remap.emit(keyAction);\r\n } catch (e) {\r\n // TODO: show error dialog\r\n console.error(e);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keydown.escape')\r\n onEscape(): void {\r\n this.cancel.emit();\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n }\r\n\r\n onOverlay() {\r\n this.cancel.emit(undefined);\r\n }\r\n\r\n private calculatePosition() {\r\n const offsetLeft: number = this.wrapPosition.left + 265; // 265 is a width of the side menu with a margin\r\n const popover: HTMLElement = this.popoverHost.nativeElement;\r\n let newLeft: number = this.keyPosition.left + (this.keyPosition.width / 2);\r\n\r\n this.leftArrow = newLeft < offsetLeft;\r\n this.rightArrow = (newLeft + popover.offsetWidth) > offsetLeft + this.wrapPosition.width;\r\n\r\n if (this.leftArrow) {\r\n newLeft = this.keyPosition.left;\r\n } else if (this.rightArrow) {\r\n newLeft = this.keyPosition.left - popover.offsetWidth + this.keyPosition.width;\r\n } else {\r\n newLeft -= popover.offsetWidth / 2;\r\n }\r\n\r\n // 7 is a space between a bottom key position and a popover\r\n this.topPosition = this.keyPosition.top + this.keyPosition.height + 7 + window.scrollY;\r\n this.leftPosition = newLeft;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/popover.component.ts","export * from './keymap-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/keymap/index.ts","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\n\r\nimport { Select2OptionData } from 'ng2-select2/ng2-select2';\r\n\r\nimport { KeyAction, SwitchKeymapAction } from '../../../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../../../config-serializer/config-items/Keymap';\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'keymap-tab',\r\n template: require('./keymap-tab.component.html'),\r\n styles: [require('./keymap-tab.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class KeymapTabComponent extends Tab implements OnInit, OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() keymaps: Keymap[];\r\n\r\n private keymapOptions: Array;\r\n private selectedKeymap: Keymap;\r\n\r\n constructor() {\r\n super();\r\n this.keymapOptions = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.keymapOptions = this.keymaps\r\n .map((keymap: Keymap): Select2OptionData => {\r\n return {\r\n id: keymap.abbreviation,\r\n text: keymap.name\r\n };\r\n });\r\n if (this.keymaps.length > 0) {\r\n this.selectedKeymap = this.keymaps[0];\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(true);\r\n }\r\n\r\n // TODO: change to the correct type when the wrapper has added it.\r\n onChange(event: any) {\r\n if (event.value === '-1') {\r\n this.selectedKeymap = undefined;\r\n } else {\r\n this.selectedKeymap = this.keymaps.find((keymap: Keymap) => keymap.abbreviation === event.value);\r\n }\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return !!this.selectedKeymap;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof SwitchKeymapAction)) {\r\n return false;\r\n }\r\n\r\n const switchKeymapAction: SwitchKeymapAction = keyAction;\r\n this.selectedKeymap = this.keymaps\r\n .find((keymap: Keymap) => keymap.abbreviation === switchKeymapAction.keymapAbbreviation);\r\n }\r\n\r\n toKeyAction(): SwitchKeymapAction {\r\n if (!this.keyActionValid()) {\r\n throw new Error('KeyAction is not valid. No selected keymap!');\r\n }\r\n\r\n const keymapAction = new SwitchKeymapAction();\r\n keymapAction.keymapAbbreviation = this.selectedKeymap.abbreviation;\r\n return keymapAction;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/keymap/keymap-tab.component.ts","export * from './keypress-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/keypress/index.ts","import { Component, Input, EventEmitter, OnChanges, Output } from '@angular/core';\r\n\r\nimport { Select2OptionData, Select2TemplateFunction } from 'ng2-select2';\r\n\r\nimport { KeyAction, KeystrokeAction } from '../../../../config-serializer/config-items/key-action';\r\n\r\nimport { Tab } from '../tab';\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'keypress-tab',\r\n template: require('./keypress-tab.component.html'),\r\n styles: [require('./keypress-tab.component.scss')]\r\n})\r\nexport class KeypressTabComponent extends Tab implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() longPressEnabled: boolean;\r\n\r\n private leftModifiers: string[];\r\n private rightModifiers: string[];\r\n\r\n private leftModifierSelects: boolean[];\r\n private rightModifierSelects: boolean[];\r\n\r\n private scanCodeGroups: Array;\r\n private longPressGroups: Array;\r\n private options: Select2Options;\r\n\r\n private scanCode: number;\r\n private selectedLongPressIndex: number;\r\n\r\n constructor(private mapper: MapperService) {\r\n super();\r\n this.leftModifiers = ['LShift', 'LCtrl', 'LSuper', 'LAlt'];\r\n this.rightModifiers = ['RShift', 'RCtrl', 'RSuper', 'RAlt'];\r\n this.scanCodeGroups = [{\r\n id: '0',\r\n text: 'None'\r\n }];\r\n this.scanCodeGroups = this.scanCodeGroups.concat(require('json-loader!./scancodes.json'));\r\n this.longPressGroups = require('json-loader!./longPress.json');\r\n this.leftModifierSelects = Array(this.leftModifiers.length).fill(false);\r\n this.rightModifierSelects = Array(this.rightModifiers.length).fill(false);\r\n this.scanCode = 0;\r\n this.selectedLongPressIndex = -1;\r\n this.options = {\r\n templateResult: this.scanCodeTemplateResult,\r\n matcher: (term: string, text: string, data: Select2OptionData) => {\r\n let found = text.toUpperCase().indexOf(term.toUpperCase()) > -1;\r\n\r\n if (!found && data.additional && data.additional.explanation) {\r\n found = data.additional.explanation.toUpperCase().indexOf(term.toUpperCase()) > -1;\r\n }\r\n\r\n return found;\r\n }\r\n };\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n keyActionValid(keystrokeAction?: KeystrokeAction): boolean {\r\n if (!keystrokeAction) {\r\n keystrokeAction = this.toKeyAction();\r\n }\r\n\r\n return (keystrokeAction) ? (keystrokeAction.scancode > 0 || keystrokeAction.modifierMask > 0) : false;\r\n }\r\n\r\n onKeysCapture(event: {code: number, left: boolean[], right: boolean[]}) {\r\n if (event.code) {\r\n this.scanCode = event.code;\r\n } else {\r\n this.scanCode = 0;\r\n }\r\n\r\n this.leftModifierSelects = event.left;\r\n this.rightModifierSelects = event.right;\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof KeystrokeAction)) {\r\n return false;\r\n }\r\n let keystrokeAction: KeystrokeAction = keyAction;\r\n // Restore scancode\r\n this.scanCode = keystrokeAction.scancode || 0;\r\n\r\n let leftModifiersLength: number = this.leftModifiers.length;\r\n\r\n // Restore modifiers\r\n for (let i = 0; i < leftModifiersLength; ++i) {\r\n this.leftModifierSelects[this.mapper.modifierMapper(i)] = ((keystrokeAction.modifierMask >> i) & 1) === 1;\r\n }\r\n\r\n for (let i = leftModifiersLength; i < leftModifiersLength + this.rightModifierSelects.length; ++i) {\r\n let index: number = this.mapper.modifierMapper(i) - leftModifiersLength;\r\n this.rightModifierSelects[index] = ((keystrokeAction.modifierMask >> i) & 1) === 1;\r\n }\r\n\r\n // Restore longPressAction\r\n if (keystrokeAction.longPressAction !== undefined) {\r\n this.selectedLongPressIndex = this.mapper.modifierMapper(keystrokeAction.longPressAction);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n toKeyAction(): KeystrokeAction {\r\n let keystrokeAction: KeystrokeAction = new KeystrokeAction();\r\n keystrokeAction.scancode = this.scanCode;\r\n\r\n keystrokeAction.modifierMask = 0;\r\n let modifiers = this.leftModifierSelects.concat(this.rightModifierSelects).map(x => x ? 1 : 0);\r\n for (let i = 0; i < modifiers.length; ++i) {\r\n keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i);\r\n }\r\n\r\n keystrokeAction.longPressAction = this.selectedLongPressIndex === -1\r\n ? undefined\r\n : this.mapper.modifierMapper(this.selectedLongPressIndex);\r\n\r\n if (this.keyActionValid(keystrokeAction)) {\r\n return keystrokeAction;\r\n }\r\n }\r\n\r\n scanCodeTemplateResult: Select2TemplateFunction = (state: Select2OptionData): JQuery | string => {\r\n if (!state.id) {\r\n return state.text;\r\n }\r\n\r\n if (state.additional && state.additional.explanation) {\r\n return jQuery(\r\n ''\r\n + '' + state.text + ''\r\n + ' '\r\n + state.additional.explanation\r\n + '' +\r\n ''\r\n );\r\n } else {\r\n return jQuery('' + state.text + '');\r\n }\r\n }\r\n\r\n toggleModifier(right: boolean, index: number) {\r\n let modifierSelects: boolean[] = right ? this.rightModifierSelects : this.leftModifierSelects;\r\n modifierSelects[index] = !modifierSelects[index];\r\n\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n onLongpressChange(event: {value: string}) {\r\n this.selectedLongPressIndex = +event.value;\r\n }\r\n\r\n onScancodeChange(event: {value: string}) {\r\n this.scanCode = +event.value;\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/keypress/keypress-tab.component.ts","export * from './layer-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/layer/index.ts","import { Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\n\r\nimport { KeyAction, LayerName, SwitchLayerAction } from '../../../../config-serializer/config-items/key-action';\r\n\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'layer-tab',\r\n template: require('./layer-tab.component.html'),\r\n styles: [require('./layer-tab.component.scss')]\r\n})\r\nexport class LayerTabComponent extends Tab implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() currentLayer: number;\r\n\r\n @HostBinding('class.no-base') isNotBase: boolean;\r\n\r\n toggleData: { id: boolean, text: string }[] = [\r\n {\r\n id: false,\r\n text: 'Activate'\r\n },\r\n {\r\n id: true,\r\n text: 'Toggle'\r\n }\r\n ];\r\n\r\n layerData: { id: number, text: string }[] = [\r\n {\r\n id: 0,\r\n text: 'Mod'\r\n },\r\n {\r\n id: 1,\r\n text: 'Fn'\r\n },\r\n {\r\n id: 2,\r\n text: 'Mouse'\r\n }\r\n ];\r\n\r\n private toggle: boolean;\r\n private layer: LayerName;\r\n\r\n constructor() {\r\n super();\r\n this.toggle = false;\r\n this.layer = LayerName.mod;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['defaultKeyAction']) {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n }\r\n\r\n if (changes['currentLayer']) {\r\n this.isNotBase = this.currentLayer > 0;\r\n }\r\n\r\n this.validAction.emit(true);\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return !this.isNotBase;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof SwitchLayerAction)) {\r\n return false;\r\n }\r\n\r\n let switchLayerAction: SwitchLayerAction = keyAction;\r\n this.toggle = switchLayerAction.isLayerToggleable;\r\n this.layer = switchLayerAction.layer;\r\n return true;\r\n }\r\n\r\n toKeyAction(): SwitchLayerAction {\r\n let keyAction = new SwitchLayerAction();\r\n keyAction.isLayerToggleable = this.toggle;\r\n keyAction.layer = this.layer;\r\n if (!this.keyActionValid()) {\r\n throw new Error('KeyAction is invalid!');\r\n }\r\n return keyAction;\r\n }\r\n\r\n toggleChanged(value: string) {\r\n this.toggle = value === 'true';\r\n }\r\n\r\n layerChanged(value: number) {\r\n this.layer = +value;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/layer/layer-tab.component.ts","export * from './macro-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/macro/index.ts","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { Select2OptionData } from 'ng2-select2/ng2-select2';\r\n\r\nimport { KeyAction, PlayMacroAction } from '../../../../config-serializer/config-items/key-action';\r\nimport { Macro } from '../../../../config-serializer/config-items/Macro';\r\n\r\nimport { Tab } from '../tab';\r\n\r\nimport { AppState } from '../../../../store/index';\r\nimport { getMacros } from '../../../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n selector: 'macro-tab',\r\n template: require('./macro-tab.component.html'),\r\n styles: [require('./macro-tab.component.scss')]\r\n})\r\nexport class MacroTabComponent extends Tab implements OnInit, OnChanges, OnDestroy {\r\n @Input() defaultKeyAction: KeyAction;\r\n\r\n private macros: Macro[];\r\n private macroOptions: Array;\r\n private selectedMacroIndex: number;\r\n private subscription: Subscription;\r\n\r\n constructor(private store: Store) {\r\n super();\r\n this.subscription = store.let(getMacros())\r\n .subscribe((macros: Macro[]) => this.macros = macros);\r\n this.macroOptions = [];\r\n this.selectedMacroIndex = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.macroOptions = this.macros.map(function (macro: Macro, index: number): Select2OptionData {\r\n return {\r\n id: index.toString(),\r\n text: macro.name\r\n };\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(true);\r\n }\r\n\r\n // TODO: change to the correct type when the wrapper has added it.\r\n onChange(event: any) {\r\n this.selectedMacroIndex = +event.value;\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return this.selectedMacroIndex >= 0;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof PlayMacroAction)) {\r\n return false;\r\n }\r\n const playMacroAction: PlayMacroAction = keyAction;\r\n this.selectedMacroIndex = this.macros.findIndex(macro => playMacroAction.macroId === macro.id);\r\n return true;\r\n }\r\n\r\n toKeyAction(): PlayMacroAction {\r\n if (!this.keyActionValid()) {\r\n throw new Error('KeyAction is not valid. No selected macro!');\r\n }\r\n\r\n const keymapAction = new PlayMacroAction();\r\n keymapAction.macroId = this.macros[this.selectedMacroIndex].id;\r\n return keymapAction;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/macro/macro-tab.component.ts","export * from './mouse-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/mouse/index.ts","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n\r\nimport { KeyAction, MouseAction, MouseActionParam } from '../../../../config-serializer/config-items/key-action';\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'mouse-tab',\r\n template: require('./mouse-tab.component.html'),\r\n styles: [require('./mouse-tab.component.scss')]\r\n})\r\nexport class MouseTabComponent extends Tab implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n\r\n private mouseActionParam: MouseActionParam;\r\n private selectedPageIndex: number;\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n /* tslint:disable:no-unused-variable: It is used in the template. */\r\n private MouseActionParam = MouseActionParam;\r\n /* tslint:enable:no-unused-variable tslint:enable:variable-name */\r\n\r\n private pages: string[];\r\n\r\n constructor() {\r\n super();\r\n this.selectedPageIndex = 0;\r\n this.pages = ['Move', 'Scroll', 'Click', 'Speed'];\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return this.mouseActionParam !== undefined;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof MouseAction)) {\r\n return false;\r\n }\r\n\r\n let mouseAction: MouseAction = keyAction;\r\n this.mouseActionParam = mouseAction.mouseAction;\r\n\r\n if (mouseAction.mouseAction === MouseActionParam.moveUp) {\r\n this.selectedPageIndex = 0;\r\n }\r\n\r\n switch (mouseAction.mouseAction) {\r\n case MouseActionParam.moveDown:\r\n case MouseActionParam.moveUp:\r\n case MouseActionParam.moveLeft:\r\n case MouseActionParam.moveRight:\r\n this.selectedPageIndex = 0;\r\n break;\r\n case MouseActionParam.scrollDown:\r\n case MouseActionParam.scrollUp:\r\n case MouseActionParam.scrollLeft:\r\n case MouseActionParam.scrollRight:\r\n this.selectedPageIndex = 1;\r\n break;\r\n case MouseActionParam.leftClick:\r\n case MouseActionParam.middleClick:\r\n case MouseActionParam.rightClick:\r\n this.selectedPageIndex = 2;\r\n break;\r\n case MouseActionParam.decelerate:\r\n case MouseActionParam.accelerate:\r\n this.selectedPageIndex = 3;\r\n break;\r\n default:\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n toKeyAction(): MouseAction {\r\n let mouseAction: MouseAction = new MouseAction();\r\n mouseAction.mouseAction = this.mouseActionParam;\r\n return mouseAction;\r\n }\r\n\r\n changePage(index: number) {\r\n if (index < -1 || index > 3) {\r\n console.error(`Invalid index error: ${index}`);\r\n return;\r\n }\r\n\r\n this.selectedPageIndex = index;\r\n this.mouseActionParam = undefined;\r\n this.validAction.emit(false);\r\n }\r\n\r\n setMouseActionParam(mouseActionParam: MouseActionParam) {\r\n this.mouseActionParam = mouseActionParam;\r\n this.validAction.emit(true);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/mouse/mouse-tab.component.ts","export * from './none-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/none/index.ts","import { Component, EventEmitter, OnChanges, Output } from '@angular/core';\r\n\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'none-tab',\r\n template: require('./none-tab.component.html'),\r\n styles: [require('./none-tab.component.scss')]\r\n})\r\nexport class NoneTabComponent extends Tab implements OnChanges {\r\n ngOnChanges(event: any) {\r\n this.validAction.emit(true);\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return true;\r\n }\r\n\r\n fromKeyAction(): boolean {\r\n return false;\r\n }\r\n\r\n toKeyAction(): undefined {\r\n return undefined;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/tab/none/none-tab.component.ts","import { Component, EventEmitter, HostListener, Output } from '@angular/core';\r\nimport { CaptureService } from '../../../../services/capture.service';\r\n\r\n@Component({\r\n selector: 'capture-keystroke-button',\r\n template: require('./capture-keystroke-button.component.html'),\r\n styles: [require('./capture-keystroke-button.component.scss')]\r\n})\r\nexport class CaptureKeystrokeButtonComponent {\r\n @Output() capture = new EventEmitter();\r\n\r\n private record: boolean;\r\n private first: boolean; // enable usage of Enter to start capturing\r\n private scanCodePressed: boolean;\r\n\r\n constructor(private captureService: CaptureService) {\r\n this.record = false;\r\n this.captureService.initModifiers();\r\n this.captureService.populateMapping();\r\n this.scanCodePressed = false;\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e: KeyboardEvent) {\r\n if (this.scanCodePressed) {\r\n e.preventDefault();\r\n this.scanCodePressed = false;\r\n } else if (this.record && !this.first) {\r\n e.preventDefault();\r\n this.saveScanCode();\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n const code: number = e.keyCode;\r\n const enter = 13;\r\n\r\n if (this.record) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.first = false;\r\n\r\n if (this.captureService.hasMap(code)) {\r\n this.saveScanCode(this.captureService.getMap(code));\r\n this.scanCodePressed = true;\r\n } else {\r\n this.captureService.setModifier((e.location === 1), code);\r\n }\r\n } else if (code === enter) {\r\n this.record = true;\r\n this.first = true;\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusOut() {\r\n this.record = false;\r\n this.reset();\r\n }\r\n\r\n start(): void {\r\n this.record = true;\r\n }\r\n\r\n private saveScanCode(code?: number) {\r\n this.record = false;\r\n const left: boolean[] = this.captureService.getModifiers(true);\r\n const right: boolean[] = this.captureService.getModifiers(false);\r\n\r\n this.capture.emit({\r\n code,\r\n left,\r\n right\r\n });\r\n\r\n this.reset();\r\n }\r\n\r\n private reset() {\r\n this.first = false;\r\n this.captureService.initModifiers();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.ts","export * from './capture-keystroke-button.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/widgets/capture-keystroke/index.ts","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'icon',\r\n template: require('./icon.component.html'),\r\n styles: [require('./icon.component.scss')]\r\n})\r\nexport class IconComponent implements OnInit {\r\n\r\n @Input() name: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/widgets/icon/icon.component.ts","export * from './icon.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/popover/widgets/icon/index.ts","import { Routes } from '@angular/router';\r\n\r\nimport { SettingsComponent } from './settings.component';\r\n\r\nexport const settingsRoutes: Routes = [\r\n {\r\n path: 'settings',\r\n component: SettingsComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/settings/settings.routes.ts","export * from './side-menu.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/side-menu/index.ts","import { Component, Renderer, animate, state, style, transition, trigger } from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/let';\r\n\r\nimport { Keymap } from '../../config-serializer/config-items/Keymap';\r\nimport { Macro } from '../../config-serializer/config-items/Macro';\r\n\r\nimport { AppState } from '../../store';\r\nimport { MacroActions } from '../../store/actions';\r\nimport { getKeymaps, getMacros } from '../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n animations: [\r\n trigger('toggler', [\r\n state('inactive', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition('inactive <=> active', animate('500ms ease-out'))\r\n ])\r\n ],\r\n selector: 'side-menu',\r\n template: require('./side-menu.component.html'),\r\n styles: [require('./side-menu.component.scss')]\r\n})\r\nexport class SideMenuComponent {\r\n private keymaps$: Observable;\r\n private macros$: Observable;\r\n private animation: { [key: string]: 'active' | 'inactive' };\r\n\r\n constructor(private store: Store, private renderer: Renderer) {\r\n this.animation = {\r\n keymap: 'active',\r\n macro: 'active',\r\n addon: 'active'\r\n };\r\n\r\n this.keymaps$ = store.let(getKeymaps())\r\n .map(keymaps => keymaps.slice()) // Creating a new array reference, because the sort is working in place\r\n .do((keymaps: Keymap[]) => {\r\n keymaps.sort((first: Keymap, second: Keymap) => first.name.localeCompare(second.name));\r\n });\r\n\r\n this.macros$ = store.let(getMacros())\r\n .map(macros => macros.slice()) // Creating a new array reference, because the sort is working in place\r\n .do((macros: Macro[]) => {\r\n macros.sort((first: Macro, second: Macro) => first.name.localeCompare(second.name));\r\n });\r\n }\r\n\r\n toggleHide(event: Event, type: string) {\r\n let header: DOMTokenList = (event.target).classList;\r\n let show = false;\r\n\r\n if (header.contains('fa-chevron-down')) {\r\n show = true;\r\n this.animation[type] = 'active';\r\n } else {\r\n this.animation[type] = 'inactive';\r\n }\r\n\r\n this.renderer.setElementClass(event.target, 'fa-chevron-up', show);\r\n this.renderer.setElementClass(event.target, 'fa-chevron-down', !show);\r\n }\r\n\r\n addMacro() {\r\n this.store.dispatch(MacroActions.addMacro());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/side-menu/side-menu.component.ts","export * from './svg-keyboard.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keyboard/index.ts","import { Component, EventEmitter, Input, OnInit, Output, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { Module } from '../../../config-serializer/config-items/Module';\r\nimport { SvgModule } from '../module';\r\n\r\n@Component({\r\n selector: 'svg-keyboard',\r\n template: require('./svg-keyboard.component.html'),\r\n styles: [require('./svg-keyboard.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgKeyboardComponent implements OnInit {\r\n @Input() moduleConfig: Module[];\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Output() keyClick = new EventEmitter();\r\n @Output() keyHover = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n private modules: SvgModule[];\r\n private svgAttributes: { viewBox: string, transform: string, fill: string };\r\n\r\n constructor() {\r\n this.modules = [];\r\n this.svgAttributes = this.getKeyboardSvgAttributes();\r\n }\r\n\r\n ngOnInit() {\r\n this.modules = this.getSvgModules();\r\n }\r\n\r\n onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {\r\n this.keyClick.emit({\r\n moduleId,\r\n keyId,\r\n keyTarget\r\n });\r\n }\r\n\r\n onCapture(moduleId: number, keyId: number, captured: {code: number, left: boolean[], right: boolean[]}): void {\r\n this.capture.emit({\r\n moduleId,\r\n keyId,\r\n captured\r\n });\r\n }\r\n\r\n onKeyHover(keyId: number, event: MouseEvent, over: boolean, moduleId: number): void {\r\n this.keyHover.emit({\r\n moduleId,\r\n event,\r\n over,\r\n keyId\r\n });\r\n }\r\n\r\n private getKeyboardSvgAttributes(): { viewBox: string, transform: string, fill: string } {\r\n let svg: any = this.getBaseLayer();\r\n return {\r\n viewBox: svg.$.viewBox,\r\n transform: svg.g[0].$.transform,\r\n fill: svg.g[0].$.fill\r\n };\r\n }\r\n\r\n private getSvgModules(): SvgModule[] {\r\n let modules = this.getBaseLayer().g[0].g.map((obj: any) => new SvgModule(obj));\r\n return [modules[1], modules[0]]; // TODO: remove if the svg will be correct\r\n }\r\n\r\n private getBaseLayer(): any {\r\n return require('xml-loader!../../../../../images/base-layer.svg').svg;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keyboard/svg-keyboard.component.ts","export { SvgIconTextKeyComponent } from './svg-icon-text-key';\r\nexport { SvgKeyboardKeyComponent, SvgKeyboardKey } from './svg-keyboard-key';\r\nexport { SvgKeystrokeKeyComponent } from './svg-keystroke-key';\r\nexport { SvgMouseKeyComponent } from './svg-mouse-key';\r\nexport { SvgMouseClickKeyComponent } from './svg-mouse-click-key';\r\nexport { SvgMouseMoveKeyComponent } from './svg-mouse-move-key';\r\nexport { SvgMouseSpeedKeyComponent } from './svg-mouse-speed-key';\r\nexport { SvgMouseScrollKeyComponent } from './svg-mouse-scroll-key';\r\nexport { SvgOneLineTextKeyComponent } from './svg-one-line-text-key';\r\nexport { SvgSingleIconKeyComponent } from './svg-single-icon-key';\r\nexport { SvgSwitchKeymapKeyComponent } from './svg-switch-keymap-key';\r\nexport { SvgTextIconKeyComponent } from './svg-text-icon-key';\r\nexport { SvgTwoLineTextKeyComponent } from './svg-two-line-text-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/index.ts","export * from './svg-icon-text-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-icon-text-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-icon-text-key]',\r\n template: require('./svg-icon-text-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgIconTextKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() icon: string;\r\n @Input() text: string;\r\n\r\n private useWidth: number;\r\n private useHeight: number;\r\n private useX: number;\r\n private useY: number;\r\n private textY: number;\r\n private spanX: number;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.useWidth = this.width / 3;\r\n this.useHeight = this.height / 3;\r\n this.useX = (this.width > 2 * this.height) ? 0 : this.width / 3;\r\n this.useY = (this.width > 2 * this.height) ? this.height / 3 : this.height / 10;\r\n this.textY = (this.width > 2 * this.height) ? this.height / 2 : this.height * 0.6;\r\n this.spanX = (this.width > 2 * this.height) ? this.width * 0.6 : this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.ts","export * from './svg-keyboard-key.component';\r\nexport * from './svg-keyboard-key.model';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-keyboard-key/index.ts","import {\r\n Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, Renderer,\r\n SimpleChange, animate, group, state, style, transition, trigger\r\n} from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport {\r\n KeyAction,\r\n KeystrokeAction,\r\n LayerName,\r\n MouseAction,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction\r\n} from '../../../../config-serializer/config-items/key-action';\r\nimport { KeyModifiers } from '../../../../config-serializer/config-items/KeyModifiers';\r\nimport { Macro } from '../../../../config-serializer/config-items/Macro';\r\n\r\nimport { CaptureService } from '../../../../services/capture.service';\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\nimport { AppState } from '../../../../store/index';\r\nimport { getMacros } from '../../../../store/reducers/user-configuration';\r\n\r\nenum LabelTypes {\r\n KeystrokeKey,\r\n MouseKey,\r\n OneLineText,\r\n TwoLineText,\r\n TextIcon,\r\n SingleIcon,\r\n SwitchKeymap,\r\n IconText\r\n}\r\n\r\n@Component({\r\n animations: [\r\n trigger('change', [\r\n transition('inactive => active', [\r\n style({ fill: '#fff' }),\r\n group([\r\n animate('1s ease-out', style({\r\n fill: '#333'\r\n }))\r\n ])\r\n ])\r\n ]),\r\n trigger('recording', [\r\n state('inactive', style({\r\n fill: 'rgba(204, 0, 0, 1)'\r\n })),\r\n state('active', style({\r\n fill: 'rgba(204, 0, 0, 0.6)'\r\n })),\r\n transition('inactive <=> active', animate('600ms ease-in-out'))\r\n ])\r\n ],\r\n selector: 'g[svg-keyboard-key]',\r\n template: require('./svg-keyboard-key.component.html'),\r\n styles: [require('./svg-keyboard-key.component.scss')]\r\n})\r\nexport class SvgKeyboardKeyComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() id: string;\r\n @Input() rx: string;\r\n @Input() ry: string;\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() keyAction: KeyAction;\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Output() keyClick = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n enumLabelTypes = LabelTypes;\r\n\r\n public changeAnimation: string = 'inactive';\r\n public recordAnimation: string;\r\n\r\n private labelSource: any;\r\n private labelType: LabelTypes;\r\n private macros: Macro[];\r\n private subscription: Subscription;\r\n private recording: boolean;\r\n private scanCodePressed: boolean;\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.reset();\r\n this.keyClick.emit(this.element.nativeElement);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(e: MouseEvent) {\r\n if ((e.which === 2 || e.button === 1) && this.capturingEnabled) {\r\n e.preventDefault();\r\n this.renderer.invokeElementMethod(this.element.nativeElement, 'focus');\r\n\r\n if (this.recording) {\r\n this.reset();\r\n } else {\r\n this.recording = true;\r\n this.recordAnimation = 'active';\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUpe(e: KeyboardEvent) {\r\n if (this.scanCodePressed) {\r\n e.preventDefault();\r\n this.scanCodePressed = false;\r\n } else if (this.recording) {\r\n e.preventDefault();\r\n this.saveScanCode();\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n const code: number = e.keyCode;\r\n\r\n if (this.recording) {\r\n e.preventDefault();\r\n\r\n if (this.captureService.hasMap(code)) {\r\n this.saveScanCode(this.captureService.getMap(code));\r\n this.scanCodePressed = true;\r\n } else {\r\n this.captureService.setModifier((e.location === 1), code);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusOut() {\r\n this.reset();\r\n }\r\n\r\n constructor(\r\n private mapper: MapperService,\r\n private store: Store,\r\n private element: ElementRef,\r\n private captureService: CaptureService,\r\n private renderer: Renderer\r\n ) {\r\n this.subscription = store.let(getMacros())\r\n .subscribe((macros: Macro[]) => this.macros = macros);\r\n\r\n this.reset();\r\n this.captureService.populateMapping();\r\n this.scanCodePressed = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.setLabels();\r\n }\r\n\r\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\r\n if (changes['keyAction']) {\r\n this.setLabels();\r\n if (this.keybindAnimationEnabled) {\r\n this.changeAnimation = 'active';\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n onChangeAnimationDone() {\r\n this.changeAnimation = 'inactive';\r\n }\r\n\r\n onRecordingAnimationDone() {\r\n if (this.recording && this.recordAnimation === 'inactive') {\r\n this.recordAnimation = 'active';\r\n } else {\r\n this.recordAnimation = 'inactive';\r\n }\r\n }\r\n\r\n private reset() {\r\n this.recording = false;\r\n this.changeAnimation = 'inactive';\r\n this.captureService.initModifiers();\r\n }\r\n\r\n private saveScanCode(code = 0) {\r\n this.recording = false;\r\n this.changeAnimation = 'inactive';\r\n\r\n const left: boolean[] = this.captureService.getModifiers(true);\r\n const right: boolean[] = this.captureService.getModifiers(false);\r\n\r\n this.capture.emit({\r\n code,\r\n left,\r\n right\r\n });\r\n\r\n this.captureService.initModifiers();\r\n }\r\n\r\n private setLabels(): void {\r\n if (!this.keyAction) {\r\n this.labelSource = undefined;\r\n this.labelType = LabelTypes.OneLineText;\r\n return;\r\n }\r\n\r\n this.labelType = LabelTypes.OneLineText;\r\n\r\n if (this.keyAction instanceof KeystrokeAction) {\r\n let keyAction: KeystrokeAction = this.keyAction as KeystrokeAction;\r\n let newLabelSource: string[];\r\n\r\n if (!keyAction.hasActiveModifier() && keyAction.hasScancode()) {\r\n let scancode: number = keyAction.scancode;\r\n newLabelSource = this.mapper.scanCodeToText(scancode);\r\n if (this.mapper.hasScancodeIcon(scancode)) {\r\n this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode);\r\n this.labelType = LabelTypes.SingleIcon;\r\n } else if (newLabelSource !== undefined) {\r\n if (newLabelSource.length === 1) {\r\n this.labelSource = newLabelSource[0];\r\n this.labelType = LabelTypes.OneLineText;\r\n } else {\r\n this.labelSource = newLabelSource;\r\n this.labelType = LabelTypes.TwoLineText;\r\n }\r\n }\r\n } else if (keyAction.hasOnlyOneActiveModifier() && !keyAction.hasScancode()) {\r\n newLabelSource = [];\r\n switch (keyAction.modifierMask) {\r\n case KeyModifiers.leftCtrl:\r\n case KeyModifiers.rightCtrl:\r\n newLabelSource.push('Ctrl');\r\n break;\r\n case KeyModifiers.leftShift:\r\n case KeyModifiers.rightShift:\r\n newLabelSource.push('Shift');\r\n break;\r\n case KeyModifiers.leftAlt:\r\n case KeyModifiers.rightAlt:\r\n newLabelSource.push('Alt');\r\n break;\r\n case KeyModifiers.leftGui:\r\n case KeyModifiers.rightGui:\r\n newLabelSource.push('Super');\r\n break;\r\n default:\r\n newLabelSource.push('Undefined');\r\n break;\r\n }\r\n this.labelSource = newLabelSource;\r\n } else {\r\n this.labelType = LabelTypes.KeystrokeKey;\r\n this.labelSource = this.keyAction;\r\n }\r\n } else if (this.keyAction instanceof SwitchLayerAction) {\r\n let keyAction: SwitchLayerAction = this.keyAction as SwitchLayerAction;\r\n let newLabelSource: string;\r\n switch (keyAction.layer) {\r\n case LayerName.mod:\r\n newLabelSource = 'Mod';\r\n break;\r\n case LayerName.fn:\r\n newLabelSource = 'Fn';\r\n break;\r\n case LayerName.mouse:\r\n newLabelSource = 'Mouse';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (keyAction.isLayerToggleable) {\r\n this.labelType = LabelTypes.TextIcon;\r\n this.labelSource = {\r\n text: newLabelSource,\r\n icon: this.mapper.getIcon('toggle')\r\n };\r\n } else {\r\n this.labelType = LabelTypes.OneLineText;\r\n this.labelSource = newLabelSource;\r\n }\r\n } else if (this.keyAction instanceof SwitchKeymapAction) {\r\n let keyAction: SwitchKeymapAction = this.keyAction as SwitchKeymapAction;\r\n this.labelType = LabelTypes.SwitchKeymap;\r\n this.labelSource = keyAction.keymapAbbreviation;\r\n } else if (this.keyAction instanceof PlayMacroAction) {\r\n let keyAction: PlayMacroAction = this.keyAction as PlayMacroAction;\r\n const macro: Macro = this.macros.find((_macro: Macro) => _macro.id === keyAction.macroId);\r\n this.labelType = LabelTypes.IconText;\r\n this.labelSource = {\r\n icon: this.mapper.getIcon('macro'),\r\n text: macro.name\r\n };\r\n } else if (this.keyAction instanceof MouseAction) {\r\n this.labelType = LabelTypes.MouseKey;\r\n this.labelSource = this.keyAction;\r\n } else {\r\n this.labelSource = undefined;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts","export * from './svg-keystroke-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-keystroke-key/index.ts","import { Component, Input, OnChanges, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KeystrokeAction } from '../../../../config-serializer/config-items/key-action';\r\nimport { KeyModifiers } from '../../../../config-serializer/config-items/KeyModifiers';\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\nclass SvgAttributes {\r\n width: number;\r\n height: number;\r\n x: number;\r\n y: number;\r\n disabled: boolean;\r\n\r\n constructor() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.x = 0;\r\n this.y = 0;\r\n this.disabled = true;\r\n }\r\n}\r\n\r\nenum Modifiers {\r\n Shift, Control, Alt, Command\r\n}\r\n\r\n@Component({\r\n selector: 'g[svg-keystroke-key]',\r\n template: require('./svg-keystroke-key.component.html'),\r\n styles: [require('./svg-keystroke-key.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgKeystrokeKeyComponent implements OnInit, OnChanges {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() keystrokeAction: KeystrokeAction;\r\n\r\n private viewBox: string;\r\n private textContainer: SvgAttributes;\r\n private modifierContainer: SvgAttributes;\r\n private shift: SvgAttributes;\r\n private control: SvgAttributes;\r\n private option: SvgAttributes;\r\n private command: SvgAttributes;\r\n\r\n private labelSource: any;\r\n private labelType: 'empty' | 'one-line' | 'two-line' | 'icon';\r\n\r\n private modifierIconNames: {\r\n shift?: string,\r\n option?: string,\r\n command?: string\r\n };\r\n\r\n constructor(private mapper: MapperService) {\r\n this.modifierIconNames = {};\r\n this.textContainer = new SvgAttributes();\r\n this.modifierContainer = new SvgAttributes();\r\n this.shift = new SvgAttributes();\r\n this.control = new SvgAttributes();\r\n this.option = new SvgAttributes();\r\n this.command = new SvgAttributes();\r\n }\r\n\r\n ngOnInit() {\r\n this.viewBox = [0, 0, this.width, this.height].join(' ');\r\n this.modifierIconNames.shift = this.mapper.getIcon('shift');\r\n this.modifierIconNames.option = this.mapper.getIcon('option');\r\n this.modifierIconNames.command = this.mapper.getIcon('command');\r\n\r\n let bottomSideMode: boolean = this.width < this.height * 1.8;\r\n\r\n const heightWidthRatio = this.height / this.width;\r\n\r\n if (bottomSideMode) {\r\n const maxIconWidth = this.width / 4;\r\n const maxIconHeight = this.height;\r\n const iconScalingFactor = 0.8;\r\n let iconWidth = iconScalingFactor * heightWidthRatio * maxIconWidth;\r\n let iconHeight = iconScalingFactor * maxIconHeight;\r\n this.modifierContainer.width = this.width;\r\n this.modifierContainer.height = this.height / 5;\r\n this.modifierContainer.y = this.height - this.modifierContainer.height;\r\n this.shift.width = iconWidth;\r\n this.shift.height = iconHeight;\r\n this.shift.x = (maxIconWidth - iconWidth) / 2;\r\n this.shift.y = (maxIconHeight - iconHeight) / 2;\r\n this.control.width = iconWidth;\r\n this.control.height = iconHeight;\r\n this.control.x = this.shift.x + maxIconWidth;\r\n this.control.y = this.shift.y;\r\n this.option.width = iconWidth;\r\n this.option.height = iconHeight;\r\n this.option.x = this.control.x + maxIconWidth;\r\n this.option.y = this.shift.y;\r\n this.command.width = iconWidth;\r\n this.command.height = iconHeight;\r\n this.command.x = this.option.x + maxIconWidth;\r\n this.command.y = this.shift.y;\r\n this.textContainer.y = -this.modifierContainer.height / 2;\r\n } else {\r\n this.modifierContainer.width = this.width / 4;\r\n this.modifierContainer.height = this.height;\r\n this.modifierContainer.x = this.width - this.modifierContainer.width;\r\n\r\n const length = Math.min(this.modifierContainer.width / 2, this.modifierContainer.height / 2);\r\n\r\n const iconScalingFactor = 0.8;\r\n const iconWidth = iconScalingFactor * this.width * (length / this.modifierContainer.width);\r\n const iconHeight = iconScalingFactor * this.height * (length / this.modifierContainer.height);\r\n this.shift.width = iconWidth;\r\n this.shift.height = iconHeight;\r\n this.shift.x = this.width / 4 - iconWidth / 2;\r\n this.shift.y = this.height / 4 - iconHeight / 2;\r\n this.control.width = iconWidth;\r\n this.control.height = iconHeight;\r\n this.control.x = this.shift.x + this.width / 2;\r\n this.control.y = this.shift.y;\r\n this.option.width = iconWidth;\r\n this.option.height = iconHeight;\r\n this.option.x = this.shift.x;\r\n this.option.y = this.shift.y + this.height / 2;\r\n this.command.width = iconWidth;\r\n this.command.height = iconHeight;\r\n this.command.x = this.option.x + this.width / 2;\r\n this.command.y = this.option.y;\r\n this.textContainer.x = -this.modifierContainer.width / 2;\r\n }\r\n\r\n this.textContainer.width = this.width;\r\n this.textContainer.height = this.height;\r\n }\r\n\r\n ngOnChanges() {\r\n let newLabelSource: string[];\r\n if (this.keystrokeAction.hasScancode()) {\r\n let scancode: number = this.keystrokeAction.scancode;\r\n newLabelSource = this.mapper.scanCodeToText(scancode);\r\n if (newLabelSource) {\r\n if (newLabelSource.length === 1) {\r\n this.labelSource = newLabelSource[0];\r\n this.labelType = 'one-line';\r\n } else {\r\n this.labelSource = newLabelSource;\r\n this.labelType = 'two-line';\r\n }\r\n } else {\r\n this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode);\r\n this.labelType = 'icon';\r\n }\r\n } else {\r\n this.labelType = 'empty';\r\n }\r\n\r\n this.shift.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftShift | KeyModifiers.rightShift);\r\n this.control.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftCtrl | KeyModifiers.rightCtrl);\r\n this.option.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftAlt | KeyModifiers.rightAlt);\r\n this.command.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftGui | KeyModifiers.rightGui);\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts","export * from './svg-mouse-click-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-click-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-click-key]',\r\n template: require('./svg-mouse-click-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseClickKeyComponent implements OnInit {\r\n @Input() button: string;\r\n\r\n private icon: string;\r\n\r\n constructor(private mapper: MapperService) {\r\n this.icon = this.mapper.getIcon('mouse');\r\n }\r\n\r\n ngOnInit() { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.ts","export * from './svg-mouse-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MouseAction, MouseActionParam } from '../../../../config-serializer/config-items/key-action';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-key]',\r\n template: require('./svg-mouse-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseKeyComponent implements OnChanges {\r\n @Input() mouseAction: MouseAction;\r\n private type: 'click' | 'scroll' | 'move' | 'speed';\r\n private param: any;\r\n\r\n constructor() { }\r\n\r\n ngOnChanges() {\r\n switch (this.mouseAction.mouseAction) {\r\n case MouseActionParam.leftClick:\r\n this.type = 'click';\r\n this.param = 'Left';\r\n break;\r\n case MouseActionParam.rightClick:\r\n this.type = 'click';\r\n this.param = 'Right';\r\n break;\r\n case MouseActionParam.middleClick:\r\n this.type = 'click';\r\n this.param = 'Middle';\r\n break;\r\n case MouseActionParam.scrollDown:\r\n this.type = 'scroll';\r\n this.param = 'down';\r\n break;\r\n case MouseActionParam.scrollLeft:\r\n this.type = 'scroll';\r\n this.param = 'left';\r\n break;\r\n case MouseActionParam.scrollRight:\r\n this.type = 'scroll';\r\n this.param = 'right';\r\n break;\r\n case MouseActionParam.scrollUp:\r\n this.type = 'scroll';\r\n this.param = 'up';\r\n break;\r\n case MouseActionParam.moveDown:\r\n this.type = 'move';\r\n this.param = 'down';\r\n break;\r\n case MouseActionParam.moveLeft:\r\n this.type = 'move';\r\n this.param = 'left';\r\n break;\r\n case MouseActionParam.moveRight:\r\n this.type = 'move';\r\n this.param = 'right';\r\n break;\r\n case MouseActionParam.moveUp:\r\n this.type = 'move';\r\n this.param = 'up';\r\n break;\r\n case MouseActionParam.accelerate:\r\n this.type = 'speed';\r\n this.param = true;\r\n break;\r\n case MouseActionParam.decelerate:\r\n this.type = 'speed';\r\n this.param = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.ts","export * from './svg-mouse-move-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-move-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-move-key]',\r\n template: require('./svg-mouse-move-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseMoveKeyComponent implements OnChanges {\r\n @Input() direction: string;\r\n\r\n private mouseIcon: string;\r\n private directionIcon: string;\r\n\r\n constructor(private mapper: MapperService) { }\r\n\r\n ngOnChanges() {\r\n this.mouseIcon = this.mapper.getIcon('mouse');\r\n this.directionIcon = this.mapper.getIcon(`${this.direction}-arrow`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.ts","export * from './svg-mouse-scroll-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-scroll-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-scroll-key]',\r\n template: require('./svg-mouse-scroll-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseScrollKeyComponent implements OnChanges {\r\n @Input() direction: string;\r\n\r\n private mouseIcon: string;\r\n private directionIcon: string;\r\n\r\n constructor(private mapper: MapperService) { }\r\n\r\n ngOnChanges() {\r\n this.mouseIcon = this.mapper.getIcon('mouse');\r\n this.directionIcon = this.mapper.getIcon(`scroll-${this.direction}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.ts","export * from './svg-mouse-speed-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-speed-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-speed-key]',\r\n template: require('./svg-mouse-speed-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseSpeedKeyComponent implements OnChanges {\r\n @Input() plus: boolean;\r\n\r\n private icon: string;\r\n private sign: string;\r\n\r\n constructor(private mapper: MapperService) {\r\n this.icon = this.mapper.getIcon('mouse');\r\n }\r\n\r\n ngOnChanges() {\r\n this.sign = this.plus ? '+' : '-';\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.ts","export * from './svg-one-line-text-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-one-line-text-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-one-line-text-key]',\r\n template: require('./svg-one-line-text-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgOneLineTextKeyComponent implements OnInit {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() text: string;\r\n\r\n private textY: number;\r\n private spanX: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.textY = this.height / 2;\r\n this.spanX = this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.ts","export * from './svg-single-icon-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-single-icon-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-single-icon-key]',\r\n template: require('./svg-single-icon-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgSingleIconKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() icon: string;\r\n\r\n private svgHeight: number;\r\n private svgWidth: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.svgWidth = this.width / 3;\r\n this.svgHeight = this.height / 3;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.ts","export * from './svg-switch-keymap-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-switch-keymap-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-switch-keymap-key]',\r\n template: require('./svg-switch-keymap-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgSwitchKeymapKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() abbreviation: string;\r\n\r\n private icon: string;\r\n private useWidth: number;\r\n private useHeight: number;\r\n private useX: number;\r\n private useY: number;\r\n private textY: number;\r\n private spanX: number;\r\n\r\n constructor(private mapperService: MapperService) { }\r\n\r\n ngOnInit() {\r\n this.icon = this.mapperService.getIcon('switch-keymap');\r\n\r\n this.useWidth = this.width / 4;\r\n this.useHeight = this.height / 4;\r\n this.useX = this.width * 3 / 8;\r\n this.useY = this.height / 5;\r\n this.textY = this.height * 2 / 3;\r\n this.spanX = this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.ts","export * from './svg-text-icon-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-text-icon-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-text-icon-key]',\r\n template: require('./svg-text-icon-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgTextIconKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() text: string;\r\n @Input() icon: string;\r\n\r\n private useWidth: number;\r\n private useHeight: number;\r\n private useX: number;\r\n private useY: number;\r\n private textY: number;\r\n private textAnchor: string;\r\n private spanX: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.useWidth = this.width / 3;\r\n this.useHeight = this.height / 3;\r\n this.useX = (this.width > 2 * this.height) ? this.width * 0.6 : this.width / 3;\r\n this.useY = (this.width > 2 * this.height) ? this.height / 3 : this.height / 2;\r\n this.textY = (this.width > 2 * this.height) ? this.height / 2 : this.height / 3;\r\n this.textAnchor = (this.width > 2 * this.height) ? 'end' : 'middle';\r\n this.spanX = (this.width > 2 * this.height) ? 0.6 * this.width : this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.ts","export * from './svg-two-line-text-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-two-line-text-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-two-line-text-key]',\r\n template: require('./svg-two-line-text-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgTwoLineTextKeyComponent implements OnInit {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() texts: string[];\r\n\r\n private textY: number;\r\n private spanX: number;\r\n private spanYs: number[];\r\n\r\n constructor() {\r\n this.spanYs = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.textY = this.height / 2;\r\n this.spanX = this.width / 2;\r\n for (let i = 0; i < this.texts.length; ++i) {\r\n this.spanYs.push((0.75 - i * 0.5) * this.height);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.ts","import { Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KeyAction } from '../../../config-serializer/config-items/key-action';\r\n\r\nimport { SvgKeyboardKey } from '../keys';\r\n\r\n@Component({\r\n selector: 'g[svg-module]',\r\n template: require('./svg-module.component.html'),\r\n styles: [require('./svg-module.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgModuleComponent {\r\n @Input() coverages: any[];\r\n @Input() keyboardKeys: SvgKeyboardKey[];\r\n @Input() keyActions: KeyAction[];\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Output() keyClick = new EventEmitter();\r\n @Output() keyHover = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n constructor() {\r\n this.keyboardKeys = [];\r\n }\r\n\r\n onKeyClick(index: number, keyTarget: HTMLElement): void {\r\n this.keyClick.emit({\r\n index,\r\n keyTarget\r\n });\r\n }\r\n\r\n onKeyHover(index: number, event: MouseEvent, over: boolean): void {\r\n this.keyHover.emit({\r\n index,\r\n event,\r\n over\r\n });\r\n }\r\n\r\n onCapture(index: number, captured: {code: number, left: boolean[], right: boolean[]}) {\r\n this.capture.emit({\r\n index,\r\n captured\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/module/svg-module.component.ts","import { SvgKeyboardKey } from '../keys';\r\n\r\nexport class SvgModule {\r\n private coverages: any[];\r\n private keyboardKeys: SvgKeyboardKey[];\r\n private attributes: any;\r\n\r\n constructor(obj: { rect: any[], path: any[], $: Object }) {\r\n this.keyboardKeys = obj.rect.map(rect => rect.$).map(rect => {\r\n rect.height = +rect.height;\r\n rect.width = +rect.width;\r\n return rect;\r\n });\r\n this.coverages = obj.path;\r\n this.attributes = obj.$;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/module/svg-module.model.ts","export * from './svg-keyboard-wrap.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/wrap/index.ts","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Renderer,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewChild,\r\n SimpleChanges\r\n} from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/map';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { ClientRect } from '../../../dom';\r\n\r\nimport { MapperService } from '../../../services/mapper.service';\r\n\r\nimport {\r\n KeyAction,\r\n KeystrokeAction,\r\n LayerName,\r\n MouseAction,\r\n MouseActionParam,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction\r\n} from '../../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../../config-serializer/config-items/Keymap';\r\nimport { Layer } from '../../../config-serializer/config-items/Layer';\r\nimport { LongPressAction } from '../../../config-serializer/config-items/LongPressAction';\r\nimport { camelCaseToSentence, capitalizeFirstLetter } from '../../../util';\r\n\r\nimport { AppState } from '../../../store';\r\nimport { KeymapActions } from '../../../store/actions';\r\nimport { PopoverComponent } from '../../popover';\r\n\r\ninterface NameValuePair {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n@Component({\r\n selector: 'svg-keyboard-wrap',\r\n template: require('./svg-keyboard-wrap.component.html'),\r\n styles: [require('./svg-keyboard-wrap.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgKeyboardWrapComponent implements OnInit, OnChanges {\r\n @Input() keymap: Keymap;\r\n @Input() popoverEnabled: boolean = true;\r\n @Input() tooltipEnabled: boolean = false;\r\n\r\n @ViewChild(PopoverComponent, { read: ElementRef }) popover: ElementRef;\r\n\r\n private popoverShown: boolean;\r\n private keyEditConfig: { moduleId: number, keyId: number };\r\n private popoverInitKeyAction: KeyAction;\r\n private keybindAnimationEnabled: boolean;\r\n private currentLayer: number = 0;\r\n private tooltipData: {\r\n posTop: number,\r\n posLeft: number,\r\n content: Observable,\r\n show: boolean\r\n };\r\n private layers: Layer[];\r\n private keyPosition: ClientRect;\r\n private wrapPosition: ClientRect;\r\n private wrapHost: HTMLElement;\r\n private keyElement: HTMLElement;\r\n\r\n @HostBinding('class.space') get space() {\r\n return this.popoverEnabled;\r\n }\r\n\r\n @HostListener('window:resize')\r\n onResize() {\r\n if (this.wrapHost) {\r\n this.wrapPosition = this.wrapHost.getBoundingClientRect();\r\n }\r\n\r\n if (this.keyElement) {\r\n this.keyPosition = this.keyElement.getBoundingClientRect();\r\n }\r\n }\r\n\r\n constructor(\r\n private store: Store,\r\n private mapper: MapperService,\r\n private element: ElementRef,\r\n private renderer: Renderer\r\n ) {\r\n this.keyEditConfig = {\r\n moduleId: undefined,\r\n keyId: undefined\r\n };\r\n\r\n this.tooltipData = {\r\n posTop: 0,\r\n posLeft: 0,\r\n content: Observable.of([]),\r\n show: false\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n this.wrapHost = this.element.nativeElement;\r\n this.wrapPosition = this.wrapHost.getBoundingClientRect();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const keymapChanges = changes['keymap'];\r\n if (keymapChanges) {\r\n this.popoverShown = false;\r\n this.layers = this.keymap.layers;\r\n if (keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) {\r\n this.currentLayer = 0;\r\n this.keybindAnimationEnabled = keymapChanges.isFirstChange();\r\n } else {\r\n this.keybindAnimationEnabled = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {\r\n if (!this.popoverShown && this.popoverEnabled) {\r\n this.keyEditConfig = {\r\n moduleId,\r\n keyId\r\n };\r\n\r\n const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId];\r\n this.keyElement = keyTarget;\r\n this.showPopover(keyActionToEdit);\r\n }\r\n }\r\n\r\n onKeyHover(moduleId: number, event: MouseEvent, over: boolean, keyId: number): void {\r\n if (this.tooltipEnabled) {\r\n const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId];\r\n\r\n if (over) {\r\n this.showTooltip(keyActionToEdit, event);\r\n } else {\r\n this.hideTooltip();\r\n }\r\n }\r\n }\r\n\r\n onCapture(moduleId: number, keyId: number, captured: { code: number, left: boolean[], right: boolean[] }): void {\r\n let keystrokeAction: KeystrokeAction = new KeystrokeAction();\r\n const modifiers = captured.left.concat(captured.right).map(x => x ? 1 : 0);\r\n\r\n keystrokeAction.scancode = captured.code;\r\n keystrokeAction.modifierMask = 0;\r\n\r\n for (let i = 0; i < modifiers.length; ++i) {\r\n keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i);\r\n }\r\n\r\n this.store.dispatch(\r\n KeymapActions.saveKey(\r\n this.keymap,\r\n this.currentLayer,\r\n moduleId,\r\n keyId,\r\n keystrokeAction)\r\n );\r\n }\r\n\r\n onRemap(keyAction: KeyAction): void {\r\n this.store.dispatch(\r\n KeymapActions.saveKey(\r\n this.keymap,\r\n this.currentLayer,\r\n this.keyEditConfig.moduleId,\r\n this.keyEditConfig.keyId,\r\n keyAction)\r\n );\r\n this.hidePopover();\r\n }\r\n\r\n showPopover(keyAction: KeyAction): void {\r\n this.keyPosition = this.keyElement.getBoundingClientRect();\r\n this.popoverInitKeyAction = keyAction;\r\n this.popoverShown = true;\r\n this.renderer.invokeElementMethod(this.popover.nativeElement, 'focus');\r\n }\r\n\r\n showTooltip(keyAction: KeyAction, event: MouseEvent): void {\r\n if (keyAction === undefined) {\r\n return;\r\n }\r\n\r\n const el: Element = event.target as Element || event.srcElement;\r\n const position: ClientRect = el.getBoundingClientRect();\r\n let posLeft: number = this.tooltipData.posLeft;\r\n let posTop: number = this.tooltipData.posTop;\r\n\r\n if (el.tagName === 'g') {\r\n posLeft = position.left + (position.width / 2);\r\n posTop = position.top + position.height;\r\n }\r\n\r\n this.tooltipData = {\r\n posLeft: posLeft,\r\n posTop: posTop,\r\n content: this.getKeyActionContent(keyAction),\r\n show: true\r\n };\r\n }\r\n\r\n hideTooltip() {\r\n this.tooltipData.show = false;\r\n }\r\n\r\n hidePopover(): void {\r\n this.popoverShown = false;\r\n }\r\n\r\n selectLayer(index: number): void {\r\n this.currentLayer = index;\r\n }\r\n\r\n getSelectedLayer(): number {\r\n return this.currentLayer;\r\n }\r\n\r\n private getKeyActionContent(keyAction: KeyAction): Observable {\r\n if (keyAction instanceof KeystrokeAction) {\r\n const keystrokeAction: KeystrokeAction = keyAction;\r\n const content: NameValuePair[] = [];\r\n content.push({\r\n name: 'Action type',\r\n value: 'Keystroke'\r\n });\r\n\r\n if (keystrokeAction.hasScancode()) {\r\n let value: string = keystrokeAction.scancode.toString();\r\n const scanCodeTexts: string = (this.mapper.scanCodeToText(keystrokeAction.scancode) || []).join(', ');\r\n if (scanCodeTexts.length > 0) {\r\n value += ' (' + scanCodeTexts + ')';\r\n }\r\n content.push({\r\n name: 'Scancode',\r\n value\r\n });\r\n }\r\n\r\n if (keystrokeAction.hasActiveModifier()) {\r\n content.push({\r\n name: 'Modifiers',\r\n value: keystrokeAction.getModifierList().join(', ')\r\n });\r\n }\r\n\r\n if (keystrokeAction.hasLongPressAction()) {\r\n content.push({\r\n name: 'Long press',\r\n value: LongPressAction[keystrokeAction.longPressAction]\r\n });\r\n }\r\n return Observable.of(content);\r\n } else if (keyAction instanceof MouseAction) {\r\n const mouseAction: MouseAction = keyAction;\r\n const content: NameValuePair[] =\r\n [\r\n {\r\n name: 'Action type',\r\n value: 'Mouse'\r\n },\r\n {\r\n name: 'Action',\r\n value: camelCaseToSentence(MouseActionParam[mouseAction.mouseAction])\r\n }\r\n ];\r\n return Observable.of(content);\r\n } else if (keyAction instanceof PlayMacroAction) {\r\n const playMacroAction: PlayMacroAction = keyAction;\r\n return this.store\r\n .select(appState => appState.userConfiguration.macros)\r\n .map(macroState => macroState.find(macro => {\r\n return macro.id === playMacroAction.macroId;\r\n }).name)\r\n .map(macroName => {\r\n const content: NameValuePair[] = [\r\n {\r\n name: 'Action type',\r\n value: 'Play macro'\r\n },\r\n {\r\n name: 'Macro name',\r\n value: macroName\r\n }\r\n ];\r\n return content;\r\n });\r\n } else if (keyAction instanceof SwitchKeymapAction) {\r\n const switchKeymapAction: SwitchKeymapAction = keyAction;\r\n return this.store\r\n .select(appState => appState.userConfiguration.keymaps)\r\n .map(keymaps => keymaps.find(keymap => keymap.abbreviation === switchKeymapAction.keymapAbbreviation).name)\r\n .map(keymapName => {\r\n const content: NameValuePair[] = [\r\n {\r\n name: 'Action type',\r\n value: 'Switch keymap'\r\n },\r\n {\r\n name: 'Keymap',\r\n value: keymapName\r\n }\r\n ];\r\n return content;\r\n });\r\n } else if (keyAction instanceof SwitchLayerAction) {\r\n const switchLayerAction: SwitchLayerAction = keyAction;\r\n const content: NameValuePair[] =\r\n [\r\n {\r\n name: 'Action type',\r\n value: 'Switch layer'\r\n },\r\n {\r\n name: 'Layer',\r\n value: capitalizeFirstLetter(LayerName[switchLayerAction.layer])\r\n },\r\n {\r\n name: 'Toogle',\r\n value: switchLayerAction.isLayerToggleable ? 'On' : 'Off'\r\n }\r\n ];\r\n return Observable.of(content);\r\n }\r\n\r\n return Observable.of([]);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/components/svg/wrap/svg-keyboard-wrap.component.ts","import { assertUInt8 } from '../assert';\r\nimport { UhkBuffer } from '../UhkBuffer';\r\n\r\nexport class ModuleConfiguration {\r\n\r\n /*\r\n * module id enumeration is a separate story\r\n */\r\n\r\n @assertUInt8\r\n id: number;\r\n\r\n @assertUInt8\r\n initialPointerSpeed: number;\r\n\r\n @assertUInt8\r\n pointerAcceleration: number;\r\n\r\n @assertUInt8\r\n maxPointerSpeed: number;\r\n\r\n fromJsonObject(jsonObject: any): ModuleConfiguration {\r\n this.id = jsonObject.id;\r\n this.initialPointerSpeed = jsonObject.initialPointerSpeed;\r\n this.pointerAcceleration = jsonObject.pointerAcceleration;\r\n this.maxPointerSpeed = jsonObject.maxPointerSpeed;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): ModuleConfiguration {\r\n this.id = buffer.readUInt8();\r\n this.initialPointerSpeed = buffer.readUInt8();\r\n this.pointerAcceleration = buffer.readUInt8();\r\n this.maxPointerSpeed = buffer.readUInt8();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n id: this.id,\r\n initialPointerSpeed: this.initialPointerSpeed,\r\n pointerAcceleration: this.pointerAcceleration,\r\n maxPointerSpeed: this.maxPointerSpeed\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeUInt8(this.id);\r\n buffer.writeUInt8(this.initialPointerSpeed);\r\n buffer.writeUInt8(this.pointerAcceleration);\r\n buffer.writeUInt8(this.maxPointerSpeed);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/ModuleConfiguration.ts","import { assertEnum, assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { KeyModifiers } from '../KeyModifiers';\r\nimport { LongPressAction } from '../LongPressAction';\r\nimport { KeyAction, KeyActionId, keyActionType } from './KeyAction';\r\n\r\nexport enum KeystrokeActionFlag {\r\n scancode = 1 << 0,\r\n modifierMask = 1 << 1,\r\n longPressAction = 1 << 2\r\n}\r\n\r\ninterface JsonObjectKeystrokeAction {\r\n keyActionType: string;\r\n scancode?: number;\r\n modifierMask?: number;\r\n longPressAction?: string;\r\n}\r\n\r\nconst MODIFIERS = ['LCtrl', 'LShift', 'LAlt', 'LSuper', 'RCtrl', 'RShift', 'RAlt', 'RSuper'];\r\n\r\nexport class KeystrokeAction extends KeyAction {\r\n\r\n @assertUInt8\r\n scancode: number;\r\n\r\n @assertUInt8\r\n modifierMask: number;\r\n\r\n @assertEnum(LongPressAction)\r\n longPressAction: LongPressAction;\r\n\r\n constructor(other?: KeystrokeAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.scancode = other.scancode;\r\n this.modifierMask = other.modifierMask;\r\n this.longPressAction = other.longPressAction;\r\n }\r\n\r\n fromJsonObject(jsonObject: JsonObjectKeystrokeAction): KeystrokeAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.scancode = jsonObject.scancode;\r\n this.modifierMask = jsonObject.modifierMask;\r\n this.longPressAction = LongPressAction[jsonObject.longPressAction];\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): KeystrokeAction {\r\n let keyActionId: KeyActionId = this.readAndAssertKeyActionId(buffer);\r\n let flags: number = keyActionId - KeyActionId.KeystrokeAction;\r\n if (flags & KeystrokeActionFlag.scancode) {\r\n this.scancode = buffer.readUInt8();\r\n }\r\n if (flags & KeystrokeActionFlag.modifierMask) {\r\n this.modifierMask = buffer.readUInt8();\r\n }\r\n if (flags & KeystrokeActionFlag.longPressAction) {\r\n this.longPressAction = buffer.readUInt8();\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(): JsonObjectKeystrokeAction {\r\n let jsonObject: JsonObjectKeystrokeAction = {\r\n keyActionType: keyActionType.KeystrokeAction\r\n };\r\n\r\n if (this.hasScancode()) {\r\n jsonObject.scancode = this.scancode;\r\n }\r\n\r\n if (this.hasActiveModifier()) {\r\n jsonObject.modifierMask = this.modifierMask;\r\n }\r\n\r\n if (this.hasLongPressAction()) {\r\n jsonObject.longPressAction = LongPressAction[this.longPressAction];\r\n }\r\n\r\n return jsonObject;\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n let flags = 0;\r\n let bufferData: number[] = [];\r\n\r\n if (this.hasScancode()) {\r\n flags |= KeystrokeActionFlag.scancode;\r\n bufferData.push(this.scancode);\r\n }\r\n\r\n if (this.hasActiveModifier()) {\r\n flags |= KeystrokeActionFlag.modifierMask;\r\n bufferData.push(this.modifierMask);\r\n }\r\n\r\n if (this.hasLongPressAction()) {\r\n flags |= KeystrokeActionFlag.longPressAction;\r\n bufferData.push(this.longPressAction);\r\n }\r\n\r\n buffer.writeUInt8(KeyActionId.KeystrokeAction + flags);\r\n for (let i = 0; i < bufferData.length; ++i) {\r\n buffer.writeUInt8(bufferData[i]);\r\n }\r\n }\r\n\r\n toString(): string {\r\n let properties: string[] = [];\r\n if (this.hasScancode()) {\r\n properties.push(`scancode=\"${this.scancode}\"`);\r\n }\r\n if (this.hasActiveModifier()) {\r\n properties.push(`modifierMask=\"${this.modifierMask}\"`);\r\n }\r\n if (this.hasLongPressAction()) {\r\n properties.push(`longPressAction=\"${this.longPressAction}\"`);\r\n }\r\n\r\n return ``;\r\n }\r\n\r\n isActive(modifier: KeyModifiers): boolean {\r\n return (this.modifierMask & modifier) > 0;\r\n }\r\n\r\n hasActiveModifier(): boolean {\r\n return this.modifierMask > 0;\r\n }\r\n\r\n hasLongPressAction(): boolean {\r\n return this.longPressAction !== undefined;\r\n }\r\n\r\n hasScancode(): boolean {\r\n return !!this.scancode;\r\n }\r\n\r\n hasOnlyOneActiveModifier(): boolean {\r\n return this.modifierMask !== 0 && !(this.modifierMask & this.modifierMask - 1);\r\n }\r\n\r\n getModifierList(): string[] {\r\n let modifierList: string[] = [];\r\n let modifierMask = this.modifierMask;\r\n for (let i = 0; modifierMask !== 0; ++i, modifierMask >>= 1) {\r\n if (modifierMask & 1) {\r\n modifierList.push(MODIFIERS[i]);\r\n }\r\n }\r\n return modifierList;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/KeystrokeAction.ts","import { assertEnum } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { KeyAction, KeyActionId, keyActionType } from './KeyAction';\r\n\r\nexport enum MouseActionParam {\r\n leftClick,\r\n middleClick,\r\n rightClick,\r\n moveUp,\r\n moveDown,\r\n moveLeft,\r\n moveRight,\r\n scrollUp,\r\n scrollDown,\r\n scrollLeft,\r\n scrollRight,\r\n accelerate,\r\n decelerate\r\n}\r\n\r\nexport class MouseAction extends KeyAction {\r\n\r\n @assertEnum(MouseActionParam)\r\n mouseAction: MouseActionParam;\r\n\r\n constructor(other?: MouseAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.mouseAction = other.mouseAction;\r\n }\r\n\r\n fromJsonObject(jsObject: any): MouseAction {\r\n this.assertKeyActionType(jsObject);\r\n this.mouseAction = MouseActionParam[jsObject.mouseAction];\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): MouseAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n this.mouseAction = buffer.readUInt8();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.MouseAction,\r\n mouseAction: MouseActionParam[this.mouseAction]\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.MouseAction);\r\n buffer.writeUInt8(this.mouseAction);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/MouseAction.ts","import { UhkBuffer } from '../../UhkBuffer';\r\nimport { KeyAction, KeyActionId, keyActionType } from './KeyAction';\r\n\r\n/**\r\n * NoneAction is only intended for binary serialization of undefined key actions\r\n * DO NOT use it as a real KeyAction\r\n *\r\n */\r\n\r\nexport class NoneAction extends KeyAction {\r\n\r\n fromJsonObject(jsonObject: any): NoneAction {\r\n this.assertKeyActionType(jsonObject);\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): NoneAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.NoneAction\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.NoneAction);\r\n }\r\n\r\n toString(): string {\r\n return '';\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/NoneAction.ts","import { assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { Macro } from '../Macro';\r\nimport { KeyAction, KeyActionId, keyActionType } from './KeyAction';\r\n\r\nexport class PlayMacroAction extends KeyAction {\r\n\r\n @assertUInt8\r\n macroId: number;\r\n\r\n constructor(parameter?: PlayMacroAction | Macro) {\r\n super();\r\n if (!parameter) {\r\n return;\r\n }\r\n if (parameter instanceof PlayMacroAction) {\r\n this.macroId = parameter.macroId;\r\n } else {\r\n this.macroId = parameter.id;\r\n }\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros: Macro[]): PlayMacroAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.macroId = macros[jsonObject.macroIndex].id;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros: Macro[]): PlayMacroAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n const macroIndex = buffer.readUInt8();\r\n this.macroId = macros[macroIndex].id;\r\n return this;\r\n }\r\n\r\n toJsonObject(macros: Macro[]): any {\r\n return {\r\n keyActionType: keyActionType.PlayMacroAction,\r\n macroIndex: macros.findIndex(macro => macro.id === this.macroId)\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros: Macro[]) {\r\n buffer.writeUInt8(KeyActionId.PlayMacroAction);\r\n buffer.writeUInt8(macros.findIndex(macro => macro.id === this.macroId));\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/PlayMacroAction.ts","import { UhkBuffer } from '../../UhkBuffer';\r\nimport { Keymap } from '../Keymap';\r\nimport { KeyAction, KeyActionId, keyActionType } from './KeyAction';\r\n\r\nexport class SwitchKeymapAction extends KeyAction {\r\n\r\n keymapAbbreviation: string;\r\n\r\n constructor(parameter?: SwitchKeymapAction | Keymap | string) {\r\n super();\r\n if (!parameter) {\r\n return;\r\n }\r\n if (parameter instanceof SwitchKeymapAction) {\r\n this.keymapAbbreviation = parameter.keymapAbbreviation;\r\n } else if (parameter instanceof Keymap) {\r\n this.keymapAbbreviation = parameter.abbreviation;\r\n } else {\r\n this.keymapAbbreviation = parameter;\r\n }\r\n }\r\n\r\n fromJsonObject(jsonObject: any): SwitchKeymapAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.keymapAbbreviation = jsonObject.keymapAbbreviation;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): SwitchKeymapAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n this.keymapAbbreviation = buffer.readString();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.SwitchKeymapAction,\r\n keymapAbbreviation: this.keymapAbbreviation\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.SwitchKeymapAction);\r\n buffer.writeString(this.keymapAbbreviation);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): KeyAction {\r\n if (this.keymapAbbreviation !== oldAbbr) {\r\n return this;\r\n }\r\n return new SwitchKeymapAction(newAbbr);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/SwitchKeymapAction.ts","import { assertEnum } from '../../assert';\r\nimport { UhkBuffer } from '../../UhkBuffer';\r\nimport { KeyAction, KeyActionId, keyActionType } from './KeyAction';\r\n\r\nexport enum LayerName {\r\n mod,\r\n fn,\r\n mouse\r\n}\r\n\r\nexport class SwitchLayerAction extends KeyAction {\r\n\r\n isLayerToggleable: boolean;\r\n\r\n @assertEnum(LayerName)\r\n layer: LayerName;\r\n\r\n constructor(other?: SwitchLayerAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.isLayerToggleable = other.isLayerToggleable;\r\n this.layer = other.layer;\r\n }\r\n\r\n fromJsonObject(jsonObject: any): SwitchLayerAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.layer = LayerName[jsonObject.layer];\r\n this.isLayerToggleable = jsonObject.toggle;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): SwitchLayerAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n this.layer = buffer.readUInt8();\r\n this.isLayerToggleable = buffer.readBoolean();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.SwitchLayerAction,\r\n layer: LayerName[this.layer],\r\n toggle: this.isLayerToggleable\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.SwitchLayerAction);\r\n buffer.writeUInt8(this.layer);\r\n buffer.writeBoolean(this.isLayerToggleable);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/SwitchLayerAction.ts","import { UhkBuffer } from '../../UhkBuffer';\r\nimport {\r\n KeyAction,\r\n KeyActionId,\r\n KeystrokeAction,\r\n MouseAction,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction,\r\n keyActionType\r\n} from './index';\r\n\r\nimport { Keymap } from '../Keymap';\r\nimport { Macro } from '../Macro';\r\n\r\nexport class Helper {\r\n\r\n static createKeyAction(source: KeyAction | UhkBuffer | any, macros?: Macro[]): KeyAction {\r\n if (source instanceof KeyAction) {\r\n return Helper.fromKeyAction(source);\r\n } else if (source instanceof UhkBuffer) {\r\n return Helper.fromUhkBuffer(source, macros);\r\n } else {\r\n return Helper.fromJSONObject(source, macros);\r\n }\r\n }\r\n\r\n private static fromUhkBuffer(buffer: UhkBuffer, macros: Macro[]): KeyAction {\r\n let keyActionFirstByte = buffer.readUInt8();\r\n buffer.backtrack();\r\n\r\n if (keyActionFirstByte >= KeyActionId.KeystrokeAction && keyActionFirstByte < KeyActionId.LastKeystrokeAction) {\r\n return new KeystrokeAction().fromBinary(buffer);\r\n }\r\n\r\n switch (keyActionFirstByte) {\r\n case KeyActionId.NoneAction:\r\n buffer.readUInt8(); // Read type just to skip it\r\n return undefined;\r\n case KeyActionId.SwitchLayerAction:\r\n return new SwitchLayerAction().fromBinary(buffer);\r\n case KeyActionId.SwitchKeymapAction:\r\n return new SwitchKeymapAction().fromBinary(buffer);\r\n case KeyActionId.MouseAction:\r\n return new MouseAction().fromBinary(buffer);\r\n case KeyActionId.PlayMacroAction:\r\n return new PlayMacroAction().fromBinary(buffer, macros);\r\n default:\r\n throw `Invalid KeyAction first byte: ${keyActionFirstByte}`;\r\n }\r\n }\r\n\r\n private static fromKeyAction(keyAction: KeyAction): KeyAction {\r\n let newKeyAction: KeyAction;\r\n if (keyAction instanceof KeystrokeAction) {\r\n newKeyAction = new KeystrokeAction(keyAction);\r\n } else if (keyAction instanceof SwitchLayerAction) {\r\n newKeyAction = new SwitchLayerAction(keyAction);\r\n } else if (keyAction instanceof SwitchKeymapAction) {\r\n newKeyAction = new SwitchKeymapAction(keyAction);\r\n } else if (keyAction instanceof MouseAction) {\r\n newKeyAction = new MouseAction(keyAction);\r\n } else if (keyAction instanceof PlayMacroAction) {\r\n newKeyAction = new PlayMacroAction(keyAction);\r\n }\r\n return newKeyAction;\r\n }\r\n\r\n private static fromJSONObject(keyAction: any, macros: Macro[]): KeyAction {\r\n if (!keyAction) {\r\n return;\r\n }\r\n\r\n switch (keyAction.keyActionType) {\r\n case keyActionType.KeystrokeAction:\r\n return new KeystrokeAction().fromJsonObject(keyAction);\r\n case keyActionType.SwitchLayerAction:\r\n return new SwitchLayerAction().fromJsonObject(keyAction);\r\n case keyActionType.SwitchKeymapAction:\r\n return new SwitchKeymapAction().fromJsonObject(keyAction);\r\n case keyActionType.MouseAction:\r\n return new MouseAction().fromJsonObject(keyAction);\r\n case keyActionType.PlayMacroAction:\r\n return new PlayMacroAction().fromJsonObject(keyAction, macros);\r\n default:\r\n throw `Invalid KeyAction.keyActionType: \"${keyAction.keyActionType}\"`;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/helper.ts","import { KeyAction, KeystrokeAction, keyActionType } from '../key-action';\r\nimport { DelayMacroAction } from './DelayMacroAction';\r\nimport { KeyMacroAction } from './KeyMacroAction';\r\nimport { MacroAction, MacroSubAction, macroActionType } from './MacroAction';\r\nimport { MouseButtonMacroAction } from './MouseButtonMacroAction';\r\nimport { MoveMouseMacroAction } from './MoveMouseMacroAction';\r\nimport { ScrollMouseMacroAction } from './ScrollMouseMacroAction';\r\nimport { TextMacroAction } from './TextMacroAction';\r\n\r\ninterface JsObjectEditableMacroAction {\r\n macroActionType: string;\r\n action?: string;\r\n scancode?: number;\r\n modifierMask?: number;\r\n mouseButtonsMask?: number;\r\n x?: number;\r\n y?: number;\r\n delay?: number;\r\n text?: string;\r\n}\r\n\r\nexport class EditableMacroAction {\r\n macroActionType: string;\r\n action: MacroSubAction;\r\n // Key macro action properties\r\n scancode: number;\r\n modifierMask: number;\r\n // Mouse macro action properties\r\n mouseButtonsMask: number;\r\n moveX: number;\r\n moveY: number;\r\n scrollX: number;\r\n scrollY: number;\r\n // Delay macro action properties\r\n delay: number;\r\n // Text macro action properties\r\n text: string;\r\n\r\n constructor(jsObject?: JsObjectEditableMacroAction) {\r\n if (!jsObject) {\r\n return;\r\n }\r\n\r\n this.macroActionType = jsObject.macroActionType;\r\n\r\n switch (this.macroActionType) {\r\n case macroActionType.KeyMacroAction:\r\n this.action = MacroSubAction[jsObject.action];\r\n this.scancode = jsObject.scancode;\r\n this.modifierMask = jsObject.modifierMask;\r\n break;\r\n case macroActionType.MouseButtonMacroAction:\r\n this.action = MacroSubAction[jsObject.action];\r\n this.mouseButtonsMask = jsObject.mouseButtonsMask;\r\n break;\r\n case macroActionType.MoveMouseMacroAction:\r\n this.moveX = jsObject.x;\r\n this.moveY = jsObject.y;\r\n break;\r\n case macroActionType.ScrollMouseMacroAction:\r\n this.scrollX = jsObject.x;\r\n this.scrollY = jsObject.y;\r\n break;\r\n case macroActionType.TextMacroAction:\r\n this.text = jsObject.text;\r\n break;\r\n case macroActionType.DelayMacroAction:\r\n this.delay = jsObject.delay;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n toJsObject(): any {\r\n return {\r\n macroActionType: this.macroActionType,\r\n action: this.action,\r\n delay: this.delay,\r\n text: this.text,\r\n scancode: this.scancode,\r\n modifierMask: this.modifierMask,\r\n mouseButtonsMask: this.mouseButtonsMask,\r\n mouseMove: {\r\n x: this.moveX,\r\n y: this.moveY\r\n },\r\n mouseScroll: {\r\n x: this.scrollX,\r\n y: this.scrollY\r\n }\r\n };\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): void {\r\n let data = keyAction.toJsonObject();\r\n this.scancode = data.scancode;\r\n this.modifierMask = data.modifierMask;\r\n }\r\n\r\n toKeystrokeAction(): KeystrokeAction {\r\n let data = this.toJsObject();\r\n data.keyActionType = keyActionType.KeystrokeAction;\r\n return (new KeystrokeAction().fromJsonObject(data));\r\n }\r\n\r\n setMouseButtons(buttonStates: boolean[]): void {\r\n let bitmask = 0;\r\n for (let i = 0; i < buttonStates.length; i++) {\r\n bitmask |= Number(buttonStates[i]) << i;\r\n }\r\n this.mouseButtonsMask = bitmask;\r\n }\r\n\r\n getMouseButtons(): boolean[] {\r\n let enabledMouseButtons: boolean[] = [];\r\n for (let bitmask = this.mouseButtonsMask; bitmask; bitmask >>>= 1) {\r\n enabledMouseButtons.push(Boolean(bitmask & 1));\r\n }\r\n return enabledMouseButtons;\r\n }\r\n\r\n toClass(): MacroAction {\r\n switch (this.macroActionType) {\r\n // Delay action\r\n case macroActionType.DelayMacroAction:\r\n return new DelayMacroAction().fromJsonObject({\r\n macroActionType: this.macroActionType,\r\n delay: this.delay\r\n });\r\n // Text action\r\n case macroActionType.TextMacroAction:\r\n return new TextMacroAction().fromJsonObject({\r\n macroActionType: this.macroActionType,\r\n text: this.text\r\n });\r\n // Keypress action\r\n case macroActionType.KeyMacroAction:\r\n return new KeyMacroAction().fromJsonObject({\r\n macroActionType: this.macroActionType,\r\n action: MacroSubAction[this.action],\r\n scancode: this.scancode,\r\n modifierMask: this.modifierMask\r\n });\r\n // Mouse actions\r\n case macroActionType.MouseButtonMacroAction:\r\n return new MouseButtonMacroAction().fromJsonObject({\r\n macroActionType: this.macroActionType,\r\n action: MacroSubAction[this.action],\r\n mouseButtonsMask: this.mouseButtonsMask\r\n });\r\n case macroActionType.MoveMouseMacroAction:\r\n return new MoveMouseMacroAction().fromJsonObject({\r\n macroActionType: this.macroActionType,\r\n x: this.moveX,\r\n y: this.moveY\r\n });\r\n case macroActionType.ScrollMouseMacroAction:\r\n return new ScrollMouseMacroAction().fromJsonObject({\r\n macroActionType: this.macroActionType,\r\n x: this.scrollX,\r\n y: this.scrollY\r\n });\r\n default:\r\n throw new Error('Macro action type is missing or not implemented.');\r\n }\r\n }\r\n\r\n isKeyAction(): boolean {\r\n return this.macroActionType === macroActionType.KeyMacroAction;\r\n }\r\n\r\n isMouseButtonAction(): boolean {\r\n return this.macroActionType === macroActionType.MouseButtonMacroAction;\r\n }\r\n\r\n isOnlyHoldAction(): boolean {\r\n return this.action === MacroSubAction.hold;\r\n }\r\n\r\n isOnlyPressAction(): boolean {\r\n return this.action === MacroSubAction.press;\r\n }\r\n\r\n isOnlyReleaseAction(): boolean {\r\n return this.action === MacroSubAction.release;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/EditableMacroAction.ts","import { UhkBuffer } from '../../UhkBuffer';\r\nimport {\r\n DelayMacroAction,\r\n KeyMacroAction,\r\n MacroAction,\r\n MacroActionId,\r\n MouseButtonMacroAction,\r\n MoveMouseMacroAction,\r\n ScrollMouseMacroAction,\r\n TextMacroAction,\r\n macroActionType\r\n} from './index';\r\n\r\nexport class Helper {\r\n\r\n static createMacroAction(source: MacroAction | UhkBuffer | any): MacroAction {\r\n if (source instanceof MacroAction) {\r\n return Helper.fromMacroAction(source);\r\n } else if (source instanceof UhkBuffer) {\r\n return Helper.fromUhkBuffer(source);\r\n } else {\r\n return Helper.fromJSONObject(source);\r\n }\r\n }\r\n\r\n private static fromUhkBuffer(buffer: UhkBuffer): MacroAction {\r\n let macroActionFirstByte = buffer.readUInt8();\r\n buffer.backtrack();\r\n\r\n if (macroActionFirstByte >= MacroActionId.KeyMacroAction && macroActionFirstByte <= MacroActionId.LastKeyMacroAction) {\r\n return new KeyMacroAction().fromBinary(buffer);\r\n } else if (\r\n macroActionFirstByte >= MacroActionId.MouseButtonMacroAction &&\r\n macroActionFirstByte <= MacroActionId.LastMouseButtonMacroAction\r\n ) {\r\n return new MouseButtonMacroAction().fromBinary(buffer);\r\n }\r\n switch (macroActionFirstByte) {\r\n case MacroActionId.MoveMouseMacroAction:\r\n return new MoveMouseMacroAction().fromBinary(buffer);\r\n case MacroActionId.ScrollMouseMacroAction:\r\n return new ScrollMouseMacroAction().fromBinary(buffer);\r\n case MacroActionId.DelayMacroAction:\r\n return new DelayMacroAction().fromBinary(buffer);\r\n case MacroActionId.TextMacroAction:\r\n return new TextMacroAction().fromBinary(buffer);\r\n default:\r\n throw `Invalid MacroAction first byte: ${macroActionFirstByte}`;\r\n }\r\n }\r\n\r\n private static fromMacroAction(macroAction: MacroAction): MacroAction {\r\n let newMacroAction: MacroAction;\r\n if (macroAction instanceof KeyMacroAction) {\r\n newMacroAction = new KeyMacroAction(macroAction);\r\n } else if (macroAction instanceof MouseButtonMacroAction) {\r\n newMacroAction = new MouseButtonMacroAction(macroAction);\r\n } else if (macroAction instanceof MoveMouseMacroAction) {\r\n newMacroAction = new MoveMouseMacroAction(macroAction);\r\n } else if (macroAction instanceof ScrollMouseMacroAction) {\r\n newMacroAction = new ScrollMouseMacroAction(macroAction);\r\n } else if (macroAction instanceof DelayMacroAction) {\r\n newMacroAction = new DelayMacroAction(macroAction);\r\n } else if (macroAction instanceof TextMacroAction) {\r\n newMacroAction = new TextMacroAction(macroAction);\r\n }\r\n return newMacroAction;\r\n }\r\n\r\n private static fromJSONObject(macroAction: any): MacroAction {\r\n switch (macroAction.macroActionType) {\r\n case macroActionType.KeyMacroAction:\r\n return new KeyMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.MouseButtonMacroAction:\r\n return new MouseButtonMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.MoveMouseMacroAction:\r\n return new MoveMouseMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.ScrollMouseMacroAction:\r\n return new ScrollMouseMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.DelayMacroAction:\r\n return new DelayMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.TextMacroAction:\r\n return new TextMacroAction().fromJsonObject(macroAction);\r\n default:\r\n throw `Invalid MacroAction.macroActionType: \"${macroAction.macroActionType}\"`;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/helper.ts","import { Directive, ElementRef, HostListener, Renderer } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cancelable]'\r\n})\r\nexport class CancelableDirective {\r\n\r\n private originalValue: string;\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer) { }\r\n\r\n @HostListener('focus') onFocus(): void {\r\n this.originalValue = this.elementRef.nativeElement.value;\r\n }\r\n\r\n @HostListener('keyup.escape') onEscape(): void {\r\n this.renderer.setElementProperty(this.elementRef.nativeElement, 'value', this.originalValue);\r\n this.renderer.invokeElementMethod(this.elementRef.nativeElement, 'blur');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/directives/cancelable/cancelable.directive.ts","export { CancelableDirective } from './cancelable.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/directives/cancelable/index.ts","export * from './cancelable';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/directives/index.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { KeyAction } from '../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../config-serializer/config-items/Keymap';\r\nimport { Macro } from '../../config-serializer/config-items/Macro';\r\n\r\nexport namespace KeymapActions {\r\n export const PREFIX = '[Keymap] ';\r\n export const ADD = KeymapActions.PREFIX + 'Add keymap';\r\n export const DUPLICATE = KeymapActions.PREFIX + 'Duplicate keymap';\r\n export const EDIT_ABBR = KeymapActions.PREFIX + 'Edit keymap abbreviation';\r\n export const EDIT_NAME = KeymapActions.PREFIX + 'Edit keymap title';\r\n export const SAVE_KEY = KeymapActions.PREFIX + 'Save key action';\r\n export const SET_DEFAULT = KeymapActions.PREFIX + 'Set default option';\r\n export const REMOVE = KeymapActions.PREFIX + 'Remove keymap';\r\n export const CHECK_MACRO = KeymapActions.PREFIX + 'Check deleted macro';\r\n\r\n export function addKeymap(item: Keymap): Action {\r\n return {\r\n type: KeymapActions.ADD,\r\n payload: item\r\n };\r\n }\r\n\r\n export function setDefault(abbr: string): Action {\r\n return {\r\n type: KeymapActions.SET_DEFAULT,\r\n payload: abbr\r\n };\r\n }\r\n\r\n export function removeKeymap(abbr: string): Action {\r\n return {\r\n type: KeymapActions.REMOVE,\r\n payload: abbr\r\n };\r\n }\r\n\r\n export function duplicateKeymap(keymap: Keymap): Action {\r\n return {\r\n type: KeymapActions.DUPLICATE,\r\n payload: keymap\r\n };\r\n }\r\n\r\n export function editKeymapName(abbr: string, name: string): Action {\r\n return {\r\n type: KeymapActions.EDIT_NAME,\r\n payload: {\r\n abbr: abbr,\r\n name: name\r\n }\r\n };\r\n }\r\n\r\n export function editKeymapAbbr(abbr: string, newAbbr: string): Action {\r\n return {\r\n type: KeymapActions.EDIT_ABBR,\r\n payload: {\r\n abbr: abbr,\r\n newAbbr: newAbbr\r\n }\r\n };\r\n }\r\n\r\n export function saveKey(keymap: Keymap, layer: number, module: number, key: number, keyAction: KeyAction): Action {\r\n return {\r\n type: KeymapActions.SAVE_KEY,\r\n payload: {\r\n keymap,\r\n layer,\r\n module,\r\n key,\r\n keyAction\r\n }\r\n };\r\n }\r\n\r\n export function checkMacro(macro: Macro): Action {\r\n return {\r\n type: KeymapActions.CHECK_MACRO,\r\n payload: macro\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/actions/keymap.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { Macro } from '../../config-serializer/config-items/Macro';\r\nimport { MacroAction } from '../../config-serializer/config-items/macro-action';\r\n\r\nexport namespace MacroActions {\r\n export const PREFIX = '[Macro] ';\r\n\r\n export const DUPLICATE = MacroActions.PREFIX + 'Duplicate macro';\r\n export const EDIT_NAME = MacroActions.PREFIX + 'Edit macro title';\r\n export const REMOVE = MacroActions.PREFIX + 'Remove macro';\r\n export const ADD = MacroActions.PREFIX + 'Add macro';\r\n\r\n export const ADD_ACTION = MacroActions.PREFIX + 'Add macro action';\r\n export const SAVE_ACTION = MacroActions.PREFIX + 'Save macro action';\r\n export const DELETE_ACTION = MacroActions.PREFIX + 'Delete macro action';\r\n export const REORDER_ACTION = MacroActions.PREFIX + 'Reorder macro action';\r\n\r\n export function addMacro(): Action {\r\n return {\r\n type: MacroActions.ADD\r\n };\r\n }\r\n\r\n export function removeMacro(macroId: number): Action {\r\n return {\r\n type: MacroActions.REMOVE,\r\n payload: macroId\r\n };\r\n }\r\n\r\n export function duplicateMacro(macro: Macro): Action {\r\n return {\r\n type: MacroActions.DUPLICATE,\r\n payload: macro\r\n };\r\n }\r\n\r\n export function editMacroName(id: number, name: string): Action {\r\n return {\r\n type: MacroActions.EDIT_NAME,\r\n payload: {\r\n id: id,\r\n name: name\r\n }\r\n };\r\n }\r\n\r\n export function addMacroAction(id: number, action: MacroAction): Action {\r\n return {\r\n type: MacroActions.ADD_ACTION,\r\n payload: {\r\n id: id,\r\n action: action\r\n }\r\n };\r\n }\r\n\r\n export function saveMacroAction(id: number, index: number, action: MacroAction): Action {\r\n return {\r\n type: MacroActions.SAVE_ACTION,\r\n payload: {\r\n id: id,\r\n index: index,\r\n action: action\r\n }\r\n };\r\n }\r\n\r\n export function deleteMacroAction(id: number, index: number, action: MacroAction): Action {\r\n return {\r\n type: MacroActions.DELETE_ACTION,\r\n payload: {\r\n id: id,\r\n index: index,\r\n action: action\r\n }\r\n };\r\n }\r\n\r\n export function reorderMacroAction(id: number, oldIndex: number, newIndex: number): Action {\r\n return {\r\n type: MacroActions.REORDER_ACTION,\r\n payload: {\r\n id: id,\r\n oldIndex: oldIndex,\r\n newIndex: newIndex\r\n }\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/actions/macro.ts","export * from './keymap';\r\nexport * from './macro';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/effects/index.ts","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Actions, Effect } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/withLatestFrom';\r\n\r\nimport { KeymapActions } from '../actions';\r\nimport { AppState } from '../index';\r\n\r\nimport { Keymap } from '../../config-serializer/config-items/Keymap';\r\n\r\n@Injectable()\r\nexport class KeymapEffects {\r\n\r\n @Effect({ dispatch: false }) addOrDuplicate$: any = this.actions$\r\n .ofType(KeymapActions.ADD, KeymapActions.DUPLICATE)\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.keymaps)\r\n .do(keymaps => {\r\n this.router.navigate(['/keymap', keymaps[keymaps.length - 1].abbreviation]);\r\n });\r\n\r\n @Effect({ dispatch: false }) remove$: any = this.actions$\r\n .ofType(KeymapActions.REMOVE)\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.keymaps)\r\n .do(keymaps => {\r\n if (keymaps.length === 0) {\r\n this.router.navigate(['/keymap/add']);\r\n } else {\r\n const favourite: Keymap = keymaps.find(keymap => keymap.isDefault);\r\n this.router.navigate(['/keymap', favourite.abbreviation]);\r\n }\r\n });\r\n\r\n @Effect({ dispatch: false }) editAbbr$: any = this.actions$\r\n .ofType(KeymapActions.EDIT_ABBR)\r\n .map(action => action.payload.newAbbr)\r\n .do(newAbbr => {\r\n this.router.navigate(['/keymap', newAbbr]);\r\n });\r\n\r\n constructor(private actions$: Actions, private router: Router, private store: Store) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/effects/keymap.ts","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Actions, Effect } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/withLatestFrom';\r\n\r\nimport { Macro } from '../../config-serializer/config-items/Macro';\r\n\r\nimport { KeymapActions, MacroActions } from '../actions';\r\nimport { AppState } from '../index';\r\n\r\n@Injectable()\r\nexport class MacroEffects {\r\n\r\n @Effect({dispatch: false}) remove$: any = this.actions$\r\n .ofType(MacroActions.REMOVE)\r\n .map(action => this.store.dispatch(KeymapActions.checkMacro(action.payload)))\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.macros)\r\n .do(macros => {\r\n if (macros.length === 0) {\r\n this.router.navigate(['/macro']);\r\n } else {\r\n this.router.navigate(['/macro', macros[0].id]);\r\n }\r\n });\r\n\r\n @Effect({dispatch: false}) add$: any = this.actions$\r\n .ofType(MacroActions.ADD)\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.macros)\r\n .map(macros => macros[macros.length - 1])\r\n .do(lastMacro => {\r\n this.router.navigate(['/macro', lastMacro.id, 'new']);\r\n });\r\n\r\n constructor(private actions$: Actions, private router: Router, private store: Store) {}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/effects/macro.ts","import userConfigurationReducer, { getUserConfiguration } from './user-configuration';\r\nimport presetReducer from './preset';\r\n\r\nexport { userConfigurationReducer, presetReducer, getUserConfiguration };\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/reducers/index.ts","import { Keymap } from '../../config-serializer/config-items/Keymap';\r\n\r\nconst initialState: Keymap[] = [];\r\n\r\nexport default function(state = initialState): Keymap[] {\r\n return state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/reducers/preset.ts","import { UserConfiguration } from '../../config-serializer/config-items/UserConfiguration';\r\n\r\nexport class Electron {\r\n getConfig(): UserConfiguration {\r\n // TODO implement load logic\r\n return;\r\n }\r\n\r\n /* tslint:disable:no-unused-variable */\r\n saveConfig(config: UserConfiguration): void {\r\n // TODO implement save logic\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/storage/electron.ts","import { Injectable } from '@angular/core';\r\n\r\nimport { Action } from '@ngrx/store';\r\n\r\nimport { Keymap } from '../../config-serializer/config-items/Keymap';\r\nimport { Macro } from '../../config-serializer/config-items/Macro';\r\nimport { UserConfiguration } from '../../config-serializer/config-items/UserConfiguration';\r\n\r\nimport { KeymapActions, MacroActions } from '../actions';\r\nimport { AppState } from '../index';\r\nimport { Electron } from './electron';\r\nimport { Local } from './local';\r\n\r\n@Injectable()\r\nexport class DataStorage {\r\n\r\n private _environment: Local | Electron;\r\n private defaultUserConfiguration: UserConfiguration;\r\n private uhkPresets: Keymap[];\r\n\r\n constructor() {\r\n this.initUHKJson();\r\n this.detectEnvironment();\r\n }\r\n\r\n initialState(): AppState {\r\n const config: UserConfiguration = this.getConfiguration();\r\n return {\r\n userConfiguration: config,\r\n presetKeymaps: this.uhkPresets\r\n };\r\n }\r\n\r\n detectEnvironment(): void {\r\n // Electron\r\n // TODO check if we can remove when electron will be implemented (maybe use process.versions['electron'])\r\n if (typeof window !== 'undefined' && (window).process && (window).process.type === 'renderer') {\r\n this._environment = new Electron();\r\n }\r\n // Local storage\r\n else {\r\n this._environment = new Local(this.defaultUserConfiguration.dataModelVersion);\r\n }\r\n }\r\n\r\n // TODO: Add type for state\r\n saveState(reducer: any): (state: any, action: Action) => AppState {\r\n return (state: any, action: Action) => {\r\n const nextState = reducer(state, action);\r\n this._environment.saveConfig(nextState);\r\n return nextState;\r\n };\r\n }\r\n\r\n initUHKJson() {\r\n this.defaultUserConfiguration = new UserConfiguration()\r\n .fromJsonObject(require('json-loader!../../config-serializer/user-config.json'));\r\n this.uhkPresets = (require('json-loader!../../config-serializer/preset-keymaps.json'))\r\n .map(keymap => new Keymap().fromJsonObject(keymap));\r\n }\r\n\r\n getConfiguration(): UserConfiguration {\r\n let config: UserConfiguration = this._environment.getConfig();\r\n if (!config) {\r\n config = this.defaultUserConfiguration;\r\n }\r\n return config;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/storage/index.ts","import { UserConfiguration } from '../../config-serializer/config-items/UserConfiguration';\r\n\r\nexport class Local {\r\n\r\n constructor(private dataModelVersion: number) { }\r\n\r\n getConfig(): UserConfiguration {\r\n let configJsonString = localStorage.getItem('config');\r\n let config: UserConfiguration;\r\n\r\n if (configJsonString) {\r\n const configJsonObject = JSON.parse(configJsonString);\r\n if (configJsonObject.dataModelVersion === this.dataModelVersion) {\r\n config = new UserConfiguration().fromJsonObject(configJsonObject);\r\n }\r\n }\r\n\r\n return config;\r\n }\r\n\r\n saveConfig(config: UserConfiguration): void {\r\n localStorage.setItem('config', JSON.stringify(config.toJsonObject()));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/store/storage/local.ts","// Source: http://stackoverflow.com/questions/13720256/javascript-regex-camelcase-to-sentence\r\nexport function camelCaseToSentence(camelCasedText: string): string {\r\n return camelCasedText.replace(/^[a-z]|[A-Z]/g, function (v, i) {\r\n return i === 0 ? v.toUpperCase() : ' ' + v.toLowerCase();\r\n });\r\n}\r\n\r\nexport function capitalizeFirstLetter(text: string): string {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/util/index.ts","export * from './keymap.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/components/keymap/index.ts","import { Routes } from '@angular/router';\r\n\r\nimport { KeymapAddComponent } from '../../shared/components/keymap/add/keymap-add.component';\r\nimport { KeymapEditComponent, KeymapEditGuard } from '../../shared/components/keymap/edit';\r\n\r\nexport const keymapRoutes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: '/keymap',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'keymap',\r\n component: KeymapEditComponent,\r\n canActivate: [KeymapEditGuard]\r\n },\r\n {\r\n path: 'keymap/add',\r\n component: KeymapAddComponent\r\n },\r\n {\r\n path: 'keymap/:abbr',\r\n component: KeymapEditComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/components/keymap/keymap.routes.ts","export * from './main-app.component';\r\nexport * from './main-app.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/main-app/index.ts","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'main-app',\r\n template: require('./main-app.component.html'),\r\n styles: [\r\n require('../shared/main-app/main-app.component.scss'),\r\n require('./main-app.component.scss')\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MainAppComponent { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/main-app/main-app.component.ts","import { ModuleWithProviders } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { addOnRoutes } from '../shared/components/add-on';\r\nimport { keymapRoutes } from '../components/keymap';\r\nimport { macroRoutes } from '../shared/components/macro';\r\nimport { settingsRoutes } from '../shared/components/settings';\r\n\r\nconst appRoutes: Routes = [\r\n ...keymapRoutes,\r\n ...macroRoutes,\r\n ...addOnRoutes,\r\n ...settingsRoutes\r\n];\r\n\r\nexport const appRoutingProviders: any[] = [ ];\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, { useHash: true });\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/main-app/main-app.routes.ts","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/util-deprecate/browser.js\n// module id = 1121\n// module chunks = 1","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/util/~/inherits/inherits_browser.js\n// module id = 1122\n// module chunks = 1","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/util/support/isBufferBrowser.js\n// module id = 1123\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/util/util.js\n// module id = 1124\n// module chunks = 1","module.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 1125\n// module chunks = 1","module.exports = {\"svg\":{\"$\":{\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:cc\":\"http://creativecommons.org/ns#\",\"xmlns:rdf\":\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\"xmlns:svg\":\"http://www.w3.org/2000/svg\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:sodipodi\":\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\",\"xmlns:inkscape\":\"http://www.inkscape.org/namespaces/inkscape\",\"version\":\"1.1\",\"width\":\"1024.3346\",\"height\":\"471.36612\",\"viewBox\":\"0 0 1024.3346 471.36612\",\"style\":\"overflow:visible;\",\"id\":\"SvgjsSvg1006\",\"inkscape:version\":\"0.91 r\",\"sodipodi:docname\":\"base-layer.svg\"},\"metadata\":[{\"$\":{\"id\":\"metadata230\"},\"rdf:RDF\":[{\"cc:Work\":[{\"$\":{\"rdf:about\":\"\"},\"dc:format\":[\"image/svg+xml\"],\"dc:type\":[{\"$\":{\"rdf:resource\":\"http://purl.org/dc/dcmitype/StillImage\"}}]}]}]}],\"defs\":[{\"$\":{\"id\":\"defs228\"}}],\"sodipodi:namedview\":[{\"$\":{\"pagecolor\":\"#ffffff\",\"bordercolor\":\"#666666\",\"borderopacity\":\"1\",\"objecttolerance\":\"10\",\"gridtolerance\":\"10\",\"guidetolerance\":\"10\",\"inkscape:pageopacity\":\"0\",\"inkscape:pageshadow\":\"2\",\"inkscape:window-width\":\"1920\",\"inkscape:window-height\":\"1028\",\"id\":\"namedview226\",\"showgrid\":\"false\",\"inkscape:zoom\":\"1.046533\",\"inkscape:cx\":\"461.77814\",\"inkscape:cy\":\"312.8806\",\"inkscape:window-x\":\"0\",\"inkscape:window-y\":\"25\",\"inkscape:window-maximized\":\"1\",\"inkscape:current-layer\":\"left-parts\"}}],\"text\":[{\"$\":{\"x\":\"495.03632\",\"y\":\"20\",\"style\":\"font-size:34px;fill:#000000;font-family:Sans;text-align:center;text-anchor:middle;display:none;\",\"font-family\":\"Helvetica, Arial, sans-serif\",\"id\":\"layer-text\"},\"tspan\":[{\"_\":\"\\r\\n Base layer\\r\\n \",\"$\":{\"x\":\"495.03632\",\"dy\":\"20.8\",\"id\":\"SvgjsTspan1235\"}}]}],\"g\":[{\"$\":{\"transform\":\"translate(0 -580.99607)\",\"style\":\"stroke:none;\",\"id\":\"root\",\"fill\":\"#333333\"},\"g\":[{\"$\":{\"transform\":\"translate(221.57008 1101.7666)\",\"id\":\"left-parts\"},\"path\":[{\"$\":{\"d\":\"m 272.81516,-456.8166 -110.96971,0 c -0.32924,0 -0.65827,-0.0468 -0.97472,-0.1386 -0.31645,-0.0918 -0.62027,-0.22866 -0.89995,-0.40551 -0.27968,-0.17684 -0.53514,-0.39367 -0.7565,-0.64244 -0.22135,-0.24877 -0.40854,-0.52944 -0.55411,-0.83133 -0.14558,-0.3019 -0.24947,-0.62497 -0.30744,-0.95668 -3.11169,-17.80554 -6.22337,-35.61107 -9.33505,-53.41661 -0.16174,-0.9255 -0.46824,-1.8252 -0.90498,-2.65546 -0.43675,-0.83027 -1.00365,-1.59085 -1.67347,-2.24448 -0.66982,-0.65363 -1.44238,-1.20007 -2.2801,-1.61231 -0.83772,-0.41224 -1.74031,-0.69012 -2.66354,-0.81983 -0.92322,-0.12971 -1.86673,-0.11121 -2.78423,0.0544 l -352.97851,63.7382 c -0.81059,0.14636 -1.60096,0.40708 -2.34074,0.77257 -0.73979,0.3655 -1.42881,0.83571 -2.04035,1.39272 -0.61154,0.55702 -1.14547,1.20071 -1.58116,1.90622 -0.43571,0.70551 -0.77307,1.47267 -0.99931,2.2718 -0.22626,0.79913 -0.34137,1.63006 -0.34137,2.4609 l 0,389.594539 c 0,0.936363 0.14626,1.872858 0.43247,2.764016 0.2862,0.891158 0.7123,1.736655 1.25787,2.494964 0.54557,0.75831 1.21044,1.429141 1.96201,1.979608 0.75157,0.550465 1.58955,0.980376 2.47279,1.269152 0.88324,0.288776 1.8114,0.436358 2.73944,0.436358 l 342.7307,-1.4e-5 c 1.77165,0 3.54314,-1.7716 3.54314,-3.5432 0,-12.931979 0,-22.981768 0,-34.5827 0,-1.7717 -1.77149,-3.545 -3.54314,-3.545 l -322.73675,0.0013 c -2.79101,0 -5.3291,-2.56086 -5.3291,-5.376898 l 0,-329.455425 c 0,-2.81604 2.53809,-5.3769 5.3291,-5.3769 l 463.75521,0 c 0.93041,0 1.77697,-0.85444 1.77697,-1.79353 0,-7.80504 0,-14.68214 0,-21.94355 0,-0.94218 -0.84656,-1.79632 -1.77697,-1.79632\",\"id\":\"left-case\"}}],\"rect\":[{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-194.89622\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-0\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-127.57339\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-1\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-60.250557\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-2\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"7.072278\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-3\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"74.395111\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-4\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"141.71794\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-5\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"209.04079\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-6\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-194.89622\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"95.669289\",\"id\":\"key-7\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-95.683624\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-8\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-28.360792\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-9\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"38.962044\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-10\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"106.28487\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-11\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"173.60771\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-12\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-194.89622\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"111.61417\",\"id\":\"key-13\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-79.419846\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-14\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-11.778116\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-15\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"55.863617\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-16\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"123.50535\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-17\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"191.14708\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-18\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-194.89622\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"143.50394\",\"id\":\"key-19\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-47.14032\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-20\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"20.891174\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-21\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"88.922668\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-22\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"156.95416\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-23\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"224.98566\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-24\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-194.89622\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-25\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-111.98284\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-26\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"-29.069458\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-27\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"53.843929\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-28\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"137.11165\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"131.10236\",\"id\":\"key-29\"}},{\"$\":{\"rx\":\"3.4856062\",\"ry\":\"3.5433071\",\"x\":\"137.11165\",\"y\":\"-91.071709\",\"height\":\"41.667309\",\"width\":\"131.10236\",\"id\":\"key-30\"}}],\"text\":[{\"$\":{\"y\":\"-435.0346495\",\"x\":\"-163.006457\",\"font-size\":\"19\",\"id\":\"SvgjsText1084\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"~\",\"$\":{\"x\":\"-163.006457\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1085\"}},{\"_\":\"`\",\"$\":{\"x\":\"-163.006457\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1086\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"-95.683627\",\"font-size\":\"19\",\"id\":\"SvgjsText1087\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"!\",\"$\":{\"x\":\"-95.683627\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1088\"}},{\"_\":\"1\",\"$\":{\"x\":\"-95.683627\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1089\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"-28.360794000000002\",\"font-size\":\"19\",\"id\":\"SvgjsText1090\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"@\",\"$\":{\"x\":\"-28.360794000000002\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1091\"}},{\"_\":\"2\",\"$\":{\"x\":\"-28.360794000000002\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1092\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"38.962041\",\"font-size\":\"19\",\"id\":\"SvgjsText1093\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"#\",\"$\":{\"x\":\"38.962041\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1094\"}},{\"_\":\"3\",\"$\":{\"x\":\"38.962041\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1095\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"106.284874\",\"font-size\":\"19\",\"id\":\"SvgjsText1096\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"$\",\"$\":{\"x\":\"106.284874\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1097\"}},{\"_\":\"4\",\"$\":{\"x\":\"106.284874\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1098\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"173.607703\",\"font-size\":\"19\",\"id\":\"SvgjsText1099\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"%\",\"$\":{\"x\":\"173.607703\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1100\"}},{\"_\":\"5\",\"$\":{\"x\":\"173.607703\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1101\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"240.93055299999997\",\"font-size\":\"19\",\"id\":\"SvgjsText1102\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"^\",\"$\":{\"x\":\"240.93055299999997\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1103\"}},{\"_\":\"6\",\"$\":{\"x\":\"240.93055299999997\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1104\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"-147.0615755\",\"font-size\":\"19\",\"id\":\"SvgjsText1125\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Tab\\r\\n \",\"$\":{\"x\":\"-147.0615755\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1126\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"-63.79386099999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1127\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Q\\r\\n \",\"$\":{\"x\":\"-63.79386099999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1128\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"3.5289709999999985\",\"font-size\":\"19\",\"id\":\"SvgjsText1129\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n W\\r\\n \",\"$\":{\"x\":\"3.5289709999999985\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1130\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"70.851807\",\"font-size\":\"19\",\"id\":\"SvgjsText1131\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n E\\r\\n \",\"$\":{\"x\":\"70.851807\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1132\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"138.174633\",\"font-size\":\"19\",\"id\":\"SvgjsText1133\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n R\\r\\n \",\"$\":{\"x\":\"138.174633\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1134\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"205.49747299999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1135\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n T\\r\\n \",\"$\":{\"x\":\"205.49747299999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1136\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"-139.089135\",\"font-size\":\"19\",\"id\":\"SvgjsText1156\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Mouse\\r\\n \",\"$\":{\"x\":\"-139.089135\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1157\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"-47.530083000000005\",\"font-size\":\"19\",\"id\":\"SvgjsText1158\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n A\\r\\n \",\"$\":{\"x\":\"-47.530083000000005\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1159\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"20.111646999999998\",\"font-size\":\"19\",\"id\":\"SvgjsText1160\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n S\\r\\n \",\"$\":{\"x\":\"20.111646999999998\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1161\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"87.75337999999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1162\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n D\\r\\n \",\"$\":{\"x\":\"87.75337999999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1163\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"155.395113\",\"font-size\":\"19\",\"id\":\"SvgjsText1164\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n F\\r\\n \",\"$\":{\"x\":\"155.395113\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1165\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"223.03684299999998\",\"font-size\":\"19\",\"id\":\"SvgjsText1166\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n G\\r\\n \",\"$\":{\"x\":\"223.03684299999998\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1167\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"-123.14425\",\"font-size\":\"19\",\"id\":\"SvgjsText1184\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Shift\\r\\n \",\"$\":{\"x\":\"-123.14425\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1185\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"-15.250557000000004\",\"font-size\":\"19\",\"id\":\"SvgjsText1186\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Z\\r\\n \",\"$\":{\"x\":\"-15.250557000000004\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1187\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"52.780936999999994\",\"font-size\":\"19\",\"id\":\"SvgjsText1188\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n X\\r\\n \",\"$\":{\"x\":\"52.780936999999994\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1189\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"120.812431\",\"font-size\":\"19\",\"id\":\"SvgjsText1190\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n C\\r\\n \",\"$\":{\"x\":\"120.812431\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1191\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"188.843923\",\"font-size\":\"19\",\"id\":\"SvgjsText1192\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n V\\r\\n \",\"$\":{\"x\":\"188.843923\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1193\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"256.875423\",\"font-size\":\"19\",\"id\":\"SvgjsText1194\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n B\\r\\n \",\"$\":{\"x\":\"256.875423\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1195\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"-155.0340145\",\"font-size\":\"19\",\"id\":\"SvgjsText1211\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Ctrl\\r\\n \",\"$\":{\"x\":\"-155.0340145\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1212\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"-72.1206345\",\"font-size\":\"19\",\"id\":\"SvgjsText1213\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Super\\r\\n \",\"$\":{\"x\":\"-72.1206345\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1214\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"10.7927475\",\"font-size\":\"19\",\"id\":\"SvgjsText1215\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Alt\\r\\n \",\"$\":{\"x\":\"10.7927475\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1216\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"93.7061345\",\"font-size\":\"19\",\"id\":\"SvgjsText1217\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Fn\\r\\n \",\"$\":{\"x\":\"93.7061345\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1218\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"202.66282999999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1219\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Mod\\r\\n \",\"$\":{\"x\":\"202.66282999999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1220\"}}]},{\"$\":{\"y\":\"-94.136492\",\"x\":\"202.66282999999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1231\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Space\\r\\n \",\"$\":{\"x\":\"202.66282999999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1232\"}}]}]},{\"$\":{\"transform\":\"translate(44.404903 1101.7674)\",\"id\":\"right-parts\"},\"path\":[{\"$\":{\"d\":\"m 951.05862,-431.2832 c 2.791,0 5.32908,2.56086 5.32908,5.3769 l 0,329.455425 c 0,2.816038 -2.53808,5.376898 -5.32908,5.376898 l -370.67909,-0.0013 c -1.77166,0 -3.54347,1.7733 -3.54347,3.545 0,12.895215 0,23.315027 0,34.58266 0,1.7716 1.77181,3.5432 3.54347,3.5432 l 390.67297,1.44e-4 c 0.92804,0 1.85621,-0.147582 2.73944,-0.436358 0.88324,-0.288776 1.72122,-0.718687 2.47277,-1.269152 0.75157,-0.550467 1.41644,-1.221298 1.96201,-1.979608 0.54557,-0.758309 0.97166,-1.603806 1.25787,-2.494964 0.2862,-0.891158 0.43247,-1.827653 0.43247,-2.764016 l 0,-389.434639 c 0,-0.83901 -0.11739,-1.67813 -0.34806,-2.4845 -0.23066,-0.80638 -0.57456,-1.57983 -1.01841,-2.28986 -0.44385,-0.71002 -0.98756,-1.35643 -1.60971,-1.91378 -0.62215,-0.55735 -1.3226,-1.0255 -2.07365,-1.38629 -0.75105,-0.36078 -1.55253,-0.61412 -2.37301,-0.75058 -130.52433,-21.7076 -270.93602,-45.05959 -384.94144,-64.01992 -0.91165,-0.15162 -1.8469,-0.15828 -2.76061,-0.0195 -0.91372,0.13871 -1.8056,0.42276 -2.63265,0.83829 -0.82706,0.41551 -1.58903,0.96236 -2.24949,1.61394 -0.66047,0.65158 -1.21924,1.40768 -1.64996,2.2319 -0.43072,0.82422 -0.73327,1.71631 -0.8936,2.63375 -3.12168,17.84567 -6.23258,35.69325 -9.35634,53.53854 -0.058,0.33171 -0.16187,0.65478 -0.30744,0.95668 -0.14556,0.30189 -0.33275,0.58256 -0.5541,0.83133 -0.22136,0.24877 -0.47683,0.4656 -0.7565,0.64244 -0.27967,0.17685 -0.5835,0.31372 -0.89995,0.40551 -0.31645,0.0919 -0.64548,0.1386 -0.97471,0.1386 l -109.19782,-2e-5 c -0.93043,-10e-6 -1.77697,0.85413 -1.77697,1.79631 10e-6,7.4108 -1e-5,15.64271 0,21.94355 0,0.93909 0.84654,1.79353 1.77697,1.79353 l 495.73901,0\",\"id\":\"right-case\"}}],\"rect\":[{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"453.52896\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-0\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"520.85181\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-1\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"588.17462\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-2\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"655.4975\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-3\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"722.82031\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-4\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"790.14313\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-5\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"857.466\",\"y\":\"-427.82285\",\"height\":\"63.779526\",\"width\":\"95.669289\",\"id\":\"key-6\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"418.09589\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-7\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"485.41873\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-8\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"552.74158\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-9\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"620.06439\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-10\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"687.38727\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-11\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"754.71008\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-12\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"822.0329\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-13\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"889.35571\",\"y\":\"-360.50003\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-14\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"435.67072\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-15\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"503.31244\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-16\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"570.95416\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-17\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"638.59589\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-18\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"706.23761\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-19\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"773.87939\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-20\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"841.52112\",\"y\":\"-293.17719\",\"height\":\"63.779526\",\"width\":\"111.61417\",\"id\":\"key-21\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"469.47385\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-22\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"537.50537\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-23\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"605.53687\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-24\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"673.56836\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-25\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"741.59985\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"63.779526\",\"id\":\"key-26\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"809.63135\",\"y\":\"-225.85435\",\"height\":\"63.779526\",\"width\":\"143.50394\",\"id\":\"key-27\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"448.92267\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"124.37008\",\"id\":\"key-28\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"576.83606\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-29\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"659.74945\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-30\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"742.66284\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"79.724411\",\"id\":\"key-31\"}},{\"$\":{\"rx\":\"3.5433071\",\"ry\":\"3.5433071\",\"x\":\"825.57623\",\"y\":\"-158.53151\",\"height\":\"63.779526\",\"width\":\"127.55905\",\"id\":\"key-32\"}},{\"$\":{\"rx\":\"3.493542\",\"ry\":\"3.5433071\",\"x\":\"448.92267\",\"y\":\"-91.071663\",\"height\":\"41.667309\",\"width\":\"124.37009\",\"id\":\"key-33\"}}],\"text\":[{\"$\":{\"y\":\"-435.0346495\",\"x\":\"485.418723\",\"font-size\":\"19\",\"id\":\"SvgjsText1105\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"&\",\"$\":{\"x\":\"485.418723\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1106\"}},{\"_\":\"7\",\"$\":{\"x\":\"485.418723\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1107\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"552.741573\",\"font-size\":\"19\",\"id\":\"SvgjsText1108\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"*\",\"$\":{\"x\":\"552.741573\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1109\"}},{\"_\":\"8\",\"$\":{\"x\":\"552.741573\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1110\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"620.064383\",\"font-size\":\"19\",\"id\":\"SvgjsText1111\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"(\",\"$\":{\"x\":\"620.064383\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1112\"}},{\"_\":\"9\",\"$\":{\"x\":\"620.064383\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1113\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"687.387263\",\"font-size\":\"19\",\"id\":\"SvgjsText1114\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\")\",\"$\":{\"x\":\"687.387263\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1115\"}},{\"_\":\"0\",\"$\":{\"x\":\"687.387263\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1116\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"754.710073\",\"font-size\":\"19\",\"id\":\"SvgjsText1117\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"_\",\"$\":{\"x\":\"754.710073\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1118\"}},{\"_\":\"-\",\"$\":{\"x\":\"754.710073\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1119\"}}]},{\"$\":{\"y\":\"-435.0346495\",\"x\":\"822.0328930000001\",\"font-size\":\"19\",\"id\":\"SvgjsText1120\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"+\",\"$\":{\"x\":\"822.0328930000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1121\"}},{\"_\":\"=\",\"$\":{\"x\":\"822.0328930000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1122\"}}]},{\"$\":{\"y\":\"-419.8315245\",\"x\":\"905.3006445\",\"font-size\":\"19\",\"id\":\"SvgjsText1123\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n ←\\r\\n \",\"$\":{\"x\":\"905.3006445\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1124\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"449.985653\",\"font-size\":\"19\",\"id\":\"SvgjsText1137\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Y\\r\\n \",\"$\":{\"x\":\"449.985653\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1138\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"517.308493\",\"font-size\":\"19\",\"id\":\"SvgjsText1139\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n U\\r\\n \",\"$\":{\"x\":\"517.308493\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1140\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"584.631343\",\"font-size\":\"19\",\"id\":\"SvgjsText1141\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n I\\r\\n \",\"$\":{\"x\":\"584.631343\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1142\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"651.954153\",\"font-size\":\"19\",\"id\":\"SvgjsText1143\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n O\\r\\n \",\"$\":{\"x\":\"651.954153\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1144\"}}]},{\"$\":{\"y\":\"-352.50870449999996\",\"x\":\"719.277033\",\"font-size\":\"19\",\"id\":\"SvgjsText1145\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n P\\r\\n \",\"$\":{\"x\":\"719.277033\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1146\"}}]},{\"$\":{\"y\":\"-367.71182949999996\",\"x\":\"786.599843\",\"font-size\":\"19\",\"id\":\"SvgjsText1147\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"{\",\"$\":{\"x\":\"786.599843\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1148\"}},{\"_\":\"[\",\"$\":{\"x\":\"786.599843\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1149\"}}]},{\"$\":{\"y\":\"-367.71182949999996\",\"x\":\"853.9226630000001\",\"font-size\":\"19\",\"id\":\"SvgjsText1150\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"}\",\"$\":{\"x\":\"853.9226630000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1151\"}},{\"_\":\"]\",\"$\":{\"x\":\"853.9226630000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1152\"}}]},{\"$\":{\"y\":\"-367.71182949999996\",\"x\":\"921.2454730000001\",\"font-size\":\"19\",\"id\":\"SvgjsText1153\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"|\",\"$\":{\"x\":\"921.2454730000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1154\"}},{\"_\":\"\\\\\",\"$\":{\"x\":\"921.2454730000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1155\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"467.56048300000003\",\"font-size\":\"19\",\"id\":\"SvgjsText1168\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n H\\r\\n \",\"$\":{\"x\":\"467.56048300000003\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1169\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"535.2022029999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1170\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n J\\r\\n \",\"$\":{\"x\":\"535.2022029999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1171\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"602.843923\",\"font-size\":\"19\",\"id\":\"SvgjsText1172\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n K\\r\\n \",\"$\":{\"x\":\"602.843923\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1173\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"670.4856530000001\",\"font-size\":\"19\",\"id\":\"SvgjsText1174\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n L\\r\\n \",\"$\":{\"x\":\"670.4856530000001\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1175\"}}]},{\"$\":{\"y\":\"-300.3889895\",\"x\":\"738.127373\",\"font-size\":\"19\",\"id\":\"SvgjsText1176\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\":\",\"$\":{\"x\":\"738.127373\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1177\"}},{\"_\":\";\",\"$\":{\"x\":\"738.127373\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1178\"}}]},{\"$\":{\"y\":\"-300.3889895\",\"x\":\"805.769153\",\"font-size\":\"19\",\"id\":\"SvgjsText1179\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\\"\",\"$\":{\"x\":\"805.769153\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1180\"}},{\"_\":\"'\",\"$\":{\"x\":\"805.769153\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1181\"}}]},{\"$\":{\"y\":\"-285.1858645\",\"x\":\"897.328205\",\"font-size\":\"19\",\"id\":\"SvgjsText1182\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Enter\\r\\n \",\"$\":{\"x\":\"897.328205\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1183\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"501.36361300000004\",\"font-size\":\"19\",\"id\":\"SvgjsText1196\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n N\\r\\n \",\"$\":{\"x\":\"501.36361300000004\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1197\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"569.395133\",\"font-size\":\"19\",\"id\":\"SvgjsText1198\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n M\\r\\n \",\"$\":{\"x\":\"569.395133\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1199\"}}]},{\"$\":{\"y\":\"-233.06614950000002\",\"x\":\"637.426633\",\"font-size\":\"19\",\"id\":\"SvgjsText1200\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"<\",\"$\":{\"x\":\"637.426633\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1201\"}},{\"_\":\",\",\"$\":{\"x\":\"637.426633\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1202\"}}]},{\"$\":{\"y\":\"-233.06614950000002\",\"x\":\"705.458123\",\"font-size\":\"19\",\"id\":\"SvgjsText1203\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\">\",\"$\":{\"x\":\"705.458123\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1204\"}},{\"_\":\".\",\"$\":{\"x\":\"705.458123\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1205\"}}]},{\"$\":{\"y\":\"-233.06614950000002\",\"x\":\"773.489613\",\"font-size\":\"19\",\"id\":\"SvgjsText1206\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"?\",\"$\":{\"x\":\"773.489613\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1207\"}},{\"_\":\"/\",\"$\":{\"x\":\"773.489613\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1208\"}}]},{\"$\":{\"y\":\"-217.86302450000002\",\"x\":\"881.38332\",\"font-size\":\"19\",\"id\":\"SvgjsText1209\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Shift\\r\\n \",\"$\":{\"x\":\"881.38332\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1210\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"511.10771\",\"font-size\":\"19\",\"id\":\"SvgjsText1221\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Space\\r\\n \",\"$\":{\"x\":\"511.10771\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1222\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"616.6982654999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1223\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Fn\\r\\n \",\"$\":{\"x\":\"616.6982654999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1224\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"699.6116555\",\"font-size\":\"19\",\"id\":\"SvgjsText1225\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Alt\\r\\n \",\"$\":{\"x\":\"699.6116555\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1226\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"782.5250454999999\",\"font-size\":\"19\",\"id\":\"SvgjsText1227\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Super\\r\\n \",\"$\":{\"x\":\"782.5250454999999\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1228\"}}]},{\"$\":{\"y\":\"-150.5401845\",\"x\":\"889.355755\",\"font-size\":\"19\",\"id\":\"SvgjsText1229\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Ctrl\\r\\n \",\"$\":{\"x\":\"889.355755\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1230\"}}]},{\"$\":{\"y\":\"-94.136446\",\"x\":\"511.107715\",\"font-size\":\"19\",\"id\":\"SvgjsText1233\",\"text-anchor\":\"middle\",\"font-family\":\"Helvetica\",\"fill\":\"#ffffff\"},\"tspan\":[{\"_\":\"\\r\\n Mod\\r\\n \",\"$\":{\"x\":\"511.107715\",\"dy\":\"30.400000000000002\",\"id\":\"SvgjsTspan1234\"}}]}]}]}]}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/xml-loader!./images/base-layer.svg\n// module id = 1126\n// module chunks = 1","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// util (ignored)\n// module id = 1127\n// module chunks = 1","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app.module';\r\n\r\nif (!process.stdout) {\r\n process.stdout = require('browser-stdout')();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./web/src/main.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./shared/src/config-serializer/config-items/key-action/index.ts","webpack:///./shared/src/config-serializer/assert.ts","webpack:///./shared/src/services/mapper.service.ts","webpack:///./node_modules/@angular/animations/@angular/animations.es5.js","webpack:///./shared/src/store/actions/index.ts","webpack:///./shared/src/store/reducers/user-configuration.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/index.ts","webpack:///./shared/src/components/popover/tab/tab.ts","webpack:///./shared/src/config-serializer/config-items/key-action/key-action.ts","webpack:///./shared/src/config-serializer/config-items/keymap.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/macro-action.ts","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./shared/src/util/index.ts","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./shared/src/config-serializer/config-items/key-action/keystroke-type.ts","webpack:///./shared/src/config-serializer/config-items/macro.ts","webpack:///./shared/src/components/popover/tab/index.ts","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/@ngrx/store-devtools/index.js","webpack:///./node_modules/@ngrx/store-devtools/src/utils.js","webpack:///./node_modules/@ngrx/store-devtools/src/actions.js","webpack:///./node_modules/@ngrx/core/operator/select.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/actions.js","webpack:///./node_modules/@ngrx/router-store/src/actions.js","webpack:///./shared/src/store/actions/keymap.ts","webpack:///./shared/src/config-serializer/config-items/user-configuration.ts","webpack:///./shared/src/components/macro/index.ts","webpack:///./shared/src/components/macro/not-found/index.ts","webpack:///./shared/src/config-serializer/config-items/key-modifiers.ts","webpack:///./shared/src/components/macro/action-editor/macro-action-editor.component.scss","webpack:///./shared/src/services/capture.service.ts","webpack:///./shared/src/store/index.ts","webpack:///./shared/src/store/reducers/auto-update-settings.ts","webpack:///./shared/src/store/actions/auto-update-settings.ts","webpack:///./shared/src/services/datastorage-repository.service.ts","webpack:///./node_modules/events/events.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/angular-notifier/angular-notifier.es5.js","webpack:///./node_modules/@ngrx/store-devtools/src/devtools.js","webpack:///./node_modules/@ngrx/store-devtools/src/extension.js","webpack:///./node_modules/@ngrx/store-devtools/src/config.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/index.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/json-tree/types.js","webpack:///./node_modules/@ngrx/router-store/index.js","webpack:///./node_modules/ng2-dragula/ng2-dragula.js","webpack:///./shared/src/components/add-on/index.ts","webpack:///./shared/src/components/add-on/add-on.component.ts","webpack:///./shared/src/components/keymap/add/keymap-add.component.ts","webpack:///./shared/src/store/actions/macro.ts","webpack:///./shared/src/components/keymap/edit/keymap-edit.component.ts","webpack:///./node_modules/@ngrx/core/add/operator/select.js","webpack:///./shared/src/config-serializer/config-items/long-press-action.ts","webpack:///./shared/src/config-serializer/config-items/layer.ts","webpack:///./shared/src/config-serializer/config-items/module.ts","webpack:///./shared/src/config-serializer/uhk-buffer.ts","webpack:///./shared/src/store/actions/user-config.ts","webpack:///./shared/src/components/macro/edit/macro-edit.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/index.ts","webpack:///./shared/src/components/popover/index.ts","webpack:///./shared/src/components/settings/index.ts","webpack:///./shared/src/components/settings/settings.component.ts","webpack:///./shared/src/services/svg-module-provider.service.ts","webpack:///./shared/src/components/svg/module/index.ts","webpack:///./shared/src/components/keymap/edit/index.ts","webpack:///./shared/src/services/default-user-configuration.service.ts","webpack:///./shared/src/models/notification.ts","webpack:///./shared/src/store/actions/app.action.ts","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/node-libs-browser/node_modules/string_decoder/index.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./web/src/main.ts","webpack:///./web/src/app.module.ts","webpack:///./node_modules/@angular/platform-browser/@angular/platform-browser/animations.es5.js","webpack:///./node_modules/@angular/animations/@angular/animations/browser.es5.js","webpack:///./node_modules/@ngrx/store-devtools/src/instrument.js","webpack:///./node_modules/@ngrx/store-devtools/src/reducer.js","webpack:///./node_modules/@ngrx/store-log-monitor/index.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/commander.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/keycodes.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/dock.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/dock-monitor.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/dock-monitor/reducer.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/log-monitor/index.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/json-tree/index.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/json-tree/json-node.js","webpack:///./node_modules/@ngrx/core/compose.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/json-tree/json-tree.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/log-monitor/log-monitor.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/log-monitor/log-monitor-button.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/log-monitor/log-monitor-entry.js","webpack:///./node_modules/@ngrx/store-log-monitor/src/store-log-monitor.js","webpack:///./node_modules/@ngrx/router-store/src/reducer.js","webpack:///./node_modules/@ngrx/router-store/src/router-store-module.js","webpack:///./node_modules/@ngrx/router-store/src/connect.js","webpack:///./shared/src/components/add-on/add-on.component.html","webpack:///./shared/src/components/add-on/add-on.component.scss","webpack:///./shared/src/components/add-on/add-on.routes.ts","webpack:///./shared/src/components/keyboard/slider/index.ts","webpack:///./shared/src/components/keyboard/slider/keyboard-slider.component.ts","webpack:///./shared/src/components/keyboard/slider/keyboard-slider.component.html","webpack:///./shared/src/components/keyboard/slider/keyboard-slider.component.scss","webpack:///./shared/src/components/keymap/index.ts","webpack:///./shared/src/components/keymap/add/keymap-add.component.html","webpack:///./shared/src/components/keymap/add/keymap-add.component.scss","webpack:///./node_modules/filesaver.js/FileSaver.min.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./shared/src/config-serializer/config-items/key-action/keystroke-action.ts","webpack:///./shared/src/config-serializer/config-items/key-action/mouse-action.ts","webpack:///./shared/src/config-serializer/config-items/key-action/none-action.ts","webpack:///./shared/src/config-serializer/config-items/key-action/play-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/key-action/switch-keymap-action.ts","webpack:///./shared/src/config-serializer/config-items/key-action/switch-layer-action.ts","webpack:///./shared/src/config-serializer/config-items/key-action/helper.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/delay-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/key-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/move-mouse-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/mouse-button-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/scroll-mouse-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/text-macro-action.ts","webpack:///./shared/src/config-serializer/config-items/macro-action/helper.ts","webpack:///./shared/src/config-serializer/config-items/module-configuration.ts","webpack:///./shared/src/util/constants.ts","webpack:///./shared/src/util/ipcEvents.ts","webpack:///./shared/src/components/keymap/edit/keymap-edit.component.html","webpack:///./shared/src/components/keymap/edit/keymap-edit.component.scss","webpack:///./shared/src/components/keymap/header/keymap-header.component.ts","webpack:///./shared/src/components/keymap/header/keymap-header.component.html","webpack:///./shared/src/components/keymap/header/keymap-header.component.scss","webpack:///./shared/src/components/layers/index.ts","webpack:///./shared/src/components/layers/layers.component.ts","webpack:///./shared/src/components/layers/layers.component.html","webpack:///./shared/src/components/layers/layers.component.scss","webpack:///./shared/src/components/macro/edit/macro-edit.component.html","webpack:///./shared/src/components/macro/edit/macro-edit.component.scss","webpack:///./shared/src/components/macro/list/macro-list.component.ts","webpack:///./shared/src/components/macro/list/macro-list.component.html","webpack:///./shared/src/components/macro/list/macro-list.component.scss","webpack:///./shared/src/components/macro/header/macro-header.component.ts","webpack:///./shared/src/components/macro/header/macro-header.component.html","webpack:///./shared/src/components/macro/header/macro-header.component.scss","webpack:///./shared/src/components/macro/macro.routes.ts","webpack:///./shared/src/components/macro/not-found/macro-not-found.component.ts","webpack:///./shared/src/components/macro/not-found/macro-not-found.component.html","webpack:///./shared/src/components/macro/not-found/macro-not-found.component.scss","webpack:///./shared/src/components/macro/not-found/macro-not-found-guard.service.ts","webpack:///./shared/src/components/macro/item/index.ts","webpack:///./shared/src/components/macro/item/macro-item.component.ts","webpack:///./shared/src/components/macro/item/macro-item.component.html","webpack:///./shared/src/components/macro/item/macro-item.component.scss","webpack:///./shared/src/components/macro/action-editor/index.ts","webpack:///./shared/src/components/macro/action-editor/macro-action-editor.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/delay/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.html","webpack:///./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/key/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/key/macro-key.component.ts","webpack:///./shared/src/components/popover/tab/keymap/index.ts","webpack:///./shared/src/components/popover/tab/keymap/keymap-tab.component.ts","webpack:///./shared/src/components/popover/tab/keymap/keymap-tab.component.html","webpack:///./shared/src/components/popover/tab/keymap/keymap-tab.component.scss","webpack:///./shared/src/components/popover/tab/keypress/index.ts","webpack:///./shared/src/components/popover/tab/keypress/keypress-tab.component.ts","webpack:///./shared/src/components/popover/tab/keypress/scancodes.json","webpack:///./shared/src/components/popover/tab/keypress/longPress.json","webpack:///./shared/src/components/popover/tab/keypress/keypress-tab.component.html","webpack:///./shared/src/components/popover/tab/keypress/keypress-tab.component.scss","webpack:///./shared/src/components/popover/tab/layer/index.ts","webpack:///./shared/src/components/popover/tab/layer/layer-tab.component.ts","webpack:///./shared/src/components/popover/tab/layer/layer-tab.component.html","webpack:///./shared/src/components/popover/tab/layer/layer-tab.component.scss","webpack:///./shared/src/components/popover/tab/macro/index.ts","webpack:///./shared/src/components/popover/tab/macro/macro-tab.component.ts","webpack:///./shared/src/components/popover/tab/macro/macro-tab.component.html","webpack:///./shared/src/components/popover/tab/macro/macro-tab.component.scss","webpack:///./shared/src/components/popover/tab/mouse/index.ts","webpack:///./shared/src/components/popover/tab/mouse/mouse-tab.component.ts","webpack:///./shared/src/components/popover/tab/mouse/mouse-tab.component.html","webpack:///./shared/src/components/popover/tab/mouse/mouse-tab.component.scss","webpack:///./shared/src/components/popover/tab/none/index.ts","webpack:///./shared/src/components/popover/tab/none/none-tab.component.ts","webpack:///./shared/src/components/popover/tab/none/none-tab.component.html","webpack:///./shared/src/components/popover/tab/none/none-tab.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/key/macro-key.component.html","webpack:///./shared/src/components/macro/action-editor/tab/key/macro-key.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/mouse/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.html","webpack:///./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.scss","webpack:///./shared/src/components/macro/action-editor/tab/text/index.ts","webpack:///./shared/src/components/macro/action-editor/tab/text/macro-text.component.ts","webpack:///./shared/src/components/macro/action-editor/tab/text/macro-text.component.html","webpack:///./shared/src/components/macro/action-editor/tab/text/macro-text.component.scss","webpack:///./shared/src/components/macro/action-editor/macro-action-editor.component.html","webpack:///./shared/src/components/notification/index.ts","webpack:///./shared/src/components/notification/notification.component.ts","webpack:///./shared/src/components/notification/notification.component.html","webpack:///./shared/src/components/notification/notification.component.scss","webpack:///./shared/src/components/popover/popover.component.ts","webpack:///./shared/src/components/popover/popover.component.html","webpack:///./shared/src/components/popover/popover.component.scss","webpack:///./shared/src/components/popover/widgets/capture-keystroke/index.ts","webpack:///./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.ts","webpack:///./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.html","webpack:///./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.scss","webpack:///./shared/src/components/popover/widgets/icon/index.ts","webpack:///./shared/src/components/popover/widgets/icon/icon.component.ts","webpack:///./shared/src/components/popover/widgets/icon/icon.component.html","webpack:///./shared/src/components/popover/widgets/icon/icon.component.scss","webpack:///./node_modules/reselect/lib/index.js","webpack:///./shared/src/store/actions/app-update.action.ts","webpack:///./shared/src/components/settings/settings.component.html","webpack:///./shared/src/components/settings/settings.component.scss","webpack:///./shared/src/components/settings/settings.routes.ts","webpack:///./shared/src/components/side-menu/index.ts","webpack:///./shared/src/components/side-menu/side-menu.component.ts","webpack:///./shared/src/components/side-menu/side-menu.component.html","webpack:///./shared/src/components/side-menu/side-menu.component.scss","webpack:///./shared/src/components/svg/keyboard/index.ts","webpack:///./shared/src/components/svg/keyboard/svg-keyboard.component.ts","webpack:///./shared/src/components/svg/module/svg-module.component.ts","webpack:///./shared/src/components/svg/module/svg-module.component.html","webpack:///./shared/src/components/svg/module/svg-module.component.scss","webpack:///./shared/src/components/svg/module/svg-module.model.ts","webpack:///./shared/src/keyboard/keyboard-layout.enum.ts","webpack:///./modules/uhk60-left-half/layout-iso.svg","webpack:///./modules/uhk60-left-half/layout-ansi.svg","webpack:///./modules/uhk60-right-half/layout.svg","webpack:///./shared/src/components/svg/keyboard/svg-keyboard.component.html","webpack:///./shared/src/components/svg/keyboard/svg-keyboard.component.scss","webpack:///./shared/src/components/svg/keys/index.ts","webpack:///./shared/src/components/svg/keys/svg-icon-text-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.html","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.html","webpack:///./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.scss","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.html","webpack:///./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.scss","webpack:///./shared/src/components/svg/keys/svg-mouse-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-click-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-move-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-speed-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.html","webpack:///./shared/src/components/svg/keys/svg-mouse-scroll-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.ts","webpack:///./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.html","webpack:///./shared/src/components/svg/keys/svg-one-line-text-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.html","webpack:///./shared/src/components/svg/keys/svg-single-icon-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.html","webpack:///./shared/src/components/svg/keys/svg-switch-keymap-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.html","webpack:///./shared/src/components/svg/keys/svg-text-icon-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.html","webpack:///./shared/src/components/svg/keys/svg-two-line-text-key/index.ts","webpack:///./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.ts","webpack:///./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.html","webpack:///./shared/src/components/svg/wrap/index.ts","webpack:///./shared/src/components/svg/wrap/svg-keyboard-wrap.component.ts","webpack:///./shared/src/components/svg/wrap/svg-keyboard-wrap.component.html","webpack:///./shared/src/components/svg/wrap/svg-keyboard-wrap.component.scss","webpack:///./web/src/main-app/index.ts","webpack:///./web/src/main-app/main-app.component.ts","webpack:///./web/src/main-app/main-app.component.html","webpack:///./shared/src/main-app/main-app.component.scss","webpack:///./web/src/main-app/main-app.component.scss","webpack:///./web/src/main-app/main-app.routes.ts","webpack:///./web/src/components/keymap/index.ts","webpack:///./web/src/components/keymap/keymap.routes.ts","webpack:///./shared/src/components/keymap/edit/keymap-edit-guard.service.ts","webpack:///./shared/src/directives/index.ts","webpack:///./shared/src/directives/cancelable/index.ts","webpack:///./shared/src/directives/cancelable/cancelable.directive.ts","webpack:///./shared/src/directives/tooltip/index.ts","webpack:///./shared/src/directives/tooltip/tooltip.directive.ts","webpack:///./shared/src/pipes/index.ts","webpack:///./shared/src/pipes/safe-style.pipe.ts","webpack:///./shared/src/store/effects/index.ts","webpack:///./shared/src/store/effects/keymap.ts","webpack:///./shared/res/presets nonrecursive .json$","webpack:///./shared/res/presets/DVR.json","webpack:///./shared/res/presets/EMY.json","webpack:///./shared/res/presets/QTY.json","webpack:///./shared/res/presets/VIM.json","webpack:///./shared/src/store/effects/macro.ts","webpack:///./shared/src/store/effects/user-config.ts","webpack:///./shared/src/config-serializer/user-config.json","webpack:///./shared/src/store/effects/auto-update-settings.ts","webpack:///./shared/src/store/effects/app.ts","webpack:///./shared/src/services/local-datastorage-repository.service.ts","webpack:///./shared/src/store/reducers/index.ts","webpack:///./shared/src/store/reducers/preset.ts","webpack:///./shared/src/services/logger.service.ts","webpack:///./shared/src/components/auto-update-settings/auto-update-settings.ts","webpack:///./shared/src/components/auto-update-settings/auto-update-settings.html","webpack:///./shared/src/models/angular-notifier-config.ts","webpack:///./node_modules/browser-stdout/index.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///util (ignored)","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js"],"names":[],"mappings":"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AG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5C,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,yCAAiB,GAAzB;QACI,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAExD,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;QAE9D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;QACjE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;QAEhE,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;QACjE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;IAClE,CAAC;IAEO,2CAAmB,GAA3B;QACI,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;QACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;IACvE,CAAC;IAEL,oBAAC;AAAD,CAAC;AA/QY,aAAa;IADzB,iBAAU,EAAE;;GACA,aAAa,CA+QzB;AA/QY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR1B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,mDAAmD,KAAK;AACxD,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yCAAyC;AACvF,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,6DAA6D;AAC7D;AACA,CAAC;AACD;AACA,uDAAuD;AACvD,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,qEAAqE;AACrE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA,gEAAgE,mBAAmB,MAAM;AACzF,yBAAyB;AACzB;AACA;AACA,2EAA2E;AAC3E,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,mBAAmB,MAAM;AACjG,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,YAAY,yEAAyE;AACrF;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA;AACA;AACA,sBAAsB,sCAAsC,GAAG,mBAAmB,MAAM;AACxF,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mBAAmB,KAAK;AAC7F,uBAAuB;AACvB;AACA,IAAI,sEAAsE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA,YAAY,qBAAqB;AACjC,YAAY,oBAAoB;AAChC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,eAAe;AAC3C,YAAY;AACZ;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB,OAAO;AACrF,cAAc;AACd;AACA;AACA;AACA;AACA,8FAA8F;AAC9F,eAAe,KAAK,uBAAuB;AAC3C,mDAAmD,2BAA2B,OAAO;AACrF,8CAA8C;AAC9C;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA;AACA,2DAA2D,6BAA6B;AACxF;AACA,wDAAwD,mBAAmB,OAAO;AAClF,cAAc;AACd;AACA;AACA;AACA,IAAI,mBAAmB;AACvB;AACA;AACA;AACA;AACA,IAAI,mBAAmB,KAAK,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,oBAAoB,aAAa;AACjC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA;AACA,IAAI,8BAA8B,aAAa,mCAAmC;AAClF,aAAa,uBAAuB,MAAM,2BAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mCAAmC;AAC7C;AACA;AACA,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB,wBAAwB,cAAc;AACtC;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,6BAA6B;AACzF,mFAAmF;AACnF,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA,0BAA0B,YAAY;AACtC,iCAAiC,cAAc;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA,0CAA0C,mBAAmB;AAC7D;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD,YAAY,uCAAuC;AACnD,YAAY,yCAAyC;AACrD,YAAY,sCAAsC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,0BAA0B;AACtC,YAAY,4BAA4B;AACxC,YAAY,2BAA2B;AACvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,+EAA+E;AAC/E,2DAA2D;AAC3D;AACA;AACA,8BAA8B,4CAA4C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF,wEAAwE;AACxE,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C,yBAAyB,qBAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,yBAAyB,aAAa;AACtC;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa,SAAS,GAAG;AACrC,gBAAgB,QAAQ;AACxB,cAAc,aAAa,OAAO;AAClC,OAAO,UAAU,oCAAoC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yDAAyD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAqB;AAC9E;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA,8FAA8F;AAC9F,yBAAyB;AACzB;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,WAAW;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iBAAiB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,mCAAmC,aAAa;AAChD;AACA;AACA,2CAA2C,aAAa;AACxD,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oDAAoD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,2DAA2D,2BAA2B;AACtF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,0DAA0D,0BAA0B;AACpF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,6DAA6D,6BAA6B;AAC1F;AACA,gBAAgB;AAChB;AACA,4DAA4D,sBAAsB;AAClF;AACA,gBAAgB;AAChB;AACA,sDAAsD;AACtD;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gDAAgD,aAAa,EAAE;AAC/D;AACA;AACA;AACA,gBAAgB;AAChB;AACA,uDAAuD;AACvD;AACA,gBAAgB;AAChB;AACA,yDAAyD;AACzD;AACA,gBAAgB;AAChB;AACA,wDAAwD,kBAAkB;AAC1E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa,EAAE;AACrE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,uDAAuD;AACvD;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D;AAC9D;AACA,gBAAgB;AAChB;AACA,6DAA6D,UAAU;AACvE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,uEAAuE,yCAAyC,EAAE;AAClH;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,uDAAuD,0CAA0C,sBAAsB,EAAE,EAAE;AAC3H;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,4DAA4D,2BAA2B;AACvF;AACA,gBAAgB;AAChB;AACA;AACA;AACA,oDAAoD,aAAa,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,2DAA2D,0BAA0B;AACrF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,6BAA6B;AAC3F;AACA,gBAAgB;AAChB;AACA,6DAA6D,sBAAsB;AACnF;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sBAAsB,EAAE;AACzE;AACA;AACA,gBAAgB;AAChB;AACA,wDAAwD,0CAA0C,uBAAuB,EAAE,EAAE;AAC7H;AACA,gBAAgB;AAChB;AACA,0DAA0D,0CAA0C,yBAAyB,EAAE,EAAE;AACjI;AACA,gBAAgB;AAChB;AACA;AACA;AACA,iDAAiD,wBAAwB,EAAE;AAC3E;AACA;AACA,gBAAgB;AAChB;AACA,0DAA0D,mBAAmB;AAC7E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB,EAAE;AAChF,sDAAsD,aAAa,EAAE;AACrE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,iDAAiD,uBAAuB,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,sBAAsB,EAAE;AAClD;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACQ;AACR;;;;;;;;;;;;;AC1sCA,mCAAyB;AACzB,mCAAwB;;;;;;;;;;ACDxB,yBAAwC;AAGxC,0CAA6C;AAC7C,wBAAgC;AAChC,wBAA+B;AAE/B,2CAAuG;AACvG,uCAAqE;AACrE,sCAAmE;AACnE,oDAA4F;AAC5F,uCAAmE;AACnE,wCAAqE;AACrE,wCAAyD;AAEzD,6CAAqD;AAErD,IAAM,YAAY,GAAsB,IAAI,sCAAiB,EAAE,CAAC;AAEhE,mBAAyB,KAAoB,EAAE,MAAc;IAApC,4CAAoB;IACzC,IAAM,wBAAwB,GAAsB,M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CAAC,IAAI,QAAI,CAAC;IACzD,CAAC;IACL,YAAC;AAAD,CAAC;AA5DG;IADC,oBAAW;;iCACD;AAHF,sBAAK;;;;;;;;;;;;;ACJlB,kCAAsB;AACtB,wCAA8C;AAArC,wDAAkB;AAC3B,0CAAkD;AAAzC,8DAAoB;AAC7B,uCAA4C;AAAnC,qDAAiB;AAC1B,uCAA4C;AAAnC,qDAAiB;AAC1B,uCAA4C;AAAnC,qDAAiB;AAC1B,sCAA0C;AAAjC,kDAAgB;;;;;;;;+CCNzB;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1C8B;AACN;AACxB,iC;;;;;;;;;;;;;ACF8B;AAC9B;AACA,yCAAyC,iCAAiC,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iC;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gCAAgC,eAAe;AAC/C,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,mC;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA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AG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAG,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,IAAI;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,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;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC7SA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvpBuB;AACuJ;AAC5J;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,yDAAyD;AACzD;AACA;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,mDAAmD,WAAW;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,KAAK,8BAA8B;AACnC,KAAK,qCAAqC,4IAA8C,4BAA4B,EAAE,KAAK,IAAI;AAC/H,EAAE;;AAEF;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE,4EAA4E;AACrG,8DAA8D;AAC9D,2DAA2D;AAC3D;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,yEAAyE;AACzE;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,kFAAkF;AAClF,iBAAiB;AACjB;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,oCAAoC,EAAE,kCAAkC,QAAQ;AAChF,uCAAuC,EAAE;AACzC;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,oCAAoC,EAAE,kCAAkC,QAAQ;AAChF;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,gCAAgC,EAAE,iCAAiC,QAAQ;AAC3E;AACA;AACA,4DAA4D;AAC5D,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uDAAuD,kDAAkD,EAAE;AAC3G,2CAA2C;AAC3C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uEAAuE,kDAAkD,EAAE;AAC3H;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE,qFAAqF,kDAAkD,EAAE;AAClK;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB;AACjB;AACA,8EAA8E,+BAA+B;AAC7G,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA,yDAAyD;AACzD,KAAK,0EAA2B;AAChC,KAAK,8BAA8B;AACnC,KAAK,yBAAyB;AAC9B,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,uDAAuD,WAAW;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,mDAAmD,WAAW;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC,oCAAoC,EAAE,sCAAsC,QAAQ;AACpF;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wBAAwB;AACjG,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,KAAK,mEAAoB;AACzB,KAAK,kEAAmB;AACxB,KAAK,yBAAyB;AAC9B,KAAK,8BAA8B;AACnC,KAAK,kCAAkC;AACvC,EAAE;AACF;AACA,sBAAsB,6DAAc;AACpC,eAAe,8DAAe;AAC9B,iBAAiB,8DAAe;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA,YAAY;AACZ;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA,6CAA6C,WAAW;;AAExD;AACA;AACA;;AAEQ;;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC73CA;AAAA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC4B;AACgB;AACrB;AACV;AACE;AACI;AACL;AACA;AACU;AACT;AACY;AACsB;AACN;AACH;AACT;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA,KAAK,kEAAmB;AACxB;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA,KAAK,kEAAmB;AACxB;AACA;AACA,4CAA4C;AAC5C,KAAK,4BAA4B;AACjC,KAAK,iEAAoB;AACzB,KAAK,8DAAiB;AACtB,KAAK,gFAA2B;AAChC,KAAK,gCAAgC,mIAAuC,IAAI;AAChF,KAAK,gCAAgC,gJAA+C,IAAI;AACxF,EAAE;AACF,oC;;;;;;;;;;;;;;;;;;;;;;;;;;ACpH0C;AACrB;AACL;AACC;AACH;AACE;AACI;AACA;AACK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,+BAA+B;AAC7F,oDAAoD,gCAAgC,EAAE;AACtF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oHAA8D,mDAAmD,EAAE;AACnH;AACA,mHAA6D,kDAAkD,EAAE;AACjH;AACA;AACA,8FAAwC,sDAAsD,EAAE;AAChG,wFAAqC,2CAA2C,EAAE;AAClF;AACA;AACA;AACA,8FAAwC,oDAAoD,EAAE;AAC9F,wFAAqC,2CAA2C,EAAE;AAClF;AACA;AACA;AACA;AACA,qHAA4D,0BAA0B,EAAE;AACxF,2HAAkE,yBAAyB,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA,KAAK,kEAAmB;AACxB;AACA;AACA,gDAAgD;AAChD,KAAK,gCAAgC,iGAAkD,IAAI;AAC3F,EAAE;AACF,qC;;;;;;;;;;AC5EsB;AACtB;AACA;AACA,kC;;;;;;;;;;;;;;;;ACHmB;AACI;AACM;AACL;AACO;AACT;AACtB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB,iC;;;;;;;;;;;;;AChCkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,2EAA2E,6EAA6E;AACxJ;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,kGAAkG;AAClG,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,4EAA4E;;AAE5E;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA,mDAAmD,iEAAiE;AACpH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;;AAEA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA,C;;;;;;;AC9+BA;;;;;;;;ACAA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;AC5NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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KAChC,CAAC;GACW,SAAS,CACrB;AADY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpLtB;AACA;AACA;AACA;AACA;AACA;AAC4E;AAC9B;AACS;AACmH;AAC1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,sDAAsD;AACtD,KAAK,yEAA0B;AAC/B,EAAE;AACF;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,CAAC;AACD;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,0BAA0B;AACxF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,+DAA+D,2BAA2B;AAC1F;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,iEAAiE,6BAA6B;AAC9F;AACA,gBAAgB;AAChB;AACA,0DAA0D,uBAAuB;AACjF;AACA,gBAAgB;AAChB;AACA,gEAAgE,sBAAsB;AACtF;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,2DAA2D,wBAAwB;AACnF;AACA,gBAAgB;AAChB;AACA,6DAA6D,0BAA0B;AACvF;AACA,gBAAgB;AAChB;AACA,4DAA4D,yBAAyB;AACrF;AACA,gBAAgB;AAChB;AACA,6DAA6D,0BAA0B;AACvF;AACA,gBAAgB;AAChB;AACA,2DAA2D,wBAAwB;AACnF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,kEAAkE,iCAAiC;AACnG;AACA,gBAAgB;AAChB;AACA,iEAAiE,UAAU;AAC3E;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,sDAAsD,mGAAmG,EAAE;AAC3J;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,0FAA0F,6BAA6B,EAAE;AACzH;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,wEAAwE,wCAAwC;AAChH;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,uDAAuD;AACvD,KAAK,yEAA0B;AAC/B,KAAK,+FAA0B;AAC/B,KAAK,+DAAgB;AACrB,EAAE;AACF;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,qEAAqE,gCAAgC,EAAE;AACvG;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sEAAsE,2CAA2C;AACjH;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mEAAmE,wCAAwC;AAC3G;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mFAAmF,wDAAwD;AAC3I;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,kEAAkE,uCAAuC;AACzG;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mEAAmE,wCAAwC;AAC3G;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oEAAoE,kCAAkC;AACtG;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,uEAAuE,qCAAqC;AAC5G;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,uEAAuE,qCAAqC;AAC5G;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK,kEAAmB;AACxB;AACA;AACA;AACA;AACA,wDAAwD;AACxD,KAAK,8FAAyB;AAC9B,KAAK,wGAAmC;AACxC,EAAE;AACF;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,KAAK,oHAA+D;AACpE,KAAK,yJAAoF;AACzF,KAAK,sIAAiE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C,qMAA2D;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK;AACL;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK;AACL;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA,mDAAmD,WAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACQ;AACR;;;;;;;;;;;;;;;;;;;;ACrsBA;AACA;AACA;AACA;AACA;AACA;AAC8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gFAAgF,EAAE;AAC1H;AACA;AACA,uCAAuC,+EAA+E,EAAE;AACxH;AACA;AACA,0CAA0C,kFAAkF,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C,+BAA+B,eAAe;AAC9C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA,iDAAiD,kCAAkC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,oCAAoC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,iCAAiC,kBAAkB;AACnD,8CAA8C,+BAA+B,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,wCAAwC,kDAAkD,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,EAAE,aAAa,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mDAAmD;AACnD;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,4CAA4C;AAC1G;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,4DAA4D,0CAA0C;AACtG;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,iEAAiE,+CAA+C;AAChH;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,+DAA+D,6CAA6C;AAC5G;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,4DAA4D,0CAA0C;AACtG;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,4CAA4C;AAC1G;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,4DAA4D,0CAA0C;AACtG;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,gEAAgE,8CAA8C;AAC9G;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,gEAAgE,8CAA8C;AAC9G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mEAAmE,iDAAiD;AACpH;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,iEAAiE,+CAA+C;AAChH;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,4DAA4D,0CAA0C;AACtG;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,4CAA4C;AAC1G;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB;AACA;AACA,+BAA+B,WAAW;AAC1C,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,6DAA6D,2CAA2C;AACxG;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oEAAoE,2CAA2C;AAC/G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,mDAAmD,EAAE;AACrD;AACA,iDAAiD,EAAE;AACnD;AACA,sDAAsD,EAAE;AACxD;AACA,oDAAoD,EAAE;AACtD;AACA,iDAAiD,EAAE;AACnD;AACA,mDAAmD,EAAE;AACrD;AACA,qDAAqD,EAAE;AACvD;AACA,iDAAiD,EAAE;AACnD;AACA,qDAAqD,EAAE;AACvD;AACA,wDAAwD,EAAE;AAC1D;AACA,sDAAsD,EAAE;AACxD;AACA,iDAAiD,EAAE;AACnD;AACA,mDAAmD,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,qCAAqC,0DAA0D,EAAE;AACjG;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,+BAA+B,EAAE,kDAAkD,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE,2DAA2D,8CAA8C,EAAE;AACpI;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE,qHAAgE;AACzF;AACA,oDAAoD,EAAE;AACtD;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,EAAE;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE,sCAAsC;AAC/D;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,aAAa,wCAAwC;AACrD;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE,oEAAoE,4BAA4B,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD,EAAE;AAClG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+CAA+C,EAAE;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,EAAE;AACzB,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE,wCAAwC,EAAE;AACnE,wCAAwC,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE,yDAAyD,yBAAyB,sBAAsB,EAAE,EAAE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,eAAe;AAC3C,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,+BAA+B;AAC7F;AACA,gBAAgB;AAChB;AACA,yDAAyD,mBAAmB;AAC5E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,oCAAoC,qBAAqB;AACzD,iCAAiC,kBAAkB;AACnD,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE,8DAA8D,qCAAqC,EAAE;AAC9H;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,qEAAqE,kCAAkC,EAAE;AACzG;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE,uFAAuF,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,4CAA4C,4BAA4B,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oDAAoD,uEAAuE,EAAE;AAC7H;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE,iCAAiC;AAC1D,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC;AACpC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,EAAE;AACjC,0EAA0E,oCAAoC,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,gBAAgB;AACjD,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,kIAAkI,iBAAiB;AACnJ;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,uEAAuE,2CAA2C;AAClH;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,gBAAgB;AAChB;AACA,qEAAqE,iEAAiE;AACtI;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA,8DAA8D,2CAA2C;AACzG;AACA;AACA,oBAAoB;AACpB;AACA;AACA,2BAA2B,EAAE;AAC7B,gCAAgC,EAAE;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA,kDAAkD,kCAAkC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kEAAkE,kCAAkC;AACpG;AACA,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,gCAAgC,EAAE,UAAU,YAAY;AACxD,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mDAAmD,gFAA2B,EAAE;AAChF;AACA;AACA,kCAAkC,EAAE;AACpC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,qBAAqB;AACzH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,iCAAiC,wBAAwB,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE,mEAAmE,eAAe;AAC3G,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE,mDAAmD;AAChF,sDAAsD,8BAA8B,EAAE;AACtF,2BAA2B,EAAE,qDAAqD;AAClF,uDAAuD,+BAA+B,EAAE;AACxF;AACA;AACA;AACA,SAAS;AACT,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,wCAAwC,oCAAoC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,gCAAgC,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE,wDAAwD,yCAAyC,EAAE;AAC5H;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE,+CAA+C,aAAa,EAAE;AACnF,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,iFAAiF,IAAI;AACrF;AACA,+BAA+B,EAAE,4DAA4D;AAC7F,6DAA6D,4BAA4B,EAAE;AAC3F,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2HAAsE,EAAE;AACjI,SAAS;AACT,uBAAuB,EAAE;AACzB,2BAA2B,EAAE;AAC7B,2CAA2C;AAC3C,SAAS;AACT,uBAAuB,EAAE;AACzB;AACA,sCAAsC,0BAA0B,EAAE;AAClE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,4BAA4B;AAC5B;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,yCAAyC,EAAE;AAC3C;AACA;AACA;AACA,2BAA2B,EAAE,6BAA6B;AAC1D;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE,YAAY;AACrC;AACA,uBAAuB,EAAE,kFAAkF;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,6EAA6E;AAC7E;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yKAAyK;AACnM;AACA;AACA,wCAAwC,wCAAwC,EAAE;AAClF;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2EAA2E,uBAAuB,EAAE;AACpG;AACA,oFAAoF,2BAA2B,EAAE;AACjH,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,sDAAsD,yBAAyB,EAAE;AACjF;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mEAAmE,yCAAyC,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yCAAyC,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oFAAoF,wCAAwC;AAC5H;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,2CAA2C,oBAAoB,EAAE;AACjE;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,gDAAgD,kCAAkC,EAAE;AACpF;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,0FAA0F,0CAA0C;AACpI;AACA;AACA,oBAAoB;AACpB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,gCAAgC,EAAE,cAAc,QAAQ;AACxD,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,SAAS;AACT,mDAAmD,4BAA4B,EAAE;AACjF;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,yEAAyE,kCAAkC;AAC3G;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,kFAAkF,2CAA2C;AAC7H;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,EAAE;AAC7B;AACA,sEAAsE,oDAAoD,EAAE;AAC5H;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,uDAAuD,wBAAwB,EAAE;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB,EAAE;AAClG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD,uBAAuB,EAAE;AACzB;AACA,iEAAiE,iDAAiD,EAAE;AACpH;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,oCAAoC,EAAE,UAAU,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AAC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AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,oCAAoC,EAAE,UAAU,iCAAiC;AACjF,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,0EAA0E,+BAA+B;AACzG;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wFAAwF,mCAAmC;AAC3H;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE,mGAAmG,0BAA0B,EAAE;AAC5J,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uCAAuC,kFAAkF,EAAE;AAC3H,SAAS;AACT,wDAAwD,kDAAkD,EAAE;AAC5G,uBAAuB,EAAE;AACzB;AACA,4DAA4D,qDAAqD,EAAE;AACnH;AACA,SAAS;AACT;AACA;AACA,mDAAmD,8DAA8D,EAAE;AACnH;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,0CAA0C,EAAE;AACtE;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2DAA2D,EAAE;AACpI,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,qEAAqE,qBAAqB;AAC1F;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,4DAA4D,qBAAqB;AACjF;AACA,gBAAgB;AAChB;AACA,kEAAkE,wDAAwD;AAC1H;AACA,gBAAgB;AAChB;AACA,4DAA4D,qCAAqC;AACjG;AACA,gBAAgB;AAChB;AACA,6DAA6D,sCAAsC;AACnG;AACA,gBAAgB;AAChB;AACA,+DAA+D,wCAAwC;AACvG;AACA,gBAAgB;AAChB;AACA,8DAA8D,uBAAuB;AACrF;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,6DAA6D,sCAAsC;AACnG;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,mEAAmE,qDAAqD;AACxH;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE,iDAAiD,8BAA8B,EAAE;AACtG,mBAAmB,EAAE;AACrB;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,4CAA4C,4CAA4C,EAAE;AAC1F;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,qDAAqD,yCAAyC,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA,yCAAyC,2CAA2C;AACpF;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE,wCAAwC,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA,+DAA+D,mDAAmD;AAClH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kDAAkD,EAAE;AACjH,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE,sDAAsD,kCAAkC,EAAE;AACnH,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,EAAE;AACjC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oCAAoC,EAAE,UAAU,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,0BAA0B,EAAE;AACzF;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,qBAAqB,EAAE;AACjD;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,2DAA2D,2BAA2B;AACtF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,0DAA0D,0BAA0B;AACpF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,6DAA6D,6BAA6B;AAC1F;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oDAAoD,aAAa,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,4DAA4D,sBAAsB;AAClF;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa,EAAE;AACrE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8DAA8D,0CAA0C;AACxG;AACA,gBAAgB;AAChB;AACA,6DAA6D,6CAA6C;AAC1G;AACA;AACA,oBAAoB;AACpB;AACA,0BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,2EAA2E,oCAAoC;AAC/G;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,yCAAyC,sBAAsB;AAC/D,uBAAuB,EAAE;AACzB,uBAAuB,EAAE,qBAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE,6EAA6E,8CAA8C,EAAE;AACtJ;AACA;AACA;AACA,CAAC;AACD;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACQ;AACR;;;;;;;;;;;;;;;;;;;;;AC3yJ6B;AACqD;AACtC;AACK;AACK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA,kDAAkD,WAAW;AAC7D,sC;;;;;;;;;;;;;ACvI8B;AACG;AACX;AACtB,mBAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,sBAAsB,6EAA6B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,uCAAuC,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,0BAA0B,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,mC;;;;;;;;;;;;;;;ACrPmB;AACI;AACK;AACD;AACQ;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACyC;AAC1C,iC;;;;;;;;;;;;;;AC5BiD;AAChC;AACH;AACK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,6DAAc;AACpC,qBAAqB,8DAAe;AACpC;AACA;AACA,CAAC;AACD,qC;;;;;;;AChFA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;;;;AC3CwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,wBAAwB,eAAe,gBAAgB,iBAAiB,kBAAkB,6BAA6B,sBAAsB,OAAO,eAAe,2BAA2B,mBAAmB,+CAA+C,gCAAgC,gBAAgB,eAAe,oBAAoB,qBAAqB,OAAO,uBAAuB,oBAAoB,qBAAqB,uBAAuB,OAAO;AACxf,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,6DAAc;AACpC,kBAAkB,6DAAc;AAChC,qBAAqB,6DAAc;AACnC,0BAA0B,0FAA2C;AACrE,2BAA2B,2FAA4C;AACvE,yBAAyB,yFAA0C;AACnE,4BAA4B,4FAA6C;AACzE;AACA;AACA,CAAC;AACD,gC;;;;;;;;;;;;;;;;;ACzFkE;AACjD;AACO;AACR;AACF;AACQ;AACtB;AACA;AACA,+HAAmE,uBAAuB,EAAE;AAC5F,2HAA+D,kBAAkB,EAAE;AACnF,4HAAgE,mBAAmB,EAAE;AACrF,wHAA4D,eAAe,EAAE;AAC7E;AACA;AACA,uLAA6E,mCAAmC,EAAE,kGAA+C,iCAAiC,EAAE;AACpM;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA,SAAS,6EAAuB;AAChC,SAAS,uEAAqB;AAC9B;AACA;AACA,2BAA2B,6DAAc;AACzC,6BAA6B,6DAAc;AAC3C;AACA;AACA,CAAC;AACD,wC;;;;;;;;;;;ACrC0B;AACJ;AACtB;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mC;;;;;;;;;;;;;;AClCmB;AACI;AACE;AACK;AACM;AACD;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD,iC;;;;;;;;;;;;AC7BmB;AACI;AACK;AACA;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD,iC;;;;;;;;;;ACzB2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2CAA2C,uBAAuB,kCAAkC,2BAA2B,uBAAuB,uEAAuE,OAAO,2BAA2B,2BAA2B,iBAAiB,kBAAkB,wBAAwB,oCAAoC,OAAO,uCAAuC,iCAAiC,OAAO,0BAA0B,sBAAsB,wBAAwB,OAAO,+BAA+B,kCAAkC,OAAO,qBAAqB,uBAAuB,OAAO,mEAAmE,uBAAuB,OAAO,wEAAwE,uBAAuB,OAAO;AACh2B,2MAA2M,OAAO,+DAA+D,SAAS;AAC1R,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,iBAAiB,6DAAc;AAC/B,sBAAsB,6DAAc;AACpC,mBAAmB,6DAAc;AACjC;AACA;AACA,CAAC;AACD,qC;;;;;;;ACzCA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAqB,EAAE;AAChF;AACA;;;;;;;;;;;ACd2B;AACF;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS;AACT;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,6DAAc;AACpC,mBAAmB,6DAAc;AACjC;AACA;AACA,CAAC;AACD,qC;;;;;;;;;;;;;;AC5B2B;AACb;AACU;AACP;AACjB;AACA;AACA;AACA;AACA,sIAA0E,uCAAuC,EAAE;AACnH,qIAAyE,yCAAyC,EAAE;AACpH,sIAA0E,uCAAuC,EAAE;AACnH;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2CAA2C,uBAAuB,kCAAkC,uEAAuE,2BAA2B,2BAA2B,oBAAoB,qBAAqB,yBAAyB,uBAAuB,OAAO,qBAAqB,2BAA2B,iCAAiC,mCAAmC,kCAAkC,mBAAmB,sBAAsB,4BAA4B,uBAAuB,OAAO,mBAAmB,2BAA2B,gBAAgB,iBAAiB,kBAAkB,kBAAkB,2BAA2B,yBAAyB,OAAO;AACxuB,8oBAA8oB;AAC9oB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA,SAAS,6EAAuB;AAChC;AACA;AACA,2BAA2B,6DAAc;AACzC;AACA;AACA,CAAC;AACD,uC;;;;;;;;;AClE4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0CAA0C,qBAAqB,8BAA8B,uEAAuE,wBAAwB,0BAA0B,2BAA2B,yBAAyB,gCAAgC,yBAAyB,qBAAqB,8BAA8B,kCAAkC,OAAO,uBAAuB,qBAAqB,qBAAqB,sCAAsC,OAAO;AAC7gB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,sBAAsB,8FAA+C,GAAG,6DAAc;AACtF,oBAAoB,8DAAe;AACnC,0BAA0B,kGAAmD;AAC7E;AACA;AACA,CAAC;AACD,8C;;;;;;;;;AC5BiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2EAA2E,4BAA4B,wCAAwC,oBAAoB;AACnK,0CAA0C,uBAAuB,kCAAkC,wBAAwB,OAAO,iBAAiB,gCAAgC,0CAA0C,OAAO,kBAAkB,sBAAsB,OAAO,iBAAiB,sCAAsC,2BAA2B,qBAAqB,OAAO;AACjY,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,2BAA2B,6DAAc;AACzC,sBAAsB,6DAAc;AACpC,kBAAkB,6DAAc;AAChC,oBAAoB,8DAAe;AACnC;AACA;AACA,CAAC;AACD,6C;;;;;;;;;ACjD2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,2BAA2B,6DAAc;AACzC,6BAA6B,6DAAc;AAC3C,2BAA2B,6DAAc;AACzC;AACA;AACA,CAAC;AACD,6C;;;;;;;;;;ACtBwB;AACxB;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mC;;;;;;;;;;;;;;ACbA;AAAA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC2C;AACxB;AACF;AACW;AACwD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,8DAAe;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;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gBAAgB;AAChB,IAAI;AACJ;AACA;AACA,gBAAgB;AAChB,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AAC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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC3UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC3UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AC11BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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CL,wBAAC;AAAD,CAAC;AArCa;IAAT,gBAAM,EAAE;8BAAkB,uBAAU;0DAkB9B;AAEG;IAAT,gBAAM,EAAE;8BAAkB,uBAAU;0DAU9B;AAhCE,iBAAiB;IAD7B,iBAAU,EAAE;IAoCI,wBAAM,CAAC,wDAAuB,CAAC;qCADd,iBAAO,UAEV,aAAK;QACqB,oEAA+B;GArC3E,iBAAiB,CAuC7B;AAvCY,8CAAiB;;;;;;;AC1B9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;A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CA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;;;;;AC9HA,e;;;;;;;ACAA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;ACxED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,E;;;;;;AC9CA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,SAAS;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA,C;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"app.uhk.js","sourcesContent":["export * from './key-action';\r\nexport * from './keystroke-action';\r\nexport * from './mouse-action';\r\nexport * from './none-action';\r\nexport * from './play-macro-action';\r\nexport * from './switch-keymap-action';\r\nexport * from './switch-layer-action';\r\nexport * from './helper';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/index.ts","export function assertUInt8(target: any, key: string) {\r\n return assertInteger(target, key, 0, 0xFF);\r\n}\r\n\r\nexport function assertInt8(target: any, key: string) {\r\n return assertInteger(target, key, -0x80, 0x7F);\r\n}\r\n\r\nexport function assertUInt16(target: any, key: string) {\r\n return assertInteger(target, key, 0, 0xFFFF);\r\n}\r\n\r\nexport function assertInt16(target: any, key: string) {\r\n return assertInteger(target, key, -0x8000, 0x7FFF);\r\n}\r\n\r\nexport function assertUInt32(target: any, key: string) {\r\n return assertInteger(target, key, 0, 0xFFFFFFFF);\r\n}\r\n\r\nexport function assertInt32(target: any, key: string) {\r\n return assertInteger(target, key, -0x80000000, 0x7FFFFFFF);\r\n}\r\n\r\nexport function assertCompactLength(target: any, key: string) {\r\n return assertUInt16(target, key);\r\n}\r\n\r\nfunction assertInteger(target: any, key: string, min: number, max: number) {\r\n const priv = '_' + key;\r\n\r\n function getter() {\r\n return this[priv];\r\n }\r\n\r\n function setter(newVal: any) {\r\n if (this[priv] !== newVal) {\r\n if (newVal < min || newVal > max) {\r\n throw `${target.constructor.name}.${key}: ` +\r\n `Integer ${newVal} is outside the valid [${min}, ${max}] interval`;\r\n }\r\n this[priv] = newVal;\r\n }\r\n }\r\n\r\n Object.defineProperty(target, key, {\r\n get: getter,\r\n set: setter,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n}\r\n\r\nexport function assertEnum(enumerated: E) {\r\n return function(target: any, key: string) {\r\n const priv = '_' + key;\r\n\r\n function getter() {\r\n return this[priv];\r\n }\r\n\r\n function setter(newVal: any) {\r\n if (this[priv] !== newVal) {\r\n if (enumerated[newVal] === undefined) {\r\n throw `${target.constructor.name}.${key}: ${newVal} is not enum`;\r\n }\r\n this[priv] = newVal;\r\n }\r\n }\r\n\r\n Object.defineProperty(target, key, {\r\n get: getter,\r\n set: setter,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/assert.ts","/* tslint:disable:variable-name */\r\nconst __svg__ = { path: '../../../images/icons/**/*.svg', name: 'assets/compiled_sprite.svg' };\r\n/* tslint:enable:variable-name */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { KeystrokeType } from '../config-serializer/config-items/key-action/keystroke-type';\r\n\r\n@Injectable()\r\nexport class MapperService {\r\n\r\n private basicScanCodeTextMap: Map;\r\n private mediaScanCodeTextMap: Map;\r\n private sytemScanCodeTextMap: Map;\r\n\r\n private basicScancodeIcons: Map;\r\n private mediaScancodeIcons: Map;\r\n private systemScancodeIcons: Map;\r\n private nameToFileName: Map;\r\n\r\n constructor() {\r\n this.initScanCodeTextMap();\r\n this.initScancodeIcons();\r\n this.initNameToFileNames();\r\n }\r\n\r\n public scanCodeToText(scanCode: number, type: KeystrokeType = KeystrokeType.basic): string[] {\r\n let map: Map;\r\n switch (type) {\r\n case KeystrokeType.shortMedia:\r\n case KeystrokeType.longMedia:\r\n map = this.mediaScanCodeTextMap;\r\n break;\r\n case KeystrokeType.system:\r\n map = this.sytemScanCodeTextMap;\r\n break;\r\n default:\r\n map = this.basicScanCodeTextMap;\r\n break;\r\n }\r\n return map.get(scanCode);\r\n }\r\n\r\n public hasScancodeIcon(scancode: number, type = KeystrokeType.basic): boolean {\r\n let map: Map;\r\n switch (type) {\r\n case KeystrokeType.basic:\r\n map = this.basicScancodeIcons;\r\n break;\r\n case KeystrokeType.shortMedia:\r\n case KeystrokeType.longMedia:\r\n map = this.mediaScancodeIcons;\r\n break;\r\n case KeystrokeType.system:\r\n map = this.systemScancodeIcons;\r\n break;\r\n default:\r\n map = new Map();\r\n }\r\n return map.has(scancode);\r\n }\r\n\r\n public scanCodeToSvgImagePath(scanCode: number, type = KeystrokeType.basic): string {\r\n let map: Map;\r\n switch (type) {\r\n case KeystrokeType.basic:\r\n map = this.basicScancodeIcons;\r\n break;\r\n case KeystrokeType.shortMedia:\r\n case KeystrokeType.longMedia:\r\n map = this.mediaScancodeIcons;\r\n break;\r\n case KeystrokeType.system:\r\n map = this.systemScancodeIcons;\r\n break;\r\n default:\r\n return undefined;\r\n }\r\n return 'assets/compiled_sprite.svg#' + map.get(scanCode);\r\n }\r\n\r\n public getIcon(iconName: string): string {\r\n return 'assets/compiled_sprite.svg#' + this.nameToFileName.get(iconName);\r\n }\r\n\r\n public modifierMapper(x: number) {\r\n if (x < 8) {\r\n return Math.floor(x / 2) * 4 + 1 - x; // 1, 0, 3, 2, 5, 4, 7, 6\r\n } else {\r\n return x;\r\n }\r\n }\r\n\r\n // TODO: read the mapping from JSON\r\n private initScanCodeTextMap(): void {\r\n this.basicScanCodeTextMap = new Map();\r\n this.basicScanCodeTextMap.set(4, ['A']);\r\n this.basicScanCodeTextMap.set(5, ['B']);\r\n this.basicScanCodeTextMap.set(6, ['C']);\r\n this.basicScanCodeTextMap.set(7, ['D']);\r\n this.basicScanCodeTextMap.set(8, ['E']);\r\n this.basicScanCodeTextMap.set(9, ['F']);\r\n this.basicScanCodeTextMap.set(10, ['G']);\r\n this.basicScanCodeTextMap.set(11, ['H']);\r\n this.basicScanCodeTextMap.set(12, ['I']);\r\n this.basicScanCodeTextMap.set(13, ['J']);\r\n this.basicScanCodeTextMap.set(14, ['K']);\r\n this.basicScanCodeTextMap.set(15, ['L']);\r\n this.basicScanCodeTextMap.set(16, ['M']);\r\n this.basicScanCodeTextMap.set(17, ['N']);\r\n this.basicScanCodeTextMap.set(18, ['O']);\r\n this.basicScanCodeTextMap.set(19, ['P']);\r\n this.basicScanCodeTextMap.set(20, ['Q']);\r\n this.basicScanCodeTextMap.set(21, ['R']);\r\n this.basicScanCodeTextMap.set(22, ['S']);\r\n this.basicScanCodeTextMap.set(23, ['T']);\r\n this.basicScanCodeTextMap.set(24, ['U']);\r\n this.basicScanCodeTextMap.set(25, ['V']);\r\n this.basicScanCodeTextMap.set(26, ['W']);\r\n this.basicScanCodeTextMap.set(27, ['X']);\r\n this.basicScanCodeTextMap.set(28, ['Y']);\r\n this.basicScanCodeTextMap.set(29, ['Z']);\r\n this.basicScanCodeTextMap.set(30, ['1', '!']);\r\n this.basicScanCodeTextMap.set(31, ['2', '@']);\r\n this.basicScanCodeTextMap.set(32, ['3', '#']);\r\n this.basicScanCodeTextMap.set(33, ['4', '$']);\r\n this.basicScanCodeTextMap.set(34, ['5', '%']);\r\n this.basicScanCodeTextMap.set(35, ['6', '^']);\r\n this.basicScanCodeTextMap.set(36, ['7', '&']);\r\n this.basicScanCodeTextMap.set(37, ['8', '*']);\r\n this.basicScanCodeTextMap.set(38, ['9', '(']);\r\n this.basicScanCodeTextMap.set(39, ['0', ')']);\r\n this.basicScanCodeTextMap.set(40, ['Enter']);\r\n this.basicScanCodeTextMap.set(41, ['Esc']);\r\n this.basicScanCodeTextMap.set(42, ['Backspace']);\r\n this.basicScanCodeTextMap.set(43, ['Tab']);\r\n this.basicScanCodeTextMap.set(44, ['Space']);\r\n this.basicScanCodeTextMap.set(45, ['-', '_']);\r\n this.basicScanCodeTextMap.set(46, ['=', '+']);\r\n this.basicScanCodeTextMap.set(47, ['[', '{']);\r\n this.basicScanCodeTextMap.set(48, [']', '}']);\r\n this.basicScanCodeTextMap.set(49, ['\\\\', '|']);\r\n this.basicScanCodeTextMap.set(50, ['NON_US_HASHMARK_AND_TILDE']);\r\n this.basicScanCodeTextMap.set(51, [';', ':']);\r\n this.basicScanCodeTextMap.set(52, ['\\'', '\"']);\r\n this.basicScanCodeTextMap.set(53, ['`', '~']);\r\n this.basicScanCodeTextMap.set(54, [',', '<']);\r\n this.basicScanCodeTextMap.set(55, ['.', '>']);\r\n this.basicScanCodeTextMap.set(56, ['/', '?']);\r\n this.basicScanCodeTextMap.set(57, ['Caps Lock']);\r\n this.basicScanCodeTextMap.set(58, ['F1']);\r\n this.basicScanCodeTextMap.set(59, ['F2']);\r\n this.basicScanCodeTextMap.set(60, ['F3']);\r\n this.basicScanCodeTextMap.set(61, ['F4']);\r\n this.basicScanCodeTextMap.set(62, ['F5']);\r\n this.basicScanCodeTextMap.set(63, ['F6']);\r\n this.basicScanCodeTextMap.set(64, ['F7']);\r\n this.basicScanCodeTextMap.set(65, ['F8']);\r\n this.basicScanCodeTextMap.set(66, ['F9']);\r\n this.basicScanCodeTextMap.set(67, ['F10']);\r\n this.basicScanCodeTextMap.set(68, ['F11']);\r\n this.basicScanCodeTextMap.set(69, ['F12']);\r\n this.basicScanCodeTextMap.set(70, ['PrtScn']);\r\n this.basicScanCodeTextMap.set(71, ['Scroll Lock']);\r\n this.basicScanCodeTextMap.set(72, ['Pause']);\r\n this.basicScanCodeTextMap.set(73, ['Insert']);\r\n this.basicScanCodeTextMap.set(74, ['Home']);\r\n this.basicScanCodeTextMap.set(75, ['PgUp']);\r\n this.basicScanCodeTextMap.set(76, ['Del']);\r\n this.basicScanCodeTextMap.set(77, ['End']);\r\n this.basicScanCodeTextMap.set(78, ['PgDn']);\r\n this.basicScanCodeTextMap.set(79, ['Right Arrow']);\r\n this.basicScanCodeTextMap.set(80, ['Left Arrow']);\r\n this.basicScanCodeTextMap.set(81, ['Down Arrow']);\r\n this.basicScanCodeTextMap.set(82, ['Up Arrow']);\r\n this.basicScanCodeTextMap.set(83, ['Num Lock']);\r\n this.basicScanCodeTextMap.set(84, ['/']);\r\n this.basicScanCodeTextMap.set(85, ['*']);\r\n this.basicScanCodeTextMap.set(86, ['-']);\r\n this.basicScanCodeTextMap.set(87, ['+']);\r\n this.basicScanCodeTextMap.set(88, ['Enter']);\r\n this.basicScanCodeTextMap.set(89, ['end', '1']);\r\n this.basicScanCodeTextMap.set(90, ['2']);\r\n this.basicScanCodeTextMap.set(91, ['pgdn', '3']);\r\n this.basicScanCodeTextMap.set(92, ['4']);\r\n this.basicScanCodeTextMap.set(93, ['5']);\r\n this.basicScanCodeTextMap.set(94, ['6']);\r\n this.basicScanCodeTextMap.set(95, ['home', '7']);\r\n this.basicScanCodeTextMap.set(96, ['8']);\r\n this.basicScanCodeTextMap.set(97, ['pgup', '9']);\r\n this.basicScanCodeTextMap.set(98, ['Insert', '0']);\r\n this.basicScanCodeTextMap.set(99, ['Del', '.']);\r\n this.basicScanCodeTextMap.set(104, ['F13']);\r\n this.basicScanCodeTextMap.set(105, ['F14']);\r\n this.basicScanCodeTextMap.set(106, ['F15']);\r\n this.basicScanCodeTextMap.set(107, ['F16']);\r\n this.basicScanCodeTextMap.set(108, ['F17']);\r\n this.basicScanCodeTextMap.set(109, ['F18']);\r\n this.basicScanCodeTextMap.set(110, ['F19']);\r\n this.basicScanCodeTextMap.set(111, ['F20']);\r\n this.basicScanCodeTextMap.set(112, ['F21']);\r\n this.basicScanCodeTextMap.set(113, ['F22']);\r\n this.basicScanCodeTextMap.set(114, ['F23']);\r\n this.basicScanCodeTextMap.set(115, ['F24']);\r\n this.basicScanCodeTextMap.set(118, ['Menu']);\r\n this.basicScanCodeTextMap.set(176, ['00']);\r\n this.basicScanCodeTextMap.set(177, ['000']);\r\n\r\n this.mediaScanCodeTextMap = new Map();\r\n this.mediaScanCodeTextMap.set(138, ['WWW']);\r\n this.mediaScanCodeTextMap.set(176, ['Play']);\r\n this.mediaScanCodeTextMap.set(177, ['Pause']);\r\n this.mediaScanCodeTextMap.set(181, ['Next']);\r\n this.mediaScanCodeTextMap.set(182, ['Prev']);\r\n this.mediaScanCodeTextMap.set(183, ['Stop']);\r\n this.mediaScanCodeTextMap.set(184, ['Eject']);\r\n this.mediaScanCodeTextMap.set(204, ['Eject', 'Stop']);\r\n this.mediaScanCodeTextMap.set(205, ['Pause', 'Play']);\r\n this.mediaScanCodeTextMap.set(226, ['Mute']);\r\n this.mediaScanCodeTextMap.set(233, ['Vol +']);\r\n this.mediaScanCodeTextMap.set(234, ['Vol -']);\r\n\r\n this.mediaScanCodeTextMap.set(406, ['Launch Web Browser']);\r\n this.mediaScanCodeTextMap.set(394, ['Launch Email Client']);\r\n this.mediaScanCodeTextMap.set(402, ['Launch Calculator']);\r\n\r\n this.sytemScanCodeTextMap = new Map();\r\n this.sytemScanCodeTextMap.set(129, ['Power Down']);\r\n this.sytemScanCodeTextMap.set(130, ['Sleep']);\r\n this.sytemScanCodeTextMap.set(131, ['Wake Up']);\r\n }\r\n\r\n private initScancodeIcons(): void {\r\n this.basicScancodeIcons = new Map();\r\n this.basicScancodeIcons.set(79, 'icon-kbd__mod--arrow-right');\r\n this.basicScancodeIcons.set(80, 'icon-kbd__mod--arrow-left');\r\n this.basicScancodeIcons.set(81, 'icon-kbd__mod--arrow-down');\r\n this.basicScancodeIcons.set(82, 'icon-kbd__mod--arrow-up');\r\n this.basicScancodeIcons.set(118, 'icon-kbd__mod--menu');\r\n\r\n this.mediaScancodeIcons = new Map();\r\n this.mediaScancodeIcons.set(138, 'icon-kbd__fn--browser');\r\n this.mediaScancodeIcons.set(176, 'icon-kbd__media--play');\r\n this.mediaScancodeIcons.set(177, 'icon-kbd__media--pause');\r\n this.mediaScancodeIcons.set(181, 'icon-kbd__media--next');\r\n this.mediaScancodeIcons.set(182, 'icon-kbd__media--prev');\r\n this.mediaScancodeIcons.set(184, 'icon-kbd__fn--eject');\r\n this.mediaScancodeIcons.set(226, 'icon-kbd__media--mute');\r\n this.mediaScancodeIcons.set(233, 'icon-kbd__media--vol-up');\r\n this.mediaScancodeIcons.set(234, 'icon-kbd__media--vol-down');\r\n\r\n this.mediaScancodeIcons.set(406, 'icon-kbd__media--web-browser');\r\n this.mediaScancodeIcons.set(394, 'icon-kbd__media--email-client');\r\n this.mediaScancodeIcons.set(402, 'icon-kbd__media--calculator');\r\n\r\n this.systemScancodeIcons = new Map();\r\n this.systemScancodeIcons.set(129, 'icon-kbd__system_power_down');\r\n this.systemScancodeIcons.set(130, 'icon-kbd__system_sleep');\r\n this.systemScancodeIcons.set(131, 'icon-kbd__system_wake_up');\r\n }\r\n\r\n private initNameToFileNames(): void {\r\n this.nameToFileName = new Map();\r\n this.nameToFileName.set('toggle', 'icon-kbd__fn--toggle');\r\n this.nameToFileName.set('switch-keymap', 'icon-kbd__mod--switch-keymap');\r\n this.nameToFileName.set('macro', 'icon-icon__macro');\r\n this.nameToFileName.set('shift', 'icon-kbd__default--modifier-shift');\r\n this.nameToFileName.set('option', 'icon-kbd__default--modifier-option');\r\n this.nameToFileName.set('command', 'icon-kbd__default--modifier-command');\r\n this.nameToFileName.set('mouse', 'icon-kbd__mouse');\r\n this.nameToFileName.set('left-arrow', 'icon-kbd__mod--arrow-left');\r\n this.nameToFileName.set('right-arrow', 'icon-kbd__mod--arrow-right');\r\n this.nameToFileName.set('down-arrow', 'icon-kbd__mod--arrow-down');\r\n this.nameToFileName.set('up-arrow', 'icon-kbd__mod--arrow-up');\r\n this.nameToFileName.set('scroll-left', 'icon-kbd__mouse--scroll-left');\r\n this.nameToFileName.set('scroll-right', 'icon-kbd__mouse--scroll-right');\r\n this.nameToFileName.set('scroll-down', 'icon-kbd__mouse--scroll-down');\r\n this.nameToFileName.set('scroll-up', 'icon-kbd__mouse--scroll-up');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/mapper.service.ts","/**\n * @license Angular v4.2.6\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\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 */\n/**\n * AnimationBuilder is an injectable service that is available when the {\\@link\n * BrowserAnimationsModule BrowserAnimationsModule} or {\\@link NoopAnimationsModule\n * NoopAnimationsModule} modules are used within an application.\n *\n * The purpose if this service is to produce an animation sequence programmatically within an\n * angular component or directive.\n *\n * Programmatic animations are first built and then a player is created when the build animation is\n * attached to an element.\n *\n * ```ts\n * // remember to include the BrowserAnimationsModule module for this to work...\n * import {AnimationBuilder} from '\\@angular/animations';\n *\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first build the animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // then create a player from it\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * When an animation is built an instance of {\\@link AnimationFactory AnimationFactory} will be\n * returned. Using that an {\\@link AnimationPlayer AnimationPlayer} can be created which can then be\n * used to start the animation.\n *\n * \\@experimental Animation support is experimental.\n * @abstract\n */\nvar AnimationBuilder = (function () {\n function AnimationBuilder() {\n }\n /**\n * @abstract\n * @param {?} animation\n * @return {?}\n */\n AnimationBuilder.prototype.build = function (animation) { };\n return AnimationBuilder;\n}());\n/**\n * An instance of `AnimationFactory` is returned from {\\@link AnimationBuilder#build\n * AnimationBuilder.build}.\n *\n * \\@experimental Animation support is experimental.\n * @abstract\n */\nvar AnimationFactory = (function () {\n function AnimationFactory() {\n }\n /**\n * @abstract\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n AnimationFactory.prototype.create = function (element, options) { };\n return AnimationFactory;\n}());\n/**\n * \\@experimental Animation support is experimental.\n */\nvar AUTO_STYLE = '*';\n/**\n * `trigger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `trigger` Creates an animation trigger which will a list of {\\@link state state} and {\\@link\n * transition transition} entries that will be evaluated when the expression bound to the trigger\n * changes.\n *\n * Triggers are registered within the component annotation data under the {\\@link\n * Component#animations animations section}. An animation trigger can be placed on an element\n * within a template by referencing the name of the trigger followed by the expression value that the\n * trigger is bound to (in the form of `[\\@triggerName]=\"expression\"`.\n *\n * ### Usage\n *\n * `trigger` will create an animation trigger reference based on the provided `name` value. The\n * provided `animation` value is expected to be an array consisting of {\\@link state state} and {\\@link\n * transition transition} declarations.\n *\n * ```typescript\n * \\@Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * tools/gulp-tasks/validate-commit-message.js ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} definitions\n * @return {?}\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* Trigger */, name: name, definitions: definitions, options: {} };\n}\n/**\n * `animate` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `animate` specifies an animation step that will apply the provided `styles` data for a given\n * amount of time based on the provided `timing` expression value. Calls to `animate` are expected\n * to be used within {\\@link sequence an animation sequence}, {\\@link group group}, or {\\@link\n * transition transition}.\n *\n * ### Usage\n *\n * The `animate` function accepts two input parameters: `timing` and `styles`:\n *\n * - `timing` is a string based value that can be a combination of a duration with optional delay\n * and easing values. The format for the expression breaks down to `duration delay easing`\n * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,\n * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the\n * `duration` value in millisecond form.\n * - `styles` is the style input data which can either be a call to {\\@link style style} or {\\@link\n * keyframes keyframes}. If left empty then the styles from the destination state will be collected\n * and used (this is useful when describing an animation step that will complete an animation by\n * {\\@link transition#the-final-animate-call animating to the final state}).\n *\n * ```typescript\n * // various functions for specifying timing data\n * animate(500, style(...))\n * animate(\"1s\", style(...))\n * animate(\"100ms 0.5s\", style(...))\n * animate(\"5s ease\", style(...))\n * animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\", style(...))\n *\n * // either style() of keyframes() can be used\n * animate(500, style({ background: \"red\" }))\n * animate(500, keyframes([\n * style({ background: \"blue\" })),\n * style({ background: \"red\" }))\n * ])\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?=} styles\n * @return {?}\n */\nfunction animate(timings, styles) {\n if (styles === void 0) { styles = null; }\n return { type: 4 /* Animate */, styles: styles, timings: timings };\n}\n/**\n * `group` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are\n * useful when a series of styles must be animated/closed off at different starting/ending times.\n *\n * The `group` function can either be used within a {\\@link sequence sequence} or a {\\@link transition\n * transition} and it will only continue to the next instruction once all of the inner animation\n * steps have completed.\n *\n * ### Usage\n *\n * The `steps` data that is passed into the `group` animation function can either consist of {\\@link\n * style style} or {\\@link animate animate} function calls. Each call to `style()` or `animate()`\n * within a group will be executed instantly (use {\\@link keyframes keyframes} or a {\\@link\n * animate#usage animate() with a delay value} to offset styles to be applied at a later time).\n *\n * ```typescript\n * group([\n * animate(\"1s\", { background: \"black\" }))\n * animate(\"2s\", { color: \"white\" }))\n * ])\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nfunction group(steps, options) {\n if (options === void 0) { options = null; }\n return { type: 3 /* Group */, steps: steps, options: options };\n}\n/**\n * `sequence` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by\n * default when an array is passed as animation data into {\\@link transition transition}.)\n *\n * The `sequence` function can either be used within a {\\@link group group} or a {\\@link transition\n * transition} and it will only continue to the next instruction once each of the inner animation\n * steps have completed.\n *\n * To perform animation styling in parallel with other animation steps then have a look at the\n * {\\@link group group} animation function.\n *\n * ### Usage\n *\n * The `steps` data that is passed into the `sequence` animation function can either consist of\n * {\\@link style style} or {\\@link animate animate} function calls. A call to `style()` will apply the\n * provided styling data immediately while a call to `animate()` will apply its styling data over a\n * given time depending on its timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 })),\n * animate(\"1s\", { opacity: 1 }))\n * ])\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nfunction sequence(steps, options) {\n if (options === void 0) { options = null; }\n return { type: 2 /* Sequence */, steps: steps, options: options };\n}\n/**\n * `style` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `style` declares a key/value object containing CSS properties/styles that can then be used for\n * {\\@link state animation states}, within an {\\@link sequence animation sequence}, or as styling data\n * for both {\\@link animate animate} and {\\@link keyframes keyframes}.\n *\n * ### Usage\n *\n * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs\n * to be defined.\n *\n * ```typescript\n * // string values are used for css properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical (pixel) values are also supported\n * style({ width: 100, height: 0 })\n * ```\n *\n * #### Auto-styles (using `*`)\n *\n * When an asterix (`*`) character is used as a value then it will be detected from the element\n * being animated and applied as animation data when the animation starts.\n *\n * This feature proves useful for a state depending on layout and/or environment factors; in such\n * cases the styles are calculated just before the animation starts.\n *\n * ```typescript\n * // the steps below will animate from 0 to the\n * // actual height of the element\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} tokens\n * @return {?}\n */\nfunction style(tokens) {\n return { type: 6 /* Style */, styles: tokens, offset: null };\n}\n/**\n * `state` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `state` declares an animation state within the given trigger. When a state is active within a\n * component then its associated styles will persist on the element that the trigger is attached to\n * (even when the animation ends).\n *\n * To animate between states, have a look at the animation {\\@link transition transition} DSL\n * function. To register states to an animation trigger please have a look at the {\\@link trigger\n * trigger} function.\n *\n * #### The `void` state\n *\n * The `void` state value is a reserved word that angular uses to determine when the element is not\n * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the\n * associated element is void).\n *\n * #### The `*` (default) state\n *\n * The `*` state (when styled) is a fallback state that will be used if the state that is being\n * animated is not declared within the trigger.\n *\n * ### Usage\n *\n * `state` will declare an animation state with its associated styles\n * within the given trigger.\n *\n * - `stateNameExpr` can be one or more state names separated by commas.\n * - `styles` refers to the {\\@link style styling data} that will be persisted on the element once\n * the state has been reached.\n *\n * ```typescript\n * // \"void\" is a reserved name for a state and is used to represent\n * // the state in which an element is detached from from the application.\n * state(\"void\", style({ height: 0 }))\n *\n * // user-defined states\n * state(\"closed\", style({ height: 0 }))\n * state(\"open, visible\", style({ height: \"*\" }))\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} styles\n * @return {?}\n */\nfunction state(name, styles) {\n return { type: 0 /* State */, name: name, styles: styles };\n}\n/**\n * `keyframes` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `keyframes` specifies a collection of {\\@link style style} entries each optionally characterized\n * by an `offset` value.\n *\n * ### Usage\n *\n * The `keyframes` animation function is designed to be used alongside the {\\@link animate animate}\n * animation function. Instead of applying animations from where they are currently to their\n * destination, keyframes can describe how each style entry is applied and at what point within the\n * animation arc (much like CSS Keyframe Animations do).\n *\n * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what\n * percentage of the animate time the styles will be applied.\n *\n * ```typescript\n * // the provided offset values describe when each backgroundColor value is applied.\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * Alternatively, if there are no `offset` values used within the style entries then the offsets\n * will be calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @return {?}\n */\nfunction keyframes(steps) {\n return { type: 5 /* Keyframes */, steps: steps };\n}\n/**\n * `transition` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n *\n * `transition` declares the {\\@link sequence sequence of animation steps} that will be run when the\n * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>\n * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting\n * and/or ending state).\n *\n * A function can also be provided as the `stateChangeExpr` argument for a transition and this\n * function will be executed each time a state change occurs. If the value returned within the\n * function is true then the associated animation will be run.\n *\n * Animation transitions are placed within an {\\@link trigger animation trigger}. For an transition\n * to animate to a state value and persist its styles then one or more {\\@link state animation\n * states} is expected to be defined.\n *\n * ### Usage\n *\n * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on\n * what the previous state is and what the current state has become. In other words, if a transition\n * is defined that matches the old/current state criteria then the associated animation will be\n * triggered.\n *\n * ```typescript\n * // all transition/state changes are defined within an animation trigger\n * trigger(\"myAnimationTrigger\", [\n * // if a state is defined then its styles will be persisted when the\n * // animation has fully completed itself\n * state(\"on\", style({ background: \"green\" })),\n * state(\"off\", style({ background: \"grey\" })),\n *\n * // a transition animation that will be kicked off when the state value\n * // bound to \"myAnimationTrigger\" changes from \"on\" to \"off\"\n * transition(\"on => off\", animate(500)),\n *\n * // it is also possible to do run the same animation for both directions\n * transition(\"on <=> off\", animate(500)),\n *\n * // or to define multiple states pairs separated by commas\n * transition(\"on => off, off => void\", animate(500)),\n *\n * // this is a catch-all state change for when an element is inserted into\n * // the page and the destination state is unknown\n * transition(\"void => *\", [\n * style({ opacity: 0 }),\n * animate(500)\n * ]),\n *\n * // this will capture a state change between any states\n * transition(\"* => *\", animate(\"1s 0s\")),\n *\n * // you can also go full out and include a function\n * transition((fromState, toState) => {\n * // when `true` then it will allow the animation below to be invoked\n * return fromState == \"off\" && toState == \"on\";\n * }, animate(\"1s 0s\"))\n * ])\n * ```\n *\n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * #### The final `animate` call\n *\n * If the final step within the transition steps is a call to `animate()` that **only** uses a\n * timing value with **no style data** then it will be automatically used as the final animation arc\n * for the element to animate itself to the final state. This involves an automatic mix of\n * adding/removing CSS styles so that the element will be in the exact state it should be for the\n * applied state to be presented correctly.\n *\n * ```\n * // start off by hiding the element, but make sure that it animates properly to whatever state\n * // is currently active for \"myAnimationTrigger\"\n * transition(\"void => *\", [\n * style({ opacity: 0 }),\n * animate(500)\n * ])\n * ```\n *\n * ### Transition Aliases (`:enter` and `:leave`)\n *\n * Given that enter (insertion) and leave (removal) animations are so common, the `transition`\n * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*\n * => void` state changes.\n *\n * ```\n * transition(\":enter\", [\n * style({ opacity: 0 }),\n * animate(500, style({ opacity: 1 }))\n * ])\n * transition(\":leave\", [\n * animate(500, style({ opacity: 0 }))\n * ])\n * ```\n *\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n *\n * \\@experimental Animation support is experimental.\n * @param {?} stateChangeExpr\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nfunction transition(stateChangeExpr, steps, options) {\n if (options === void 0) { options = null; }\n return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options: options };\n}\n/**\n * `animation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n *\n * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later\n * invoked in another animation or sequence. Reusable animations are designed to make use of\n * animation parameters and the produced animation can be used via the `useAnimation` method.\n *\n * ```\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'))\n * ], { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * If parameters are attached to an animation then they act as **default parameter values**. When an\n * animation is invoked via `useAnimation` then parameter values are allowed to be passed in\n * directly. If any of the passed in parameter values are missing then the default values will be\n * used.\n *\n * ```\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If one or more parameter values are missing before animated then an error will be thrown.\n *\n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nfunction animation(steps, options) {\n if (options === void 0) { options = null; }\n return { type: 8 /* Reference */, animation: steps, options: options };\n}\n/**\n * `animateChild` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It works by allowing a queried element to execute its own\n * animation within the animation sequence.\n *\n * Each time an animation is triggered in angular, the parent animation\n * will always get priority and any child animations will be blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations and then allow the animations to run using `animateChild`.\n *\n * The example HTML code below shows both parent and child elements that have animation\n * triggers that will execute at the same time.\n *\n * ```html\n * \n * \n *
\n *\n *
\n *
Hello
\n *
\n * one\n *
\n *
\n * two\n *
\n *
\n * three\n *
\n *
\n * ```\n *\n * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate\n * because it has priority. However, using `query` and `animateChild` each of the inner animations\n * can also fire:\n *\n * ```ts\n * // parent-child.component.ts\n * import {trigger, transition, animate, style, query, animateChild} from '\\@angular/animations';\n * \\@Component({\n * selector: 'parent-child-component',\n * animations: [\n * trigger('parentAnimation', [\n * transition('false => true', [\n * query('header', [\n * style({ opacity: 0 }),\n * animate(500, style({ opacity: 1 }))\n * ]),\n * query('\\@childAnimation', [\n * animateChild()\n * ])\n * ])\n * ]),\n * trigger('childAnimation', [\n * transition('false => true', [\n * style({ opacity: 0 }),\n * animate(500, style({ opacity: 1 }))\n * ])\n * ])\n * ]\n * })\n * class ParentChildCmp {\n * exp: boolean = false;\n * }\n * ```\n *\n * In the animation code above, when the `parentAnimation` transition kicks off it first queries to\n * find the header element and fades it in. It then finds each of the sub elements that contain the\n * `\\@childAnimation` trigger and then allows for their animations to fire.\n *\n * This example can be further extended by using stagger:\n *\n * ```ts\n * query('\\@childAnimation', stagger(100, [\n * animateChild()\n * ]))\n * ```\n *\n * Now each of the sub animations start off with respect to the `100ms` staggering step.\n *\n * ## The first frame of child animations\n * When sub animations are executed using `animateChild` the animation engine will always apply the\n * first frame of every sub animation immediately at the start of the animation sequence. This way\n * the parent animation does not need to set any initial styling data on the sub elements before the\n * sub animations kick off.\n *\n * In the example above the first frame of the `childAnimation`'s `false => true` transition\n * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`\n * animation transition sequence starts. Only then when the `\\@childAnimation` is queried and called\n * with `animateChild` will it then animate to its destination of `opacity: 1`.\n *\n * Note that this feature designed to be used alongside {\\@link query query()} and it will only work\n * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes\n * and transitions are not handled by this API).\n *\n * \\@experimental Animation support is experimental.\n * @param {?=} options\n * @return {?}\n */\nfunction animateChild(options) {\n if (options === void 0) { options = null; }\n return { type: 9 /* AnimateChild */, options: options };\n}\n/**\n * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It is used to kick off a reusable animation that is created using {\\@link\n * animation animation()}.\n *\n * \\@experimental Animation support is experimental.\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nfunction useAnimation(animation, options) {\n if (options === void 0) { options = null; }\n return { type: 10 /* AnimateRef */, animation: animation, options: options };\n}\n/**\n * `query` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n *\n * query() is used to find one or more inner elements within the current element that is\n * being animated within the sequence. The provided animation steps are applied\n * to the queried element (by default, an array is provided, then this will be\n * treated as an animation sequence).\n *\n * ### Usage\n *\n * query() is designed to collect mutiple elements and works internally by using\n * `element.querySelectorAll`. An additional options object can be provided which\n * can be used to limit the total amount of items to be collected.\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * query(), by default, will throw an error when zero items are found. If a query\n * has the `optional` flag set to true then this error will be ignored.\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Special Selector Values\n *\n * The selector value within a query can collect elements that contain angular-specific\n * characteristics\n * using special pseudo-selectors tokens.\n *\n * These include:\n *\n * - Querying for newly inserted/removed elements using `query(\":enter\")`/`query(\":leave\")`\n * - Querying all currently animating elements using `query(\":animating\")`\n * - Querying elements that contain an animation trigger using `query(\"\\@triggerName\")`\n * - Querying all elements that contain an animation triggers using `query(\"\\@*\")`\n * - Including the current element into the animation sequence using `query(\":self\")`\n *\n *\n * Each of these pseudo-selector tokens can be merged together into a combined query selector\n * string:\n *\n * ```\n * query(':self, .record:enter, .record:leave, \\@subTrigger', [...])\n * ```\n *\n * ### Demo\n *\n * ```\n * \\@Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 })),\n * query('.content', animate(1000, style({ opacity: 1 })),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * \\@experimental Animation support is experimental.\n * @param {?} selector\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nfunction query(selector, animation, options) {\n if (options === void 0) { options = null; }\n return { type: 11 /* Query */, selector: selector, animation: animation, options: options };\n}\n/**\n * `stagger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It is designed to be used inside of an animation {\\@link query query()}\n * and works by issuing a timing gap between after each queried item is animated.\n *\n * ### Usage\n *\n * In the example below there is a container element that wraps a list of items stamped out\n * by an ngFor. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * The component code for this looks as such:\n *\n * ```ts\n * import {trigger, transition, style, animate, query, stagger} from '\\@angular/animations';\n * \\@Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * //...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * And now for the animation trigger code:\n *\n * ```ts\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * Now each time the items are added/removed then either the opacity\n * fade-in animation will run or each removed item will be faded out.\n * When either of these animations occur then a stagger effect will be\n * applied after each item's animation is started.\n *\n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?} animation\n * @return {?}\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* Stagger */, timings: timings, animation: animation };\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 * @param {?} cb\n * @return {?}\n */\nfunction scheduleMicroTask(cb) {\n Promise.resolve(null).then(cb);\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 */\n/**\n * \\@experimental Animation support is experimental.\n */\nvar NoopAnimationPlayer = (function () {\n function NoopAnimationPlayer() {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this.parentPlayer = null;\n this.totalTime = 0;\n }\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype._onFinish = function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n NoopAnimationPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n NoopAnimationPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n NoopAnimationPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.hasStarted = function () { return this._started; };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.init = function () { };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.play = function () {\n if (!this.hasStarted()) {\n this.triggerMicrotask();\n this._onStart();\n }\n this._started = true;\n };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.triggerMicrotask = function () {\n var _this = this;\n scheduleMicroTask(function () { return _this._onFinish(); });\n };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype._onStart = function () {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.pause = function () { };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.restart = function () { };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.finish = function () { this._onFinish(); };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.destroy = function () {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.reset = function () { };\n /**\n * @param {?} p\n * @return {?}\n */\n NoopAnimationPlayer.prototype.setPosition = function (p) { };\n /**\n * @return {?}\n */\n NoopAnimationPlayer.prototype.getPosition = function () { return 0; };\n return NoopAnimationPlayer;\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 */\nvar AnimationGroupPlayer = (function () {\n /**\n * @param {?} _players\n */\n function AnimationGroupPlayer(_players) {\n var _this = this;\n this._players = _players;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n var doneCount = 0;\n var destroyCount = 0;\n var startCount = 0;\n var total = this._players.length;\n if (total == 0) {\n scheduleMicroTask(function () { return _this._onFinish(); });\n }\n else {\n this._players.forEach(function (player) {\n player.parentPlayer = _this;\n player.onDone(function () {\n if (++doneCount >= total) {\n _this._onFinish();\n }\n });\n player.onDestroy(function () {\n if (++destroyCount >= total) {\n _this._onDestroy();\n }\n });\n player.onStart(function () {\n if (++startCount >= total) {\n _this._onStart();\n }\n });\n });\n }\n this.totalTime = this._players.reduce(function (time, player) { return Math.max(time, player.totalTime); }, 0);\n }\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype._onFinish = function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.init = function () { this._players.forEach(function (player) { return player.init(); }); };\n /**\n * @param {?} fn\n * @return {?}\n */\n AnimationGroupPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype._onStart = function () {\n if (!this.hasStarted()) {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n this._started = true;\n }\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n AnimationGroupPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n AnimationGroupPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.hasStarted = function () { return this._started; };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.play = function () {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this._players.forEach(function (player) { return player.play(); });\n };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.pause = function () { this._players.forEach(function (player) { return player.pause(); }); };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.restart = function () { this._players.forEach(function (player) { return player.restart(); }); };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.finish = function () {\n this._onFinish();\n this._players.forEach(function (player) { return player.finish(); });\n };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.destroy = function () { this._onDestroy(); };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype._onDestroy = function () {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this._players.forEach(function (player) { return player.destroy(); });\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.reset = function () {\n this._players.forEach(function (player) { return player.reset(); });\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n };\n /**\n * @param {?} p\n * @return {?}\n */\n AnimationGroupPlayer.prototype.setPosition = function (p) {\n var /** @type {?} */ timeAtPosition = p * this.totalTime;\n this._players.forEach(function (player) {\n var /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n };\n /**\n * @return {?}\n */\n AnimationGroupPlayer.prototype.getPosition = function () {\n var /** @type {?} */ min = 0;\n this._players.forEach(function (player) {\n var /** @type {?} */ p = player.getPosition();\n min = Math.min(p, min);\n });\n return min;\n };\n Object.defineProperty(AnimationGroupPlayer.prototype, \"players\", {\n /**\n * @return {?}\n */\n get: function () { return this._players; },\n enumerable: true,\n configurable: true\n });\n return AnimationGroupPlayer;\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 */\nvar ɵPRE_STYLE = '!';\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 */\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\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 */\n/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\n/**\n * Generated bundle index. Do not edit.\n */\nexport { AnimationBuilder, AnimationFactory, AUTO_STYLE, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, NoopAnimationPlayer, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n//# sourceMappingURL=animations.es5.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/animations/@angular/animations.es5.js\n// module id = 33\n// module chunks = 1","export * from './keymap';\r\nexport * from './macro';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/index.ts","import '@ngrx/core/add/operator/select';\r\nimport { Action } from '@ngrx/store';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport { Helper as KeyActionHelper, KeyAction } from '../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../config-serializer/config-items/keymap';\r\nimport { Macro } from '../../config-serializer/config-items/macro';\r\nimport { UserConfiguration } from '../../config-serializer/config-items/user-configuration';\r\nimport { Layer } from '../../config-serializer/config-items/layer';\r\nimport { Module } from '../../config-serializer/config-items/module';\r\nimport { KeymapActions, MacroActions } from '../actions';\r\nimport { AppState } from '../index';\r\nimport { ActionTypes } from '../actions/user-config';\r\n\r\nconst initialState: UserConfiguration = new UserConfiguration();\r\n\r\nexport default function (state = initialState, action: Action): UserConfiguration {\r\n const changedUserConfiguration: UserConfiguration = Object.assign(new UserConfiguration(), state);\r\n\r\n switch (action.type) {\r\n case ActionTypes.LOAD_USER_CONFIG_SUCCESS: {\r\n return Object.assign(changedUserConfiguration, action.payload);\r\n }\r\n\r\n case KeymapActions.ADD:\r\n case KeymapActions.DUPLICATE:\r\n {\r\n const newKeymap: Keymap = new Keymap(action.payload);\r\n newKeymap.abbreviation = generateAbbr(state.keymaps, newKeymap.abbreviation);\r\n newKeymap.name = generateName(state.keymaps, newKeymap.name);\r\n newKeymap.isDefault = (state.keymaps.length === 0);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.concat(newKeymap);\r\n break;\r\n }\r\n case KeymapActions.EDIT_NAME:\r\n {\r\n const name: string = generateName(state.keymaps, action.payload.name);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.map((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload.abbr) {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.name = name;\r\n }\r\n return keymap;\r\n });\r\n break;\r\n }\r\n case KeymapActions.EDIT_ABBR:\r\n const abbr: string = generateAbbr(state.keymaps, action.payload.newAbbr);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.map((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload.abbr) {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.abbreviation = abbr;\r\n } else {\r\n keymap = keymap.renameKeymap(action.payload.abbr, action.payload.newAbbr);\r\n }\r\n\r\n return keymap;\r\n });\r\n break;\r\n case KeymapActions.SET_DEFAULT:\r\n changedUserConfiguration.keymaps = state.keymaps.map((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload || keymap.isDefault) {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.isDefault = keymap.abbreviation === action.payload;\r\n }\r\n\r\n return keymap;\r\n });\r\n break;\r\n case KeymapActions.REMOVE:\r\n let isDefault: boolean;\r\n\r\n const filtered: Keymap[] = state.keymaps.filter((keymap: Keymap) => {\r\n if (keymap.abbreviation === action.payload) {\r\n isDefault = keymap.isDefault;\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // If deleted one is default set default keymap to the first on the list of keymaps\r\n if (isDefault && filtered.length > 0) {\r\n filtered[0].isDefault = true;\r\n }\r\n\r\n // Check for the deleted keymap in other keymaps\r\n changedUserConfiguration.keymaps = filtered.map(keymap => {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.layers = checkExistence(keymap.layers, 'keymapAbbreviation', action.payload);\r\n\r\n return keymap;\r\n });\r\n break;\r\n\r\n case KeymapActions.SAVE_KEY:\r\n {\r\n const newKeymap: Keymap = Object.assign(new Keymap(), action.payload.keymap);\r\n newKeymap.layers = newKeymap.layers.slice();\r\n\r\n const layerIndex: number = action.payload.layer;\r\n const newLayer: Layer = Object.assign(new Layer(), newKeymap.layers[layerIndex]);\r\n newKeymap.layers[layerIndex] = newLayer;\r\n\r\n const moduleIndex: number = action.payload.module;\r\n const newModule: Module = Object.assign(new Module(), newLayer.modules[moduleIndex]);\r\n newLayer.modules = newLayer.modules.slice();\r\n newLayer.modules[moduleIndex] = newModule;\r\n\r\n const keyIndex: number = action.payload.key;\r\n newModule.keyActions = newModule.keyActions.slice();\r\n newModule.keyActions[keyIndex] = KeyActionHelper.createKeyAction(action.payload.keyAction);\r\n\r\n changedUserConfiguration.keymaps = state.keymaps.map(keymap => {\r\n if (keymap.abbreviation === newKeymap.abbreviation) {\r\n keymap = newKeymap;\r\n }\r\n\r\n return keymap;\r\n });\r\n break;\r\n }\r\n case KeymapActions.CHECK_MACRO:\r\n changedUserConfiguration.keymaps = state.keymaps.map(keymap => {\r\n keymap = Object.assign(new Keymap(), keymap);\r\n keymap.layers = checkExistence(keymap.layers, '_macroId', action.payload);\r\n return keymap;\r\n });\r\n break;\r\n case MacroActions.ADD:\r\n {\r\n const newMacro = new Macro();\r\n newMacro.id = generateMacroId(state.macros);\r\n newMacro.name = generateName(state.macros, 'New macro');\r\n newMacro.isLooped = false;\r\n newMacro.isPrivate = true;\r\n newMacro.macroActions = [];\r\n\r\n changedUserConfiguration.macros = state.macros.concat(newMacro);\r\n break;\r\n }\r\n case MacroActions.DUPLICATE:\r\n {\r\n const newMacro = new Macro(action.payload);\r\n newMacro.name = generateName(state.macros, newMacro.name);\r\n newMacro.id = generateMacroId(state.macros);\r\n\r\n changedUserConfiguration.macros = state.macros.concat(newMacro);\r\n break;\r\n }\r\n case MacroActions.EDIT_NAME:\r\n {\r\n const name: string = generateName(state.macros, action.payload.name);\r\n\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro.name = name;\r\n }\r\n\r\n return macro;\r\n });\r\n\r\n break;\r\n }\r\n case MacroActions.REMOVE:\r\n changedUserConfiguration.macros = state.macros.filter((macro: Macro) => macro.id !== action.payload);\r\n break;\r\n case MacroActions.ADD_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro = new Macro(macro);\r\n macro.macroActions.push(action.payload.action);\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n case MacroActions.SAVE_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro = new Macro(macro);\r\n macro.macroActions[action.payload.index] = action.payload.action;\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n case MacroActions.DELETE_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n macro = new Macro(macro);\r\n macro.macroActions.splice(action.payload.index, 1);\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n case MacroActions.REORDER_ACTION:\r\n changedUserConfiguration.macros = state.macros.map((macro: Macro) => {\r\n if (macro.id === action.payload.id) {\r\n let newIndex: number = action.payload.newIndex;\r\n\r\n // We need to reduce the new index for one when we are moving action down\r\n if (newIndex > action.payload.oldIndex) {\r\n --newIndex;\r\n }\r\n\r\n macro = new Macro(macro);\r\n macro.macroActions.splice(\r\n newIndex,\r\n 0,\r\n macro.macroActions.splice(action.payload.oldIndex, 1)[0]\r\n );\r\n }\r\n\r\n return macro;\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return changedUserConfiguration;\r\n}\r\n\r\nexport function getUserConfiguration(): (state$: Observable) => Observable {\r\n return (state$: Observable) => state$\r\n .select(state => state.userConfiguration);\r\n}\r\n\r\nexport function getKeymaps(): (state$: Observable) => Observable {\r\n return (state$: Observable) => state$\r\n .select(state => state.userConfiguration.keymaps);\r\n}\r\n\r\nexport function getKeymap(abbr: string) {\r\n if (abbr === undefined) {\r\n return getDefaultKeymap();\r\n }\r\n\r\n return (state$: Observable) => getKeymaps()(state$)\r\n .map((keymaps: Keymap[]) =>\r\n keymaps.find((keymap: Keymap) => keymap.abbreviation === abbr)\r\n );\r\n}\r\n\r\nexport function getDefaultKeymap() {\r\n return (state$: Observable) => getKeymaps()(state$)\r\n .map((keymaps: Keymap[]) =>\r\n keymaps.find((keymap: Keymap) => keymap.isDefault)\r\n );\r\n}\r\n\r\nexport function getMacros(): (state$: Observable) => Observable {\r\n return (state$: Observable) => state$\r\n .select(state => state.userConfiguration.macros);\r\n}\r\n\r\nexport function getMacro(id: number) {\r\n if (isNaN(id)) {\r\n return () => Observable.of(undefined);\r\n } else {\r\n return (state$: Observable) => getMacros()(state$)\r\n .map((macros: Macro[]) => macros.find((macro: Macro) => macro.id === id));\r\n }\r\n}\r\n\r\nfunction generateAbbr(keymaps: Keymap[], abbr: string): string {\r\n const chars: string[] = '23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');\r\n let position = 0;\r\n\r\n while (keymaps.some((keymap: Keymap) => keymap.abbreviation === abbr)) {\r\n abbr = abbr.substring(0, abbr.length - 1) + chars[position];\r\n ++position;\r\n }\r\n\r\n return abbr;\r\n}\r\n\r\nfunction generateName(items: { name: string }[], name: string) {\r\n let suffix = 2;\r\n const oldName: string = name;\r\n\r\n while (items.some(item => item.name === name)) {\r\n name = oldName + ` (${suffix})`;\r\n ++suffix;\r\n }\r\n\r\n return name;\r\n}\r\n\r\nfunction generateMacroId(macros: Macro[]) {\r\n let newId = 0;\r\n\r\n macros.forEach((macro: Macro) => {\r\n if (macro.id > newId) {\r\n newId = macro.id;\r\n }\r\n });\r\n\r\n return newId + 1;\r\n}\r\n\r\nfunction checkExistence(layers: Layer[], property: string, value: any): Layer[] {\r\n const keyActionsToClear: {\r\n layerIdx: number,\r\n moduleIdx: number,\r\n keyActionIdx: number\r\n }[] = [];\r\n for (let layerIdx = 0; layerIdx < layers.length; ++layerIdx) {\r\n const modules = layers[layerIdx].modules;\r\n for (let moduleIdx = 0; moduleIdx < modules.length; ++moduleIdx) {\r\n const keyActions = modules[moduleIdx].keyActions;\r\n for (let keyActionIdx = 0; keyActionIdx < keyActions.length; ++keyActionIdx) {\r\n const action = keyActions[keyActionIdx];\r\n if (action && action.hasOwnProperty(property) && action[property] === value) {\r\n keyActionsToClear.push({\r\n layerIdx,\r\n moduleIdx,\r\n keyActionIdx\r\n });\r\n }\r\n }\r\n }\r\n }\r\n if (keyActionsToClear.length === 0) {\r\n return layers;\r\n }\r\n\r\n const newLayers = [...layers];\r\n for (const path of keyActionsToClear) {\r\n if (newLayers[path.layerIdx] === layers[path.layerIdx]) {\r\n newLayers[path.layerIdx] = Object.assign(new Layer(), newLayers[path.layerIdx]);\r\n newLayers[path.layerIdx].modules = [...newLayers[path.layerIdx].modules];\r\n }\r\n const newModules = newLayers[path.layerIdx].modules;\r\n if (newModules[path.moduleIdx] === layers[path.layerIdx].modules[path.moduleIdx]) {\r\n newModules[path.moduleIdx] = Object.assign(new Module(), newModules[path.moduleIdx]);\r\n newModules[path.moduleIdx].keyActions = [...newModules[path.moduleIdx].keyActions];\r\n }\r\n newModules[path.moduleIdx].keyActions[path.keyActionIdx] = undefined;\r\n }\r\n\r\n return newLayers;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/reducers/user-configuration.ts","export * from './delay-macro-action';\r\nexport * from './key-macro-action';\r\nexport * from './macro-action';\r\nexport * from './move-mouse-macro-action';\r\nexport * from './mouse-button-macro-action';\r\nexport * from './scroll-mouse-macro-action';\r\nexport * from './text-macro-action';\r\nexport * from './helper';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/index.ts","import { EventEmitter, Output } from '@angular/core';\r\n\r\nimport { KeyAction } from '../../../config-serializer/config-items/key-action';\r\n\r\nexport abstract class Tab {\r\n @Output() validAction = new EventEmitter();\r\n\r\n abstract keyActionValid(): boolean;\r\n abstract fromKeyAction(keyAction: KeyAction): boolean;\r\n abstract toKeyAction(): KeyAction;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/tab.ts","import { Macro } from '../macro';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\n\r\nexport enum KeyActionId {\r\n NoneAction = 0,\r\n KeystrokeAction = 1,\r\n /*\r\n 1 - 31 are reserved for KeystrokeAction\r\n 5 bits:\r\n 1: Do we have scancode?\r\n 2: Do we have modifiers?\r\n 3: Do we have longpress?\r\n 4-5: What kind of keystroke? (basic, short/long media, system)\r\n */\r\n LastKeystrokeAction = 31, // TODO: remove this after refactoring the keyActionId check\r\n SwitchLayerAction = 32,\r\n SwitchKeymapAction = 33,\r\n MouseAction = 34,\r\n PlayMacroAction = 35\r\n}\r\n\r\nexport let keyActionType = {\r\n NoneAction : 'none',\r\n KeystrokeAction : 'keystroke',\r\n SwitchLayerAction : 'switchLayer',\r\n SwitchKeymapAction : 'switchKeymap',\r\n MouseAction : 'mouse',\r\n PlayMacroAction : 'playMacro'\r\n};\r\n\r\nexport abstract class KeyAction {\r\n\r\n assertKeyActionType(jsObject: any): void {\r\n const keyActionClassname: string = this.constructor.name;\r\n const keyActionTypeString: string = keyActionType[keyActionClassname];\r\n if (jsObject.keyActionType !== keyActionTypeString) {\r\n throw `Invalid ${keyActionClassname}.keyActionType: ${jsObject.keyActionType}`;\r\n }\r\n }\r\n\r\n readAndAssertKeyActionId(buffer: UhkBuffer): KeyActionId {\r\n const classname: string = this.constructor.name;\r\n const readKeyActionId: number = buffer.readUInt8();\r\n const keyActionId: number = KeyActionId[classname];\r\n if (keyActionId === KeyActionId.KeystrokeAction) {\r\n if (readKeyActionId < KeyActionId.KeystrokeAction || readKeyActionId > KeyActionId.LastKeystrokeAction) {\r\n throw `Invalid ${classname} first byte: ${readKeyActionId}`;\r\n }\r\n } else if (readKeyActionId !== keyActionId) {\r\n throw `Invalid ${classname} first byte: ${readKeyActionId}`;\r\n }\r\n return readKeyActionId;\r\n }\r\n\r\n abstract toJsonObject(macros?: Macro[]): any;\r\n abstract toBinary(buffer: UhkBuffer, macros?: Macro[]): any;\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): KeyAction {\r\n return this;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/key-action.ts","import { UhkBuffer } from '../uhk-buffer';\r\nimport { Layer } from './layer';\r\nimport { Macro } from './macro';\r\nimport { SwitchLayerAction, KeyAction } from './key-action';\r\n\r\nexport class Keymap {\r\n\r\n name: string;\r\n\r\n description: string;\r\n\r\n abbreviation: string;\r\n\r\n isDefault: boolean;\r\n\r\n layers: Layer[];\r\n\r\n constructor(keymap?: Keymap) {\r\n if (!keymap) {\r\n return;\r\n }\r\n\r\n this.name = keymap.name;\r\n this.description = keymap.description;\r\n this.abbreviation = keymap.abbreviation;\r\n this.isDefault = keymap.isDefault;\r\n this.layers = keymap.layers.map(layer => new Layer(layer));\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros?: Macro[]): Keymap {\r\n this.isDefault = jsonObject.isDefault;\r\n this.abbreviation = jsonObject.abbreviation;\r\n this.name = jsonObject.name;\r\n this.description = jsonObject.description;\r\n this.layers = jsonObject.layers.map((layer: any) => new Layer().fromJsonObject(layer, macros));\r\n this.normalize();\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros?: Macro[]): Keymap {\r\n this.abbreviation = buffer.readString();\r\n this.isDefault = buffer.readBoolean();\r\n this.name = buffer.readString();\r\n this.description = buffer.readString();\r\n this.layers = buffer.readArray(uhkBuffer => {\r\n return new Layer().fromBinary(uhkBuffer, macros);\r\n });\r\n this.normalize();\r\n return this;\r\n }\r\n\r\n toJsonObject(macros?: Macro[]): any {\r\n return {\r\n isDefault: this.isDefault,\r\n abbreviation: this.abbreviation,\r\n name: this.name,\r\n description: this.description,\r\n layers: this.layers.map(layer => layer.toJsonObject(macros))\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros?: Macro[]): void {\r\n buffer.writeString(this.abbreviation);\r\n buffer.writeBoolean(this.isDefault);\r\n buffer.writeString(this.name);\r\n buffer.writeString(this.description);\r\n buffer.writeArray(this.layers, (uhkBuffer: UhkBuffer, layer: Layer) => {\r\n layer.toBinary(uhkBuffer, macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): Keymap {\r\n let layers: Layer[];\r\n let layerModified = false;\r\n this.layers.forEach((layer, index) => {\r\n const newLayer = layer.renameKeymap(oldAbbr, newAbbr);\r\n if (newLayer !== layer) {\r\n if (!layerModified) {\r\n layers = this.layers.slice();\r\n layerModified = true;\r\n }\r\n layers[index] = newLayer;\r\n }\r\n });\r\n if (layerModified) {\r\n const newKeymap = Object.assign(new Keymap(), this);\r\n newKeymap.layers = layers;\r\n return newKeymap;\r\n }\r\n return this;\r\n }\r\n\r\n private normalize() {\r\n // Removes all the SwitchLayerActions from any non base layer\r\n for (let i = 1; i < this.layers.length; ++i) {\r\n for (const module of this.layers[i].modules) {\r\n module.keyActions = module.keyActions.map(keyAction => {\r\n if (keyAction instanceof SwitchLayerAction) {\r\n return undefined;\r\n }\r\n return keyAction;\r\n });\r\n }\r\n }\r\n\r\n // Adds the SwitchLayerActions from the base layer to any none base layer\r\n const baseLayerModules = this.layers[0].modules;\r\n for (let i = 0; i < baseLayerModules.length; ++i) {\r\n baseLayerModules[i].keyActions.forEach((keyAction: KeyAction, keyActionIndex: number) => {\r\n if (keyAction instanceof SwitchLayerAction) {\r\n for (let j = 1; j < this.layers.length; ++j) {\r\n this.layers[j].modules[i].keyActions[keyActionIndex] = new SwitchLayerAction(keyAction);\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/keymap.ts","import { UhkBuffer } from '../../uhk-buffer';\r\n\r\nexport enum MacroActionId {\r\n KeyMacroAction = 0,\r\n /*\r\n 0 - 63 are reserved for KeyMacroAction\r\n 2 bits for: PressKeyMacroAction / HoldKeyMacroAction / ReleaseKeyMacroAction / undefined\r\n 2 bits for: with only scancode / only modifiers / both scancode and modifiers / undefined\r\n 2 bits for: scancode type basic, short media, long media, system. It should be only used if scancode does exist.\r\n */\r\n LastKeyMacroAction = 63,\r\n MouseButtonMacroAction = 64,\r\n /*\r\n 64 - 66 are reserved for MouseButtonMacroAction\r\n PressMouseButtonsMacroAction = 64,\r\n HoldMouseButtonsMacroAction = 65,\r\n ReleaseMouseButtonsMacroAction = 66,\r\n */\r\n LastMouseButtonMacroAction = 66,\r\n MoveMouseMacroAction = 67,\r\n ScrollMouseMacroAction = 68,\r\n DelayMacroAction = 69,\r\n TextMacroAction = 70\r\n}\r\n\r\nexport enum MacroSubAction {\r\n press = 0,\r\n hold = 1,\r\n release = 2\r\n}\r\n\r\nexport let macroActionType = {\r\n KeyMacroAction : 'key',\r\n MouseButtonMacroAction : 'mouseButton',\r\n MoveMouseMacroAction : 'moveMouse',\r\n ScrollMouseMacroAction : 'scrollMouse',\r\n DelayMacroAction : 'delay',\r\n TextMacroAction : 'text'\r\n};\r\n\r\nexport abstract class MacroAction {\r\n assertMacroActionType(jsObject: any) {\r\n const macroActionClassname = this.constructor.name;\r\n const macroActionTypeString = macroActionType[macroActionClassname];\r\n if (jsObject.macroActionType !== macroActionTypeString) {\r\n throw `Invalid ${macroActionClassname}.macroActionType: ${jsObject.macroActionType}`;\r\n }\r\n }\r\n\r\n readAndAssertMacroActionId(buffer: UhkBuffer): MacroActionId {\r\n const classname: string = this.constructor.name;\r\n const readMacroActionId: MacroActionId = buffer.readUInt8();\r\n const macroActionId: MacroActionId = MacroActionId[classname];\r\n if (macroActionId === MacroActionId.KeyMacroAction) {\r\n if (readMacroActionId < MacroActionId.KeyMacroAction || readMacroActionId > MacroActionId.LastKeyMacroAction) {\r\n throw `Invalid ${classname} first byte: ${readMacroActionId}`;\r\n }\r\n } else if (macroActionId === MacroActionId.MouseButtonMacroAction) {\r\n if (readMacroActionId < MacroActionId.MouseButtonMacroAction ||\r\n readMacroActionId > MacroActionId.LastMouseButtonMacroAction) {\r\n throw `Invalid ${classname} first byte: ${readMacroActionId}`;\r\n }\r\n } else if (readMacroActionId !== macroActionId) {\r\n throw `Invalid ${classname} first byte: ${readMacroActionId}`;\r\n }\r\n return readMacroActionId;\r\n }\r\n\r\n abstract toJsonObject(): any;\r\n abstract toBinary(buffer: UhkBuffer): void;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/macro-action.ts","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\nvar keys = objectKeys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n processNextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n processNextTick(cb, err);\n};\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_duplex.js\n// module id = 50\n// module chunks = 1","import { Constants } from './constants';\r\n\r\nexport { Constants };\r\n\r\n// Source: http://stackoverflow.com/questions/13720256/javascript-regex-camelcase-to-sentence\r\nexport function camelCaseToSentence(camelCasedText: string): string {\r\n return camelCasedText.replace(/^[a-z]|[A-Z]/g, function (v, i) {\r\n return i === 0 ? v.toUpperCase() : ' ' + v.toLowerCase();\r\n });\r\n}\r\n\r\nexport function capitalizeFirstLetter(text: string): string {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n}\r\n\r\n/**\r\n * This function coerces a string into a string literal type.\r\n * Using tagged union types in TypeScript 2.0, this enables\r\n * powerful typechecking of our reducers.\r\n *\r\n * Since every action label passes through this function it\r\n * is a good place to ensure all of our action labels\r\n * are unique.\r\n */\r\n\r\nconst typeCache: { [label: string]: boolean } = {};\r\n\r\nexport function type(label: T | ''): T {\r\n if (typeCache[label]) {\r\n throw new Error(`Action type \"${label}\" is not unique\"`);\r\n }\r\n\r\n typeCache[label] = true;\r\n\r\n return label;\r\n}\r\n\r\nexport { IpcEvents } from './ipcEvents';\r\n\r\nexport function runInElectron() {\r\n return window && (window).process && (window).process.type;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/util/index.ts","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/inherits/inherits_browser.js\n// module id = 58\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-util-is/lib/util.js\n// module id = 76\n// module chunks = 1","export enum KeystrokeType {\r\n basic,\r\n shortMedia,\r\n longMedia,\r\n system\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/keystroke-type.ts","import { assertUInt8 } from '../assert';\r\nimport { UhkBuffer } from '../uhk-buffer';\r\nimport { Helper as MacroActionHelper, MacroAction } from './macro-action';\r\n\r\nexport class Macro {\r\n\r\n @assertUInt8\r\n id: number;\r\n\r\n isLooped: boolean;\r\n\r\n isPrivate: boolean;\r\n\r\n name: string;\r\n\r\n macroActions: MacroAction[];\r\n\r\n constructor(other?: Macro) {\r\n if (!other) {\r\n return;\r\n }\r\n this.id = other.id;\r\n this.isLooped = other.isLooped;\r\n this.isPrivate = other.isPrivate;\r\n this.name = other.name;\r\n this.macroActions = other.macroActions.map(macroAction => MacroActionHelper.createMacroAction(macroAction));\r\n }\r\n\r\n fromJsonObject(jsonObject: any): Macro {\r\n this.isLooped = jsonObject.isLooped;\r\n this.isPrivate = jsonObject.isPrivate;\r\n this.name = jsonObject.name;\r\n this.macroActions = jsonObject.macroActions.map((macroAction: any) => MacroActionHelper.createMacroAction(macroAction));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): Macro {\r\n this.isLooped = buffer.readBoolean();\r\n this.isPrivate = buffer.readBoolean();\r\n this.name = buffer.readString();\r\n const macroActionsLength: number = buffer.readCompactLength();\r\n this.macroActions = [];\r\n for (let i = 0; i < macroActionsLength; ++i) {\r\n this.macroActions.push(MacroActionHelper.createMacroAction(buffer));\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n isLooped: this.isLooped,\r\n isPrivate: this.isPrivate,\r\n name: this.name,\r\n macroActions: this.macroActions.map(macroAction => macroAction.toJsonObject())\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeBoolean(this.isLooped);\r\n buffer.writeBoolean(this.isPrivate);\r\n buffer.writeString(this.name);\r\n buffer.writeArray(this.macroActions);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro.ts","export * from './tab';\r\nexport { KeymapTabComponent } from './keymap';\r\nexport { KeypressTabComponent } from './keypress';\r\nexport { LayerTabComponent } from './layer';\r\nexport { MacroTabComponent } from './macro';\r\nexport { MouseTabComponent } from './mouse';\r\nexport { NoneTabComponent } from './none';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/index.ts","'use strict';\n\nif (!process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = nextTick;\n} else {\n module.exports = process.nextTick;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process-nextick-args/index.js\n// module id = 101\n// module chunks = 1","export { StoreDevtoolsModule } from './src/instrument';\nexport { StoreDevtools } from './src/devtools';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/index.js\n// module id = 130\n// module chunks = 1","import { StoreDevtoolActions } from './actions';\nexport function difference(first, second) {\n return first.filter(function (item) { return second.indexOf(item) < 0; });\n}\n/**\n * Provides an app's view into the state of the lifted store.\n */\nexport function unliftState(liftedState) {\n var computedStates = liftedState.computedStates, currentStateIndex = liftedState.currentStateIndex;\n var state = computedStates[currentStateIndex].state;\n return state;\n}\nexport function unliftAction(liftedState) {\n return liftedState.actionsById[liftedState.nextActionId - 1];\n}\n/**\n* Lifts an app's action into an action on the lifted store.\n*/\nexport function liftAction(action) {\n return StoreDevtoolActions.performAction(action);\n}\nexport function applyOperators(input$, operators) {\n return operators.reduce(function (source$, _a) {\n var operator = _a[0], args = _a.slice(1);\n return operator.apply(source$, args);\n }, input$);\n}\n//# sourceMappingURL=utils.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/utils.js\n// module id = 131\n// module chunks = 1","export var ActionTypes = {\n PERFORM_ACTION: 'PERFORM_ACTION',\n RESET: 'RESET',\n ROLLBACK: 'ROLLBACK',\n COMMIT: 'COMMIT',\n SWEEP: 'SWEEP',\n TOGGLE_ACTION: 'TOGGLE_ACTION',\n SET_ACTIONS_ACTIVE: 'SET_ACTIONS_ACTIVE',\n JUMP_TO_STATE: 'JUMP_TO_STATE',\n IMPORT_STATE: 'IMPORT_STATE'\n};\n/**\n* Action creators to change the History state.\n*/\nexport var StoreDevtoolActions = {\n performAction: function (action) {\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' +\n 'Have you misspelled a constant?');\n }\n return { type: ActionTypes.PERFORM_ACTION, action: action, timestamp: Date.now() };\n },\n reset: function () {\n return { type: ActionTypes.RESET, timestamp: Date.now() };\n },\n rollback: function () {\n return { type: ActionTypes.ROLLBACK, timestamp: Date.now() };\n },\n commit: function () {\n return { type: ActionTypes.COMMIT, timestamp: Date.now() };\n },\n sweep: function () {\n return { type: ActionTypes.SWEEP };\n },\n toggleAction: function (id) {\n return { type: ActionTypes.TOGGLE_ACTION, id: id };\n },\n setActionsActive: function (start, end, active) {\n if (active === void 0) { active = true; }\n return { type: ActionTypes.SET_ACTIONS_ACTIVE, start: start, end: end, active: active };\n },\n jumpToState: function (index) {\n return { type: ActionTypes.JUMP_TO_STATE, index: index };\n },\n importState: function (nextLiftedState) {\n return { type: ActionTypes.IMPORT_STATE, nextLiftedState: nextLiftedState };\n }\n};\n//# sourceMappingURL=actions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/actions.js\n// module id = 132\n// module chunks = 1","\"use strict\";\nvar pluck_1 = require('rxjs/operator/pluck');\nvar map_1 = require('rxjs/operator/map');\nvar distinctUntilChanged_1 = require('rxjs/operator/distinctUntilChanged');\nfunction select(pathOrMapFn) {\n var paths = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n paths[_i - 1] = arguments[_i];\n }\n var mapped$;\n if (typeof pathOrMapFn === 'string') {\n mapped$ = pluck_1.pluck.call.apply(pluck_1.pluck, [this, pathOrMapFn].concat(paths));\n }\n else if (typeof pathOrMapFn === 'function') {\n mapped$ = map_1.map.call(this, pathOrMapFn);\n }\n else {\n throw new TypeError((\"Unexpected type \" + typeof pathOrMapFn + \" in select operator,\")\n + \" expected 'string' or 'function'\");\n }\n return distinctUntilChanged_1.distinctUntilChanged.call(mapped$);\n}\nexports.select = select;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/core/operator/select.js\n// module id = 133\n// module chunks = 1","import { Injectable } from '@angular/core';\nexport var DockActions = (function () {\n function DockActions() {\n }\n DockActions.prototype.toggleVisibility = function () {\n return { type: DockActions.TOGGLE_VISIBILITY };\n };\n DockActions.prototype.changePosition = function () {\n return { type: DockActions.CHANGE_POSITION };\n };\n DockActions.prototype.changeSize = function (size) {\n return { type: DockActions.CHANGE_SIZE, payload: size };\n };\n DockActions.prototype.changeMonitor = function () {\n return { type: DockActions.CHANGE_MONITOR };\n };\n DockActions.TOGGLE_VISIBILITY = '@@redux-devtools-log-monitor/TOGGLE_VISIBILITY';\n DockActions.CHANGE_POSITION = '@@redux-devtools-log-monitor/CHANGE_POSITION';\n DockActions.CHANGE_SIZE = '@@redux-devtools-log-monitor/CHANGE_SIZE';\n DockActions.CHANGE_MONITOR = '@@redux-devtools-log-monitor/CHANGE_MONITOR';\n DockActions.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n DockActions.ctorParameters = [];\n return DockActions;\n}());\n//# sourceMappingURL=actions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/actions.js\n// module id = 134\n// module chunks = 1","export var routerActions = {\n GO: '[Router] Go',\n REPLACE: '[Router] Replace',\n SEARCH: '[Router] Search',\n SHOW: '[Router] Show',\n BACK: '[Router] Back',\n FORWARD: '[Router] Forward',\n UPDATE_LOCATION: '[Router] Update Location'\n};\nexport var routerActionTypes = Object.keys(routerActions).map(function (key) { return routerActions[key]; });\nexport function go(path, query, extras) {\n var payload = { path: path, query: query, extras: extras };\n return { type: routerActions.GO, payload: payload };\n}\nexport function replace(path, query, extras) {\n var payload = { path: path, query: query, extras: extras };\n return { type: routerActions.REPLACE, payload: payload };\n}\nexport function search(query, extras) {\n var payload = { query: query, extras: extras };\n return { type: routerActions.SEARCH, payload: payload };\n}\nexport function show(path, query, extras) {\n var payload = { path: path, query: query, extras: extras };\n return { type: routerActions.SHOW, payload: payload };\n}\nexport function back() {\n var payload = {};\n return { type: routerActions.BACK, payload: payload };\n}\nexport function forward() {\n var payload = {};\n return { type: routerActions.FORWARD, payload: payload };\n}\n//# sourceMappingURL=actions.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/router-store/src/actions.js\n// module id = 135\n// module chunks = 1","import { Action } from '@ngrx/store';\r\n\r\nimport { KeyAction } from '../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../config-serializer/config-items/keymap';\r\nimport { Macro } from '../../config-serializer/config-items/macro';\r\n\r\nexport namespace KeymapActions {\r\n export const PREFIX = '[Keymap] ';\r\n export const ADD = KeymapActions.PREFIX + 'Add keymap';\r\n export const DUPLICATE = KeymapActions.PREFIX + 'Duplicate keymap';\r\n export const EDIT_ABBR = KeymapActions.PREFIX + 'Edit keymap abbreviation';\r\n export const EDIT_NAME = KeymapActions.PREFIX + 'Edit keymap title';\r\n export const SAVE_KEY = KeymapActions.PREFIX + 'Save key action';\r\n export const SET_DEFAULT = KeymapActions.PREFIX + 'Set default option';\r\n export const REMOVE = KeymapActions.PREFIX + 'Remove keymap';\r\n export const CHECK_MACRO = KeymapActions.PREFIX + 'Check deleted macro';\r\n export const LOAD_KEYMAPS = KeymapActions.PREFIX + 'Load keymaps';\r\n export const LOAD_KEYMAPS_SUCCESS = KeymapActions.PREFIX + 'Load keymaps success';\r\n\r\n export function loadKeymaps(): Action {\r\n return {\r\n type: KeymapActions.LOAD_KEYMAPS\r\n };\r\n }\r\n\r\n export function loadKeymapsSuccess(keymaps: Keymap[]): Action {\r\n return {\r\n type: KeymapActions.LOAD_KEYMAPS_SUCCESS,\r\n payload: keymaps\r\n };\r\n }\r\n\r\n export function addKeymap(item: Keymap): Action {\r\n return {\r\n type: KeymapActions.ADD,\r\n payload: item\r\n };\r\n }\r\n\r\n export function setDefault(abbr: string): Action {\r\n return {\r\n type: KeymapActions.SET_DEFAULT,\r\n payload: abbr\r\n };\r\n }\r\n\r\n export function removeKeymap(abbr: string): Action {\r\n return {\r\n type: KeymapActions.REMOVE,\r\n payload: abbr\r\n };\r\n }\r\n\r\n export function duplicateKeymap(keymap: Keymap): Action {\r\n return {\r\n type: KeymapActions.DUPLICATE,\r\n payload: keymap\r\n };\r\n }\r\n\r\n export function editKeymapName(abbr: string, name: string): Action {\r\n return {\r\n type: KeymapActions.EDIT_NAME,\r\n payload: {\r\n abbr: abbr,\r\n name: name\r\n }\r\n };\r\n }\r\n\r\n export function editKeymapAbbr(abbr: string, newAbbr: string): Action {\r\n return {\r\n type: KeymapActions.EDIT_ABBR,\r\n payload: {\r\n abbr: abbr,\r\n newAbbr: newAbbr\r\n }\r\n };\r\n }\r\n\r\n export function saveKey(keymap: Keymap, layer: number, module: number, key: number, keyAction: KeyAction): Action {\r\n return {\r\n type: KeymapActions.SAVE_KEY,\r\n payload: {\r\n keymap,\r\n layer,\r\n module,\r\n key,\r\n keyAction\r\n }\r\n };\r\n }\r\n\r\n export function checkMacro(macro: Macro): Action {\r\n return {\r\n type: KeymapActions.CHECK_MACRO,\r\n payload: macro\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/keymap.ts","import { assertUInt16 } from '../assert';\r\nimport { UhkBuffer } from '../uhk-buffer';\r\nimport { Keymap } from './keymap';\r\nimport { Macro } from './macro';\r\nimport { ModuleConfiguration } from './module-configuration';\r\n\r\nexport class UserConfiguration {\r\n\r\n @assertUInt16\r\n dataModelVersion: number;\r\n\r\n moduleConfigurations: ModuleConfiguration[] = [];\r\n\r\n keymaps: Keymap[] = [];\r\n\r\n macros: Macro[] = [];\r\n\r\n fromJsonObject(jsonObject: any): UserConfiguration {\r\n this.dataModelVersion = jsonObject.dataModelVersion;\r\n this.moduleConfigurations = jsonObject.moduleConfigurations.map((moduleConfiguration: any) => {\r\n return new ModuleConfiguration().fromJsonObject(moduleConfiguration);\r\n });\r\n this.macros = jsonObject.macros.map((macroJsonObject: any, index: number) => {\r\n const macro = new Macro().fromJsonObject(macroJsonObject);\r\n macro.id = index;\r\n return macro;\r\n });\r\n this.keymaps = jsonObject.keymaps.map((keymap: any) => new Keymap().fromJsonObject(keymap, this.macros));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): UserConfiguration {\r\n this.dataModelVersion = buffer.readUInt16();\r\n this.moduleConfigurations = buffer.readArray(uhkBuffer => {\r\n return new ModuleConfiguration().fromBinary(uhkBuffer);\r\n });\r\n this.macros = buffer.readArray((uhkBuffer, index) => {\r\n const macro = new Macro().fromBinary(uhkBuffer);\r\n macro.id = index;\r\n return macro;\r\n });\r\n this.keymaps = buffer.readArray(uhkBuffer => new Keymap().fromBinary(uhkBuffer, this.macros));\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n dataModelVersion: this.dataModelVersion,\r\n moduleConfigurations: this.moduleConfigurations.map(moduleConfiguration => moduleConfiguration.toJsonObject()),\r\n keymaps: this.keymaps.map(keymap => keymap.toJsonObject(this.macros)),\r\n macros: this.macros.map(macro => macro.toJsonObject())\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeUInt16(this.dataModelVersion);\r\n buffer.writeArray(this.moduleConfigurations);\r\n buffer.writeArray(this.macros);\r\n buffer.writeArray(this.keymaps, (uhkBuffer: UhkBuffer, keymap: Keymap) => {\r\n keymap.toBinary(uhkBuffer, this.macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n getKeymap(keymapAbbreviation: string): Keymap {\r\n return this.keymaps.find(keymap => keymapAbbreviation === keymap.abbreviation);\r\n }\r\n\r\n getMacro(macroId: number): Macro {\r\n return this.macros.find(macro => macroId === macro.id);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/user-configuration.ts","export * from './edit/macro-edit.component';\r\nexport * from './list/macro-list.component';\r\nexport * from './header/macro-header.component';\r\nexport * from './macro.routes';\r\nexport * from './not-found';\r\nexport * from './item';\r\nexport * from './action-editor';\r\nexport * from './action-editor/tab';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/index.ts","export { MacroNotFoundComponent } from './macro-not-found.component';\r\nexport { MacroNotFoundGuard } from './macro-not-found-guard.service';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/not-found/index.ts","export enum KeyModifiers {\r\n leftCtrl = 1 << 0,\r\n leftShift = 1 << 1,\r\n leftAlt = 1 << 2,\r\n leftGui = 1 << 3,\r\n rightCtrl = 1 << 4,\r\n rightShift = 1 << 5,\r\n rightAlt = 1 << 6,\r\n rightGui = 1 << 7\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-modifiers.ts","module.exports = \":host {\\n display: block;\\n width: 100%; }\\n\\n.action--editor {\\n padding-top: 0;\\n padding-bottom: 0;\\n border-radius: 0;\\n border: 0; }\\n\\n.nav {\\n padding-bottom: 1rem; }\\n .nav li a {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .nav li a.selected {\\n font-style: italic; }\\n .nav li a:hover {\\n cursor: pointer; }\\n .nav li.active {\\n z-index: 2; }\\n .nav li.active a.selected {\\n font-style: normal; }\\n .nav li.active a:after {\\n content: '';\\n display: block;\\n position: absolute;\\n width: 0;\\n height: 0;\\n top: 0;\\n right: -4rem;\\n border-color: transparent transparent transparent #337ab7;\\n border-style: solid;\\n border-width: 2rem; }\\n\\n.editor__tabs, .editor__tab-links {\\n padding-top: 1rem; }\\n\\n.editor__tabs {\\n border-left: 1px solid #ddd;\\n margin-left: -1.6rem;\\n padding-left: 3rem; }\\n\\n.editor__actions {\\n float: right; }\\n .editor__actions-container {\\n background: #f5f5f5;\\n border-top: 1px solid #ddd;\\n border-bottom: 1px solid #ddd;\\n padding: 1rem 1.5rem; }\\n\\n.flex-button-wrapper {\\n display: flex;\\n flex-direction: row-reverse; }\\n\\n.flex-button {\\n align-self: flex-end; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/macro-action-editor.component.scss\n// module id = 141\n// module chunks = 1","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CaptureService {\r\n private mapping: Map;\r\n private leftModifiers: Map;\r\n private rightModifiers: Map;\r\n\r\n constructor() {\r\n this.leftModifiers = new Map();\r\n this.rightModifiers = new Map();\r\n this.mapping = new Map();\r\n }\r\n\r\n public getMap(code: number) {\r\n return this.mapping.get(code);\r\n }\r\n\r\n public hasMap(code: number) {\r\n return this.mapping.has(code);\r\n }\r\n\r\n public setModifier(left: boolean, code: number) {\r\n return left ? this.leftModifiers.set(code, true) : this.rightModifiers.set(code, true);\r\n }\r\n\r\n public getModifiers(left: boolean) {\r\n return left ? this.reMap(this.leftModifiers) : this.reMap(this.rightModifiers);\r\n }\r\n\r\n public initModifiers() {\r\n this.leftModifiers.set(16, false); // Shift\r\n this.leftModifiers.set(17, false); // Ctrl\r\n this.leftModifiers.set(18, false); // Alt\r\n this.leftModifiers.set(91, false); // Super\r\n\r\n this.rightModifiers.set(16, false); // Shift\r\n this.rightModifiers.set(17, false); // Ctrl\r\n this.rightModifiers.set(18, false); // Alt\r\n this.rightModifiers.set(91, false); // Super\r\n }\r\n\r\n public populateMapping () {\r\n this.mapping.set(8, 42); // Backspace\r\n this.mapping.set(9, 43); // Tab\r\n this.mapping.set(13, 40); // Enter\r\n this.mapping.set(19, 72); // Pause/break\r\n this.mapping.set(20, 57); // Caps lock\r\n this.mapping.set(27, 41); // Escape\r\n this.mapping.set(32, 44); // (space)\r\n this.mapping.set(33, 75); // Page up\r\n this.mapping.set(34, 78); // Page down\r\n this.mapping.set(35, 77); // End\r\n this.mapping.set(36, 74); // Home\r\n this.mapping.set(37, 80); // Left arrow\r\n this.mapping.set(38, 82); // Up arrow\r\n this.mapping.set(39, 79); // Right arrow\r\n this.mapping.set(40, 81); // Down arrow\r\n this.mapping.set(45, 73); // Insert\r\n this.mapping.set(46, 76); // Delete\r\n this.mapping.set(48, 39); // 0\r\n this.mapping.set(49, 30); // 1\r\n this.mapping.set(50, 31); // 2\r\n this.mapping.set(51, 32); // 3\r\n this.mapping.set(52, 33); // 4\r\n this.mapping.set(53, 34); // 5\r\n this.mapping.set(54, 35); // 6\r\n this.mapping.set(55, 36); // 7\r\n this.mapping.set(56, 37); // 8\r\n this.mapping.set(57, 38); // 9\r\n this.mapping.set(65, 4); // A\r\n this.mapping.set(66, 5); // B\r\n this.mapping.set(67, 6); // C\r\n this.mapping.set(68, 7); // D\r\n this.mapping.set(69, 8); // E\r\n this.mapping.set(70, 9); // F\r\n this.mapping.set(71, 10); // G\r\n this.mapping.set(72, 11); // H\r\n this.mapping.set(73, 12); // I\r\n this.mapping.set(74, 13); // J\r\n this.mapping.set(75, 14); // K\r\n this.mapping.set(76, 15); // L\r\n this.mapping.set(77, 16); // M\r\n this.mapping.set(78, 17); // N\r\n this.mapping.set(79, 18); // O\r\n this.mapping.set(80, 19); // P\r\n this.mapping.set(81, 20); // Q\r\n this.mapping.set(82, 21); // R\r\n this.mapping.set(83, 22); // S\r\n this.mapping.set(84, 23); // T\r\n this.mapping.set(85, 24); // U\r\n this.mapping.set(86, 25); // V\r\n this.mapping.set(87, 26); // W\r\n this.mapping.set(88, 27); // X\r\n this.mapping.set(89, 28); // Y\r\n this.mapping.set(90, 29); // Z\r\n this.mapping.set(93, 118); // Menu\r\n this.mapping.set(96, 98); // Num pad 0\r\n this.mapping.set(97, 89); // Num pad 1\r\n this.mapping.set(98, 90); // Num pad 2\r\n this.mapping.set(99, 91); // Num pad 3\r\n this.mapping.set(100, 92); // Num pad 4\r\n this.mapping.set(101, 93); // Num pad 5\r\n this.mapping.set(102, 94); // Num pad 6\r\n this.mapping.set(103, 95); // Num pad 7\r\n this.mapping.set(104, 96); // Num pad 8\r\n this.mapping.set(105, 97); // Num pad 9\r\n this.mapping.set(106, 85); // Multiply\r\n this.mapping.set(107, 87); // Add\r\n this.mapping.set(109, 86); // Subtract\r\n this.mapping.set(110, 99); // Decimal point\r\n this.mapping.set(111, 84); // Divide\r\n this.mapping.set(112, 58); // F1\r\n this.mapping.set(113, 59); // F2\r\n this.mapping.set(114, 60); // F3\r\n this.mapping.set(115, 61); // F4\r\n this.mapping.set(116, 62); // F5\r\n this.mapping.set(117, 63); // F6\r\n this.mapping.set(118, 64); // F7\r\n this.mapping.set(119, 65); // F8\r\n this.mapping.set(120, 66); // F9\r\n this.mapping.set(121, 67); // F10\r\n this.mapping.set(122, 68); // F11\r\n this.mapping.set(123, 69); // F12\r\n this.mapping.set(144, 83); // Num lock\r\n this.mapping.set(145, 71); // Scroll lock\r\n this.mapping.set(186, 51); // Semi-colon\r\n this.mapping.set(187, 46); // Equal sign\r\n this.mapping.set(188, 54); // Comma\r\n this.mapping.set(189, 45); // Dash\r\n this.mapping.set(190, 55); // Period\r\n this.mapping.set(191, 56); // Forward slash\r\n this.mapping.set(192, 53); // Grave accent\r\n this.mapping.set(219, 47); // Open bracket\r\n this.mapping.set(220, 49); // Back slash\r\n this.mapping.set(221, 48); // Close bracket\r\n this.mapping.set(222, 52); // Single quote\r\n }\r\n\r\n private reMap(value: Map): boolean[] {\r\n return [value.get(16), value.get(17), value.get(91), value.get(18)];\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/capture.service.ts","import { createSelector } from 'reselect';\r\n\r\nimport { Keymap } from '../config-serializer/config-items/keymap';\r\nimport { UserConfiguration } from '../config-serializer/config-items/user-configuration';\r\nimport * as autoUpdate from './reducers/auto-update-settings';\r\n\r\n// State interface for the application\r\nexport interface AppState {\r\n userConfiguration: UserConfiguration;\r\n presetKeymaps: Keymap[];\r\n autoUpdateSettings: autoUpdate.State;\r\n}\r\n\r\nexport const getUserConfiguration = (state: AppState) => state.userConfiguration;\r\n\r\nexport const appUpdateState = (state: AppState) => state.autoUpdateSettings;\r\n\r\nexport const getAutoUpdateSettings = createSelector(appUpdateState, autoUpdate.getUpdateSettings);\r\nexport const getCheckingForUpdate = createSelector(appUpdateState, autoUpdate.checkingForUpdate);\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/index.ts","import { Action } from '@ngrx/store';\r\nimport { ActionTypes } from '../actions/auto-update-settings';\r\nimport { ActionTypes as UpdateActions } from '../actions/app-update.action';\r\nimport { AutoUpdateSettings } from '../../models/auto-update-settings';\r\n\r\nexport interface State extends AutoUpdateSettings {\r\n checkingForUpdate: boolean;\r\n}\r\n\r\nexport const initialState: State = {\r\n checkForUpdateOnStartUp: false,\r\n usePreReleaseUpdate: false,\r\n checkingForUpdate: false\r\n};\r\n\r\nexport function reducer(state = initialState, action: Action): State {\r\n switch (action.type) {\r\n case ActionTypes.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP: {\r\n return Object.assign({}, state, { checkForUpdateOnStartUp: action.payload });\r\n }\r\n\r\n case ActionTypes.TOGGLE_PRE_RELEASE_FLAG: {\r\n return Object.assign({}, state, { usePreReleaseUpdate: action.payload });\r\n }\r\n\r\n case ActionTypes.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS: {\r\n return Object.assign({}, action.payload);\r\n }\r\n\r\n case ActionTypes.CHECK_FOR_UPDATE_NOW: {\r\n return Object.assign({}, state, { checkingForUpdate: true});\r\n }\r\n\r\n case UpdateActions.UPDATE_ERROR:\r\n case ActionTypes.CHECK_FOR_UPDATE_SUCCESS:\r\n case ActionTypes.CHECK_FOR_UPDATE_FAILED: {\r\n return Object.assign({}, state, { checkingForUpdate: false });\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const getUpdateSettings = (state: State) => ({\r\n checkForUpdateOnStartUp: state.checkForUpdateOnStartUp,\r\n usePreReleaseUpdate: state.usePreReleaseUpdate\r\n});\r\n\r\nexport const checkingForUpdate = (state: State) => state.checkingForUpdate;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/reducers/auto-update-settings.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { type } from '../../util';\r\nimport { AutoUpdateSettings } from '../../models/auto-update-settings';\r\n\r\nconst PREFIX = '[app-update-config] ';\r\n\r\n// tslint:disable-next-line:variable-name\r\nexport const ActionTypes = {\r\n TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP: type(PREFIX + 'Check for update on startup'),\r\n CHECK_FOR_UPDATE_NOW: type(PREFIX + 'Check for update now'),\r\n CHECK_FOR_UPDATE_SUCCESS: type(PREFIX + 'Check for update success'),\r\n CHECK_FOR_UPDATE_FAILED: type(PREFIX + 'Check for update faild'),\r\n TOGGLE_PRE_RELEASE_FLAG: type(PREFIX + 'Toggle pre release update flag'),\r\n LOAD_AUTO_UPDATE_SETTINGS: type(PREFIX + 'Load auto update settings'),\r\n LOAD_AUTO_UPDATE_SETTINGS_SUCCESS: type(PREFIX + 'Load auto update settings success'),\r\n SAVE_AUTO_UPDATE_SETTINGS_SUCCESS: type(PREFIX + 'Save auto update settings success')\r\n};\r\n\r\nexport class ToggleCheckForUpdateOnStartupAction implements Action {\r\n type = ActionTypes.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP;\r\n\r\n constructor(public payload: boolean) {\r\n }\r\n}\r\n\r\nexport class CheckForUpdateNowAction implements Action {\r\n type = ActionTypes.CHECK_FOR_UPDATE_NOW;\r\n}\r\n\r\nexport class CheckForUpdateSuccessAction implements Action {\r\n type = ActionTypes.CHECK_FOR_UPDATE_SUCCESS;\r\n constructor(public payload?: string) {\r\n }\r\n}\r\n\r\nexport class CheckForUpdateFailedAction implements Action {\r\n type = ActionTypes.CHECK_FOR_UPDATE_FAILED;\r\n\r\n constructor(public payload: any) {\r\n }\r\n}\r\n\r\nexport class TogglePreReleaseFlagAction implements Action {\r\n type = ActionTypes.TOGGLE_PRE_RELEASE_FLAG;\r\n\r\n constructor(public payload: boolean) {\r\n }\r\n}\r\n\r\nexport class LoadAutoUpdateSettingsAction implements Action {\r\n type = ActionTypes.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS;\r\n}\r\n\r\nexport class LoadAutoUpdateSettingsSuccessAction implements Action {\r\n type = ActionTypes.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS;\r\n\r\n constructor(public payload: AutoUpdateSettings) {\r\n }\r\n}\r\n\r\nexport class SaveAutoUpdateSettingsSuccessAction implements Action {\r\n type = ActionTypes.SAVE_AUTO_UPDATE_SETTINGS_SUCCESS;\r\n}\r\n\r\nexport type Actions\r\n = ToggleCheckForUpdateOnStartupAction\r\n | CheckForUpdateNowAction\r\n | CheckForUpdateSuccessAction\r\n | CheckForUpdateFailedAction\r\n | TogglePreReleaseFlagAction\r\n | LoadAutoUpdateSettingsAction\r\n | LoadAutoUpdateSettingsSuccessAction\r\n | SaveAutoUpdateSettingsSuccessAction;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/auto-update-settings.ts","import { InjectionToken } from '@angular/core';\r\n\r\nimport { UserConfiguration } from '../config-serializer/config-items/user-configuration';\r\nimport { AutoUpdateSettings } from '../models/auto-update-settings';\r\n\r\nexport interface DataStorageRepositoryService {\r\n\r\n getConfig(): UserConfiguration;\r\n\r\n saveConfig(config: UserConfiguration): void;\r\n\r\n getAutoUpdateSettings(): AutoUpdateSettings;\r\n\r\n saveAutoUpdateSettings(settings: AutoUpdateSettings): void;\r\n}\r\n\r\nexport let DATA_STORAGE_REPOSITORY = new InjectionToken('dataStorage-repository');\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/datastorage-repository.service.ts","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/events/events.js\n// module id = 147\n// module chunks = 1","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/readable-browser.js\n// module id = 148\n// module chunks = 1","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/safe-buffer/index.js\n// module id = 149\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n processNextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n processNextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = _isUint8Array(chunk) && !state.objectMode;\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n processNextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n processNextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n processNextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) processNextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_writable.js\n// module id = 150\n// module chunks = 1","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Input, NgModule, Output, Renderer2, forwardRef } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\n\n/**\n * Notification\n *\n * This class describes the structure of a notifiction, including all information it needs to live, and everyone else needs to work with it.\n */\nvar NotifierNotification = (function () {\n /**\n * Constructor\n *\n * @param {?} options\n */\n function NotifierNotification(options) {\n Object.assign(this, options);\n // If not set manually, we have to create a unique notification ID by ourselves. The ID generation relies on the current browser\n // datetime in ms, in praticular the moment this notification gets constructed. Concurrency, and thus two IDs being the exact same,\n // is not possible due to the action queue concept.\n if (options.id === undefined) {\n this.id = \"ID_\" + new Date().getTime();\n }\n }\n return NotifierNotification;\n}());\n\n/**\n * Notifier queue service\n *\n * In general, API calls don't get processed right away. Instead, we have to queue them up in order to prevent simultanious API calls\n * interfering with each other. This, at least in theory, is possible at any time. In particular, animations - which potentially overlap -\n * can cause changes in JS classes as well as affect the DOM. Therefore, the queue service takes all actions, puts them in a queue, and\n * processes them at the right time (which is when the previous action has been processed successfully).\n *\n * Technical sidenote:\n * An action looks pretty similar to the ones within the Flux / Redux pattern.\n */\nvar NotifierQueueService = (function () {\n /**\n * Constructor\n */\n function NotifierQueueService() {\n this.actionStream = new Subject();\n this.actionQueue = [];\n this.isActionInProgress = false;\n }\n /**\n * Push a new action to the queue, and try to run it\n *\n * @param {?} action\n * @return {?}\n */\n NotifierQueueService.prototype.push = function (action) {\n this.actionQueue.push(action);\n this.tryToRunNextAction();\n };\n /**\n * Continue with the next action (called when the current action is finished)\n * @return {?}\n */\n NotifierQueueService.prototype.continue = function () {\n this.isActionInProgress = false;\n this.tryToRunNextAction();\n };\n /**\n * Try to run the next action in the queue; we skip if there already is some action in progress, or if there is no action left\n * @return {?}\n */\n NotifierQueueService.prototype.tryToRunNextAction = function () {\n if (this.isActionInProgress || this.actionQueue.length === 0) {\n return; // Skip (the queue can now go drink a coffee as it has nothing to do anymore)\n }\n this.isActionInProgress = true;\n this.actionStream.next(this.actionQueue.shift()); // Push next action to the stream, and remove the current action from the queue\n };\n return NotifierQueueService;\n}());\nNotifierQueueService.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nNotifierQueueService.ctorParameters = function () { return []; };\n\n/**\n * Notifier configuration\n *\n * The notifier configuration defines what notifications look like, how they behave, and how they get animated. It is a global\n * configuration, which means that it only can be set once (at the beginning), and cannot be changed afterwards. Aligning to the world of\n * Angular, this configuration can be provided in the root app module - alternatively, a meaningful default configuration will be used.\n */\nvar NotifierConfig = (function () {\n /**\n * Constructor\n *\n * @param {?=} customOptions\n */\n function NotifierConfig(customOptions) {\n if (customOptions === void 0) { customOptions = {}; }\n // Set default values\n this.animations = {\n enabled: true,\n hide: {\n easing: 'ease',\n offset: 50,\n preset: 'fade',\n speed: 300\n },\n overlap: 150,\n shift: {\n easing: 'ease',\n speed: 300\n },\n show: {\n easing: 'ease',\n preset: 'slide',\n speed: 300\n }\n };\n this.behaviour = {\n autoHide: 7000,\n onClick: false,\n onMouseover: 'pauseAutoHide',\n showDismissButton: true,\n stacking: 4\n };\n this.position = {\n horizontal: {\n distance: 12,\n position: 'left'\n },\n vertical: {\n distance: 12,\n gap: 10,\n position: 'bottom'\n }\n };\n this.theme = 'material';\n // The following merges the custom options into the notifier config, respecting the already set default values\n // This linear, more explicit and code-sizy workflow is preferred here over a recursive one (because we know the object structure)\n // Technical sidenote: Objects are merged, other types of values simply overwritten / copied\n if (customOptions.theme !== undefined) {\n this.theme = customOptions.theme;\n }\n if (customOptions.animations !== undefined) {\n if (customOptions.animations.enabled !== undefined) {\n this.animations.enabled = customOptions.animations.enabled;\n }\n if (customOptions.animations.overlap !== undefined) {\n this.animations.overlap = customOptions.animations.overlap;\n }\n if (customOptions.animations.hide !== undefined) {\n Object.assign(this.animations.hide, customOptions.animations.hide);\n }\n if (customOptions.animations.shift !== undefined) {\n Object.assign(this.animations.shift, customOptions.animations.shift);\n }\n if (customOptions.animations.show !== undefined) {\n Object.assign(this.animations.show, customOptions.animations.show);\n }\n }\n if (customOptions.behaviour !== undefined) {\n Object.assign(this.behaviour, customOptions.behaviour);\n }\n if (customOptions.position !== undefined) {\n if (customOptions.position.horizontal !== undefined) {\n Object.assign(this.position.horizontal, customOptions.position.horizontal);\n }\n if (customOptions.position.vertical !== undefined) {\n Object.assign(this.position.vertical, customOptions.position.vertical);\n }\n }\n }\n return NotifierConfig;\n}());\n\n/**\n * Notifier service\n *\n * This service provides access to the public notifier API. Once injected into a component, directive, pipe, service, or any other building\n * block of an applications, it can be used to show new notifications, and hide existing ones. Internally, it transforms API calls into\n * actions, which then get thrown into the action queue - eventually being processed at the right moment.\n */\nvar NotifierService = (function () {\n /**\n * Constructor\n *\n * @param {?} notifierQueueService\n * @param {?} config\n */\n function NotifierService(notifierQueueService, config // The forwardRef is (sadly) required here\n ) {\n this.queueService = notifierQueueService;\n this.config = config;\n }\n /**\n * Get the notifier configuration\n *\n * @return {?}\n */\n NotifierService.prototype.getConfig = function () {\n return this.config;\n };\n /**\n * API: Show a new notification\n *\n * @param {?} notificationOptions\n * @return {?}\n */\n NotifierService.prototype.show = function (notificationOptions) {\n this.queueService.push({\n payload: notificationOptions,\n type: 'SHOW'\n });\n };\n /**\n * API: Hide a specific notification, given its ID\n *\n * @param {?} notificationId\n * @return {?}\n */\n NotifierService.prototype.hide = function (notificationId) {\n this.queueService.push({\n payload: notificationId,\n type: 'HIDE'\n });\n };\n /**\n * API: Hide the newest notification\n * @return {?}\n */\n NotifierService.prototype.hideNewest = function () {\n this.queueService.push({\n type: 'HIDE_NEWEST'\n });\n };\n /**\n * API: Hide the oldest notification\n * @return {?}\n */\n NotifierService.prototype.hideOldest = function () {\n this.queueService.push({\n type: 'HIDE_OLDEST'\n });\n };\n /**\n * API: Hide all notifications at once\n * @return {?}\n */\n NotifierService.prototype.hideAll = function () {\n this.queueService.push({\n type: 'HIDE_ALL'\n });\n };\n /**\n * API: Shortcut for showing a new notification\n *\n * @param {?} type\n * @param {?} message\n * @param {?=} notificationId\n * @return {?}\n */\n NotifierService.prototype.notify = function (type, message, notificationId) {\n var /** @type {?} */ notificationOptions = {\n message: message,\n type: type\n };\n if (notificationId !== undefined) {\n notificationOptions.id = notificationId;\n }\n this.show(notificationOptions);\n };\n return NotifierService;\n}());\nNotifierService.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nNotifierService.ctorParameters = function () { return [\n { type: NotifierQueueService, },\n { type: NotifierConfig, decorators: [{ type: Inject, args: [forwardRef(function () { return NotifierConfigToken; }),] },] },\n]; };\n\n/**\n * Notifier container component\n * ----------------------------\n * This component acts as a wrapper for all notification components; consequently, it is responsible for creating a new notification\n * component and removing an existing notification component. Being more precicely, it also handles side effects of those actions, such as\n * shifting or even completely removing other notifications as well. Overall, this components handles actions coming from the queue service\n * by subscribing to its action stream.\n *\n * Technical sidenote:\n * This component has to be used somewhere in an application to work; it will not inject and create itself automatically, primarily in order\n * to not break the Angular AoT compilation. Moreover, this component (and also the notification components) set their change detection\n * strategy onPush, which means that we handle change detection manually in order to get the best performance. (#perfmatters)\n */\nvar NotifierContainerComponent = (function () {\n /**\n * Constructor\n *\n * @param {?} changeDetector\n * @param {?} notifierQueueService\n * @param {?} notifierService\n */\n function NotifierContainerComponent(changeDetector, notifierQueueService, notifierService) {\n this.changeDetector = changeDetector;\n this.queueService = notifierQueueService;\n this.config = notifierService.getConfig();\n this.notifications = [];\n }\n /**\n * Component initialization lifecycle hook, connects this component to the action queue, and then handles incoming actions\n * @return {?}\n */\n NotifierContainerComponent.prototype.ngOnInit = function () {\n var _this = this;\n this.queueServiceSubscription = this.queueService.actionStream.subscribe(function (action) {\n _this.handleAction(action).then(function () {\n _this.queueService.continue();\n });\n });\n };\n /**\n * Component destroyment lifecycle hook, cleans up the observable subsciption\n * @return {?}\n */\n NotifierContainerComponent.prototype.ngOnDestroy = function () {\n if (this.queueServiceSubscription) {\n this.queueServiceSubscription.unsubscribe();\n }\n };\n /**\n * Notification identifier, used as the ngFor trackby function\n *\n * @param {?} index\n * @param {?} notification\n * @return {?}\n */\n NotifierContainerComponent.prototype.identifyNotification = function (index, notification) {\n return notification.id;\n };\n /**\n * Event handler, handles clicks on notification dismiss buttons\n *\n * @param {?} notificationId\n * @return {?}\n */\n NotifierContainerComponent.prototype.onNotificationDismiss = function (notificationId) {\n this.queueService.push({\n payload: notificationId,\n type: 'HIDE'\n });\n };\n /**\n * Event handler, handles notification ready events\n *\n * @param {?} notificationComponent\n * @return {?}\n */\n NotifierContainerComponent.prototype.onNotificationReady = function (notificationComponent) {\n var /** @type {?} */ currentNotification = this.notifications[this.notifications.length - 1]; // Get the latest notification\n currentNotification.component = notificationComponent; // Save the new omponent reference\n this.continueHandleShowAction(currentNotification); // Continue with handling the show action\n };\n /**\n * Handle incoming actions by mapping action types to methods, and then running them\n *\n * @param {?} action\n * @return {?}\n */\n NotifierContainerComponent.prototype.handleAction = function (action) {\n switch (action.type) {\n case 'SHOW':\n return this.handleShowAction(action);\n case 'HIDE':\n return this.handleHideAction(action);\n case 'HIDE_OLDEST':\n return this.handleHideOldestAction(action);\n case 'HIDE_NEWEST':\n return this.handleHideNewestAction(action);\n case 'HIDE_ALL':\n return this.handleHideAllAction(action);\n default:\n return new Promise(function (resolve, reject) {\n resolve(); // Ignore unknown action types\n });\n }\n };\n /**\n * Show a new notification\n *\n * We simply add the notification to the list, and then wait until its properly initialized / created / rendered.\n *\n * @param {?} action\n * @return {?}\n */\n NotifierContainerComponent.prototype.handleShowAction = function (action) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.tempPromiseResolver = resolve; // Save the promise resolve function so that it can be called later on by another method\n _this.addNotificationToList(new NotifierNotification(action.payload));\n });\n };\n /**\n * Continue to show a new notification (after the notification components is initialized / created / rendered).\n *\n * If this is the first (and thus only) notification, we can simply show it. Otherwhise, if stacking is disabled (or a low value), we\n * switch out notifications, in particular we hide the existing one, and then show our new one. Yet, if stacking is enabled, we first\n * shift all older notifications, and then show our new notification. In addition, if there are too many notification on the screen,\n * we hide the oldest one first. Furthermore, if configured, animation overlapping is applied.\n *\n * @param {?} notification\n * @return {?}\n */\n NotifierContainerComponent.prototype.continueHandleShowAction = function (notification) {\n var _this = this;\n // First (which means only one) notification in the list?\n var /** @type {?} */ numberOfNotifications = this.notifications.length;\n if (numberOfNotifications === 1) {\n notification.component.show().then(this.tempPromiseResolver); // Done\n }\n else {\n var /** @type {?} */ implicitStackingLimit = 2;\n // Stacking enabled? (stacking value below 2 means stacking is disabled)\n if (this.config.behaviour.stacking === false || this.config.behaviour.stacking < implicitStackingLimit) {\n this.notifications[0].component.hide().then(function () {\n _this.removeNotificationFromList(_this.notifications[0]);\n notification.component.show().then(_this.tempPromiseResolver); // Done\n });\n }\n else {\n var /** @type {?} */ stepPromises_1 = [];\n // Are there now too many notifications?\n if (numberOfNotifications > this.config.behaviour.stacking) {\n var /** @type {?} */ oldNotifications_1 = this.notifications.slice(1, numberOfNotifications - 1);\n // Are animations enabled?\n if (this.config.animations.enabled) {\n // Is animation overlap enabled?\n if (this.config.animations.overlap !== false && this.config.animations.overlap > 0) {\n stepPromises_1.push(this.notifications[0].component.hide());\n setTimeout(function () {\n stepPromises_1.push(_this.shiftNotifications(oldNotifications_1, notification.component.getHeight(), true));\n }, this.config.animations.hide.speed - this.config.animations.overlap);\n setTimeout(function () {\n stepPromises_1.push(notification.component.show());\n }, this.config.animations.hide.speed + this.config.animations.shift.speed - this.config.animations.overlap);\n }\n else {\n stepPromises_1.push(new Promise(function (resolve, reject) {\n _this.notifications[0].component.hide().then(function () {\n _this.shiftNotifications(oldNotifications_1, notification.component.getHeight(), true).then(function () {\n notification.component.show().then(resolve);\n });\n });\n }));\n }\n }\n else {\n stepPromises_1.push(this.notifications[0].component.hide());\n stepPromises_1.push(this.shiftNotifications(oldNotifications_1, notification.component.getHeight(), true));\n stepPromises_1.push(notification.component.show());\n }\n }\n else {\n var /** @type {?} */ oldNotifications_2 = this.notifications.slice(0, numberOfNotifications - 1);\n // Are animations enabled?\n if (this.config.animations.enabled) {\n // Is animation overlap enabled?\n if (this.config.animations.overlap !== false && this.config.animations.overlap > 0) {\n stepPromises_1.push(this.shiftNotifications(oldNotifications_2, notification.component.getHeight(), true));\n setTimeout(function () {\n stepPromises_1.push(notification.component.show());\n }, this.config.animations.shift.speed - this.config.animations.overlap);\n }\n else {\n stepPromises_1.push(new Promise(function (resolve, reject) {\n _this.shiftNotifications(oldNotifications_2, notification.component.getHeight(), true).then(function () {\n notification.component.show().then(resolve);\n });\n }));\n }\n }\n else {\n stepPromises_1.push(this.shiftNotifications(oldNotifications_2, notification.component.getHeight(), true));\n stepPromises_1.push(notification.component.show());\n }\n }\n Promise.all(stepPromises_1).then(function () {\n if (numberOfNotifications > _this.config.behaviour.stacking) {\n _this.removeNotificationFromList(_this.notifications[0]);\n }\n _this.tempPromiseResolver();\n }); // Done\n }\n }\n };\n /**\n * Hide an existing notification\n *\n * Fist, we skip everything if there are no notifications at all, or the given notification does not exist. Then, we hide the given\n * notification. If there exist older notifications, we then shift them around to fill the gap. Once both hiding the given notification\n * and shifting the older notificaitons is done, the given notification gets finally removed (from the DOM).\n *\n * @param {?} action\n * @return {?}\n */\n NotifierContainerComponent.prototype.handleHideAction = function (action) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var /** @type {?} */ stepPromises = [];\n // Does the notification exist / are there even any notifications? (let's prevent accidential errors)\n var /** @type {?} */ notification = _this.findNotificationById(action.payload);\n if (notification === undefined) {\n resolve();\n return;\n }\n // Get older notifications\n var /** @type {?} */ notificationIndex = _this.findNotificationIndexById(action.payload);\n if (notificationIndex === undefined) {\n resolve();\n return;\n }\n var /** @type {?} */ oldNotifications = _this.notifications.slice(0, notificationIndex);\n // Do older notifications exist, and thus do we need to shift other notifications as a consequence?\n if (oldNotifications.length > 0) {\n // Are animations enabled?\n if (_this.config.animations.enabled && _this.config.animations.hide.speed > 0) {\n // Is animation overlap enabled?\n if (_this.config.animations.overlap !== false && _this.config.animations.overlap > 0) {\n stepPromises.push(notification.component.hide());\n setTimeout(function () {\n stepPromises.push(_this.shiftNotifications(oldNotifications, notification.component.getHeight(), false));\n }, _this.config.animations.hide.speed - _this.config.animations.overlap);\n }\n else {\n notification.component.hide().then(function () {\n stepPromises.push(_this.shiftNotifications(oldNotifications, notification.component.getHeight(), false));\n });\n }\n }\n else {\n stepPromises.push(notification.component.hide());\n stepPromises.push(_this.shiftNotifications(oldNotifications, notification.component.getHeight(), false));\n }\n }\n else {\n stepPromises.push(notification.component.hide());\n }\n // Wait until both hiding and shifting is done, then remove the notification from the list\n Promise.all(stepPromises).then(function () {\n _this.removeNotificationFromList(notification);\n resolve(); // Done\n });\n });\n };\n /**\n * Hide the oldest notification (bridge to handleHideAction)\n *\n * @param {?} action\n * @return {?}\n */\n NotifierContainerComponent.prototype.handleHideOldestAction = function (action) {\n // Are there any notifications? (prevent accidential errors)\n if (this.notifications.length === 0) {\n return new Promise(function (resolve, reject) {\n resolve();\n }); // Done\n }\n else {\n action.payload = this.notifications[0].id;\n return this.handleHideAction(action);\n }\n };\n /**\n * Hide the newest notification (bridge to handleHideAction)\n *\n * @param {?} action\n * @return {?}\n */\n NotifierContainerComponent.prototype.handleHideNewestAction = function (action) {\n // Are there any notifications? (prevent accidential errors)\n if (this.notifications.length === 0) {\n return new Promise(function (resolve, reject) {\n resolve();\n }); // Done\n }\n else {\n action.payload = this.notifications[this.notifications.length - 1].id;\n return this.handleHideAction(action);\n }\n };\n /**\n * Hide all notifications at once\n *\n * @param {?} action\n * @return {?}\n */\n NotifierContainerComponent.prototype.handleHideAllAction = function (action) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n // Are there any notifications? (prevent accidential errors)\n var /** @type {?} */ numberOfNotifications = _this.notifications.length;\n if (numberOfNotifications === 0) {\n resolve(); // Done\n return;\n }\n // Are animations enabled?\n if (_this.config.animations.enabled && _this.config.animations.hide.speed > 0 && _this.config.animations.hide.offset !== false &&\n _this.config.animations.hide.offset > 0) {\n var _loop_1 = function (i) {\n var /** @type {?} */ animationOffset = _this.config.position.vertical.position === 'top' ? numberOfNotifications - 1 : i;\n setTimeout(function () {\n _this.notifications[i].component.hide().then(function () {\n // Are we done here, was this the last notification to be hidden?\n if ((_this.config.position.vertical.position === 'top' && i === 0) ||\n (_this.config.position.vertical.position === 'bottom' && i === numberOfNotifications - 1)) {\n _this.removeAllNotificationsFromList();\n resolve(); // Done\n }\n });\n }, _this.config.animations.hide.offset * animationOffset);\n };\n for (var /** @type {?} */ i = numberOfNotifications - 1; i >= 0; i--) {\n _loop_1(/** @type {?} */ i);\n }\n }\n else {\n var /** @type {?} */ stepPromises = [];\n for (var /** @type {?} */ i = numberOfNotifications - 1; i >= 0; i--) {\n stepPromises.push(_this.notifications[i].component.hide());\n }\n Promise.all(stepPromises).then(function () {\n _this.removeAllNotificationsFromList();\n resolve(); // Done\n });\n }\n });\n };\n /**\n * Shift multiple notifications at once\n *\n * @param {?} notifications\n * @param {?} distance\n * @param {?} toMakePlace\n * @return {?}\n */\n NotifierContainerComponent.prototype.shiftNotifications = function (notifications, distance, toMakePlace) {\n return new Promise(function (resolve, reject) {\n // Are there any notifications to shift?\n if (notifications.length === 0) {\n resolve();\n return;\n }\n var /** @type {?} */ notificationPromises = [];\n for (var /** @type {?} */ i = notifications.length - 1; i >= 0; i--) {\n notificationPromises.push(notifications[i].component.shift(distance, toMakePlace));\n }\n Promise.all(notificationPromises).then(resolve); // Done\n });\n };\n /**\n * Add a new notification to the list of notifications (triggers change detection)\n *\n * @param {?} notification\n * @return {?}\n */\n NotifierContainerComponent.prototype.addNotificationToList = function (notification) {\n this.notifications.push(notification);\n this.changeDetector.markForCheck(); // Run change detection because the notification list changed\n };\n /**\n * Remove an existing notification from the list of notifications (triggers change detection)\n *\n * @param {?} notification\n * @return {?}\n */\n NotifierContainerComponent.prototype.removeNotificationFromList = function (notification) {\n this.notifications =\n this.notifications.filter(function (item) { return item.component !== notification.component; });\n this.changeDetector.markForCheck(); // Run change detection because the notification list changed\n };\n /**\n * Remove all notifications from the list (triggers change detection)\n * @return {?}\n */\n NotifierContainerComponent.prototype.removeAllNotificationsFromList = function () {\n this.notifications = [];\n this.changeDetector.markForCheck(); // Run change detection because the notification list changed\n };\n /**\n * Helper: Find a notification in the notification list by a given notification ID\n *\n * @param {?} notificationId\n * @return {?}\n */\n NotifierContainerComponent.prototype.findNotificationById = function (notificationId) {\n return this.notifications.find(function (currentNotification) { return currentNotification.id === notificationId; });\n };\n /**\n * Helper: Find a notification's index by a given notification ID\n *\n * @param {?} notificationId\n * @return {?}\n */\n NotifierContainerComponent.prototype.findNotificationIndexById = function (notificationId) {\n var /** @type {?} */ notificationIndex = this.notifications.findIndex(function (currentNotification) { return currentNotification.id === notificationId; });\n return (notificationIndex !== -1 ? notificationIndex : undefined);\n };\n return NotifierContainerComponent;\n}());\nNotifierContainerComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'notifier__container'\n },\n selector: 'notifier-container',\n template: \"
\"\n },] },\n];\n/**\n * @nocollapse\n */\nNotifierContainerComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef, },\n { type: NotifierQueueService, },\n { type: NotifierService, },\n]; };\n\n/**\n * Fade animation preset\n */\nvar fade = {\n hide: function (notification) {\n return {\n from: {\n opacity: '1'\n },\n to: {\n opacity: '0'\n }\n };\n },\n show: function (notification) {\n return {\n from: {\n opacity: '0'\n },\n to: {\n opacity: '1'\n }\n };\n }\n};\n\n/**\n * Slide animation preset\n */\nvar slide = {\n hide: function (notification) {\n // Prepare variables\n var config = notification.component.getConfig();\n var shift = notification.component.getShift();\n var from;\n var to;\n // Configure variables, depending on configuration and component\n if (config.position.horizontal.position === 'left') {\n from = {\n transform: \"translate3d( 0, \" + shift + \"px, 0 )\"\n };\n to = {\n transform: \"translate3d( calc( -100% - \" + config.position.horizontal.distance + \"px - 10px ), \" + shift + \"px, 0 )\"\n };\n }\n else if (config.position.horizontal.position === 'right') {\n from = {\n transform: \"translate3d( 0, \" + shift + \"px, 0 )\"\n };\n to = {\n transform: \"translate3d( calc( 100% + \" + config.position.horizontal.distance + \"px + 10px ), \" + shift + \"px, 0 )\"\n };\n }\n else {\n var horizontalPosition = void 0;\n if (config.position.vertical.position === 'top') {\n horizontalPosition = \"calc( -100% - \" + config.position.horizontal.distance + \"px - 10px )\";\n }\n else {\n horizontalPosition = \"calc( 100% + \" + config.position.horizontal.distance + \"px + 10px )\";\n }\n from = {\n transform: \"translate3d( -50%, \" + shift + \"px, 0 )\"\n };\n to = {\n transform: \"translate3d( -50%, \" + horizontalPosition + \", 0 )\"\n };\n }\n // Done\n return {\n from: from,\n to: to\n };\n },\n show: function (notification) {\n // Prepare variables\n var config = notification.component.getConfig();\n var from;\n var to;\n // Configure variables, depending on configuration and component\n if (config.position.horizontal.position === 'left') {\n from = {\n transform: \"translate3d( calc( -100% - \" + config.position.horizontal.distance + \"px - 10px ), 0, 0 )\"\n };\n to = {\n transform: 'translate3d( 0, 0, 0 )'\n };\n }\n else if (config.position.horizontal.position === 'right') {\n from = {\n transform: \"translate3d( calc( 100% + \" + config.position.horizontal.distance + \"px + 10px ), 0, 0 )\"\n };\n to = {\n transform: 'translate3d( 0, 0, 0 )'\n };\n }\n else {\n var horizontalPosition = void 0;\n if (config.position.vertical.position === 'top') {\n horizontalPosition = \"calc( -100% - \" + config.position.horizontal.distance + \"px - 10px )\";\n }\n else {\n horizontalPosition = \"calc( 100% + \" + config.position.horizontal.distance + \"px + 10px )\";\n }\n from = {\n transform: \"translate3d( -50%, \" + horizontalPosition + \", 0 )\"\n };\n to = {\n transform: 'translate3d( -50%, 0, 0 )'\n };\n }\n // Done\n return {\n from: from,\n to: to\n };\n }\n};\n\n/**\n * Notifier animation service\n */\nvar NotifierAnimationService = (function () {\n /**\n * Constructor\n */\n function NotifierAnimationService() {\n this.animationPresets = {\n fade: fade,\n slide: slide\n };\n }\n /**\n * Get animation data\n *\n * This method generates all data the Web Animations API needs to animate our notification. The result depends on both the animation\n * direction (either in or out) as well as the notifications (and its attributes) itself.\n *\n * @param {?} direction\n * @param {?} notification\n * @return {?}\n */\n NotifierAnimationService.prototype.getAnimationData = function (direction, notification) {\n // Get all necessary animation data\n var /** @type {?} */ keyframes;\n var /** @type {?} */ duration;\n var /** @type {?} */ easing;\n if (direction === 'show') {\n keyframes = this.animationPresets[notification.component.getConfig().animations.show.preset].show(notification);\n duration = notification.component.getConfig().animations.show.speed;\n easing = notification.component.getConfig().animations.show.easing;\n }\n else {\n keyframes = this.animationPresets[notification.component.getConfig().animations.hide.preset].hide(notification);\n duration = notification.component.getConfig().animations.hide.speed;\n easing = notification.component.getConfig().animations.hide.easing;\n }\n // Build and return animation data\n return {\n keyframes: [\n keyframes.from,\n keyframes.to\n ],\n options: {\n duration: duration,\n easing: easing,\n fill: 'forwards' // Keep the newly painted state after the animation finished\n }\n };\n };\n return NotifierAnimationService;\n}());\nNotifierAnimationService.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nNotifierAnimationService.ctorParameters = function () { return []; };\n\n/**\n * Notifier timer service\n *\n * This service acts as a timer, needed due to the still rather limited setTimeout JavaScript API. The timer service can start and stop a\n * timer. Furthermore, it can also pause the timer at any time, and resume later on. The timer API workd promise-based.\n */\nvar NotifierTimerService = (function () {\n /**\n * Constructor\n */\n function NotifierTimerService() {\n this.now = 0;\n this.remaining = 0;\n }\n /**\n * Start (or resume) the timer\n *\n * @param {?} duration\n * @return {?}\n */\n NotifierTimerService.prototype.start = function (duration) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n // For the first run ...\n _this.remaining = duration;\n // Setup, then start the timer\n _this.finishPromiseResolver = resolve;\n _this.continue();\n });\n };\n /**\n * Pause the timer\n * @return {?}\n */\n NotifierTimerService.prototype.pause = function () {\n clearTimeout(this.timerId);\n this.remaining -= new Date().getTime() - this.now;\n };\n /**\n * Continue the timer\n * @return {?}\n */\n NotifierTimerService.prototype.continue = function () {\n var _this = this;\n this.now = new Date().getTime();\n this.timerId = setTimeout(function () {\n _this.finish();\n }, this.remaining);\n };\n /**\n * Stop the timer\n * @return {?}\n */\n NotifierTimerService.prototype.stop = function () {\n clearTimeout(this.timerId);\n this.remaining = 0;\n };\n /**\n * Finish up the timeout by resolving the timer promise\n * @return {?}\n */\n NotifierTimerService.prototype.finish = function () {\n this.finishPromiseResolver();\n };\n return NotifierTimerService;\n}());\nNotifierTimerService.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nNotifierTimerService.ctorParameters = function () { return []; };\n\n/**\n * Notifier notification component\n * -------------------------------\n * This component is responsible for actually displaying the notification on screen. In addition, it's able to show and hide this\n * notification, in particular to animate this notification in and out, as well as shift (move) this notification vertically around.\n * Furthermore, the notification component handles all interactions the user has with this notification / component, such as clicks and\n * mouse movements.\n */\nvar NotifierNotificationComponent = (function () {\n /**\n * Constructor\n *\n * @param {?} elementRef\n * @param {?} renderer\n * @param {?} notifierService\n * @param {?} notifierTimerService\n * @param {?} notifierAnimationService\n */\n function NotifierNotificationComponent(elementRef, renderer, notifierService, notifierTimerService, notifierAnimationService) {\n this.config = notifierService.getConfig();\n this.ready = new EventEmitter();\n this.dismiss = new EventEmitter();\n this.timerService = notifierTimerService;\n this.animationService = notifierAnimationService;\n this.renderer = renderer;\n this.element = elementRef.nativeElement;\n this.elementShift = 0;\n }\n /**\n * Component after view init lifecycle hook, setts up the component and then emits the ready event\n * @return {?}\n */\n NotifierNotificationComponent.prototype.ngAfterViewInit = function () {\n this.setup();\n this.elementHeight = this.element.offsetHeight;\n this.elementWidth = this.element.offsetWidth;\n this.ready.emit(this);\n };\n /**\n * Get the notifier config\n *\n * @return {?}\n */\n NotifierNotificationComponent.prototype.getConfig = function () {\n return this.config;\n };\n /**\n * Get notification element height (in px)\n *\n * @return {?}\n */\n NotifierNotificationComponent.prototype.getHeight = function () {\n return this.elementHeight;\n };\n /**\n * Get notification element width (in px)\n *\n * @return {?}\n */\n NotifierNotificationComponent.prototype.getWidth = function () {\n return this.elementWidth;\n };\n /**\n * Get notification shift offset (in px)\n *\n * @return {?}\n */\n NotifierNotificationComponent.prototype.getShift = function () {\n return this.elementShift;\n };\n /**\n * Show (animate in) this notification\n *\n * @return {?}\n */\n NotifierNotificationComponent.prototype.show = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n // Are animations enabled?\n if (_this.config.animations.enabled && _this.config.animations.show.speed > 0) {\n // Get animation data\n var /** @type {?} */ animationData = _this.animationService.getAnimationData('show', _this.notification);\n // Set initial styles (styles before animation), prevents quick flicker when animation starts\n var /** @type {?} */ animatedProperties = Object.keys(animationData.keyframes[0]);\n for (var /** @type {?} */ i = animatedProperties.length - 1; i >= 0; i--) {\n _this.renderer.setStyle(_this.element, animatedProperties[i], animationData.keyframes[0][animatedProperties[i]]);\n }\n // Animate notification in\n _this.renderer.setStyle(_this.element, 'visibility', 'visible');\n var /** @type {?} */ animation = _this.element.animate(animationData.keyframes, animationData.options);\n animation.onfinish = function () {\n _this.startAutoHideTimer();\n resolve(); // Done\n };\n }\n else {\n // Show notification\n _this.renderer.setStyle(_this.element, 'visibility', 'visible');\n _this.startAutoHideTimer();\n resolve(); // Done\n }\n });\n };\n /**\n * Hide (animate out) this notification\n *\n * @return {?}\n */\n NotifierNotificationComponent.prototype.hide = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.stopAutoHideTimer();\n // Are animations enabled?\n if (_this.config.animations.enabled && _this.config.animations.hide.speed > 0) {\n var /** @type {?} */ animationData = _this.animationService.getAnimationData('hide', _this.notification);\n var /** @type {?} */ animation = _this.element.animate(animationData.keyframes, animationData.options);\n animation.onfinish = function () {\n resolve(); // Done\n };\n }\n else {\n resolve(); // Done\n }\n });\n };\n /**\n * Shift (move) this notification\n *\n * @param {?} distance\n * @param {?} shiftToMakePlace\n * @return {?}\n */\n NotifierNotificationComponent.prototype.shift = function (distance, shiftToMakePlace) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n // Calculate new position (position after the shift)\n var /** @type {?} */ newElementShift;\n if ((_this.config.position.vertical.position === 'top' && shiftToMakePlace)\n || (_this.config.position.vertical.position === 'bottom' && !shiftToMakePlace)) {\n newElementShift = _this.elementShift + distance + _this.config.position.vertical.gap;\n }\n else {\n newElementShift = _this.elementShift - distance - _this.config.position.vertical.gap;\n }\n var /** @type {?} */ horizontalPosition = _this.config.position.horizontal.position === 'middle' ? '-50%' : '0';\n // Are animations enabled?\n if (_this.config.animations.enabled && _this.config.animations.shift.speed > 0) {\n var /** @type {?} */ animationData = {\n keyframes: [\n {\n transform: \"translate3d( \" + horizontalPosition + \", \" + _this.elementShift + \"px, 0 )\"\n },\n {\n transform: \"translate3d( \" + horizontalPosition + \", \" + newElementShift + \"px, 0 )\"\n }\n ],\n options: {\n duration: _this.config.animations.shift.speed,\n easing: _this.config.animations.shift.easing,\n fill: 'forwards'\n }\n };\n _this.elementShift = newElementShift;\n var /** @type {?} */ animation = _this.element.animate(animationData.keyframes, animationData.options);\n animation.onfinish = function () {\n resolve(); // Done\n };\n }\n else {\n _this.renderer.setStyle(_this.element, 'transform', \"translate3d( \" + horizontalPosition + \", \" + newElementShift + \"px, 0 )\");\n _this.elementShift = newElementShift;\n resolve(); // Done\n }\n });\n };\n /**\n * Handle click on dismiss button\n * @return {?}\n */\n NotifierNotificationComponent.prototype.onClickDismiss = function () {\n this.dismiss.emit(this.notification.id);\n };\n /**\n * Handle mouseover over notification area\n * @return {?}\n */\n NotifierNotificationComponent.prototype.onNotificationMouseover = function () {\n if (this.config.behaviour.onMouseover === 'pauseAutoHide') {\n this.pauseAutoHideTimer();\n }\n else if (this.config.behaviour.onMouseover === 'resetAutoHide') {\n this.stopAutoHideTimer();\n }\n };\n /**\n * Handle mouseout from notification area\n * @return {?}\n */\n NotifierNotificationComponent.prototype.onNotificationMouseout = function () {\n if (this.config.behaviour.onMouseover === 'pauseAutoHide') {\n this.continueAutoHideTimer();\n }\n else if (this.config.behaviour.onMouseover === 'resetAutoHide') {\n this.startAutoHideTimer();\n }\n };\n /**\n * Handle click on notification area\n * @return {?}\n */\n NotifierNotificationComponent.prototype.onNotificationClick = function () {\n if (this.config.behaviour.onClick === 'hide') {\n this.onClickDismiss();\n }\n };\n /**\n * Start the auto hide timer (if enabled)\n * @return {?}\n */\n NotifierNotificationComponent.prototype.startAutoHideTimer = function () {\n var _this = this;\n if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) {\n this.timerService.start(this.config.behaviour.autoHide).then(function () {\n _this.onClickDismiss();\n });\n }\n };\n /**\n * Pause the auto hide timer (if enabled)\n * @return {?}\n */\n NotifierNotificationComponent.prototype.pauseAutoHideTimer = function () {\n if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) {\n this.timerService.pause();\n }\n };\n /**\n * Continue the auto hide timer (if enabled)\n * @return {?}\n */\n NotifierNotificationComponent.prototype.continueAutoHideTimer = function () {\n if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) {\n this.timerService.continue();\n }\n };\n /**\n * Stop the auto hide timer (if enabled)\n * @return {?}\n */\n NotifierNotificationComponent.prototype.stopAutoHideTimer = function () {\n if (this.config.behaviour.autoHide !== false && this.config.behaviour.autoHide > 0) {\n this.timerService.stop();\n }\n };\n /**\n * Initial notification setup\n * @return {?}\n */\n NotifierNotificationComponent.prototype.setup = function () {\n // Set start position (initially the exact same for every new notification)\n if (this.config.position.horizontal.position === 'left') {\n this.renderer.setStyle(this.element, 'left', this.config.position.horizontal.distance + \"px\");\n }\n else if (this.config.position.horizontal.position === 'right') {\n this.renderer.setStyle(this.element, 'right', this.config.position.horizontal.distance + \"px\");\n }\n else {\n this.renderer.setStyle(this.element, 'left', '50%');\n // Let's get the GPU handle some work as well (#perfmatters)\n this.renderer.setStyle(this.element, 'transform', 'translate3d( -50%, 0, 0 )');\n }\n if (this.config.position.vertical.position === 'top') {\n this.renderer.setStyle(this.element, 'top', this.config.position.vertical.distance + \"px\");\n }\n else {\n this.renderer.setStyle(this.element, 'bottom', this.config.position.vertical.distance + \"px\");\n }\n // Add classes (responsible for visual design)\n this.renderer.addClass(this.element, \"notifier__notification--\" + this.notification.type);\n this.renderer.addClass(this.element, \"notifier__notification--\" + this.config.theme);\n };\n return NotifierNotificationComponent;\n}());\nNotifierNotificationComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(click)': 'onNotificationClick()',\n '(mouseout)': 'onNotificationMouseout()',\n '(mouseover)': 'onNotificationMouseover()',\n class: 'notifier__notification'\n },\n providers: [\n // We provide the timer to the component's local injector, so that every notification components gets its own\n // instance of the timer service, thus running their timers independently from each other\n NotifierTimerService\n ],\n selector: 'notifier-notification',\n template: \"

{{ notification.message }}

\"\n },] },\n];\n/**\n * @nocollapse\n */\nNotifierNotificationComponent.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: Renderer2, },\n { type: NotifierService, },\n { type: NotifierTimerService, },\n { type: NotifierAnimationService, },\n]; };\nNotifierNotificationComponent.propDecorators = {\n 'notification': [{ type: Input },],\n 'ready': [{ type: Output },],\n 'dismiss': [{ type: Output },],\n};\n\n/**\n * Injection Token for notifier options\n */\nvar NotifierOptionsToken = new InjectionToken('[angular-notifier] Notifier Options');\n/**\n * Injection Token for notifier configuration\n */\nvar NotifierConfigToken = new InjectionToken('[anuglar-notifier] Notifier Config');\n/**\n * Factory for a notifier configuration with custom options\n *\n * Sidenote:\n * Required as Angular AoT compilation cannot handle dynamic functions; see .\n *\n * @param {?} options\n * @return {?}\n */\nfunction notifierCustomConfigFactory(options) {\n return new NotifierConfig(options);\n}\n/**\n * Factory for a notifier configuration with default options\n *\n * Sidenote:\n * Required as Angular AoT compilation cannot handle dynamic functions; see .\n *\n * @return {?}\n */\nfunction notifierDefaultConfigFactory() {\n return new NotifierConfig({});\n}\n/**\n * Notifier module\n */\nvar NotifierModule = (function () {\n function NotifierModule() {\n }\n /**\n * Setup the notifier module with custom providers, in this case with a custom configuration based on the givne options\n *\n * @param {?=} options\n * @return {?}\n */\n NotifierModule.withConfig = function (options) {\n if (options === void 0) { options = {}; }\n return {\n ngModule: NotifierModule,\n providers: [\n // Provide the options itself upfront (as we need to inject them as dependencies -- see below)\n {\n provide: NotifierOptionsToken,\n useValue: options\n },\n // Provide a custom notifier configuration, based on the given notifier options\n {\n deps: [\n NotifierOptionsToken\n ],\n provide: NotifierConfigToken,\n useFactory: notifierCustomConfigFactory\n }\n ]\n };\n };\n return NotifierModule;\n}());\nNotifierModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n NotifierContainerComponent,\n NotifierNotificationComponent\n ],\n exports: [\n NotifierContainerComponent\n ],\n imports: [\n CommonModule\n ],\n providers: [\n NotifierAnimationService,\n NotifierService,\n NotifierQueueService,\n // Provide the default notifier configuration if just the module is imported\n {\n provide: NotifierConfigToken,\n useFactory: notifierDefaultConfigFactory\n }\n ]\n },] },\n];\n/**\n * @nocollapse\n */\nNotifierModule.ctorParameters = function () { return []; };\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NotifierModule, NotifierService, NotifierContainerComponent as ɵf, NotifierNotificationComponent as ɵh, NotifierConfig as ɵe, NotifierConfigToken as ɵb, NotifierOptionsToken as ɵa, notifierCustomConfigFactory as ɵc, notifierDefaultConfigFactory as ɵd, NotifierAnimationService as ɵj, NotifierQueueService as ɵg, NotifierTimerService as ɵi };\n\n//# sourceMappingURL=angular-notifier.es5.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/angular-notifier/angular-notifier.es5.js\n// module id = 221\n// module chunks = 1","var __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Injectable, Inject } from '@angular/core';\nimport { INITIAL_STATE, Dispatcher, Reducer } from '@ngrx/store';\nimport { ReplaySubject } from 'rxjs/ReplaySubject';\nimport { map } from 'rxjs/operator/map';\nimport { merge } from 'rxjs/operator/merge';\nimport { observeOn } from 'rxjs/operator/observeOn';\nimport { scan } from 'rxjs/operator/scan';\nimport { skip } from 'rxjs/operator/skip';\nimport { withLatestFrom } from 'rxjs/operator/withLatestFrom';\nimport { queue } from 'rxjs/scheduler/queue';\nimport { DevtoolsExtension } from './extension';\nimport { liftAction, unliftState, applyOperators } from './utils';\nimport { liftReducerWith, liftInitialState } from './reducer';\nimport { StoreDevtoolActions as actions } from './actions';\nimport { STORE_DEVTOOLS_CONFIG } from './config';\nvar DevtoolsDispatcher = (function (_super) {\n __extends(DevtoolsDispatcher, _super);\n function DevtoolsDispatcher() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DevtoolsDispatcher;\n}(Dispatcher));\nexport { DevtoolsDispatcher };\nDevtoolsDispatcher.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDevtoolsDispatcher.ctorParameters = function () { return []; };\nvar StoreDevtools = (function () {\n function StoreDevtools(dispatcher, actions$, reducers$, extension, initialState, config) {\n var liftedInitialState = liftInitialState(initialState, config.monitor);\n var liftReducer = liftReducerWith(initialState, liftedInitialState, config.monitor, {\n maxAge: config.maxAge\n });\n var liftedAction$ = applyOperators(actions$, [\n [skip, 1],\n [merge, extension.actions$],\n [map, liftAction],\n [merge, dispatcher, extension.liftedActions$],\n [observeOn, queue]\n ]);\n var liftedReducer$ = map.call(reducers$, liftReducer);\n var liftedStateSubject = new ReplaySubject(1);\n var liftedStateSubscription = applyOperators(liftedAction$, [\n [withLatestFrom, liftedReducer$],\n [scan, function (liftedState, _a) {\n var action = _a[0], reducer = _a[1];\n var nextState = reducer(liftedState, action);\n extension.notify(action, nextState);\n return nextState;\n }, liftedInitialState]\n ]).subscribe(liftedStateSubject);\n var liftedState$ = liftedStateSubject.asObservable();\n var state$ = map.call(liftedState$, unliftState);\n this.stateSubscription = liftedStateSubscription;\n this.dispatcher = dispatcher;\n this.liftedState = liftedState$;\n this.state = state$;\n }\n StoreDevtools.prototype.dispatch = function (action) {\n this.dispatcher.dispatch(action);\n };\n StoreDevtools.prototype.next = function (action) {\n this.dispatcher.dispatch(action);\n };\n StoreDevtools.prototype.error = function (error) { };\n StoreDevtools.prototype.complete = function () { };\n StoreDevtools.prototype.performAction = function (action) {\n this.dispatch(actions.performAction(action));\n };\n StoreDevtools.prototype.reset = function () {\n this.dispatch(actions.reset());\n };\n StoreDevtools.prototype.rollback = function () {\n this.dispatch(actions.rollback());\n };\n StoreDevtools.prototype.commit = function () {\n this.dispatch(actions.commit());\n };\n StoreDevtools.prototype.sweep = function () {\n this.dispatch(actions.sweep());\n };\n StoreDevtools.prototype.toggleAction = function (id) {\n this.dispatch(actions.toggleAction(id));\n };\n StoreDevtools.prototype.jumpToState = function (index) {\n this.dispatch(actions.jumpToState(index));\n };\n StoreDevtools.prototype.importState = function (nextLiftedState) {\n this.dispatch(actions.importState(nextLiftedState));\n };\n return StoreDevtools;\n}());\nexport { StoreDevtools };\nStoreDevtools.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nStoreDevtools.ctorParameters = function () { return [\n { type: DevtoolsDispatcher, },\n { type: Dispatcher, },\n { type: Reducer, },\n { type: DevtoolsExtension, },\n { type: undefined, decorators: [{ type: Inject, args: [INITIAL_STATE,] },] },\n { type: undefined, decorators: [{ type: Inject, args: [STORE_DEVTOOLS_CONFIG,] },] },\n]; };\n//# sourceMappingURL=devtools.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/devtools.js\n// module id = 222\n// module chunks = 1","import { OpaqueToken, Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport { empty } from 'rxjs/observable/empty';\nimport { filter } from 'rxjs/operator/filter';\nimport { map } from 'rxjs/operator/map';\nimport { share } from 'rxjs/operator/share';\nimport { switchMap } from 'rxjs/operator/switchMap';\nimport { takeUntil } from 'rxjs/operator/takeUntil';\nimport { applyOperators } from './utils';\nexport var ExtensionActionTypes = {\n START: 'START',\n DISPATCH: 'DISPATCH',\n STOP: 'STOP',\n ACTION: 'ACTION'\n};\nexport var REDUX_DEVTOOLS_EXTENSION = new OpaqueToken('Redux Devtools Extension');\nvar DevtoolsExtension = (function () {\n function DevtoolsExtension(devtoolsExtension) {\n this.instanceId = \"ngrx-store-\" + Date.now();\n this.devtoolsExtension = devtoolsExtension;\n this.createActionStreams();\n }\n DevtoolsExtension.prototype.notify = function (action, state) {\n if (!this.devtoolsExtension) {\n return;\n }\n this.devtoolsExtension.send(null, state, false, this.instanceId);\n };\n DevtoolsExtension.prototype.createChangesObservable = function () {\n var _this = this;\n if (!this.devtoolsExtension) {\n return empty();\n }\n return new Observable(function (subscriber) {\n var connection = _this.devtoolsExtension.connect({ instanceId: _this.instanceId });\n connection.subscribe(function (change) { return subscriber.next(change); });\n return connection.unsubscribe;\n });\n };\n DevtoolsExtension.prototype.createActionStreams = function () {\n var _this = this;\n // Listens to all changes based on our instanceId\n var changes$ = share.call(this.createChangesObservable());\n // Listen for the start action\n var start$ = filter.call(changes$, function (change) { return change.type === ExtensionActionTypes.START; });\n // Listen for the stop action\n var stop$ = filter.call(changes$, function (change) { return change.type === ExtensionActionTypes.STOP; });\n // Listen for lifted actions\n var liftedActions$ = applyOperators(changes$, [\n [filter, function (change) { return change.type === ExtensionActionTypes.DISPATCH; }],\n [map, function (change) { return _this.unwrapAction(change.payload); }]\n ]);\n // Listen for unlifted actions\n var actions$ = applyOperators(changes$, [\n [filter, function (change) { return change.type === ExtensionActionTypes.ACTION; }],\n [map, function (change) { return _this.unwrapAction(change.payload); }]\n ]);\n var actionsUntilStop$ = takeUntil.call(actions$, stop$);\n var liftedUntilStop$ = takeUntil.call(liftedActions$, stop$);\n // Only take the action sources between the start/stop events\n this.actions$ = switchMap.call(start$, function () { return actionsUntilStop$; });\n this.liftedActions$ = switchMap.call(start$, function () { return liftedUntilStop$; });\n };\n DevtoolsExtension.prototype.unwrapAction = function (action) {\n return typeof action === 'string' ? eval(\"(\" + action + \")\") : action;\n };\n return DevtoolsExtension;\n}());\nexport { DevtoolsExtension };\nDevtoolsExtension.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDevtoolsExtension.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [REDUX_DEVTOOLS_EXTENSION,] },] },\n]; };\n//# sourceMappingURL=extension.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/extension.js\n// module id = 223\n// module chunks = 1","import { OpaqueToken } from '@angular/core';\nexport var STORE_DEVTOOLS_CONFIG = new OpaqueToken('@ngrx/devtools Options');\nexport var INITIAL_OPTIONS = new OpaqueToken('@ngrx/devtools Initial Config');\n//# sourceMappingURL=config.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/config.js\n// module id = 224\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CommanderComponent } from './commander';\nimport { DockComponent } from './dock';\nimport { DockMonitorComponent } from './dock-monitor';\nimport { DockActions } from './actions';\nexport var DockMonitorModule = (function () {\n function DockMonitorModule() {\n }\n DockMonitorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n CommanderComponent,\n DockComponent,\n DockMonitorComponent\n ],\n providers: [\n DockActions\n ],\n exports: [\n DockMonitorComponent\n ]\n },] },\n ];\n /** @nocollapse */\n DockMonitorModule.ctorParameters = [];\n return DockMonitorModule;\n}());\nexport { useDockMonitor } from './reducer';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/index.js\n// module id = 225\n// module chunks = 1","import { compose } from '@ngrx/core/compose';\nexport var KNOWN = {\n Array: 'array',\n Object: 'object',\n Null: 'null',\n Undefined: 'undefined',\n Boolean: 'boolean',\n Number: 'number',\n String: 'string',\n Symbol: 'symbol',\n Function: 'function',\n Iterable: 'iterable'\n};\nexport function getTypeOf(object) {\n var literalType = typeof object;\n if (literalType === 'object') {\n if (Array.isArray(object)) {\n return KNOWN.Array;\n }\n if (object === null) {\n return KNOWN.Null;\n }\n if (typeof object[Symbol.iterator] === 'function') {\n return KNOWN.Iterable;\n }\n }\n return literalType;\n}\nvar arrayLength = function (value) { return value.length; };\nvar lengthLabel = function (single, plural) { return function (length) { return (length + \" \" + (length === 1 ? single : plural)); }; };\nvar typeIndicator = function (typeIndicator) { return function (input) { return (typeIndicator + \" \" + input); }; };\nvar typeIdentity = function (type) { return function () { return type; }; };\nvar withQuotes = function (val) { return (\"\\\"\" + val + \"\\\"\"); };\nvar toString = function (val) { return val.toString(); };\nvar iterableToArray = function (value) { return Array.from(value); };\nvar labelFactoriesForTypes = (_a = {},\n _a[KNOWN.Array] = compose(typeIndicator('[]'), lengthLabel('item', 'items'), arrayLength),\n _a[KNOWN.Object] = compose(typeIndicator('{}'), lengthLabel('key', 'keys'), arrayLength, Object.getOwnPropertyNames),\n _a[KNOWN.Null] = typeIdentity(KNOWN.Null),\n _a[KNOWN.Undefined] = typeIdentity(KNOWN.Undefined),\n _a[KNOWN.Boolean] = function (val) { return val ? 'true' : 'false'; },\n _a[KNOWN.Number] = toString,\n _a[KNOWN.String] = withQuotes,\n _a[KNOWN.Symbol] = compose(withQuotes, toString),\n _a[KNOWN.Function] = typeIdentity(KNOWN.Function),\n _a[KNOWN.Iterable] = compose(typeIndicator('()'), lengthLabel('entry', 'entries'), arrayLength, iterableToArray),\n _a\n);\nvar lookupLabelForType = function (type) { return labelFactoriesForTypes[type]; };\nexport var getLabelFor = function (object) { return labelFactoriesForTypes[getTypeOf(object)](object); };\nexport function getChildrenFor(object) {\n var literalType = getTypeOf(object);\n if (literalType === KNOWN.Object) {\n return Object.getOwnPropertyNames(object).map(function (name) {\n return { key: name, value: object[name] };\n });\n }\n else if (literalType === KNOWN.Array) {\n return object.map(function (value, index) {\n return { key: index, value: value };\n });\n }\n else if (literalType === KNOWN.Iterable) {\n return Array.from(object).map(function (value, index) {\n return { key: index, value: value };\n });\n }\n throw new TypeError(\"Tried to get children for non-enumerable type \\\"\" + literalType + \"\\\"\");\n}\nvar _a;\n//# sourceMappingURL=types.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/json-tree/types.js\n// module id = 226\n// module chunks = 1","export * from './src/actions';\nexport * from './src/reducer';\nexport * from './src/router-store-module';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/router-store/index.js\n// module id = 227\n// module chunks = 1","\"use strict\";\nvar index_1 = require(\"./index\");\nexports.dragula = index_1.dragula;\nexports.DragulaDirective = index_1.DragulaDirective;\nexports.DragulaModule = index_1.DragulaModule;\nexports.DragulaService = index_1.DragulaService;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ng2-dragula/ng2-dragula.js\n// module id = 228\n// module chunks = 1","export * from './add-on.component';\r\nexport * from './add-on.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/add-on/index.ts","import { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Component({\r\n selector: 'add-on',\r\n template: require('./add-on.component.html'),\r\n styles: [require('./add-on.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class AddOnComponent {\r\n name$: Observable;\r\n\r\n constructor(route: ActivatedRoute) {\r\n this.name$ = route\r\n .params\r\n .select('name');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/add-on/add-on.component.ts","import { Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/combineLatest';\r\nimport 'rxjs/add/operator/publishReplay';\r\n\r\nimport { Keymap } from '../../../config-serializer/config-items/keymap';\r\nimport { AppState } from '../../../store';\r\nimport { KeymapActions } from '../../../store/actions';\r\n\r\n@Component({\r\n selector: 'keymap-add',\r\n template: require('./keymap-add.component.html'),\r\n styles: [require('./keymap-add.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class KeymapAddComponent {\r\n presets$: Observable;\r\n private presetsAll$: Observable;\r\n private filterExpression$: BehaviorSubject;\r\n\r\n constructor(private store: Store) {\r\n this.presetsAll$ = store.select((appState: AppState) => appState.presetKeymaps);\r\n this.filterExpression$ = new BehaviorSubject('');\r\n\r\n this.presets$ = this.presetsAll$\r\n .combineLatest(this.filterExpression$, (keymaps: Keymap[], filterExpression: string) => {\r\n return keymaps.filter((keymap: Keymap) => keymap.name.toLocaleLowerCase().includes(filterExpression));\r\n })\r\n .publishReplay(1)\r\n .refCount();\r\n }\r\n\r\n filterKeyboards(filterExpression: string) {\r\n this.filterExpression$.next(filterExpression);\r\n }\r\n\r\n addKeymap(keymap: Keymap) {\r\n this.store.dispatch(KeymapActions.addKeymap(keymap));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keymap/add/keymap-add.component.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { Macro } from '../../config-serializer/config-items/macro';\r\nimport { MacroAction } from '../../config-serializer/config-items/macro-action';\r\n\r\nexport namespace MacroActions {\r\n export const PREFIX = '[Macro] ';\r\n\r\n export const DUPLICATE = MacroActions.PREFIX + 'Duplicate macro';\r\n export const EDIT_NAME = MacroActions.PREFIX + 'Edit macro title';\r\n export const REMOVE = MacroActions.PREFIX + 'Remove macro';\r\n export const ADD = MacroActions.PREFIX + 'Add macro';\r\n\r\n export const ADD_ACTION = MacroActions.PREFIX + 'Add macro action';\r\n export const SAVE_ACTION = MacroActions.PREFIX + 'Save macro action';\r\n export const DELETE_ACTION = MacroActions.PREFIX + 'Delete macro action';\r\n export const REORDER_ACTION = MacroActions.PREFIX + 'Reorder macro action';\r\n\r\n export function addMacro(): Action {\r\n return {\r\n type: MacroActions.ADD\r\n };\r\n }\r\n\r\n export function removeMacro(macroId: number): Action {\r\n return {\r\n type: MacroActions.REMOVE,\r\n payload: macroId\r\n };\r\n }\r\n\r\n export function duplicateMacro(macro: Macro): Action {\r\n return {\r\n type: MacroActions.DUPLICATE,\r\n payload: macro\r\n };\r\n }\r\n\r\n export function editMacroName(id: number, name: string): Action {\r\n return {\r\n type: MacroActions.EDIT_NAME,\r\n payload: {\r\n id: id,\r\n name: name\r\n }\r\n };\r\n }\r\n\r\n export function addMacroAction(id: number, action: MacroAction): Action {\r\n return {\r\n type: MacroActions.ADD_ACTION,\r\n payload: {\r\n id: id,\r\n action: action\r\n }\r\n };\r\n }\r\n\r\n export function saveMacroAction(id: number, index: number, action: MacroAction): Action {\r\n return {\r\n type: MacroActions.SAVE_ACTION,\r\n payload: {\r\n id: id,\r\n index: index,\r\n action: action\r\n }\r\n };\r\n }\r\n\r\n export function deleteMacroAction(id: number, index: number, action: MacroAction): Action {\r\n return {\r\n type: MacroActions.DELETE_ACTION,\r\n payload: {\r\n id: id,\r\n index: index,\r\n action: action\r\n }\r\n };\r\n }\r\n\r\n export function reorderMacroAction(id: number, oldIndex: number, newIndex: number): Action {\r\n return {\r\n type: MacroActions.REORDER_ACTION,\r\n payload: {\r\n id: id,\r\n oldIndex: oldIndex,\r\n newIndex: newIndex\r\n }\r\n };\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/macro.ts","import { Component, HostListener } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport '@ngrx/core/add/operator/select';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/first';\r\nimport 'rxjs/add/operator/let';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/publishReplay';\r\nimport 'rxjs/add/operator/switchMap';\r\n\r\nimport { saveAs } from 'file-saver';\r\n\r\nimport { Keymap } from '../../../config-serializer/config-items/keymap';\r\nimport { AppState } from '../../../store';\r\nimport { getKeymap, getKeymaps, getUserConfiguration } from '../../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n selector: 'keymap-edit',\r\n template: require('./keymap-edit.component.html'),\r\n styles: [require('./keymap-edit.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class KeymapEditComponent {\r\n\r\n keyboardSplit: boolean;\r\n\r\n protected keymap$: Observable;\r\n private deletable$: Observable;\r\n\r\n constructor(\r\n protected store: Store,\r\n route: ActivatedRoute\r\n ) {\r\n this.keymap$ = route\r\n .params\r\n .select('abbr')\r\n .switchMap((abbr: string) => store.let(getKeymap(abbr)))\r\n .publishReplay(1)\r\n .refCount();\r\n\r\n this.deletable$ = store.let(getKeymaps())\r\n .map((keymaps: Keymap[]) => keymaps.length > 1);\r\n }\r\n\r\n downloadKeymap() {\r\n const exportableJSON$: Observable = this.keymap$\r\n .switchMap(keymap => this.toExportableJSON(keymap))\r\n .map(exportableJSON => JSON.stringify(exportableJSON));\r\n\r\n this.keymap$\r\n .combineLatest(exportableJSON$)\r\n .first()\r\n .subscribe(latest => {\r\n const keymap = latest[0];\r\n const exportableJSON = latest[1];\r\n const fileName = keymap.name + '_keymap.json';\r\n saveAs(new Blob([exportableJSON], { type: 'application/json' }), fileName);\r\n });\r\n }\r\n\r\n @HostListener('window:keydown.alt.s', ['$event'])\r\n toggleKeyboardSplit() {\r\n this.keyboardSplit = !this.keyboardSplit;\r\n }\r\n\r\n private toExportableJSON(keymap: Keymap): Observable {\r\n return this.store\r\n .let(getUserConfiguration())\r\n .first()\r\n .map(userConfiguration => {\r\n return {\r\n site: 'https://ultimatehackingkeyboard.com',\r\n description: 'Ultimate Hacking Keyboard keymap',\r\n keyboardModel: 'UHK60',\r\n dataModelVersion: userConfiguration.dataModelVersion,\r\n objectType: 'keymap',\r\n objectValue: keymap.toJsonObject()\r\n };\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keymap/edit/keymap-edit.component.ts","\"use strict\";\nvar Observable_1 = require('rxjs/Observable');\nvar select_1 = require('../../operator/select');\nObservable_1.Observable.prototype.select = select_1.select;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/core/add/operator/select.js\n// module id = 234\n// module chunks = 1","export enum LongPressAction {\r\n leftCtrl,\r\n leftShift,\r\n leftAlt,\r\n leftSuper,\r\n rightCtrl,\r\n rightShift,\r\n rightAlt,\r\n rightSuper,\r\n mod,\r\n fn,\r\n mouse\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/long-press-action.ts","import { UhkBuffer } from '../uhk-buffer';\r\nimport { Macro } from './macro';\r\nimport { Module } from './module';\r\n\r\nexport class Layer {\r\n\r\n modules: Module[];\r\n\r\n constructor(layers?: Layer) {\r\n if (!layers) {\r\n return;\r\n }\r\n this.modules = layers.modules.map(module => new Module(module));\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros?: Macro[]): Layer {\r\n this.modules = jsonObject.modules.map((module: any) => new Module().fromJsonObject(module, macros));\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros?: Macro[]): Layer {\r\n this.modules = buffer.readArray(uhkBuffer => {\r\n return new Module().fromBinary(uhkBuffer, macros);\r\n });\r\n return this;\r\n }\r\n\r\n toJsonObject(macros?: Macro[]): any {\r\n return {\r\n modules: this.modules.map(module => module.toJsonObject(macros))\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros?: Macro[]): void {\r\n buffer.writeArray(this.modules, (uhkBuffer: UhkBuffer, module: Module) => {\r\n module.toBinary(uhkBuffer, macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): Layer {\r\n let modules: Module[];\r\n let moduleModified = false;\r\n this.modules.forEach((module, index) => {\r\n const newModule = module.renameKeymap(oldAbbr, newAbbr);\r\n if (newModule !== module) {\r\n if (!moduleModified) {\r\n modules = this.modules.slice();\r\n moduleModified = true;\r\n }\r\n modules[index] = newModule;\r\n }\r\n });\r\n if (moduleModified) {\r\n const newLayer = Object.assign(new Layer(), this);\r\n newLayer.modules = modules;\r\n return newLayer;\r\n }\r\n return this;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/layer.ts","import { assertEnum, assertUInt8 } from '../assert';\r\nimport { UhkBuffer } from '../uhk-buffer';\r\nimport { Helper as KeyActionHelper, KeyAction, NoneAction, PlayMacroAction, SwitchKeymapAction } from './key-action';\r\nimport { Macro } from './macro';\r\n\r\nenum PointerRole {\r\n none,\r\n move,\r\n scroll\r\n}\r\n\r\nexport class Module {\r\n\r\n @assertUInt8\r\n id: number;\r\n\r\n keyActions: KeyAction[];\r\n\r\n @assertEnum(PointerRole)\r\n pointerRole: PointerRole;\r\n\r\n constructor(other?: Module) {\r\n if (!other) {\r\n return;\r\n }\r\n this.id = other.id;\r\n this.keyActions = other.keyActions.map(keyAction => KeyActionHelper.createKeyAction(keyAction));\r\n this.pointerRole = other.pointerRole;\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros?: Macro[]): Module {\r\n this.id = jsonObject.id;\r\n this.pointerRole = PointerRole[jsonObject.pointerRole];\r\n this.keyActions = jsonObject.keyActions.map((keyAction: any) => {\r\n return KeyActionHelper.createKeyAction(keyAction, macros);\r\n });\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros?: Macro[]): Module {\r\n this.id = buffer.readUInt8();\r\n this.pointerRole = buffer.readUInt8();\r\n const keyActionsLength: number = buffer.readCompactLength();\r\n this.keyActions = [];\r\n for (let i = 0; i < keyActionsLength; ++i) {\r\n this.keyActions.push(KeyActionHelper.createKeyAction(buffer, macros));\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(macros?: Macro[]): any {\r\n return {\r\n id: this.id,\r\n pointerRole: PointerRole[this.pointerRole],\r\n keyActions: this.keyActions.map(keyAction => {\r\n if (keyAction && (macros || !(keyAction instanceof PlayMacroAction || keyAction instanceof SwitchKeymapAction))) {\r\n return keyAction.toJsonObject(macros);\r\n }\r\n })\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros?: Macro[]): void {\r\n buffer.writeUInt8(this.id);\r\n buffer.writeUInt8(this.pointerRole);\r\n\r\n const noneAction = new NoneAction();\r\n\r\n const keyActions: KeyAction[] = this.keyActions.map(keyAction => {\r\n if (keyAction) {\r\n return keyAction;\r\n }\r\n return noneAction;\r\n });\r\n\r\n buffer.writeArray(keyActions, (uhkBuffer: UhkBuffer, keyAction: KeyAction) => {\r\n keyAction.toBinary(uhkBuffer, macros);\r\n });\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): Module {\r\n let keyActions: KeyAction[];\r\n let keyActionModified = false;\r\n this.keyActions.forEach((keyAction, index) => {\r\n if (!keyAction) { return; }\r\n const newKeyAction = keyAction.renameKeymap(oldAbbr, newAbbr);\r\n if (newKeyAction !== keyAction) {\r\n if (!keyActionModified) {\r\n keyActions = this.keyActions.slice();\r\n keyActionModified = true;\r\n }\r\n keyActions[index] = newKeyAction;\r\n }\r\n });\r\n if (keyActionModified) {\r\n const newModule = Object.assign(new Module(), this);\r\n newModule.keyActions = keyActions;\r\n return newModule;\r\n }\r\n return this;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/module.ts","export class UhkBuffer {\r\n\r\n private static eepromSize = 32 * 1024;\r\n private static maxCompactLength = 0xFFFF;\r\n private static longCompactLengthPrefix = 0xFF;\r\n private static stringEncoding = 'utf8';\r\n private static isFirstElementToDump = false;\r\n\r\n offset: number;\r\n private _enableDump = false;\r\n\r\n private buffer: Buffer;\r\n private bytesToBacktrack: number;\r\n\r\n static simpleElementWriter(buffer: UhkBuffer, element: T): void {\r\n (element).toBinary(buffer); // TODO: Remove any\r\n }\r\n\r\n constructor() {\r\n this.offset = 0;\r\n this.bytesToBacktrack = 0;\r\n this.buffer = new Buffer(UhkBuffer.eepromSize);\r\n this.buffer.fill(0);\r\n }\r\n\r\n readInt8(): number {\r\n const value = this.buffer.readInt8(this.offset);\r\n this.dump(`i8(${value})`);\r\n this.bytesToBacktrack = 1;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeInt8(value: number): void {\r\n this.dump(`i8(${value})`);\r\n this.buffer.writeInt8(value, this.offset);\r\n this.offset += 1;\r\n }\r\n\r\n readUInt8(): number {\r\n const value = this.buffer.readUInt8(this.offset);\r\n this.dump(`u8(${value})`);\r\n this.bytesToBacktrack = 1;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeUInt8(value: number): void {\r\n this.dump(`u8(${value})`);\r\n this.buffer.writeUInt8(value, this.offset);\r\n this.offset += 1;\r\n }\r\n\r\n readInt16(): number {\r\n const value = this.buffer.readInt16LE(this.offset);\r\n this.dump(`i16(${value})`);\r\n this.bytesToBacktrack = 2;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeInt16(value: number): void {\r\n this.dump(`i16(${value})`);\r\n this.buffer.writeInt16LE(value, this.offset);\r\n this.offset += 2;\r\n }\r\n\r\n readUInt16(): number {\r\n const value = this.buffer.readUInt16LE(this.offset);\r\n this.dump(`u16(${value})`);\r\n this.bytesToBacktrack = 2;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeUInt16(value: number): void {\r\n this.dump(`u16(${value})`);\r\n this.buffer.writeUInt16LE(value, this.offset);\r\n this.offset += 2;\r\n }\r\n\r\n readInt32(): number {\r\n const value = this.buffer.readInt32LE(this.offset);\r\n this.dump(`i32(${value})`);\r\n this.bytesToBacktrack = 4;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeInt32(value: number): void {\r\n this.dump(`i32(${value})`);\r\n this.buffer.writeInt32LE(value, this.offset);\r\n this.offset += 4;\r\n }\r\n\r\n readUInt32(): number {\r\n const value = this.buffer.readUInt32LE(this.offset);\r\n this.dump(`u32(${value})`);\r\n this.bytesToBacktrack = 4;\r\n this.offset += this.bytesToBacktrack;\r\n return value;\r\n }\r\n\r\n writeUInt32(value: number): void {\r\n this.dump(`u32(${value})`);\r\n this.buffer.writeUInt32LE(value, this.offset);\r\n this.offset += 4;\r\n }\r\n\r\n readCompactLength(): number {\r\n let length = this.readUInt8();\r\n if (length === UhkBuffer.longCompactLengthPrefix) {\r\n length = this.readUInt16();\r\n }\r\n return length;\r\n }\r\n\r\n writeCompactLength(length: number) {\r\n if (length >= UhkBuffer.longCompactLengthPrefix) {\r\n this.writeUInt8(UhkBuffer.longCompactLengthPrefix);\r\n this.writeUInt16(length);\r\n } else {\r\n this.writeUInt8(length);\r\n }\r\n }\r\n\r\n readString(): string {\r\n const stringByteLength = this.readCompactLength();\r\n const str = this.buffer.toString(UhkBuffer.stringEncoding, this.offset, this.offset + stringByteLength);\r\n this.dump(`${UhkBuffer.stringEncoding}(${str})`);\r\n this.bytesToBacktrack = stringByteLength;\r\n this.offset += stringByteLength;\r\n return str;\r\n }\r\n\r\n writeString(str: string): void {\r\n const stringByteLength = Buffer.byteLength(str, UhkBuffer.stringEncoding);\r\n\r\n if (stringByteLength > UhkBuffer.maxCompactLength) {\r\n throw `Cannot serialize string: ${stringByteLength} bytes is larger\r\n than the maximum allowed length of ${UhkBuffer.maxCompactLength} bytes`;\r\n }\r\n\r\n this.writeCompactLength(stringByteLength);\r\n this.dump(`${UhkBuffer.stringEncoding}(${str})`);\r\n this.buffer.write(str, this.offset, stringByteLength, UhkBuffer.stringEncoding);\r\n this.offset += stringByteLength;\r\n }\r\n\r\n readBoolean(): boolean {\r\n return this.readUInt8() !== 0;\r\n }\r\n\r\n writeBoolean(bool: boolean) {\r\n this.writeUInt8(bool ? 1 : 0);\r\n }\r\n\r\n readArray(elementReader: (buffer: UhkBuffer, index?: number) => T): T[] {\r\n const array: T[] = [];\r\n const length = this.readCompactLength();\r\n for (let i = 0; i < length; ++i) {\r\n array.push(elementReader(this, i));\r\n }\r\n return array;\r\n }\r\n\r\n writeArray(\r\n array: T[],\r\n elementWriter: (buffer: UhkBuffer, element: T, index?: number) => void = UhkBuffer.simpleElementWriter\r\n ): void {\r\n const length = array.length;\r\n this.writeCompactLength(length);\r\n for (let i = 0; i < length; ++i) {\r\n elementWriter(this, array[i], i);\r\n }\r\n }\r\n\r\n backtrack(): void {\r\n this.offset -= this.bytesToBacktrack;\r\n this.bytesToBacktrack = 0;\r\n }\r\n\r\n getBufferContent(): Buffer {\r\n return this.buffer.slice(0, this.offset);\r\n }\r\n\r\n get enableDump() {\r\n return this._enableDump;\r\n }\r\n\r\n set enableDump(value) {\r\n if (value) {\r\n UhkBuffer.isFirstElementToDump = true;\r\n }\r\n this._enableDump = value;\r\n }\r\n\r\n dump(value: any) {\r\n if (!this.enableDump) {\r\n return;\r\n }\r\n\r\n if (!UhkBuffer.isFirstElementToDump) {\r\n process.stdout.write(', ');\r\n }\r\n\r\n process.stdout.write(value);\r\n\r\n if (UhkBuffer.isFirstElementToDump) {\r\n UhkBuffer.isFirstElementToDump = false;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/uhk-buffer.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { type } from '../../util';\r\nimport { UserConfiguration } from '../../config-serializer/config-items/user-configuration';\r\n\r\nconst PREFIX = '[user-config] ';\r\n\r\n// tslint:disable-next-line:variable-name\r\nexport const ActionTypes = {\r\n LOAD_USER_CONFIG: type(PREFIX + 'Load User Config'),\r\n LOAD_USER_CONFIG_SUCCESS: type(PREFIX + 'Load User Config Success'),\r\n SAVE_USER_CONFIG_SUCCESS: type(PREFIX + 'Save User Config Success')\r\n};\r\n\r\nexport class LoadUserConfigAction implements Action {\r\n type = ActionTypes.LOAD_USER_CONFIG;\r\n}\r\n\r\nexport class LoadUserConfigSuccessAction implements Action {\r\n type = ActionTypes.LOAD_USER_CONFIG_SUCCESS;\r\n\r\n constructor(public payload: UserConfiguration) {\r\n\r\n }\r\n}\r\n\r\nexport class SaveUserConfigSuccessAction implements Action {\r\n type = ActionTypes.SAVE_USER_CONFIG_SUCCESS;\r\n}\r\n\r\nexport type Actions\r\n = LoadUserConfigAction\r\n | LoadUserConfigSuccessAction\r\n | SaveUserConfigSuccessAction;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/user-config.ts","import { Component, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { Macro } from '../../../config-serializer/config-items/macro';\r\nimport { MacroAction } from '../../../config-serializer/config-items/macro-action/macro-action';\r\n\r\nimport { MacroActions } from '../../../store/actions';\r\nimport { AppState } from '../../../store/index';\r\nimport { getMacro } from '../../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n selector: 'macro-edit',\r\n template: require('./macro-edit.component.html'),\r\n styles: [require('./macro-edit.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class MacroEditComponent implements OnDestroy {\r\n private subscription: Subscription;\r\n private macro: Macro;\r\n private isNew: boolean;\r\n\r\n constructor(private store: Store, public route: ActivatedRoute) {\r\n this.subscription = route\r\n .params\r\n .select('id')\r\n .switchMap((id: string) => store.let(getMacro(+id)))\r\n .subscribe((macro: Macro) => {\r\n this.macro = macro;\r\n });\r\n\r\n this.isNew = this.route.snapshot.params['empty'] === 'new';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n addAction(macroId: number, action: MacroAction) {\r\n this.store.dispatch(MacroActions.addMacroAction(macroId, action));\r\n }\r\n\r\n editAction(macroId: number, index: number, action: MacroAction) {\r\n this.store.dispatch(MacroActions.saveMacroAction(macroId, index, action));\r\n }\r\n\r\n deleteAction(macroId: number, index: number, action: MacroAction) {\r\n this.store.dispatch(MacroActions.deleteMacroAction(macroId, index, action));\r\n }\r\n\r\n reorderAction(macroId: number, oldIndex: number, newIndex: number) {\r\n this.store.dispatch(MacroActions.reorderMacroAction(macroId, oldIndex, newIndex));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/edit/macro-edit.component.ts","export { MacroDelayTabComponent } from './delay';\r\nexport { MacroKeyTabComponent } from './key';\r\nexport { MacroMouseTabComponent } from './mouse';\r\nexport { MacroTextTabComponent } from './text';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/index.ts","export * from './popover.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/index.ts","export * from './settings.component';\r\nexport * from './settings.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/settings/index.ts","import { Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { runInElectron } from '../../util/index';\r\nimport { AppState, getAutoUpdateSettings, getCheckingForUpdate } from '../../store';\r\nimport {\r\n CheckForUpdateNowAction,\r\n ToggleCheckForUpdateOnStartupAction,\r\n TogglePreReleaseFlagAction\r\n} from '../../store/actions/auto-update-settings';\r\nimport { AutoUpdateSettings } from '../../models/auto-update-settings';\r\n\r\n@Component({\r\n selector: 'settings',\r\n template: require('./settings.component.html'),\r\n styles: [require('./settings.component.scss')],\r\n host: {\r\n 'class': 'container-fluid'\r\n }\r\n})\r\nexport class SettingsComponent {\r\n runInElectron = runInElectron();\r\n // TODO: From where do we get the version number? The electron gives back in main process, but the web...\r\n version = '1.0.0';\r\n autoUpdateSettings$: Observable;\r\n checkingForUpdate$: Observable;\r\n\r\n constructor(private store: Store) {\r\n this.autoUpdateSettings$ = store.select(getAutoUpdateSettings);\r\n this.checkingForUpdate$ = store.select(getCheckingForUpdate);\r\n }\r\n\r\n toogleCheckForUpdateOnStartUp(value: boolean) {\r\n this.store.dispatch(new ToggleCheckForUpdateOnStartupAction(value));\r\n }\r\n\r\n toogleUsePreReleaseUpdate(value: boolean) {\r\n this.store.dispatch(new TogglePreReleaseFlagAction(value));\r\n }\r\n\r\n checkForUpdate() {\r\n this.store.dispatch(new CheckForUpdateNowAction());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/settings/settings.component.ts","import { Injectable } from '@angular/core';\r\n\r\nimport { SvgModule } from '../components/svg/module';\r\nimport { KeyboardLayout } from '../keyboard/keyboard-layout.enum';\r\n\r\n@Injectable()\r\nexport class SvgModuleProviderService {\r\n\r\n private ansiLeft: SvgModule;\r\n private isoLeft: SvgModule;\r\n private right: SvgModule;\r\n\r\n getSvgModules(layout = KeyboardLayout.ANSI): SvgModule[] {\r\n return [this.getRightModule(), this.getLeftModule(layout)];\r\n }\r\n\r\n private getLeftModule(layout = KeyboardLayout.ANSI): SvgModule {\r\n if (layout === KeyboardLayout.ISO) {\r\n if (!this.isoLeft) {\r\n this.isoLeft = new SvgModule(require('xml-loader!../../../modules/uhk60-left-half/layout-iso.svg').svg);\r\n }\r\n return this.isoLeft;\r\n }\r\n if (!this.ansiLeft) {\r\n this.ansiLeft = new SvgModule(require('xml-loader!../../../modules/uhk60-left-half/layout-ansi.svg').svg);\r\n }\r\n return this.ansiLeft;\r\n }\r\n\r\n private getRightModule(): SvgModule {\r\n if (!this.right) {\r\n this.right = new SvgModule(require('xml-loader!../../../modules/uhk60-right-half/layout.svg').svg);\r\n }\r\n return this.right;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/svg-module-provider.service.ts","export * from './svg-module.component';\r\nexport * from './svg-module.model';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/module/index.ts","export { KeymapEditComponent } from './keymap-edit.component';\r\nexport { KeymapEditGuard } from './keymap-edit-guard.service';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keymap/edit/index.ts","import { Injectable } from '@angular/core';\r\nimport { UserConfiguration } from '../config-serializer/config-items/user-configuration';\r\n\r\n@Injectable()\r\nexport class DefaultUserConfigurationService {\r\n private _defaultConfig: UserConfiguration;\r\n\r\n constructor() {\r\n this._defaultConfig = new UserConfiguration()\r\n .fromJsonObject(require('json-loader!../config-serializer/user-config.json'));\r\n }\r\n\r\n getDefault(): UserConfiguration {\r\n return this._defaultConfig;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/default-user-configuration.service.ts","export enum NotificationType {\r\n Default,\r\n Success,\r\n Error,\r\n Warning,\r\n Info\r\n}\r\n\r\nexport interface Notification {\r\n type: NotificationType;\r\n title?: string;\r\n message: string;\r\n extra?: any;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/models/notification.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { type } from '../../util';\r\nimport { Notification } from '../../models/notification';\r\n\r\nconst PREFIX = '[app] ';\r\n\r\n// tslint:disable-next-line:variable-name\r\nexport const ActionTypes = {\r\n APP_BOOTSRAPPED: type(PREFIX + 'bootstrapped'),\r\n APP_STARTED: type(PREFIX + 'started'),\r\n APP_SHOW_NOTIFICATION: type(PREFIX + 'show notification')\r\n};\r\n\r\nexport class AppBootsrappedAction implements Action {\r\n type = ActionTypes.APP_BOOTSRAPPED;\r\n}\r\n\r\nexport class AppStartedAction implements Action {\r\n type = ActionTypes.APP_STARTED;\r\n}\r\n\r\nexport class ShowNotificationAction implements Action {\r\n type = ActionTypes.APP_SHOW_NOTIFICATION;\r\n\r\n constructor(public payload: Notification) { }\r\n}\r\n\r\nexport type Actions\r\n = AppStartedAction\r\n | AppBootsrappedAction\r\n | ShowNotificationAction;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/app.action.ts","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n// TODO(bmeurer): Change this back to const once hole checks are\n// properly optimized away early in Ignition+TurboFan.\n/**/\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n }\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n processNextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n processNextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n processNextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n processNextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_readable.js\n// module id = 251\n// module chunks = 1","module.exports = require('events').EventEmitter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/internal/streams/stream-browser.js\n// module id = 252\n// module chunks = 1","'use strict';\n\n/**/\n\nvar processNextTick = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n processNextTick(emitErrorNT, this, err);\n }\n return;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n processNextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/internal/streams/destroy.js\n// module id = 253\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar Buffer = require('buffer').Buffer;\n\nvar isBufferEncoding = Buffer.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nvar StringDecoder = exports.StringDecoder = function(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-libs-browser/node_modules/string_decoder/index.js\n// module id = 254\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return stream.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er, data) {\n done(stream, er, data);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data !== null && data !== undefined) stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_transform.js\n// module id = 255\n// module chunks = 1","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app.module';\r\n\r\nif (!process.stdout) {\r\n process.stdout = require('browser-stdout')();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/main.ts","import { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NotifierModule } from 'angular-notifier';\r\n\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { StoreLogMonitorModule, useLogMonitor } from '@ngrx/store-log-monitor';\r\nimport { RouterStoreModule } from '@ngrx/router-store';\r\n\r\nimport { DragulaModule } from 'ng2-dragula/ng2-dragula';\r\nimport { Select2Module } from 'ng2-select2/ng2-select2';\r\n\r\nimport { AddOnComponent } from './shared/components/add-on';\r\nimport { KeyboardSliderComponent } from './shared/components/keyboard/slider';\r\nimport { KeymapAddComponent, KeymapEditComponent, KeymapHeaderComponent } from './shared/components/keymap';\r\nimport { LayersComponent } from './shared/components/layers';\r\nimport {\r\n MacroActionEditorComponent,\r\n MacroDelayTabComponent,\r\n MacroEditComponent,\r\n MacroHeaderComponent,\r\n MacroItemComponent,\r\n MacroKeyTabComponent,\r\n MacroListComponent,\r\n MacroMouseTabComponent,\r\n MacroNotFoundComponent,\r\n MacroTextTabComponent\r\n} from './shared/components/macro';\r\nimport { NotificationComponent } from './shared/components/notification';\r\nimport { PopoverComponent } from './shared/components/popover';\r\nimport {\r\n KeymapTabComponent,\r\n KeypressTabComponent,\r\n LayerTabComponent,\r\n MacroTabComponent,\r\n MouseTabComponent,\r\n NoneTabComponent\r\n} from './shared/components/popover/tab';\r\nimport { CaptureKeystrokeButtonComponent } from './shared/components/popover/widgets/capture-keystroke';\r\nimport { IconComponent } from './shared/components/popover/widgets/icon';\r\nimport { SettingsComponent } from './shared/components/settings';\r\nimport { SideMenuComponent } from './shared/components/side-menu';\r\nimport { SvgKeyboardComponent } from './shared/components/svg/keyboard';\r\nimport {\r\n SvgIconTextKeyComponent,\r\n SvgKeyboardKeyComponent,\r\n SvgKeystrokeKeyComponent,\r\n SvgMouseClickKeyComponent,\r\n SvgMouseKeyComponent,\r\n SvgMouseMoveKeyComponent,\r\n SvgMouseScrollKeyComponent,\r\n SvgMouseSpeedKeyComponent,\r\n SvgOneLineTextKeyComponent,\r\n SvgSingleIconKeyComponent,\r\n SvgSwitchKeymapKeyComponent,\r\n SvgTextIconKeyComponent,\r\n SvgTwoLineTextKeyComponent\r\n} from './shared/components/svg/keys';\r\nimport { SvgModuleComponent } from './shared/components/svg/module';\r\nimport { SvgKeyboardWrapComponent } from './shared/components/svg/wrap';\r\nimport { appRoutingProviders, MainAppComponent, routing } from './main-app';\r\n\r\nimport { CancelableDirective, TooltipDirective } from './shared/directives';\r\nimport { SafeStylePipe } from './shared/pipes';\r\n\r\nimport { CaptureService } from './shared/services/capture.service';\r\nimport { MapperService } from './shared/services/mapper.service';\r\nimport { SvgModuleProviderService } from './shared/services/svg-module-provider.service';\r\n\r\nimport {\r\n ApplicationEffects,\r\n AutoUpdateSettingsEffects,\r\n KeymapEffects,\r\n MacroEffects,\r\n UserConfigEffects\r\n} from './shared/store/effects';\r\n\r\nimport { KeymapEditGuard } from './shared/components/keymap/edit';\r\nimport { MacroNotFoundGuard } from './shared/components/macro/not-found';\r\nimport { DATA_STORAGE_REPOSITORY } from './shared/services/datastorage-repository.service';\r\nimport { LocalDataStorageRepositoryService } from './shared/services/local-datastorage-repository.service';\r\nimport { DefaultUserConfigurationService } from './shared/services/default-user-configuration.service';\r\nimport { reducer } from './shared/store/reducers/index';\r\nimport { LogService } from './shared/services/logger.service';\r\nimport { AutoUpdateSettings } from './shared/components/auto-update-settings/auto-update-settings';\r\nimport { angularNotifierConfig } from '../../shared/src/models/angular-notifier-config';\r\n\r\n@NgModule({\r\n declarations: [\r\n MainAppComponent,\r\n KeymapEditComponent,\r\n KeymapHeaderComponent,\r\n NotificationComponent,\r\n SvgIconTextKeyComponent,\r\n SvgKeyboardKeyComponent,\r\n SvgKeystrokeKeyComponent,\r\n SvgMouseKeyComponent,\r\n SvgMouseClickKeyComponent,\r\n SvgMouseMoveKeyComponent,\r\n SvgMouseScrollKeyComponent,\r\n SvgMouseSpeedKeyComponent,\r\n SvgOneLineTextKeyComponent,\r\n SvgSingleIconKeyComponent,\r\n SvgSwitchKeymapKeyComponent,\r\n SvgTextIconKeyComponent,\r\n SvgTwoLineTextKeyComponent,\r\n SvgKeyboardKeyComponent,\r\n SvgKeyboardWrapComponent,\r\n SvgKeyboardComponent,\r\n SvgModuleComponent,\r\n LayersComponent,\r\n PopoverComponent,\r\n KeymapAddComponent,\r\n SideMenuComponent,\r\n KeypressTabComponent,\r\n KeymapTabComponent,\r\n LayerTabComponent,\r\n MacroTabComponent,\r\n MouseTabComponent,\r\n NoneTabComponent,\r\n CaptureKeystrokeButtonComponent,\r\n IconComponent,\r\n MacroEditComponent,\r\n MacroListComponent,\r\n MacroHeaderComponent,\r\n MacroItemComponent,\r\n MacroActionEditorComponent,\r\n MacroDelayTabComponent,\r\n MacroKeyTabComponent,\r\n MacroMouseTabComponent,\r\n MacroTextTabComponent,\r\n MacroNotFoundComponent,\r\n AddOnComponent,\r\n SettingsComponent,\r\n KeyboardSliderComponent,\r\n CancelableDirective,\r\n TooltipDirective,\r\n SafeStylePipe,\r\n AutoUpdateSettings\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n DragulaModule,\r\n routing,\r\n StoreModule.provideStore(reducer),\r\n RouterStoreModule.connectRouter(),\r\n StoreDevtoolsModule.instrumentStore({\r\n monitor: useLogMonitor({\r\n visible: false,\r\n position: 'right'\r\n })\r\n }),\r\n StoreLogMonitorModule,\r\n Select2Module,\r\n NotifierModule.withConfig(angularNotifierConfig),\r\n EffectsModule.runAfterBootstrap(KeymapEffects),\r\n EffectsModule.runAfterBootstrap(MacroEffects),\r\n EffectsModule.runAfterBootstrap(UserConfigEffects),\r\n EffectsModule.runAfterBootstrap(AutoUpdateSettingsEffects),\r\n EffectsModule.runAfterBootstrap(ApplicationEffects)\r\n ],\r\n providers: [\r\n SvgModuleProviderService,\r\n MapperService,\r\n appRoutingProviders,\r\n KeymapEditGuard,\r\n MacroNotFoundGuard,\r\n CaptureService,\r\n { provide: DATA_STORAGE_REPOSITORY, useClass: LocalDataStorageRepositoryService },\r\n DefaultUserConfigurationService,\r\n LogService,\r\n DefaultUserConfigurationService\r\n ],\r\n bootstrap: [MainAppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/app.module.ts","import * as tslib_1 from \"tslib\";\n/**\n * @license Angular v4.2.6\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\n */\nimport { Injectable, NgModule, NgZone, RendererFactory2, ViewEncapsulation } from '@angular/core';\nimport { BrowserModule, ɵDomRendererFactory2 } from '@angular/platform-browser';\nimport { AnimationBuilder, AnimationFactory, sequence } from '@angular/animations';\nimport { AnimationDriver, ɵAnimationEngine, ɵAnimationStyleNormalizer, ɵNoopAnimationDriver, ɵWebAnimationsDriver, ɵWebAnimationsStyleNormalizer, ɵsupportsWebAnimations } from '@angular/animations/browser';\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 */\nvar BrowserAnimationBuilder = (function (_super) {\n tslib_1.__extends(BrowserAnimationBuilder, _super);\n /**\n * @param {?} rootRenderer\n */\n function BrowserAnimationBuilder(rootRenderer) {\n var _this = _super.call(this) || this;\n _this._nextAnimationId = 0;\n var typeData = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: { animation: [] }\n };\n _this._renderer = rootRenderer.createRenderer(document.body, typeData);\n return _this;\n }\n /**\n * @param {?} animation\n * @return {?}\n */\n BrowserAnimationBuilder.prototype.build = function (animation) {\n var /** @type {?} */ id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n var /** @type {?} */ entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n };\n return BrowserAnimationBuilder;\n}(AnimationBuilder));\nBrowserAnimationBuilder.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nBrowserAnimationBuilder.ctorParameters = function () { return [\n { type: RendererFactory2, },\n]; };\nvar BrowserAnimationFactory = (function (_super) {\n tslib_1.__extends(BrowserAnimationFactory, _super);\n /**\n * @param {?} _id\n * @param {?} _renderer\n */\n function BrowserAnimationFactory(_id, _renderer) {\n var _this = _super.call(this) || this;\n _this._id = _id;\n _this._renderer = _renderer;\n return _this;\n }\n /**\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n BrowserAnimationFactory.prototype.create = function (element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n };\n return BrowserAnimationFactory;\n}(AnimationFactory));\nvar RendererAnimationPlayer = (function () {\n /**\n * @param {?} id\n * @param {?} element\n * @param {?} options\n * @param {?} _renderer\n */\n function RendererAnimationPlayer(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n /**\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n RendererAnimationPlayer.prototype._listen = function (eventName, callback) {\n return this._renderer.listen(this.element, \"@@\" + this.id + \":\" + eventName, callback);\n };\n /**\n * @param {?} command\n * @param {...?} args\n * @return {?}\n */\n RendererAnimationPlayer.prototype._command = function (command) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n RendererAnimationPlayer.prototype.onDone = function (fn) { this._listen('done', fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n RendererAnimationPlayer.prototype.onStart = function (fn) { this._listen('start', fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n RendererAnimationPlayer.prototype.onDestroy = function (fn) { this._listen('destroy', fn); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.init = function () { this._command('init'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.hasStarted = function () { return this._started; };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.play = function () {\n this._command('play');\n this._started = true;\n };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.pause = function () { this._command('pause'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.restart = function () { this._command('restart'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.finish = function () { this._command('finish'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.destroy = function () { this._command('destroy'); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.reset = function () { this._command('reset'); };\n /**\n * @param {?} p\n * @return {?}\n */\n RendererAnimationPlayer.prototype.setPosition = function (p) { this._command('setPosition', p); };\n /**\n * @return {?}\n */\n RendererAnimationPlayer.prototype.getPosition = function () { return 0; };\n return RendererAnimationPlayer;\n}());\n/**\n * @param {?} renderer\n * @param {?} element\n * @param {?} id\n * @param {?} command\n * @param {?} args\n * @return {?}\n */\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, \"@@\" + id + \":\" + command, args);\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 */\nvar AnimationRendererFactory = (function () {\n /**\n * @param {?} delegate\n * @param {?} engine\n * @param {?} _zone\n */\n function AnimationRendererFactory(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n engine.onRemovalComplete = function (element, delegate) {\n // Note: if an component element has a leave animation, and the component\n // a host leave animation, the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n if (delegate && delegate.parentNode(element)) {\n delegate.removeChild(element.parentNode, element);\n }\n };\n }\n /**\n * @param {?} hostElement\n * @param {?} type\n * @return {?}\n */\n AnimationRendererFactory.prototype.createRenderer = function (hostElement, type) {\n var _this = this;\n var /** @type {?} */ EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n var /** @type {?} */ delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n var /** @type {?} */ renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n var /** @type {?} */ componentId = type.id;\n var /** @type {?} */ namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n var /** @type {?} */ animationTriggers = (type.data['animation']);\n animationTriggers.forEach(function (trigger) { return _this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger); });\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype.begin = function () {\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype._scheduleCountTask = function () {\n var _this = this;\n Zone.current.scheduleMicroTask('incremenet the animation microtask', function () { return _this._microtaskId++; });\n };\n /**\n * @param {?} count\n * @param {?} fn\n * @param {?} data\n * @return {?}\n */\n AnimationRendererFactory.prototype.scheduleListenerCallback = function (count, fn, data) {\n var _this = this;\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(function () { return fn(data); });\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(function () {\n _this._zone.run(function () {\n _this._animationCallbacksBuffer.forEach(function (tuple) {\n var fn = tuple[0], data = tuple[1];\n fn(data);\n });\n _this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype.end = function () {\n var _this = this;\n this._zone.runOutsideAngular(function () {\n _this._scheduleCountTask();\n _this.engine.flush(_this._microtaskId);\n });\n if (this.delegate.end) {\n this.delegate.end();\n }\n };\n /**\n * @return {?}\n */\n AnimationRendererFactory.prototype.whenRenderingDone = function () { return this.engine.whenRenderingDone(); };\n return AnimationRendererFactory;\n}());\nAnimationRendererFactory.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nAnimationRendererFactory.ctorParameters = function () { return [\n { type: RendererFactory2, },\n { type: ɵAnimationEngine, },\n { type: NgZone, },\n]; };\nvar BaseAnimationRenderer = (function () {\n /**\n * @param {?} namespaceId\n * @param {?} delegate\n * @param {?} engine\n */\n function BaseAnimationRenderer(namespaceId, delegate, engine) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this.destroyNode = this.delegate.destroyNode ? function (n) { return delegate.destroyNode(n); } : null;\n }\n Object.defineProperty(BaseAnimationRenderer.prototype, \"data\", {\n /**\n * @return {?}\n */\n get: function () { return this.delegate.data; },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n BaseAnimationRenderer.prototype.destroy = function () {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n };\n /**\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n BaseAnimationRenderer.prototype.createElement = function (name, namespace) {\n return this.delegate.createElement(name, namespace);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.createComment = function (value) { return this.delegate.createComment(value); };\n /**\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.createText = function (value) { return this.delegate.createText(value); };\n /**\n * @param {?} parent\n * @param {?} newChild\n * @return {?}\n */\n BaseAnimationRenderer.prototype.appendChild = function (parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n };\n /**\n * @param {?} parent\n * @param {?} newChild\n * @param {?} refChild\n * @return {?}\n */\n BaseAnimationRenderer.prototype.insertBefore = function (parent, newChild, refChild) {\n this.delegate.insertBefore(parent, newChild, refChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, true);\n };\n /**\n * @param {?} parent\n * @param {?} oldChild\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeChild = function (parent, oldChild) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n };\n /**\n * @param {?} selectorOrNode\n * @return {?}\n */\n BaseAnimationRenderer.prototype.selectRootElement = function (selectorOrNode) { return this.delegate.selectRootElement(selectorOrNode); };\n /**\n * @param {?} node\n * @return {?}\n */\n BaseAnimationRenderer.prototype.parentNode = function (node) { return this.delegate.parentNode(node); };\n /**\n * @param {?} node\n * @return {?}\n */\n BaseAnimationRenderer.prototype.nextSibling = function (node) { return this.delegate.nextSibling(node); };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @param {?=} namespace\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setAttribute = function (el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeAttribute = function (el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n };\n /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n BaseAnimationRenderer.prototype.addClass = function (el, name) { this.delegate.addClass(el, name); };\n /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeClass = function (el, name) { this.delegate.removeClass(el, name); };\n /**\n * @param {?} el\n * @param {?} style\n * @param {?} value\n * @param {?=} flags\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setStyle = function (el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n };\n /**\n * @param {?} el\n * @param {?} style\n * @param {?=} flags\n * @return {?}\n */\n BaseAnimationRenderer.prototype.removeStyle = function (el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setProperty = function (el, name, value) {\n this.delegate.setProperty(el, name, value);\n };\n /**\n * @param {?} node\n * @param {?} value\n * @return {?}\n */\n BaseAnimationRenderer.prototype.setValue = function (node, value) { this.delegate.setValue(node, value); };\n /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n BaseAnimationRenderer.prototype.listen = function (target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n };\n return BaseAnimationRenderer;\n}());\nvar AnimationRenderer = (function (_super) {\n tslib_1.__extends(AnimationRenderer, _super);\n /**\n * @param {?} factory\n * @param {?} namespaceId\n * @param {?} delegate\n * @param {?} engine\n */\n function AnimationRenderer(factory, namespaceId, delegate, engine) {\n var _this = _super.call(this, namespaceId, delegate, engine) || this;\n _this.factory = factory;\n _this.namespaceId = namespaceId;\n return _this;\n }\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n AnimationRenderer.prototype.setProperty = function (el, name, value) {\n if (name.charAt(0) == '@') {\n name = name.substr(1);\n this.engine.setProperty(this.namespaceId, el, name, value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n AnimationRenderer.prototype.listen = function (target, eventName, callback) {\n var _this = this;\n if (eventName.charAt(0) == '@') {\n var /** @type {?} */ element = resolveElementFromTarget(target);\n var /** @type {?} */ name = eventName.substr(1);\n var /** @type {?} */ phase = '';\n if (name.charAt(0) != '@') {\n _a = parseTriggerCallbackName(name), name = _a[0], phase = _a[1];\n }\n return this.engine.listen(this.namespaceId, element, name, phase, function (event) {\n var /** @type {?} */ countId = ((event))['_data'] || -1;\n _this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n var _a;\n };\n return AnimationRenderer;\n}(BaseAnimationRenderer));\n/**\n * @param {?} target\n * @return {?}\n */\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\n/**\n * @param {?} triggerName\n * @return {?}\n */\nfunction parseTriggerCallbackName(triggerName) {\n var /** @type {?} */ dotIndex = triggerName.indexOf('.');\n var /** @type {?} */ trigger = triggerName.substring(0, dotIndex);\n var /** @type {?} */ phase = triggerName.substr(dotIndex + 1);\n return [trigger, phase];\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 */\nvar InjectableAnimationEngine = (function (_super) {\n tslib_1.__extends(InjectableAnimationEngine, _super);\n /**\n * @param {?} driver\n * @param {?} normalizer\n */\n function InjectableAnimationEngine(driver, normalizer) {\n return _super.call(this, driver, normalizer) || this;\n }\n return InjectableAnimationEngine;\n}(ɵAnimationEngine));\nInjectableAnimationEngine.decorators = [\n { type: Injectable },\n];\n/**\n * @nocollapse\n */\nInjectableAnimationEngine.ctorParameters = function () { return [\n { type: AnimationDriver, },\n { type: ɵAnimationStyleNormalizer, },\n]; };\n/**\n * @return {?}\n */\nfunction instantiateSupportedAnimationDriver() {\n if (ɵsupportsWebAnimations()) {\n return new ɵWebAnimationsDriver();\n }\n return new ɵNoopAnimationDriver();\n}\n/**\n * @return {?}\n */\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\n/**\n * @param {?} renderer\n * @param {?} engine\n * @param {?} zone\n * @return {?}\n */\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nvar SHARED_ANIMATION_PROVIDERS = [\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nvar BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: instantiateSupportedAnimationDriver }\n].concat(SHARED_ANIMATION_PROVIDERS);\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nvar BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{ provide: AnimationDriver, useClass: ɵNoopAnimationDriver }].concat(SHARED_ANIMATION_PROVIDERS);\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 */\n/**\n * \\@experimental Animation support is experimental.\n */\nvar BrowserAnimationsModule = (function () {\n function BrowserAnimationsModule() {\n }\n return BrowserAnimationsModule;\n}());\nBrowserAnimationsModule.decorators = [\n { type: NgModule, args: [{\n imports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n },] },\n];\n/**\n * @nocollapse\n */\nBrowserAnimationsModule.ctorParameters = function () { return []; };\n/**\n * \\@experimental Animation support is experimental.\n */\nvar NoopAnimationsModule = (function () {\n function NoopAnimationsModule() {\n }\n return NoopAnimationsModule;\n}());\nNoopAnimationsModule.decorators = [\n { type: NgModule, args: [{\n imports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n },] },\n];\n/**\n * @nocollapse\n */\nNoopAnimationsModule.ctorParameters = function () { return []; };\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 */\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 */\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\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 */\n/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\n/**\n * Generated bundle index. Do not edit.\n */\nexport { BrowserAnimationsModule, NoopAnimationsModule, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, BrowserAnimationFactory as ɵBrowserAnimationFactory, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, BaseAnimationRenderer as ɵa, BROWSER_ANIMATIONS_PROVIDERS as ɵf, BROWSER_NOOP_ANIMATIONS_PROVIDERS as ɵg, InjectableAnimationEngine as ɵb, instantiateDefaultStyleNormalizer as ɵd, instantiateRendererFactory as ɵe, instantiateSupportedAnimationDriver as ɵc };\n//# sourceMappingURL=animations.es5.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/platform-browser/@angular/platform-browser/animations.es5.js\n// module id = 593\n// module chunks = 1","import * as tslib_1 from \"tslib\";\n/**\n * @license Angular v4.2.6\n * (c) 2010-2017 Google, Inc. https://angular.io/\n * License: MIT\n */\nimport { AUTO_STYLE, NoopAnimationPlayer, sequence, style, ɵAnimationGroupPlayer, ɵPRE_STYLE } from '@angular/animations';\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 */\nfunction optimizeGroupPlayer(players) {\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}\nfunction normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) {\n if (preStyles === void 0) { preStyles = {}; }\n if (postStyles === void 0) { postStyles = {}; }\n var errors = [];\n var normalizedKeyframes = [];\n var previousOffset = -1;\n var previousKeyframe = null;\n keyframes.forEach(function (kf) {\n var offset = kf['offset'];\n var isSameOffset = offset == previousOffset;\n var normalizedKeyframe = (isSameOffset && previousKeyframe) || {};\n Object.keys(kf).forEach(function (prop) {\n var normalizedProp = prop;\n var normalizedValue = kf[prop];\n if (normalizedValue == ɵPRE_STYLE) {\n normalizedValue = preStyles[prop];\n }\n else if (normalizedValue == AUTO_STYLE) {\n normalizedValue = postStyles[prop];\n }\n else if (prop != 'offset') {\n normalizedProp = normalizer.normalizePropertyName(prop, errors);\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, kf[prop], errors);\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 var LINE_START = '\\n - ';\n throw new Error(\"Unable to animate due to the following errors:\" + LINE_START + errors.join(LINE_START));\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player.totalTime)); });\n break;\n case 'done':\n player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player.totalTime)); });\n break;\n case 'destroy':\n player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)); });\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, totalTime) {\n var event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime);\n var data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime) {\n if (phaseName === void 0) { phaseName = ''; }\n if (totalTime === void 0) { totalTime = 0; }\n return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime };\n}\nfunction getOrSetAsInMap(map, key, defaultValue) {\n var value;\n if (map instanceof Map) {\n value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n }\n else {\n value = map[key];\n if (!value) {\n value = map[key] = defaultValue;\n }\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n var separatorPos = command.indexOf(':');\n var id = command.substring(1, separatorPos);\n var action = command.substr(separatorPos + 1);\n return [id, action];\n}\nvar _contains = function (elm1, elm2) { return false; };\nvar _matches = function (element, selector) { return false; };\nvar _query = function (element, selector, multi) {\n return [];\n};\nif (typeof Element != 'undefined') {\n // this is well supported in all browsers\n _contains = function (elm1, elm2) { return elm1.contains(elm2); };\n if (Element.prototype.matches) {\n _matches = function (element, selector) { return element.matches(selector); };\n }\n else {\n var proto = Element.prototype;\n var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n proto.oMatchesSelector || proto.webkitMatchesSelector;\n if (fn_1) {\n _matches = function (element, selector) { return fn_1.apply(element, [selector]); };\n }\n }\n _query = function (element, selector, multi) {\n var results = [];\n if (multi) {\n results.push.apply(results, element.querySelectorAll(selector));\n }\n else {\n var elm = element.querySelector(selector);\n if (elm) {\n results.push(elm);\n }\n }\n return results;\n };\n}\nvar matchesElement = _matches;\nvar containsElement = _contains;\nvar invokeQuery = _query;\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 */\n/**\n * @experimental\n */\nvar NoopAnimationDriver = (function () {\n function NoopAnimationDriver() {\n }\n NoopAnimationDriver.prototype.matchesElement = function (element, selector) {\n return matchesElement(element, selector);\n };\n NoopAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };\n NoopAnimationDriver.prototype.query = function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n NoopAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {\n return defaultValue || '';\n };\n NoopAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n return new NoopAnimationPlayer();\n };\n return NoopAnimationDriver;\n}());\n/**\n * @experimental\n */\nvar AnimationDriver = (function () {\n function AnimationDriver() {\n }\n return AnimationDriver;\n}());\nAnimationDriver.NOOP = new NoopAnimationDriver();\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 */\nvar ONE_SECOND = 1000;\nvar ENTER_CLASSNAME = 'ng-enter';\nvar LEAVE_CLASSNAME = 'ng-leave';\nvar ENTER_SELECTOR = '.ng-enter';\nvar LEAVE_SELECTOR = '.ng-leave';\nvar NG_TRIGGER_CLASSNAME = 'ng-trigger';\nvar NG_TRIGGER_SELECTOR = '.ng-trigger';\nvar NG_ANIMATING_CLASSNAME = 'ng-animating';\nvar NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n var matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n var regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n var duration;\n var delay = 0;\n var easing = '';\n if (typeof exp === 'string') {\n var 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 duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n var delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n }\n var easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n var containsErrors = false;\n var 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(startIndex, 0, \"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n }\n }\n return { duration: duration, delay: delay, easing: easing };\n}\nfunction copyObj(obj, destination) {\n if (destination === void 0) { destination = {}; }\n Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; });\n return destination;\n}\nfunction normalizeStyles(styles) {\n var normalizedStyles = {};\n if (Array.isArray(styles)) {\n styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); });\n }\n else {\n copyStyles(styles, false, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, readPrototype, destination) {\n if (destination === void 0) { destination = {}; }\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 (var prop in styles) {\n destination[prop] = styles[prop];\n }\n }\n else {\n copyObj(styles, destination);\n }\n return destination;\n}\nfunction setStyles(element, styles) {\n if (element['style']) {\n Object.keys(styles).forEach(function (prop) {\n var camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = styles[prop];\n });\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n Object.keys(styles).forEach(function (prop) {\n var camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n var params = options.params || {};\n if (typeof value !== 'string')\n return;\n var matches = value.toString().match(PARAM_REGEX);\n if (matches) {\n matches.forEach(function (varName) {\n if (!params.hasOwnProperty(varName)) {\n errors.push(\"Unable to resolve the local animation param \" + varName + \" in the given list of values\");\n }\n });\n }\n}\nvar PARAM_REGEX = /\\{\\{\\s*(.+?)\\s*\\}\\}/g;\nfunction interpolateParams(value, params, errors) {\n var original = value.toString();\n var str = original.replace(PARAM_REGEX, function (_, varName) {\n var 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 // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n var arr = [];\n var item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nfunction mergeAnimationOptions(source, destination) {\n if (source.params) {\n var p0_1 = source.params;\n if (!destination.params) {\n destination.params = {};\n }\n var p1_1 = destination.params;\n Object.keys(p0_1).forEach(function (param) {\n if (!p1_1.hasOwnProperty(param)) {\n p1_1[param] = p0_1[param];\n }\n });\n }\n return destination;\n}\nvar DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[1].toUpperCase();\n });\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\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 */\nvar EMPTY_ANIMATION_OPTIONS = {};\n/**\n * @abstract\n */\nvar Ast = (function () {\n function Ast() {\n this.options = EMPTY_ANIMATION_OPTIONS;\n }\n /**\n * @abstract\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n Ast.prototype.visit = function (ast, context) { };\n Object.defineProperty(Ast.prototype, \"params\", {\n /**\n * @return {?}\n */\n get: function () { return this.options['params'] || null; },\n enumerable: true,\n configurable: true\n });\n return Ast;\n}());\nvar TriggerAst = (function (_super) {\n tslib_1.__extends(TriggerAst, _super);\n /**\n * @param {?} name\n * @param {?} states\n * @param {?} transitions\n */\n function TriggerAst(name, states, transitions) {\n var _this = _super.call(this) || this;\n _this.name = name;\n _this.states = states;\n _this.transitions = transitions;\n _this.queryCount = 0;\n _this.depCount = 0;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n TriggerAst.prototype.visit = function (visitor, context) { return visitor.visitTrigger(this, context); };\n return TriggerAst;\n}(Ast));\nvar StateAst = (function (_super) {\n tslib_1.__extends(StateAst, _super);\n /**\n * @param {?} name\n * @param {?} style\n */\n function StateAst(name, style$$1) {\n var _this = _super.call(this) || this;\n _this.name = name;\n _this.style = style$$1;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n StateAst.prototype.visit = function (visitor, context) { return visitor.visitState(this, context); };\n return StateAst;\n}(Ast));\nvar TransitionAst = (function (_super) {\n tslib_1.__extends(TransitionAst, _super);\n /**\n * @param {?} matchers\n * @param {?} animation\n */\n function TransitionAst(matchers, animation) {\n var _this = _super.call(this) || this;\n _this.matchers = matchers;\n _this.animation = animation;\n _this.queryCount = 0;\n _this.depCount = 0;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n TransitionAst.prototype.visit = function (visitor, context) { return visitor.visitTransition(this, context); };\n return TransitionAst;\n}(Ast));\nvar SequenceAst = (function (_super) {\n tslib_1.__extends(SequenceAst, _super);\n /**\n * @param {?} steps\n */\n function SequenceAst(steps) {\n var _this = _super.call(this) || this;\n _this.steps = steps;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n SequenceAst.prototype.visit = function (visitor, context) { return visitor.visitSequence(this, context); };\n return SequenceAst;\n}(Ast));\nvar GroupAst = (function (_super) {\n tslib_1.__extends(GroupAst, _super);\n /**\n * @param {?} steps\n */\n function GroupAst(steps) {\n var _this = _super.call(this) || this;\n _this.steps = steps;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n GroupAst.prototype.visit = function (visitor, context) { return visitor.visitGroup(this, context); };\n return GroupAst;\n}(Ast));\nvar AnimateAst = (function (_super) {\n tslib_1.__extends(AnimateAst, _super);\n /**\n * @param {?} timings\n * @param {?} style\n */\n function AnimateAst(timings, style$$1) {\n var _this = _super.call(this) || this;\n _this.timings = timings;\n _this.style = style$$1;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n AnimateAst.prototype.visit = function (visitor, context) { return visitor.visitAnimate(this, context); };\n return AnimateAst;\n}(Ast));\nvar StyleAst = (function (_super) {\n tslib_1.__extends(StyleAst, _super);\n /**\n * @param {?} styles\n * @param {?} easing\n * @param {?} offset\n */\n function StyleAst(styles, easing, offset) {\n var _this = _super.call(this) || this;\n _this.styles = styles;\n _this.easing = easing;\n _this.offset = offset;\n _this.isEmptyStep = false;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n StyleAst.prototype.visit = function (visitor, context) { return visitor.visitStyle(this, context); };\n return StyleAst;\n}(Ast));\nvar KeyframesAst = (function (_super) {\n tslib_1.__extends(KeyframesAst, _super);\n /**\n * @param {?} styles\n */\n function KeyframesAst(styles) {\n var _this = _super.call(this) || this;\n _this.styles = styles;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n KeyframesAst.prototype.visit = function (visitor, context) { return visitor.visitKeyframes(this, context); };\n return KeyframesAst;\n}(Ast));\nvar ReferenceAst = (function (_super) {\n tslib_1.__extends(ReferenceAst, _super);\n /**\n * @param {?} animation\n */\n function ReferenceAst(animation) {\n var _this = _super.call(this) || this;\n _this.animation = animation;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ReferenceAst.prototype.visit = function (visitor, context) { return visitor.visitReference(this, context); };\n return ReferenceAst;\n}(Ast));\nvar AnimateChildAst = (function (_super) {\n tslib_1.__extends(AnimateChildAst, _super);\n function AnimateChildAst() {\n return _super.call(this) || this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n AnimateChildAst.prototype.visit = function (visitor, context) { return visitor.visitAnimateChild(this, context); };\n return AnimateChildAst;\n}(Ast));\nvar AnimateRefAst = (function (_super) {\n tslib_1.__extends(AnimateRefAst, _super);\n /**\n * @param {?} animation\n */\n function AnimateRefAst(animation) {\n var _this = _super.call(this) || this;\n _this.animation = animation;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n AnimateRefAst.prototype.visit = function (visitor, context) { return visitor.visitAnimateRef(this, context); };\n return AnimateRefAst;\n}(Ast));\nvar QueryAst = (function (_super) {\n tslib_1.__extends(QueryAst, _super);\n /**\n * @param {?} selector\n * @param {?} limit\n * @param {?} optional\n * @param {?} includeSelf\n * @param {?} animation\n */\n function QueryAst(selector, limit, optional, includeSelf, animation) {\n var _this = _super.call(this) || this;\n _this.selector = selector;\n _this.limit = limit;\n _this.optional = optional;\n _this.includeSelf = includeSelf;\n _this.animation = animation;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n QueryAst.prototype.visit = function (visitor, context) { return visitor.visitQuery(this, context); };\n return QueryAst;\n}(Ast));\nvar StaggerAst = (function (_super) {\n tslib_1.__extends(StaggerAst, _super);\n /**\n * @param {?} timings\n * @param {?} animation\n */\n function StaggerAst(timings, animation) {\n var _this = _super.call(this) || this;\n _this.timings = timings;\n _this.animation = animation;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n StaggerAst.prototype.visit = function (visitor, context) { return visitor.visitStagger(this, context); };\n return StaggerAst;\n}(Ast));\nvar TimingAst = (function (_super) {\n tslib_1.__extends(TimingAst, _super);\n /**\n * @param {?} duration\n * @param {?=} delay\n * @param {?=} easing\n */\n function TimingAst(duration, delay, easing) {\n if (delay === void 0) { delay = 0; }\n if (easing === void 0) { easing = null; }\n var _this = _super.call(this) || this;\n _this.duration = duration;\n _this.delay = delay;\n _this.easing = easing;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n TimingAst.prototype.visit = function (visitor, context) { return visitor.visitTiming(this, context); };\n return TimingAst;\n}(Ast));\nvar DynamicTimingAst = (function (_super) {\n tslib_1.__extends(DynamicTimingAst, _super);\n /**\n * @param {?} value\n */\n function DynamicTimingAst(value) {\n var _this = _super.call(this, 0, 0, '') || this;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n DynamicTimingAst.prototype.visit = function (visitor, context) { return visitor.visitTiming(this, context); };\n return DynamicTimingAst;\n}(TimingAst));\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 */\n/**\n * @param {?} visitor\n * @param {?} node\n * @param {?} context\n * @return {?}\n */\nfunction visitAnimationNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* Trigger */:\n return visitor.visitTrigger(/** @type {?} */ (node), context);\n case 0 /* State */:\n return visitor.visitState(/** @type {?} */ (node), context);\n case 1 /* Transition */:\n return visitor.visitTransition(/** @type {?} */ (node), context);\n case 2 /* Sequence */:\n return visitor.visitSequence(/** @type {?} */ (node), context);\n case 3 /* Group */:\n return visitor.visitGroup(/** @type {?} */ (node), context);\n case 4 /* Animate */:\n return visitor.visitAnimate(/** @type {?} */ (node), context);\n case 5 /* Keyframes */:\n return visitor.visitKeyframes(/** @type {?} */ (node), context);\n case 6 /* Style */:\n return visitor.visitStyle(/** @type {?} */ (node), context);\n case 8 /* Reference */:\n return visitor.visitReference(/** @type {?} */ (node), context);\n case 9 /* AnimateChild */:\n return visitor.visitAnimateChild(/** @type {?} */ (node), context);\n case 10 /* AnimateRef */:\n return visitor.visitAnimateRef(/** @type {?} */ (node), context);\n case 11 /* Query */:\n return visitor.visitQuery(/** @type {?} */ (node), context);\n case 12 /* Stagger */:\n return visitor.visitStagger(/** @type {?} */ (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 */\nvar ANY_STATE = '*';\n/**\n * @param {?} transitionValue\n * @param {?} errors\n * @return {?}\n */\nfunction parseTransitionExpr(transitionValue, errors) {\n var /** @type {?} */ expressions = [];\n if (typeof transitionValue == 'string') {\n ((transitionValue))\n .split(/\\s*,\\s*/)\n .forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); });\n }\n else {\n expressions.push(/** @type {?} */ (transitionValue));\n }\n return expressions;\n}\n/**\n * @param {?} eventStr\n * @param {?} expressions\n * @param {?} errors\n * @return {?}\n */\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n eventStr = parseAnimationAlias(eventStr, errors);\n }\n var /** @type {?} */ match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(\"The provided transition expression \\\"\" + eventStr + \"\\\" is not supported\");\n return expressions;\n }\n var /** @type {?} */ fromState = match[1];\n var /** @type {?} */ separator = match[2];\n var /** @type {?} */ toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n var /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\n/**\n * @param {?} alias\n * @param {?} errors\n * @return {?}\n */\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n default:\n errors.push(\"The transition alias value \\\"\" + alias + \"\\\" is not supported\");\n return '* => *';\n }\n}\n/**\n * @param {?} lhs\n * @param {?} rhs\n * @return {?}\n */\nfunction makeLambdaFromStates(lhs, rhs) {\n return function (fromState, toState) {\n var /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState;\n var /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && typeof fromState === 'boolean') {\n lhsMatch = fromState ? lhs === 'true' : lhs === 'false';\n }\n if (!rhsMatch && typeof toState === 'boolean') {\n rhsMatch = toState ? rhs === 'true' : rhs === 'false';\n }\n return lhsMatch && rhsMatch;\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 */\nvar SELF_TOKEN = ':self';\nvar SELF_TOKEN_REGEX = new RegExp(\"s*\" + SELF_TOKEN + \"s*,?\", 'g');\n/**\n * @param {?} metadata\n * @param {?} errors\n * @return {?}\n */\nfunction buildAnimationAst(metadata, errors) {\n return new AnimationAstBuilderVisitor().build(metadata, errors);\n}\nvar LEAVE_TOKEN = ':leave';\nvar LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\nvar ENTER_TOKEN = ':enter';\nvar ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nvar ROOT_SELECTOR = '';\nvar AnimationAstBuilderVisitor = (function () {\n function AnimationAstBuilderVisitor() {\n }\n /**\n * @param {?} metadata\n * @param {?} errors\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.build = function (metadata, errors) {\n var /** @type {?} */ context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n return (visitAnimationNode(this, normalizeAnimationEntry(metadata), context));\n };\n /**\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = function (context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = {};\n context.collectedStyles[ROOT_SELECTOR] = {};\n context.currentTime = 0;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitTrigger = function (metadata, context) {\n var _this = this;\n var /** @type {?} */ queryCount = context.queryCount = 0;\n var /** @type {?} */ depCount = context.depCount = 0;\n var /** @type {?} */ states = [];\n var /** @type {?} */ transitions = [];\n metadata.definitions.forEach(function (def) {\n _this._resetContextStyleTimingState(context);\n if (def.type == 0 /* State */) {\n var /** @type {?} */ stateDef_1 = (def);\n var /** @type {?} */ name = stateDef_1.name;\n name.split(/\\s*,\\s*/).forEach(function (n) {\n stateDef_1.name = n;\n states.push(_this.visitState(stateDef_1, context));\n });\n stateDef_1.name = name;\n }\n else if (def.type == 1 /* Transition */) {\n var /** @type {?} */ transition = _this.visitTransition(/** @type {?} */ (def), context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push('only state() and transition() definitions can sit inside of a trigger()');\n }\n });\n var /** @type {?} */ ast = new TriggerAst(metadata.name, states, transitions);\n ast.options = normalizeAnimationOptions(metadata.options);\n ast.queryCount = queryCount;\n ast.depCount = depCount;\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitState = function (metadata, context) {\n return new StateAst(metadata.name, this.visitStyle(metadata.styles, context));\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitTransition = function (metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n var /** @type {?} */ entry = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context);\n var /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors);\n var /** @type {?} */ ast = new TransitionAst(matchers, entry);\n ast.options = normalizeAnimationOptions(metadata.options);\n ast.queryCount = context.queryCount;\n ast.depCount = context.depCount;\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitSequence = function (metadata, context) {\n var _this = this;\n var /** @type {?} */ ast = new SequenceAst(metadata.steps.map(function (s) { return visitAnimationNode(_this, s, context); }));\n ast.options = normalizeAnimationOptions(metadata.options);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitGroup = function (metadata, context) {\n var _this = this;\n var /** @type {?} */ currentTime = context.currentTime;\n var /** @type {?} */ furthestTime = 0;\n var /** @type {?} */ steps = metadata.steps.map(function (step) {\n context.currentTime = currentTime;\n var /** @type {?} */ innerAst = visitAnimationNode(_this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n var /** @type {?} */ ast = new GroupAst(steps);\n ast.options = normalizeAnimationOptions(metadata.options);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitAnimate = function (metadata, context) {\n var /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n var /** @type {?} */ styles;\n var /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* Keyframes */) {\n styles = this.visitKeyframes(/** @type {?} */ (styleMetadata), context);\n }\n else {\n var /** @type {?} */ styleMetadata_1 = (metadata.styles);\n var /** @type {?} */ isEmpty = false;\n if (!styleMetadata_1) {\n isEmpty = true;\n var /** @type {?} */ newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata_1 = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n var /** @type {?} */ styleAst = this.visitStyle(styleMetadata_1, context);\n styleAst.isEmptyStep = isEmpty;\n styles = styleAst;\n }\n context.currentAnimateTimings = null;\n return new AnimateAst(timingAst, styles);\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitStyle = function (metadata, context) {\n var /** @type {?} */ ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype._makeStyleAst = function (metadata, context) {\n var /** @type {?} */ styles = [];\n if (Array.isArray(metadata.styles)) {\n ((metadata.styles)).forEach(function (styleTuple) {\n if (typeof styleTuple == 'string') {\n if (styleTuple == AUTO_STYLE) {\n styles.push(/** @type {?} */ (styleTuple));\n }\n else {\n context.errors.push(\"The provided style string value \" + styleTuple + \" is not allowed.\");\n }\n }\n else {\n styles.push(/** @type {?} */ (styleTuple));\n }\n });\n }\n else {\n styles.push(metadata.styles);\n }\n var /** @type {?} */ collectedEasing = null;\n styles.forEach(function (styleData) {\n if (isObject(styleData)) {\n var /** @type {?} */ styleMap = (styleData);\n var /** @type {?} */ easing = styleMap['easing'];\n if (easing) {\n collectedEasing = (easing);\n delete styleMap['easing'];\n }\n }\n });\n return new StyleAst(styles, collectedEasing, metadata.offset);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype._validateStyleAst = function (ast, context) {\n var /** @type {?} */ timings = context.currentAnimateTimings;\n var /** @type {?} */ endTime = context.currentTime;\n var /** @type {?} */ startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(function (tuple) {\n if (typeof tuple == 'string')\n return;\n Object.keys(tuple).forEach(function (prop) {\n var /** @type {?} */ collectedStyles = context.collectedStyles[((context.currentQuerySelector))];\n var /** @type {?} */ collectedEntry = collectedStyles[prop];\n var /** @type {?} */ updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(\"The CSS property \\\"\" + prop + \"\\\" that exists between the times of \\\"\" + collectedEntry.startTime + \"ms\\\" and \\\"\" + collectedEntry.endTime + \"ms\\\" is also being animated in a parallel animation between the times of \\\"\" + startTime + \"ms\\\" and \\\"\" + endTime + \"ms\\\"\");\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles[prop] = { startTime: startTime, endTime: endTime };\n }\n if (context.options) {\n validateStyleParams(tuple[prop], context.options, context.errors);\n }\n });\n });\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitKeyframes = function (metadata, context) {\n var _this = this;\n if (!context.currentAnimateTimings) {\n context.errors.push(\"keyframes() must be placed inside of a call to animate()\");\n return new KeyframesAst([]);\n }\n var /** @type {?} */ MAX_KEYFRAME_OFFSET = 1;\n var /** @type {?} */ totalKeyframesWithOffsets = 0;\n var /** @type {?} */ offsets = [];\n var /** @type {?} */ offsetsOutOfOrder = false;\n var /** @type {?} */ keyframesOutOfRange = false;\n var /** @type {?} */ previousOffset = 0;\n var /** @type {?} */ keyframes = metadata.steps.map(function (styles) {\n var /** @type {?} */ style$$1 = _this._makeStyleAst(styles, context);\n var /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles);\n var /** @type {?} */ offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style$$1.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style$$1;\n });\n if (keyframesOutOfRange) {\n context.errors.push(\"Please ensure that all keyframe offsets are between 0 and 1\");\n }\n if (offsetsOutOfOrder) {\n context.errors.push(\"Please ensure that all keyframe offsets are in order\");\n }\n var /** @type {?} */ length = metadata.steps.length;\n var /** @type {?} */ generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(\"Not all style() steps within the declared keyframes() contain offsets\");\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n var /** @type {?} */ limit = length - 1;\n var /** @type {?} */ currentTime = context.currentTime;\n var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));\n var /** @type {?} */ animateDuration = currentAnimateTimings.duration;\n keyframes.forEach(function (kf, i) {\n var /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n var /** @type {?} */ durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n _this._validateStyleAst(kf, context);\n kf.offset = offset;\n });\n return new KeyframesAst(keyframes);\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitReference = function (metadata, context) {\n var /** @type {?} */ entry = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context);\n var /** @type {?} */ ast = new ReferenceAst(entry);\n ast.options = normalizeAnimationOptions(metadata.options);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitAnimateChild = function (metadata, context) {\n context.depCount++;\n var /** @type {?} */ ast = new AnimateChildAst();\n ast.options = normalizeAnimationOptions(metadata.options);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitAnimateRef = function (metadata, context) {\n var /** @type {?} */ animation = this.visitReference(metadata.animation, context);\n var /** @type {?} */ ast = new AnimateRefAst(animation);\n ast.options = normalizeAnimationOptions(metadata.options);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitQuery = function (metadata, context) {\n var /** @type {?} */ parentSelector = ((context.currentQuerySelector));\n var /** @type {?} */ options = ((metadata.options || {}));\n context.queryCount++;\n context.currentQuery = metadata;\n var _a = normalizeSelector(metadata.selector), selector = _a[0], includeSelf = _a[1];\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});\n var /** @type {?} */ entry = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n var /** @type {?} */ ast = new QueryAst(selector, options.limit || 0, !!options.optional, includeSelf, entry);\n ast.originalSelector = metadata.selector;\n ast.options = normalizeAnimationOptions(metadata.options);\n return ast;\n };\n /**\n * @param {?} metadata\n * @param {?} context\n * @return {?}\n */\n AnimationAstBuilderVisitor.prototype.visitStagger = function (metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(\"stagger() can only be used inside of query()\");\n }\n var /** @type {?} */ timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n var /** @type {?} */ animation = visitAnimationNode(this, normalizeAnimationEntry(metadata.animation), context);\n return new StaggerAst(timings, animation);\n };\n return AnimationAstBuilderVisitor;\n}());\n/**\n * @param {?} selector\n * @return {?}\n */\nfunction normalizeSelector(selector) {\n var /** @type {?} */ hasAmpersand = selector.split(/\\s*,\\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR)\n .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR)\n .replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); })\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\n/**\n * @param {?} obj\n * @return {?}\n */\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nvar AnimationAstBuilderContext = (function () {\n /**\n * @param {?} errors\n */\n function AnimationAstBuilderContext(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = {};\n this.options = null;\n }\n return AnimationAstBuilderContext;\n}());\n/**\n * @param {?} styles\n * @return {?}\n */\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n var /** @type {?} */ offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(function (styleTuple) {\n if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {\n var /** @type {?} */ obj = (styleTuple);\n offset = parseFloat(/** @type {?} */ (obj['offset']));\n delete obj['offset'];\n }\n });\n }\n else if (isObject(styles) && styles.hasOwnProperty('offset')) {\n var /** @type {?} */ obj = (styles);\n offset = parseFloat(/** @type {?} */ (obj['offset']));\n delete obj['offset'];\n }\n return offset;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isObject(value) {\n return !Array.isArray(value) && typeof value == 'object';\n}\n/**\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\nfunction constructTimingAst(value, errors) {\n var /** @type {?} */ timings = null;\n if (value.hasOwnProperty('duration')) {\n timings = (value);\n }\n else if (typeof value == 'number') {\n var /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration;\n return new TimingAst(/** @type {?} */ (value), 0, '');\n }\n var /** @type {?} */ strValue = (value);\n var /** @type {?} */ isDynamic = strValue.split(/\\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; });\n if (isDynamic) {\n return new DynamicTimingAst(strValue);\n }\n timings = timings || resolveTiming(strValue, errors);\n return new TimingAst(timings.duration, timings.delay, timings.easing);\n}\n/**\n * @param {?} options\n * @return {?}\n */\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = ((normalizeParams(options['params'])));\n }\n }\n else {\n options = {};\n }\n return options;\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 */\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} preStyleProps\n * @param {?} postStyleProps\n * @param {?} duration\n * @param {?} delay\n * @param {?=} easing\n * @param {?=} subTimeline\n * @return {?}\n */\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) {\n if (easing === void 0) { easing = null; }\n if (subTimeline === void 0) { subTimeline = false; }\n return {\n type: 1 /* TimelineAnimation */,\n element: element,\n keyframes: keyframes,\n preStyleProps: preStyleProps,\n postStyleProps: postStyleProps,\n duration: duration,\n delay: delay,\n totalTime: duration + delay, easing: easing, subTimeline: subTimeline\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 */\nvar ElementInstructionMap = (function () {\n function ElementInstructionMap() {\n this._map = new Map();\n }\n /**\n * @param {?} element\n * @return {?}\n */\n ElementInstructionMap.prototype.consume = function (element) {\n var /** @type {?} */ instructions = this._map.get(element);\n if (instructions) {\n this._map.delete(element);\n }\n else {\n instructions = [];\n }\n return instructions;\n };\n /**\n * @param {?} element\n * @param {?} instructions\n * @return {?}\n */\n ElementInstructionMap.prototype.append = function (element, instructions) {\n var /** @type {?} */ existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push.apply(existingInstructions, instructions);\n };\n /**\n * @param {?} element\n * @return {?}\n */\n ElementInstructionMap.prototype.has = function (element) { return this._map.has(element); };\n /**\n * @return {?}\n */\n ElementInstructionMap.prototype.clear = function () { this._map.clear(); };\n return ElementInstructionMap;\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 */\nvar ONE_FRAME_IN_MILLISECONDS = 1;\n/**\n * @param {?} driver\n * @param {?} rootElement\n * @param {?} ast\n * @param {?=} startingStyles\n * @param {?=} finalStyles\n * @param {?=} options\n * @param {?=} subInstructions\n * @param {?=} errors\n * @return {?}\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {\n if (startingStyles === void 0) { startingStyles = {}; }\n if (finalStyles === void 0) { finalStyles = {}; }\n if (errors === void 0) { errors = []; }\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors);\n}\nvar AnimationTimelineBuilderVisitor = (function () {\n function AnimationTimelineBuilderVisitor() {\n }\n /**\n * @param {?} driver\n * @param {?} rootElement\n * @param {?} ast\n * @param {?} startingStyles\n * @param {?} finalStyles\n * @param {?} options\n * @param {?=} subInstructions\n * @param {?=} errors\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.buildKeyframes = function (driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {\n if (errors === void 0) { errors = []; }\n subInstructions = subInstructions || new ElementInstructionMap();\n var /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []);\n context.options = options;\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n ast.visit(this, context);\n // this checks to see if an actual animation happened\n var /** @type {?} */ timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); });\n if (timelines.length && Object.keys(finalStyles).length) {\n var /** @type {?} */ tl = timelines[timelines.length - 1];\n if (!tl.allowOnlyTimelineStyles()) {\n tl.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) :\n [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitTrigger = function (ast, context) {\n // these values are not visited in this AST\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitState = function (ast, context) {\n // these values are not visited in this AST\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitTransition = function (ast, context) {\n // these values are not visited in this AST\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = function (ast, context) {\n var /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element);\n if (elementInstructions) {\n var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n var /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options));\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = function (ast, context) {\n var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n };\n /**\n * @param {?} instructions\n * @param {?} context\n * @param {?} options\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = function (instructions, context, options) {\n var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n var /** @type {?} */ furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n var /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n var /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(function (instruction) {\n var /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitReference = function (ast, context) {\n context.updateOptions(ast.options, true);\n ast.animation.visit(this, context);\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitSequence = function (ast, context) {\n var _this = this;\n var /** @type {?} */ subContextCount = context.subContextCount;\n var /** @type {?} */ ctx = context;\n var /** @type {?} */ options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode instanceof StyleAst) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n var /** @type {?} */ delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(function (s) { return s.visit(_this, ctx); });\n // this is here just incase the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitGroup = function (ast, context) {\n var _this = this;\n var /** @type {?} */ innerTimelines = [];\n var /** @type {?} */ furthestTime = context.currentTimeline.currentTime;\n var /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(function (s) {\n var /** @type {?} */ innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n s.visit(_this, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); });\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitTiming = function (ast, context) {\n if (ast instanceof DynamicTimingAst) {\n var /** @type {?} */ strValue = context.params ?\n interpolateParams(ast.value, context.params, context.errors) :\n ast.value.toString();\n return resolveTiming(strValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitAnimate = function (ast, context) {\n var /** @type {?} */ timings = context.currentAnimateTimings = this.visitTiming(ast.timings, context);\n var /** @type {?} */ timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n var /** @type {?} */ style$$1 = ast.style;\n if (style$$1 instanceof KeyframesAst) {\n this.visitKeyframes(style$$1, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(/** @type {?} */ (style$$1), context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitStyle = function (ast, context) {\n var /** @type {?} */ timeline = context.currentTimeline;\n var /** @type {?} */ timings = ((context.currentAnimateTimings));\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.getCurrentStyleProperties().length) {\n timeline.forwardFrame();\n }\n var /** @type {?} */ easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitKeyframes = function (ast, context) {\n var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));\n var /** @type {?} */ startTime = (((context.currentTimeline))).duration;\n var /** @type {?} */ duration = currentAnimateTimings.duration;\n var /** @type {?} */ innerContext = context.createSubContext();\n var /** @type {?} */ innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(function (step) {\n var /** @type {?} */ offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitQuery = function (ast, context) {\n var _this = this;\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n var /** @type {?} */ startTime = context.currentTimeline.currentTime;\n var /** @type {?} */ options = ((ast.options || {}));\n var /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode instanceof StyleAst ||\n (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n var /** @type {?} */ furthestTime = startTime;\n var /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n var /** @type {?} */ sameElementTimeline = null;\n elms.forEach(function (element, i) {\n context.currentQueryIndex = i;\n var /** @type {?} */ innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n ast.animation.visit(_this, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n var /** @type {?} */ endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AnimationTimelineBuilderVisitor.prototype.visitStagger = function (ast, context) {\n var /** @type {?} */ parentContext = ((context.parentContext));\n var /** @type {?} */ tl = context.currentTimeline;\n var /** @type {?} */ timings = ast.timings;\n var /** @type {?} */ duration = Math.abs(timings.duration);\n var /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1);\n var /** @type {?} */ delay = duration * context.currentQueryIndex;\n var /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n var /** @type {?} */ timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n var /** @type {?} */ startingTime = timeline.currentTime;\n ast.animation.visit(this, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n };\n return AnimationTimelineBuilderVisitor;\n}());\nvar DEFAULT_NOOP_PREVIOUS_NODE = ({});\nvar AnimationTimelineContext = (function () {\n /**\n * @param {?} _driver\n * @param {?} element\n * @param {?} subInstructions\n * @param {?} errors\n * @param {?} timelines\n * @param {?=} initialTimeline\n */\n function AnimationTimelineContext(_driver, element, subInstructions, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(element, 0);\n timelines.push(this.currentTimeline);\n }\n Object.defineProperty(AnimationTimelineContext.prototype, \"params\", {\n /**\n * @return {?}\n */\n get: function () { return this.options.params; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} options\n * @param {?=} skipIfExists\n * @return {?}\n */\n AnimationTimelineContext.prototype.updateOptions = function (options, skipIfExists) {\n var _this = this;\n if (!options)\n return;\n var /** @type {?} */ newOptions = (options);\n var /** @type {?} */ optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n ((optionsToUpdate)).duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n var /** @type {?} */ newParams = newOptions.params;\n if (newParams) {\n var /** @type {?} */ paramsToUpdate_1 = ((optionsToUpdate.params));\n if (!paramsToUpdate_1) {\n paramsToUpdate_1 = this.options.params = {};\n }\n Object.keys(newParams).forEach(function (name) {\n if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) {\n paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors);\n }\n });\n }\n };\n /**\n * @return {?}\n */\n AnimationTimelineContext.prototype._copyOptions = function () {\n var /** @type {?} */ options = {};\n if (this.options) {\n var /** @type {?} */ oldParams_1 = this.options.params;\n if (oldParams_1) {\n var /** @type {?} */ params_1 = options['params'] = {};\n Object.keys(this.options.params).forEach(function (name) { params_1[name] = oldParams_1[name]; });\n }\n }\n return options;\n };\n /**\n * @param {?=} options\n * @param {?=} element\n * @param {?=} newTime\n * @return {?}\n */\n AnimationTimelineContext.prototype.createSubContext = function (options, element, newTime) {\n if (options === void 0) { options = null; }\n var /** @type {?} */ target = element || this.element;\n var /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n };\n /**\n * @param {?=} newTime\n * @return {?}\n */\n AnimationTimelineContext.prototype.transformIntoNewTimeline = function (newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n };\n /**\n * @param {?} instruction\n * @param {?} duration\n * @param {?} delay\n * @return {?}\n */\n AnimationTimelineContext.prototype.appendInstructionToTimeline = function (instruction, duration, delay) {\n var /** @type {?} */ updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n var /** @type {?} */ builder = new SubTimelineBuilder(instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n };\n /**\n * @param {?} time\n * @return {?}\n */\n AnimationTimelineContext.prototype.incrementTime = function (time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n };\n /**\n * @param {?} delay\n * @return {?}\n */\n AnimationTimelineContext.prototype.delayNextStep = function (delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n };\n /**\n * @param {?} selector\n * @param {?} originalSelector\n * @param {?} limit\n * @param {?} includeSelf\n * @param {?} optional\n * @param {?} errors\n * @return {?}\n */\n AnimationTimelineContext.prototype.invokeQuery = function (selector, originalSelector, limit, includeSelf, optional, errors) {\n var /** @type {?} */ results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n var /** @type {?} */ multi = limit != 1;\n results.push.apply(results, this._driver.query(this.element, selector, multi));\n }\n if (!optional && results.length == 0) {\n errors.push(\"`query(\\\"\" + originalSelector + \"\\\")` returned zero elements. (Use `query(\\\"\" + originalSelector + \"\\\", { optional: true })` if you wish to allow this.)\");\n }\n return results;\n };\n return AnimationTimelineContext;\n}());\nvar TimelineBuilder = (function () {\n /**\n * @param {?} element\n * @param {?} startTime\n * @param {?=} _elementTimelineStylesLookup\n */\n function TimelineBuilder(element, startTime, _elementTimelineStylesLookup) {\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = {};\n this._currentKeyframe = {};\n this._keyframes = new Map();\n this._styleSummary = {};\n this._pendingStyles = {};\n this._backFill = {};\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._localTimelineStyles = Object.create(this._backFill, {});\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.containsAnimation = function () {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.getCurrentStyleProperties().length > 0;\n default:\n return true;\n }\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.getCurrentStyleProperties = function () { return Object.keys(this._currentKeyframe); };\n Object.defineProperty(TimelineBuilder.prototype, \"currentTime\", {\n /**\n * @return {?}\n */\n get: function () { return this.startTime + this.duration; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} delay\n * @return {?}\n */\n TimelineBuilder.prototype.delayNextStep = function (delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n var /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n };\n /**\n * @param {?} element\n * @param {?=} currentTime\n * @return {?}\n */\n TimelineBuilder.prototype.fork = function (element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype._loadKeyframe = function () {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = ((this._keyframes.get(this.duration)));\n if (!this._currentKeyframe) {\n this._currentKeyframe = Object.create(this._backFill, {});\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.forwardFrame = function () {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n };\n /**\n * @param {?} time\n * @return {?}\n */\n TimelineBuilder.prototype.forwardTime = function (time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n };\n /**\n * @param {?} prop\n * @param {?} value\n * @return {?}\n */\n TimelineBuilder.prototype._updateStyle = function (prop, value) {\n this._localTimelineStyles[prop] = value;\n this._globalTimelineStyles[prop] = value;\n this._styleSummary[prop] = { time: this.currentTime, value: value };\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.allowOnlyTimelineStyles = function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; };\n /**\n * @param {?} easing\n * @return {?}\n */\n TimelineBuilder.prototype.applyEmptyStep = function (easing) {\n var _this = this;\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n Object.keys(this._globalTimelineStyles).forEach(function (prop) {\n _this._backFill[prop] = _this._globalTimelineStyles[prop] || AUTO_STYLE;\n _this._currentKeyframe[prop] = AUTO_STYLE;\n });\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n };\n /**\n * @param {?} input\n * @param {?} easing\n * @param {?} errors\n * @param {?=} options\n * @return {?}\n */\n TimelineBuilder.prototype.setStyles = function (input, easing, errors, options) {\n var _this = this;\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n var /** @type {?} */ params = (options && options.params) || {};\n var /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles);\n Object.keys(styles).forEach(function (prop) {\n var /** @type {?} */ val = interpolateParams(styles[prop], params, errors);\n _this._pendingStyles[prop] = val;\n if (!_this._localTimelineStyles.hasOwnProperty(prop)) {\n _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ?\n _this._globalTimelineStyles[prop] :\n AUTO_STYLE;\n }\n _this._updateStyle(prop, val);\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.applyStylesToKeyframe = function () {\n var _this = this;\n var /** @type {?} */ styles = this._pendingStyles;\n var /** @type {?} */ props = Object.keys(styles);\n if (props.length == 0)\n return;\n this._pendingStyles = {};\n props.forEach(function (prop) {\n var /** @type {?} */ val = styles[prop];\n _this._currentKeyframe[prop] = val;\n });\n Object.keys(this._localTimelineStyles).forEach(function (prop) {\n if (!_this._currentKeyframe.hasOwnProperty(prop)) {\n _this._currentKeyframe[prop] = _this._localTimelineStyles[prop];\n }\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.snapshotCurrentStyles = function () {\n var _this = this;\n Object.keys(this._localTimelineStyles).forEach(function (prop) {\n var /** @type {?} */ val = _this._localTimelineStyles[prop];\n _this._pendingStyles[prop] = val;\n _this._updateStyle(prop, val);\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.getFinalKeyframe = function () { return this._keyframes.get(this.duration); };\n Object.defineProperty(TimelineBuilder.prototype, \"properties\", {\n /**\n * @return {?}\n */\n get: function () {\n var /** @type {?} */ properties = [];\n for (var /** @type {?} */ prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} timeline\n * @return {?}\n */\n TimelineBuilder.prototype.mergeTimelineCollectedStyles = function (timeline) {\n var _this = this;\n Object.keys(timeline._styleSummary).forEach(function (prop) {\n var /** @type {?} */ details0 = _this._styleSummary[prop];\n var /** @type {?} */ details1 = timeline._styleSummary[prop];\n if (!details0 || details1.time > details0.time) {\n _this._updateStyle(prop, details1.value);\n }\n });\n };\n /**\n * @return {?}\n */\n TimelineBuilder.prototype.buildKeyframes = function () {\n var _this = this;\n this.applyStylesToKeyframe();\n var /** @type {?} */ preStyleProps = new Set();\n var /** @type {?} */ postStyleProps = new Set();\n var /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0;\n var /** @type {?} */ finalKeyframes = [];\n this._keyframes.forEach(function (keyframe, time) {\n var /** @type {?} */ finalKeyframe = copyStyles(keyframe, true);\n Object.keys(finalKeyframe).forEach(function (prop) {\n var /** @type {?} */ value = finalKeyframe[prop];\n if (value == ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value == AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe['offset'] = time / _this.duration;\n }\n finalKeyframes.push(finalKeyframe);\n });\n var /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n var /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n var /** @type {?} */ kf0 = finalKeyframes[0];\n var /** @type {?} */ kf1 = copyObj(kf0);\n kf0['offset'] = 0;\n kf1['offset'] = 1;\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n };\n return TimelineBuilder;\n}());\nvar SubTimelineBuilder = (function (_super) {\n tslib_1.__extends(SubTimelineBuilder, _super);\n /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} preStyleProps\n * @param {?} postStyleProps\n * @param {?} timings\n * @param {?=} _stretchStartingKeyframe\n */\n function SubTimelineBuilder(element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) {\n if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; }\n var _this = _super.call(this, element, timings.delay) || this;\n _this.element = element;\n _this.keyframes = keyframes;\n _this.preStyleProps = preStyleProps;\n _this.postStyleProps = postStyleProps;\n _this._stretchStartingKeyframe = _stretchStartingKeyframe;\n _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n return _this;\n }\n /**\n * @return {?}\n */\n SubTimelineBuilder.prototype.containsAnimation = function () { return this.keyframes.length > 1; };\n /**\n * @return {?}\n */\n SubTimelineBuilder.prototype.buildKeyframes = function () {\n var /** @type {?} */ keyframes = this.keyframes;\n var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing;\n if (this._stretchStartingKeyframe && delay) {\n var /** @type {?} */ newKeyframes = [];\n var /** @type {?} */ totalTime = duration + delay;\n var /** @type {?} */ startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n var /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false);\n newFirstKeyframe['offset'] = 0;\n newKeyframes.push(newFirstKeyframe);\n var /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false);\n oldFirstKeyframe['offset'] = roundOffset(startingGap);\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still renderered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n var /** @type {?} */ limit = keyframes.length - 1;\n for (var /** @type {?} */ i = 1; i <= limit; i++) {\n var /** @type {?} */ kf = copyStyles(keyframes[i], false);\n var /** @type {?} */ oldOffset = (kf['offset']);\n var /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration;\n kf['offset'] = roundOffset(timeAtKeyframe / totalTime);\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n };\n return SubTimelineBuilder;\n}(TimelineBuilder));\n/**\n * @param {?} offset\n * @param {?=} decimalPoints\n * @return {?}\n */\nfunction roundOffset(offset, decimalPoints) {\n if (decimalPoints === void 0) { decimalPoints = 3; }\n var /** @type {?} */ mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\n/**\n * @param {?} input\n * @param {?} allStyles\n * @return {?}\n */\nfunction flattenStyles(input, allStyles) {\n var /** @type {?} */ styles = {};\n var /** @type {?} */ allProperties;\n input.forEach(function (token) {\n if (token === '*') {\n allProperties = allProperties || Object.keys(allStyles);\n allProperties.forEach(function (prop) { styles[prop] = AUTO_STYLE; });\n }\n else {\n copyStyles(/** @type {?} */ (token), false, styles);\n }\n });\n return styles;\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 */\nvar Animation = (function () {\n /**\n * @param {?} _driver\n * @param {?} input\n */\n function Animation(_driver, input) {\n this._driver = _driver;\n var errors = [];\n var ast = buildAnimationAst(input, errors);\n if (errors.length) {\n var errorMessage = \"animation validation failed:\\n\" + errors.join(\"\\n\");\n throw new Error(errorMessage);\n }\n this._animationAst = ast;\n }\n /**\n * @param {?} element\n * @param {?} startingStyles\n * @param {?} destinationStyles\n * @param {?} options\n * @param {?=} subInstructions\n * @return {?}\n */\n Animation.prototype.buildTimelines = function (element, startingStyles, destinationStyles, options, subInstructions) {\n var /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : (startingStyles);\n var /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : (destinationStyles);\n var /** @type {?} */ errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n var /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors);\n if (errors.length) {\n var /** @type {?} */ errorMessage = \"animation building failed:\\n\" + errors.join(\"\\n\");\n throw new Error(errorMessage);\n }\n return result;\n };\n return Animation;\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 */\n/**\n * @experimental Animation support is experimental.\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 */ var AnimationStyleNormalizer = (function () {\n function AnimationStyleNormalizer() {\n }\n return AnimationStyleNormalizer;\n}());\n/**\n * @experimental Animation support is experimental.\n */\nvar NoopAnimationStyleNormalizer = (function () {\n function NoopAnimationStyleNormalizer() {\n }\n NoopAnimationStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) { return propertyName; };\n NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n };\n return NoopAnimationStyleNormalizer;\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 */\nvar WebAnimationsStyleNormalizer = (function (_super) {\n tslib_1.__extends(WebAnimationsStyleNormalizer, _super);\n function WebAnimationsStyleNormalizer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} propertyName\n * @param {?} errors\n * @return {?}\n */\n WebAnimationsStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n };\n /**\n * @param {?} userProvidedProperty\n * @param {?} normalizedProperty\n * @param {?} value\n * @param {?} errors\n * @return {?}\n */\n WebAnimationsStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {\n var /** @type {?} */ unit = '';\n var /** @type {?} */ strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n var /** @type {?} */ valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(\"Please provide a CSS unit value for \" + userProvidedProperty + \":\" + value);\n }\n }\n }\n return strVal + unit;\n };\n return WebAnimationsStyleNormalizer;\n}(AnimationStyleNormalizer));\nvar DIMENSIONAL_PROP_MAP = makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'\n .split(','));\n/**\n * @param {?} keys\n * @return {?}\n */\nfunction makeBooleanMap(keys) {\n var /** @type {?} */ map = {};\n keys.forEach(function (key) { return map[key] = true; });\n return map;\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 */\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} fromState\n * @param {?} toState\n * @param {?} isRemovalTransition\n * @param {?} fromStyles\n * @param {?} toStyles\n * @param {?} timelines\n * @param {?} queriedElements\n * @param {?} preStyleProps\n * @param {?} postStyleProps\n * @param {?=} errors\n * @return {?}\n */\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, errors) {\n return {\n type: 0 /* TransitionAnimation */,\n element: element,\n triggerName: triggerName,\n isRemovalTransition: isRemovalTransition,\n fromState: fromState,\n fromStyles: fromStyles,\n toState: toState,\n toStyles: toStyles,\n timelines: timelines,\n queriedElements: queriedElements,\n preStyleProps: preStyleProps,\n postStyleProps: postStyleProps,\n errors: errors\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 */\nvar AnimationTransitionFactory = (function () {\n /**\n * @param {?} _triggerName\n * @param {?} ast\n * @param {?} _stateStyles\n */\n function AnimationTransitionFactory(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n /**\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\n AnimationTransitionFactory.prototype.match = function (currentState, nextState) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState);\n };\n /**\n * @param {?} driver\n * @param {?} element\n * @param {?} currentState\n * @param {?} nextState\n * @param {?=} options\n * @param {?=} subInstructions\n * @return {?}\n */\n AnimationTransitionFactory.prototype.build = function (driver, element, currentState, nextState, options, subInstructions) {\n var /** @type {?} */ animationOptions = mergeAnimationOptions(this.ast.options || {}, options || {});\n var /** @type {?} */ backupStateStyles = this._stateStyles['*'] || {};\n var /** @type {?} */ currentStateStyles = this._stateStyles[currentState] || backupStateStyles;\n var /** @type {?} */ nextStateStyles = this._stateStyles[nextState] || backupStateStyles;\n var /** @type {?} */ queriedElements = new Set();\n var /** @type {?} */ preStyleMap = new Map();\n var /** @type {?} */ postStyleMap = new Map();\n var /** @type {?} */ isRemoval = nextState === 'void';\n var /** @type {?} */ errors = [];\n var /** @type {?} */ timelines = buildAnimationTimelines(driver, element, this.ast.animation, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, errors);\n }\n timelines.forEach(function (tl) {\n var /** @type {?} */ elm = tl.element;\n var /** @type {?} */ preProps = getOrSetAsInMap(preStyleMap, elm, {});\n tl.preStyleProps.forEach(function (prop) { return preProps[prop] = true; });\n var /** @type {?} */ postProps = getOrSetAsInMap(postStyleMap, elm, {});\n tl.postStyleProps.forEach(function (prop) { return postProps[prop] = true; });\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n var /** @type {?} */ queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap);\n };\n return AnimationTransitionFactory;\n}());\n/**\n * @param {?} matchFns\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState) {\n return matchFns.some(function (fn) { return fn(currentState, nextState); });\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 */\n/**\n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\nfunction buildTrigger(name, ast) {\n return new AnimationTrigger(name, ast);\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nvar AnimationTrigger = (function () {\n /**\n * @param {?} name\n * @param {?} ast\n */\n function AnimationTrigger(name, ast) {\n var _this = this;\n this.name = name;\n this.ast = ast;\n this.transitionFactories = [];\n this.states = {};\n ast.states.forEach(function (ast) {\n var obj = _this.states[ast.name] = {};\n ast.style.styles.forEach(function (styleTuple) {\n if (typeof styleTuple == 'object') {\n copyStyles(styleTuple, false, obj);\n }\n });\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(function (ast) {\n _this.transitionFactories.push(new AnimationTransitionFactory(name, ast, _this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states);\n }\n Object.defineProperty(AnimationTrigger.prototype, \"containsQueries\", {\n /**\n * @return {?}\n */\n get: function () { return this.ast.queryCount > 0; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} currentState\n * @param {?} nextState\n * @return {?}\n */\n AnimationTrigger.prototype.matchTransition = function (currentState, nextState) {\n var /** @type {?} */ entry = this.transitionFactories.find(function (f) { return f.match(currentState, nextState); });\n return entry || null;\n };\n return AnimationTrigger;\n}());\n/**\n * @param {?} triggerName\n * @param {?} states\n * @return {?}\n */\nfunction createFallbackTransition(triggerName, states) {\n var /** @type {?} */ matchers = [function (fromState, toState) { return true; }];\n var /** @type {?} */ animation = new SequenceAst([]);\n var /** @type {?} */ transition = new TransitionAst(matchers, animation);\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\n/**\n * @param {?} obj\n * @param {?} key1\n * @param {?} key2\n * @return {?}\n */\nfunction balanceProperties(obj, key1, key2) {\n if (obj.hasOwnProperty(key1)) {\n if (!obj.hasOwnProperty(key2)) {\n obj[key2] = obj[key1];\n }\n }\n else if (obj.hasOwnProperty(key2)) {\n obj[key1] = obj[key2];\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 */\nvar EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nvar TimelineAnimationEngine = (function () {\n /**\n * @param {?} _driver\n * @param {?} _normalizer\n */\n function TimelineAnimationEngine(_driver, _normalizer) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = {};\n this._playersById = {};\n this.players = [];\n }\n /**\n * @param {?} id\n * @param {?} metadata\n * @return {?}\n */\n TimelineAnimationEngine.prototype.register = function (id, metadata) {\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = buildAnimationAst(metadata, errors);\n if (errors.length) {\n throw new Error(\"Unable to build the animation due to the following errors: \" + errors.join(\"\\n\"));\n }\n else {\n this._animations[id] = ast;\n }\n };\n /**\n * @param {?} i\n * @param {?} preStyles\n * @param {?=} postStyles\n * @return {?}\n */\n TimelineAnimationEngine.prototype._buildPlayer = function (i, preStyles, postStyles) {\n var /** @type {?} */ element = i.element;\n var /** @type {?} */ keyframes = normalizeKeyframes(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, []);\n };\n /**\n * @param {?} id\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\n TimelineAnimationEngine.prototype.create = function (id, element, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = this._animations[id];\n var /** @type {?} */ instructions;\n var /** @type {?} */ autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, {}, {}, options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(function (inst) {\n var /** @type {?} */ styles = getOrSetAsInMap(autoStylesMap, inst.element, {});\n inst.postStyleProps.forEach(function (prop) { return styles[prop] = null; });\n });\n }\n else {\n errors.push('The requested animation doesn\\'t exist or has already been destroyed');\n instructions = [];\n }\n if (errors.length) {\n throw new Error(\"Unable to create the animation due to the following errors: \" + errors.join(\"\\n\"));\n }\n autoStylesMap.forEach(function (styles, element) {\n Object.keys(styles).forEach(function (prop) { styles[prop] = _this._driver.computeStyle(element, prop, AUTO_STYLE); });\n });\n var /** @type {?} */ players = instructions.map(function (i) {\n var /** @type {?} */ styles = autoStylesMap.get(i.element);\n return _this._buildPlayer(i, {}, styles);\n });\n var /** @type {?} */ player = optimizeGroupPlayer(players);\n this._playersById[id] = player;\n player.onDestroy(function () { return _this.destroy(id); });\n this.players.push(player);\n return player;\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TimelineAnimationEngine.prototype.destroy = function (id) {\n var /** @type {?} */ player = this._getPlayer(id);\n player.destroy();\n delete this._playersById[id];\n var /** @type {?} */ index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TimelineAnimationEngine.prototype._getPlayer = function (id) {\n var /** @type {?} */ player = this._playersById[id];\n if (!player) {\n throw new Error(\"Unable to find the timeline player referenced by \" + id);\n }\n return player;\n };\n /**\n * @param {?} id\n * @param {?} element\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n TimelineAnimationEngine.prototype.listen = function (id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n var /** @type {?} */ baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return function () { };\n };\n /**\n * @param {?} id\n * @param {?} element\n * @param {?} command\n * @param {?} args\n * @return {?}\n */\n TimelineAnimationEngine.prototype.command = function (id, element, command, args) {\n if (command == 'register') {\n this.register(id, /** @type {?} */ (args[0]));\n return;\n }\n if (command == 'create') {\n var /** @type {?} */ options = ((args[0] || {}));\n this.create(id, element, options);\n return;\n }\n var /** @type {?} */ player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(/** @type {?} */ (args[0])));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n };\n return TimelineAnimationEngine;\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 */\nvar QUEUED_CLASSNAME = 'ng-animate-queued';\nvar EMPTY_PLAYER_ARRAY = [];\nvar NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: null,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nvar NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForRemoval: null,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nvar REMOVAL_FLAG = '__ng_removed';\nvar StateValue = (function () {\n /**\n * @param {?} input\n */\n function StateValue(input) {\n var isObj = input && input.hasOwnProperty('value');\n var value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n var options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n /**\n * @param {?} options\n * @return {?}\n */\n StateValue.prototype.absorbOptions = function (options) {\n var /** @type {?} */ newParams = options.params;\n if (newParams) {\n var /** @type {?} */ oldParams_2 = ((this.options.params));\n Object.keys(newParams).forEach(function (prop) {\n if (oldParams_2[prop] == null) {\n oldParams_2[prop] = newParams[prop];\n }\n });\n }\n };\n return StateValue;\n}());\nvar VOID_VALUE = 'void';\nvar DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nvar DELETED_STATE_VALUE = new StateValue('DELETED');\nvar AnimationTransitionNamespace = (function () {\n /**\n * @param {?} id\n * @param {?} hostElement\n * @param {?} _engine\n */\n function AnimationTransitionNamespace(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = {};\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n /**\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.listen = function (element, name, phase, callback) {\n var _this = this;\n if (!this._triggers.hasOwnProperty(name)) {\n throw new Error(\"Unable to listen on the animation trigger event \\\"\" + phase + \"\\\" because the animation trigger \\\"\" + name + \"\\\" doesn't exist!\");\n }\n if (phase == null || phase.length == 0) {\n throw new Error(\"Unable to listen on the animation trigger \\\"\" + name + \"\\\" because the provided event is undefined!\");\n }\n if (!isTriggerEventValid(phase)) {\n throw new Error(\"The provided animation trigger event \\\"\" + phase + \"\\\" for the animation trigger \\\"\" + name + \"\\\" is not supported!\");\n }\n var /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n var /** @type {?} */ data = { name: name, phase: phase, callback: callback };\n listeners.push(data);\n var /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n if (!triggersWithStates.hasOwnProperty(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates[name] = null;\n }\n return function () {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n _this._engine.afterFlush(function () {\n var /** @type {?} */ index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!_this._triggers[name]) {\n delete triggersWithStates[name];\n }\n });\n };\n };\n /**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.register = function (name, ast) {\n if (this._triggers[name]) {\n // throw\n return false;\n }\n else {\n this._triggers[name] = ast;\n return true;\n }\n };\n /**\n * @param {?} name\n * @return {?}\n */\n AnimationTransitionNamespace.prototype._getTrigger = function (name) {\n var /** @type {?} */ trigger = this._triggers[name];\n if (!trigger) {\n throw new Error(\"The provided animation trigger \\\"\" + name + \"\\\" has not been registered!\");\n }\n return trigger;\n };\n /**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\n * @param {?=} defaultToFallback\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.trigger = function (element, triggerName, value, defaultToFallback) {\n var _this = this;\n if (defaultToFallback === void 0) { defaultToFallback = true; }\n var /** @type {?} */ trigger = this._getTrigger(triggerName);\n var /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n var /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = {});\n }\n var /** @type {?} */ fromState = triggersWithStates[triggerName];\n var /** @type {?} */ toState = new StateValue(value);\n var /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates[triggerName] = toState;\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n else if (fromState === DELETED_STATE_VALUE) {\n return player;\n }\n var /** @type {?} */ isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value)\n return;\n var /** @type {?} */ playersOnElement = getOrSetAsInMap(this._engine.playersByElement, element, []);\n playersOnElement.forEach(function (player) {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new palyer)\n if (player.namespaceId == _this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n var /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value);\n var /** @type {?} */ isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element: element, triggerName: triggerName, transition: transition, fromState: fromState, toState: toState, player: player, isFallbackTransition: isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(function () { removeClass(element, QUEUED_CLASSNAME); });\n }\n player.onDone(function () {\n var /** @type {?} */ index = _this.players.indexOf(player);\n if (index >= 0) {\n _this.players.splice(index, 1);\n }\n var /** @type {?} */ players = _this._engine.playersByElement.get(element);\n if (players) {\n var /** @type {?} */ index_1 = players.indexOf(player);\n if (index_1 >= 0) {\n players.splice(index_1, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n };\n /**\n * @param {?} name\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.deregister = function (name) {\n var _this = this;\n delete this._triggers[name];\n this._engine.statesByElement.forEach(function (stateMap, element) { delete stateMap[name]; });\n this._elementListeners.forEach(function (listeners, element) {\n _this._elementListeners.set(element, listeners.filter(function (entry) { return entry.name != name; }));\n });\n };\n /**\n * @param {?} element\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.clearElementCache = function (element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n var /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(function (player) { return player.destroy(); });\n this._engine.playersByElement.delete(element);\n }\n };\n /**\n * @param {?} rootElement\n * @param {?} context\n * @param {?=} animate\n * @return {?}\n */\n AnimationTransitionNamespace.prototype._destroyInnerNodes = function (rootElement, context, animate) {\n var _this = this;\n if (animate === void 0) { animate = false; }\n this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(function (elm) {\n if (animate && containsClass(elm, _this._hostClassName)) {\n var /** @type {?} */ innerNs = _this._engine.namespacesByHostElement.get(elm);\n // special case for a host element with animations on the same element\n if (innerNs) {\n innerNs.removeNode(elm, context, true);\n }\n _this.removeNode(elm, context, true);\n }\n else {\n _this.clearElementCache(elm);\n }\n });\n };\n /**\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.removeNode = function (element, context, doNotRecurse) {\n var _this = this;\n var /** @type {?} */ engine = this._engine;\n if (!doNotRecurse && element.childElementCount) {\n this._destroyInnerNodes(element, context, true);\n }\n var /** @type {?} */ triggerStates = engine.statesByElement.get(element);\n if (triggerStates) {\n var /** @type {?} */ players_1 = [];\n Object.keys(triggerStates).forEach(function (triggerName) {\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (_this._triggers[triggerName]) {\n var /** @type {?} */ player = _this.trigger(element, triggerName, VOID_VALUE, false);\n if (player) {\n players_1.push(player);\n }\n }\n });\n if (players_1.length) {\n engine.markElementAsRemoved(this.id, element, true, context);\n optimizeGroupPlayer(players_1).onDone(function () { return engine.processLeaveNode(element); });\n return;\n }\n }\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n var /** @type {?} */ containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n var /** @type {?} */ currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue fowards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n var /** @type {?} */ parent = element;\n while (parent = parent.parentNode) {\n var /** @type {?} */ triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n var /** @type {?} */ listeners = this._elementListeners.get(element);\n if (listeners) {\n var /** @type {?} */ visitedTriggers_1 = new Set();\n listeners.forEach(function (listener) {\n var /** @type {?} */ triggerName = listener.name;\n if (visitedTriggers_1.has(triggerName))\n return;\n visitedTriggers_1.add(triggerName);\n var /** @type {?} */ trigger = _this._triggers[triggerName];\n var /** @type {?} */ transition = trigger.fallbackTransition;\n var /** @type {?} */ elementStates = ((engine.statesByElement.get(element)));\n var /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n var /** @type {?} */ toState = new StateValue(VOID_VALUE);\n var /** @type {?} */ player = new TransitionAnimationPlayer(_this.id, triggerName, element);\n _this._engine.totalQueuedPlayers++;\n _this._queue.push({\n element: element,\n triggerName: triggerName,\n transition: transition,\n fromState: fromState,\n toState: toState,\n player: player,\n isFallbackTransition: true\n });\n });\n }\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(function () { return _this.clearElementCache(element); });\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n };\n /**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.insertNode = function (element, parent) { addClass(element, this._hostClassName); };\n /**\n * @param {?} microtaskId\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.drainQueuedTransitions = function (microtaskId) {\n var _this = this;\n var /** @type {?} */ instructions = [];\n this._queue.forEach(function (entry) {\n var /** @type {?} */ player = entry.player;\n if (player.destroyed)\n return;\n var /** @type {?} */ element = entry.element;\n var /** @type {?} */ listeners = _this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(function (listener) {\n if (listener.name == entry.triggerName) {\n var /** @type {?} */ baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n ((baseEvent))['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n _this._engine.afterFlush(function () {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort(function (a, b) {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n var /** @type {?} */ d0 = a.transition.ast.depCount;\n var /** @type {?} */ d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return _this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n };\n /**\n * @param {?} context\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.destroy = function (context) {\n this.players.forEach(function (p) { return p.destroy(); });\n this._destroyInnerNodes(this.hostElement, context);\n };\n /**\n * @param {?} element\n * @return {?}\n */\n AnimationTransitionNamespace.prototype.elementContainsData = function (element) {\n var /** @type {?} */ containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(function (entry) { return entry.element === element; }) ? true : false) || containsData;\n return containsData;\n };\n return AnimationTransitionNamespace;\n}());\nvar TransitionAnimationEngine = (function () {\n /**\n * @param {?} driver\n * @param {?} _normalizer\n */\n function TransitionAnimationEngine(driver, _normalizer) {\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n this.onRemovalComplete = function (element, context) { };\n }\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype._onRemovalComplete = function (element, context) { this.onRemovalComplete(element, context); };\n Object.defineProperty(TransitionAnimationEngine.prototype, \"queuedPlayers\", {\n /**\n * @return {?}\n */\n get: function () {\n var /** @type {?} */ players = [];\n this._namespaceList.forEach(function (ns) {\n ns.players.forEach(function (player) {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype.createNamespace = function (namespaceId, hostElement) {\n var /** @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (hostElement.parentNode) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is apart of the animation code, it\n // may or may not be inserted by a parent node that is an of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n };\n /**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype._balanceNamespaceList = function (ns, hostElement) {\n var /** @type {?} */ limit = this._namespaceList.length - 1;\n if (limit >= 0) {\n var /** @type {?} */ found = false;\n for (var /** @type {?} */ i = limit; i >= 0; i--) {\n var /** @type {?} */ nextNamespace = this._namespaceList[i];\n if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n this._namespaceList.splice(i + 1, 0, ns);\n found = true;\n break;\n }\n }\n if (!found) {\n this._namespaceList.splice(0, 0, ns);\n }\n }\n else {\n this._namespaceList.push(ns);\n }\n this.namespacesByHostElement.set(hostElement, ns);\n return ns;\n };\n /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype.register = function (namespaceId, hostElement) {\n var /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n };\n /**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\n TransitionAnimationEngine.prototype.registerTrigger = function (namespaceId, name, trigger) {\n var /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n };\n /**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype.destroy = function (namespaceId, context) {\n var _this = this;\n if (!namespaceId)\n return;\n var /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n this.afterFlush(function () {\n _this.namespacesByHostElement.delete(ns.hostElement);\n delete _this._namespaceLookup[namespaceId];\n var /** @type {?} */ index = _this._namespaceList.indexOf(ns);\n if (index >= 0) {\n _this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(function () { return ns.destroy(context); });\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitionAnimationEngine.prototype._fetchNamespace = function (id) { return this._namespaceLookup[id]; };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n TransitionAnimationEngine.prototype.trigger = function (namespaceId, element, name, value) {\n if (isElementNode(element)) {\n this._fetchNamespace(namespaceId).trigger(element, name, value);\n return true;\n }\n return false;\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\n TransitionAnimationEngine.prototype.insertNode = function (namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n var /** @type {?} */ details = (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n this._fetchNamespace(namespaceId).insertNode(element, parent);\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.collectEnterElement = function (element) { this.collectedEnterElements.push(element); };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\n TransitionAnimationEngine.prototype.removeNode = function (namespaceId, element, context, doNotRecurse) {\n if (!isElementNode(element)) {\n this._onRemovalComplete(element, context);\n return;\n }\n var /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context, doNotRecurse);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}\n */\n TransitionAnimationEngine.prototype.markElementAsRemoved = function (namespaceId, element, hasAnimation, context) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId: namespaceId,\n setForRemoval: context, hasAnimation: hasAnimation,\n removedBeforeQueried: false\n };\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationEngine.prototype.listen = function (namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return function () { };\n };\n /**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\n TransitionAnimationEngine.prototype._buildInstruction = function (entry, subTimelines) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, entry.toState.options, subTimelines);\n };\n /**\n * @param {?} containerElement\n * @return {?}\n */\n TransitionAnimationEngine.prototype.destroyInnerAnimations = function (containerElement) {\n var _this = this;\n var /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(function (element) {\n var /** @type {?} */ players = _this.playersByElement.get(element);\n if (players) {\n players.forEach(function (player) {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n var /** @type {?} */ stateMap = _this.statesByElement.get(element);\n if (stateMap) {\n Object.keys(stateMap).forEach(function (triggerName) { return stateMap[triggerName] = DELETED_STATE_VALUE; });\n }\n });\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n if (elements.length) {\n elements.forEach(function (element) {\n var /** @type {?} */ players = _this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(function (player) { return player.finish(); });\n }\n });\n }\n };\n /**\n * @return {?}\n */\n TransitionAnimationEngine.prototype.whenRenderingDone = function () {\n var _this = this;\n return new Promise(function (resolve) {\n if (_this.players.length) {\n return optimizeGroupPlayer(_this.players).onDone(function () { return resolve(); });\n }\n else {\n resolve();\n }\n });\n };\n /**\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.processLeaveNode = function (element) {\n var /** @type {?} */ details = (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n var /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n };\n /**\n * @param {?=} microtaskId\n * @return {?}\n */\n TransitionAnimationEngine.prototype.flush = function (microtaskId) {\n var _this = this;\n if (microtaskId === void 0) { microtaskId = -1; }\n var /** @type {?} */ players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach(function (ns, element) { return _this._balanceNamespaceList(ns, element); });\n this.newHostElements.clear();\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n var /** @type {?} */ cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (var /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n var /** @type {?} */ element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(function (fn) { return fn(); });\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n var /** @type {?} */ quietFns_1 = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(function () { quietFns_1.forEach(function (fn) { return fn(); }); });\n }\n else {\n quietFns_1.forEach(function (fn) { return fn(); });\n }\n }\n };\n /**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\n TransitionAnimationEngine.prototype._flushAnimations = function (cleanupFns, microtaskId) {\n var _this = this;\n var /** @type {?} */ subTimelines = new ElementInstructionMap();\n var /** @type {?} */ skippedPlayers = [];\n var /** @type {?} */ skippedPlayersMap = new Map();\n var /** @type {?} */ queuedInstructions = [];\n var /** @type {?} */ queriedElements = new Map();\n var /** @type {?} */ allPreStyleElements = new Map();\n var /** @type {?} */ allPostStyleElements = new Map();\n var /** @type {?} */ bodyNode = getBodyNode();\n var /** @type {?} */ allEnterNodes = this.collectedEnterElements.length ?\n this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n [];\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n addClass(allEnterNodes[i], ENTER_CLASSNAME);\n }\n var /** @type {?} */ allLeaveNodes = [];\n var /** @type {?} */ leaveNodesWithoutAnimations = [];\n for (var /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n var /** @type {?} */ element = this.collectedLeaveElements[i];\n var /** @type {?} */ details = (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval) {\n addClass(element, LEAVE_CLASSNAME);\n allLeaveNodes.push(element);\n if (!details.hasAnimation) {\n leaveNodesWithoutAnimations.push(element);\n }\n }\n }\n cleanupFns.push(function () {\n allEnterNodes.forEach(function (element) { return removeClass(element, ENTER_CLASSNAME); });\n allLeaveNodes.forEach(function (element) {\n removeClass(element, LEAVE_CLASSNAME);\n _this.processLeaveNode(element);\n });\n });\n var /** @type {?} */ allPlayers = [];\n var /** @type {?} */ erroneousTransitions = [];\n for (var /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n var /** @type {?} */ ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(function (entry) {\n var /** @type {?} */ player = entry.player;\n allPlayers.push(player);\n var /** @type {?} */ element = entry.element;\n if (!bodyNode || !_this.driver.containsElement(bodyNode, element)) {\n player.destroy();\n return;\n }\n var /** @type {?} */ instruction = ((_this._buildInstruction(entry, subTimelines)));\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // if a unmatched transition is queued to go then it SHOULD NOT render\n // an animation and cancel the previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(function () { return eraseStyles(element, instruction.fromStyles); });\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub trigger\n // then it will instruct the timeline builder to not add a player delay, but\n // instead stretch the first keyframe gap up until the animation starts. The\n // reason this is important is to prevent extra initialization styles from being\n // required by the user in the animation.\n instruction.timelines.forEach(function (tl) { return tl.stretchStartingKeyframe = true; });\n subTimelines.append(element, instruction.timelines);\n var /** @type {?} */ tuple = { instruction: instruction, player: player, element: element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(function (element) { return getOrSetAsInMap(queriedElements, element, []).push(player); });\n instruction.preStyleProps.forEach(function (stringMap, element) {\n var /** @type {?} */ props = Object.keys(stringMap);\n if (props.length) {\n var /** @type {?} */ setVal_1 = ((allPreStyleElements.get(element)));\n if (!setVal_1) {\n allPreStyleElements.set(element, setVal_1 = new Set());\n }\n props.forEach(function (prop) { return setVal_1.add(prop); });\n }\n });\n instruction.postStyleProps.forEach(function (stringMap, element) {\n var /** @type {?} */ props = Object.keys(stringMap);\n var /** @type {?} */ setVal = ((allPostStyleElements.get(element)));\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n props.forEach(function (prop) { return setVal.add(prop); });\n });\n });\n }\n if (erroneousTransitions.length) {\n var /** @type {?} */ msg_1 = \"Unable to process animations due to the following failed trigger transitions\\n\";\n erroneousTransitions.forEach(function (instruction) {\n msg_1 += \"@\" + instruction.triggerName + \" has failed due to:\\n\"; /** @type {?} */\n ((instruction.errors)).forEach(function (error) { msg_1 += \"- \" + error + \"\\n\"; });\n });\n allPlayers.forEach(function (player) { return player.destroy(); });\n throw new Error(msg_1);\n }\n // these can only be detected here since we have a map of all the elements\n // that have animations attached to them...\n var /** @type {?} */ enterNodesWithoutAnimations = [];\n for (var /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n var /** @type {?} */ element = allEnterNodes[i];\n if (!subTimelines.has(element)) {\n enterNodesWithoutAnimations.push(element);\n }\n }\n var /** @type {?} */ allPreviousPlayersMap = new Map();\n var /** @type {?} */ sortedParentElements = [];\n queuedInstructions.forEach(function (entry) {\n var /** @type {?} */ element = entry.element;\n if (subTimelines.has(element)) {\n sortedParentElements.unshift(element);\n _this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(function (player) {\n var /** @type {?} */ element = player.element;\n var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(function (prevPlayer) { getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer); });\n });\n allPreviousPlayersMap.forEach(function (players) { return players.forEach(function (player) { return player.destroy(); }); });\n // PRE STAGE: fill the ! styles\n var /** @type {?} */ preStylesMap = allPreStyleElements.size ?\n cloakAndComputeStyles(this.driver, enterNodesWithoutAnimations, allPreStyleElements, ɵPRE_STYLE) :\n new Map();\n // POST STAGE: fill the * styles\n var /** @type {?} */ postStylesMap = cloakAndComputeStyles(this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n var /** @type {?} */ rootPlayers = [];\n var /** @type {?} */ subPlayers = [];\n queuedInstructions.forEach(function (entry) {\n var element = entry.element, player = entry.player, instruction = entry.instruction;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n var /** @type {?} */ innerPlayer = _this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n var /** @type {?} */ parentHasPriority = null;\n for (var /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n var /** @type {?} */ parent = sortedParentElements[i];\n if (parent === element)\n break;\n if (_this.driver.containsElement(parent, element)) {\n parentHasPriority = parent;\n break;\n }\n }\n if (parentHasPriority) {\n var /** @type {?} */ parentPlayers = _this.playersByElement.get(parentHasPriority);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n else {\n rootPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n subPlayers.push(player);\n }\n });\n subPlayers.forEach(function (player) {\n var /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n var /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(function (player) {\n if (player.parentPlayer) {\n player.parentPlayer.onDestroy(function () { return player.destroy(); });\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (var /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n var /** @type {?} */ element = allLeaveNodes[i];\n var /** @type {?} */ details = (element[REMOVAL_FLAG]);\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n var /** @type {?} */ players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n var /** @type {?} */ queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push.apply(players, queriedPlayerResults);\n }\n var /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (var /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n var /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push.apply(players, queriedPlayers);\n }\n }\n }\n if (players.length) {\n removeNodesAfterAnimationDone(this, element, players);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(function (player) {\n _this.players.push(player);\n player.onDone(function () {\n player.destroy();\n var /** @type {?} */ index = _this.players.indexOf(player);\n _this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\n TransitionAnimationEngine.prototype.elementContainsData = function (namespaceId, element) {\n var /** @type {?} */ containsData = false;\n var /** @type {?} */ details = (element[REMOVAL_FLAG]);\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n };\n /**\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationEngine.prototype.afterFlush = function (callback) { this._flushFns.push(callback); };\n /**\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationEngine.prototype.afterFlushAnimationsDone = function (callback) { this._whenQuietFns.push(callback); };\n /**\n * @param {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\n TransitionAnimationEngine.prototype._getPreviousPlayers = function (element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n var /** @type {?} */ players = [];\n if (isQueriedElement) {\n var /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n var /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n var /** @type {?} */ isRemovalAnimation_1 = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(function (player) {\n if (player.queued)\n return;\n if (!isRemovalAnimation_1 && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(function (player) {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n };\n /**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\n TransitionAnimationEngine.prototype._beforeAnimationBuild = function (namespaceId, instruction, allPreviousPlayersMap) {\n var _this = this;\n // it's important to do this step before destroying the players\n // so that the onDone callback below won't fire before this\n eraseStyles(instruction.element, instruction.fromStyles);\n var /** @type {?} */ triggerName = instruction.triggerName;\n var /** @type {?} */ rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n var /** @type {?} */ targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n var /** @type {?} */ targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n instruction.timelines.map(function (timelineInstruction) {\n var /** @type {?} */ element = timelineInstruction.element;\n var /** @type {?} */ isQueriedElement = element !== rootElement;\n var /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n var /** @type {?} */ previousPlayers = _this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(function (player) {\n var /** @type {?} */ realPlayer = (player.getRealPlayer());\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n players.push(player);\n });\n });\n };\n /**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} preStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\n TransitionAnimationEngine.prototype._buildAnimation = function (namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n var _this = this;\n var /** @type {?} */ triggerName = instruction.triggerName;\n var /** @type {?} */ rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n var /** @type {?} */ allQueriedPlayers = [];\n var /** @type {?} */ allConsumedElements = new Set();\n var /** @type {?} */ allSubElements = new Set();\n var /** @type {?} */ allNewPlayers = instruction.timelines.map(function (timelineInstruction) {\n var /** @type {?} */ element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n var /** @type {?} */ details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer();\n var /** @type {?} */ isQueriedElement = element !== rootElement;\n var /** @type {?} */ previousPlayers = (allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(function (p) { return p.getRealPlayer(); });\n var /** @type {?} */ preStyles = preStylesMap.get(element);\n var /** @type {?} */ postStyles = postStylesMap.get(element);\n var /** @type {?} */ keyframes = normalizeKeyframes(_this.driver, _this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n var /** @type {?} */ player = _this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n var /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(function (player) {\n getOrSetAsInMap(_this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(function () { return deleteOrUnsetInMap(_this.playersByQueriedElement, player.element, player); });\n });\n allConsumedElements.forEach(function (element) { return addClass(element, NG_ANIMATING_CLASSNAME); });\n var /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(function () {\n allConsumedElements.forEach(function (element) { return removeClass(element, NG_ANIMATING_CLASSNAME); });\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(function (element) { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n return player;\n };\n /**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlayers\n * @return {?}\n */\n TransitionAnimationEngine.prototype._buildPlayer = function (instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer();\n };\n return TransitionAnimationEngine;\n}());\nvar TransitionAnimationPlayer = (function () {\n /**\n * @param {?} namespaceId\n * @param {?} triggerName\n * @param {?} element\n */\n function TransitionAnimationPlayer(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = {};\n this._destroyed = false;\n this.markedForDestroy = false;\n }\n Object.defineProperty(TransitionAnimationPlayer.prototype, \"queued\", {\n /**\n * @return {?}\n */\n get: function () { return this._containsRealPlayer == false; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TransitionAnimationPlayer.prototype, \"destroyed\", {\n /**\n * @return {?}\n */\n get: function () { return this._destroyed; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} player\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.setRealPlayer = function (player) {\n var _this = this;\n if (this._containsRealPlayer)\n return;\n this._player = player;\n Object.keys(this._queuedCallbacks).forEach(function (phase) {\n _this._queuedCallbacks[phase].forEach(function (callback) { return listenOnPlayer(player, phase, undefined, callback); });\n });\n this._queuedCallbacks = {};\n this._containsRealPlayer = true;\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.getRealPlayer = function () { return this._player; };\n /**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\n TransitionAnimationPlayer.prototype._queueEvent = function (name, callback) {\n getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.onDone = function (fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.onStart = function (fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.onDestroy = function (fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.init = function () { this._player.init(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.hasStarted = function () { return this.queued ? false : this._player.hasStarted(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.play = function () { !this.queued && this._player.play(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.pause = function () { !this.queued && this._player.pause(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.restart = function () { !this.queued && this._player.restart(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.finish = function () { this._player.finish(); };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.destroy = function () {\n this._destroyed = true;\n this._player.destroy();\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.reset = function () { !this.queued && this._player.reset(); };\n /**\n * @param {?} p\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.setPosition = function (p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n };\n /**\n * @return {?}\n */\n TransitionAnimationPlayer.prototype.getPosition = function () { return this.queued ? 0 : this._player.getPosition(); };\n Object.defineProperty(TransitionAnimationPlayer.prototype, \"totalTime\", {\n /**\n * @return {?}\n */\n get: function () { return this._player.totalTime; },\n enumerable: true,\n configurable: true\n });\n return TransitionAnimationPlayer;\n}());\n/**\n * @param {?} map\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\nfunction deleteOrUnsetInMap(map, key, value) {\n var /** @type {?} */ currentValues;\n if (map instanceof Map) {\n currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n var /** @type {?} */ index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n }\n else {\n currentValues = map[key];\n if (currentValues) {\n if (currentValues.length) {\n var /** @type {?} */ index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n delete map[key];\n }\n }\n }\n return currentValues;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction normalizeTriggerValue(value) {\n switch (typeof value) {\n case 'boolean':\n return value ? '1' : '0';\n default:\n return value != null ? value.toString() : null;\n }\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\n/**\n * @param {?} eventName\n * @return {?}\n */\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\n/**\n * @param {?} element\n * @param {?=} value\n * @return {?}\n */\nfunction cloakElement(element, value) {\n var /** @type {?} */ oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\n/**\n * @param {?} driver\n * @param {?} elements\n * @param {?} elementPropsMap\n * @param {?} defaultStyle\n * @return {?}\n */\nfunction cloakAndComputeStyles(driver, elements, elementPropsMap, defaultStyle) {\n var /** @type {?} */ cloakVals = elements.map(function (element) { return cloakElement(element); });\n var /** @type {?} */ valuesMap = new Map();\n elementPropsMap.forEach(function (props, element) {\n var /** @type {?} */ styles = {};\n props.forEach(function (prop) {\n var /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n }\n });\n valuesMap.set(element, styles);\n });\n elements.forEach(function (element, i) { return cloakElement(element, cloakVals[i]); });\n return valuesMap;\n}\n/**\n * @param {?} nodes\n * @return {?}\n */\nfunction createIsRootFilterFn(nodes) {\n var /** @type {?} */ nodeSet = new Set(nodes);\n var /** @type {?} */ knownRootContainer = new Set();\n var /** @type {?} */ isRoot;\n isRoot = function (node) {\n if (!node)\n return true;\n if (nodeSet.has(node.parentNode))\n return false;\n if (knownRootContainer.has(node.parentNode))\n return true;\n if (isRoot(node.parentNode)) {\n knownRootContainer.add(node);\n return true;\n }\n return false;\n };\n return isRoot;\n}\nvar CLASSES_CACHE_KEY = '$$classes';\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction containsClass(element, className) {\n if (element.classList) {\n return element.classList.contains(className);\n }\n else {\n var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n return classes && classes[className];\n }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction addClass(element, className) {\n if (element.classList) {\n element.classList.add(className);\n }\n else {\n var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n if (!classes) {\n classes = element[CLASSES_CACHE_KEY] = {};\n }\n classes[className] = true;\n }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n }\n else {\n var /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n if (classes) {\n delete classes[className];\n }\n }\n}\n/**\n * @return {?}\n */\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\n/**\n * @param {?} engine\n * @param {?} element\n * @param {?} players\n * @return {?}\n */\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(function () { return engine.processLeaveNode(element); });\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 */\nvar AnimationEngine = (function () {\n /**\n * @param {?} driver\n * @param {?} normalizer\n */\n function AnimationEngine(driver, normalizer) {\n var _this = this;\n this._triggerCache = {};\n this.onRemovalComplete = function (element, context) { };\n this._transitionEngine = new TransitionAnimationEngine(driver, normalizer);\n this._timelineEngine = new TimelineAnimationEngine(driver, normalizer);\n this._transitionEngine.onRemovalComplete =\n function (element, context) { _this.onRemovalComplete(element, context); };\n }\n /**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\n AnimationEngine.prototype.registerTrigger = function (componentId, namespaceId, hostElement, name, metadata) {\n var /** @type {?} */ cacheKey = componentId + '-' + name;\n var /** @type {?} */ trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n var /** @type {?} */ errors = [];\n var /** @type {?} */ ast = (buildAnimationAst(/** @type {?} */ (metadata), errors));\n if (errors.length) {\n throw new Error(\"The animation trigger \\\"\" + name + \"\\\" has failed to build due to the following errors:\\n - \" + errors.join(\"\\n - \"));\n }\n trigger = buildTrigger(name, ast);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n };\n /**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\n AnimationEngine.prototype.register = function (namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n };\n /**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\n AnimationEngine.prototype.destroy = function (namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\n AnimationEngine.prototype.onInsert = function (namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n AnimationEngine.prototype.onRemove = function (namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\n AnimationEngine.prototype.setProperty = function (namespaceId, element, property, value) {\n // @@property\n if (property.charAt(0) == '@') {\n var _a = parseTimelineCommand(property), id = _a[0], action = _a[1];\n var /** @type {?} */ args = (value);\n this._timelineEngine.command(id, element, action, args);\n return false;\n }\n return this._transitionEngine.trigger(namespaceId, element, property, value);\n };\n /**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n * @param {?} callback\n * @return {?}\n */\n AnimationEngine.prototype.listen = function (namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n var _a = parseTimelineCommand(eventName), id = _a[0], action = _a[1];\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n };\n /**\n * @param {?=} microtaskId\n * @return {?}\n */\n AnimationEngine.prototype.flush = function (microtaskId) {\n if (microtaskId === void 0) { microtaskId = -1; }\n this._transitionEngine.flush(microtaskId);\n };\n Object.defineProperty(AnimationEngine.prototype, \"players\", {\n /**\n * @return {?}\n */\n get: function () {\n return ((this._transitionEngine.players))\n .concat(/** @type {?} */ (this._timelineEngine.players));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n AnimationEngine.prototype.whenRenderingDone = function () { return this._transitionEngine.whenRenderingDone(); };\n return AnimationEngine;\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 */\nvar WebAnimationsPlayer = (function () {\n /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @param {?=} previousPlayers\n */\n function WebAnimationsPlayer(element, keyframes, options, previousPlayers) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n var _this = this;\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this.previousPlayers = previousPlayers;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this.time = 0;\n this.parentPlayer = null;\n this.previousStyles = {};\n this.currentSnapshot = {};\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) {\n previousPlayers.forEach(function (player) {\n var styles = player.currentSnapshot;\n Object.keys(styles).forEach(function (prop) { return _this.previousStyles[prop] = styles[prop]; });\n });\n }\n }\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._onFinish = function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.init = function () {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._buildPlayer = function () {\n var _this = this;\n if (this._initialized)\n return;\n this._initialized = true;\n var /** @type {?} */ keyframes = this.keyframes.map(function (styles) { return copyStyles(styles, false); });\n var /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n if (previousStyleProps.length) {\n var /** @type {?} */ startingKeyframe_1 = keyframes[0];\n var /** @type {?} */ missingStyleProps_1 = [];\n previousStyleProps.forEach(function (prop) {\n if (!startingKeyframe_1.hasOwnProperty(prop)) {\n missingStyleProps_1.push(prop);\n }\n startingKeyframe_1[prop] = _this.previousStyles[prop];\n });\n if (missingStyleProps_1.length) {\n var /** @type {?} */ self_1 = this;\n var _loop_1 = function () {\n var /** @type {?} */ kf = keyframes[i];\n missingStyleProps_1.forEach(function (prop) {\n kf[prop] = _computeStyle(self_1.element, prop);\n });\n };\n // tslint:disable-next-line\n for (var /** @type {?} */ i = 1; i < keyframes.length; i++) {\n _loop_1();\n }\n }\n }\n this._player = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n this._player.addEventListener('finish', function () { return _this._onFinish(); });\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._preparePlayerBeforeStart = function () {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this._player.pause();\n }\n };\n /**\n * \\@internal\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @return {?}\n */\n WebAnimationsPlayer.prototype._triggerWebAnimation = function (element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return (element['animate'](keyframes, options));\n };\n Object.defineProperty(WebAnimationsPlayer.prototype, \"domPlayer\", {\n /**\n * @return {?}\n */\n get: function () { return this._player; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} fn\n * @return {?}\n */\n WebAnimationsPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n WebAnimationsPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n /**\n * @param {?} fn\n * @return {?}\n */\n WebAnimationsPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.play = function () {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n this._started = true;\n }\n this._player.play();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.pause = function () {\n this.init();\n this._player.pause();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.finish = function () {\n this.init();\n this._onFinish();\n this._player.finish();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.reset = function () {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype._resetDomPlayerState = function () {\n if (this._player) {\n this._player.cancel();\n }\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.restart = function () {\n this.reset();\n this.play();\n };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.hasStarted = function () { return this._started; };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.destroy = function () {\n if (!this._destroyed) {\n this._resetDomPlayerState();\n this._onFinish();\n this._destroyed = true;\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n /**\n * @param {?} p\n * @return {?}\n */\n WebAnimationsPlayer.prototype.setPosition = function (p) { this._player.currentTime = p * this.time; };\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.getPosition = function () { return this._player.currentTime / this.time; };\n Object.defineProperty(WebAnimationsPlayer.prototype, \"totalTime\", {\n /**\n * @return {?}\n */\n get: function () { return this._delay + this._duration; },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n WebAnimationsPlayer.prototype.beforeDestroy = function () {\n var _this = this;\n var /** @type {?} */ styles = {};\n if (this.hasStarted()) {\n Object.keys(this._finalKeyframe).forEach(function (prop) {\n if (prop != 'offset') {\n styles[prop] =\n _this._finished ? _this._finalKeyframe[prop] : _computeStyle(_this.element, prop);\n }\n });\n }\n this.currentSnapshot = styles;\n };\n return WebAnimationsPlayer;\n}());\n/**\n * @param {?} element\n * @param {?} prop\n * @return {?}\n */\nfunction _computeStyle(element, prop) {\n return ((window.getComputedStyle(element)))[prop];\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 */\nvar WebAnimationsDriver = (function () {\n function WebAnimationsDriver() {\n }\n /**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\n WebAnimationsDriver.prototype.matchesElement = function (element, selector) {\n return matchesElement(element, selector);\n };\n /**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\n WebAnimationsDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };\n /**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\n WebAnimationsDriver.prototype.query = function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n /**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\n WebAnimationsDriver.prototype.computeStyle = function (element, prop, defaultValue) {\n return (((window.getComputedStyle(element)))[prop]);\n };\n /**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\n WebAnimationsDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n var /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards';\n var /** @type {?} */ playerOptions = { duration: duration, delay: delay, fill: fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n var /** @type {?} */ previousWebAnimationPlayers = (previousPlayers.filter(function (player) { return player instanceof WebAnimationsPlayer; }));\n return new WebAnimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers);\n };\n return WebAnimationsDriver;\n}());\n/**\n * @return {?}\n */\nfunction supportsWebAnimations() {\n return typeof Element !== 'undefined' && typeof ((Element)).prototype['animate'] === 'function';\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 */\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 */\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\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 */\n/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\n/**\n * Generated bundle index. Do not edit.\n */\nexport { AnimationDriver, Animation as ɵAnimation, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, AnimationEngine as ɵAnimationEngine, WebAnimationsDriver as ɵWebAnimationsDriver, supportsWebAnimations as ɵsupportsWebAnimations, WebAnimationsPlayer as ɵWebAnimationsPlayer };\n//# sourceMappingURL=browser.es5.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/animations/@angular/animations/browser.es5.js\n// module id = 594\n// module chunks = 1","import { NgModule, Injector } from '@angular/core';\nimport { StoreModule, State, INITIAL_STATE, INITIAL_REDUCER, Dispatcher, Reducer } from '@ngrx/store';\nimport { StoreDevtools, DevtoolsDispatcher } from './devtools';\nimport { STORE_DEVTOOLS_CONFIG, INITIAL_OPTIONS } from './config';\nimport { DevtoolsExtension, REDUX_DEVTOOLS_EXTENSION } from './extension';\nexport function _createReduxDevtoolsExtension() {\n var legacyExtensionKey = 'devToolsExtension';\n var extensionKey = '__REDUX_DEVTOOLS_EXTENSION__';\n if (typeof window === 'object' && typeof window[legacyExtensionKey] !== 'undefined') {\n return window[legacyExtensionKey];\n }\n else if (typeof window === 'object' && typeof window[extensionKey] !== 'undefined') {\n return window[extensionKey];\n }\n else {\n return null;\n }\n}\nexport function _createState(devtools) {\n return devtools.state;\n}\nexport function _createReducer(dispatcher, reducer) {\n return new Reducer(dispatcher, reducer);\n}\nexport function _createStateIfExtension(extension, injector, initialState) {\n if (!!extension) {\n var devtools = injector.get(StoreDevtools);\n return _createState(devtools);\n }\n else {\n var dispatcher = injector.get(Dispatcher);\n var reducer = injector.get(Reducer);\n return new State(initialState, dispatcher, reducer);\n }\n}\nexport function _createReducerIfExtension(extension, injector, reducer) {\n if (!!extension) {\n var devtoolsDispatcher = injector.get(DevtoolsDispatcher);\n return _createReducer(devtoolsDispatcher, reducer);\n }\n else {\n var dispatcher = injector.get(Dispatcher);\n return new Reducer(dispatcher, reducer);\n }\n}\nexport function noMonitor() {\n return null;\n}\nexport function _createOptions(_options) {\n var DEFAULT_OPTIONS = { monitor: noMonitor };\n var options = typeof _options === 'function' ? _options() : _options;\n options = Object.assign({}, DEFAULT_OPTIONS, options);\n if (options.maxAge && options.maxAge < 2) {\n throw new Error(\"Devtools 'maxAge' cannot be less than 2, got \" + options.maxAge);\n }\n return options;\n}\nvar StoreDevtoolsModule = (function () {\n function StoreDevtoolsModule() {\n }\n StoreDevtoolsModule.instrumentStore = function (_options) {\n if (_options === void 0) { _options = {}; }\n return {\n ngModule: StoreDevtoolsModule,\n providers: [\n {\n provide: State,\n deps: [StoreDevtools],\n useFactory: _createState\n },\n {\n provide: INITIAL_OPTIONS,\n useValue: _options\n },\n {\n provide: Reducer,\n deps: [DevtoolsDispatcher, INITIAL_REDUCER],\n useFactory: _createReducer\n },\n {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: _createOptions\n }\n ]\n };\n };\n StoreDevtoolsModule.instrumentOnlyWithExtension = function (_options) {\n if (_options === void 0) { _options = {}; }\n return {\n ngModule: StoreDevtoolsModule,\n providers: [\n {\n provide: State,\n deps: [REDUX_DEVTOOLS_EXTENSION, Injector, INITIAL_STATE],\n useFactory: _createStateIfExtension\n },\n {\n provide: Reducer,\n deps: [REDUX_DEVTOOLS_EXTENSION, Injector, INITIAL_REDUCER],\n useFactory: _createReducerIfExtension\n },\n {\n provide: INITIAL_OPTIONS,\n useValue: _options\n },\n {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: _createOptions\n }\n ]\n };\n };\n return StoreDevtoolsModule;\n}());\nexport { StoreDevtoolsModule };\nStoreDevtoolsModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n StoreModule\n ],\n providers: [\n DevtoolsExtension,\n DevtoolsDispatcher,\n StoreDevtools,\n {\n provide: REDUX_DEVTOOLS_EXTENSION,\n useFactory: _createReduxDevtoolsExtension\n }\n ]\n },] },\n];\n/** @nocollapse */\nStoreDevtoolsModule.ctorParameters = function () { return []; };\n//# sourceMappingURL=instrument.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/instrument.js\n// module id = 595\n// module chunks = 1","import { Dispatcher, Reducer } from '@ngrx/store';\nimport { difference, liftAction } from './utils';\nimport { ActionTypes } from './actions';\nexport var INIT_ACTION = { type: Dispatcher.INIT };\n/**\n* Computes the next entry in the log by applying an action.\n*/\nfunction computeNextEntry(reducer, action, state, error) {\n if (error) {\n return {\n state: state,\n error: 'Interrupted by an error up the chain'\n };\n }\n var nextState = state;\n var nextError;\n try {\n nextState = reducer(state, action);\n }\n catch (err) {\n nextError = err.toString();\n console.error(err.stack || err);\n }\n return {\n state: nextState,\n error: nextError\n };\n}\n/**\n* Runs the reducer on invalidated actions to get a fresh computation log.\n*/\nfunction recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds) {\n // Optimization: exit early and return the same reference\n // if we know nothing could have changed.\n if (minInvalidatedStateIndex >= computedStates.length &&\n computedStates.length === stagedActionIds.length) {\n return computedStates;\n }\n var nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex);\n for (var i = minInvalidatedStateIndex; i < stagedActionIds.length; i++) {\n var actionId = stagedActionIds[i];\n var action = actionsById[actionId].action;\n var previousEntry = nextComputedStates[i - 1];\n var previousState = previousEntry ? previousEntry.state : committedState;\n var previousError = previousEntry ? previousEntry.error : undefined;\n var shouldSkip = skippedActionIds.indexOf(actionId) > -1;\n var entry = shouldSkip ?\n previousEntry :\n computeNextEntry(reducer, action, previousState, previousError);\n nextComputedStates.push(entry);\n }\n return nextComputedStates;\n}\nexport function liftInitialState(initialCommittedState, monitorReducer) {\n return {\n monitorState: monitorReducer(undefined, {}),\n nextActionId: 1,\n actionsById: { 0: liftAction(INIT_ACTION) },\n stagedActionIds: [0],\n skippedActionIds: [],\n committedState: initialCommittedState,\n currentStateIndex: 0,\n computedStates: []\n };\n}\n/**\n* Creates a history state reducer from an app's reducer.\n*/\nexport function liftReducerWith(initialCommittedState, initialLiftedState, monitorReducer, options) {\n if (options === void 0) { options = {}; }\n /**\n * Manages how the history actions modify the history state.\n */\n return function (reducer) { return function (liftedState, liftedAction) {\n var _a = liftedState || initialLiftedState, monitorState = _a.monitorState, actionsById = _a.actionsById, nextActionId = _a.nextActionId, stagedActionIds = _a.stagedActionIds, skippedActionIds = _a.skippedActionIds, committedState = _a.committedState, currentStateIndex = _a.currentStateIndex, computedStates = _a.computedStates;\n if (!liftedState) {\n // Prevent mutating initialLiftedState\n actionsById = Object.create(actionsById);\n }\n function commitExcessActions(n) {\n // Auto-commits n-number of excess actions.\n var excess = n;\n var idsToDelete = stagedActionIds.slice(1, excess + 1);\n for (var i = 0; i < idsToDelete.length; i++) {\n if (computedStates[i + 1].error) {\n // Stop if error is found. Commit actions up to error.\n excess = i;\n idsToDelete = stagedActionIds.slice(1, excess + 1);\n break;\n }\n else {\n delete actionsById[idsToDelete[i]];\n }\n }\n skippedActionIds = skippedActionIds.filter(function (id) { return idsToDelete.indexOf(id) === -1; });\n stagedActionIds = [0].concat(stagedActionIds.slice(excess + 1));\n committedState = computedStates[excess].state;\n computedStates = computedStates.slice(excess);\n currentStateIndex = currentStateIndex > excess\n ? currentStateIndex - excess\n : 0;\n }\n // By default, agressively recompute every state whatever happens.\n // This has O(n) performance, so we'll override this to a sensible\n // value whenever we feel like we don't have to recompute the states.\n var minInvalidatedStateIndex = 0;\n switch (liftedAction.type) {\n case ActionTypes.RESET: {\n // Get back to the state the store was created with.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = initialCommittedState;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case ActionTypes.COMMIT: {\n // Consider the last committed state the new starting point.\n // Squash any staged actions into a single committed state.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = computedStates[currentStateIndex].state;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case ActionTypes.ROLLBACK: {\n // Forget about any staged actions.\n // Start again from the last committed state.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case ActionTypes.TOGGLE_ACTION: {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n var actionId_1 = liftedAction.id;\n var index = skippedActionIds.indexOf(actionId_1);\n if (index === -1) {\n skippedActionIds = [actionId_1].concat(skippedActionIds);\n }\n else {\n skippedActionIds = skippedActionIds.filter(function (id) { return id !== actionId_1; });\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(actionId_1);\n break;\n }\n case ActionTypes.SET_ACTIONS_ACTIVE: {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n var start = liftedAction.start, end = liftedAction.end, active = liftedAction.active;\n var actionIds = [];\n for (var i = start; i < end; i++)\n actionIds.push(i);\n if (active) {\n skippedActionIds = difference(skippedActionIds, actionIds);\n }\n else {\n skippedActionIds = skippedActionIds.concat(actionIds);\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(start);\n break;\n }\n case ActionTypes.JUMP_TO_STATE: {\n // Without recomputing anything, move the pointer that tell us\n // which state is considered the current one. Useful for sliders.\n currentStateIndex = liftedAction.index;\n // Optimization: we know the history has not changed.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case ActionTypes.SWEEP: {\n // Forget any actions that are currently being skipped.\n stagedActionIds = difference(stagedActionIds, skippedActionIds);\n skippedActionIds = [];\n currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1);\n break;\n }\n case ActionTypes.PERFORM_ACTION: {\n // Auto-commit as new actions come in.\n if (options.maxAge && stagedActionIds.length === options.maxAge) {\n commitExcessActions(1);\n }\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n var actionId = nextActionId++;\n // Mutation! This is the hottest path, and we optimize on purpose.\n // It is safe because we set a new key in a cache dictionary.\n actionsById[actionId] = liftedAction;\n stagedActionIds = stagedActionIds.concat([actionId]);\n // Optimization: we know that only the new action needs computing.\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n break;\n }\n case ActionTypes.IMPORT_STATE: {\n // Completely replace everything.\n (_b = liftedAction.nextLiftedState, monitorState = _b.monitorState, actionsById = _b.actionsById, nextActionId = _b.nextActionId, stagedActionIds = _b.stagedActionIds, skippedActionIds = _b.skippedActionIds, committedState = _b.committedState, currentStateIndex = _b.currentStateIndex, computedStates = _b.computedStates);\n break;\n }\n case Reducer.REPLACE:\n case Dispatcher.INIT: {\n // Always recompute states on hot reload and init.\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n default: {\n // If the action is not recognized, it's a monitor action.\n // Optimization: a monitor action can't change history.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n }\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds);\n monitorState = monitorReducer(monitorState, liftedAction);\n return {\n monitorState: monitorState,\n actionsById: actionsById,\n nextActionId: nextActionId,\n stagedActionIds: stagedActionIds,\n skippedActionIds: skippedActionIds,\n committedState: committedState,\n currentStateIndex: currentStateIndex,\n computedStates: computedStates\n };\n var _b;\n }; };\n}\n//# sourceMappingURL=reducer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-devtools/src/reducer.js\n// module id = 596\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DockMonitorModule } from './src/dock-monitor/index';\nimport { LogMonitorModule } from './src/log-monitor/index';\nimport { StoreLogMonitorComponent } from './src/store-log-monitor';\nexport var StoreLogMonitorModule = (function () {\n function StoreLogMonitorModule() {\n }\n StoreLogMonitorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n DockMonitorModule,\n LogMonitorModule\n ],\n declarations: [\n StoreLogMonitorComponent\n ],\n exports: [\n StoreLogMonitorComponent\n ]\n },] },\n ];\n /** @nocollapse */\n StoreLogMonitorModule.ctorParameters = [];\n return StoreLogMonitorModule;\n}());\nexport { useDockMonitor as useLogMonitor } from './src/dock-monitor/index';\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/index.js\n// module id = 597\n// module chunks = 1","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { filter } from 'rxjs/operator/filter';\nimport { map } from 'rxjs/operator/map';\nimport { KEYCODES } from './keycodes';\nexport var CommanderComponent = (function () {\n function CommanderComponent() {\n var _this = this;\n this.keydown$ = new EventEmitter();\n this._ignoreTags = ['INPUT', 'SELECT', 'TEXTAREA'];\n this.keydown$ = new EventEmitter();\n var filtered$ = filter.call(this.keydown$, function (e) {\n if (_this._ignoreTags.indexOf(e.target.tagName) !== -1) {\n return false;\n }\n if (e.target.isContentEditable) {\n return false;\n }\n var command = _this.parseCommand(_this.shortcut);\n if (!command) {\n return false;\n }\n var charCode = e.keyCode || e.which;\n var char = String.fromCharCode(charCode);\n return command.name.toUpperCase() === char.toUpperCase() &&\n command.alt === e.altKey &&\n command.ctrl === e.ctrlKey &&\n command.meta === e.metaKey &&\n command.shift === e.shiftKey;\n });\n this.command = map.call(filtered$, function (e) {\n e.preventDefault();\n return { command: _this.shortcut };\n });\n }\n CommanderComponent.prototype.parseCommand = function (s) {\n var keyString = s.trim().toLowerCase();\n if (!/^(ctrl-|shift-|alt-|meta-){0,4}\\w+$/.test(keyString)) {\n throw new Error('The string to parse needs to be of the format \"c\", \"ctrl-c\", \"shift-ctrl-c\".');\n }\n var parts = keyString.split('-');\n var key = {\n ctrl: false,\n meta: false,\n shift: false,\n alt: false\n };\n var c;\n key.name = parts.pop();\n while ((c = parts.pop())) {\n key[c] = true;\n }\n if (key.ctrl) {\n key.sequence = KEYCODES.ctrl[key.name] || key.name;\n }\n else {\n key.sequence = KEYCODES.nomod[key.name] || key.name;\n }\n if (key.shift && key.sequence && key.sequence.length === 1) {\n key.sequence = key.sequence.toUpperCase();\n }\n return key;\n };\n CommanderComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-commander',\n template: '',\n styles: [':host{ display: none }'],\n host: {\n '(document:keydown)': 'keydown$.emit($event)'\n }\n },] },\n ];\n /** @nocollapse */\n CommanderComponent.ctorParameters = [];\n CommanderComponent.propDecorators = {\n 'shortcut': [{ type: Input },],\n 'command': [{ type: Output },],\n };\n return CommanderComponent;\n}());\n//# sourceMappingURL=commander.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/commander.js\n// module id = 598\n// module chunks = 1","// Most of these are according to this table: http://www.ssicom.org/js/x171166.htm\n// However where nodejs readline diverges, they are adjusted to conform to it\nexport var KEYCODES = {\n nomod: {\n escape: '\\u001b',\n space: ' ' // actually '\\u0020'\n },\n ctrl: {\n ' ': '\\u0000',\n 'a': '\\u0001',\n 'b': '\\u0002',\n 'c': '\\u0003',\n 'd': '\\u0004',\n 'e': '\\u0005',\n 'f': '\\u0006',\n 'g': '\\u0007',\n 'h': '\\u0008',\n 'i': '\\u0009',\n 'j': '\\u000a',\n 'k': '\\u000b',\n 'm': '\\u000c',\n 'n': '\\u000d',\n 'l': '\\u000e',\n 'o': '\\u000f',\n 'p': '\\u0010',\n 'q': '\\u0011',\n 'r': '\\u0012',\n 's': '\\u0013',\n 't': '\\u0014',\n 'u': '\\u0015',\n 'v': '\\u0016',\n 'w': '\\u0017',\n 'x': '\\u0018',\n 'y': '\\u0019',\n 'z': '\\u001a',\n '[': '\\u001b',\n '\\\\': '\\u001c',\n ']': '\\u001d',\n '^': '\\u001e',\n '_': '\\u001f',\n 'space': '\\u0000'\n }\n};\n//# sourceMappingURL=keycodes.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/keycodes.js\n// module id = 599\n// module chunks = 1","import { Component, HostBinding, Input } from '@angular/core';\nexport var DockComponent = (function () {\n function DockComponent() {\n this.position = 'right';\n this.size = 0.3;\n this.visible = true;\n }\n Object.defineProperty(DockComponent.prototype, \"absoluteSize\", {\n get: function () {\n return 100 * this.size + \"%\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"restSize\", {\n get: function () {\n return (100 - (100 * this.size)) + \"%\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"leftPosition\", {\n get: function () {\n return this.calculatePosition('left', 'right');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"rightPosition\", {\n get: function () {\n return this.calculatePosition('right', 'left');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"topPosition\", {\n get: function () {\n return this.calculatePosition('top', 'bottom');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DockComponent.prototype, \"bottomPosition\", {\n get: function () {\n return this.calculatePosition('bottom', 'top');\n },\n enumerable: true,\n configurable: true\n });\n DockComponent.prototype.calculatePosition = function (primary, secondary) {\n if (this.visible) {\n switch (this.position) {\n case secondary:\n return this.restSize;\n default:\n return '0%';\n }\n }\n else {\n switch (this.position) {\n case primary:\n return \"-\" + this.absoluteSize;\n case secondary:\n return '100%';\n default:\n return '0%';\n }\n }\n };\n DockComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-dock',\n template: \"\\n
\\n
\\n \\n
\\n
\\n \",\n styles: [\"\\n :host {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n transition: all 0.3s;\\n z-index: 9999;\\n }\\n\\n .dock {\\n position: absolute;\\n z-index: 1;\\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\\n background-color: white;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n }\\n\\n .dock-content {\\n width: 100%;\\n height: 100%;\\n overflow: auto;\\n }\\n \"]\n },] },\n ];\n /** @nocollapse */\n DockComponent.ctorParameters = [];\n DockComponent.propDecorators = {\n 'position': [{ type: Input },],\n 'size': [{ type: Input },],\n 'visible': [{ type: Input },],\n 'leftPosition': [{ type: HostBinding, args: ['style.left',] },],\n 'rightPosition': [{ type: HostBinding, args: ['style.right',] },],\n 'topPosition': [{ type: HostBinding, args: ['style.top',] },],\n 'bottomPosition': [{ type: HostBinding, args: ['style.bottom',] },],\n };\n return DockComponent;\n}());\n//# sourceMappingURL=dock.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/dock.js\n// module id = 600\n// module chunks = 1","import { Component, ChangeDetectionStrategy, Input, EventEmitter } from '@angular/core';\nimport { select } from '@ngrx/core/operator/select';\nimport { StoreDevtools } from '@ngrx/store-devtools';\nimport { merge } from 'rxjs/observable/merge';\nimport { map } from 'rxjs/operator/map';\nimport { DockActions } from './actions';\nexport var DockMonitorComponent = (function () {\n function DockMonitorComponent(tools, actions) {\n this.state$ = select.call(tools.liftedState, function (s) { return s.monitorState; });\n this.visible$ = select.call(this.state$, function (s) { return s.visible; });\n this.position$ = select.call(this.state$, function (s) { return s.position; });\n this.size$ = select.call(this.state$, function (s) { return s.size; });\n this.toggle$ = new EventEmitter();\n this.changePosition$ = new EventEmitter();\n this.actionsSubscription = merge(map.call(this.toggle$, function () { return actions.toggleVisibility(); }), map.call(this.changePosition$, function () { return actions.changePosition(); })).subscribe(tools);\n }\n DockMonitorComponent.prototype.ngOnDestroy = function () {\n this.actionsSubscription.unsubscribe();\n };\n DockMonitorComponent.decorators = [\n { type: Component, args: [{\n selector: 'dock-monitor',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n \\n\\n \\n \\n \\n \"\n },] },\n ];\n /** @nocollapse */\n DockMonitorComponent.ctorParameters = [\n { type: StoreDevtools, },\n { type: DockActions, },\n ];\n DockMonitorComponent.propDecorators = {\n 'toggleCommand': [{ type: Input },],\n 'positionCommand': [{ type: Input },],\n };\n return DockMonitorComponent;\n}());\n//# sourceMappingURL=dock-monitor.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/dock-monitor.js\n// module id = 601\n// module chunks = 1","import { combineReducers } from '@ngrx/store';\nimport { DockActions } from './actions';\nexport var POSITIONS = ['left', 'top', 'right', 'bottom'];\nexport function useDockMonitor(_options) {\n if (_options === void 0) { _options = {}; }\n var options = Object.assign({\n position: 'right',\n visible: true,\n size: 0.3\n }, _options);\n function position(state, action) {\n if (state === void 0) { state = options.position; }\n return (action.type === DockActions.CHANGE_POSITION) ?\n POSITIONS[(POSITIONS.indexOf(state) + 1) % POSITIONS.length] :\n state;\n }\n function size(state, action) {\n if (state === void 0) { state = options.size; }\n return (action.type === DockActions.CHANGE_SIZE) ?\n action.size :\n state;\n }\n function visible(state, action) {\n if (state === void 0) { state = options.visible; }\n return (action.type === DockActions.TOGGLE_VISIBILITY) ?\n !state :\n state;\n }\n return combineReducers({\n position: position,\n visible: visible,\n size: size\n });\n}\n//# sourceMappingURL=reducer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/dock-monitor/reducer.js\n// module id = 602\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonTreeModule } from '../json-tree/index';\nimport { LogMonitorComponent } from './log-monitor';\nimport { LogMonitorButtonComponent } from './log-monitor-button';\nimport { LogMonitorEntryComponent } from './log-monitor-entry';\nexport var LogMonitorModule = (function () {\n function LogMonitorModule() {\n }\n LogMonitorModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n JsonTreeModule\n ],\n declarations: [\n LogMonitorComponent,\n LogMonitorButtonComponent,\n LogMonitorEntryComponent\n ],\n exports: [\n LogMonitorComponent\n ]\n },] },\n ];\n /** @nocollapse */\n LogMonitorModule.ctorParameters = [];\n return LogMonitorModule;\n}());\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/log-monitor/index.js\n// module id = 603\n// module chunks = 1","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonNodeComponent } from './json-node';\nimport { JsonTreeComponent } from './json-tree';\nexport var JsonTreeModule = (function () {\n function JsonTreeModule() {\n }\n JsonTreeModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n JsonNodeComponent,\n JsonTreeComponent\n ],\n exports: [\n JsonTreeComponent\n ]\n },] },\n ];\n /** @nocollapse */\n JsonTreeModule.ctorParameters = [];\n return JsonTreeModule;\n}());\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/json-tree/index.js\n// module id = 604\n// module chunks = 1","import { Component, Input } from '@angular/core';\nimport * as types from './types';\nexport var JsonNodeComponent = (function () {\n function JsonNodeComponent() {\n this.expanded = false;\n }\n Object.defineProperty(JsonNodeComponent.prototype, \"value\", {\n set: function (value) {\n this.label = types.getLabelFor(value);\n this.type = types.getTypeOf(value);\n if (this.type === types.KNOWN.Array || this.type === types.KNOWN.Object || this.type === types.KNOWN.Iterable) {\n this.children = types.getChildrenFor(value);\n }\n else {\n this.children = null;\n }\n },\n enumerable: true,\n configurable: true\n });\n JsonNodeComponent.prototype.toggle = function () {\n if (this.children) {\n this.expanded = !this.expanded;\n }\n };\n JsonNodeComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-json-node',\n styles: [\"\\n :host {\\n display: block;\\n padding: 2px 2px 2px 20px;\\n position: relative;\\n color: #70AFCD;\\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\\n }\\n .expanded-indicator {\\n position: absolute;\\n top: 7px;\\n left: 5px;\\n font-size: 10px;\\n transition: transform 200ms;\\n }\\n\\n .expanded .expanded-indicator {\\n transform: rotate(90deg);\\n }\\n\\n .node-key::after {\\n content: ': ';\\n display: inline;\\n }\\n\\n .expanded .node-label {\\n color: #BABBBD !important;\\n }\\n\\n .node-label {\\n color: #9AC05C;\\n }\\n\\n .node-label.array, .node-label.null, .node-label.iterable {\\n color: #D182C0;\\n }\\n\\n .node-label.number, .node-label.undefined, .node-label.boolean {\\n color: #F86936;\\n }\\n \"],\n template: \"\\n
\\n \\u25B6\\n {{ key }}\\n {{ label }}\\n
\\n
\\n \\n
\\n \"\n },] },\n ];\n /** @nocollapse */\n JsonNodeComponent.ctorParameters = [];\n JsonNodeComponent.propDecorators = {\n 'key': [{ type: Input },],\n 'expanded': [{ type: Input },],\n 'value': [{ type: Input },],\n };\n return JsonNodeComponent;\n}());\n//# sourceMappingURL=json-node.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/json-tree/json-node.js\n// module id = 605\n// module chunks = 1","\"use strict\";\nexports.compose = function () {\n var functions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n functions[_i - 0] = arguments[_i];\n }\n return function (arg) {\n if (functions.length === 0) {\n return arg;\n }\n var last = functions[functions.length - 1];\n var rest = functions.slice(0, -1);\n return rest.reduceRight(function (composed, fn) { return fn(composed); }, last(arg));\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/core/compose.js\n// module id = 606\n// module chunks = 1","import { Component, Input } from '@angular/core';\nimport { getChildrenFor } from './types';\nexport var JsonTreeComponent = (function () {\n function JsonTreeComponent() {\n this.children = [];\n this.expanded = true;\n }\n Object.defineProperty(JsonTreeComponent.prototype, \"value\", {\n set: function (value) {\n this.children = getChildrenFor(value);\n },\n enumerable: true,\n configurable: true\n });\n JsonTreeComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-json-tree',\n template: \"\\n \\n \"\n },] },\n ];\n /** @nocollapse */\n JsonTreeComponent.ctorParameters = [];\n JsonTreeComponent.propDecorators = {\n 'expanded': [{ type: Input },],\n 'value': [{ type: Input },],\n };\n return JsonTreeComponent;\n}());\n//# sourceMappingURL=json-tree.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/json-tree/json-tree.js\n// module id = 607\n// module chunks = 1","import { Component, Input } from '@angular/core';\nimport { map } from 'rxjs/operator/map';\nimport { StoreDevtools } from '@ngrx/store-devtools';\nimport { select } from '@ngrx/core/operator/select';\nexport var LogMonitorComponent = (function () {\n function LogMonitorComponent(devtools) {\n this.devtools = devtools;\n this.expandEntries = true;\n this.canRevert$ = select.call(devtools.liftedState, function (s) { return !(s.computedStates.length > 1); });\n this.canSweep$ = select.call(devtools.liftedState, function (s) { return !(s.skippedActionIds.length > 0); });\n this.canCommit$ = select.call(devtools.liftedState, function (s) { return !(s.computedStates.length > 1); });\n this.items$ = map.call(devtools.liftedState, function (_a) {\n var actionsById = _a.actionsById, skippedActionIds = _a.skippedActionIds, stagedActionIds = _a.stagedActionIds, computedStates = _a.computedStates;\n var actions = [];\n for (var i = 0; i < stagedActionIds.length; i++) {\n var actionId = stagedActionIds[i];\n var action = actionsById[actionId].action;\n var _b = computedStates[i], state = _b.state, error = _b.error;\n var previousState = void 0;\n if (i > 0) {\n previousState = computedStates[i - 1].state;\n }\n actions.push({\n key: actionId,\n collapsed: skippedActionIds.indexOf(actionId) > -1,\n action: action,\n actionId: actionId,\n state: state,\n previousState: previousState,\n error: error\n });\n }\n return actions;\n });\n }\n LogMonitorComponent.prototype.handleToggle = function (id) {\n this.devtools.toggleAction(id);\n };\n LogMonitorComponent.prototype.handleReset = function () {\n this.devtools.reset();\n };\n LogMonitorComponent.prototype.handleRollback = function () {\n this.devtools.rollback();\n };\n LogMonitorComponent.prototype.handleSweep = function () {\n this.devtools.sweep();\n };\n LogMonitorComponent.prototype.handleCommit = function () {\n this.devtools.commit();\n };\n LogMonitorComponent.decorators = [\n { type: Component, args: [{\n selector: 'log-monitor',\n styles: [\"\\n :host {\\n display: block;\\n background-color: #2A2F3A;\\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\\n position: relative;\\n overflow-y: hidden;\\n width: 100%;\\n height: 100%;\\n min-width: 300px;\\n direction: ltr;\\n }\\n\\n .button-bar {\\n text-align: center;\\n border-bottom-width: 1px;\\n border-bottom-style: solid;\\n border-color: transparent;\\n z-index: 1;\\n display: flex;\\n flex-direction: row;\\n padding: 0 4px;\\n }\\n\\n .elements {\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 38px;\\n bottom: 0;\\n overflow-x: hidden;\\n overflow-y: auto;\\n }\\n \"],\n template: \"\\n
\\n \\n Reset\\n \\n\\n \\n Revert\\n \\n\\n \\n Sweep\\n \\n\\n \\n Commit\\n \\n
\\n
\\n \\n \\n
\\n \"\n },] },\n ];\n /** @nocollapse */\n LogMonitorComponent.ctorParameters = [\n { type: StoreDevtools, },\n ];\n LogMonitorComponent.propDecorators = {\n 'expandEntries': [{ type: Input },],\n };\n return LogMonitorComponent;\n}());\n//# sourceMappingURL=log-monitor.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/log-monitor/log-monitor.js\n// module id = 608\n// module chunks = 1","import { Component, Input, Output, EventEmitter, HostListener, HostBinding } from '@angular/core';\nexport var LogMonitorButtonComponent = (function () {\n function LogMonitorButtonComponent() {\n this.action = new EventEmitter();\n }\n LogMonitorButtonComponent.prototype.handleAction = function ($event) {\n if (!this.disabled) {\n this.action.next({});\n }\n $event.stopPropagation();\n return false;\n };\n LogMonitorButtonComponent.decorators = [\n { type: Component, args: [{\n selector: 'log-monitor-button',\n template: \"\\n \\n \",\n styles: [\"\\n :host{\\n flex-grow: 1;\\n display: inline-block;\\n font-family: 'monaco', 'Consolas', 'Lucida Console', monospace;\\n cursor: pointer;\\n font-weight: bold;\\n border-radius: 3px;\\n padding: 4px 8px;\\n margin: 5px 3px 5px 3px;\\n font-size: 0.8em;\\n color: white;\\n text-decoration: none;\\n background-color: #4F5A65;\\n }\\n\\n :host.disabled{\\n opacity: 0.2;\\n cursor: text;\\n background-color: transparent;\\n }\\n \"]\n },] },\n ];\n /** @nocollapse */\n LogMonitorButtonComponent.ctorParameters = [];\n LogMonitorButtonComponent.propDecorators = {\n 'disabled': [{ type: HostBinding, args: ['class.disabled',] }, { type: Input },],\n 'action': [{ type: Output },],\n 'handleAction': [{ type: HostListener, args: ['click', ['$event'],] },],\n };\n return LogMonitorButtonComponent;\n}());\n//# sourceMappingURL=log-monitor-button.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/log-monitor/log-monitor-button.js\n// module id = 609\n// module chunks = 1","import { Component, Input, Output, EventEmitter } from '@angular/core';\nexport var LogMonitorEntryComponent = (function () {\n function LogMonitorEntryComponent() {\n this.expandEntries = false;\n this.disabled = false;\n this.toggle = new EventEmitter();\n }\n Object.defineProperty(LogMonitorEntryComponent.prototype, \"item\", {\n get: function () {\n return this._item;\n },\n set: function (value) {\n this._item = value;\n this.stateActionPair = {\n state: value.state,\n action: value.action\n };\n },\n enumerable: true,\n configurable: true\n });\n LogMonitorEntryComponent.prototype.handleToggle = function () {\n if (!this.disabled) {\n this.toggle.next({ id: this.item.actionId });\n }\n };\n LogMonitorEntryComponent.prototype.logPayload = function () {\n console.log(this.item.action);\n };\n LogMonitorEntryComponent.prototype.logState = function () {\n console.log(this.item.state);\n };\n LogMonitorEntryComponent.decorators = [\n { type: Component, args: [{\n selector: 'log-monitor-entry',\n template: \"\\n
\\n {{ item.action.type }}\\n
\\n
\\n \\n
\\n \",\n styles: [\"\\n :host{\\n color: #FFFFFF;\\n background-color: #4F5A65;\\n cursor: pointer;\\n }\\n .title-bar{\\n padding: 8px 0 7px 16px;\\n background-color: rgba(0,0,0,0.1);\\n }\\n .action-bar{\\n padding: 20px;\\n }\\n .collapsed{\\n text-decoration: line-through;\\n font-style: italic;\\n opacity: 0.5;\\n }\\n \"]\n },] },\n ];\n /** @nocollapse */\n LogMonitorEntryComponent.ctorParameters = [];\n LogMonitorEntryComponent.propDecorators = {\n 'expandEntries': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'item': [{ type: Input },],\n 'toggle': [{ type: Output },],\n };\n return LogMonitorEntryComponent;\n}());\n//# sourceMappingURL=log-monitor-entry.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/log-monitor/log-monitor-entry.js\n// module id = 610\n// module chunks = 1","import { Component, Input } from '@angular/core';\nexport var StoreLogMonitorComponent = (function () {\n function StoreLogMonitorComponent() {\n this.toggleCommand = 'ctrl-h';\n this.positionCommand = 'ctrl-m';\n this.expandEntries = false;\n }\n StoreLogMonitorComponent.decorators = [\n { type: Component, args: [{\n selector: 'ngrx-store-log-monitor',\n template: \"\\n \\n \\n \\n \"\n },] },\n ];\n /** @nocollapse */\n StoreLogMonitorComponent.ctorParameters = [];\n StoreLogMonitorComponent.propDecorators = {\n 'toggleCommand': [{ type: Input },],\n 'positionCommand': [{ type: Input },],\n 'expandEntries': [{ type: Input },],\n };\n return StoreLogMonitorComponent;\n}());\n//# sourceMappingURL=store-log-monitor.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/store-log-monitor/src/store-log-monitor.js\n// module id = 611\n// module chunks = 1","import { routerActions } from './actions';\nexport var initialState = {\n path: ''\n};\nexport function routerReducer(state, action) {\n if (state === void 0) { state = initialState; }\n switch (action.type) {\n case routerActions.UPDATE_LOCATION:\n return action.payload;\n default:\n return state;\n }\n}\n//# sourceMappingURL=reducer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/router-store/src/reducer.js\n// module id = 612\n// module chunks = 1","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { NgModule, APP_BOOTSTRAP_LISTENER } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { Dispatcher, Store } from '@ngrx/store';\nimport { listenForRouterMethodActions, connectRouterActions, listenForStoreChanges } from './connect';\nexport function setupRouterStore(router, location, dispatcher, store) {\n return function () {\n listenForRouterMethodActions(router, location, dispatcher);\n connectRouterActions(router, store);\n listenForStoreChanges(router, store);\n };\n}\nexport function provideRouterConnector() {\n return {\n provide: APP_BOOTSTRAP_LISTENER,\n deps: [Router, Location, Dispatcher, Store],\n useFactory: setupRouterStore,\n multi: true\n };\n}\nvar RouterStoreModule = RouterStoreModule_1 = (function () {\n function RouterStoreModule() {\n }\n RouterStoreModule.connectRouter = function () {\n return {\n ngModule: RouterStoreModule_1,\n providers: [\n provideRouterConnector()\n ]\n };\n };\n return RouterStoreModule;\n}());\nRouterStoreModule = RouterStoreModule_1 = __decorate([\n NgModule({})\n], RouterStoreModule);\nexport { RouterStoreModule };\nvar RouterStoreModule_1;\n//# sourceMappingURL=router-store-module.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/router-store/src/router-store-module.js\n// module id = 613\n// module chunks = 1","import { NavigationEnd } from '@angular/router';\nimport { filter } from 'rxjs/operator/filter';\nimport { map } from 'rxjs/operator/map';\nimport { withLatestFrom } from 'rxjs/operator/withLatestFrom';\nimport { select } from '@ngrx/core';\nimport { routerActions, routerActionTypes } from './actions';\nexport function listenForRouterMethodActions(router, location, actions$) {\n filter.call(actions$, function (action) { return routerActionTypes.indexOf(action.type) > -1; })\n .subscribe(function (action) {\n var _a = action.payload, path = _a.path, queryParams = _a.query, _b = _a.extras, extras = _b === void 0 ? {} : _b;\n var commands = Array.isArray(path) ? path : [path];\n switch (action.type) {\n case routerActions.GO:\n router.navigate(commands, Object.assign({}, extras, { queryParams: queryParams }));\n break;\n case routerActions.REPLACE:\n router.navigate(commands, Object.assign({}, extras, { queryParams: queryParams, replaceUrl: true }));\n break;\n case routerActions.SEARCH:\n var urlTree = router.parseUrl(router.url);\n urlTree.queryParams = queryParams;\n router.navigateByUrl(urlTree, extras);\n break;\n case routerActions.SHOW:\n router.navigate(commands, Object.assign({}, extras, { queryParams: queryParams, skipLocationChange: true }));\n break;\n case routerActions.BACK:\n location.back();\n break;\n case routerActions.FORWARD:\n location.forward();\n break;\n }\n });\n}\nexport function selectRouter(store) {\n return select.call(store, function (state) { return state.router; });\n}\nexport function getLatestUrl(router) {\n var navigationEnd$ = filter.call(router.events, function (event) { return event instanceof NavigationEnd; });\n var navigationEndUrl$ = select.call(navigationEnd$, function () { return router.url; });\n return navigationEndUrl$;\n}\nexport function connectRouterActions(router, store) {\n var routerAndStore$ = withLatestFrom.call(getLatestUrl(router), selectRouter(store));\n var mismatchUrl$ = filter.call(routerAndStore$, function (_a) {\n var url = _a[0], rs = _a[1];\n return (rs && rs.path !== url || !rs);\n });\n var updateLocation$ = map.call(mismatchUrl$, function (_a) {\n var path = _a[0];\n return { type: routerActions.UPDATE_LOCATION, payload: { path: path } };\n });\n updateLocation$.subscribe(store);\n}\nexport function listenForStoreChanges(router, store) {\n var storeAndRouter$ = withLatestFrom.call(selectRouter(store), getLatestUrl(router));\n var mismatch$ = filter.call(storeAndRouter$, function (_a) {\n var rs = _a[0], url = _a[1];\n return rs.path !== url;\n });\n var newPath$ = map.call(mismatch$, function (_a) {\n var rs = _a[0];\n return rs.path;\n });\n newPath$.subscribe(function (url) { return router.navigateByUrl(url); });\n}\n//# sourceMappingURL=connect.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@ngrx/router-store/src/connect.js\n// module id = 614\n// module chunks = 1","module.exports = \"
\\r\\n

\\r\\n \\r\\n {{ name$ | async }}\\r\\n

\\r\\n
\\r\\nTo be done...\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/add-on/add-on.component.html\n// module id = 615\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n height: 100%;\\n display: block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/add-on/add-on.component.scss\n// module id = 616\n// module chunks = 1","import { Routes } from '@angular/router';\r\n\r\nimport { AddOnComponent } from './add-on.component';\r\n\r\nexport const addOnRoutes: Routes = [\r\n {\r\n path: 'add-on/:name',\r\n component: AddOnComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/add-on/add-on.routes.ts","export { KeyboardSliderComponent } from './keyboard-slider.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keyboard/slider/index.ts","import {\r\n Component, ChangeDetectionStrategy, Input, Output, EventEmitter, OnChanges, SimpleChanges\r\n} from '@angular/core';\r\nimport { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { Layer } from '../../../config-serializer/config-items/layer';\r\n\r\ntype AnimationKeyboard =\r\n 'leftIn' |\r\n 'leftOut' |\r\n 'rightIn' |\r\n 'rightOut';\r\n\r\n@Component({\r\n selector: 'keyboard-slider',\r\n template: require('./keyboard-slider.component.html'),\r\n styles: [require('./keyboard-slider.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n // We use 101%, because there was still a trace of the keyboard in the screen when animation was done\r\n animations: [\r\n trigger('layerState', [\r\n state('leftIn, rightIn', style({\r\n transform: 'translateX(-50%)',\r\n left: '50%'\r\n })),\r\n state('leftOut', style({\r\n transform: 'translateX(-101%)',\r\n left: '0'\r\n })),\r\n state('rightOut', style({\r\n transform: 'translateX(0)',\r\n left: '101%'\r\n })),\r\n transition('leftOut => leftIn, rightOut => leftIn', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(0%)', left: '101%', offset: 0 }),\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 1 })\r\n ]))\r\n ]),\r\n transition('leftIn => leftOut, rightIn => leftOut', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }),\r\n style({ transform: 'translateX(-101%)', left: '0%', offset: 1 })\r\n ]))\r\n ]),\r\n transition('* => rightIn', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(-101%)', left: '0%', offset: 0 }),\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 1 })\r\n ]))\r\n ]),\r\n transition('* => rightOut', [\r\n animate('400ms ease-out', keyframes([\r\n style({ transform: 'translateX(-50%)', left: '50%', offset: 0 }),\r\n style({ transform: 'translateX(0%)', left: '101%', offset: 1 })\r\n ]))\r\n ]),\r\n transition(':leave', [\r\n animate('2000ms ease-out', keyframes([\r\n style({ opacity: 1, offset: 0 }),\r\n style({ opacity: 0, offset: 1 })\r\n ]))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class KeyboardSliderComponent implements OnChanges {\r\n @Input() layers: Layer[];\r\n @Input() currentLayer: number;\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Input() halvesSplit: boolean;\r\n @Input() selectedKey: { layerId: number, moduleId: number, keyId: number };\r\n @Output() keyClick = new EventEmitter();\r\n @Output() keyHover = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n private layerAnimationState: AnimationKeyboard[];\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['layers']) {\r\n this.layerAnimationState = this.layers.map(() => 'leftOut');\r\n this.layerAnimationState[this.currentLayer] = 'leftIn';\r\n }\r\n const layerChange = changes['currentLayer'];\r\n if (layerChange) {\r\n const prevValue = layerChange.isFirstChange() ? layerChange.currentValue : layerChange.previousValue;\r\n this.onLayerChange(prevValue, layerChange.currentValue);\r\n }\r\n }\r\n\r\n trackKeyboard(index: number) {\r\n return index;\r\n }\r\n\r\n onLayerChange(oldIndex: number, index: number): void {\r\n if (index > oldIndex) {\r\n this.layerAnimationState[oldIndex] = 'leftOut';\r\n this.layerAnimationState[index] = 'leftIn';\r\n } else {\r\n this.layerAnimationState[oldIndex] = 'rightOut';\r\n this.layerAnimationState[index] = 'rightIn';\r\n }\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keyboard/slider/keyboard-slider.component.ts","module.exports = \"\\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keyboard/slider/keyboard-slider.component.html\n// module id = 620\n// module chunks = 1","module.exports = \"svg-keyboard {\\n width: 95%;\\n max-width: 1400px;\\n position: absolute;\\n left: 0;\\n transform: translateX(-101%);\\n user-select: none; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keyboard/slider/keyboard-slider.component.scss\n// module id = 621\n// module chunks = 1","export * from './add/keymap-add.component';\r\nexport * from './edit/keymap-edit.component';\r\nexport * from './header/keymap-header.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keymap/index.ts","module.exports = \"

\\r\\n \\r\\n Add new keymap\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n

{{ keymap.name }}

\\r\\n

\\r\\n {{ keymap.description }}\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Sorry, no keyboard found under this search query.\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/add/keymap-add.component.html\n// module id = 623\n// module chunks = 1","module.exports = \":host {\\n overflow-y: auto;\\n display: block;\\n height: 100%; }\\n\\n.uhk__layer-switcher--wrapper {\\n position: relative; }\\n .uhk__layer-switcher--wrapper:before {\\n content: attr(data-title);\\n display: inline-block;\\n position: absolute;\\n bottom: -0.3em;\\n right: 100%;\\n font-size: 2.4rem;\\n padding-right: 0.25em;\\n margin: 0; }\\n\\n.keymap__search {\\n margin-top: 10px; }\\n .keymap__search .input-group {\\n width: 100%;\\n max-width: 350px;\\n float: left; }\\n .keymap__search_amount {\\n float: left;\\n margin: 7px 0 0 20px; }\\n\\n.keymap__description {\\n margin-bottom: 20px; }\\n\\n.keymap__list {\\n margin-top: 40px; }\\n .keymap__list_item {\\n margin-bottom: 50px; }\\n .keymap__list .btn-group-lg {\\n margin: 30px 0 0;\\n width: 100%;\\n text-align: center; }\\n .keymap__list .btn-group-lg .btn {\\n float: none;\\n padding-left: 50px;\\n padding-right: 50px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/add/keymap-add.component.scss\n// module id = 624\n// module chunks = 1","/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\nvar saveAs=saveAs||function(e){\"use strict\";if(\"undefined\"==typeof navigator||!/MSIE [1-9]\\./.test(navigator.userAgent)){var t=e.document,n=function(){return e.URL||e.webkitURL||e},o=t.createElementNS(\"http://www.w3.org/1999/xhtml\",\"a\"),r=\"download\"in o,i=function(e){var t=new MouseEvent(\"click\");e.dispatchEvent(t)},a=e.webkitRequestFileSystem,c=e.requestFileSystem||a||e.mozRequestFileSystem,u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},f=\"application/octet-stream\",s=0,d=500,l=function(t){var o=function(){\"string\"==typeof t?n().revokeObjectURL(t):t.remove()};e.chrome?o():setTimeout(o,d)},v=function(e,t,n){t=[].concat(t);for(var o=t.length;o--;){var r=e[\"on\"+t[o]];if(\"function\"==typeof r)try{r.call(e,n||e)}catch(i){u(i)}}},p=function(e){return/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(e.type)?new Blob([\"\",e],{type:e.type}):e},w=function(t,u,d){d||(t=p(t));var w,y,m,S=this,h=t.type,O=!1,R=function(){v(S,\"writestart progress write writeend\".split(\" \"))},b=function(){if((O||!w)&&(w=n().createObjectURL(t)),y)y.location.href=w;else{var o=e.open(w,\"_blank\");void 0==o&&\"undefined\"!=typeof safari&&(e.location.href=w)}S.readyState=S.DONE,R(),l(w)},g=function(e){return function(){return S.readyState!==S.DONE?e.apply(this,arguments):void 0}},E={create:!0,exclusive:!1};return S.readyState=S.INIT,u||(u=\"download\"),r?(w=n().createObjectURL(t),o.href=w,o.download=u,void setTimeout(function(){i(o),R(),l(w),S.readyState=S.DONE})):(e.chrome&&h&&h!==f&&(m=t.slice||t.webkitSlice,t=m.call(t,0,t.size,f),O=!0),a&&\"download\"!==u&&(u+=\".download\"),(h===f||a)&&(y=e),c?(s+=t.size,void c(e.TEMPORARY,s,g(function(e){e.root.getDirectory(\"saved\",E,g(function(e){var n=function(){e.getFile(u,E,g(function(e){e.createWriter(g(function(n){n.onwriteend=function(t){y.location.href=e.toURL(),S.readyState=S.DONE,v(S,\"writeend\",t),l(e)},n.onerror=function(){var e=n.error;e.code!==e.ABORT_ERR&&b()},\"writestart progress write abort\".split(\" \").forEach(function(e){n[\"on\"+e]=S[\"on\"+e]}),n.write(t),S.abort=function(){n.abort(),S.readyState=S.DONE},S.readyState=S.WRITING}),b)}),b)};e.getFile(u,{create:!1},g(function(e){e.remove(),n()}),g(function(e){e.code===e.NOT_FOUND_ERR?n():b()}))}),b)}),b)):void b())},y=w.prototype,m=function(e,t,n){return new w(e,t,n)};return\"undefined\"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return n||(e=p(e)),navigator.msSaveOrOpenBlob(e,t||\"download\")}:(y.abort=function(){var e=this;e.readyState=e.DONE,v(e,\"abort\")},y.readyState=y.INIT=0,y.WRITING=1,y.DONE=2,y.error=y.onwritestart=y.onprogress=y.onwrite=y.onabort=y.onerror=y.onwriteend=null,m)}}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||this.content);\"undefined\"!=typeof module&&module.exports?module.exports.saveAs=saveAs:\"undefined\"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/filesaver.js/FileSaver.min.js\n// module id = 625\n// module chunks = 1","module.exports = function() {\r\n\tthrow new Error(\"define cannot be used indirect\");\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 626\n// module chunks = 1","import { assertEnum, assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { KeyModifiers } from '../key-modifiers';\r\nimport { LongPressAction } from '../long-press-action';\r\nimport { KeyAction, KeyActionId, keyActionType } from './key-action';\r\nimport { KeystrokeType } from './keystroke-type';\r\n\r\nexport enum KeystrokeActionFlag {\r\n scancode = 1 << 0,\r\n modifierMask = 1 << 1,\r\n longPressAction = 1 << 2\r\n}\r\n\r\nconst KEYSTROKE_ACTION_FLAG_LENGTH = 3;\r\n\r\ninterface JsonObjectKeystrokeAction {\r\n keyActionType: string;\r\n scancode?: number;\r\n modifierMask?: number;\r\n longPressAction?: string;\r\n type?: string;\r\n}\r\n\r\nconst MODIFIERS = ['LCtrl', 'LShift', 'LAlt', 'LSuper', 'RCtrl', 'RShift', 'RAlt', 'RSuper'];\r\n\r\nexport class KeystrokeAction extends KeyAction {\r\n\r\n set scancode(scancode: number) {\r\n this._scancode = scancode;\r\n if (this.type !== KeystrokeType.shortMedia && this.type !== KeystrokeType.longMedia) {\r\n return;\r\n }\r\n this.type = scancode < 256 ? KeystrokeType.shortMedia : KeystrokeType.longMedia;\r\n }\r\n\r\n get scancode() {\r\n return this._scancode;\r\n }\r\n\r\n @assertUInt8\r\n modifierMask: number;\r\n\r\n @assertEnum(LongPressAction)\r\n longPressAction: LongPressAction;\r\n\r\n set type(type: KeystrokeType) {\r\n if (type === KeystrokeType.shortMedia || type === KeystrokeType.longMedia) {\r\n type = this.scancode < 256 ? KeystrokeType.shortMedia : KeystrokeType.longMedia;\r\n }\r\n this._type = type;\r\n }\r\n\r\n get type() {\r\n return this._type;\r\n }\r\n\r\n private _scancode: number;\r\n\r\n @assertEnum(KeystrokeType)\r\n private _type: KeystrokeType;\r\n\r\n constructor(other?: KeystrokeAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.type = other.type;\r\n this._scancode = other._scancode;\r\n this.modifierMask = other.modifierMask;\r\n this.longPressAction = other.longPressAction;\r\n }\r\n\r\n fromJsonObject(jsonObject: JsonObjectKeystrokeAction): KeystrokeAction {\r\n this.assertKeyActionType(jsonObject);\r\n if (jsonObject.type === 'media') {\r\n this.type = jsonObject.scancode < 256 ? KeystrokeType.shortMedia : KeystrokeType.longMedia;\r\n } else {\r\n this.type = KeystrokeType[jsonObject.type];\r\n }\r\n this._scancode = jsonObject.scancode;\r\n this.modifierMask = jsonObject.modifierMask;\r\n this.longPressAction = LongPressAction[jsonObject.longPressAction];\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): KeystrokeAction {\r\n const keyActionId: KeyActionId = this.readAndAssertKeyActionId(buffer);\r\n const flags: number = keyActionId - KeyActionId.NoneAction; // NoneAction is the same as an empty KeystrokeAction.\r\n this.type = (flags >> 3) & 0b11;\r\n if (flags & KeystrokeActionFlag.scancode) {\r\n this._scancode = this.type === KeystrokeType.longMedia ? buffer.readUInt16() : buffer.readUInt8();\r\n }\r\n if (flags & KeystrokeActionFlag.modifierMask) {\r\n this.modifierMask = buffer.readUInt8();\r\n }\r\n if (flags & KeystrokeActionFlag.longPressAction) {\r\n this.longPressAction = buffer.readUInt8();\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(): JsonObjectKeystrokeAction {\r\n const jsonObject: JsonObjectKeystrokeAction = {\r\n keyActionType: keyActionType.KeystrokeAction\r\n };\r\n\r\n if (this.type === KeystrokeType.shortMedia || this.type === KeystrokeType.longMedia) {\r\n jsonObject.type = 'media';\r\n } else {\r\n jsonObject.type = KeystrokeType[this.type];\r\n }\r\n\r\n if (this.hasScancode()) {\r\n jsonObject.scancode = this._scancode;\r\n }\r\n\r\n if (this.hasActiveModifier()) {\r\n jsonObject.modifierMask = this.modifierMask;\r\n }\r\n\r\n if (this.hasLongPressAction()) {\r\n jsonObject.longPressAction = LongPressAction[this.longPressAction];\r\n }\r\n\r\n return jsonObject;\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n let flags = 0;\r\n const toWrite: {\r\n data: number,\r\n long: boolean\r\n }[] = [];\r\n\r\n if (this.hasScancode()) {\r\n flags |= KeystrokeActionFlag.scancode;\r\n toWrite.push({ data: this._scancode, long: this.type === KeystrokeType.longMedia });\r\n }\r\n\r\n if (this.hasActiveModifier()) {\r\n flags |= KeystrokeActionFlag.modifierMask;\r\n toWrite.push({ data: this.modifierMask, long: false });\r\n }\r\n\r\n if (this.hasLongPressAction()) {\r\n flags |= KeystrokeActionFlag.longPressAction;\r\n toWrite.push({ data: this.longPressAction, long: false });\r\n }\r\n\r\n const TYPE_OFFSET = flags + (this.type << KEYSTROKE_ACTION_FLAG_LENGTH);\r\n\r\n buffer.writeUInt8(KeyActionId.NoneAction + TYPE_OFFSET); // NoneAction is the same as an empty KeystrokeAction.\r\n\r\n for (let i = 0; i < toWrite.length; ++i) {\r\n if (toWrite[i].long) {\r\n buffer.writeUInt16(toWrite[i].data);\r\n } else {\r\n buffer.writeUInt8(toWrite[i].data);\r\n }\r\n }\r\n\r\n }\r\n\r\n toString(): string {\r\n const properties: string[] = [];\r\n properties.push(`type=\"${KeystrokeType[this.type]}\"`);\r\n\r\n if (this.hasScancode()) {\r\n properties.push(`scancode=\"${this._scancode}\"`);\r\n }\r\n if (this.hasActiveModifier()) {\r\n properties.push(`modifierMask=\"${this.modifierMask}\"`);\r\n }\r\n if (this.hasLongPressAction()) {\r\n properties.push(`longPressAction=\"${this.longPressAction}\"`);\r\n }\r\n\r\n return ``;\r\n }\r\n\r\n isActive(modifier: KeyModifiers): boolean {\r\n return (this.modifierMask & modifier) > 0;\r\n }\r\n\r\n hasActiveModifier(): boolean {\r\n return this.modifierMask > 0;\r\n }\r\n\r\n hasLongPressAction(): boolean {\r\n return this.longPressAction !== undefined;\r\n }\r\n\r\n hasScancode(): boolean {\r\n return !!this._scancode;\r\n }\r\n\r\n hasOnlyOneActiveModifier(): boolean {\r\n return this.modifierMask !== 0 && !(this.modifierMask & this.modifierMask - 1);\r\n }\r\n\r\n getModifierList(): string[] {\r\n const modifierList: string[] = [];\r\n let modifierMask = this.modifierMask;\r\n for (let i = 0; modifierMask !== 0; ++i, modifierMask >>= 1) {\r\n if (modifierMask & 1) {\r\n modifierList.push(MODIFIERS[i]);\r\n }\r\n }\r\n return modifierList;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/keystroke-action.ts","import { assertEnum } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { KeyAction, KeyActionId, keyActionType } from './key-action';\r\n\r\nexport enum MouseActionParam {\r\n leftClick,\r\n middleClick,\r\n rightClick,\r\n moveUp,\r\n moveDown,\r\n moveLeft,\r\n moveRight,\r\n scrollUp,\r\n scrollDown,\r\n scrollLeft,\r\n scrollRight,\r\n accelerate,\r\n decelerate\r\n}\r\n\r\nexport class MouseAction extends KeyAction {\r\n\r\n @assertEnum(MouseActionParam)\r\n mouseAction: MouseActionParam;\r\n\r\n constructor(other?: MouseAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.mouseAction = other.mouseAction;\r\n }\r\n\r\n fromJsonObject(jsObject: any): MouseAction {\r\n this.assertKeyActionType(jsObject);\r\n this.mouseAction = MouseActionParam[jsObject.mouseAction];\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): MouseAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n this.mouseAction = buffer.readUInt8();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.MouseAction,\r\n mouseAction: MouseActionParam[this.mouseAction]\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.MouseAction);\r\n buffer.writeUInt8(this.mouseAction);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/mouse-action.ts","import { UhkBuffer } from '../../uhk-buffer';\r\nimport { KeyAction, KeyActionId, keyActionType } from './key-action';\r\n\r\n/**\r\n * NoneAction is only intended for binary serialization of undefined key actions\r\n * DO NOT use it as a real KeyAction\r\n *\r\n */\r\n\r\nexport class NoneAction extends KeyAction {\r\n\r\n fromJsonObject(jsonObject: any): NoneAction {\r\n this.assertKeyActionType(jsonObject);\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): NoneAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.NoneAction\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.NoneAction);\r\n }\r\n\r\n toString(): string {\r\n return '';\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/none-action.ts","import { assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { Macro } from '../macro';\r\nimport { KeyAction, KeyActionId, keyActionType } from './key-action';\r\n\r\nexport class PlayMacroAction extends KeyAction {\r\n\r\n @assertUInt8\r\n macroId: number;\r\n\r\n constructor(parameter?: PlayMacroAction | Macro) {\r\n super();\r\n if (!parameter) {\r\n return;\r\n }\r\n if (parameter instanceof PlayMacroAction) {\r\n this.macroId = parameter.macroId;\r\n } else {\r\n this.macroId = parameter.id;\r\n }\r\n }\r\n\r\n fromJsonObject(jsonObject: any, macros: Macro[]): PlayMacroAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.macroId = macros[jsonObject.macroIndex].id;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer, macros: Macro[]): PlayMacroAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n const macroIndex = buffer.readUInt8();\r\n this.macroId = macros[macroIndex].id;\r\n return this;\r\n }\r\n\r\n toJsonObject(macros: Macro[]): any {\r\n return {\r\n keyActionType: keyActionType.PlayMacroAction,\r\n macroIndex: macros.findIndex(macro => macro.id === this.macroId)\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer, macros: Macro[]) {\r\n buffer.writeUInt8(KeyActionId.PlayMacroAction);\r\n buffer.writeUInt8(macros.findIndex(macro => macro.id === this.macroId));\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/play-macro-action.ts","import { UhkBuffer } from '../../uhk-buffer';\r\nimport { Keymap } from '../keymap';\r\nimport { KeyAction, KeyActionId, keyActionType } from './key-action';\r\n\r\nexport class SwitchKeymapAction extends KeyAction {\r\n\r\n keymapAbbreviation: string;\r\n\r\n constructor(parameter?: SwitchKeymapAction | Keymap | string) {\r\n super();\r\n if (!parameter) {\r\n return;\r\n }\r\n if (parameter instanceof SwitchKeymapAction) {\r\n this.keymapAbbreviation = parameter.keymapAbbreviation;\r\n } else if (parameter instanceof Keymap) {\r\n this.keymapAbbreviation = parameter.abbreviation;\r\n } else {\r\n this.keymapAbbreviation = parameter;\r\n }\r\n }\r\n\r\n fromJsonObject(jsonObject: any): SwitchKeymapAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.keymapAbbreviation = jsonObject.keymapAbbreviation;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): SwitchKeymapAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n this.keymapAbbreviation = buffer.readString();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.SwitchKeymapAction,\r\n keymapAbbreviation: this.keymapAbbreviation\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.SwitchKeymapAction);\r\n buffer.writeString(this.keymapAbbreviation);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n renameKeymap(oldAbbr: string, newAbbr: string): KeyAction {\r\n if (this.keymapAbbreviation !== oldAbbr) {\r\n return this;\r\n }\r\n return new SwitchKeymapAction(newAbbr);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/switch-keymap-action.ts","import { assertEnum } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { KeyAction, KeyActionId, keyActionType } from './key-action';\r\n\r\nexport enum LayerName {\r\n mod,\r\n fn,\r\n mouse\r\n}\r\n\r\nexport class SwitchLayerAction extends KeyAction {\r\n\r\n isLayerToggleable: boolean;\r\n\r\n @assertEnum(LayerName)\r\n layer: LayerName;\r\n\r\n constructor(other?: SwitchLayerAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.isLayerToggleable = other.isLayerToggleable;\r\n this.layer = other.layer;\r\n }\r\n\r\n fromJsonObject(jsonObject: any): SwitchLayerAction {\r\n this.assertKeyActionType(jsonObject);\r\n this.layer = LayerName[jsonObject.layer];\r\n this.isLayerToggleable = jsonObject.toggle;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): SwitchLayerAction {\r\n this.readAndAssertKeyActionId(buffer);\r\n this.layer = buffer.readUInt8();\r\n this.isLayerToggleable = buffer.readBoolean();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n keyActionType: keyActionType.SwitchLayerAction,\r\n layer: LayerName[this.layer],\r\n toggle: this.isLayerToggleable\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(KeyActionId.SwitchLayerAction);\r\n buffer.writeUInt8(this.layer);\r\n buffer.writeBoolean(this.isLayerToggleable);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/switch-layer-action.ts","import { UhkBuffer } from '../../uhk-buffer';\r\nimport {\r\n KeyAction,\r\n KeyActionId,\r\n KeystrokeAction,\r\n MouseAction,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction,\r\n keyActionType\r\n} from './index';\r\n\r\nimport { Macro } from '../macro';\r\n\r\nexport class Helper {\r\n\r\n static createKeyAction(source: KeyAction | UhkBuffer | any, macros?: Macro[]): KeyAction {\r\n if (source instanceof KeyAction) {\r\n return Helper.fromKeyAction(source);\r\n } else if (source instanceof UhkBuffer) {\r\n return Helper.fromUhkBuffer(source, macros);\r\n } else {\r\n return Helper.fromJSONObject(source, macros);\r\n }\r\n }\r\n\r\n private static fromUhkBuffer(buffer: UhkBuffer, macros: Macro[]): KeyAction {\r\n const keyActionFirstByte = buffer.readUInt8();\r\n buffer.backtrack();\r\n\r\n if (keyActionFirstByte >= KeyActionId.KeystrokeAction && keyActionFirstByte < KeyActionId.LastKeystrokeAction) {\r\n return new KeystrokeAction().fromBinary(buffer);\r\n }\r\n\r\n switch (keyActionFirstByte) {\r\n case KeyActionId.NoneAction:\r\n buffer.readUInt8(); // Read type just to skip it\r\n return undefined;\r\n case KeyActionId.SwitchLayerAction:\r\n return new SwitchLayerAction().fromBinary(buffer);\r\n case KeyActionId.SwitchKeymapAction:\r\n return new SwitchKeymapAction().fromBinary(buffer);\r\n case KeyActionId.MouseAction:\r\n return new MouseAction().fromBinary(buffer);\r\n case KeyActionId.PlayMacroAction:\r\n return new PlayMacroAction().fromBinary(buffer, macros);\r\n default:\r\n throw `Invalid KeyAction first byte: ${keyActionFirstByte}`;\r\n }\r\n }\r\n\r\n private static fromKeyAction(keyAction: KeyAction): KeyAction {\r\n let newKeyAction: KeyAction;\r\n if (keyAction instanceof KeystrokeAction) {\r\n newKeyAction = new KeystrokeAction(keyAction);\r\n } else if (keyAction instanceof SwitchLayerAction) {\r\n newKeyAction = new SwitchLayerAction(keyAction);\r\n } else if (keyAction instanceof SwitchKeymapAction) {\r\n newKeyAction = new SwitchKeymapAction(keyAction);\r\n } else if (keyAction instanceof MouseAction) {\r\n newKeyAction = new MouseAction(keyAction);\r\n } else if (keyAction instanceof PlayMacroAction) {\r\n newKeyAction = new PlayMacroAction(keyAction);\r\n }\r\n return newKeyAction;\r\n }\r\n\r\n private static fromJSONObject(keyAction: any, macros: Macro[]): KeyAction {\r\n if (!keyAction) {\r\n return;\r\n }\r\n\r\n switch (keyAction.keyActionType) {\r\n case keyActionType.KeystrokeAction:\r\n return new KeystrokeAction().fromJsonObject(keyAction);\r\n case keyActionType.SwitchLayerAction:\r\n return new SwitchLayerAction().fromJsonObject(keyAction);\r\n case keyActionType.SwitchKeymapAction:\r\n return new SwitchKeymapAction().fromJsonObject(keyAction);\r\n case keyActionType.MouseAction:\r\n return new MouseAction().fromJsonObject(keyAction);\r\n case keyActionType.PlayMacroAction:\r\n return new PlayMacroAction().fromJsonObject(keyAction, macros);\r\n default:\r\n throw `Invalid KeyAction.keyActionType: \"${keyAction.keyActionType}\"`;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/key-action/helper.ts","import { assertUInt16 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './macro-action';\r\n\r\nexport class DelayMacroAction extends MacroAction {\r\n\r\n @assertUInt16\r\n delay: number;\r\n\r\n constructor(other?: DelayMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.delay = other.delay;\r\n }\r\n\r\n fromJsonObject(jsObject: any): DelayMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.delay = jsObject.delay;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): DelayMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.delay = buffer.readUInt16();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.DelayMacroAction,\r\n delay: this.delay\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.DelayMacroAction);\r\n buffer.writeUInt16(this.delay);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/delay-macro-action.ts","import { assertEnum, assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { KeyModifiers } from '../key-modifiers';\r\nimport { MacroAction, MacroActionId, MacroSubAction, macroActionType } from './macro-action';\r\nimport { KeystrokeType } from '../key-action/keystroke-type';\r\n\r\ninterface JsObjectKeyMacroAction {\r\n macroActionType: string;\r\n action: string;\r\n type?: string;\r\n scancode?: number;\r\n modifierMask?: number;\r\n}\r\n\r\nexport class KeyMacroAction extends MacroAction {\r\n\r\n @assertEnum(MacroSubAction)\r\n action: MacroSubAction;\r\n\r\n @assertEnum(KeystrokeType)\r\n type: KeystrokeType;\r\n\r\n @assertUInt8\r\n scancode: number;\r\n\r\n @assertUInt8\r\n modifierMask: number;\r\n\r\n constructor(other?: KeyMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.action = other.action;\r\n this.type = other.type;\r\n this.scancode = other.scancode;\r\n this.modifierMask = other.modifierMask;\r\n }\r\n\r\n fromJsonObject(jsObject: JsObjectKeyMacroAction): KeyMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.action = MacroSubAction[jsObject.action];\r\n if (jsObject.type === 'media') {\r\n this.type = jsObject.scancode < 256 ? KeystrokeType.shortMedia : KeystrokeType.longMedia;\r\n } else {\r\n this.type = KeystrokeType[jsObject.type];\r\n }\r\n this.scancode = jsObject.scancode;\r\n this.modifierMask = jsObject.modifierMask;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): KeyMacroAction {\r\n const macroActionId: MacroActionId = this.readAndAssertMacroActionId(buffer);\r\n let keyMacroType: number = macroActionId - MacroActionId.KeyMacroAction;\r\n this.action = keyMacroType & 0b11;\r\n keyMacroType >>= 2;\r\n this.type = keyMacroType & 0b11;\r\n keyMacroType >>= 2;\r\n if (keyMacroType & 0b10) {\r\n this.scancode = buffer.readUInt8();\r\n }\r\n if (keyMacroType & 0b01) {\r\n this.modifierMask = buffer.readUInt8();\r\n }\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n const jsObject: JsObjectKeyMacroAction = {\r\n macroActionType: macroActionType.KeyMacroAction,\r\n action: MacroSubAction[this.action]\r\n };\r\n\r\n if (this.hasScancode()) {\r\n if (this.type === KeystrokeType.shortMedia || this.type === KeystrokeType.longMedia) {\r\n jsObject.type = 'media';\r\n } else {\r\n jsObject.type = KeystrokeType[this.type];\r\n }\r\n jsObject.scancode = this.scancode;\r\n }\r\n\r\n if (this.hasModifiers()) {\r\n jsObject.modifierMask = this.modifierMask;\r\n }\r\n\r\n return jsObject;\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n let TYPE_OFFSET = 0;\r\n TYPE_OFFSET |= this.action;\r\n TYPE_OFFSET |= this.type << 2;\r\n TYPE_OFFSET |= ((this.hasScancode() ? 2 : 0) + (this.hasModifiers() ? 1 : 0)) << 4;\r\n\r\n const keyMacroType: number = MacroActionId.KeyMacroAction + TYPE_OFFSET;\r\n\r\n buffer.writeUInt8(keyMacroType);\r\n if (this.hasScancode()) {\r\n buffer.writeUInt8(this.scancode);\r\n }\r\n if (this.hasModifiers()) {\r\n buffer.writeUInt8(this.modifierMask);\r\n }\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n isModifierActive(modifier: KeyModifiers): boolean {\r\n return (this.modifierMask & modifier) > 0;\r\n }\r\n\r\n hasScancode(): boolean {\r\n return !!this.scancode;\r\n }\r\n\r\n hasModifiers(): boolean {\r\n return !!this.modifierMask;\r\n }\r\n\r\n isHoldAction(): boolean {\r\n return this.action === MacroSubAction.hold;\r\n }\r\n\r\n isPressAction(): boolean {\r\n return this.action === MacroSubAction.press;\r\n }\r\n\r\n isReleaseAction(): boolean {\r\n return this.action === MacroSubAction.release;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/key-macro-action.ts","import { assertInt16 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './macro-action';\r\n\r\nexport class MoveMouseMacroAction extends MacroAction {\r\n\r\n @assertInt16\r\n x: number;\r\n\r\n @assertInt16\r\n y: number;\r\n\r\n constructor(other?: MoveMouseMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.x = other.x;\r\n this.y = other.y;\r\n }\r\n\r\n fromJsonObject(jsObject: any): MoveMouseMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.x = jsObject.x;\r\n this.y = jsObject.y;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): MoveMouseMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.x = buffer.readInt16();\r\n this.y = buffer.readInt16();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.MoveMouseMacroAction,\r\n x: this.x,\r\n y: this.y\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.MoveMouseMacroAction);\r\n buffer.writeInt16(this.x);\r\n buffer.writeInt16(this.y);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/move-mouse-macro-action.ts","import { assertEnum, assertUInt8 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { MacroAction, MacroActionId, MacroSubAction, macroActionType } from './macro-action';\r\n\r\nexport enum MouseButtons {\r\n Left = 1 << 0,\r\n Middle = 1 << 1,\r\n Right = 1 << 2\r\n}\r\n\r\ninterface JsObjectMouseButtonMacroAction {\r\n macroActionType: string;\r\n action: string;\r\n mouseButtonsMask?: number;\r\n}\r\n\r\nexport class MouseButtonMacroAction extends MacroAction {\r\n @assertEnum(MacroSubAction)\r\n action: MacroSubAction;\r\n\r\n @assertUInt8\r\n mouseButtonsMask: number;\r\n\r\n constructor(other?: MouseButtonMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.action = other.action;\r\n this.mouseButtonsMask = other.mouseButtonsMask;\r\n }\r\n\r\n fromJsonObject(jsObject: JsObjectMouseButtonMacroAction): MouseButtonMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.action = MacroSubAction[jsObject.action];\r\n this.mouseButtonsMask = jsObject.mouseButtonsMask;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): MouseButtonMacroAction {\r\n const macroActionId: MacroActionId = this.readAndAssertMacroActionId(buffer);\r\n this.action = macroActionId - MacroActionId.MouseButtonMacroAction;\r\n this.mouseButtonsMask = buffer.readUInt8();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.MouseButtonMacroAction,\r\n action: MacroSubAction[this.action],\r\n mouseButtonsMask: this.mouseButtonsMask\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeUInt8(MacroActionId.MouseButtonMacroAction + this.action);\r\n buffer.writeUInt8(this.mouseButtonsMask);\r\n }\r\n\r\n setMouseButtons(buttonStates: boolean[]): void {\r\n let bitmask = 0;\r\n for (let i = 0; i < buttonStates.length; i++) {\r\n bitmask |= Number(buttonStates[i]) << i;\r\n }\r\n this.mouseButtonsMask = bitmask;\r\n }\r\n\r\n getMouseButtons(): boolean[] {\r\n const enabledMouseButtons: boolean[] = [];\r\n for (let bitmask = this.mouseButtonsMask; bitmask; bitmask >>>= 1) {\r\n enabledMouseButtons.push(Boolean(bitmask & 1));\r\n }\r\n return enabledMouseButtons;\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n hasButtons(): boolean {\r\n return this.mouseButtonsMask !== 0;\r\n }\r\n\r\n isOnlyHoldAction(): boolean {\r\n return this.action === MacroSubAction.hold;\r\n }\r\n\r\n isOnlyPressAction(): boolean {\r\n return this.action === MacroSubAction.press;\r\n }\r\n\r\n isOnlyReleaseAction(): boolean {\r\n return this.action === MacroSubAction.release;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/mouse-button-macro-action.ts","import { assertInt16 } from '../../assert';\r\nimport { UhkBuffer } from '../../uhk-buffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './macro-action';\r\n\r\nexport class ScrollMouseMacroAction extends MacroAction {\r\n\r\n @assertInt16\r\n x: number;\r\n\r\n @assertInt16\r\n y: number;\r\n\r\n constructor(other?: ScrollMouseMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.x = other.x;\r\n this.y = other.y;\r\n }\r\n\r\n fromJsonObject(jsObject: any): ScrollMouseMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.x = jsObject.x;\r\n this.y = jsObject.y;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): ScrollMouseMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.x = buffer.readInt16();\r\n this.y = buffer.readInt16();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.ScrollMouseMacroAction,\r\n x: this.x,\r\n y: this.y\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.ScrollMouseMacroAction);\r\n buffer.writeInt16(this.x);\r\n buffer.writeInt16(this.y);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/scroll-mouse-macro-action.ts","import { UhkBuffer } from '../../uhk-buffer';\r\nimport { MacroAction, MacroActionId, macroActionType } from './macro-action';\r\n\r\nexport class TextMacroAction extends MacroAction {\r\n\r\n text: string;\r\n\r\n constructor(other?: TextMacroAction) {\r\n super();\r\n if (!other) {\r\n return;\r\n }\r\n this.text = other.text;\r\n }\r\n\r\n fromJsonObject(jsObject: any): TextMacroAction {\r\n this.assertMacroActionType(jsObject);\r\n this.text = jsObject.text;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): TextMacroAction {\r\n this.readAndAssertMacroActionId(buffer);\r\n this.text = buffer.readString();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n macroActionType: macroActionType.TextMacroAction,\r\n text: this.text\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer) {\r\n buffer.writeUInt8(MacroActionId.TextMacroAction);\r\n buffer.writeString(this.text);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/text-macro-action.ts","import { UhkBuffer } from '../../uhk-buffer';\r\nimport {\r\n DelayMacroAction,\r\n KeyMacroAction,\r\n MacroAction,\r\n MacroActionId,\r\n MouseButtonMacroAction,\r\n MoveMouseMacroAction,\r\n ScrollMouseMacroAction,\r\n TextMacroAction,\r\n macroActionType\r\n} from './index';\r\n\r\nexport class Helper {\r\n\r\n static createMacroAction(source: MacroAction | UhkBuffer | any): MacroAction {\r\n if (source instanceof MacroAction) {\r\n return Helper.fromMacroAction(source);\r\n } else if (source instanceof UhkBuffer) {\r\n return Helper.fromUhkBuffer(source);\r\n } else {\r\n return Helper.fromJSONObject(source);\r\n }\r\n }\r\n\r\n private static fromUhkBuffer(buffer: UhkBuffer): MacroAction {\r\n const macroActionFirstByte = buffer.readUInt8();\r\n buffer.backtrack();\r\n\r\n if (macroActionFirstByte >= MacroActionId.KeyMacroAction && macroActionFirstByte <= MacroActionId.LastKeyMacroAction) {\r\n return new KeyMacroAction().fromBinary(buffer);\r\n } else if (\r\n macroActionFirstByte >= MacroActionId.MouseButtonMacroAction &&\r\n macroActionFirstByte <= MacroActionId.LastMouseButtonMacroAction\r\n ) {\r\n return new MouseButtonMacroAction().fromBinary(buffer);\r\n }\r\n switch (macroActionFirstByte) {\r\n case MacroActionId.MoveMouseMacroAction:\r\n return new MoveMouseMacroAction().fromBinary(buffer);\r\n case MacroActionId.ScrollMouseMacroAction:\r\n return new ScrollMouseMacroAction().fromBinary(buffer);\r\n case MacroActionId.DelayMacroAction:\r\n return new DelayMacroAction().fromBinary(buffer);\r\n case MacroActionId.TextMacroAction:\r\n return new TextMacroAction().fromBinary(buffer);\r\n default:\r\n throw `Invalid MacroAction first byte: ${macroActionFirstByte}`;\r\n }\r\n }\r\n\r\n private static fromMacroAction(macroAction: MacroAction): MacroAction {\r\n let newMacroAction: MacroAction;\r\n if (macroAction instanceof KeyMacroAction) {\r\n newMacroAction = new KeyMacroAction(macroAction);\r\n } else if (macroAction instanceof MouseButtonMacroAction) {\r\n newMacroAction = new MouseButtonMacroAction(macroAction);\r\n } else if (macroAction instanceof MoveMouseMacroAction) {\r\n newMacroAction = new MoveMouseMacroAction(macroAction);\r\n } else if (macroAction instanceof ScrollMouseMacroAction) {\r\n newMacroAction = new ScrollMouseMacroAction(macroAction);\r\n } else if (macroAction instanceof DelayMacroAction) {\r\n newMacroAction = new DelayMacroAction(macroAction);\r\n } else if (macroAction instanceof TextMacroAction) {\r\n newMacroAction = new TextMacroAction(macroAction);\r\n }\r\n return newMacroAction;\r\n }\r\n\r\n private static fromJSONObject(macroAction: any): MacroAction {\r\n switch (macroAction.macroActionType) {\r\n case macroActionType.KeyMacroAction:\r\n return new KeyMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.MouseButtonMacroAction:\r\n return new MouseButtonMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.MoveMouseMacroAction:\r\n return new MoveMouseMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.ScrollMouseMacroAction:\r\n return new ScrollMouseMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.DelayMacroAction:\r\n return new DelayMacroAction().fromJsonObject(macroAction);\r\n case macroActionType.TextMacroAction:\r\n return new TextMacroAction().fromJsonObject(macroAction);\r\n default:\r\n throw `Invalid MacroAction.macroActionType: \"${macroAction.macroActionType}\"`;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/macro-action/helper.ts","import { assertUInt8 } from '../assert';\r\nimport { UhkBuffer } from '../uhk-buffer';\r\n\r\nexport class ModuleConfiguration {\r\n\r\n /*\r\n * module id enumeration is a separate story\r\n */\r\n\r\n @assertUInt8\r\n id: number;\r\n\r\n @assertUInt8\r\n initialPointerSpeed: number;\r\n\r\n @assertUInt8\r\n pointerAcceleration: number;\r\n\r\n @assertUInt8\r\n maxPointerSpeed: number;\r\n\r\n fromJsonObject(jsonObject: any): ModuleConfiguration {\r\n this.id = jsonObject.id;\r\n this.initialPointerSpeed = jsonObject.initialPointerSpeed;\r\n this.pointerAcceleration = jsonObject.pointerAcceleration;\r\n this.maxPointerSpeed = jsonObject.maxPointerSpeed;\r\n return this;\r\n }\r\n\r\n fromBinary(buffer: UhkBuffer): ModuleConfiguration {\r\n this.id = buffer.readUInt8();\r\n this.initialPointerSpeed = buffer.readUInt8();\r\n this.pointerAcceleration = buffer.readUInt8();\r\n this.maxPointerSpeed = buffer.readUInt8();\r\n return this;\r\n }\r\n\r\n toJsonObject(): any {\r\n return {\r\n id: this.id,\r\n initialPointerSpeed: this.initialPointerSpeed,\r\n pointerAcceleration: this.pointerAcceleration,\r\n maxPointerSpeed: this.maxPointerSpeed\r\n };\r\n }\r\n\r\n toBinary(buffer: UhkBuffer): void {\r\n buffer.writeUInt8(this.id);\r\n buffer.writeUInt8(this.initialPointerSpeed);\r\n buffer.writeUInt8(this.pointerAcceleration);\r\n buffer.writeUInt8(this.maxPointerSpeed);\r\n }\r\n\r\n toString(): string {\r\n return ``;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/config-serializer/config-items/module-configuration.ts","export namespace Constants {\r\n export const VENDOR_ID = 0x1D50;\r\n export const PRODUCT_ID = 0x6122;\r\n export const MAX_PAYLOAD_SIZE = 64;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/util/constants.ts","class App {\r\n public static readonly appStarted = 'app-started';\r\n}\r\n\r\nclass AutoUpdate {\r\n public static readonly checkingForUpdate = 'checking-for-update';\r\n public static readonly updateAvailable = 'update-available';\r\n public static readonly updateNotAvailable = 'update-not-available';\r\n public static readonly autoUpdateError = 'auto-update-error';\r\n public static readonly autoUpdateDownloaded = 'update-downloaded';\r\n public static readonly autoUpdateDownloadProgress = 'auto-update-download-progress';\r\n public static readonly updateAndRestart = 'update-and-restart';\r\n public static readonly checkForUpdate = 'check-for-update';\r\n public static readonly checkForUpdateNotAvailable = 'check-for-update-not-available';\r\n}\r\n\r\nexport class IpcEvents {\r\n public static readonly app = App;\r\n public static readonly autoUpdater = AutoUpdate;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/util/ipcEvents.ts","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n Sorry, there is no keymap with this abbreviation.\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/edit/keymap-edit.component.html\n// module id = 644\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n display: block; }\\n\\n.not-found {\\n margin-top: 30px;\\n font-size: 16px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/edit/keymap-edit.component.scss\n// module id = 645\n// module chunks = 1","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges,\r\n Renderer,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Keymap } from '../../../config-serializer/config-items/keymap';\r\n\r\nimport { AppState } from '../../../store';\r\nimport { KeymapActions } from '../../../store/actions';\r\n\r\n@Component({\r\n selector: 'keymap-header',\r\n template: require('./keymap-header.component.html'),\r\n styles: [require('./keymap-header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class KeymapHeaderComponent implements OnChanges {\r\n @Input() keymap: Keymap;\r\n @Input() deletable: boolean;\r\n @Output() downloadClick = new EventEmitter();\r\n\r\n @ViewChild('name') keymapName: ElementRef;\r\n @ViewChild('abbr') keymapAbbr: ElementRef;\r\n\r\n private starTitle: string;\r\n private trashTitle: string;\r\n\r\n constructor(private store: Store, private renderer: Renderer) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['keymap']) {\r\n this.setKeymapTitle();\r\n }\r\n if (changes['deletable']) {\r\n this.setTrashTitle();\r\n }\r\n }\r\n\r\n setDefault() {\r\n if (!this.keymap.isDefault) {\r\n this.store.dispatch(KeymapActions.setDefault(this.keymap.abbreviation));\r\n }\r\n }\r\n\r\n removeKeymap() {\r\n if (this.deletable) {\r\n this.store.dispatch(KeymapActions.removeKeymap(this.keymap.abbreviation));\r\n }\r\n }\r\n\r\n duplicateKeymap() {\r\n this.store.dispatch(KeymapActions.duplicateKeymap(this.keymap));\r\n }\r\n\r\n editKeymapName(name: string) {\r\n if (name.length === 0) {\r\n this.renderer.setElementProperty(this.keymapName.nativeElement, 'value', this.keymap.name);\r\n return;\r\n }\r\n\r\n this.store.dispatch(KeymapActions.editKeymapName(this.keymap.abbreviation, name));\r\n }\r\n\r\n editKeymapAbbr(newAbbr: string) {\r\n if (newAbbr.length !== 3) {\r\n this.renderer.setElementProperty(this.keymapAbbr.nativeElement, 'value', this.keymap.abbreviation);\r\n return;\r\n }\r\n\r\n newAbbr = newAbbr.toUpperCase();\r\n this.store.dispatch(KeymapActions.editKeymapAbbr(this.keymap.abbreviation, newAbbr));\r\n }\r\n\r\n setKeymapTitle(): void {\r\n this.starTitle = this.keymap.isDefault\r\n ? 'This is the default keymap which gets activated when powering the keyboard.'\r\n : 'Makes this keymap the default keymap which gets activated when powering the keyboard.';\r\n }\r\n\r\n setTrashTitle(): void {\r\n this.trashTitle = this.deletable ? '' : 'The last keymap cannot be deleted.';\r\n }\r\n\r\n onDownloadIconClick(): void {\r\n this.downloadClick.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keymap/header/keymap-header.component.ts","module.exports = \"
\\r\\n

\\r\\n \\r\\n keymap\\r\\n ()\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/header/keymap-header.component.html\n// module id = 647\n// module chunks = 1","module.exports = \":host {\\n display: block; }\\n\\n.keymap__is-default.fa-star-o {\\n cursor: pointer; }\\n .keymap__is-default.fa-star-o:hover {\\n color: #337ab7; }\\n\\n.keymap__remove {\\n font-size: 0.75em;\\n top: 8px; }\\n .keymap__remove:not(.disabled):hover {\\n cursor: pointer;\\n color: #900; }\\n .keymap__remove.disabled {\\n opacity: 0.25; }\\n\\n.keymap__duplicate {\\n font-size: 0.75em;\\n top: 7px;\\n margin-right: 15px;\\n position: relative; }\\n .keymap__duplicate:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.keymap__download {\\n top: 10px;\\n font-size: 0.8em;\\n position: relative;\\n margin-right: 10px; }\\n .keymap__download:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.pane-title {\\n margin-bottom: 1em; }\\n .pane-title__name, .pane-title__abbrev {\\n border: none;\\n border-bottom: 2px dotted #999;\\n padding: 0;\\n margin: 0 0.25rem; }\\n .pane-title__name:focus, .pane-title__abbrev:focus {\\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\\n border-color: transparent; }\\n .pane-title__name {\\n width: 290px;\\n text-overflow: ellipsis; }\\n .pane-title__abbrev {\\n width: 90px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/keymap/header/keymap-header.component.scss\n// module id = 648\n// module chunks = 1","export * from './layers.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/layers/index.ts","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'layers',\r\n template: require('./layers.component.html'),\r\n styles: [require('./layers.component.scss')]\r\n})\r\nexport class LayersComponent {\r\n @Input() current: number;\r\n @Output() select = new EventEmitter();\r\n\r\n private buttons: string[];\r\n\r\n constructor() {\r\n this.buttons = ['Base', 'Mod', 'Fn', 'Mouse'];\r\n this.current = 0;\r\n }\r\n\r\n selectLayer(index: number) {\r\n if (this.current === index) {\r\n return;\r\n }\r\n\r\n this.select.emit({\r\n oldIndex: this.current,\r\n index: index\r\n });\r\n\r\n this.current = index;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/layers/layers.component.ts","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/layers/layers.component.html\n// module id = 651\n// module chunks = 1","module.exports = \":host {\\n display: block; }\\n :host.disabled button {\\n cursor: no-drop;\\n background: rgba(204, 204, 204, 0.43);\\n pointer-events: none; }\\n :host.disabled button.btn-primary {\\n background: #7c7c7c;\\n border-color: #7c7c7c; }\\n\\n.uhk__layer-switcher--wrapper {\\n position: relative;\\n margin-bottom: 2rem; }\\n .uhk__layer-switcher--wrapper:before {\\n content: attr(data-title);\\n display: inline-block;\\n position: absolute;\\n bottom: 0.55em;\\n right: 100%;\\n font-size: 18px;\\n padding-right: 0.45em;\\n margin: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/layers/layers.component.scss\n// module id = 652\n// module chunks = 1","module.exports = \"\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n There is no macro with id {{ route.params.select('id') | async }}.\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/edit/macro-edit.component.html\n// module id = 653\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n height: 100%;\\n display: block; }\\n\\n.not-found {\\n margin-top: 30px;\\n font-size: 16px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/edit/macro-edit.component.scss\n// module id = 654\n// module chunks = 1","import { Component, EventEmitter, Input, Output, QueryList, ViewChildren, forwardRef } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { DragulaService } from 'ng2-dragula/ng2-dragula';\r\n\r\nimport { Macro } from '../../../config-serializer/config-items/macro';\r\nimport { MacroAction } from '../../../config-serializer/config-items/macro-action';\r\nimport { MacroItemComponent } from './../index';\r\n\r\n@Component({\r\n animations: [\r\n trigger('toggler', [\r\n state('inactive', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition('inactive <=> active', animate('500ms ease-out'))\r\n ]),\r\n trigger('togglerNew', [\r\n state('void', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition(':enter', animate('500ms ease-out')),\r\n transition(':leave', animate('500ms ease-out'))\r\n ])\r\n ],\r\n selector: 'macro-list',\r\n template: require('./macro-list.component.html'),\r\n styles: [require('./macro-list.component.scss')],\r\n viewProviders: [DragulaService]\r\n})\r\nexport class MacroListComponent {\r\n @Input() macro: Macro;\r\n @ViewChildren(forwardRef(() => MacroItemComponent)) macroItems: QueryList;\r\n\r\n @Output() add = new EventEmitter();\r\n @Output() edit = new EventEmitter();\r\n @Output() delete = new EventEmitter();\r\n @Output() reorder = new EventEmitter();\r\n\r\n private newMacro: Macro = undefined;\r\n private activeEdit: number = undefined;\r\n private dragIndex: number;\r\n private showNew: boolean = false;\r\n\r\n constructor(dragulaService: DragulaService) {\r\n /* tslint:disable:no-unused-variable: Used by Dragula. */\r\n dragulaService.setOptions('macroActions', {\r\n moves: function (el: any, container: any, handle: any) {\r\n return handle.className.includes('action--movable');\r\n }\r\n });\r\n\r\n dragulaService.drag.subscribe((value: any) => {\r\n this.dragIndex = +value[1].getAttribute('data-index');\r\n });\r\n\r\n dragulaService.drop.subscribe((value: any) => {\r\n if (value[4]) {\r\n this.reorder.emit({\r\n macroId: this.macro.id,\r\n oldIndex: this.dragIndex,\r\n newIndex: +value[4].getAttribute('data-index')\r\n });\r\n }\r\n });\r\n }\r\n\r\n showNewAction() {\r\n this.hideActiveEditor();\r\n\r\n this.newMacro = undefined;\r\n this.showNew = true;\r\n }\r\n\r\n hideNewAction() {\r\n this.showNew = false;\r\n }\r\n\r\n addNewAction(macroAction: MacroAction) {\r\n this.add.emit({\r\n macroId: this.macro.id,\r\n action: macroAction\r\n });\r\n\r\n this.newMacro = undefined;\r\n this.showNew = false;\r\n }\r\n\r\n editAction(index: number) {\r\n // Hide other editors when clicking edit button of a macro action\r\n this.hideActiveEditor();\r\n this.showNew = false;\r\n this.activeEdit = index;\r\n }\r\n\r\n cancelAction() {\r\n this.activeEdit = undefined;\r\n }\r\n\r\n saveAction(macroAction: MacroAction, index: number) {\r\n this.edit.emit({\r\n macroId: this.macro.id,\r\n index: index,\r\n action: macroAction\r\n });\r\n\r\n this.hideActiveEditor();\r\n }\r\n\r\n deleteAction(macroAction: MacroAction, index: number) {\r\n this.delete.emit({\r\n macroId: this.macro.id,\r\n index: index,\r\n action: macroAction\r\n });\r\n\r\n this.hideActiveEditor();\r\n }\r\n\r\n private hideActiveEditor() {\r\n if (this.activeEdit !== undefined) {\r\n this.macroItems.toArray()[this.activeEdit].cancelEdit();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/list/macro-list.component.ts","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/list/macro-list.component.html\n// module id = 656\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n height: 100%; }\\n :host .list-container {\\n display: flex;\\n flex: 1; }\\n\\n.main-wrapper {\\n width: 500px; }\\n\\nh1 {\\n margin-bottom: 3rem; }\\n\\n.action--edit__form {\\n background-color: #fff;\\n margin-left: -0.5rem;\\n margin-right: -15px;\\n margin-top: 15px;\\n padding-top: 15px;\\n border-top: 1px solid #ddd; }\\n\\n.action--item {\\n padding-left: 8px; }\\n .action--item.active, .action--item.active:hover {\\n background-color: white;\\n font-weight: bold;\\n color: black;\\n border-color: black;\\n z-index: 10; }\\n\\n.list-group {\\n overflow: auto; }\\n\\n.macro__name {\\n border-bottom: 2px dotted #999;\\n padding: 0 0.5rem;\\n margin: 0 0.25rem; }\\n\\n.macro-settings {\\n border: 1px solid black;\\n border-top-color: #999;\\n z-index: 100; }\\n .macro-settings .helper {\\n position: absolute;\\n display: block;\\n height: 13px;\\n background: #fff;\\n width: 100%;\\n left: 0;\\n top: -14px; }\\n\\n.action--item.active.callout,\\n.macro-settings.callout {\\n box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.5); }\\n\\n.macro-actions-container {\\n margin-bottom: 0;\\n border-radius: 4px;\\n border: 1px solid #ddd;\\n border-bottom: 0; }\\n\\n.list-group-item .move-handle:hover {\\n cursor: move; }\\n\\n.flex-button-wrapper {\\n display: flex;\\n flex-direction: row-reverse; }\\n\\n.flex-button {\\n align-self: flex-end; }\\n\\n.add-new__action-container {\\n overflow: hidden;\\n flex-shrink: 0;\\n border-top: 1px solid #ddd; }\\n\\n.add-new__action-item {\\n border-radius: 0 0 4px 4px;\\n border-top: 0;\\n padding: 0; }\\n .add-new__action-item:hover {\\n cursor: pointer; }\\n .add-new__action-item--link {\\n width: 50%;\\n float: left;\\n padding: 10px 5px;\\n text-align: center;\\n color: #337ab7; }\\n .add-new__action-item--link:first-of-type {\\n border-right: 1px solid #ddd; }\\n .add-new__action-item--link:hover {\\n text-decoration: none;\\n background: #e6e6e6; }\\n .add-new__action-item .fa-circle {\\n color: #c00; }\\n\\n.gu-mirror {\\n position: fixed;\\n margin: 0;\\n z-index: 9999;\\n opacity: 0.8; }\\n\\n.gu-hide {\\n display: none; }\\n\\n.gu-unselectable {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/list/macro-list.component.scss\n// module id = 657\n// module chunks = 1","import {\r\n AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, Renderer,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Macro } from '../../../config-serializer/config-items/macro';\r\n\r\nimport { MacroActions } from '../../../store/actions';\r\nimport { AppState } from '../../../store/index';\r\n\r\n@Component({\r\n selector: 'macro-header',\r\n template: require('./macro-header.component.html'),\r\n styles: [require('./macro-header.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MacroHeaderComponent implements AfterViewInit, OnChanges {\r\n @Input() macro: Macro;\r\n @Input() isNew: boolean;\r\n @ViewChild('macroName') macroName: ElementRef;\r\n\r\n constructor(private store: Store, private renderer: Renderer) { }\r\n\r\n ngOnChanges() {\r\n if (this.isNew) {\r\n this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isNew) {\r\n this.renderer.invokeElementMethod(this.macroName.nativeElement, 'select', []);\r\n }\r\n }\r\n\r\n removeMacro() {\r\n this.store.dispatch(MacroActions.removeMacro(this.macro.id));\r\n }\r\n\r\n duplicateMacro() {\r\n this.store.dispatch(MacroActions.duplicateMacro(this.macro));\r\n }\r\n\r\n editMacroName(name: string) {\r\n if (name.length === 0) {\r\n this.renderer.setElementProperty(this.macroName.nativeElement, 'value', this.macro.name);\r\n return;\r\n }\r\n\r\n this.store.dispatch(MacroActions.editMacroName(this.macro.id, name));\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/header/macro-header.component.ts","module.exports = \"
\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/header/macro-header.component.html\n// module id = 659\n// module chunks = 1","module.exports = \".macro__remove {\\n font-size: 0.75em;\\n top: 8px; }\\n .macro__remove:hover {\\n cursor: pointer;\\n color: #900; }\\n\\n.macro__duplicate {\\n font-size: 0.75em;\\n top: 7px;\\n margin-right: 15px;\\n position: relative; }\\n .macro__duplicate:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.pane-title {\\n margin-bottom: 1em; }\\n .pane-title__name {\\n border: none;\\n border-bottom: 2px dotted #999;\\n padding: 0;\\n margin: 0 0.25rem;\\n width: 330px;\\n text-overflow: ellipsis; }\\n .pane-title__name:focus {\\n box-shadow: 0 0 0 1px #ccc, 0 0 5px 0 #ccc;\\n border-color: transparent; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/header/macro-header.component.scss\n// module id = 660\n// module chunks = 1","import { Routes } from '@angular/router';\r\n\r\nimport { MacroEditComponent } from './edit/macro-edit.component';\r\nimport { MacroNotFoundComponent, MacroNotFoundGuard } from './not-found';\r\n\r\nexport const macroRoutes: Routes = [\r\n {\r\n path: 'macro',\r\n component: MacroNotFoundComponent,\r\n canActivate: [MacroNotFoundGuard]\r\n },\r\n {\r\n path: 'macro/:id',\r\n component: MacroEditComponent\r\n },\r\n {\r\n path: 'macro/:id/:empty',\r\n component: MacroEditComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/macro.routes.ts","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'macro-not-found',\r\n template: require('./macro-not-found.component.html'),\r\n styles: [require('./macro-not-found.component.scss')]\r\n})\r\nexport class MacroNotFoundComponent { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/not-found/macro-not-found.component.ts","module.exports = \"
\\r\\n You don't have any macros. Try to add one!\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/not-found/macro-not-found.component.html\n// module id = 663\n// module chunks = 1","module.exports = \".not-found {\\n margin-top: 30px;\\n font-size: 16px;\\n text-align: center; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/not-found/macro-not-found.component.scss\n// module id = 664\n// module chunks = 1","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport 'rxjs/add/operator/let';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { AppState } from '../../../store/index';\r\nimport { getMacros } from '../../../store/reducers/user-configuration';\r\nimport { Macro } from './../../../config-serializer/config-items/macro';\r\n\r\n@Injectable()\r\nexport class MacroNotFoundGuard implements CanActivate {\r\n\r\n constructor(private store: Store, private router: Router) { }\r\n\r\n canActivate(): Observable {\r\n return this.store\r\n .let(getMacros())\r\n .map((macros: Macro[]) => {\r\n const hasMacros = macros.length > 0;\r\n if (hasMacros) {\r\n this.router.navigate(['/macro', macros[0].id]);\r\n }\r\n return !hasMacros;\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/not-found/macro-not-found-guard.service.ts","export { MacroItemComponent } from './macro-item.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/item/index.ts","import { Component, Input, Output, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { KeyModifiers } from '../../../config-serializer/config-items/key-modifiers';\r\nimport {\r\n DelayMacroAction,\r\n KeyMacroAction,\r\n MacroAction,\r\n MouseButtonMacroAction,\r\n MoveMouseMacroAction,\r\n ScrollMouseMacroAction,\r\n TextMacroAction\r\n} from '../../../config-serializer/config-items/macro-action';\r\n\r\nimport { MapperService } from '../../../services/mapper.service';\r\n\r\n@Component({\r\n animations: [\r\n trigger('toggler', [\r\n state('inactive', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition('inactive <=> active', animate('500ms ease-out'))\r\n ])\r\n ],\r\n selector: 'macro-item',\r\n template: require('./macro-item.component.html'),\r\n styles: [require('./macro-item.component.scss')],\r\n host: { 'class': 'macro-item' }\r\n})\r\nexport class MacroItemComponent implements OnInit, OnChanges {\r\n @Input() macroAction: MacroAction;\r\n @Input() editable: boolean;\r\n @Input() deletable: boolean;\r\n @Input() movable: boolean;\r\n\r\n @Output() save = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n @Output() edit = new EventEmitter();\r\n @Output() delete = new EventEmitter();\r\n\r\n private title: string;\r\n private iconName: string;\r\n private editing: boolean;\r\n private newItem: boolean = false;\r\n\r\n constructor(private mapper: MapperService) { }\r\n\r\n ngOnInit() {\r\n this.updateView();\r\n if (!this.macroAction) {\r\n this.editing = true;\r\n this.newItem = true;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['macroAction']) {\r\n this.updateView();\r\n }\r\n }\r\n\r\n saveEditedAction(editedAction: MacroAction): void {\r\n this.macroAction = editedAction;\r\n this.editing = false;\r\n this.updateView();\r\n this.save.emit(editedAction);\r\n }\r\n\r\n editAction(): void {\r\n if (!this.editable || this.editing) {\r\n this.cancelEdit();\r\n return;\r\n }\r\n\r\n this.editing = true;\r\n this.edit.emit();\r\n }\r\n\r\n cancelEdit(): void {\r\n this.editing = false;\r\n this.cancel.emit();\r\n }\r\n\r\n deleteAction(): void {\r\n this.delete.emit();\r\n }\r\n\r\n private updateView(): void {\r\n if (!this.macroAction) {\r\n this.title = 'New macro action';\r\n } else if (this.macroAction instanceof DelayMacroAction) {\r\n // Delay\r\n this.iconName = 'clock';\r\n const action: DelayMacroAction = this.macroAction as DelayMacroAction;\r\n const delay = action.delay > 0 ? action.delay / 1000 : 0;\r\n this.title = `Delay of ${delay}s`;\r\n } else if (this.macroAction instanceof TextMacroAction) {\r\n // Write text\r\n const action: TextMacroAction = this.macroAction as TextMacroAction;\r\n this.iconName = 'font';\r\n this.title = `Write text: ${action.text}`;\r\n } else if (this.macroAction instanceof KeyMacroAction) {\r\n // Key pressed/held/released\r\n const action: KeyMacroAction = this.macroAction as KeyMacroAction;\r\n this.setKeyActionContent(action);\r\n } else if (this.macroAction instanceof MouseButtonMacroAction) {\r\n // Mouse button clicked/held/released\r\n const action: MouseButtonMacroAction = this.macroAction as MouseButtonMacroAction;\r\n this.setMouseButtonActionContent(action);\r\n } else if (this.macroAction instanceof MoveMouseMacroAction || this.macroAction instanceof ScrollMouseMacroAction) {\r\n // Mouse moved or scrolled\r\n this.setMouseMoveScrollActionContent(this.macroAction);\r\n } else {\r\n this.title = this.macroAction.constructor.name;\r\n }\r\n }\r\n\r\n private setKeyActionContent(action: KeyMacroAction): void {\r\n if (!action.hasScancode() && !action.hasModifiers()) {\r\n this.title = 'Invalid keypress';\r\n return;\r\n }\r\n\r\n if (action.isPressAction()) {\r\n // Press key\r\n this.iconName = 'hand-pointer';\r\n this.title = 'Press key: ';\r\n } else if (action.isHoldAction()) {\r\n // Hold key\r\n this.iconName = 'hand-rock';\r\n this.title = 'Hold key: ';\r\n } else if (action.isReleaseAction()) {\r\n // Release key\r\n this.iconName = 'hand-paper';\r\n this.title = 'Release key: ';\r\n }\r\n\r\n if (action.hasScancode()) {\r\n const scancode: string = (this.mapper.scanCodeToText(action.scancode, action.type) || ['Unknown']).join(' ');\r\n if (scancode) {\r\n this.title += scancode;\r\n }\r\n }\r\n\r\n if (action.hasModifiers()) {\r\n // Press/hold/release modifiers\r\n for (let i = KeyModifiers.leftCtrl; i <= KeyModifiers.rightGui; i <<= 1) {\r\n if (action.isModifierActive(i)) {\r\n this.title += ' ' + KeyModifiers[i];\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setMouseMoveScrollActionContent(action: MacroAction): void {\r\n let typedAction: any;\r\n if (action instanceof MoveMouseMacroAction) {\r\n // Move mouse pointer\r\n this.iconName = 'mouse-pointer';\r\n this.title = 'Move pointer';\r\n typedAction = this.macroAction as MoveMouseMacroAction;\r\n } else {\r\n // Scroll mouse\r\n this.iconName = 'mouse-pointer';\r\n this.title = 'Scroll';\r\n typedAction = this.macroAction as ScrollMouseMacroAction;\r\n }\r\n\r\n let needAnd: boolean;\r\n if (Math.abs(typedAction.x) !== 0) {\r\n this.title += ` by ${Math.abs(typedAction.x)}px ${typedAction.x > 0 ? 'left' : 'right'}`;\r\n needAnd = true;\r\n }\r\n if (Math.abs(typedAction.y) !== 0) {\r\n this.title += ` ${needAnd ? 'and' : 'by'} ${Math.abs(typedAction.y)}px ${typedAction.y > 0 ? 'down' : 'up'}`;\r\n }\r\n }\r\n\r\n private setMouseButtonActionContent(action: MouseButtonMacroAction): void {\r\n // Press/hold/release mouse buttons\r\n if (action.isOnlyPressAction()) {\r\n this.iconName = 'mouse-pointer';\r\n this.title = 'Click mouse button: ';\r\n } else if (action.isOnlyHoldAction()) {\r\n this.iconName = 'hand-rock';\r\n this.title = 'Hold mouse button: ';\r\n } else if (action.isOnlyReleaseAction()) {\r\n this.iconName = 'hand-paper';\r\n this.title = 'Release mouse button: ';\r\n }\r\n\r\n const buttonLabels: string[] = ['Left', 'Middle', 'Right'];\r\n const selectedButtons: boolean[] = action.getMouseButtons();\r\n const selectedButtonLabels: string[] = [];\r\n selectedButtons.forEach((isSelected, idx) => {\r\n if (isSelected && buttonLabels[idx]) {\r\n selectedButtonLabels.push(buttonLabels[idx]);\r\n }\r\n });\r\n this.title += selectedButtonLabels.join(', ');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/item/macro-item.component.ts","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n
{{ title }}
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/item/macro-item.component.html\n// module id = 668\n// module chunks = 1","module.exports = \":host {\\n overflow: hidden;\\n display: block; }\\n :host.macro-item:first-of-type .list-group-item {\\n border-radius: 4px 4px 0 0; }\\n :host.macro-item:last-of-type .list-group-item {\\n border-bottom: 0; }\\n :host.gu-transit {\\n opacity: 0.2; }\\n :host.gu-transit .list-group-item {\\n background: #f5f5f5; }\\n\\n.action--item {\\n display: flex;\\n flex-shrink: 0;\\n border: 0;\\n border-bottom: 1px solid #ddd; }\\n .action--item icon {\\n margin: 0 5px; }\\n .action--item > div {\\n display: flex;\\n flex: 1; }\\n .action--item:first-child {\\n border-radius: 0; }\\n .action--item.is-editing {\\n background: #f5f5f5; }\\n .action--item--wrap {\\n justify-content: space-between; }\\n .action--item--wrap.pointer:hover {\\n cursor: pointer;\\n color: #337ab7; }\\n\\n.action--title {\\n display: flex;\\n flex: 1; }\\n\\n.action--movable:hover {\\n cursor: move; }\\n\\n.list-group-item {\\n margin-bottom: 0; }\\n\\n.macro-action-editor__container {\\n padding-top: 0;\\n padding-bottom: 0;\\n border-radius: 0;\\n border: none;\\n overflow: hidden; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/item/macro-item.component.scss\n// module id = 669\n// module chunks = 1","export { MacroActionEditorComponent } from './macro-action-editor.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/index.ts","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n MacroAction,\r\n DelayMacroAction,\r\n KeyMacroAction,\r\n ScrollMouseMacroAction,\r\n MoveMouseMacroAction,\r\n MouseButtonMacroAction,\r\n TextMacroAction,\r\n macroActionType,\r\n Helper as MacroActionHelper\r\n} from '../../../config-serializer/config-items/macro-action';\r\nimport { MacroDelayTabComponent, MacroMouseTabComponent, MacroKeyTabComponent, MacroTextTabComponent } from './tab';\r\nimport { KeystrokeAction } from '../../../config-serializer/config-items/key-action';\r\n\r\nenum TabName {\r\n Keypress,\r\n Text,\r\n Mouse,\r\n Delay\r\n}\r\n\r\n@Component({\r\n selector: 'macro-action-editor',\r\n template: require('./macro-action-editor.component.html'),\r\n styles: [require('./macro-action-editor.component.scss')],\r\n host: { 'class': 'macro-action-editor' }\r\n})\r\nexport class MacroActionEditorComponent implements OnInit {\r\n @Input() macroAction: MacroAction;\r\n\r\n @Output() save = new EventEmitter();\r\n @Output() cancel = new EventEmitter();\r\n\r\n @ViewChild('tab') selectedTab: MacroTextTabComponent | MacroKeyTabComponent | MacroMouseTabComponent | MacroDelayTabComponent;\r\n\r\n editableMacroAction: MacroAction;\r\n activeTab: TabName;\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n TabName = TabName;\r\n /* tslint:enable:variable-name */\r\n\r\n ngOnInit() {\r\n this.updateEditableMacroAction();\r\n const tab: TabName = this.getTabName(this.editableMacroAction);\r\n this.activeTab = tab;\r\n }\r\n\r\n ngOnChanges() {\r\n this.ngOnInit();\r\n }\r\n\r\n onCancelClick(): void {\r\n this.cancel.emit();\r\n }\r\n\r\n onSaveClick(): void {\r\n try {\r\n // TODO: Refactor after getKeyMacroAction has been added to all tabs\r\n const action = this.selectedTab instanceof MacroKeyTabComponent ?\r\n this.selectedTab.getKeyMacroAction() :\r\n this.selectedTab.macroAction;\r\n this.save.emit(action);\r\n } catch (e) {\r\n // TODO: show error dialog\r\n console.error(e);\r\n }\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n if (tab === this.getTabName(this.macroAction)) {\r\n this.updateEditableMacroAction();\r\n } else {\r\n this.editableMacroAction = undefined;\r\n }\r\n }\r\n\r\n getTabName(action: MacroAction): TabName {\r\n if (action instanceof DelayMacroAction) {\r\n return TabName.Delay;\r\n } else if (action instanceof TextMacroAction) {\r\n return TabName.Text;\r\n } else if (action instanceof KeyMacroAction) {\r\n return TabName.Keypress;\r\n } else if (action instanceof MouseButtonMacroAction ||\r\n action instanceof MoveMouseMacroAction ||\r\n action instanceof ScrollMouseMacroAction) {\r\n return TabName.Mouse;\r\n }\r\n return undefined;\r\n }\r\n\r\n private updateEditableMacroAction() {\r\n const macroAction: MacroAction = this.macroAction ? this.macroAction : new TextMacroAction();\r\n this.editableMacroAction = MacroActionHelper.createMacroAction(macroAction);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/macro-action-editor.component.ts","export { MacroDelayTabComponent } from './macro-delay.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/delay/index.ts","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { DelayMacroAction } from '../../../../../config-serializer/config-items/macro-action';\r\n\r\nconst INITIAL_DELAY = 0.5; // In seconds\r\n\r\n@Component({\r\n selector: 'macro-delay-tab',\r\n template: require('./macro-delay.component.html'),\r\n styles: [require('./macro-delay.component.scss')],\r\n host: { 'class': 'macro__delay' },\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MacroDelayTabComponent implements OnInit {\r\n @Input() macroAction: DelayMacroAction;\r\n @ViewChild('macroDelayInput') input: ElementRef;\r\n\r\n delay: number;\r\n presets: number[] = [0.3, 0.5, 0.8, 1, 2, 3, 4, 5];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (!this.macroAction) {\r\n this.macroAction = new DelayMacroAction();\r\n }\r\n this.delay = this.macroAction.delay > 0 ? this.macroAction.delay / 1000 : INITIAL_DELAY;\r\n }\r\n\r\n setDelay(value: number): void {\r\n this.delay = value;\r\n this.macroAction.delay = this.delay * 1000;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.ts","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Enter delay in seconds

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Choose a preset
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.html\n// module id = 674\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n position: relative; }\\n\\n.macro-delay__presets {\\n margin-top: 1rem; }\\n .macro-delay__presets button {\\n margin-right: 0.25rem;\\n margin-bottom: 0.25rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/delay/macro-delay.component.scss\n// module id = 675\n// module chunks = 1","export { MacroKeyTabComponent } from './macro-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/key/index.ts","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { KeyAction, KeystrokeAction } from '../../../../../config-serializer/config-items/key-action';\r\nimport { KeyMacroAction, MacroSubAction } from '../../../../../config-serializer/config-items/macro-action';\r\nimport { KeypressTabComponent } from '../../../../popover/tab';\r\nimport { Tab } from '../../../../popover/tab';\r\n\r\nenum TabName {\r\n Keypress,\r\n Hold,\r\n Release\r\n}\r\n\r\n@Component({\r\n selector: 'macro-key-tab',\r\n template: require('./macro-key.component.html'),\r\n styles: [\r\n require('../../macro-action-editor.component.scss'),\r\n require('./macro-key.component.scss')\r\n ],\r\n host: { 'class': 'macro__mouse' }\r\n})\r\nexport class MacroKeyTabComponent implements OnInit {\r\n @Input() macroAction: KeyMacroAction;\r\n @ViewChild('tab') selectedTab: Tab;\r\n @ViewChild('keypressTab') keypressTab: KeypressTabComponent;\r\n\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n TabName = TabName;\r\n /* tslint:enable:variable-name */\r\n activeTab: TabName;\r\n defaultKeyAction: KeystrokeAction;\r\n\r\n ngOnInit() {\r\n if (!this.macroAction) {\r\n this.macroAction = new KeyMacroAction();\r\n }\r\n this.defaultKeyAction = new KeystrokeAction(this.macroAction);\r\n this.selectTab(this.getTabName(this.macroAction));\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n }\r\n\r\n getTabName(macroAction: KeyMacroAction): TabName {\r\n if (!macroAction.action) {\r\n return TabName.Keypress;\r\n } else if (macroAction.action === MacroSubAction.hold) {\r\n return TabName.Hold;\r\n } else if (macroAction.action === MacroSubAction.release) {\r\n return TabName.Release;\r\n }\r\n }\r\n\r\n getActionType(tab: TabName): MacroSubAction {\r\n switch (tab) {\r\n case TabName.Keypress:\r\n return MacroSubAction.press;\r\n case TabName.Hold:\r\n return MacroSubAction.hold;\r\n case TabName.Release:\r\n return MacroSubAction.release;\r\n default:\r\n throw new Error('Invalid tab type');\r\n }\r\n }\r\n\r\n getKeyMacroAction(): KeyMacroAction {\r\n const keyMacroAction = Object.assign(new KeyMacroAction(), this.keypressTab.toKeyAction());\r\n keyMacroAction.action = this.getActionType(this.activeTab);\r\n return keyMacroAction;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/key/macro-key.component.ts","export * from './keymap-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/keymap/index.ts","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';\r\n\r\nimport { Select2OptionData } from 'ng2-select2/ng2-select2';\r\n\r\nimport { KeyAction, SwitchKeymapAction } from '../../../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../../../config-serializer/config-items/keymap';\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'keymap-tab',\r\n template: require('./keymap-tab.component.html'),\r\n styles: [require('./keymap-tab.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class KeymapTabComponent extends Tab implements OnInit, OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() keymaps: Keymap[];\r\n\r\n private keymapOptions: Array;\r\n private selectedKeymap: Keymap;\r\n\r\n constructor() {\r\n super();\r\n this.keymapOptions = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.keymapOptions = this.keymaps\r\n .map((keymap: Keymap): Select2OptionData => {\r\n return {\r\n id: keymap.abbreviation,\r\n text: keymap.name\r\n };\r\n });\r\n if (this.keymaps.length > 0) {\r\n this.selectedKeymap = this.keymaps[0];\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(true);\r\n }\r\n\r\n // TODO: change to the correct type when the wrapper has added it.\r\n onChange(event: any) {\r\n if (event.value === '-1') {\r\n this.selectedKeymap = undefined;\r\n } else {\r\n this.selectedKeymap = this.keymaps.find((keymap: Keymap) => keymap.abbreviation === event.value);\r\n }\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return !!this.selectedKeymap;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof SwitchKeymapAction)) {\r\n return false;\r\n }\r\n\r\n const switchKeymapAction: SwitchKeymapAction = keyAction;\r\n this.selectedKeymap = this.keymaps\r\n .find((keymap: Keymap) => keymap.abbreviation === switchKeymapAction.keymapAbbreviation);\r\n }\r\n\r\n toKeyAction(): SwitchKeymapAction {\r\n if (!this.keyActionValid()) {\r\n throw new Error('KeyAction is not valid. No selected keymap!');\r\n }\r\n\r\n const keymapAction = new SwitchKeymapAction();\r\n keymapAction.keymapAbbreviation = this.selectedKeymap.abbreviation;\r\n return keymapAction;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/keymap/keymap-tab.component.ts","module.exports = \"\\r\\n No keymaps are available to choose from. Create a keymap first! \\r\\n\\r\\n 0\\\">\\r\\n
\\r\\n Switch to keymap:\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keymap/keymap-tab.component.html\n// module id = 680\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column; }\\n :host > span {\\n text-align: center; }\\n :host > div {\\n display: flex;\\n margin-top: 2px; }\\n :host > div b {\\n display: flex;\\n align-items: center;\\n margin-right: 7px; }\\n :host > div select2 {\\n flex: 1; }\\n :host > div:last-child {\\n margin-top: 10px; }\\n :host > div:last-child img {\\n max-height: 100%;\\n max-width: 100%; }\\n\\n.empty {\\n display: flex; }\\n .empty img {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n position: relative; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keymap/keymap-tab.component.scss\n// module id = 681\n// module chunks = 1","export * from './keypress-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/keypress/index.ts","import { Component, Input, OnChanges } from '@angular/core';\r\n\r\nimport { Select2OptionData, Select2TemplateFunction } from 'ng2-select2';\r\n\r\nimport { KeyAction, KeystrokeAction } from '../../../../config-serializer/config-items/key-action';\r\n\r\nimport { Tab } from '../tab';\r\nimport { MapperService } from '../../../../services/mapper.service';\r\nimport { KeystrokeType } from '../../../../config-serializer/config-items/key-action/keystroke-type';\r\n\r\n@Component({\r\n selector: 'keypress-tab',\r\n template: require('./keypress-tab.component.html'),\r\n styles: [require('./keypress-tab.component.scss')]\r\n})\r\nexport class KeypressTabComponent extends Tab implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() longPressEnabled: boolean;\r\n\r\n leftModifiers: string[];\r\n rightModifiers: string[];\r\n\r\n leftModifierSelects: boolean[];\r\n rightModifierSelects: boolean[];\r\n\r\n scanCodeGroups: Array;\r\n longPressGroups: Array;\r\n options: Select2Options;\r\n\r\n selectedScancodeOption: Select2OptionData;\r\n selectedLongPressIndex: number;\r\n\r\n constructor(private mapper: MapperService) {\r\n super();\r\n this.leftModifiers = ['LShift', 'LCtrl', 'LSuper', 'LAlt'];\r\n this.rightModifiers = ['RShift', 'RCtrl', 'RSuper', 'RAlt'];\r\n this.scanCodeGroups = [{\r\n id: '0',\r\n text: 'None'\r\n }];\r\n this.scanCodeGroups = this.scanCodeGroups.concat(require('json-loader!./scancodes.json'));\r\n this.longPressGroups = require('json-loader!./longPress.json');\r\n this.leftModifierSelects = Array(this.leftModifiers.length).fill(false);\r\n this.rightModifierSelects = Array(this.rightModifiers.length).fill(false);\r\n this.selectedScancodeOption = this.scanCodeGroups[0];\r\n this.selectedLongPressIndex = -1;\r\n this.options = {\r\n templateResult: this.scanCodeTemplateResult,\r\n matcher: (term: string, text: string, data: Select2OptionData) => {\r\n let found = text.toUpperCase().indexOf(term.toUpperCase()) > -1;\r\n\r\n if (!found && data.additional && data.additional.explanation) {\r\n found = data.additional.explanation.toUpperCase().indexOf(term.toUpperCase()) > -1;\r\n }\r\n\r\n return found;\r\n }\r\n };\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n keyActionValid(keystrokeAction?: KeystrokeAction): boolean {\r\n if (!keystrokeAction) {\r\n keystrokeAction = this.toKeyAction();\r\n }\r\n\r\n return (keystrokeAction) ? (keystrokeAction.scancode > 0 || keystrokeAction.modifierMask > 0) : false;\r\n }\r\n\r\n onKeysCapture(event: { code: number, left: boolean[], right: boolean[] }) {\r\n if (event.code) {\r\n this.selectedScancodeOption = this.findScancodeOptionByScancode(event.code, KeystrokeType.basic);\r\n } else {\r\n this.selectedScancodeOption = this.scanCodeGroups[0];\r\n }\r\n\r\n this.leftModifierSelects = event.left;\r\n this.rightModifierSelects = event.right;\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof KeystrokeAction)) {\r\n return false;\r\n }\r\n const keystrokeAction: KeystrokeAction = keyAction;\r\n // Restore selectedScancodeOption\r\n this.selectedScancodeOption = this.findScancodeOptionByScancode(keystrokeAction.scancode || 0, keystrokeAction.type);\r\n\r\n const leftModifiersLength: number = this.leftModifiers.length;\r\n\r\n // Restore modifiers\r\n for (let i = 0; i < leftModifiersLength; ++i) {\r\n this.leftModifierSelects[this.mapper.modifierMapper(i)] = ((keystrokeAction.modifierMask >> i) & 1) === 1;\r\n }\r\n\r\n for (let i = leftModifiersLength; i < leftModifiersLength + this.rightModifierSelects.length; ++i) {\r\n const index: number = this.mapper.modifierMapper(i) - leftModifiersLength;\r\n this.rightModifierSelects[index] = ((keystrokeAction.modifierMask >> i) & 1) === 1;\r\n }\r\n\r\n // Restore longPressAction\r\n if (keystrokeAction.longPressAction !== undefined) {\r\n this.selectedLongPressIndex = this.mapper.modifierMapper(keystrokeAction.longPressAction);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n toKeyAction(): KeystrokeAction {\r\n const keystrokeAction: KeystrokeAction = new KeystrokeAction();\r\n const scTypePair = this.toScancodeTypePair(this.selectedScancodeOption);\r\n keystrokeAction.scancode = scTypePair[0];\r\n if (scTypePair[1] === 'media') {\r\n keystrokeAction.type = KeystrokeType.shortMedia;\r\n } else {\r\n keystrokeAction.type = KeystrokeType[scTypePair[1]];\r\n }\r\n keystrokeAction.modifierMask = 0;\r\n const modifiers = this.leftModifierSelects.concat(this.rightModifierSelects).map(x => x ? 1 : 0);\r\n for (let i = 0; i < modifiers.length; ++i) {\r\n keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i);\r\n }\r\n\r\n keystrokeAction.longPressAction = this.selectedLongPressIndex === -1\r\n ? undefined\r\n : this.mapper.modifierMapper(this.selectedLongPressIndex);\r\n\r\n if (this.keyActionValid(keystrokeAction)) {\r\n return keystrokeAction;\r\n }\r\n }\r\n\r\n scanCodeTemplateResult: Select2TemplateFunction = (state: Select2OptionData): JQuery | string => {\r\n if (!state.id) {\r\n return state.text;\r\n }\r\n\r\n if (state.additional && state.additional.explanation) {\r\n return jQuery(\r\n ''\r\n + '' + state.text + ''\r\n + ' '\r\n + state.additional.explanation\r\n + '' +\r\n ''\r\n );\r\n } else {\r\n return jQuery('' + state.text + '');\r\n }\r\n }\r\n\r\n toggleModifier(right: boolean, index: number) {\r\n const modifierSelects: boolean[] = right ? this.rightModifierSelects : this.leftModifierSelects;\r\n modifierSelects[index] = !modifierSelects[index];\r\n\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n onLongpressChange(event: { value: string }) {\r\n this.selectedLongPressIndex = +event.value;\r\n }\r\n\r\n onScancodeChange(event: { value: string }) {\r\n const id: string = event.value;\r\n\r\n // ng2-select2 should provide the selectedOption in an upcoming release\r\n // TODO: change this when it has become available\r\n this.selectedScancodeOption = this.findScancodeOptionById(id);\r\n\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n private findScancodeOptionBy(predicate: (option: Select2OptionData) => boolean): Select2OptionData {\r\n let selectedOption: Select2OptionData;\r\n\r\n const scanCodeGroups: Select2OptionData[] = [...this.scanCodeGroups];\r\n while (scanCodeGroups.length > 0) {\r\n const scanCodeGroup = scanCodeGroups.shift();\r\n if (predicate(scanCodeGroup)) {\r\n selectedOption = scanCodeGroup;\r\n break;\r\n }\r\n scanCodeGroups.push(...scanCodeGroup.children);\r\n }\r\n return selectedOption;\r\n }\r\n\r\n private findScancodeOptionById(id: string): Select2OptionData {\r\n return this.findScancodeOptionBy(option => option.id === id);\r\n }\r\n\r\n private findScancodeOptionByScancode(scancode: number, type: KeystrokeType): Select2OptionData {\r\n const typeToFind: string =\r\n (type === KeystrokeType.shortMedia || type === KeystrokeType.longMedia) ? 'media' : KeystrokeType[type];\r\n return this.findScancodeOptionBy((option: Select2OptionData) => {\r\n const additional = option.additional;\r\n if (additional && additional.scancode === scancode && additional.type === typeToFind) {\r\n return true;\r\n } else if ((!additional || additional.scancode === undefined) && +option.id === scancode) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n private toScancodeTypePair(option: Select2OptionData): [number, string] {\r\n let scanCode: number;\r\n let type: string;\r\n if (option.additional) {\r\n scanCode = option.additional.scancode;\r\n type = option.additional.type || 'basic';\r\n } else {\r\n type = 'basic';\r\n }\r\n if (scanCode === undefined) {\r\n scanCode = +option.id;\r\n }\r\n\r\n return [scanCode, type];\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/keypress/keypress-tab.component.ts","module.exports = [\n\t{\n\t\t\"text\": \"Letter\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"4\",\n\t\t\t\t\"text\": \"A\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"5\",\n\t\t\t\t\"text\": \"B\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"6\",\n\t\t\t\t\"text\": \"C\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"7\",\n\t\t\t\t\"text\": \"D\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"8\",\n\t\t\t\t\"text\": \"E\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"9\",\n\t\t\t\t\"text\": \"F\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"10\",\n\t\t\t\t\"text\": \"G\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"11\",\n\t\t\t\t\"text\": \"H\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"12\",\n\t\t\t\t\"text\": \"I\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"13\",\n\t\t\t\t\"text\": \"J\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"14\",\n\t\t\t\t\"text\": \"K\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"15\",\n\t\t\t\t\"text\": \"L\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"16\",\n\t\t\t\t\"text\": \"M\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"17\",\n\t\t\t\t\"text\": \"N\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"18\",\n\t\t\t\t\"text\": \"O\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"19\",\n\t\t\t\t\"text\": \"P\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"20\",\n\t\t\t\t\"text\": \"Q\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"21\",\n\t\t\t\t\"text\": \"R\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"22\",\n\t\t\t\t\"text\": \"S\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"23\",\n\t\t\t\t\"text\": \"T\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"24\",\n\t\t\t\t\"text\": \"U\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"25\",\n\t\t\t\t\"text\": \"V\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"26\",\n\t\t\t\t\"text\": \"W\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"27\",\n\t\t\t\t\"text\": \"X\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"28\",\n\t\t\t\t\"text\": \"Y\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"29\",\n\t\t\t\t\"text\": \"Z\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Number\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"39\",\n\t\t\t\t\"text\": \"0 )\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"30\",\n\t\t\t\t\"text\": \"1 !\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"31\",\n\t\t\t\t\"text\": \"2 @\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"32\",\n\t\t\t\t\"text\": \"3 #\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"33\",\n\t\t\t\t\"text\": \"4 $\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"34\",\n\t\t\t\t\"text\": \"5 %\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"35\",\n\t\t\t\t\"text\": \"6 ^\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"36\",\n\t\t\t\t\"text\": \"7 &\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"37\",\n\t\t\t\t\"text\": \"8 *\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"38\",\n\t\t\t\t\"text\": \"9 (\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Punctuation\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"45\",\n\t\t\t\t\"text\": \"- _\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"46\",\n\t\t\t\t\"text\": \"= +\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"47\",\n\t\t\t\t\"text\": \"[ {\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"48\",\n\t\t\t\t\"text\": \"] }\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"49\",\n\t\t\t\t\"text\": \"\\\\ |\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"51\",\n\t\t\t\t\"text\": \"; :\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"52\",\n\t\t\t\t\"text\": \"' \\\"\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"53\",\n\t\t\t\t\"text\": \"` ~\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"54\",\n\t\t\t\t\"text\": \", <\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"55\",\n\t\t\t\t\"text\": \". >\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"56\",\n\t\t\t\t\"text\": \"/ ?\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Whitespace\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"40\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"Return\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Enter\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"44\",\n\t\t\t\t\"text\": \"Space\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"43\",\n\t\t\t\t\"text\": \"Tab\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Miscellaneous\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"41\",\n\t\t\t\t\"text\": \"Escape\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"42\",\n\t\t\t\t\"text\": \"Backspace\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"73\",\n\t\t\t\t\"text\": \"Insert\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"76\",\n\t\t\t\t\"text\": \"Delete\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"118\",\n\t\t\t\t\"text\": \"Menu\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"57\",\n\t\t\t\t\"text\": \"Caps Lock\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"71\",\n\t\t\t\t\"text\": \"Scroll Lock\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"70\",\n\t\t\t\t\"text\": \"Print Screen\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"72\",\n\t\t\t\t\"text\": \"Pause\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Function\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"58\",\n\t\t\t\t\"text\": \"F1\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"59\",\n\t\t\t\t\"text\": \"F2\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"60\",\n\t\t\t\t\"text\": \"F3\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"61\",\n\t\t\t\t\"text\": \"F4\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"62\",\n\t\t\t\t\"text\": \"F5\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"63\",\n\t\t\t\t\"text\": \"F6\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"64\",\n\t\t\t\t\"text\": \"F7\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"65\",\n\t\t\t\t\"text\": \"F8\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"66\",\n\t\t\t\t\"text\": \"F9\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"67\",\n\t\t\t\t\"text\": \"F10\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"68\",\n\t\t\t\t\"text\": \"F11\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"69\",\n\t\t\t\t\"text\": \"F12\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"104\",\n\t\t\t\t\"text\": \"F13\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"105\",\n\t\t\t\t\"text\": \"F14\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"106\",\n\t\t\t\t\"text\": \"F15\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"107\",\n\t\t\t\t\"text\": \"F16\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"108\",\n\t\t\t\t\"text\": \"F17\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"109\",\n\t\t\t\t\"text\": \"F18\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"110\",\n\t\t\t\t\"text\": \"F19\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"111\",\n\t\t\t\t\"text\": \"F20\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"112\",\n\t\t\t\t\"text\": \"F21\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"113\",\n\t\t\t\t\"text\": \"F22\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"114\",\n\t\t\t\t\"text\": \"F23\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"115\",\n\t\t\t\t\"text\": \"F24\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Navigation\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"75\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"PgUp\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Page Up\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"78\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"PgDn\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"Page Down\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"74\",\n\t\t\t\t\"text\": \"Home\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"77\",\n\t\t\t\t\"text\": \"End\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"80\",\n\t\t\t\t\"text\": \"Left Arrow\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"79\",\n\t\t\t\t\"text\": \"Right Arrow\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"82\",\n\t\t\t\t\"text\": \"Up Arrow\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"81\",\n\t\t\t\t\"text\": \"Down Arrow\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Media\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"127\",\n\t\t\t\t\"text\": \"Mute\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 226\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"128\",\n\t\t\t\t\"text\": \"Volume Up\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 233\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"129\",\n\t\t\t\t\"text\": \"Volume Down\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 234\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"130\",\n\t\t\t\t\"text\": \"Next Track\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 181\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"131\",\n\t\t\t\t\"text\": \"Previous Track\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 182\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"132\",\n\t\t\t\t\"text\": \"Stop/Eject\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 204\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"133\",\n\t\t\t\t\"text\": \"Play/Pause\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 205\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"134\",\n\t\t\t\t\"text\": \"Play\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 176\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"135\",\n\t\t\t\t\"text\": \"Pause\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 177\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"136\",\n\t\t\t\t\"text\": \"Stop\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 183\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"137\",\n\t\t\t\t\"text\": \"Eject\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 184\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"138\",\n\t\t\t\t\"text\": \"WWW\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 138\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Launch application\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"142\",\n\t\t\t\t\"text\": \"Launch Web Browser\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 406\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"143\",\n\t\t\t\t\"text\": \"Launch Email Client\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 394\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"144\",\n\t\t\t\t\"text\": \"Launch Calculator\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\"scancode\": 402\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"System\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"139\",\n\t\t\t\t\"text\": \"Power Down\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"system\",\n\t\t\t\t\t\"scancode\": 129\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"140\",\n\t\t\t\t\"text\": \"Sleep\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"system\",\n\t\t\t\t\t\"scancode\": 130\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"141\",\n\t\t\t\t\"text\": \"Wake Up\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"type\": \"system\",\n\t\t\t\t\t\"scancode\": 131\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Numpad\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"83\",\n\t\t\t\t\"text\": \"NumLock\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"84\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"slash\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"/\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"85\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"asterisk\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"*\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"86\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"minus\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"-\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"87\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"plus\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"+\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"88\",\n\t\t\t\t\"text\": \"Enter\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"89\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"one\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"1\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"90\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"two\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"2\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"91\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"three\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"3\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"92\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"four\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"4\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"93\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"five\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"5\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"94\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"six\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"6\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"95\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"seven\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"7\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"96\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"eight\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"8\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"97\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"nine\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"9\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"98\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"zero\"\n\t\t\t\t},\n\t\t\t\t\"text\": \"0\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"99\",\n\t\t\t\t\"additional\": {\n\t\t\t\t\t\"explanation\": \"period\"\n\t\t\t\t},\n\t\t\t\t\"text\": \".\"\n\t\t\t}\n\t\t]\n\t}\n];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/json-loader!./shared/src/components/popover/tab/keypress/scancodes.json\n// module id = 684\n// module chunks = 1","module.exports = [\n\t{\n\t\t\"id\": \"-1\",\n\t\t\"text\": \"None\"\n\t},\n\t{\n\t\t\"text\": \"Modifier\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"0\",\n\t\t\t\t\"text\": \"LShift\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"1\",\n\t\t\t\t\"text\": \"LCtrl\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"2\",\n\t\t\t\t\"text\": \"LSuper\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"3\",\n\t\t\t\t\"text\": \"LAlt\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"4\",\n\t\t\t\t\"text\": \"RShift\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"5\",\n\t\t\t\t\"text\": \"RCtrl\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"6\",\n\t\t\t\t\"text\": \"RSuper\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"7\",\n\t\t\t\t\"text\": \"RAlt\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"text\": \"Layer switcher\",\n\t\t\"children\": [\n\t\t\t{\n\t\t\t\t\"id\": \"8\",\n\t\t\t\t\"text\": \"Mod\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"9\",\n\t\t\t\t\"text\": \"Mouse\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"id\": \"10\",\n\t\t\t\t\"text\": \"Fn\"\n\t\t\t}\n\t\t]\n\t}\n];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/json-loader!./shared/src/components/popover/tab/keypress/longPress.json\n// module id = 685\n// module chunks = 1","module.exports = \"
\\r\\n Scancode:\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Modifiers:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Long press action:\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n When a key is configured as layer switcher key, you can't assign other functions to it.\\r\\n To assign a scancode to the key, set the Layer action to None.\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keypress/keypress-tab.component.html\n// module id = 686\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n position: relative; }\\n :host .scancode-options {\\n margin-bottom: 10px;\\n margin-top: 2px; }\\n :host .scancode-options > b {\\n position: relative;\\n top: 2px; }\\n :host .modifier-options > b {\\n position: relative;\\n top: -9px;\\n margin-right: 4px; }\\n :host .modifier-options .btn-toolbar {\\n display: inline-block; }\\n :host .long-press-container {\\n display: flex;\\n margin-top: 3rem; }\\n :host .long-press-container > b {\\n margin-right: 0.6em;\\n align-items: center;\\n display: flex; }\\n :host .long-press-container .secondary-role {\\n width: 135px; }\\n :host .long-press-container icon {\\n margin-left: 0.6em; }\\n :host .setting-label.disabled {\\n color: #999; }\\n :host .disabled-state--text {\\n display: none;\\n position: absolute;\\n top: 50%;\\n margin-top: -4rem;\\n color: #31708f;\\n padding-right: 40px; }\\n :host .disabled-state--text .fa {\\n font-size: 2.6rem;\\n float: left;\\n padding: 1rem 1.5rem 2rem; }\\n :host.disabled .scancode-options,\\n :host.disabled .modifier-options,\\n :host.disabled .long-press-container {\\n visibility: hidden; }\\n :host.disabled .disabled-state--text {\\n display: block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/keypress/keypress-tab.component.scss\n// module id = 687\n// module chunks = 1","export * from './layer-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/layer/index.ts","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\nimport { KeyAction, LayerName, SwitchLayerAction } from '../../../../config-serializer/config-items/key-action';\r\n\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'layer-tab',\r\n template: require('./layer-tab.component.html'),\r\n styles: [require('./layer-tab.component.scss')]\r\n})\r\nexport class LayerTabComponent extends Tab implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() currentLayer: number;\r\n\r\n @HostBinding('class.no-base') isNotBase: boolean;\r\n\r\n toggleData: { id: boolean, text: string }[] = [\r\n {\r\n id: false,\r\n text: 'Activate'\r\n },\r\n {\r\n id: true,\r\n text: 'Toggle'\r\n }\r\n ];\r\n\r\n layerData: { id: number, text: string }[] = [\r\n {\r\n id: 0,\r\n text: 'Mod'\r\n },\r\n {\r\n id: 1,\r\n text: 'Fn'\r\n },\r\n {\r\n id: 2,\r\n text: 'Mouse'\r\n }\r\n ];\r\n\r\n private toggle: boolean;\r\n private layer: LayerName;\r\n\r\n constructor() {\r\n super();\r\n this.toggle = false;\r\n this.layer = LayerName.mod;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['defaultKeyAction']) {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n }\r\n\r\n if (changes['currentLayer']) {\r\n this.isNotBase = this.currentLayer > 0;\r\n }\r\n\r\n this.validAction.emit(true);\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return !this.isNotBase;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof SwitchLayerAction)) {\r\n return false;\r\n }\r\n\r\n const switchLayerAction: SwitchLayerAction = keyAction;\r\n this.toggle = switchLayerAction.isLayerToggleable;\r\n this.layer = switchLayerAction.layer;\r\n return true;\r\n }\r\n\r\n toKeyAction(): SwitchLayerAction {\r\n const keyAction = new SwitchLayerAction();\r\n keyAction.isLayerToggleable = this.toggle;\r\n keyAction.layer = this.layer;\r\n if (!this.keyActionValid()) {\r\n throw new Error('KeyAction is invalid!');\r\n }\r\n return keyAction;\r\n }\r\n\r\n toggleChanged(value: string) {\r\n this.toggle = value === 'true';\r\n }\r\n\r\n layerChanged(value: number) {\r\n this.layer = +value;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/layer/layer-tab.component.ts","module.exports = \"\\r\\n \\r\\n the\\r\\n \\r\\n \\r\\n layer by pressing this key.\\r\\n layer by holding this key.\\r\\n \\r\\n\\r\\n\\r\\n Layer switching is only possible from the base layer. \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/layer/layer-tab.component.html\n// module id = 690\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n margin: 0 -5px; }\\n :host.no-base {\\n justify-content: center; }\\n :host > span,\\n :host > select {\\n margin: 0 5px;\\n display: flex;\\n align-items: center; }\\n\\nselect {\\n background-color: #fff;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n padding: 4px 20px 4px 8px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/layer/layer-tab.component.scss\n// module id = 691\n// module chunks = 1","export * from './macro-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/macro/index.ts","import { Component, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { Select2OptionData } from 'ng2-select2/ng2-select2';\r\n\r\nimport { KeyAction, PlayMacroAction } from '../../../../config-serializer/config-items/key-action';\r\nimport { Macro } from '../../../../config-serializer/config-items/macro';\r\n\r\nimport { Tab } from '../tab';\r\n\r\nimport { AppState } from '../../../../store/index';\r\nimport { getMacros } from '../../../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n selector: 'macro-tab',\r\n template: require('./macro-tab.component.html'),\r\n styles: [require('./macro-tab.component.scss')]\r\n})\r\nexport class MacroTabComponent extends Tab implements OnInit, OnChanges, OnDestroy {\r\n @Input() defaultKeyAction: KeyAction;\r\n\r\n private macros: Macro[];\r\n private macroOptions: Array;\r\n private selectedMacroIndex: number;\r\n private subscription: Subscription;\r\n\r\n constructor(store: Store) {\r\n super();\r\n this.subscription = store.let(getMacros())\r\n .subscribe((macros: Macro[]) => this.macros = macros);\r\n this.macroOptions = [];\r\n this.selectedMacroIndex = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.macroOptions = this.macros.map(function (macro: Macro, index: number): Select2OptionData {\r\n return {\r\n id: index.toString(),\r\n text: macro.name\r\n };\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(true);\r\n }\r\n\r\n // TODO: change to the correct type when the wrapper has added it.\r\n onChange(event: any) {\r\n this.selectedMacroIndex = +event.value;\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return this.selectedMacroIndex >= 0;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof PlayMacroAction)) {\r\n return false;\r\n }\r\n const playMacroAction: PlayMacroAction = keyAction;\r\n this.selectedMacroIndex = this.macros.findIndex(macro => playMacroAction.macroId === macro.id);\r\n return true;\r\n }\r\n\r\n toKeyAction(): PlayMacroAction {\r\n if (!this.keyActionValid()) {\r\n throw new Error('KeyAction is not valid. No selected macro!');\r\n }\r\n\r\n const keymapAction = new PlayMacroAction();\r\n keymapAction.macroId = this.macros[this.selectedMacroIndex].id;\r\n return keymapAction;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/macro/macro-tab.component.ts","module.exports = \"\\r\\n No macros are available to choose from. Create a macro first! \\r\\n\\r\\n 0\\\">\\r\\n
\\r\\n Play macro: \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/macro/macro-tab.component.html\n// module id = 694\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column; }\\n :host > span {\\n text-align: center; }\\n :host .macro-selector {\\n display: flex;\\n margin-top: 2px; }\\n :host .macro-selector b {\\n display: flex;\\n align-items: center;\\n margin-right: 7px; }\\n :host .macro-selector select2 {\\n flex: 1; }\\n :host .macro-action-container {\\n display: flex;\\n flex-direction: column;\\n min-height: 200px;\\n max-height: 300px;\\n margin: 20px 0;\\n overflow-x: hidden;\\n overflow-y: auto;\\n border-radius: 4px;\\n border: 1px solid #ddd; }\\n :host .macro-action-container .list-group {\\n margin-bottom: 0;\\n border: 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/macro/macro-tab.component.scss\n// module id = 695\n// module chunks = 1","export * from './mouse-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/mouse/index.ts","import { Component, Input, OnChanges } from '@angular/core';\r\n\r\nimport { KeyAction, MouseAction, MouseActionParam } from '../../../../config-serializer/config-items/key-action';\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'mouse-tab',\r\n template: require('./mouse-tab.component.html'),\r\n styles: [require('./mouse-tab.component.scss')]\r\n})\r\nexport class MouseTabComponent extends Tab implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n MouseActionParam = MouseActionParam;\r\n /* tslint:enable:variable-name*/\r\n mouseActionParam: MouseActionParam;\r\n selectedPageIndex: number;\r\n pages: string[];\r\n\r\n constructor() {\r\n super();\r\n this.selectedPageIndex = 0;\r\n this.pages = ['Move', 'Scroll', 'Click', 'Speed'];\r\n }\r\n\r\n ngOnChanges() {\r\n this.fromKeyAction(this.defaultKeyAction);\r\n this.validAction.emit(this.keyActionValid());\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return this.mouseActionParam !== undefined;\r\n }\r\n\r\n fromKeyAction(keyAction: KeyAction): boolean {\r\n if (!(keyAction instanceof MouseAction)) {\r\n return false;\r\n }\r\n\r\n const mouseAction: MouseAction = keyAction;\r\n this.mouseActionParam = mouseAction.mouseAction;\r\n\r\n if (mouseAction.mouseAction === MouseActionParam.moveUp) {\r\n this.selectedPageIndex = 0;\r\n }\r\n\r\n switch (mouseAction.mouseAction) {\r\n case MouseActionParam.moveDown:\r\n case MouseActionParam.moveUp:\r\n case MouseActionParam.moveLeft:\r\n case MouseActionParam.moveRight:\r\n this.selectedPageIndex = 0;\r\n break;\r\n case MouseActionParam.scrollDown:\r\n case MouseActionParam.scrollUp:\r\n case MouseActionParam.scrollLeft:\r\n case MouseActionParam.scrollRight:\r\n this.selectedPageIndex = 1;\r\n break;\r\n case MouseActionParam.leftClick:\r\n case MouseActionParam.middleClick:\r\n case MouseActionParam.rightClick:\r\n this.selectedPageIndex = 2;\r\n break;\r\n case MouseActionParam.decelerate:\r\n case MouseActionParam.accelerate:\r\n this.selectedPageIndex = 3;\r\n break;\r\n default:\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n toKeyAction(): MouseAction {\r\n const mouseAction: MouseAction = new MouseAction();\r\n mouseAction.mouseAction = this.mouseActionParam;\r\n return mouseAction;\r\n }\r\n\r\n changePage(index: number) {\r\n if (index < -1 || index > 3) {\r\n console.error(`Invalid index error: ${index}`);\r\n return;\r\n }\r\n\r\n this.selectedPageIndex = index;\r\n this.mouseActionParam = undefined;\r\n this.validAction.emit(false);\r\n }\r\n\r\n setMouseActionParam(mouseActionParam: MouseActionParam) {\r\n this.mouseActionParam = mouseActionParam;\r\n this.validAction.emit(true);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/mouse/mouse-tab.component.ts","module.exports = \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Press this key along with mouse movement/scrolling to accelerate/decelerate the speed of the action.

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

You can set the multiplier in the settings.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/mouse/mouse-tab.component.html\n// module id = 698\n// module chunks = 1","module.exports = \":host {\\n display: flex; }\\n :host.popover-content {\\n padding: 10px;\\n display: flex;\\n align-items: center; }\\n :host .mouse-action .nav {\\n border-right: 1px solid #ccc; }\\n :host .mouse-action .nav li a {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n :host .mouse-action .nav li a.selected {\\n font-style: italic; }\\n :host .mouse-action .nav li.active a.selected {\\n font-style: normal; }\\n :host .mouse-action .nav li.active a:after {\\n content: '';\\n display: block;\\n position: absolute;\\n width: 0;\\n height: 0;\\n top: 0;\\n right: -4rem;\\n border-color: transparent transparent transparent #337ab7;\\n border-style: solid;\\n border-width: 2rem; }\\n :host .help-text--mouse-speed {\\n margin-bottom: 2rem;\\n font-size: 0.9em;\\n color: #666; }\\n :host .help-text--mouse-speed p {\\n margin: 0; }\\n :host .details .btn-placeholder {\\n visibility: hidden; }\\n\\n.mouse__config--speed .btn-default {\\n font-size: 25px;\\n line-height: 22px;\\n padding-top: 4px;\\n padding-bottom: 4px; }\\n .mouse__config--speed .btn-default span {\\n font-size: 13px;\\n display: block;\\n text-align: center; }\\n\\n.help-text--mouse-speed.last-help {\\n margin-bottom: 0;\\n margin-top: 2rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/mouse/mouse-tab.component.scss\n// module id = 699\n// module chunks = 1","export * from './none-tab.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/none/index.ts","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { Tab } from '../tab';\r\n\r\n@Component({\r\n selector: 'none-tab',\r\n template: require('./none-tab.component.html'),\r\n styles: [require('./none-tab.component.scss')]\r\n})\r\nexport class NoneTabComponent extends Tab implements OnInit {\r\n\r\n ngOnInit() {\r\n this.validAction.emit(true);\r\n }\r\n\r\n keyActionValid(): boolean {\r\n return true;\r\n }\r\n\r\n fromKeyAction(): boolean {\r\n return false;\r\n }\r\n\r\n toKeyAction(): undefined {\r\n return undefined;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/tab/none/none-tab.component.ts","module.exports = \"This key is unassigned and has no functionality.\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/none/none-tab.component.html\n// module id = 702\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n justify-content: center;\\n padding: 2rem 0; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/tab/none/none-tab.component.scss\n// module id = 703\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Press key

\\r\\n

Hold key

\\r\\n

Release key

\\r\\n \\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/key/macro-key.component.html\n// module id = 704\n// module chunks = 1","module.exports = \".macro-key__container {\\n padding: 0; }\\n\\n.macro-key__types {\\n margin-left: 0;\\n padding: 0 0 1rem; }\\n\\n.macro-key__action {\\n padding-left: 3rem;\\n padding-bottom: 1rem; }\\n .macro-key__action-container {\\n margin-top: -1rem;\\n padding-top: 1rem;\\n border-left: 1px solid #ddd; }\\n\\n.fa {\\n min-width: 14px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/key/macro-key.component.scss\n// module id = 705\n// module chunks = 1","export { MacroMouseTabComponent } from './macro-mouse.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/mouse/index.ts","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport {\r\n MouseButtonMacroAction, MoveMouseMacroAction, ScrollMouseMacroAction, MacroSubAction, macroActionType\r\n} from '../../../../../config-serializer/config-items/macro-action';\r\nimport { Tab } from '../../../../popover/tab';\r\n\r\ntype MouseMacroAction = MouseButtonMacroAction | MoveMouseMacroAction | ScrollMouseMacroAction;\r\n\r\nenum TabName {\r\n Move,\r\n Scroll,\r\n Click,\r\n Hold,\r\n Release\r\n}\r\n\r\n@Component({\r\n selector: 'macro-mouse-tab',\r\n template: require('./macro-mouse.component.html'),\r\n styles: [\r\n require('../../macro-action-editor.component.scss'),\r\n require('./macro-mouse.component.scss')\r\n ],\r\n host: { 'class': 'macro__mouse' }\r\n})\r\nexport class MacroMouseTabComponent implements OnInit {\r\n @Input() macroAction: MouseMacroAction;\r\n @ViewChild('tab') selectedTab: Tab;\r\n\r\n /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */\r\n TabName = TabName;\r\n /* tslint:enable:variable-name */\r\n private activeTab: TabName;\r\n private buttonLabels: string[];\r\n private selectedButtons: boolean[];\r\n\r\n constructor() {\r\n this.buttonLabels = ['Left', 'Middle', 'Right'];\r\n this.selectedButtons = Array(this.buttonLabels.length).fill(false);\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.macroAction) {\r\n this.macroAction = new MouseButtonMacroAction();\r\n this.macroAction.action = MacroSubAction.press;\r\n }\r\n const tabName = this.getTabName(this.macroAction);\r\n this.selectTab(tabName);\r\n const buttonActions = [TabName.Click, TabName.Hold, TabName.Release];\r\n if (buttonActions.includes(this.activeTab)) {\r\n this.selectedButtons = (this.macroAction).getMouseButtons();\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.ngOnInit();\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n\r\n if (tab === this.getTabName(this.macroAction)) {\r\n return;\r\n }\r\n\r\n switch (tab) {\r\n case TabName.Scroll:\r\n this.macroAction = new ScrollMouseMacroAction();\r\n break;\r\n case TabName.Move:\r\n this.macroAction = new MoveMouseMacroAction();\r\n break;\r\n default:\r\n this.macroAction = new MouseButtonMacroAction();\r\n this.macroAction.action = this.getAction(tab);\r\n break;\r\n }\r\n }\r\n\r\n setMouseClick(index: number): void {\r\n this.selectedButtons[index] = !this.selectedButtons[index];\r\n (this.macroAction).setMouseButtons(this.selectedButtons);\r\n }\r\n\r\n hasButton(index: number): boolean {\r\n return this.selectedButtons[index];\r\n }\r\n\r\n getAction(tab: TabName): MacroSubAction {\r\n switch (tab) {\r\n case TabName.Click:\r\n return MacroSubAction.press;\r\n case TabName.Hold:\r\n return MacroSubAction.hold;\r\n case TabName.Release:\r\n return MacroSubAction.release;\r\n default:\r\n throw new Error(`Invalid tab name: ${TabName[tab]}`);\r\n }\r\n }\r\n\r\n getTabName(action: MouseMacroAction): TabName {\r\n if (action instanceof MouseButtonMacroAction) {\r\n if (!action.action || action.isOnlyPressAction()) {\r\n return TabName.Click;\r\n } else if (action.isOnlyHoldAction()) {\r\n return TabName.Hold;\r\n } else if (action.isOnlyReleaseAction()) {\r\n return TabName.Release;\r\n }\r\n } else if (action instanceof MoveMouseMacroAction) {\r\n return TabName.Move;\r\n } else if (action instanceof ScrollMouseMacroAction) {\r\n return TabName.Scroll;\r\n }\r\n return TabName.Move;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.ts","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Move pointer

\\r\\n

Use negative values to move down or left from current position.

\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Scroll

\\r\\n

Use negative values to move down or left from current position.

\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n \\r\\n pixels\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Click mouse button

\\r\\n

Hold mouse button

\\r\\n

Release mouse button

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.html\n// module id = 708\n// module chunks = 1","module.exports = \".macro-mouse__container {\\n padding: 0; }\\n\\n.macro-mouse__types {\\n border-right: 1px solid #ddd;\\n border-left: 0;\\n margin-top: -1rem;\\n margin-left: 0;\\n padding: 1rem 0; }\\n\\n.macro-mouse__actions {\\n padding-left: 3rem;\\n padding-bottom: 1rem; }\\n\\n.macro-mouse__buttons {\\n margin-top: 3rem;\\n margin-bottom: 1rem; }\\n\\n.fa {\\n min-width: 14px; }\\n\\n.form-horizontal .form-group {\\n margin: 0 0 0.5rem; }\\n\\n.form-horizontal label {\\n display: inline-block;\\n margin-right: 0.5rem; }\\n\\n.form-horizontal .form-control {\\n display: inline-block;\\n width: 60%; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/mouse/macro-mouse.component.scss\n// module id = 709\n// module chunks = 1","export { MacroTextTabComponent } from './macro-text.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/text/index.ts","import {\r\n OnInit,\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n Renderer,\r\n ViewChild\r\n} from '@angular/core';\r\n\r\nimport { TextMacroAction } from '../../../../../config-serializer/config-items/macro-action';\r\n\r\n@Component({\r\n selector: 'macro-text-tab',\r\n template: require('./macro-text.component.html'),\r\n styles: [require('./macro-text.component.scss')],\r\n host: { 'class': 'macro__text' }\r\n})\r\nexport class MacroTextTabComponent implements OnInit, AfterViewInit {\r\n @Input() macroAction: TextMacroAction;\r\n @ViewChild('macroTextInput') input: ElementRef;\r\n\r\n constructor(private renderer: Renderer) {}\r\n\r\n ngOnInit() {\r\n if (!this.macroAction) {\r\n this.macroAction = new TextMacroAction();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderer.invokeElementMethod(this.input.nativeElement, 'focus');\r\n }\r\n\r\n onTextChange() {\r\n this.macroAction.text = this.input.nativeElement.value;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/macro/action-editor/tab/text/macro-text.component.ts","module.exports = \"
\\r\\n

Type text

\\r\\n

Input the text you want to type with this macro action.

\\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/text/macro-text.component.html\n// module id = 712\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n flex-direction: column;\\n position: relative; }\\n\\n.macro__text-input {\\n width: 100%;\\n min-height: 10rem;\\n margin-bottom: 1rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/tab/text/macro-text.component.scss\n// module id = 713\n// module chunks = 1","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/macro/action-editor/macro-action-editor.component.html\n// module id = 714\n// module chunks = 1","export * from './notification.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/notification/index.ts","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'notification',\r\n template: require('./notification.component.html'),\r\n styles: [require('./notification.component.scss')]\r\n})\r\nexport class NotificationComponent {\r\n\r\n constructor() {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/notification/notification.component.ts","module.exports = \"Keymap removed\\r\\nUndo\\r\\n×\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/notification/notification.component.html\n// module id = 717\n// module chunks = 1","module.exports = \":host {\\n padding: 1rem 1.5rem;\\n box-shadow: 0 0 0 1px #000;\\n border-radius: 0.5rem;\\n position: absolute;\\n top: 2rem;\\n right: 2rem;\\n z-index: 10000;\\n background-color: #333;\\n color: #eee;\\n display: none; }\\n\\n.action {\\n margin-left: 1rem;\\n margin-right: 1rem;\\n color: #5bc0de;\\n text-transform: uppercase;\\n font-weight: bold; }\\n .action:focus, .action:active, .action:hover {\\n text-decoration: none;\\n color: #5bc0de; }\\n\\n.dismiss {\\n position: relative;\\n bottom: 1px;\\n color: #ccc; }\\n .dismiss:hover {\\n cursor: pointer;\\n color: #fff; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/notification/notification.component.scss\n// module id = 718\n// module chunks = 1","import {\r\n Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges, ViewChild\r\n} from '@angular/core';\r\nimport { animate, keyframes, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { ClientRect } from '../../dom';\r\n\r\nimport {\r\n KeyAction,\r\n KeystrokeAction,\r\n MouseAction,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction\r\n} from '../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../config-serializer/config-items/keymap';\r\n\r\nimport { Tab } from './tab/tab';\r\n\r\nimport { AppState } from '../../store';\r\nimport { getKeymaps } from '../../store/reducers/user-configuration';\r\n\r\nenum TabName {\r\n Keypress,\r\n Layer,\r\n Mouse,\r\n Macro,\r\n Keymap,\r\n None\r\n}\r\n\r\n@Component({\r\n selector: 'popover',\r\n template: require('./popover.component.html'),\r\n styles: [require('./popover.component.scss')],\r\n animations: [\r\n trigger('popover', [\r\n state('closed', style({\r\n transform: 'translateY(30px)',\r\n visibility: 'hidden',\r\n opacity: 0\r\n })),\r\n state('opened', style({\r\n transform: 'translateY(0)',\r\n visibility: 'visible',\r\n opacity: 1\r\n })),\r\n transition('opened => closed', [\r\n animate('200ms ease-out', keyframes([\r\n style({ transform: 'translateY(0)', visibility: 'visible', opacity: 1, offset: 0 }),\r\n style({ transform: 'translateY(30px)', visibility: 'hidden', opacity: 0, offset: 1 })\r\n ]))\r\n ]),\r\n transition('closed => opened', [\r\n style({\r\n visibility: 'visible'\r\n }),\r\n animate('200ms ease-out', keyframes([\r\n style({ transform: 'translateY(30px)', opacity: 0, offset: 0 }),\r\n style({ transform: 'translateY(0)', opacity: 1, offset: 1 })\r\n ]))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class PopoverComponent implements OnChanges {\r\n @Input() defaultKeyAction: KeyAction;\r\n @Input() currentKeymap: Keymap;\r\n @Input() currentLayer: number;\r\n @Input() keyPosition: ClientRect;\r\n @Input() wrapPosition: ClientRect;\r\n @Input() visible: boolean;\r\n\r\n @Output() cancel = new EventEmitter();\r\n @Output() remap = new EventEmitter();\r\n\r\n @ViewChild('tab') selectedTab: Tab;\r\n @ViewChild('popover') popoverHost: ElementRef;\r\n\r\n public tabName = TabName;\r\n public keyActionValid: boolean;\r\n private activeTab: TabName;\r\n private keymaps$: Observable;\r\n private leftArrow: boolean = false;\r\n private rightArrow: boolean = false;\r\n private topPosition: number = 0;\r\n private leftPosition: number = 0;\r\n private animationState: string;\r\n\r\n constructor(store: Store) {\r\n this.animationState = 'closed';\r\n this.keymaps$ = store.let(getKeymaps())\r\n .map((keymaps: Keymap[]) =>\r\n keymaps.filter((keymap: Keymap) => this.currentKeymap.abbreviation !== keymap.abbreviation)\r\n );\r\n }\r\n\r\n ngOnChanges(change: SimpleChanges) {\r\n if (this.keyPosition && this.wrapPosition && (change['keyPosition'] || change['wrapPosition'])) {\r\n this.calculatePosition();\r\n }\r\n\r\n if (change['defaultKeyAction']) {\r\n let tab: TabName;\r\n\r\n if (this.defaultKeyAction instanceof KeystrokeAction) {\r\n tab = TabName.Keypress;\r\n } else if (this.defaultKeyAction instanceof SwitchLayerAction) {\r\n tab = TabName.Layer;\r\n } else if (this.defaultKeyAction instanceof MouseAction) {\r\n tab = TabName.Mouse;\r\n } else if (this.defaultKeyAction instanceof PlayMacroAction) {\r\n tab = TabName.Macro;\r\n } else if (this.defaultKeyAction instanceof SwitchKeymapAction) {\r\n tab = TabName.Keymap;\r\n } else {\r\n tab = TabName.None;\r\n }\r\n\r\n this.selectTab(tab);\r\n }\r\n\r\n if (change['visible']) {\r\n if (change['visible'].currentValue) {\r\n this.animationState = 'opened';\r\n } else {\r\n this.animationState = 'closed';\r\n }\r\n }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.cancel.emit(undefined);\r\n }\r\n\r\n onRemapKey(): void {\r\n if (this.keyActionValid) {\r\n try {\r\n const keyAction = this.selectedTab.toKeyAction();\r\n this.remap.emit(keyAction);\r\n } catch (e) {\r\n // TODO: show error dialog\r\n console.error(e);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keydown.escape')\r\n onEscape(): void {\r\n this.cancel.emit();\r\n }\r\n\r\n selectTab(tab: TabName): void {\r\n this.activeTab = tab;\r\n }\r\n\r\n onOverlay() {\r\n this.cancel.emit(undefined);\r\n }\r\n\r\n private calculatePosition() {\r\n const offsetLeft: number = this.wrapPosition.left + 265; // 265 is a width of the side menu with a margin\r\n const popover: HTMLElement = this.popoverHost.nativeElement;\r\n let newLeft: number = this.keyPosition.left + (this.keyPosition.width / 2);\r\n\r\n this.leftArrow = newLeft < offsetLeft;\r\n this.rightArrow = (newLeft + popover.offsetWidth) > offsetLeft + this.wrapPosition.width;\r\n\r\n if (this.leftArrow) {\r\n newLeft = this.keyPosition.left;\r\n } else if (this.rightArrow) {\r\n newLeft = this.keyPosition.left - popover.offsetWidth + this.keyPosition.width;\r\n } else {\r\n newLeft -= popover.offsetWidth / 2;\r\n }\r\n\r\n // 7 is a space between a bottom key position and a popover\r\n this.topPosition = this.keyPosition.top + this.keyPosition.height + 7 + window.scrollY;\r\n this.leftPosition = newLeft;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/popover.component.ts","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/popover.component.html\n// module id = 720\n// module chunks = 1","module.exports = \".popover {\\n display: flex;\\n flex-direction: column;\\n padding: 0;\\n max-width: 568px;\\n width: 100%;\\n user-select: none; }\\n .popover.leftArrow .arrowCustom {\\n transform: none;\\n left: 22px; }\\n .popover.rightArrow .arrowCustom {\\n transform: none;\\n right: 22px;\\n left: auto; }\\n .popover > .container-fluid {\\n overflow: hidden; }\\n\\n.nav-tabs > li {\\n overflow: hidden; }\\n\\n.arrowCustom {\\n position: absolute;\\n top: -16px;\\n left: 50%;\\n transform: translateX(-50%);\\n width: 41px;\\n height: 16px; }\\n .arrowCustom:before {\\n content: '';\\n width: 0;\\n height: 0;\\n border-left: 21px solid transparent;\\n border-right: 21px solid transparent;\\n border-bottom: 17px solid rgba(0, 0, 0, 0.2);\\n display: block;\\n position: absolute;\\n top: -1px; }\\n .arrowCustom:after {\\n content: '';\\n width: 0;\\n height: 0;\\n border-left: 20px solid transparent;\\n border-right: 20px solid transparent;\\n border-bottom: 16px solid #f7f7f7;\\n display: block;\\n position: absolute;\\n top: 0; }\\n\\n.popover-action {\\n padding: 8px 14px;\\n margin: 0;\\n font-size: 14px;\\n background-color: #f7f7f7;\\n border-top: 1px solid #ebebeb;\\n border-radius: 0 0 5px 5px;\\n text-align: right; }\\n\\n.popover-title.menu-tabs {\\n padding: 0.5rem 0.5rem 0;\\n display: block; }\\n .popover-title.menu-tabs .nav-tabs {\\n position: relative;\\n top: 1px;\\n display: flex; }\\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item {\\n display: flex;\\n align-items: center;\\n cursor: pointer; }\\n .popover-title.menu-tabs .nav-tabs .menu-tabs--item i {\\n margin-right: 0.25em; }\\n\\n.popover-content {\\n padding: 10px 24px; }\\n\\n.popover-overlay {\\n position: fixed;\\n width: 100%;\\n height: 0;\\n top: 0;\\n left: 0;\\n z-index: 1050;\\n background: transparent;\\n transition: background 200ms ease-out, height 0ms 200ms linear; }\\n .popover-overlay.display {\\n height: 100%;\\n background: rgba(0, 0, 0, 0.2);\\n transition: background 200ms ease-out; }\\n\\n.select2-item {\\n position: relative;\\n font-size: 1.5rem; }\\n .select2-item.keymap-name--wrapper {\\n padding-left: 50px; }\\n .select2-item .layout-segment-code {\\n height: 2rem;\\n position: absolute;\\n left: 0;\\n top: 50%;\\n margin-top: -1rem; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/popover.component.scss\n// module id = 721\n// module chunks = 1","export * from './capture-keystroke-button.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/widgets/capture-keystroke/index.ts","import { Component, EventEmitter, HostListener, Output } from '@angular/core';\r\nimport { CaptureService } from '../../../../services/capture.service';\r\n\r\n@Component({\r\n selector: 'capture-keystroke-button',\r\n template: require('./capture-keystroke-button.component.html'),\r\n styles: [require('./capture-keystroke-button.component.scss')]\r\n})\r\nexport class CaptureKeystrokeButtonComponent {\r\n @Output() capture = new EventEmitter();\r\n\r\n private record: boolean;\r\n private first: boolean; // enable usage of Enter to start capturing\r\n private scanCodePressed: boolean;\r\n\r\n constructor(private captureService: CaptureService) {\r\n this.record = false;\r\n this.captureService.initModifiers();\r\n this.captureService.populateMapping();\r\n this.scanCodePressed = false;\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(e: KeyboardEvent) {\r\n if (this.scanCodePressed) {\r\n e.preventDefault();\r\n this.scanCodePressed = false;\r\n } else if (this.record && !this.first) {\r\n e.preventDefault();\r\n this.saveScanCode();\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n const code: number = e.keyCode;\r\n const enter = 13;\r\n\r\n if (this.record) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.first = false;\r\n\r\n if (this.captureService.hasMap(code)) {\r\n this.saveScanCode(this.captureService.getMap(code));\r\n this.scanCodePressed = true;\r\n } else {\r\n this.captureService.setModifier((e.location === 1), code);\r\n }\r\n } else if (code === enter) {\r\n this.record = true;\r\n this.first = true;\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusOut() {\r\n this.record = false;\r\n this.reset();\r\n }\r\n\r\n start(): void {\r\n this.record = true;\r\n }\r\n\r\n private saveScanCode(code?: number) {\r\n this.record = false;\r\n const left: boolean[] = this.captureService.getModifiers(true);\r\n const right: boolean[] = this.captureService.getModifiers(false);\r\n\r\n this.capture.emit({\r\n code,\r\n left,\r\n right\r\n });\r\n\r\n this.reset();\r\n }\r\n\r\n private reset() {\r\n this.first = false;\r\n this.captureService.initModifiers();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.ts","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.html\n// module id = 724\n// module chunks = 1","module.exports = \"button {\\n display: inline-block;\\n margin: 0 0 0 0.25rem; }\\n\\n.fa-circle {\\n color: #c00; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/capture-keystroke/capture-keystroke-button.component.scss\n// module id = 725\n// module chunks = 1","export * from './icon.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/widgets/icon/index.ts","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'icon',\r\n template: require('./icon.component.html'),\r\n styles: [require('./icon.component.scss')]\r\n})\r\nexport class IconComponent implements OnInit {\r\n\r\n @Input() name: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/popover/widgets/icon/icon.component.ts","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/icon/icon.component.html\n// module id = 728\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n align-items: center; }\\n\\n.action--edit:hover {\\n color: #337ab7;\\n cursor: pointer; }\\n\\n.action--trash:hover {\\n color: #d9534f;\\n cursor: pointer; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/popover/widgets/icon/icon.component.scss\n// module id = 729\n// module chunks = 1","'use strict';\n\nexports.__esModule = true;\nexports.defaultMemoize = defaultMemoize;\nexports.createSelectorCreator = createSelectorCreator;\nexports.createStructuredSelector = createStructuredSelector;\nfunction defaultEqualityCheck(a, b) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(equalityCheck, prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n var length = prev.length;\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction defaultMemoize(func) {\n var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;\n\n var lastArgs = null;\n var lastResult = null;\n // we reference arguments instead of spreading them for performance reasons\n return function () {\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n lastResult = func.apply(null, arguments);\n }\n\n lastArgs = arguments;\n return lastResult;\n };\n}\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep;\n }).join(', ');\n throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));\n }\n\n return dependencies;\n}\n\nfunction createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptions[_key - 1] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var recomputations = 0;\n var resultFunc = funcs.pop();\n var dependencies = getDependencies(funcs);\n\n var memoizedResultFunc = memoize.apply(undefined, [function () {\n recomputations++;\n // apply arguments instead of spreading for performance.\n return resultFunc.apply(null, arguments);\n }].concat(memoizeOptions));\n\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n var selector = defaultMemoize(function () {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n params.push(dependencies[i].apply(null, arguments));\n }\n\n // apply arguments instead of spreading for performance.\n return memoizedResultFunc.apply(null, params);\n });\n\n selector.resultFunc = resultFunc;\n selector.recomputations = function () {\n return recomputations;\n };\n selector.resetRecomputations = function () {\n return recomputations = 0;\n };\n return selector;\n };\n}\n\nvar createSelector = exports.createSelector = createSelectorCreator(defaultMemoize);\n\nfunction createStructuredSelector(selectors) {\n var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));\n }\n var objectKeys = Object.keys(selectors);\n return selectorCreator(objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/reselect/lib/index.js\n// module id = 730\n// module chunks = 1","import { Action } from '@ngrx/store';\r\nimport { type } from '../../util';\r\n\r\nconst PREFIX = '[app-update] ';\r\n\r\n// tslint:disable-next-line:variable-name\r\nexport const ActionTypes = {\r\n UPDATE_AVAILABLE: type(PREFIX + 'update available'),\r\n UPDATE_APP: type(PREFIX + 'update app'),\r\n DO_NOT_UPDATE_APP: type(PREFIX + 'do not update app'),\r\n UPDATE_DOWNLOADED: type(PREFIX + 'update downloaded'),\r\n UPDATING: type(PREFIX + 'updating'),\r\n UPDATE_ERROR: type(PREFIX + 'error')\r\n};\r\n\r\nexport class UpdateAvailableAction implements Action {\r\n type = ActionTypes.UPDATE_AVAILABLE;\r\n}\r\n\r\nexport class UpdateAppAction implements Action {\r\n type = ActionTypes.UPDATE_APP;\r\n}\r\n\r\nexport class DoNotUpdateAppAction implements Action {\r\n type = ActionTypes.DO_NOT_UPDATE_APP;\r\n}\r\n\r\nexport class UpdateDownloadedAction implements Action {\r\n type = ActionTypes.UPDATE_DOWNLOADED;\r\n}\r\n\r\nexport class UpdatingAction implements Action {\r\n type = ActionTypes.UPDATING;\r\n}\r\n\r\nexport class UpdateErrorAction implements Action {\r\n type = ActionTypes.UPDATE_ERROR;\r\n\r\n constructor(public payload: any) {}\r\n}\r\n\r\nexport type Actions\r\n = UpdateAvailableAction\r\n | UpdateAppAction\r\n | DoNotUpdateAppAction\r\n | UpdateDownloadedAction\r\n | UpdatingAction\r\n | UpdateErrorAction;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/actions/app-update.action.ts","module.exports = \"
\\r\\n

\\r\\n \\r\\n Settings\\r\\n

\\r\\n
\\r\\n
\\r\\n To be done...\\r\\n
\\r\\n\\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/settings/settings.component.html\n// module id = 732\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n height: 100%;\\n display: block; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/settings/settings.component.scss\n// module id = 733\n// module chunks = 1","import { Routes } from '@angular/router';\r\n\r\nimport { SettingsComponent } from './settings.component';\r\n\r\nexport const settingsRoutes: Routes = [\r\n {\r\n path: 'settings',\r\n component: SettingsComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/settings/settings.routes.ts","export * from './side-menu.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/side-menu/index.ts","import { Component, Renderer } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/let';\r\n\r\nimport { Keymap } from '../../config-serializer/config-items/keymap';\r\nimport { Macro } from '../../config-serializer/config-items/macro';\r\n\r\nimport { AppState } from '../../store';\r\nimport { MacroActions } from '../../store/actions';\r\nimport { getKeymaps, getMacros } from '../../store/reducers/user-configuration';\r\n\r\n@Component({\r\n animations: [\r\n trigger('toggler', [\r\n state('inactive', style({\r\n height: '0px'\r\n })),\r\n state('active', style({\r\n height: '*'\r\n })),\r\n transition('inactive <=> active', animate('500ms ease-out'))\r\n ])\r\n ],\r\n selector: 'side-menu',\r\n template: require('./side-menu.component.html'),\r\n styles: [require('./side-menu.component.scss')]\r\n})\r\nexport class SideMenuComponent {\r\n private keymaps$: Observable;\r\n private macros$: Observable;\r\n private animation: { [key: string]: 'active' | 'inactive' };\r\n\r\n constructor(private store: Store, private renderer: Renderer) {\r\n this.animation = {\r\n keymap: 'active',\r\n macro: 'active',\r\n addon: 'active'\r\n };\r\n\r\n this.keymaps$ = store.let(getKeymaps())\r\n .map(keymaps => keymaps.slice()) // Creating a new array reference, because the sort is working in place\r\n .do((keymaps: Keymap[]) => {\r\n keymaps.sort((first: Keymap, second: Keymap) => first.name.localeCompare(second.name));\r\n });\r\n\r\n this.macros$ = store.let(getMacros())\r\n .map(macros => macros.slice()) // Creating a new array reference, because the sort is working in place\r\n .do((macros: Macro[]) => {\r\n macros.sort((first: Macro, second: Macro) => first.name.localeCompare(second.name));\r\n });\r\n }\r\n\r\n toggleHide(event: Event, type: string) {\r\n const header: DOMTokenList = (event.target).classList;\r\n let show = false;\r\n\r\n if (header.contains('fa-chevron-down')) {\r\n show = true;\r\n this.animation[type] = 'active';\r\n } else {\r\n this.animation[type] = 'inactive';\r\n }\r\n\r\n this.renderer.setElementClass(event.target, 'fa-chevron-up', show);\r\n this.renderer.setElementClass(event.target, 'fa-chevron-down', !show);\r\n }\r\n\r\n addMacro() {\r\n this.store.dispatch(MacroActions.addMacro());\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/side-menu/side-menu.component.ts","module.exports = \"
    \\r\\n
  • \\r\\n
    \\r\\n Keymaps\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n Macros\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n Add-on modules\\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/side-menu/side-menu.component.html\n// module id = 737\n// module chunks = 1","module.exports = \":host {\\n background-color: #f5f5f5;\\n border-right: 1px solid #ccc;\\n position: fixed;\\n overflow-y: auto;\\n width: 250px;\\n height: 100%; }\\n\\na {\\n color: #333; }\\n\\nul {\\n padding: 0;\\n margin: 0; }\\n ul li {\\n list-style: none;\\n padding: 0; }\\n ul ul {\\n overflow: hidden; }\\n\\n.sidebar__level-1 {\\n padding: 0.5rem 1rem;\\n font-size: 2rem;\\n line-height: 3rem;\\n cursor: default; }\\n .sidebar__level-1:hover .fa-chevron-up,\\n .sidebar__level-1:hover .fa-chevron-down {\\n display: inline-block; }\\n .sidebar__level-1--item {\\n margin-top: 0; }\\n .sidebar__level-1--item:nth-child(1) {\\n margin: 0; }\\n .sidebar__level-1 .sidebar__name {\\n width: 100%;\\n display: block; }\\n .sidebar__level-1 .fa-chevron-up,\\n .sidebar__level-1 .fa-chevron-down {\\n margin-right: 1rem;\\n font-size: 1.5rem;\\n position: relative;\\n top: 0.5rem;\\n display: none;\\n cursor: pointer; }\\n\\n.sidebar__level-2--item {\\n padding: 0 20px 0 0;\\n position: relative; }\\n .sidebar__level-2--item.active {\\n background-color: #555;\\n color: #fff; }\\n .sidebar__level-2--item.active .fa-star {\\n color: #fff; }\\n .sidebar__level-2--item.active:hover {\\n background-color: #555; }\\n .sidebar__level-2--item:hover {\\n cursor: pointer; }\\n .sidebar__level-2--item .fa.pull-right {\\n position: relative;\\n top: 2px; }\\n .sidebar__level-2--item .fa-star {\\n color: #666; }\\n .sidebar__level-2--item a {\\n display: block;\\n width: 100%;\\n padding: 0 15px 0 30px; }\\n .sidebar__level-2--item a:hover, .sidebar__level-2--item a:focus {\\n text-decoration: none; }\\n\\n.sidebar__level-1:hover, .sidebar__level-2:hover {\\n background-color: rgba(0, 0, 0, 0.05); }\\n\\n.sidebar__level-1.active, .sidebar__level-2.active {\\n background-color: rgba(0, 0, 0, 0.18); }\\n\\n.sidebar__fav {\\n position: absolute;\\n right: 19px;\\n top: 3px; }\\n\\n.menu--bottom {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n width: 100%; }\\n .menu--bottom .sidebar__level-1 {\\n display: block;\\n padding: 1rem;\\n cursor: pointer; }\\n .menu--bottom .sidebar__level-1:hover {\\n text-decoration: none; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/side-menu/side-menu.component.scss\n// module id = 738\n// module chunks = 1","export * from './svg-keyboard.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keyboard/index.ts","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\r\nimport { animate, state, trigger, style, transition } from '@angular/animations';\r\n\r\nimport { Module } from '../../../config-serializer/config-items/module';\r\nimport { SvgModule } from '../module';\r\nimport { SvgModuleProviderService } from '../../../services/svg-module-provider.service';\r\n\r\n@Component({\r\n selector: 'svg-keyboard',\r\n template: require('./svg-keyboard.component.html'),\r\n styles: [require('./svg-keyboard.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [\r\n trigger('split', [\r\n state('rotateLeft', style({\r\n transform: 'translate(-3%, 15%) rotate(4deg) scale(0.92, 0.92)'\r\n })),\r\n state('rotateRight', style({\r\n transform: 'translate(3%, 15%) rotate(-4deg) scale(0.92, 0.92)'\r\n })),\r\n transition('* <=> *', animate(500))\r\n ])\r\n ]\r\n})\r\nexport class SvgKeyboardComponent implements OnInit {\r\n @Input() moduleConfig: Module[];\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Input() selectedKey: { layerId: number, moduleId: number, keyId: number };\r\n @Input() selected: boolean;\r\n @Input() halvesSplit: boolean;\r\n @Output() keyClick = new EventEmitter();\r\n @Output() keyHover = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n modules: SvgModule[];\r\n viewBox: string;\r\n moduleAnimationStates: string[];\r\n\r\n constructor(private svgModuleProvider: SvgModuleProviderService) {\r\n this.modules = [];\r\n this.viewBox = '-520 582 1100 470';\r\n this.halvesSplit = false;\r\n this.moduleAnimationStates = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.modules = this.svgModuleProvider.getSvgModules();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.halvesSplit) {\r\n this.updateModuleAnimationStates();\r\n }\r\n }\r\n\r\n onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {\r\n this.keyClick.emit({\r\n moduleId,\r\n keyId,\r\n keyTarget\r\n });\r\n }\r\n\r\n onCapture(moduleId: number, keyId: number, captured: { code: number, left: boolean[], right: boolean[] }): void {\r\n this.capture.emit({\r\n moduleId,\r\n keyId,\r\n captured\r\n });\r\n }\r\n\r\n onKeyHover(keyId: number, event: MouseEvent, over: boolean, moduleId: number): void {\r\n this.keyHover.emit({\r\n moduleId,\r\n event,\r\n over,\r\n keyId\r\n });\r\n }\r\n\r\n private updateModuleAnimationStates() {\r\n if (this.halvesSplit) {\r\n this.moduleAnimationStates = ['rotateRight', 'rotateLeft'];\r\n } else {\r\n this.moduleAnimationStates = [];\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keyboard/svg-keyboard.component.ts","import { Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KeyAction } from '../../../config-serializer/config-items/key-action';\r\n\r\nimport { SvgKeyboardKey } from '../keys';\r\n\r\n@Component({\r\n selector: 'g[svg-module]',\r\n template: require('./svg-module.component.html'),\r\n styles: [require('./svg-module.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgModuleComponent {\r\n @Input() coverages: any[];\r\n @Input() keyboardKeys: SvgKeyboardKey[];\r\n @Input() keyActions: KeyAction[];\r\n @Input() selectedKey: { layerId: number, moduleId: number, keyId: number };\r\n @Input() selected: boolean;\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Output() keyClick = new EventEmitter();\r\n @Output() keyHover = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n constructor() {\r\n this.keyboardKeys = [];\r\n }\r\n\r\n onKeyClick(index: number, keyTarget: HTMLElement): void {\r\n this.keyClick.emit({\r\n index,\r\n keyTarget\r\n });\r\n }\r\n\r\n onKeyHover(index: number, event: MouseEvent, over: boolean): void {\r\n this.keyHover.emit({\r\n index,\r\n event,\r\n over\r\n });\r\n }\r\n\r\n onCapture(index: number, captured: {code: number, left: boolean[], right: boolean[]}) {\r\n this.capture.emit({\r\n index,\r\n captured\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/module/svg-module.component.ts","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/module/svg-module.component.html\n// module id = 742\n// module chunks = 1","module.exports = \":host {\\n position: relative; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/module/svg-module.component.scss\n// module id = 743\n// module chunks = 1","import { SvgKeyboardKey } from '../keys';\r\n\r\nexport class SvgModule {\r\n coverages: any[];\r\n keyboardKeys: SvgKeyboardKey[];\r\n attributes: any;\r\n\r\n constructor(obj: { rect: any[], path: any[], $: Object }) {\r\n let index: number;\r\n const keys = obj.rect.map(rect => rect.$);\r\n this.keyboardKeys = [];\r\n for (let i = 0; i < keys.length; ++i) {\r\n index = keys[i].id.slice(4) - 1; // remove 'key-' then switch to index from 0\r\n keys[i].height = +keys[i].height;\r\n keys[i].width = +keys[i].width;\r\n keys[i].fill = keys[i].style.slice(5); // remove 'fill:'\r\n this.keyboardKeys[index] = keys[i];\r\n }\r\n this.coverages = obj.path;\r\n this.attributes = obj.$;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/module/svg-module.model.ts","export enum KeyboardLayout {\r\n ANSI,\r\n ISO\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/keyboard/keyboard-layout.enum.ts","module.exports = {\"svg\":{\"$\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"version\":\"1.1\",\"width\":\"744.094488189\",\"height\":\"1052.36220472\"},\"rect\":[{\"$\":{\"id\":\"key-1\",\"x\":\"-446.27197\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-2\",\"x\":\"-379.92999\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-3\",\"x\":\"-313.58899\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-4\",\"x\":\"-247.24799\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-5\",\"x\":\"-180.90698\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-6\",\"x\":\"-114.56499\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-7\",\"x\":\"-48.223999\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-8\",\"x\":\"-446.27197\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"96.728996\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-9\",\"x\":\"-346.21698\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-10\",\"x\":\"-279.87601\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-11\",\"x\":\"-213.535\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-12\",\"x\":\"-147.19299\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-14\",\"x\":\"-80.852005\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-15\",\"x\":\"-446.27197\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"115.108\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-16\",\"x\":\"-328.18799\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-17\",\"x\":\"-262.19598\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-18\",\"x\":\"-196.20499\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-19\",\"x\":\"-130.21399\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-21\",\"x\":\"-64.222992\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-22\",\"x\":\"-446.27197\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-23\",\"x\":\"-362.60098\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-24\",\"x\":\"-296.26001\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-25\",\"x\":\"-230.02377\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-26\",\"x\":\"-163.78757\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-27\",\"x\":\"-97.551331\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-28\",\"x\":\"-31.315111\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-29\",\"x\":\"-446.27197\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-30\",\"x\":\"-363.79099\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-31\",\"x\":\"-281.311\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-32\",\"x\":\"-198.83099\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-33\",\"x\":\"-116.351\",\"y\":\"1011.1872\",\"ry\":\"3.6962967\",\"width\":\"115.108\",\"height\":\"41.174999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-34\",\"x\":\"-116.351\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"115.108\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}}],\"path\":[{\"$\":{\"d\":\"M -94.51036,646.84101 C -94.11496,648.67469 -92.68469,649.80097 -91.0281,649.78029 L 13.023181,649.78029 C 14.001631,649.78029 14.794821,650.57349 14.794821,651.55194 L 14.794821,651.55868 14.794821,673.23866 C 14.794821,674.21746 14.001631,675.01093 13.023181,675.01093 L -444.52338,675.01093 C -447.45834,675.01093 -449.83652,677.38911 -449.83652,680.32407 L -449.83652,1005.8729 C -449.83652,1008.8079 -447.45834,1011.1861 -444.52338,1011.1861 L -120.57683,1011.1861 C -119.59838,1011.1861 -118.80518,1011.9795 -118.80518,1012.9583 L -118.80518,1050.5832 -118.80518,1050.5899 C -118.80518,1051.5684 -119.59838,1052.3616 -120.57683,1052.3616 L -464.45746,1052.3616 C -469.36122,1052.166 -473.26634,1048.3775 -473.2955,1043.5236 L -473.2955,658.54868 C -473.28473,654.0371 -470.24793,650.61741 -466.01444,649.84887 L -114.09291,586.86646 C -109.10971,586.16157 -104.69185,589.2677 -103.81746,594.05779 -100.59959,612.36858 -97.46095,630.10521 -94.51036,646.84101 Z\",\"style\":\"fill:#333\"}}]}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xml-loader!./modules/uhk60-left-half/layout-iso.svg\n// module id = 746\n// module chunks = 1","module.exports = {\"svg\":{\"$\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"version\":\"1.1\",\"width\":\"744.094488189\",\"height\":\"1052.36220472\"},\"rect\":[{\"$\":{\"id\":\"key-1\",\"x\":\"-446.27197\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-2\",\"x\":\"-379.92999\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-3\",\"x\":\"-313.58899\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-4\",\"x\":\"-247.24799\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-5\",\"x\":\"-180.90698\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-6\",\"x\":\"-114.56499\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-7\",\"x\":\"-48.223999\",\"y\":\"678.38013\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-8\",\"x\":\"-446.27197\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"96.728996\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-9\",\"x\":\"-346.21698\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-10\",\"x\":\"-279.87601\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-11\",\"x\":\"-213.535\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-12\",\"x\":\"-147.19299\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-14\",\"x\":\"-80.852005\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-15\",\"x\":\"-446.27197\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"115.108\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-16\",\"x\":\"-328.18799\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-17\",\"x\":\"-262.19598\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-18\",\"x\":\"-196.20499\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-19\",\"x\":\"-130.21399\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-21\",\"x\":\"-64.222992\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-22\",\"x\":\"-446.27197\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"146.686\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-24\",\"x\":\"-296.26001\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-25\",\"x\":\"-230.02377\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-26\",\"x\":\"-163.78757\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-27\",\"x\":\"-97.551331\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-28\",\"x\":\"-31.315111\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-29\",\"x\":\"-446.27197\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-30\",\"x\":\"-363.79099\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-31\",\"x\":\"-281.311\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-32\",\"x\":\"-198.83099\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-33\",\"x\":\"-116.351\",\"y\":\"1011.1872\",\"ry\":\"3.6962967\",\"width\":\"115.108\",\"height\":\"41.174999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-34\",\"x\":\"-116.351\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"115.108\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}}],\"path\":[{\"$\":{\"d\":\"M -94.51036,646.84101 C -94.11496,648.67469 -92.68469,649.80097 -91.0281,649.78029 L 13.023181,649.78029 C 14.001631,649.78029 14.794821,650.57349 14.794821,651.55194 L 14.794821,651.55868 14.794821,673.23866 C 14.794821,674.21746 14.001631,675.01093 13.023181,675.01093 L -444.52338,675.01093 C -447.45834,675.01093 -449.83652,677.38911 -449.83652,680.32407 L -449.83652,1005.8729 C -449.83652,1008.8079 -447.45834,1011.1861 -444.52338,1011.1861 L -120.57683,1011.1861 C -119.59838,1011.1861 -118.80518,1011.9795 -118.80518,1012.9583 L -118.80518,1050.5832 -118.80518,1050.5899 C -118.80518,1051.5684 -119.59838,1052.3616 -120.57683,1052.3616 L -464.45746,1052.3616 C -469.36122,1052.166 -473.26634,1048.3775 -473.2955,1043.5236 L -473.2955,658.54868 C -473.28473,654.0371 -470.24793,650.61741 -466.01444,649.84887 L -114.09291,586.86646 C -109.10971,586.16157 -104.69185,589.2677 -103.81746,594.05779 -100.59959,612.36858 -97.46095,630.10521 -94.51036,646.84101 Z\",\"style\":\"fill:#333\"}}]}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xml-loader!./modules/uhk60-left-half/layout-ansi.svg\n// module id = 747\n// module chunks = 1","module.exports = {\"svg\":{\"$\":{\"xmlns\":\"http://www.w3.org/2000/svg\",\"version\":\"1.1\",\"width\":\"744.094488189\",\"height\":\"1052.36220472\"},\"rect\":[{\"$\":{\"id\":\"key-1\",\"x\":\"18.116484\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-2\",\"x\":\"84.457497\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-3\",\"x\":\"150.79849\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-4\",\"x\":\"217.14047\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-5\",\"x\":\"283.48148\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-6\",\"x\":\"349.82248\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-7\",\"x\":\"416.16348\",\"y\":\"678.38116\",\"ry\":\"3.5107117\",\"width\":\"96.728996\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-8\",\"x\":\"51.829502\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-9\",\"x\":\"118.17051\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-10\",\"x\":\"184.51248\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-11\",\"x\":\"250.85349\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-12\",\"x\":\"317.19449\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-13\",\"x\":\"383.53549\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-14\",\"x\":\"449.87747\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-15\",\"x\":\"-14.511499\",\"y\":\"744.89612\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-16\",\"x\":\"67.828499\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-17\",\"x\":\"133.81949\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-18\",\"x\":\"199.81052\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-19\",\"x\":\"265.80252\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-20\",\"x\":\"331.79349\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-21\",\"x\":\"397.78452\",\"y\":\"811.41412\",\"ry\":\"3.5107117\",\"width\":\"115.108\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-22\",\"x\":\"1.8374995\",\"y\":\"811.41315\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-23\",\"x\":\"34.921108\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-24\",\"x\":\"101.15734\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-25\",\"x\":\"167.39355\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-26\",\"x\":\"233.62976\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-27\",\"x\":\"299.86551\",\"y\":\"877.92914\",\"ry\":\"3.5107117\",\"width\":\"63.014999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-28\",\"x\":\"366.20651\",\"y\":\"877.93018\",\"ry\":\"3.5107117\",\"width\":\"146.686\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-30\",\"x\":\"1.2074946\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"115.108\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-31\",\"x\":\"1.2074946\",\"y\":\"1011.1872\",\"ry\":\"3.6962967\",\"width\":\"115.108\",\"height\":\"41.174999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-32\",\"x\":\"118.76652\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-33\",\"x\":\"201.24649\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-34\",\"x\":\"283.72647\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"80.029999\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}},{\"$\":{\"id\":\"key-35\",\"x\":\"366.20651\",\"y\":\"944.44714\",\"ry\":\"3.5107117\",\"width\":\"146.686\",\"height\":\"63.014999\",\"style\":\"fill:#333\"}}],\"path\":[{\"$\":{\"d\":\"M 516.38706,680.32407 C 516.38706,677.38911 514.00888,675.01093 511.07392,675.01093 L 19.888327,675.01093 C 18.909867,675.01093 18.116667,674.21746 18.116667,673.23866 L 18.116667,651.55868 18.116667,651.55194 C 18.116667,650.57349 18.909867,649.78029 19.888327,649.78029 L 125.68888,649.78029 C 127.81809,649.73639 128.89871,648.55406 129.17114,646.84101 132.26186,628.99452 135.45421,611.20795 138.49949,593.93731 139.53551,589.17354 143.88942,585.96932 148.65533,586.72553 281.11656,609.26905 403.66743,628.75963 532.4454,649.98632 536.92364,650.86249 539.55062,654.40739 539.84604,658.70669 L 539.84604,1043.5236 C 539.65045,1048.4273 535.86191,1052.3324 531.008,1052.3616 L 120.53833,1052.3616 C 119.55987,1052.3616 118.76667,1051.5684 118.76667,1050.5899 L 118.76667,1050.5832 118.76667,1012.9583 C 118.76667,1011.9795 119.55987,1011.1861 120.53833,1011.1861 L 511.07392,1011.1861 C 514.00888,1011.1861 516.38706,1008.8079 516.38706,1005.8729 Z\",\"style\":\"fill:#333\"}}]}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xml-loader!./modules/uhk60-right-half/layout.svg\n// module id = 748\n// module chunks = 1","module.exports = \"\\r\\n \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keyboard/svg-keyboard.component.html\n// module id = 749\n// module chunks = 1","module.exports = \":host {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n position: relative; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keyboard/svg-keyboard.component.scss\n// module id = 750\n// module chunks = 1","export { SvgIconTextKeyComponent } from './svg-icon-text-key';\r\nexport { SvgKeyboardKeyComponent, SvgKeyboardKey } from './svg-keyboard-key';\r\nexport { SvgKeystrokeKeyComponent } from './svg-keystroke-key';\r\nexport { SvgMouseKeyComponent } from './svg-mouse-key';\r\nexport { SvgMouseClickKeyComponent } from './svg-mouse-click-key';\r\nexport { SvgMouseMoveKeyComponent } from './svg-mouse-move-key';\r\nexport { SvgMouseSpeedKeyComponent } from './svg-mouse-speed-key';\r\nexport { SvgMouseScrollKeyComponent } from './svg-mouse-scroll-key';\r\nexport { SvgOneLineTextKeyComponent } from './svg-one-line-text-key';\r\nexport { SvgSingleIconKeyComponent } from './svg-single-icon-key';\r\nexport { SvgSwitchKeymapKeyComponent } from './svg-switch-keymap-key';\r\nexport { SvgTextIconKeyComponent } from './svg-text-icon-key';\r\nexport { SvgTwoLineTextKeyComponent } from './svg-two-line-text-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/index.ts","export * from './svg-icon-text-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-icon-text-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-icon-text-key]',\r\n template: require('./svg-icon-text-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgIconTextKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() icon: string;\r\n @Input() text: string;\r\n\r\n private useWidth: number;\r\n private useHeight: number;\r\n private useX: number;\r\n private useY: number;\r\n private textY: number;\r\n private spanX: number;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.useWidth = this.width / 3;\r\n this.useHeight = this.height / 3;\r\n this.useX = (this.width > 2 * this.height) ? 0 : this.width / 3;\r\n this.useY = (this.width > 2 * this.height) ? this.height / 3 : this.height / 10;\r\n this.textY = (this.width > 2 * this.height) ? this.height / 2 : this.height * 0.6;\r\n this.spanX = (this.width > 2 * this.height) ? this.width * 0.6 : this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n {{ text }}\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-icon-text-key/svg-icon-text-key.component.html\n// module id = 754\n// module chunks = 1","export * from './svg-keyboard-key.component';\r\nexport * from './svg-keyboard-key.model';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-keyboard-key/index.ts","import {\r\n Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, Renderer,\r\n SimpleChange, ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport { animate, group, state, style, transition, trigger } from '@angular/animations';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport {\r\n KeyAction,\r\n KeystrokeAction,\r\n LayerName,\r\n MouseAction,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction\r\n} from '../../../../config-serializer/config-items/key-action';\r\nimport { KeyModifiers } from '../../../../config-serializer/config-items/key-modifiers';\r\nimport { Macro } from '../../../../config-serializer/config-items/macro';\r\n\r\nimport { CaptureService } from '../../../../services/capture.service';\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\nimport { AppState } from '../../../../store/index';\r\nimport { getMacros } from '../../../../store/reducers/user-configuration';\r\n\r\nenum LabelTypes {\r\n KeystrokeKey,\r\n MouseKey,\r\n OneLineText,\r\n TwoLineText,\r\n TextIcon,\r\n SingleIcon,\r\n SwitchKeymap,\r\n IconText\r\n}\r\n\r\n@Component({\r\n animations: [\r\n trigger('change', [\r\n transition('inactive => active', [\r\n style({ fill: '#fff' }),\r\n group([\r\n animate('1s ease-out', style({\r\n fill: '#333'\r\n }))\r\n ])\r\n ])\r\n ]),\r\n trigger('active', [\r\n // http://colorblendy.com/#!/multiply/4099e5/cccccc\r\n state('1', style({ fill: '#4099e5' })), // Signature blue color blending\r\n transition('1 => *', animate('200ms')),\r\n transition('* => 1', animate('0ms')) // Instant color to blue\r\n ]),\r\n trigger('recording', [\r\n state('inactive', style({\r\n fill: 'rgba(204, 0, 0, 1)'\r\n })),\r\n state('active', style({\r\n fill: 'rgba(204, 0, 0, 0.6)'\r\n })),\r\n transition('inactive <=> active', animate('600ms ease-in-out'))\r\n ])\r\n ],\r\n selector: 'g[svg-keyboard-key]',\r\n template: require('./svg-keyboard-key.component.html'),\r\n styles: [require('./svg-keyboard-key.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgKeyboardKeyComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() id: string;\r\n @Input() rx: string;\r\n @Input() ry: string;\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() keyAction: KeyAction;\r\n @Input() keybindAnimationEnabled: boolean;\r\n @Input() capturingEnabled: boolean;\r\n @Input() active: boolean;\r\n\r\n @Output() keyClick = new EventEmitter();\r\n @Output() capture = new EventEmitter();\r\n\r\n enumLabelTypes = LabelTypes;\r\n\r\n public changeAnimation: string = 'inactive';\r\n public recordAnimation: string;\r\n\r\n private labelSource: any;\r\n private labelType: LabelTypes;\r\n private macros: Macro[];\r\n private subscription: Subscription;\r\n private recording: boolean;\r\n private scanCodePressed: boolean;\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.reset();\r\n this.keyClick.emit(this.element.nativeElement);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(e: MouseEvent) {\r\n if ((e.which === 2 || e.button === 1) && this.capturingEnabled) {\r\n e.preventDefault();\r\n this.renderer.invokeElementMethod(this.element.nativeElement, 'focus');\r\n\r\n if (this.recording) {\r\n this.reset();\r\n } else {\r\n this.recording = true;\r\n this.recordAnimation = 'active';\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUpe(e: KeyboardEvent) {\r\n if (this.scanCodePressed) {\r\n e.preventDefault();\r\n this.scanCodePressed = false;\r\n } else if (this.recording) {\r\n e.preventDefault();\r\n this.saveScanCode();\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent) {\r\n const code: number = e.keyCode;\r\n\r\n if (this.recording) {\r\n e.preventDefault();\r\n\r\n if (this.captureService.hasMap(code)) {\r\n this.saveScanCode(this.captureService.getMap(code));\r\n this.scanCodePressed = true;\r\n } else {\r\n this.captureService.setModifier((e.location === 1), code);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusOut() {\r\n this.reset();\r\n }\r\n\r\n constructor(\r\n private mapper: MapperService,\r\n store: Store,\r\n private element: ElementRef,\r\n private captureService: CaptureService,\r\n private renderer: Renderer\r\n ) {\r\n this.subscription = store.let(getMacros())\r\n .subscribe((macros: Macro[]) => this.macros = macros);\r\n\r\n this.reset();\r\n this.captureService.populateMapping();\r\n this.scanCodePressed = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.setLabels();\r\n }\r\n\r\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\r\n if (changes['keyAction']) {\r\n this.setLabels();\r\n if (this.keybindAnimationEnabled) {\r\n this.changeAnimation = 'active';\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n onChangeAnimationDone() {\r\n this.changeAnimation = 'inactive';\r\n }\r\n\r\n onRecordingAnimationDone() {\r\n if (this.recording && this.recordAnimation === 'inactive') {\r\n this.recordAnimation = 'active';\r\n } else {\r\n this.recordAnimation = 'inactive';\r\n }\r\n }\r\n\r\n private reset() {\r\n this.recording = false;\r\n this.changeAnimation = 'inactive';\r\n this.captureService.initModifiers();\r\n }\r\n\r\n private saveScanCode(code = 0) {\r\n this.recording = false;\r\n this.changeAnimation = 'inactive';\r\n\r\n const left: boolean[] = this.captureService.getModifiers(true);\r\n const right: boolean[] = this.captureService.getModifiers(false);\r\n\r\n this.capture.emit({\r\n code,\r\n left,\r\n right\r\n });\r\n\r\n this.captureService.initModifiers();\r\n }\r\n\r\n private setLabels(): void {\r\n if (!this.keyAction) {\r\n this.labelSource = undefined;\r\n this.labelType = LabelTypes.OneLineText;\r\n return;\r\n }\r\n\r\n this.labelType = LabelTypes.OneLineText;\r\n\r\n if (this.keyAction instanceof KeystrokeAction) {\r\n const keyAction: KeystrokeAction = this.keyAction as KeystrokeAction;\r\n let newLabelSource: string[];\r\n\r\n if (!keyAction.hasActiveModifier() && keyAction.hasScancode()) {\r\n const scancode: number = keyAction.scancode;\r\n newLabelSource = this.mapper.scanCodeToText(scancode, keyAction.type);\r\n if (this.mapper.hasScancodeIcon(scancode, keyAction.type)) {\r\n this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode, keyAction.type);\r\n this.labelType = LabelTypes.SingleIcon;\r\n } else if (newLabelSource !== undefined) {\r\n if (newLabelSource.length === 1) {\r\n this.labelSource = newLabelSource[0];\r\n this.labelType = LabelTypes.OneLineText;\r\n } else {\r\n this.labelSource = newLabelSource;\r\n this.labelType = LabelTypes.TwoLineText;\r\n }\r\n }\r\n } else if (keyAction.hasOnlyOneActiveModifier() && !keyAction.hasScancode()) {\r\n newLabelSource = [];\r\n switch (keyAction.modifierMask) {\r\n case KeyModifiers.leftCtrl:\r\n case KeyModifiers.rightCtrl:\r\n newLabelSource.push('Ctrl');\r\n break;\r\n case KeyModifiers.leftShift:\r\n case KeyModifiers.rightShift:\r\n newLabelSource.push('Shift');\r\n break;\r\n case KeyModifiers.leftAlt:\r\n case KeyModifiers.rightAlt:\r\n newLabelSource.push('Alt');\r\n break;\r\n case KeyModifiers.leftGui:\r\n case KeyModifiers.rightGui:\r\n newLabelSource.push('Super');\r\n break;\r\n default:\r\n newLabelSource.push('Undefined');\r\n break;\r\n }\r\n this.labelSource = newLabelSource;\r\n } else {\r\n this.labelType = LabelTypes.KeystrokeKey;\r\n this.labelSource = this.keyAction;\r\n }\r\n } else if (this.keyAction instanceof SwitchLayerAction) {\r\n const keyAction: SwitchLayerAction = this.keyAction as SwitchLayerAction;\r\n let newLabelSource: string;\r\n switch (keyAction.layer) {\r\n case LayerName.mod:\r\n newLabelSource = 'Mod';\r\n break;\r\n case LayerName.fn:\r\n newLabelSource = 'Fn';\r\n break;\r\n case LayerName.mouse:\r\n newLabelSource = 'Mouse';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (keyAction.isLayerToggleable) {\r\n this.labelType = LabelTypes.TextIcon;\r\n this.labelSource = {\r\n text: newLabelSource,\r\n icon: this.mapper.getIcon('toggle')\r\n };\r\n } else {\r\n this.labelType = LabelTypes.OneLineText;\r\n this.labelSource = newLabelSource;\r\n }\r\n } else if (this.keyAction instanceof SwitchKeymapAction) {\r\n const keyAction: SwitchKeymapAction = this.keyAction as SwitchKeymapAction;\r\n this.labelType = LabelTypes.SwitchKeymap;\r\n this.labelSource = keyAction.keymapAbbreviation;\r\n } else if (this.keyAction instanceof PlayMacroAction) {\r\n const keyAction: PlayMacroAction = this.keyAction as PlayMacroAction;\r\n const macro: Macro = this.macros.find((_macro: Macro) => _macro.id === keyAction.macroId);\r\n this.labelType = LabelTypes.IconText;\r\n this.labelSource = {\r\n icon: this.mapper.getIcon('macro'),\r\n text: macro.name\r\n };\r\n } else if (this.keyAction instanceof MouseAction) {\r\n this.labelType = LabelTypes.MouseKey;\r\n this.labelSource = this.keyAction;\r\n } else {\r\n this.labelSource = undefined;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.html\n// module id = 757\n// module chunks = 1","module.exports = \":host {\\n cursor: pointer;\\n outline: none; }\\n :host /deep/ text {\\n dominant-baseline: central; }\\n :host:hover {\\n fill: #494949; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.scss\n// module id = 758\n// module chunks = 1","export * from './svg-keystroke-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-keystroke-key/index.ts","import { Component, Input, OnChanges, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KeystrokeAction } from '../../../../config-serializer/config-items/key-action';\r\nimport { KeyModifiers } from '../../../../config-serializer/config-items/key-modifiers';\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\nclass SvgAttributes {\r\n width: number;\r\n height: number;\r\n x: number;\r\n y: number;\r\n disabled: boolean;\r\n\r\n constructor() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.x = 0;\r\n this.y = 0;\r\n this.disabled = true;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'g[svg-keystroke-key]',\r\n template: require('./svg-keystroke-key.component.html'),\r\n styles: [require('./svg-keystroke-key.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgKeystrokeKeyComponent implements OnInit, OnChanges {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() keystrokeAction: KeystrokeAction;\r\n\r\n private viewBox: string;\r\n private textContainer: SvgAttributes;\r\n private modifierContainer: SvgAttributes;\r\n private shift: SvgAttributes;\r\n private control: SvgAttributes;\r\n private option: SvgAttributes;\r\n private command: SvgAttributes;\r\n\r\n private labelSource: any;\r\n private labelType: 'empty' | 'one-line' | 'two-line' | 'icon';\r\n\r\n private modifierIconNames: {\r\n shift?: string,\r\n option?: string,\r\n command?: string\r\n };\r\n\r\n constructor(private mapper: MapperService) {\r\n this.modifierIconNames = {};\r\n this.textContainer = new SvgAttributes();\r\n this.modifierContainer = new SvgAttributes();\r\n this.shift = new SvgAttributes();\r\n this.control = new SvgAttributes();\r\n this.option = new SvgAttributes();\r\n this.command = new SvgAttributes();\r\n }\r\n\r\n ngOnInit() {\r\n this.viewBox = [0, 0, this.width, this.height].join(' ');\r\n this.modifierIconNames.shift = this.mapper.getIcon('shift');\r\n this.modifierIconNames.option = this.mapper.getIcon('option');\r\n this.modifierIconNames.command = this.mapper.getIcon('command');\r\n\r\n const bottomSideMode: boolean = this.width < this.height * 1.8;\r\n\r\n const heightWidthRatio = this.height / this.width;\r\n\r\n if (bottomSideMode) {\r\n const maxIconWidth = this.width / 4;\r\n const maxIconHeight = this.height;\r\n const iconScalingFactor = 0.8;\r\n const iconWidth = iconScalingFactor * heightWidthRatio * maxIconWidth;\r\n const iconHeight = iconScalingFactor * maxIconHeight;\r\n this.modifierContainer.width = this.width;\r\n this.modifierContainer.height = this.height / 5;\r\n this.modifierContainer.y = this.height - this.modifierContainer.height;\r\n this.shift.width = iconWidth;\r\n this.shift.height = iconHeight;\r\n this.shift.x = (maxIconWidth - iconWidth) / 2;\r\n this.shift.y = (maxIconHeight - iconHeight) / 2;\r\n this.control.width = iconWidth;\r\n this.control.height = iconHeight;\r\n this.control.x = this.shift.x + maxIconWidth;\r\n this.control.y = this.shift.y;\r\n this.option.width = iconWidth;\r\n this.option.height = iconHeight;\r\n this.option.x = this.control.x + maxIconWidth;\r\n this.option.y = this.shift.y;\r\n this.command.width = iconWidth;\r\n this.command.height = iconHeight;\r\n this.command.x = this.option.x + maxIconWidth;\r\n this.command.y = this.shift.y;\r\n this.textContainer.y = -this.modifierContainer.height / 2;\r\n } else {\r\n this.modifierContainer.width = this.width / 4;\r\n this.modifierContainer.height = this.height;\r\n this.modifierContainer.x = this.width - this.modifierContainer.width;\r\n\r\n const length = Math.min(this.modifierContainer.width / 2, this.modifierContainer.height / 2);\r\n\r\n const iconScalingFactor = 0.8;\r\n const iconWidth = iconScalingFactor * this.width * (length / this.modifierContainer.width);\r\n const iconHeight = iconScalingFactor * this.height * (length / this.modifierContainer.height);\r\n this.shift.width = iconWidth;\r\n this.shift.height = iconHeight;\r\n this.shift.x = this.width / 4 - iconWidth / 2;\r\n this.shift.y = this.height / 4 - iconHeight / 2;\r\n this.control.width = iconWidth;\r\n this.control.height = iconHeight;\r\n this.control.x = this.shift.x + this.width / 2;\r\n this.control.y = this.shift.y;\r\n this.option.width = iconWidth;\r\n this.option.height = iconHeight;\r\n this.option.x = this.shift.x;\r\n this.option.y = this.shift.y + this.height / 2;\r\n this.command.width = iconWidth;\r\n this.command.height = iconHeight;\r\n this.command.x = this.option.x + this.width / 2;\r\n this.command.y = this.option.y;\r\n this.textContainer.x = -this.modifierContainer.width / 2;\r\n }\r\n\r\n this.textContainer.width = this.width;\r\n this.textContainer.height = this.height;\r\n }\r\n\r\n ngOnChanges() {\r\n let newLabelSource: string[];\r\n if (this.keystrokeAction.hasScancode()) {\r\n const scancode: number = this.keystrokeAction.scancode;\r\n newLabelSource = this.mapper.scanCodeToText(scancode, this.keystrokeAction.type);\r\n if (newLabelSource) {\r\n if (newLabelSource.length === 1) {\r\n this.labelSource = newLabelSource[0];\r\n this.labelType = 'one-line';\r\n } else {\r\n this.labelSource = newLabelSource;\r\n this.labelType = 'two-line';\r\n }\r\n } else {\r\n this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode, this.keystrokeAction.type);\r\n this.labelType = 'icon';\r\n }\r\n } else {\r\n this.labelType = 'empty';\r\n }\r\n\r\n this.shift.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftShift | KeyModifiers.rightShift);\r\n this.control.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftCtrl | KeyModifiers.rightCtrl);\r\n this.option.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftAlt | KeyModifiers.rightAlt);\r\n this.command.disabled = !this.keystrokeAction.isActive(KeyModifiers.leftGui | KeyModifiers.rightGui);\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n C\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.html\n// module id = 761\n// module chunks = 1","module.exports = \".disabled {\\n fill: gray; }\\n\\ntext {\\n font-size: 100px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.scss\n// module id = 762\n// module chunks = 1","export * from './svg-mouse-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MouseAction, MouseActionParam } from '../../../../config-serializer/config-items/key-action';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-key]',\r\n template: require('./svg-mouse-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseKeyComponent implements OnChanges {\r\n @Input() mouseAction: MouseAction;\r\n private type: 'click' | 'scroll' | 'move' | 'speed';\r\n private param: any;\r\n\r\n constructor() { }\r\n\r\n ngOnChanges() {\r\n switch (this.mouseAction.mouseAction) {\r\n case MouseActionParam.leftClick:\r\n this.type = 'click';\r\n this.param = 'Left';\r\n break;\r\n case MouseActionParam.rightClick:\r\n this.type = 'click';\r\n this.param = 'Right';\r\n break;\r\n case MouseActionParam.middleClick:\r\n this.type = 'click';\r\n this.param = 'Middle';\r\n break;\r\n case MouseActionParam.scrollDown:\r\n this.type = 'scroll';\r\n this.param = 'down';\r\n break;\r\n case MouseActionParam.scrollLeft:\r\n this.type = 'scroll';\r\n this.param = 'left';\r\n break;\r\n case MouseActionParam.scrollRight:\r\n this.type = 'scroll';\r\n this.param = 'right';\r\n break;\r\n case MouseActionParam.scrollUp:\r\n this.type = 'scroll';\r\n this.param = 'up';\r\n break;\r\n case MouseActionParam.moveDown:\r\n this.type = 'move';\r\n this.param = 'down';\r\n break;\r\n case MouseActionParam.moveLeft:\r\n this.type = 'move';\r\n this.param = 'left';\r\n break;\r\n case MouseActionParam.moveRight:\r\n this.type = 'move';\r\n this.param = 'right';\r\n break;\r\n case MouseActionParam.moveUp:\r\n this.type = 'move';\r\n this.param = 'up';\r\n break;\r\n case MouseActionParam.accelerate:\r\n this.type = 'speed';\r\n this.param = true;\r\n break;\r\n case MouseActionParam.decelerate:\r\n this.type = 'speed';\r\n this.param = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.ts","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-key/svg-mouse-key.html\n// module id = 765\n// module chunks = 1","export * from './svg-mouse-click-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-click-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-click-key]',\r\n template: require('./svg-mouse-click-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseClickKeyComponent implements OnInit {\r\n @Input() button: string;\r\n\r\n private icon: string;\r\n\r\n constructor(private mapper: MapperService) {\r\n this.icon = this.mapper.getIcon('mouse');\r\n }\r\n\r\n ngOnInit() { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.ts","module.exports = \"\\r\\n\\r\\n\\r\\n Click \\r\\n\\r\\n\\r\\n {{ button }} \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-click-key/svg-mouse-click-key.html\n// module id = 768\n// module chunks = 1","export * from './svg-mouse-move-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-move-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-move-key]',\r\n template: require('./svg-mouse-move-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseMoveKeyComponent implements OnChanges {\r\n @Input() direction: string;\r\n\r\n private mouseIcon: string;\r\n private directionIcon: string;\r\n\r\n constructor(private mapper: MapperService) { }\r\n\r\n ngOnChanges() {\r\n this.mouseIcon = this.mapper.getIcon('mouse');\r\n this.directionIcon = this.mapper.getIcon(`${this.direction}-arrow`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.ts","module.exports = \"\\r\\n\\r\\n Move \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-move-key/svg-mouse-move-key.html\n// module id = 771\n// module chunks = 1","export * from './svg-mouse-speed-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-speed-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-speed-key]',\r\n template: require('./svg-mouse-speed-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseSpeedKeyComponent implements OnChanges {\r\n @Input() plus: boolean;\r\n\r\n private icon: string;\r\n private sign: string;\r\n\r\n constructor(private mapper: MapperService) {\r\n this.icon = this.mapper.getIcon('mouse');\r\n }\r\n\r\n ngOnChanges() {\r\n this.sign = this.plus ? '+' : '-';\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.ts","module.exports = \"\\r\\n\\r\\n\\r\\n Speed \\r\\n\\r\\n\\r\\n {{ sign }} \\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-speed-key/svg-mouse-speed-key.html\n// module id = 774\n// module chunks = 1","export * from './svg-mouse-scroll-key';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-scroll-key/index.ts","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-mouse-scroll-key]',\r\n template: require('./svg-mouse-scroll-key.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgMouseScrollKeyComponent implements OnChanges {\r\n @Input() direction: string;\r\n\r\n private mouseIcon: string;\r\n private directionIcon: string;\r\n\r\n constructor(private mapper: MapperService) { }\r\n\r\n ngOnChanges() {\r\n this.mouseIcon = this.mapper.getIcon('mouse');\r\n this.directionIcon = this.mapper.getIcon(`scroll-${this.direction}`);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.ts","module.exports = \"\\r\\n\\r\\n Scroll \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-mouse-scroll-key/svg-mouse-scroll-key.html\n// module id = 777\n// module chunks = 1","export * from './svg-one-line-text-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-one-line-text-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-one-line-text-key]',\r\n template: require('./svg-one-line-text-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgOneLineTextKeyComponent implements OnInit {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() text: string;\r\n\r\n private textY: number;\r\n private spanX: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.textY = this.height / 2;\r\n this.spanX = this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.ts","module.exports = \" \\r\\n {{ text }}\\r\\n \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-one-line-text-key/svg-one-line-text-key.component.html\n// module id = 780\n// module chunks = 1","export * from './svg-single-icon-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-single-icon-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-single-icon-key]',\r\n template: require('./svg-single-icon-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgSingleIconKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() icon: string;\r\n\r\n private svgHeight: number;\r\n private svgWidth: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.svgWidth = this.width / 3;\r\n this.svgHeight = this.height / 3;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.ts","module.exports = \"\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-single-icon-key/svg-single-icon-key.component.html\n// module id = 783\n// module chunks = 1","export * from './svg-switch-keymap-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-switch-keymap-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { MapperService } from '../../../../services/mapper.service';\r\n\r\n@Component({\r\n selector: 'g[svg-switch-keymap-key]',\r\n template: require('./svg-switch-keymap-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgSwitchKeymapKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() abbreviation: string;\r\n\r\n private icon: string;\r\n private useWidth: number;\r\n private useHeight: number;\r\n private useX: number;\r\n private useY: number;\r\n private textY: number;\r\n private spanX: number;\r\n\r\n constructor(private mapperService: MapperService) { }\r\n\r\n ngOnInit() {\r\n this.icon = this.mapperService.getIcon('switch-keymap');\r\n\r\n this.useWidth = this.width / 4;\r\n this.useHeight = this.height / 4;\r\n this.useX = this.width * 3 / 8;\r\n this.useY = this.height / 5;\r\n this.textY = this.height * 2 / 3;\r\n this.spanX = this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.ts","module.exports = \"\\r\\n\\r\\n\\r\\n {{ abbreviation }}\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-switch-keymap-key/svg-switch-keymap-key.component.html\n// module id = 786\n// module chunks = 1","export * from './svg-text-icon-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-text-icon-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-text-icon-key]',\r\n template: require('./svg-text-icon-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgTextIconKeyComponent implements OnInit {\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() text: string;\r\n @Input() icon: string;\r\n\r\n private useWidth: number;\r\n private useHeight: number;\r\n private useX: number;\r\n private useY: number;\r\n private textY: number;\r\n private textAnchor: string;\r\n private spanX: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.useWidth = this.width / 3;\r\n this.useHeight = this.height / 3;\r\n this.useX = (this.width > 2 * this.height) ? this.width * 0.6 : this.width / 3;\r\n this.useY = (this.width > 2 * this.height) ? this.height / 3 : this.height / 2;\r\n this.textY = (this.width > 2 * this.height) ? this.height / 2 : this.height / 3;\r\n this.textAnchor = (this.width > 2 * this.height) ? 'end' : 'middle';\r\n this.spanX = (this.width > 2 * this.height) ? 0.6 * this.width : this.width / 2;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.ts","module.exports = \" \\r\\n {{ text }}\\r\\n \\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-text-icon-key/svg-text-icon-key.component.html\n// module id = 789\n// module chunks = 1","export * from './svg-two-line-text-key.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-two-line-text-key/index.ts","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'g[svg-two-line-text-key]',\r\n template: require('./svg-two-line-text-key.component.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgTwoLineTextKeyComponent implements OnInit {\r\n @Input() height: number;\r\n @Input() width: number;\r\n @Input() texts: string[];\r\n\r\n private textY: number;\r\n private spanX: number;\r\n private spanYs: number[];\r\n\r\n constructor() {\r\n this.spanYs = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.textY = this.height / 2;\r\n this.spanX = this.width / 2;\r\n for (let i = 0; i < this.texts.length; ++i) {\r\n this.spanYs.push((0.75 - i * 0.5) * this.height);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.ts","module.exports = \"\\r\\n {{ text }}\\r\\n \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/keys/svg-two-line-text-key/svg-two-line-text-key.component.html\n// module id = 792\n// module chunks = 1","export * from './svg-keyboard-wrap.component';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/wrap/index.ts","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Renderer,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n ViewChild,\r\n SimpleChanges\r\n} from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/map';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { ClientRect } from '../../../dom';\r\n\r\nimport { MapperService } from '../../../services/mapper.service';\r\n\r\nimport {\r\n KeyAction,\r\n KeystrokeAction,\r\n LayerName,\r\n MouseAction,\r\n MouseActionParam,\r\n PlayMacroAction,\r\n SwitchKeymapAction,\r\n SwitchLayerAction\r\n} from '../../../config-serializer/config-items/key-action';\r\nimport { Keymap } from '../../../config-serializer/config-items/keymap';\r\nimport { Layer } from '../../../config-serializer/config-items/layer';\r\nimport { LongPressAction } from '../../../config-serializer/config-items/long-press-action';\r\nimport { camelCaseToSentence, capitalizeFirstLetter } from '../../../util';\r\n\r\nimport { AppState } from '../../../store';\r\nimport { KeymapActions } from '../../../store/actions';\r\nimport { PopoverComponent } from '../../popover';\r\n\r\ninterface NameValuePair {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n@Component({\r\n selector: 'svg-keyboard-wrap',\r\n template: require('./svg-keyboard-wrap.component.html'),\r\n styles: [require('./svg-keyboard-wrap.component.scss')],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SvgKeyboardWrapComponent implements OnInit, OnChanges {\r\n @Input() keymap: Keymap;\r\n @Input() popoverEnabled: boolean = true;\r\n @Input() tooltipEnabled: boolean = false;\r\n @Input() halvesSplit: boolean;\r\n\r\n @ViewChild(PopoverComponent, { read: ElementRef }) popover: ElementRef;\r\n\r\n private popoverShown: boolean;\r\n private keyEditConfig: { moduleId: number, keyId: number };\r\n private selectedKey: { layerId: number, moduleId: number, keyId: number };\r\n private popoverInitKeyAction: KeyAction;\r\n private keybindAnimationEnabled: boolean;\r\n private currentLayer: number = 0;\r\n private tooltipData: {\r\n posTop: number,\r\n posLeft: number,\r\n content: Observable,\r\n show: boolean\r\n };\r\n private layers: Layer[];\r\n private keyPosition: ClientRect;\r\n private wrapPosition: ClientRect;\r\n private wrapHost: HTMLElement;\r\n private keyElement: HTMLElement;\r\n\r\n @HostBinding('class.space') get space() {\r\n return this.popoverEnabled;\r\n }\r\n\r\n @HostListener('window:resize')\r\n onResize() {\r\n if (this.wrapHost) {\r\n this.wrapPosition = this.wrapHost.getBoundingClientRect();\r\n }\r\n\r\n if (this.keyElement) {\r\n this.keyPosition = this.keyElement.getBoundingClientRect();\r\n }\r\n }\r\n\r\n constructor(\r\n private store: Store,\r\n private mapper: MapperService,\r\n private element: ElementRef,\r\n private renderer: Renderer\r\n ) {\r\n this.keyEditConfig = {\r\n moduleId: undefined,\r\n keyId: undefined\r\n };\r\n\r\n this.tooltipData = {\r\n posTop: 0,\r\n posLeft: 0,\r\n content: Observable.of([]),\r\n show: false\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n this.wrapHost = this.element.nativeElement;\r\n this.wrapPosition = this.wrapHost.getBoundingClientRect();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const keymapChanges = changes['keymap'];\r\n if (keymapChanges) {\r\n this.popoverShown = false;\r\n this.layers = this.keymap.layers;\r\n if (keymapChanges.isFirstChange() ||\r\n keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) {\r\n this.currentLayer = 0;\r\n this.keybindAnimationEnabled = keymapChanges.isFirstChange();\r\n } else {\r\n this.keybindAnimationEnabled = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {\r\n if (!this.popoverShown && this.popoverEnabled) {\r\n this.keyEditConfig = {\r\n moduleId,\r\n keyId\r\n };\r\n this.selectedKey = { layerId: this.currentLayer, moduleId, keyId };\r\n const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId];\r\n this.keyElement = keyTarget;\r\n this.showPopover(keyActionToEdit);\r\n }\r\n }\r\n\r\n onKeyHover(moduleId: number, event: MouseEvent, over: boolean, keyId: number): void {\r\n if (this.tooltipEnabled) {\r\n const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId];\r\n\r\n if (over) {\r\n this.showTooltip(keyActionToEdit, event);\r\n } else {\r\n this.hideTooltip();\r\n }\r\n }\r\n }\r\n\r\n onCapture(moduleId: number, keyId: number, captured: { code: number, left: boolean[], right: boolean[] }): void {\r\n const keystrokeAction: KeystrokeAction = new KeystrokeAction();\r\n const modifiers = captured.left.concat(captured.right).map(x => x ? 1 : 0);\r\n\r\n keystrokeAction.scancode = captured.code;\r\n keystrokeAction.modifierMask = 0;\r\n\r\n for (let i = 0; i < modifiers.length; ++i) {\r\n keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i);\r\n }\r\n\r\n this.store.dispatch(\r\n KeymapActions.saveKey(\r\n this.keymap,\r\n this.currentLayer,\r\n moduleId,\r\n keyId,\r\n keystrokeAction)\r\n );\r\n }\r\n\r\n onRemap(keyAction: KeyAction): void {\r\n this.store.dispatch(\r\n KeymapActions.saveKey(\r\n this.keymap,\r\n this.currentLayer,\r\n this.keyEditConfig.moduleId,\r\n this.keyEditConfig.keyId,\r\n keyAction)\r\n );\r\n this.hidePopover();\r\n }\r\n\r\n showPopover(keyAction: KeyAction): void {\r\n this.keyPosition = this.keyElement.getBoundingClientRect();\r\n this.popoverInitKeyAction = keyAction;\r\n this.popoverShown = true;\r\n this.renderer.invokeElementMethod(this.popover.nativeElement, 'focus');\r\n }\r\n\r\n showTooltip(keyAction: KeyAction, event: MouseEvent): void {\r\n if (keyAction === undefined) {\r\n return;\r\n }\r\n\r\n const el: Element = event.target as Element || event.srcElement;\r\n const position: ClientRect = el.getBoundingClientRect();\r\n let posLeft: number = this.tooltipData.posLeft;\r\n let posTop: number = this.tooltipData.posTop;\r\n\r\n if (el.tagName === 'g') {\r\n posLeft = position.left + (position.width / 2);\r\n posTop = position.top + position.height;\r\n }\r\n\r\n this.tooltipData = {\r\n posLeft: posLeft,\r\n posTop: posTop,\r\n content: this.getKeyActionContent(keyAction),\r\n show: true\r\n };\r\n }\r\n\r\n hideTooltip() {\r\n this.tooltipData.show = false;\r\n }\r\n\r\n hidePopover(): void {\r\n this.popoverShown = false;\r\n this.selectedKey = undefined;\r\n }\r\n\r\n selectLayer(index: number): void {\r\n this.currentLayer = index;\r\n }\r\n\r\n getSelectedLayer(): number {\r\n return this.currentLayer;\r\n }\r\n\r\n private getKeyActionContent(keyAction: KeyAction): Observable {\r\n if (keyAction instanceof KeystrokeAction) {\r\n const keystrokeAction: KeystrokeAction = keyAction;\r\n const content: NameValuePair[] = [];\r\n content.push({\r\n name: 'Action type',\r\n value: 'Keystroke'\r\n });\r\n\r\n if (keystrokeAction.hasScancode()) {\r\n let value: string = keystrokeAction.scancode.toString();\r\n const scanCodeTexts: string = (this.mapper.scanCodeToText(keystrokeAction.scancode, keystrokeAction.type) || [])\r\n .join(', ');\r\n if (scanCodeTexts.length > 0) {\r\n value += ' (' + scanCodeTexts + ')';\r\n }\r\n content.push({\r\n name: 'Scancode',\r\n value\r\n });\r\n }\r\n\r\n if (keystrokeAction.hasActiveModifier()) {\r\n content.push({\r\n name: 'Modifiers',\r\n value: keystrokeAction.getModifierList().join(', ')\r\n });\r\n }\r\n\r\n if (keystrokeAction.hasLongPressAction()) {\r\n content.push({\r\n name: 'Long press',\r\n value: LongPressAction[keystrokeAction.longPressAction]\r\n });\r\n }\r\n return Observable.of(content);\r\n } else if (keyAction instanceof MouseAction) {\r\n const mouseAction: MouseAction = keyAction;\r\n const content: NameValuePair[] =\r\n [\r\n {\r\n name: 'Action type',\r\n value: 'Mouse'\r\n },\r\n {\r\n name: 'Action',\r\n value: camelCaseToSentence(MouseActionParam[mouseAction.mouseAction])\r\n }\r\n ];\r\n return Observable.of(content);\r\n } else if (keyAction instanceof PlayMacroAction) {\r\n const playMacroAction: PlayMacroAction = keyAction;\r\n return this.store\r\n .select(appState => appState.userConfiguration.macros)\r\n .map(macroState => macroState.find(macro => {\r\n return macro.id === playMacroAction.macroId;\r\n }).name)\r\n .map(macroName => {\r\n const content: NameValuePair[] = [\r\n {\r\n name: 'Action type',\r\n value: 'Play macro'\r\n },\r\n {\r\n name: 'Macro name',\r\n value: macroName\r\n }\r\n ];\r\n return content;\r\n });\r\n } else if (keyAction instanceof SwitchKeymapAction) {\r\n const switchKeymapAction: SwitchKeymapAction = keyAction;\r\n return this.store\r\n .select(appState => appState.userConfiguration.keymaps)\r\n .map(keymaps => keymaps.find(keymap => keymap.abbreviation === switchKeymapAction.keymapAbbreviation).name)\r\n .map(keymapName => {\r\n const content: NameValuePair[] = [\r\n {\r\n name: 'Action type',\r\n value: 'Switch keymap'\r\n },\r\n {\r\n name: 'Keymap',\r\n value: keymapName\r\n }\r\n ];\r\n return content;\r\n });\r\n } else if (keyAction instanceof SwitchLayerAction) {\r\n const switchLayerAction: SwitchLayerAction = keyAction;\r\n const content: NameValuePair[] =\r\n [\r\n {\r\n name: 'Action type',\r\n value: 'Switch layer'\r\n },\r\n {\r\n name: 'Layer',\r\n value: capitalizeFirstLetter(LayerName[switchLayerAction.layer])\r\n },\r\n {\r\n name: 'Toogle',\r\n value: switchLayerAction.isLayerToggleable ? 'On' : 'Off'\r\n }\r\n ];\r\n return Observable.of(content);\r\n }\r\n\r\n return Observable.of([]);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/svg/wrap/svg-keyboard-wrap.component.ts","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ item.name }}: {{ item.value }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/wrap/svg-keyboard-wrap.component.html\n// module id = 795\n// module chunks = 1","module.exports = \":host {\\n width: 100%;\\n display: block; }\\n :host.space {\\n margin-bottom: 405px; }\\n\\nkeyboard-slider {\\n display: block;\\n position: relative;\\n overflow: hidden;\\n /* TODO create dynamic */\\n height: 500px;\\n margin-top: 30px; }\\n\\n.tooltip {\\n position: fixed;\\n transform: translate(-50%, -6px);\\n display: none; }\\n .tooltip-inner {\\n background: #fff;\\n color: #000;\\n box-shadow: 0 1px 5px #000;\\n text-align: left; }\\n .tooltip-inner p {\\n margin-bottom: 2px; }\\n .tooltip-inner p:last-of-type {\\n margin-bottom: 0; }\\n .tooltip.bottom .tooltip-arrow {\\n border-bottom-color: #fff;\\n top: 1px; }\\n .tooltip.in {\\n display: block;\\n opacity: 1; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/svg/wrap/svg-keyboard-wrap.component.scss\n// module id = 796\n// module chunks = 1","export * from './main-app.component';\r\nexport * from './main-app.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/main-app/index.ts","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'main-app',\r\n template: require('./main-app.component.html'),\r\n styles: [\r\n require('../shared/main-app/main-app.component.scss'),\r\n require('./main-app.component.scss')\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MainAppComponent { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/main-app/main-app.component.ts","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Fork me on GitHub\\r\\n
\\r\\n\\r\\n\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./web/src/main-app/main-app.component.html\n// module id = 799\n// module chunks = 1","module.exports = \".notifier__container * {\\n box-sizing: border-box; }\\n\\n.notifier__container-list {\\n margin-top: 0;\\n margin-bottom: 0;\\n padding-left: 0;\\n list-style-type: none; }\\n\\n.notifier__notification {\\n display: block;\\n position: fixed;\\n visibility: hidden;\\n z-index: 10000;\\n will-change: transform;\\n backface-visibility: hidden; }\\n\\n.notifier__notification--material {\\n border-radius: 3px;\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\\n cursor: default;\\n padding-top: 11px;\\n padding-right: 26px;\\n padding-bottom: 10px;\\n padding-left: 26px; }\\n .notifier__notification--material .notifier__notification-message {\\n display: inline-block;\\n margin-top: 0;\\n margin-bottom: 0;\\n vertical-align: top;\\n line-height: 32px;\\n font-size: 15px; }\\n .notifier__notification--material .notifier__notification-button {\\n display: inline-block;\\n transition: opacity .2s ease;\\n opacity: .5;\\n margin-right: -10px;\\n margin-left: 10px;\\n outline: none;\\n border: none;\\n background: none;\\n cursor: pointer;\\n padding: 6px;\\n width: 32px;\\n height: 32px;\\n vertical-align: top; }\\n .notifier__notification--material .notifier__notification-button:hover, .notifier__notification--material .notifier__notification-button:focus {\\n opacity: 1; }\\n .notifier__notification--material .notifier__notification-button:active {\\n transform: scale(0.82);\\n opacity: 1; }\\n\\n.notifier__notification--default {\\n background-color: #444;\\n color: #FFF; }\\n .notifier__notification--default .notifier__notification-button-icon {\\n fill: #FFF; }\\n\\n.notifier__notification--error {\\n background-color: #D9534F;\\n color: #FFF; }\\n .notifier__notification--error .notifier__notification-button-icon {\\n fill: #FFF; }\\n\\n.notifier__notification--info {\\n background-color: #5BC0DE;\\n color: #FFF; }\\n .notifier__notification--info .notifier__notification-button-icon {\\n fill: #FFF; }\\n\\n.notifier__notification--success {\\n background-color: #5CB85C;\\n color: #FFF; }\\n .notifier__notification--success .notifier__notification-button-icon {\\n fill: #FFF; }\\n\\n.notifier__notification--warning {\\n background-color: #F0AD4E;\\n color: #FFF; }\\n .notifier__notification--warning .notifier__notification-button-icon {\\n fill: #FFF; }\\n\\n.tooltip {\\n z-index: 10001; }\\n .tooltip .tooltip-inner {\\n color: #fff;\\n background: #333; }\\n .tooltip .tooltip-arrow {\\n /* stylelint-disable-next-line declaration-no-important */\\n border-top-color: #333 !important;\\n /* stylelint-disable-next-line declaration-no-important */\\n border-bottom-color: #333 !important; }\\n\\nmain-app {\\n display: block;\\n overflow: hidden;\\n position: relative; }\\n\\n.select2-container--default .select2-selection--single .select2-selection__rendered {\\n line-height: 26px; }\\n\\n.main-content {\\n margin-left: 250px; }\\n\\n.select2-container {\\n z-index: 1100; }\\n .select2-container .scancode--searchterm {\\n text-align: right;\\n color: #b7b7b7; }\\n\\n.select2-item {\\n display: flex;\\n justify-content: space-between; }\\n\\n.select2-results {\\n text-align: left; }\\n\\n.nav-pills > li > a {\\n cursor: pointer; }\\n\\n.select2-container--default .select2-dropdown--below .select2-results > .select2-results__options {\\n max-height: 300px; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/main-app/main-app.component.scss\n// module id = 800\n// module chunks = 1","module.exports = \"/* GitHub ribbon */\\n.github-fork-ribbon {\\n background-color: #a00;\\n overflow: hidden;\\n white-space: nowrap;\\n position: fixed;\\n right: -50px;\\n bottom: 40px;\\n z-index: 2000;\\n /* stylelint-disable indentation */\\n -webkit-transform: rotate(-45deg);\\n -moz-transform: rotate(-45deg);\\n -ms-transform: rotate(-45deg);\\n -o-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n -webkit-box-shadow: 0 0 10px #888;\\n -moz-box-shadow: 0 0 10px #888;\\n box-shadow: 0 0 10px #888;\\n /* stylelint-enable indentation */ }\\n .github-fork-ribbon a {\\n border: 1px solid #faa;\\n color: #fff;\\n display: block;\\n font: bold 81.25% 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n margin: 1px 0;\\n padding: 10px 50px;\\n text-align: center;\\n text-decoration: none;\\n text-shadow: 0 0 5px #444; }\\n\\nmain-app {\\n min-height: 100vh;\\n width: 100%; }\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./web/src/main-app/main-app.component.scss\n// module id = 801\n// module chunks = 1","import { ModuleWithProviders } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { addOnRoutes } from '../shared/components/add-on';\r\nimport { keymapRoutes } from '../components/keymap';\r\nimport { macroRoutes } from '../shared/components/macro';\r\nimport { settingsRoutes } from '../shared/components/settings';\r\n\r\nconst appRoutes: Routes = [\r\n ...keymapRoutes,\r\n ...macroRoutes,\r\n ...addOnRoutes,\r\n ...settingsRoutes\r\n];\r\n\r\nexport const appRoutingProviders: any[] = [];\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, { useHash: true });\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/main-app/main-app.routes.ts","export * from './keymap.routes';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/components/keymap/index.ts","import { Routes } from '@angular/router';\r\n\r\nimport { KeymapAddComponent } from '../../shared/components/keymap/add/keymap-add.component';\r\nimport { KeymapEditComponent, KeymapEditGuard } from '../../shared/components/keymap/edit';\r\n\r\nexport const keymapRoutes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: '/keymap',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'keymap',\r\n component: KeymapEditComponent,\r\n canActivate: [KeymapEditGuard]\r\n },\r\n {\r\n path: 'keymap/add',\r\n component: KeymapAddComponent\r\n },\r\n {\r\n path: 'keymap/:abbr',\r\n component: KeymapEditComponent\r\n }\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./web/src/components/keymap/keymap.routes.ts","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport 'rxjs/add/observable/of';\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/let';\r\nimport 'rxjs/add/operator/switchMap';\r\n\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { Keymap } from './../../../config-serializer/config-items/keymap';\r\nimport { AppState } from '../../../store/index';\r\nimport { getKeymaps } from '../../../store/reducers/user-configuration';\r\n\r\n@Injectable()\r\nexport class KeymapEditGuard implements CanActivate {\r\n\r\n constructor(private store: Store, private router: Router) { }\r\n\r\n canActivate(): Observable {\r\n return this.store\r\n .let(getKeymaps())\r\n .do((keymaps: Keymap[]) => {\r\n const defaultKeymap = keymaps.find(keymap => keymap.isDefault);\r\n if (defaultKeymap) {\r\n this.router.navigate(['/keymap', defaultKeymap.abbreviation]);\r\n }\r\n })\r\n .switchMap(() => Observable.of(false));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/keymap/edit/keymap-edit-guard.service.ts","export * from './cancelable';\r\nexport * from './tooltip';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/directives/index.ts","export { CancelableDirective } from './cancelable.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/directives/cancelable/index.ts","import { Directive, ElementRef, HostListener, Renderer } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cancelable]'\r\n})\r\nexport class CancelableDirective {\r\n\r\n private originalValue: string;\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer) { }\r\n\r\n @HostListener('focus') onFocus(): void {\r\n this.originalValue = this.elementRef.nativeElement.value;\r\n }\r\n\r\n @HostListener('keyup.escape') onEscape(): void {\r\n this.renderer.setElementProperty(this.elementRef.nativeElement, 'value', this.originalValue);\r\n this.renderer.invokeElementMethod(this.elementRef.nativeElement, 'blur');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/directives/cancelable/cancelable.directive.ts","export { TooltipDirective } from './tooltip.directive';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/directives/tooltip/index.ts","import { Directive, ElementRef, AfterContentInit, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[data-toggle=\"tooltip\"]'\r\n})\r\nexport class TooltipDirective implements AfterContentInit {\r\n\r\n private customTooltipTemplate = `\r\n
\r\n
\r\n
\r\n
\r\n `;\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterContentInit() {\r\n jQuery(this.elementRef.nativeElement).tooltip({\r\n placement: 'top',\r\n html: true,\r\n template: this.customTooltipTemplate\r\n });\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/directives/tooltip/tooltip.directive.ts","export { SafeStylePipe } from './safe-style.pipe';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/pipes/index.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeStyle'\r\n})\r\nexport class SafeStylePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(style: string): SafeStyle {\r\n return this.sanitizer.bypassSecurityTrustStyle(style);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/pipes/safe-style.pipe.ts","export * from './keymap';\r\nexport * from './macro';\r\nexport * from './user-config';\r\nexport * from './auto-update-settings';\r\nexport * from './app';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/effects/index.ts","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Actions, Effect } from '@ngrx/effects';\r\nimport { Action, Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/startWith';\r\nimport 'rxjs/add/operator/switchMap';\r\nimport 'rxjs/add/operator/withLatestFrom';\r\nimport 'rxjs/add/observable/of';\r\n\r\nimport { KeymapActions } from '../actions';\r\nimport { AppState } from '../index';\r\n\r\nimport { Keymap } from '../../config-serializer/config-items/keymap';\r\n\r\n@Injectable()\r\nexport class KeymapEffects {\r\n\r\n @Effect() loadKeymaps$: Observable = this.actions$\r\n .ofType(KeymapActions.LOAD_KEYMAPS)\r\n .startWith(KeymapActions.loadKeymaps())\r\n .switchMap(() => {\r\n const presetsRequireContext = (require).context('../../../res/presets', false, /.json$/);\r\n const uhkPresets = presetsRequireContext.keys().map(presetsRequireContext) // load the presets into an array\r\n .map((keymap: any) => new Keymap().fromJsonObject(keymap));\r\n\r\n return Observable.of(KeymapActions.loadKeymapsSuccess(uhkPresets));\r\n });\r\n\r\n @Effect({ dispatch: false }) addOrDuplicate$: any = this.actions$\r\n .ofType(KeymapActions.ADD, KeymapActions.DUPLICATE)\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.keymaps)\r\n .do(keymaps => {\r\n this.router.navigate(['/keymap', keymaps[keymaps.length - 1].abbreviation]);\r\n });\r\n\r\n @Effect({ dispatch: false }) remove$: any = this.actions$\r\n .ofType(KeymapActions.REMOVE)\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.keymaps)\r\n .do(keymaps => {\r\n if (keymaps.length === 0) {\r\n this.router.navigate(['/keymap/add']);\r\n } else {\r\n const favourite: Keymap = keymaps.find(keymap => keymap.isDefault);\r\n this.router.navigate(['/keymap', favourite.abbreviation]);\r\n }\r\n });\r\n\r\n @Effect({ dispatch: false }) editAbbr$: any = this.actions$\r\n .ofType(KeymapActions.EDIT_ABBR)\r\n .map(action => action.payload.newAbbr)\r\n .do(newAbbr => {\r\n this.router.navigate(['/keymap', newAbbr]);\r\n });\r\n\r\n constructor(private actions$: Actions, private router: Router, private store: Store) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/effects/keymap.ts","var map = {\n\t\"./DVR.json\": 816,\n\t\"./EMY.json\": 817,\n\t\"./QTY.json\": 818,\n\t\"./VIM.json\": 819\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 815;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/res/presets nonrecursive .json$\n// module id = 815\n// module chunks = 1","module.exports = {\n\t\"isDefault\": false,\n\t\"abbreviation\": \"DVR\",\n\t\"name\": \"DVR\",\n\t\"description\": \"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean dictum sollicitudin massa, ut lacinia ipsum. Ut bibendum ipsum ac pulvinar vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam feugiat lobortis lacus, id viverra nisl varius eu. Aliquam vitae eros a augue fermentum ultricies. Nam tempus dui sed ante ultricies bibendum. In ligula velit, aliquet a felis vitae, gravida tincidunt ante. Proin euismod velit odio, at pretium lacus porta egestas. Suspendisse aliquam, lacus accumsan dapibus elementum, orci felis egestas leo, non vulputate lorem turpis nec risus. Curabitur id volutpat orci. Sed aliquet finibus iaculis. In venenatis neque ac dolor posuere, vel vestibulum augue posuere.\",\n\t\"layers\": [\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/res/presets/DVR.json\n// module id = 816\n// module chunks = 1","module.exports = {\n\t\"isDefault\": false,\n\t\"abbreviation\": \"EMY\",\n\t\"name\": \"Empty keymap\",\n\t\"description\": \"None of the keys are bind to any key action. It is ideal if you want to start creating your keymap from the ground up.\",\n\t\"layers\": [\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/res/presets/EMY.json\n// module id = 817\n// module chunks = 1","module.exports = {\n\t\"isDefault\": false,\n\t\"abbreviation\": \"QTY\",\n\t\"name\": \"QWERTY\",\n\t\"description\": \"Maecenas sem dui, ullamcorper consequat pellentesque ut, mattis at velit. Duis scelerisque eleifend gravida. Aenean at mauris rhoncus, dictum mi vitae, semper eros. Quisque maximus est elit, at condimentum ligula consectetur vel. Aenean lorem felis, molestie id ex suscipit, sagittis mollis dui. Phasellus in felis in libero bibendum ornare. Duis vestibulum dolor sed diam tempor vulputate. Curabitur scelerisque pretium ipsum. Phasellus non orci vestibulum, vehicula lectus sit amet, lacinia velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In diam lacus, cursus at pretium vel, ullamcorper at ante.\",\n\t\"layers\": [\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 36\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 37\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 38\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 39\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 45\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 46\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 42\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 24\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 12\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 18\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 19\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 47\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 48\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 49\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 28\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 13\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 14\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 15\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 51\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 52\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 40\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 11\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 17\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 16\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 54\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 55\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 56\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 53\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 30\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 31\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 32\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 33\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 34\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 35\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 43\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 20\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 26\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 8\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 21\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 23\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 22\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 7\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 9\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 10\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 29\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 27\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 6\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 25\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 5\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\"keyActions\": []\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 74\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 82\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 77\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 75\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 80\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 81\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 79\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 78\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"scancode\": 118\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 176\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 233\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 183\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 182\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 234\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 181\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\"scancode\": 226\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"moveUp\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"scrollUp\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"moveLeft\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"moveDown\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"moveRight\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"rightClick\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"middleClick\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"leftClick\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"decelerate\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/res/presets/QTY.json\n// module id = 818\n// module chunks = 1","module.exports = {\n\t\"isDefault\": false,\n\t\"abbreviation\": \"VIM\",\n\t\"name\": \"VIM\",\n\t\"description\": \"Phasellus egestas ac tellus id tincidunt. Ut non nisl turpis. Morbi molestie diam elit, et cursus nibh tempus vel. Vestibulum mattis arcu nec nisi dictum, quis facilisis augue rutrum. Fusce vel tristique metus. Nullam pretium elit et enim maximus ornare. Praesent ultrices ligula ut mi convallis, quis ultrices enim venenatis. Aenean interdum odio aliquam quam vestibulum, vel bibendum elit ornare. Morbi leo enim, ullamcorper a bibendum sit amet, ultrices vitae ligula. Etiam consectetur et massa a convallis. Nullam non nisi aliquet, suscipit nulla a, tempor odio. Praesent eu turpis euismod, pellentesque mauris ut, imperdiet felis. Pellentesque vehicula luctus purus, et mattis ante volutpat eu. Quisque venenatis porta odio.\",\n\t\"layers\": [\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\"scancode\": 111,\n\t\t\t\t\t\t\t\"type\": \"basic\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"modules\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/res/presets/VIM.json\n// module id = 819\n// module chunks = 1","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Actions, Effect } from '@ngrx/effects';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/withLatestFrom';\r\n\r\nimport { KeymapActions, MacroActions } from '../actions';\r\nimport { AppState } from '../index';\r\n\r\n@Injectable()\r\nexport class MacroEffects {\r\n\r\n @Effect({dispatch: false}) remove$: any = this.actions$\r\n .ofType(MacroActions.REMOVE)\r\n .map(action => this.store.dispatch(KeymapActions.checkMacro(action.payload)))\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.macros)\r\n .do(macros => {\r\n if (macros.length === 0) {\r\n this.router.navigate(['/macro']);\r\n } else {\r\n this.router.navigate(['/macro', macros[0].id]);\r\n }\r\n });\r\n\r\n @Effect({dispatch: false}) add$: any = this.actions$\r\n .ofType(MacroActions.ADD)\r\n .withLatestFrom(this.store)\r\n .map(latest => latest[1].userConfiguration.macros)\r\n .map(macros => macros[macros.length - 1])\r\n .do(lastMacro => {\r\n this.router.navigate(['/macro', lastMacro.id, 'new']);\r\n });\r\n\r\n constructor(private actions$: Actions, private router: Router, private store: Store) {}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/effects/macro.ts","import { Inject, Injectable } from '@angular/core';\r\nimport { Actions, Effect } from '@ngrx/effects';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Action, Store } from '@ngrx/store';\r\n\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/switchMap';\r\nimport 'rxjs/add/operator/startWith';\r\nimport 'rxjs/add/operator/withLatestFrom';\r\nimport 'rxjs/add/observable/of';\r\n\r\nimport {\r\n ActionTypes,\r\n LoadUserConfigAction,\r\n LoadUserConfigSuccessAction,\r\n SaveUserConfigSuccessAction\r\n} from '../actions/user-config';\r\n\r\nimport { UserConfiguration } from '../../config-serializer/config-items/user-configuration';\r\nimport { DATA_STORAGE_REPOSITORY, DataStorageRepositoryService } from '../../services/datastorage-repository.service';\r\nimport { DefaultUserConfigurationService } from '../../services/default-user-configuration.service';\r\nimport { AppState, getUserConfiguration } from '../index';\r\nimport { KeymapActions } from '../actions/keymap';\r\nimport { MacroActions } from '../actions/macro';\r\n\r\n@Injectable()\r\nexport class UserConfigEffects {\r\n\r\n @Effect() loadUserConfig$: Observable = this.actions$\r\n .ofType(ActionTypes.LOAD_USER_CONFIG)\r\n .startWith(new LoadUserConfigAction())\r\n .switchMap(() => {\r\n const configJsonObject = this.dataStorageRepository.getConfig();\r\n let config: UserConfiguration;\r\n\r\n if (configJsonObject) {\r\n if (configJsonObject.dataModelVersion === this.defaultUserConfigurationService.getDefault().dataModelVersion) {\r\n config = new UserConfiguration().fromJsonObject(configJsonObject);\r\n }\r\n }\r\n\r\n if (!config) {\r\n config = this.defaultUserConfigurationService.getDefault();\r\n }\r\n\r\n return Observable.of(new LoadUserConfigSuccessAction(config));\r\n });\r\n\r\n @Effect() saveUserConfig$: Observable = this.actions$\r\n .ofType(\r\n KeymapActions.ADD, KeymapActions.DUPLICATE, KeymapActions.EDIT_NAME, KeymapActions.EDIT_ABBR,\r\n KeymapActions.SET_DEFAULT, KeymapActions.REMOVE, KeymapActions.SAVE_KEY, KeymapActions.CHECK_MACRO,\r\n MacroActions.ADD, MacroActions.DUPLICATE, MacroActions.EDIT_NAME, MacroActions.REMOVE, MacroActions.ADD_ACTION,\r\n MacroActions.SAVE_ACTION, MacroActions.DELETE_ACTION, MacroActions.REORDER_ACTION)\r\n .withLatestFrom(this.store.select(getUserConfiguration))\r\n .map(([action, config]) => {\r\n this.dataStorageRepository.saveConfig(config);\r\n return new SaveUserConfigSuccessAction();\r\n });\r\n\r\n constructor(private actions$: Actions,\r\n @Inject(DATA_STORAGE_REPOSITORY) private dataStorageRepository: DataStorageRepositoryService,\r\n private store: Store,\r\n private defaultUserConfigurationService: DefaultUserConfigurationService) {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/effects/user-config.ts","module.exports = {\n\t\"dataModelVersion\": 4,\n\t\"moduleConfigurations\": [\n\t\t{\n\t\t\t\"id\": 1,\n\t\t\t\"initialPointerSpeed\": 1,\n\t\t\t\"pointerAcceleration\": 5,\n\t\t\t\"maxPointerSpeed\": 200\n\t\t}\n\t],\n\t\"keymaps\": [\n\t\t{\n\t\t\t\"isDefault\": true,\n\t\t\t\"abbreviation\": \"QTY\",\n\t\t\t\"name\": \"QWERTY\",\n\t\t\t\"description\": \"\",\n\t\t\t\"layers\": [\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 36\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 37\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 38\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 39\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 45\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 46\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 42\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 24\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 12\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 18\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 19\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 47\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 48\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 49\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 28\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 13\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 14\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 15\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 51\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 52\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 40\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 11\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 17\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 16\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 54\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 55\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 56\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 53\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 30\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 31\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 33\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 34\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 35\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 43\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 20\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 26\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 21\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 23\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 22\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 7\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 9\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 10\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 29\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 27\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 6\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 25\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 5\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 44\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": []\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 74\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 82\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 77\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 75\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 80\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 81\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 79\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 78\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchKeymap\",\n\t\t\t\t\t\t\t\t\t\"keymapAbbreviation\": \"VIM\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 118\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"none\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 176\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 233\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 183\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 182\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 234\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 181\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"media\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 226\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 32\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 2\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveUp\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollUp\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveLeft\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveDown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"moveRight\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 64\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 128\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 16\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"rightClick\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"middleClick\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"leftClick\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 8\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"modifierMask\": 4\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"fn\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"decelerate\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchLayer\",\n\t\t\t\t\t\t\t\t\t\"layer\": \"mod\",\n\t\t\t\t\t\t\t\t\t\"toggle\": false\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"isDefault\": false,\n\t\t\t\"abbreviation\": \"VIM\",\n\t\t\t\"name\": \"VIM\",\n\t\t\t\"description\": \"\",\n\t\t\t\"layers\": [\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"mouse\",\n\t\t\t\t\t\t\t\t\t\"mouseAction\": \"scrollDown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"playMacro\",\n\t\t\t\t\t\t\t\t\t\"macroIndex\": 0\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"switchKeymap\",\n\t\t\t\t\t\t\t\t\t\"keymapAbbreviation\": \"QTY\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 2,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"scroll\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"keyActionType\": \"keystroke\",\n\t\t\t\t\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\t\t\t\t\"scancode\": 111\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"isDefault\": false,\n\t\t\t\"abbreviation\": \"DVR\",\n\t\t\t\"name\": \"DVR\",\n\t\t\t\"description\": \"\",\n\t\t\t\"layers\": [\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"modules\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 0,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"id\": 1,\n\t\t\t\t\t\t\t\"pointerRole\": \"move\",\n\t\t\t\t\t\t\t\"keyActions\": [\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t],\n\t\"macros\": [\n\t\t{\n\t\t\t\"isLooped\": false,\n\t\t\t\"isPrivate\": true,\n\t\t\t\"name\": \"My address\",\n\t\t\t\"macroActions\": [\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\"scancode\": 111\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"hold\",\n\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\"scancode\": 83\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\"scancode\": 112\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"modifierMask\": 93\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"hold\",\n\t\t\t\t\t\"modifierMask\": 101\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"modifierMask\": 133\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"mouseButtonsMask\": 9\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"hold\",\n\t\t\t\t\t\"mouseButtonsMask\": 12\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"mouseButtonsMask\": 104\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"moveMouse\",\n\t\t\t\t\t\"x\": -1920,\n\t\t\t\t\t\"y\": 220\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"scrollMouse\",\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": 20000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"delay\",\n\t\t\t\t\t\"delay\": 40000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"text\",\n\t\t\t\t\t\"text\": \"this is a text\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"isLooped\": true,\n\t\t\t\"isPrivate\": true,\n\t\t\t\"name\": \"Blah Blah blah\",\n\t\t\t\"macroActions\": [\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"key\",\n\t\t\t\t\t\"action\": \"press\",\n\t\t\t\t\t\"type\": \"basic\",\n\t\t\t\t\t\"scancode\": 111\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"mouseButton\",\n\t\t\t\t\t\"action\": \"release\",\n\t\t\t\t\t\"mouseButtonsMask\": 104\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"scrollMouse\",\n\t\t\t\t\t\"x\": 0,\n\t\t\t\t\t\"y\": -20000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"delay\",\n\t\t\t\t\t\"delay\": 40000\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"macroActionType\": \"text\",\n\t\t\t\t\t\"text\": \"blahhhhhhh\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/json-loader!./shared/src/config-serializer/user-config.json\n// module id = 822\n// module chunks = 1","import { Inject, Injectable } from '@angular/core';\r\nimport { Actions, Effect, toPayload } from '@ngrx/effects';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Action, Store } from '@ngrx/store';\r\n\r\nimport 'rxjs/add/operator/startWith';\r\nimport 'rxjs/add/operator/switchMap';\r\nimport 'rxjs/add/operator/withLatestFrom';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport {\r\n ActionTypes,\r\n LoadAutoUpdateSettingsAction,\r\n LoadAutoUpdateSettingsSuccessAction,\r\n SaveAutoUpdateSettingsSuccessAction\r\n} from '../actions/auto-update-settings';\r\nimport { DATA_STORAGE_REPOSITORY, DataStorageRepositoryService } from '../../services/datastorage-repository.service';\r\nimport { AppState, getAutoUpdateSettings } from '../index';\r\nimport { initialState } from '../reducers/auto-update-settings';\r\nimport { AutoUpdateSettings } from '../../models/auto-update-settings';\r\nimport { NotificationType } from '../../models/notification';\r\nimport { ShowNotificationAction } from '../actions/app.action';\r\n\r\n@Injectable()\r\nexport class AutoUpdateSettingsEffects {\r\n @Effect() loadUserConfig$: Observable = this.actions$\r\n .ofType(ActionTypes.LOAD_AUTO_UPDATE_SETTINGS)\r\n .startWith(new LoadAutoUpdateSettingsAction())\r\n .switchMap(() => {\r\n let settings: AutoUpdateSettings = this.dataStorageRepository.getAutoUpdateSettings();\r\n if (!settings) {\r\n settings = initialState;\r\n }\r\n return Observable.of(new LoadAutoUpdateSettingsSuccessAction(settings));\r\n });\r\n\r\n @Effect() saveAutoUpdateConfig$: Observable = this.actions$\r\n .ofType(ActionTypes.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP, ActionTypes.TOGGLE_PRE_RELEASE_FLAG)\r\n .withLatestFrom(this.store.select(getAutoUpdateSettings))\r\n .map(([action, config]) => {\r\n this.dataStorageRepository.saveAutoUpdateSettings(config);\r\n return new SaveAutoUpdateSettingsSuccessAction();\r\n });\r\n\r\n @Effect() sendNotification$: Observable = this.actions$\r\n .ofType(ActionTypes.CHECK_FOR_UPDATE_FAILED, ActionTypes.CHECK_FOR_UPDATE_SUCCESS)\r\n .map(toPayload)\r\n .map((message: string) => {\r\n return new ShowNotificationAction({\r\n type: NotificationType.Info,\r\n message\r\n });\r\n });\r\n\r\n constructor(private actions$: Actions,\r\n @Inject(DATA_STORAGE_REPOSITORY) private dataStorageRepository: DataStorageRepositoryService,\r\n private store: Store) {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/effects/auto-update-settings.ts","import { Injectable } from '@angular/core';\r\nimport { Action } from '@ngrx/store';\r\nimport { Actions, Effect, toPayload } from '@ngrx/effects';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\nimport 'rxjs/add/operator/do';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport { ActionTypes } from '../actions/app.action';\r\nimport { Notification, NotificationType } from '../../models/notification';\r\n\r\n@Injectable()\r\nexport class ApplicationEffects {\r\n\r\n @Effect({ dispatch: false })\r\n appStart$: Observable = this.actions$\r\n .ofType(ActionTypes.APP_SHOW_NOTIFICATION)\r\n .map(toPayload)\r\n .do((notification: Notification) => {\r\n const type = ApplicationEffects.mapNotificationType(notification.type);\r\n this.notifierService.notify(type, notification.message);\r\n });\r\n\r\n // TODO: Change typescript -> 2.4 and use string enum.\r\n // Corrently ngrx store is not compatible witn typescript 2.4\r\n private static mapNotificationType(type: NotificationType): string {\r\n switch (type) {\r\n case NotificationType.Success:\r\n return 'success';\r\n\r\n case NotificationType.Error:\r\n return 'error';\r\n\r\n case NotificationType.Info:\r\n return 'info';\r\n\r\n case NotificationType.Warning:\r\n return 'warning';\r\n\r\n default:\r\n return 'default';\r\n }\r\n }\r\n\r\n constructor(private actions$: Actions,\r\n private notifierService: NotifierService) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/effects/app.ts","import { Injectable } from '@angular/core';\r\n\r\nimport { UserConfiguration } from '../config-serializer/config-items/user-configuration';\r\nimport { DataStorageRepositoryService } from './datastorage-repository.service';\r\nimport { State as AutoUpdateSettings } from '../store/reducers/auto-update-settings';\r\n\r\n@Injectable()\r\nexport class LocalDataStorageRepositoryService implements DataStorageRepositoryService {\r\n\r\n getConfig(): UserConfiguration {\r\n return JSON.parse(localStorage.getItem('config'));\r\n }\r\n\r\n saveConfig(config: UserConfiguration): void {\r\n localStorage.setItem('config', JSON.stringify(config.toJsonObject()));\r\n }\r\n\r\n getAutoUpdateSettings(): AutoUpdateSettings {\r\n return JSON.parse(localStorage.getItem('auto-update-settings'));\r\n }\r\n\r\n saveAutoUpdateSettings(settings: AutoUpdateSettings): void {\r\n localStorage.setItem('auto-update-settings', JSON.stringify(settings));\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/local-datastorage-repository.service.ts","import { routerReducer } from '@ngrx/router-store';\r\n\r\nimport userConfigurationReducer from './user-configuration';\r\nimport presetReducer from './preset';\r\nimport { reducer as autoUpdateReducer } from './auto-update-settings';\r\n\r\nexport { userConfigurationReducer, presetReducer, autoUpdateReducer };\r\n\r\n// All reducers that are used in application\r\nexport const reducer = {\r\n userConfiguration: userConfigurationReducer,\r\n presetKeymaps: presetReducer,\r\n router: routerReducer,\r\n autoUpdateSettings: autoUpdateReducer\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/reducers/index.ts","import { Action } from '@ngrx/store';\r\n\r\nimport { Keymap } from '../../config-serializer/config-items/keymap';\r\nimport { KeymapActions } from '../actions/keymap';\r\n\r\nconst initialState: Keymap[] = [];\r\n\r\nexport default function(state = initialState, action: Action): Keymap[] {\r\n switch (action.type) {\r\n case KeymapActions.LOAD_KEYMAPS_SUCCESS: {\r\n return action.payload;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/store/reducers/preset.ts","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LogService {\r\n error(...args: any[]): void {\r\n console.error(args);\r\n }\r\n\r\n info(...args: any[]): void {\r\n console.info(args);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/services/logger.service.ts","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { State } from '../../store/reducers/auto-update-settings';\r\n\r\n@Component({\r\n selector: 'auto-update-settings',\r\n template: require('./auto-update-settings.html'),\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AutoUpdateSettings {\r\n\r\n @Input() version: string;\r\n @Input() settings: State;\r\n @Input() checkingForUpdate: boolean;\r\n\r\n @Output() toggleCheckForUpdateOnStartUp = new EventEmitter();\r\n @Output() toggleUsePreReleaseUpdate = new EventEmitter();\r\n @Output() checkForUpdate = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n emitCheckForUpdateOnStartUp(value: boolean) {\r\n this.toggleCheckForUpdateOnStartUp.emit(value);\r\n }\r\n\r\n emitUsePreReleaseUpdate(value: boolean) {\r\n this.toggleUsePreReleaseUpdate.emit(value);\r\n }\r\n\r\n emitCheckForUpdate() {\r\n this.checkForUpdate.emit();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/components/auto-update-settings/auto-update-settings.ts","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{version}}

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{message}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./shared/src/components/auto-update-settings/auto-update-settings.html\n// module id = 830\n// module chunks = 1","import { NotifierOptions } from 'angular-notifier';\r\n\r\nexport const angularNotifierConfig: NotifierOptions = {\r\n position: {\r\n\r\n horizontal: {\r\n\r\n /**\r\n * Defines the horizontal position on the screen\r\n * @type {'left' | 'middle' | 'right'}\r\n */\r\n position: 'right',\r\n\r\n /**\r\n * Defines the horizontal distance to the screen edge (in px)\r\n * @type {number}\r\n */\r\n distance: 12\r\n\r\n },\r\n\r\n vertical: {\r\n\r\n /**\r\n * Defines the vertical position on the screen\r\n * @type {'top' | 'bottom'}\r\n */\r\n position: 'top',\r\n\r\n /**\r\n * Defines the vertical distance to the screen edge (in px)\r\n * @type {number}\r\n */\r\n distance: 12,\r\n\r\n /**\r\n * Defines the vertical gap, existing between multiple notifications (in px)\r\n * @type {number}\r\n */\r\n gap: 10\r\n\r\n }\r\n }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/models/angular-notifier-config.ts","var WritableStream = require('stream').Writable\nvar inherits = require('util').inherits\n\nmodule.exports = BrowserStdout\n\n\ninherits(BrowserStdout, WritableStream)\n\nfunction BrowserStdout(opts) {\n if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)\n\n opts = opts || {}\n WritableStream.call(this, opts)\n this.label = (opts.label !== undefined) ? opts.label : 'stdout'\n}\n\nBrowserStdout.prototype._write = function(chunks, encoding, cb) {\n var output = chunks.toString ? chunks.toString() : chunks\n if (this.label === false) {\n console.log(output)\n } else {\n console.log(this.label+':', output)\n }\n process.nextTick(cb)\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/browser-stdout/index.js\n// module id = 832\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/stream-browserify/index.js\n// module id = 833\n// module chunks = 1","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// util (ignored)\n// module id = 834\n// module chunks = 1","'use strict';\n\n/**/\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/internal/streams/BufferList.js\n// module id = 835\n// module chunks = 1","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util-deprecate/browser.js\n// module id = 836\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/lib/_stream_passthrough.js\n// module id = 837\n// module chunks = 1","module.exports = require('./lib/_stream_writable.js');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/writable-browser.js\n// module id = 838\n// module chunks = 1","module.exports = require('./lib/_stream_duplex.js');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/duplex-browser.js\n// module id = 839\n// module chunks = 1","module.exports = require('./readable').Transform\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/transform.js\n// module id = 840\n// module chunks = 1","module.exports = require('./readable').PassThrough\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/readable-stream/passthrough.js\n// module id = 841\n// module chunks = 1","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util/util.js\n// module id = 842\n// module chunks = 1","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util/support/isBufferBrowser.js\n// module id = 843\n// module chunks = 1","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util/node_modules/inherits/inherits_browser.js\n// module id = 844\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/compiled_sprite.svg b/assets/compiled_sprite.svg index ab5bca21..d8b13f01 100644 --- a/assets/compiled_sprite.svg +++ b/assets/compiled_sprite.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/kbd__media--calculator.svg b/images/icons/kbd__media--calculator.svg new file mode 100644 index 00000000..0548b25b --- /dev/null +++ b/images/icons/kbd__media--calculator.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/images/icons/kbd__media--email-client.svg b/images/icons/kbd__media--email-client.svg new file mode 100644 index 00000000..0bc1a12a --- /dev/null +++ b/images/icons/kbd__media--email-client.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/icons/kbd__media--web-browser.svg b/images/icons/kbd__media--web-browser.svg new file mode 100644 index 00000000..ed8fb75c --- /dev/null +++ b/images/icons/kbd__media--web-browser.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/icons/kbd__system_power_down.svg b/images/icons/kbd__system_power_down.svg new file mode 100644 index 00000000..8ac0928b --- /dev/null +++ b/images/icons/kbd__system_power_down.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/icons/kbd__system_sleep.svg b/images/icons/kbd__system_sleep.svg new file mode 100644 index 00000000..2eca0c31 --- /dev/null +++ b/images/icons/kbd__system_sleep.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/icons/kbd__system_wake_up.svg b/images/icons/kbd__system_wake_up.svg new file mode 100644 index 00000000..b6eb4d5a --- /dev/null +++ b/images/icons/kbd__system_wake_up.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/polyfills.uhk.js b/polyfills.uhk.js index 142977b2..e0aa6237 100644 --- a/polyfills.uhk.js +++ b/polyfills.uhk.js @@ -7,8 +7,9 @@ /******/ var moduleId, chunkId, i = 0, resolves = [], result; /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; -/******/ if(installedChunks[chunkId]) +/******/ if(installedChunks[chunkId]) { /******/ resolves.push(installedChunks[chunkId][0]); +/******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ for(moduleId in moreModules) { @@ -17,8 +18,9 @@ /******/ } /******/ } /******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules); -/******/ while(resolves.length) +/******/ while(resolves.length) { /******/ resolves.shift()(); +/******/ } /******/ if(executeModules) { /******/ for(i=0; i < executeModules.length; i++) { /******/ result = __webpack_require__(__webpack_require__.s = executeModules[i]); @@ -39,9 +41,9 @@ /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) +/******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; -/******/ +/******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, @@ -62,13 +64,22 @@ /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = function requireEnsure(chunkId) { -/******/ if(installedChunks[chunkId] === 0) -/******/ return Promise.resolve(); -/******/ -/******/ // an Promise means "currently loading". -/******/ if(installedChunks[chunkId]) { -/******/ return installedChunks[chunkId][2]; +/******/ var installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData === 0) { +/******/ return new Promise(function(resolve) { resolve(); }); /******/ } +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ return installedChunkData[2]; +/******/ } +/******/ +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise(function(resolve, reject) { +/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; +/******/ }); +/******/ installedChunkData[2] = promise; +/******/ /******/ // start chunk loading /******/ var head = document.getElementsByTagName('head')[0]; /******/ var script = document.createElement('script'); @@ -89,17 +100,14 @@ /******/ clearTimeout(timeout); /******/ var chunk = installedChunks[chunkId]; /******/ if(chunk !== 0) { -/******/ if(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.')); +/******/ if(chunk) { +/******/ chunk[1](new Error('Loading chunk ' + chunkId + ' failed.')); +/******/ } /******/ installedChunks[chunkId] = undefined; /******/ } /******/ }; -/******/ -/******/ var promise = new Promise(function(resolve, reject) { -/******/ installedChunks[chunkId] = [resolve, reject]; -/******/ }); -/******/ installedChunks[chunkId][2] = promise; -/******/ /******/ head.appendChild(script); +/******/ /******/ return promise; /******/ }; /******/ @@ -109,9 +117,6 @@ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { @@ -142,109 +147,33 @@ /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 1128); +/******/ return __webpack_require__(__webpack_require__.s = 256); /******/ }) /************************************************************************/ -/******/ ({ - -/***/ 1128: +/******/ ([ +/* 0 */, +/* 1 */, +/* 2 */, +/* 3 */, +/* 4 */, +/* 5 */, +/* 6 */, +/* 7 */, +/* 8 */, +/* 9 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -__webpack_require__(465); -__webpack_require__(466); -__webpack_require__(469); - - -/***/ }), - -/***/ 116: -/***/ (function(module, exports) { - -var core = module.exports = {version: '2.4.0'}; -if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }), - -/***/ 117: -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(166); -module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; -}; - -/***/ }), - -/***/ 118: -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(41) - , hide = __webpack_require__(168) - , has = __webpack_require__(64) - , SRC = __webpack_require__(174)('src') - , TO_STRING = 'toString' - , $toString = Function[TO_STRING] - , TPL = ('' + $toString).split(TO_STRING); - -__webpack_require__(116).inspectSource = function(it){ - return $toString.call(it); -}; - -(module.exports = function(O, key, val, safe){ - var isFunction = typeof val == 'function'; - if(isFunction)has(val, 'name') || hide(val, 'name', key); - if(O[key] === val)return; - if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - if(O === global){ - O[key] = val; - } else { - if(!safe){ - delete O[key]; - hide(O, key, val); - } else { - if(O[key])O[key] = val; - else hide(O, key, val); - } - } -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, TO_STRING, function toString(){ - return typeof this == 'function' && this[SRC] || $toString.call(this); -}); - -/***/ }), - -/***/ 119: -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(257) - , defined = __webpack_require__(255); +var isObject = __webpack_require__(24); module.exports = function(it){ - return IObject(defined(it)); + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; }; /***/ }), - -/***/ 15: +/* 10 */, +/* 11 */, +/* 12 */, +/* 13 */ /***/ (function(module, exports) { var g; @@ -271,8 +200,403 @@ module.exports = g; /***/ }), +/* 14 */, +/* 15 */, +/* 16 */, +/* 17 */, +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { -/***/ 166: +var global = __webpack_require__(23) + , core = __webpack_require__(51) + , hide = __webpack_require__(59) + , redefine = __webpack_require__(60) + , ctx = __webpack_require__(61) + , PROTOTYPE = 'prototype'; + +var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE] + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}) + , key, own, out, exp; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + // export native or passed + out = (own ? target : source)[key]; + // bind timers to global for call from export context + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // extend global + if(target)redefine(target, key, out, type & $export.U); + // export + if(exports[key] != out)hide(exports, key, exp); + if(IS_PROTO && expProto[key] != out)expProto[key] = out; + } +}; +global.core = core; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +$export.U = 64; // safe +$export.R = 128; // real proto method for `library` +module.exports = $export; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +// Thank's IE8 for his funny defineProperty +module.exports = !__webpack_require__(52)(function(){ + return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; +}); + +/***/ }), +/* 20 */, +/* 21 */, +/* 22 */, +/* 23 */ +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); +if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + +module.exports = function(it){ + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(106)('wks') + , uid = __webpack_require__(79) + , Symbol = __webpack_require__(23).Symbol + , USE_SYMBOL = typeof Symbol == 'function'; + +var $exports = module.exports = function(name){ + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + +/***/ }), +/* 26 */, +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(9) + , IE8_DOM_DEFINE = __webpack_require__(151) + , toPrimitive = __webpack_require__(77) + , dP = Object.defineProperty; + +exports.f = __webpack_require__(19) ? Object.defineProperty : function defineProperty(O, P, Attributes){ + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if(IE8_DOM_DEFINE)try { + return dP(O, P, Attributes); + } catch(e){ /* empty */ } + if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); + if('value' in Attributes)O[P] = Attributes.value; + return O; +}; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var Map = __webpack_require__(274) + , $export = __webpack_require__(18) + , shared = __webpack_require__(106)('metadata') + , store = shared.store || (shared.store = new (__webpack_require__(288))); + +var getOrCreateMetadataMap = function(target, targetKey, create){ + var targetMetadata = store.get(target); + if(!targetMetadata){ + if(!create)return undefined; + store.set(target, targetMetadata = new Map); + } + var keyMetadata = targetMetadata.get(targetKey); + if(!keyMetadata){ + if(!create)return undefined; + targetMetadata.set(targetKey, keyMetadata = new Map); + } return keyMetadata; +}; +var ordinaryHasOwnMetadata = function(MetadataKey, O, P){ + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? false : metadataMap.has(MetadataKey); +}; +var ordinaryGetOwnMetadata = function(MetadataKey, O, P){ + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); +}; +var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){ + getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); +}; +var ordinaryOwnMetadataKeys = function(target, targetKey){ + var metadataMap = getOrCreateMetadataMap(target, targetKey, false) + , keys = []; + if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); }); + return keys; +}; +var toMetaKey = function(it){ + return it === undefined || typeof it == 'symbol' ? it : String(it); +}; +var exp = function(O){ + $export($export.S, 'Reflect', O); +}; + +module.exports = { + store: store, + map: getOrCreateMetadataMap, + has: ordinaryHasOwnMetadata, + get: ordinaryGetOwnMetadata, + set: ordinaryDefineOwnMetadata, + keys: ordinaryOwnMetadataKeys, + key: toMetaKey, + exp: exp +}; + +/***/ }), +/* 29 */, +/* 30 */, +/* 31 */, +/* 32 */, +/* 33 */, +/* 34 */, +/* 35 */, +/* 36 */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function(it, key){ + return hasOwnProperty.call(it, key); +}; + +/***/ }), +/* 37 */, +/* 38 */, +/* 39 */, +/* 40 */, +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.13 ToObject(argument) +var defined = __webpack_require__(104); +module.exports = function(it){ + return Object(defined(it)); +}; + +/***/ }), +/* 42 */, +/* 43 */, +/* 44 */, +/* 45 */, +/* 46 */, +/* 47 */, +/* 48 */, +/* 49 */, +/* 50 */, +/* 51 */ +/***/ (function(module, exports) { + +var core = module.exports = {version: '2.4.0'}; +if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + +module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } +}; + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) +var has = __webpack_require__(36) + , toObject = __webpack_require__(41) + , IE_PROTO = __webpack_require__(107)('IE_PROTO') + , ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function(O){ + O = toObject(O); + if(has(O, IE_PROTO))return O[IE_PROTO]; + if(typeof O.constructor == 'function' && O instanceof O.constructor){ + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; +}; + +/***/ }), +/* 54 */, +/* 55 */, +/* 56 */, +/* 57 */, +/* 58 */, +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(27) + , createDesc = __webpack_require__(78); +module.exports = __webpack_require__(19) ? function(object, key, value){ + return dP.f(object, key, createDesc(1, value)); +} : function(object, key, value){ + object[key] = value; + return object; +}; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(23) + , hide = __webpack_require__(59) + , has = __webpack_require__(36) + , SRC = __webpack_require__(79)('src') + , TO_STRING = 'toString' + , $toString = Function[TO_STRING] + , TPL = ('' + $toString).split(TO_STRING); + +__webpack_require__(51).inspectSource = function(it){ + return $toString.call(it); +}; + +(module.exports = function(O, key, val, safe){ + var isFunction = typeof val == 'function'; + if(isFunction)has(val, 'name') || hide(val, 'name', key); + if(O[key] === val)return; + if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + if(O === global){ + O[key] = val; + } else { + if(!safe){ + delete O[key]; + hide(O, key, val); + } else { + if(O[key])O[key] = val; + else hide(O, key, val); + } + } +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, TO_STRING, function toString(){ + return typeof this == 'function' && this[SRC] || $toString.call(this); +}); + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__(80); +module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; +}; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = __webpack_require__(102) + , defined = __webpack_require__(104); +module.exports = function(it){ + return IObject(defined(it)); +}; + +/***/ }), +/* 63 */, +/* 64 */, +/* 65 */, +/* 66 */, +/* 67 */, +/* 68 */, +/* 69 */, +/* 70 */, +/* 71 */, +/* 72 */, +/* 73 */, +/* 74 */, +/* 75 */, +/* 76 */, +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.1 ToPrimitive(input [, PreferredType]) +var isObject = __webpack_require__(24); +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function(it, S){ + if(!isObject(it))return it; + var fn, val; + if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; + if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + throw TypeError("Can't convert object to primitive value"); +}; + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + +module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; +}; + +/***/ }), +/* 79 */ +/***/ (function(module, exports) { + +var id = 0 + , px = Math.random(); +module.exports = function(key){ + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + +/***/ }), +/* 80 */ /***/ (function(module, exports) { module.exports = function(it){ @@ -281,16 +605,48 @@ module.exports = function(it){ }; /***/ }), - -/***/ 167: +/* 81 */ /***/ (function(module, exports, __webpack_require__) { -var ctx = __webpack_require__(117) - , call = __webpack_require__(632) - , isArrayIter = __webpack_require__(630) - , anObject = __webpack_require__(17) - , toLength = __webpack_require__(265) - , getIterFn = __webpack_require__(644) +var pIE = __webpack_require__(109) + , createDesc = __webpack_require__(78) + , toIObject = __webpack_require__(62) + , toPrimitive = __webpack_require__(77) + , has = __webpack_require__(36) + , IE8_DOM_DEFINE = __webpack_require__(151) + , gOPD = Object.getOwnPropertyDescriptor; + +exports.f = __webpack_require__(19) ? gOPD : function getOwnPropertyDescriptor(O, P){ + O = toIObject(O); + P = toPrimitive(P, true); + if(IE8_DOM_DEFINE)try { + return gOPD(O, P); + } catch(e){ /* empty */ } + if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); +}; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + +// Forced replacement prototype accessors methods +module.exports = __webpack_require__(158)|| !__webpack_require__(52)(function(){ + var K = Math.random(); + // In FF throws only define methods + __defineSetter__.call(null, K, function(){ /* empty */}); + delete __webpack_require__(23)[K]; +}); + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + +var ctx = __webpack_require__(61) + , call = __webpack_require__(277) + , isArrayIter = __webpack_require__(278) + , anObject = __webpack_require__(9) + , toLength = __webpack_require__(105) + , getIterFn = __webpack_require__(279) , BREAK = {} , RETURN = {}; var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){ @@ -312,33 +668,18 @@ exports.BREAK = BREAK; exports.RETURN = RETURN; /***/ }), - -/***/ 168: +/* 84 */ /***/ (function(module, exports, __webpack_require__) { -var dP = __webpack_require__(48) - , createDesc = __webpack_require__(172); -module.exports = __webpack_require__(30) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); -} : function(object, key, value){ - object[key] = value; - return object; -}; - -/***/ }), - -/***/ 169: -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(174)('meta') - , isObject = __webpack_require__(42) - , has = __webpack_require__(64) - , setDesc = __webpack_require__(48).f +var META = __webpack_require__(79)('meta') + , isObject = __webpack_require__(24) + , has = __webpack_require__(36) + , setDesc = __webpack_require__(27).f , id = 0; var isExtensible = Object.isExtensible || function(){ return true; }; -var FREEZE = !__webpack_require__(90)(function(){ +var FREEZE = !__webpack_require__(52)(function(){ return isExtensible(Object.preventExtensions({})); }); var setMeta = function(it){ @@ -385,108 +726,34 @@ var meta = module.exports = { }; /***/ }), - -/***/ 17: +/* 85 */, +/* 86 */, +/* 87 */, +/* 88 */, +/* 89 */, +/* 90 */, +/* 91 */, +/* 92 */, +/* 93 */, +/* 94 */, +/* 95 */, +/* 96 */, +/* 97 */, +/* 98 */, +/* 99 */, +/* 100 */, +/* 101 */, +/* 102 */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(42); -module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = __webpack_require__(103); +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), - -/***/ 170: -/***/ (function(module, exports, __webpack_require__) { - -// Forced replacement prototype accessors methods -module.exports = __webpack_require__(394)|| !__webpack_require__(90)(function(){ - var K = Math.random(); - // In FF throws only define methods - __defineSetter__.call(null, K, function(){ /* empty */}); - delete __webpack_require__(41)[K]; -}); - -/***/ }), - -/***/ 171: -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(260) - , createDesc = __webpack_require__(172) - , toIObject = __webpack_require__(119) - , toPrimitive = __webpack_require__(173) - , has = __webpack_require__(64) - , IE8_DOM_DEFINE = __webpack_require__(393) - , gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(30) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); -}; - -/***/ }), - -/***/ 172: -/***/ (function(module, exports) { - -module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; -}; - -/***/ }), - -/***/ 173: -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(42); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); -}; - -/***/ }), - -/***/ 174: -/***/ (function(module, exports) { - -var id = 0 - , px = Math.random(); -module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - -/***/ }), - -/***/ 252: -/***/ (function(module, exports) { - -module.exports = function(it, Constructor, name, forbiddenField){ - if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){ - throw TypeError(name + ': incorrect invocation!'); - } return it; -}; - -/***/ }), - -/***/ 253: +/* 103 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -496,24 +763,130 @@ module.exports = function(it){ }; /***/ }), +/* 104 */ +/***/ (function(module, exports) { -/***/ 254: +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function(it){ + if(it == undefined)throw TypeError("Can't call method on " + it); + return it; +}; + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.15 ToLength +var toInteger = __webpack_require__(154) + , min = Math.min; +module.exports = function(it){ + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(23) + , SHARED = '__core-js_shared__' + , store = global[SHARED] || (global[SHARED] = {}); +module.exports = function(key){ + return store[key] || (store[key] = {}); +}; + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(106)('keys') + , uid = __webpack_require__(79); +module.exports = function(key){ + return shared[key] || (shared[key] = uid(key)); +}; + +/***/ }), +/* 108 */ +/***/ (function(module, exports) { + +// IE 8- don't enum bug keys +module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' +).split(','); + +/***/ }), +/* 109 */ +/***/ (function(module, exports) { + +exports.f = {}.propertyIsEnumerable; + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 / 15.2.3.14 Object.keys(O) +var $keys = __webpack_require__(155) + , enumBugKeys = __webpack_require__(108); + +module.exports = Object.keys || function keys(O){ + return $keys(O, enumBugKeys); +}; + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + +var redefine = __webpack_require__(60); +module.exports = function(target, src, safe){ + for(var key in src)redefine(target, key, src[key], safe); + return target; +}; + +/***/ }), +/* 112 */ +/***/ (function(module, exports) { + +module.exports = function(it, Constructor, name, forbiddenField){ + if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){ + throw TypeError(name + ': incorrect invocation!'); + } return it; +}; + +/***/ }), +/* 113 */ +/***/ (function(module, exports) { + +module.exports = {}; + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +var def = __webpack_require__(27).f + , has = __webpack_require__(36) + , TAG = __webpack_require__(25)('toStringTag'); + +module.exports = function(it, tag, stat){ + if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); +}; + +/***/ }), +/* 115 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var global = __webpack_require__(41) - , $export = __webpack_require__(40) - , redefine = __webpack_require__(118) - , redefineAll = __webpack_require__(261) - , meta = __webpack_require__(169) - , forOf = __webpack_require__(167) - , anInstance = __webpack_require__(252) - , isObject = __webpack_require__(42) - , fails = __webpack_require__(90) - , $iterDetect = __webpack_require__(635) - , setToStringTag = __webpack_require__(262) - , inheritIfRequired = __webpack_require__(629); +var global = __webpack_require__(23) + , $export = __webpack_require__(18) + , redefine = __webpack_require__(60) + , redefineAll = __webpack_require__(111) + , meta = __webpack_require__(84) + , forOf = __webpack_require__(83) + , anInstance = __webpack_require__(112) + , isObject = __webpack_require__(24) + , fails = __webpack_require__(52) + , $iterDetect = __webpack_require__(285) + , setToStringTag = __webpack_require__(114) + , inheritIfRequired = __webpack_require__(286); module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){ var Base = global[NAME] @@ -588,389 +961,170 @@ module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){ }; /***/ }), - -/***/ 255: -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; -}; - -/***/ }), - -/***/ 256: -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - -/***/ }), - -/***/ 257: +/* 116 */, +/* 117 */, +/* 118 */, +/* 119 */, +/* 120 */, +/* 121 */, +/* 122 */, +/* 123 */, +/* 124 */, +/* 125 */, +/* 126 */, +/* 127 */, +/* 128 */, +/* 129 */, +/* 130 */, +/* 131 */, +/* 132 */, +/* 133 */, +/* 134 */, +/* 135 */, +/* 136 */, +/* 137 */, +/* 138 */, +/* 139 */, +/* 140 */, +/* 141 */, +/* 142 */, +/* 143 */, +/* 144 */, +/* 145 */, +/* 146 */, +/* 147 */, +/* 148 */, +/* 149 */, +/* 150 */, +/* 151 */ /***/ (function(module, exports, __webpack_require__) { -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(253); -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); -}; - -/***/ }), - -/***/ 258: -/***/ (function(module, exports) { - -module.exports = {}; - -/***/ }), - -/***/ 259: -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(397) - , enumBugKeys = __webpack_require__(256); - -module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); -}; - -/***/ }), - -/***/ 260: -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - -/***/ }), - -/***/ 261: -/***/ (function(module, exports, __webpack_require__) { - -var redefine = __webpack_require__(118); -module.exports = function(target, src, safe){ - for(var key in src)redefine(target, key, src[key], safe); - return target; -}; - -/***/ }), - -/***/ 262: -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(48).f - , has = __webpack_require__(64) - , TAG = __webpack_require__(49)('toStringTag'); - -module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); -}; - -/***/ }), - -/***/ 263: -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(264)('keys') - , uid = __webpack_require__(174); -module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); -}; - -/***/ }), - -/***/ 264: -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(41) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); -module.exports = function(key){ - return store[key] || (store[key] = {}); -}; - -/***/ }), - -/***/ 265: -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(399) - , min = Math.min; -module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - -/***/ }), - -/***/ 30: -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(90)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; +module.exports = !__webpack_require__(19) && !__webpack_require__(52)(function(){ + return Object.defineProperty(__webpack_require__(152)('div'), 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }), - -/***/ 32: -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), - -/***/ 390: +/* 152 */ /***/ (function(module, exports, __webpack_require__) { -// 0 -> Array#forEach -// 1 -> Array#map -// 2 -> Array#filter -// 3 -> Array#some -// 4 -> Array#every -// 5 -> Array#find -// 6 -> Array#findIndex -var ctx = __webpack_require__(117) - , IObject = __webpack_require__(257) - , toObject = __webpack_require__(77) - , toLength = __webpack_require__(265) - , asc = __webpack_require__(624); -module.exports = function(TYPE, $create){ - var IS_MAP = TYPE == 1 - , IS_FILTER = TYPE == 2 - , IS_SOME = TYPE == 3 - , IS_EVERY = TYPE == 4 - , IS_FIND_INDEX = TYPE == 6 - , NO_HOLES = TYPE == 5 || IS_FIND_INDEX - , create = $create || asc; - return function($this, callbackfn, that){ - var O = toObject($this) - , self = IObject(O) - , f = ctx(callbackfn, that, 3) - , length = toLength(self.length) - , index = 0 - , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined - , val, res; - for(;length > index; index++)if(NO_HOLES || index in self){ - val = self[index]; - res = f(val, index, O); - if(TYPE){ - if(IS_MAP)result[index] = res; // map - else if(res)switch(TYPE){ - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if(IS_EVERY)return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; +var isObject = __webpack_require__(24) + , document = __webpack_require__(23).document + // in old IE typeof document.createElement is 'object' + , is = isObject(document) && isObject(document.createElement); +module.exports = function(it){ + return is ? document.createElement(it) : {}; +}; + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + +// false -> Array#indexOf +// true -> Array#includes +var toIObject = __webpack_require__(62) + , toLength = __webpack_require__(105) + , toIndex = __webpack_require__(259); +module.exports = function(IS_INCLUDES){ + return function($this, el, fromIndex){ + var O = toIObject($this) + , length = toLength(O.length) + , index = toIndex(fromIndex, length) + , value; + // Array#includes uses SameValueZero equality algorithm + if(IS_INCLUDES && el != el)while(length > index){ + value = O[index++]; + if(value != value)return true; + // Array#toIndex ignores holes, Array#includes - not + } else for(;length > index; index++)if(IS_INCLUDES || index in O){ + if(O[index] === el)return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; }; }; /***/ }), +/* 154 */ +/***/ (function(module, exports) { -/***/ 391: +// 7.1.4 ToInteger +var ceil = Math.ceil + , floor = Math.floor; +module.exports = function(it){ + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(36) + , toIObject = __webpack_require__(62) + , arrayIndexOf = __webpack_require__(153)(false) + , IE_PROTO = __webpack_require__(107)('IE_PROTO'); + +module.exports = function(object, names){ + var O = toIObject(object) + , i = 0 + , result = [] + , key; + for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while(names.length > i)if(has(O, key = names[i++])){ + ~arrayIndexOf(result, key) || result.push(key); + } + return result; +}; + +/***/ }), +/* 156 */ +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +var getKeys = __webpack_require__(110) + , toIObject = __webpack_require__(62) + , isEnum = __webpack_require__(109).f; +module.exports = function(isEntries){ + return function(it){ + var O = toIObject(it) + , keys = getKeys(O) + , length = keys.length + , i = 0 + , result = [] + , key; + while(length > i)if(isEnum.call(O, key = keys[i++])){ + result.push(isEntries ? [key, O[key]] : O[key]); + } return result; + }; +}; + +/***/ }), +/* 158 */ +/***/ (function(module, exports) { + +module.exports = false; + +/***/ }), +/* 159 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var dP = __webpack_require__(48).f - , create = __webpack_require__(395) - , redefineAll = __webpack_require__(261) - , ctx = __webpack_require__(117) - , anInstance = __webpack_require__(252) - , defined = __webpack_require__(255) - , forOf = __webpack_require__(167) - , $iterDefine = __webpack_require__(634) - , step = __webpack_require__(636) - , setSpecies = __webpack_require__(642) - , DESCRIPTORS = __webpack_require__(30) - , fastKey = __webpack_require__(169).fastKey +var dP = __webpack_require__(27).f + , create = __webpack_require__(160) + , redefineAll = __webpack_require__(111) + , ctx = __webpack_require__(61) + , anInstance = __webpack_require__(112) + , defined = __webpack_require__(104) + , forOf = __webpack_require__(83) + , $iterDefine = __webpack_require__(281) + , step = __webpack_require__(283) + , setSpecies = __webpack_require__(284) + , DESCRIPTORS = __webpack_require__(19) + , fastKey = __webpack_require__(84).fastKey , SIZE = DESCRIPTORS ? '_s' : 'size'; var getEntry = function(that, key){ @@ -1102,57 +1256,27 @@ module.exports = { }; /***/ }), - -/***/ 392: -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(42) - , document = __webpack_require__(41).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); -module.exports = function(it){ - return is ? document.createElement(it) : {}; -}; - -/***/ }), - -/***/ 393: -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(30) && !__webpack_require__(90)(function(){ - return Object.defineProperty(__webpack_require__(392)('div'), 'a', {get: function(){ return 7; }}).a != 7; -}); - -/***/ }), - -/***/ 394: -/***/ (function(module, exports) { - -module.exports = false; - -/***/ }), - -/***/ 395: +/* 160 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(17) - , dPs = __webpack_require__(638) - , enumBugKeys = __webpack_require__(256) - , IE_PROTO = __webpack_require__(263)('IE_PROTO') +var anObject = __webpack_require__(9) + , dPs = __webpack_require__(275) + , enumBugKeys = __webpack_require__(108) + , IE_PROTO = __webpack_require__(107)('IE_PROTO') , Empty = function(){ /* empty */ } , PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function(){ // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(392)('iframe') + var iframe = __webpack_require__(152)('iframe') , i = enumBugKeys.length , lt = '<' , gt = '>' , iframeDocument; iframe.style.display = 'none'; - __webpack_require__(628).appendChild(iframe); + __webpack_require__(276).appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); @@ -1179,174 +1303,1154 @@ module.exports = Object.create || function create(O, Properties){ /***/ }), - -/***/ 396: -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - -/***/ }), - -/***/ 397: +/* 161 */ /***/ (function(module, exports, __webpack_require__) { -var has = __webpack_require__(64) - , toIObject = __webpack_require__(119) - , arrayIndexOf = __webpack_require__(622)(false) - , IE_PROTO = __webpack_require__(263)('IE_PROTO'); - -module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - -/***/ }), - -/***/ 398: -/***/ (function(module, exports, __webpack_require__) { - -var getKeys = __webpack_require__(259) - , toIObject = __webpack_require__(119) - , isEnum = __webpack_require__(260).f; -module.exports = function(isEntries){ - return function(it){ - var O = toIObject(it) - , keys = getKeys(O) - , length = keys.length - , i = 0 - , result = [] - , key; - while(length > i)if(isEnum.call(O, key = keys[i++])){ - result.push(isEntries ? [key, O[key]] : O[key]); - } return result; +// 0 -> Array#forEach +// 1 -> Array#map +// 2 -> Array#filter +// 3 -> Array#some +// 4 -> Array#every +// 5 -> Array#find +// 6 -> Array#findIndex +var ctx = __webpack_require__(61) + , IObject = __webpack_require__(102) + , toObject = __webpack_require__(41) + , toLength = __webpack_require__(105) + , asc = __webpack_require__(289); +module.exports = function(TYPE, $create){ + var IS_MAP = TYPE == 1 + , IS_FILTER = TYPE == 2 + , IS_SOME = TYPE == 3 + , IS_EVERY = TYPE == 4 + , IS_FIND_INDEX = TYPE == 6 + , NO_HOLES = TYPE == 5 || IS_FIND_INDEX + , create = $create || asc; + return function($this, callbackfn, that){ + var O = toObject($this) + , self = IObject(O) + , f = ctx(callbackfn, that, 3) + , length = toLength(self.length) + , index = 0 + , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined + , val, res; + for(;length > index; index++)if(NO_HOLES || index in self){ + val = self[index]; + res = f(val, index, O); + if(TYPE){ + if(IS_MAP)result[index] = res; // map + else if(res)switch(TYPE){ + case 3: return true; // some + case 5: return val; // find + case 6: return index; // findIndex + case 2: result.push(val); // filter + } else if(IS_EVERY)return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; }; }; /***/ }), +/* 162 */, +/* 163 */, +/* 164 */, +/* 165 */, +/* 166 */, +/* 167 */, +/* 168 */, +/* 169 */, +/* 170 */, +/* 171 */, +/* 172 */, +/* 173 */, +/* 174 */, +/* 175 */, +/* 176 */, +/* 177 */, +/* 178 */, +/* 179 */, +/* 180 */, +/* 181 */, +/* 182 */, +/* 183 */, +/* 184 */, +/* 185 */, +/* 186 */, +/* 187 */, +/* 188 */, +/* 189 */, +/* 190 */, +/* 191 */, +/* 192 */, +/* 193 */, +/* 194 */, +/* 195 */, +/* 196 */, +/* 197 */, +/* 198 */, +/* 199 */, +/* 200 */, +/* 201 */, +/* 202 */, +/* 203 */, +/* 204 */, +/* 205 */, +/* 206 */, +/* 207 */, +/* 208 */, +/* 209 */, +/* 210 */, +/* 211 */, +/* 212 */, +/* 213 */, +/* 214 */, +/* 215 */, +/* 216 */, +/* 217 */, +/* 218 */, +/* 219 */, +/* 220 */, +/* 221 */, +/* 222 */, +/* 223 */, +/* 224 */, +/* 225 */, +/* 226 */, +/* 227 */, +/* 228 */, +/* 229 */, +/* 230 */, +/* 231 */, +/* 232 */, +/* 233 */, +/* 234 */, +/* 235 */, +/* 236 */, +/* 237 */, +/* 238 */, +/* 239 */, +/* 240 */, +/* 241 */, +/* 242 */, +/* 243 */, +/* 244 */, +/* 245 */, +/* 246 */, +/* 247 */, +/* 248 */, +/* 249 */, +/* 250 */, +/* 251 */, +/* 252 */, +/* 253 */, +/* 254 */, +/* 255 */, +/* 256 */ +/***/ (function(module, exports, __webpack_require__) { -/***/ 399: -/***/ (function(module, exports) { +"use strict"; -// 7.1.4 ToInteger -var ceil = Math.ceil - , floor = Math.floor; -module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +Object.defineProperty(exports, "__esModule", { value: true }); +__webpack_require__(257); +__webpack_require__(261); +__webpack_require__(272); +__webpack_require__(304); + + +/***/ }), +/* 257 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(258); +module.exports = __webpack_require__(51).Array; + +/***/ }), +/* 258 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/tc39/Array.prototype.includes +var $export = __webpack_require__(18) + , $includes = __webpack_require__(153)(true); + +$export($export.P, 'Array', { + includes: function includes(el /*, fromIndex = 0 */){ + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__webpack_require__(260)('includes'); + +/***/ }), +/* 259 */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(154) + , max = Math.max + , min = Math.min; +module.exports = function(index, length){ + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); }; /***/ }), - -/***/ 40: +/* 260 */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(41) - , core = __webpack_require__(116) - , hide = __webpack_require__(168) - , redefine = __webpack_require__(118) - , ctx = __webpack_require__(117) - , PROTOTYPE = 'prototype'; +// 22.1.3.31 Array.prototype[@@unscopables] +var UNSCOPABLES = __webpack_require__(25)('unscopables') + , ArrayProto = Array.prototype; +if(ArrayProto[UNSCOPABLES] == undefined)__webpack_require__(59)(ArrayProto, UNSCOPABLES, {}); +module.exports = function(key){ + ArrayProto[UNSCOPABLES][key] = true; +}; -var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE] - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}) - , key, own, out, exp; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - // export native or passed - out = (own ? target : source)[key]; - // bind timers to global for call from export context - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // extend global - if(target)redefine(target, key, out, type & $export.U); - // export - if(exports[key] != out)hide(exports, key, exp); - if(IS_PROTO && expProto[key] != out)expProto[key] = out; +/***/ }), +/* 261 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(262); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(270); +__webpack_require__(271); +module.exports = __webpack_require__(51).Object; + +/***/ }), +/* 262 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-getownpropertydescriptors +var $export = __webpack_require__(18) + , ownKeys = __webpack_require__(263) + , toIObject = __webpack_require__(62) + , gOPD = __webpack_require__(81) + , createProperty = __webpack_require__(265); + +$export($export.S, 'Object', { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){ + var O = toIObject(object) + , getDesc = gOPD.f + , keys = ownKeys(O) + , result = {} + , i = 0 + , key; + while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key)); + return result; + } +}); + +/***/ }), +/* 263 */ +/***/ (function(module, exports, __webpack_require__) { + +// all object keys, includes non-enumerable and symbols +var gOPN = __webpack_require__(264) + , gOPS = __webpack_require__(156) + , anObject = __webpack_require__(9) + , Reflect = __webpack_require__(23).Reflect; +module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){ + var keys = gOPN.f(anObject(it)) + , getSymbols = gOPS.f; + return getSymbols ? keys.concat(getSymbols(it)) : keys; +}; + +/***/ }), +/* 264 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) +var $keys = __webpack_require__(155) + , hiddenKeys = __webpack_require__(108).concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ + return $keys(O, hiddenKeys); +}; + +/***/ }), +/* 265 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $defineProperty = __webpack_require__(27) + , createDesc = __webpack_require__(78); + +module.exports = function(object, index, value){ + if(index in object)$defineProperty.f(object, index, createDesc(0, value)); + else object[index] = value; +}; + +/***/ }), +/* 266 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-values-entries +var $export = __webpack_require__(18) + , $values = __webpack_require__(157)(false); + +$export($export.S, 'Object', { + values: function values(it){ + return $values(it); + } +}); + +/***/ }), +/* 267 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-values-entries +var $export = __webpack_require__(18) + , $entries = __webpack_require__(157)(true); + +$export($export.S, 'Object', { + entries: function entries(it){ + return $entries(it); + } +}); + +/***/ }), +/* 268 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(18) + , toObject = __webpack_require__(41) + , aFunction = __webpack_require__(80) + , $defineProperty = __webpack_require__(27); + +// B.2.2.2 Object.prototype.__defineGetter__(P, getter) +__webpack_require__(19) && $export($export.P + __webpack_require__(82), 'Object', { + __defineGetter__: function __defineGetter__(P, getter){ + $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true}); + } +}); + +/***/ }), +/* 269 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(18) + , toObject = __webpack_require__(41) + , aFunction = __webpack_require__(80) + , $defineProperty = __webpack_require__(27); + +// B.2.2.3 Object.prototype.__defineSetter__(P, setter) +__webpack_require__(19) && $export($export.P + __webpack_require__(82), 'Object', { + __defineSetter__: function __defineSetter__(P, setter){ + $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true}); + } +}); + +/***/ }), +/* 270 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(18) + , toObject = __webpack_require__(41) + , toPrimitive = __webpack_require__(77) + , getPrototypeOf = __webpack_require__(53) + , getOwnPropertyDescriptor = __webpack_require__(81).f; + +// B.2.2.4 Object.prototype.__lookupGetter__(P) +__webpack_require__(19) && $export($export.P + __webpack_require__(82), 'Object', { + __lookupGetter__: function __lookupGetter__(P){ + var O = toObject(this) + , K = toPrimitive(P, true) + , D; + do { + if(D = getOwnPropertyDescriptor(O, K))return D.get; + } while(O = getPrototypeOf(O)); + } +}); + +/***/ }), +/* 271 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(18) + , toObject = __webpack_require__(41) + , toPrimitive = __webpack_require__(77) + , getPrototypeOf = __webpack_require__(53) + , getOwnPropertyDescriptor = __webpack_require__(81).f; + +// B.2.2.5 Object.prototype.__lookupSetter__(P) +__webpack_require__(19) && $export($export.P + __webpack_require__(82), 'Object', { + __lookupSetter__: function __lookupSetter__(P){ + var O = toObject(this) + , K = toPrimitive(P, true) + , D; + do { + if(D = getOwnPropertyDescriptor(O, K))return D.set; + } while(O = getPrototypeOf(O)); + } +}); + +/***/ }), +/* 272 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(273); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(299); +__webpack_require__(300); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +module.exports = __webpack_require__(51).Reflect; + + +/***/ }), +/* 273 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , toMetaKey = metadata.key + , ordinaryDefineOwnMetadata = metadata.set; + +metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){ + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); +}}); + +/***/ }), +/* 274 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var strong = __webpack_require__(159); + +// 23.1 Map Objects +module.exports = __webpack_require__(115)('Map', function(get){ + return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key){ + var entry = strong.getEntry(this, key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value){ + return strong.def(this, key === 0 ? 0 : key, value); + } +}, strong, true); + +/***/ }), +/* 275 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(27) + , anObject = __webpack_require__(9) + , getKeys = __webpack_require__(110); + +module.exports = __webpack_require__(19) ? Object.defineProperties : function defineProperties(O, Properties){ + anObject(O); + var keys = getKeys(Properties) + , length = keys.length + , i = 0 + , P; + while(length > i)dP.f(O, P = keys[i++], Properties[P]); + return O; +}; + +/***/ }), +/* 276 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(23).document && document.documentElement; + +/***/ }), +/* 277 */ +/***/ (function(module, exports, __webpack_require__) { + +// call something on iterator step with safe closing on error +var anObject = __webpack_require__(9); +module.exports = function(iterator, fn, value, entries){ + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch(e){ + var ret = iterator['return']; + if(ret !== undefined)anObject(ret.call(iterator)); + throw e; } }; -global.core = core; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; /***/ }), +/* 278 */ +/***/ (function(module, exports, __webpack_require__) { -/***/ 41: -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); -if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }), - -/***/ 42: -/***/ (function(module, exports) { +// check on default Array iterator +var Iterators = __webpack_require__(113) + , ITERATOR = __webpack_require__(25)('iterator') + , ArrayProto = Array.prototype; module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); }; /***/ }), - -/***/ 465: +/* 279 */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(651); -__webpack_require__(654); -__webpack_require__(650); -__webpack_require__(648); -__webpack_require__(649); -__webpack_require__(652); -__webpack_require__(653); -module.exports = __webpack_require__(116).Object; +var classof = __webpack_require__(280) + , ITERATOR = __webpack_require__(25)('iterator') + , Iterators = __webpack_require__(113); +module.exports = __webpack_require__(51).getIteratorMethod = function(it){ + if(it != undefined)return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; +}; /***/ }), - -/***/ 466: +/* 280 */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(655); -__webpack_require__(656); -__webpack_require__(658); -__webpack_require__(657); -__webpack_require__(660); -__webpack_require__(659); -__webpack_require__(661); -__webpack_require__(662); -__webpack_require__(663); -module.exports = __webpack_require__(116).Reflect; +// getting tag from 19.1.3.6 Object.prototype.toString() +var cof = __webpack_require__(103) + , TAG = __webpack_require__(25)('toStringTag') + // ES3 wrong here + , ARG = cof(function(){ return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function(it, key){ + try { + return it[key]; + } catch(e){ /* empty */ } +}; + +module.exports = function(it){ + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + +/***/ }), +/* 281 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var LIBRARY = __webpack_require__(158) + , $export = __webpack_require__(18) + , redefine = __webpack_require__(60) + , hide = __webpack_require__(59) + , has = __webpack_require__(36) + , Iterators = __webpack_require__(113) + , $iterCreate = __webpack_require__(282) + , setToStringTag = __webpack_require__(114) + , getPrototypeOf = __webpack_require__(53) + , ITERATOR = __webpack_require__(25)('iterator') + , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` + , FF_ITERATOR = '@@iterator' + , KEYS = 'keys' + , VALUES = 'values'; + +var returnThis = function(){ return this; }; + +module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ + $iterCreate(Constructor, NAME, next); + var getMethod = function(kind){ + if(!BUGGY && kind in proto)return proto[kind]; + switch(kind){ + case KEYS: return function keys(){ return new Constructor(this, kind); }; + case VALUES: return function values(){ return new Constructor(this, kind); }; + } return function entries(){ return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator' + , DEF_VALUES = DEFAULT == VALUES + , VALUES_BUG = false + , proto = Base.prototype + , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] + , $default = $native || getMethod(DEFAULT) + , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined + , $anyNative = NAME == 'Array' ? proto.entries || $native : $native + , methods, key, IteratorPrototype; + // Fix native + if($anyNative){ + IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); + if(IteratorPrototype !== Object.prototype){ + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if(DEF_VALUES && $native && $native.name !== VALUES){ + VALUES_BUG = true; + $default = function values(){ return $native.call(this); }; + } + // Define iterator + if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if(DEFAULT){ + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if(FORCED)for(key in methods){ + if(!(key in proto))redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; +}; + +/***/ }), +/* 282 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var create = __webpack_require__(160) + , descriptor = __webpack_require__(78) + , setToStringTag = __webpack_require__(114) + , IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +__webpack_require__(59)(IteratorPrototype, __webpack_require__(25)('iterator'), function(){ return this; }); + +module.exports = function(Constructor, NAME, next){ + Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + +/***/ }), +/* 283 */ +/***/ (function(module, exports) { + +module.exports = function(done, value){ + return {value: value, done: !!done}; +}; + +/***/ }), +/* 284 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(23) + , dP = __webpack_require__(27) + , DESCRIPTORS = __webpack_require__(19) + , SPECIES = __webpack_require__(25)('species'); + +module.exports = function(KEY){ + var C = global[KEY]; + if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, { + configurable: true, + get: function(){ return this; } + }); +}; + +/***/ }), +/* 285 */ +/***/ (function(module, exports, __webpack_require__) { + +var ITERATOR = __webpack_require__(25)('iterator') + , SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + riter['return'] = function(){ SAFE_CLOSING = true; }; + Array.from(riter, function(){ throw 2; }); +} catch(e){ /* empty */ } + +module.exports = function(exec, skipClosing){ + if(!skipClosing && !SAFE_CLOSING)return false; + var safe = false; + try { + var arr = [7] + , iter = arr[ITERATOR](); + iter.next = function(){ return {done: safe = true}; }; + arr[ITERATOR] = function(){ return iter; }; + exec(arr); + } catch(e){ /* empty */ } + return safe; +}; + +/***/ }), +/* 286 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(24) + , setPrototypeOf = __webpack_require__(287).set; +module.exports = function(that, target, C){ + var P, S = target.constructor; + if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){ + setPrototypeOf(that, P); + } return that; +}; + +/***/ }), +/* 287 */ +/***/ (function(module, exports, __webpack_require__) { + +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +var isObject = __webpack_require__(24) + , anObject = __webpack_require__(9); +var check = function(O, proto){ + anObject(O); + if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function(test, buggy, set){ + try { + set = __webpack_require__(61)(Function.call, __webpack_require__(81).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch(e){ buggy = true; } + return function setPrototypeOf(O, proto){ + check(O, proto); + if(buggy)O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + +/***/ }), +/* 288 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var each = __webpack_require__(161)(0) + , redefine = __webpack_require__(60) + , meta = __webpack_require__(84) + , assign = __webpack_require__(292) + , weak = __webpack_require__(293) + , isObject = __webpack_require__(24) + , getWeak = meta.getWeak + , isExtensible = Object.isExtensible + , uncaughtFrozenStore = weak.ufstore + , tmp = {} + , InternalMap; + +var wrapper = function(get){ + return function WeakMap(){ + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}; + +var methods = { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key){ + if(isObject(key)){ + var data = getWeak(key); + if(data === true)return uncaughtFrozenStore(this).get(key); + return data ? data[this._i] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value){ + return weak.def(this, key, value); + } +}; + +// 23.3 WeakMap Objects +var $WeakMap = module.exports = __webpack_require__(115)('WeakMap', wrapper, methods, weak, true, true); + +// IE11 WeakMap frozen keys fix +if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){ + InternalMap = weak.getConstructor(wrapper); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function(key){ + var proto = $WeakMap.prototype + , method = proto[key]; + redefine(proto, key, function(a, b){ + // store frozen objects on internal weakmap shim + if(isObject(a) && !isExtensible(a)){ + if(!this._f)this._f = new InternalMap; + var result = this._f[key](a, b); + return key == 'set' ? this : result; + // store all the rest on native weakmap + } return method.call(this, a, b); + }); + }); +} + +/***/ }), +/* 289 */ +/***/ (function(module, exports, __webpack_require__) { + +// 9.4.2.3 ArraySpeciesCreate(originalArray, length) +var speciesConstructor = __webpack_require__(290); + +module.exports = function(original, length){ + return new (speciesConstructor(original))(length); +}; + +/***/ }), +/* 290 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(24) + , isArray = __webpack_require__(291) + , SPECIES = __webpack_require__(25)('species'); + +module.exports = function(original){ + var C; + if(isArray(original)){ + C = original.constructor; + // cross-realm fallback + if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined; + if(isObject(C)){ + C = C[SPECIES]; + if(C === null)C = undefined; + } + } return C === undefined ? Array : C; +}; + +/***/ }), +/* 291 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.2 IsArray(argument) +var cof = __webpack_require__(103); +module.exports = Array.isArray || function isArray(arg){ + return cof(arg) == 'Array'; +}; + +/***/ }), +/* 292 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 19.1.2.1 Object.assign(target, source, ...) +var getKeys = __webpack_require__(110) + , gOPS = __webpack_require__(156) + , pIE = __webpack_require__(109) + , toObject = __webpack_require__(41) + , IObject = __webpack_require__(102) + , $assign = Object.assign; + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = !$assign || __webpack_require__(52)(function(){ + var A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , aLen = arguments.length + , index = 1 + , getSymbols = gOPS.f + , isEnum = pIE.f; + while(aLen > index){ + var S = IObject(arguments[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } return T; +} : $assign; + +/***/ }), +/* 293 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var redefineAll = __webpack_require__(111) + , getWeak = __webpack_require__(84).getWeak + , anObject = __webpack_require__(9) + , isObject = __webpack_require__(24) + , anInstance = __webpack_require__(112) + , forOf = __webpack_require__(83) + , createArrayMethod = __webpack_require__(161) + , $has = __webpack_require__(36) + , arrayFind = createArrayMethod(5) + , arrayFindIndex = createArrayMethod(6) + , id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function(that){ + return that._l || (that._l = new UncaughtFrozenStore); +}; +var UncaughtFrozenStore = function(){ + this.a = []; +}; +var findUncaughtFrozen = function(store, key){ + return arrayFind(store.a, function(it){ + return it[0] === key; + }); +}; +UncaughtFrozenStore.prototype = { + get: function(key){ + var entry = findUncaughtFrozen(this, key); + if(entry)return entry[1]; + }, + has: function(key){ + return !!findUncaughtFrozen(this, key); + }, + set: function(key, value){ + var entry = findUncaughtFrozen(this, key); + if(entry)entry[1] = value; + else this.a.push([key, value]); + }, + 'delete': function(key){ + var index = arrayFindIndex(this.a, function(it){ + return it[0] === key; + }); + if(~index)this.a.splice(index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function(wrapper, NAME, IS_MAP, ADDER){ + var C = wrapper(function(that, iterable){ + anInstance(that, C, NAME, '_i'); + that._i = id++; // collection id + that._l = undefined; // leak store for uncaught frozen objects + if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function(key){ + if(!isObject(key))return false; + var data = getWeak(key); + if(data === true)return uncaughtFrozenStore(this)['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key){ + if(!isObject(key))return false; + var data = getWeak(key); + if(data === true)return uncaughtFrozenStore(this).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function(that, key, value){ + var data = getWeak(anObject(key), true); + if(data === true)uncaughtFrozenStore(that).set(key, value); + else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore +}; + +/***/ }), +/* 294 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , toMetaKey = metadata.key + , getOrCreateMetadataMap = metadata.map + , store = metadata.store; + +metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){ + var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]) + , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false; + if(metadataMap.size)return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); +}}); + +/***/ }), +/* 295 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , getPrototypeOf = __webpack_require__(53) + , ordinaryHasOwnMetadata = metadata.has + , ordinaryGetOwnMetadata = metadata.get + , toMetaKey = metadata.key; + +var ordinaryGetMetadata = function(MetadataKey, O, P){ + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P); + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; +}; + +metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){ + return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +}}); + +/***/ }), +/* 296 */ +/***/ (function(module, exports, __webpack_require__) { + +var Set = __webpack_require__(297) + , from = __webpack_require__(298) + , metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , getPrototypeOf = __webpack_require__(53) + , ordinaryOwnMetadataKeys = metadata.keys + , toMetaKey = metadata.key; + +var ordinaryMetadataKeys = function(O, P){ + var oKeys = ordinaryOwnMetadataKeys(O, P) + , parent = getPrototypeOf(O); + if(parent === null)return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; +}; + +metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){ + return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); +}}); + +/***/ }), +/* 297 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var strong = __webpack_require__(159); + +// 23.2 Set Objects +module.exports = __webpack_require__(115)('Set', function(get){ + return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value){ + return strong.def(this, value = value === 0 ? 0 : value, value); + } +}, strong); + +/***/ }), +/* 298 */ +/***/ (function(module, exports, __webpack_require__) { + +var forOf = __webpack_require__(83); + +module.exports = function(iter, ITERATOR){ + var result = []; + forOf(iter, false, result.push, result, ITERATOR); + return result; +}; /***/ }), - -/***/ 469: +/* 299 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(global, process) {/** +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , ordinaryGetOwnMetadata = metadata.get + , toMetaKey = metadata.key; + +metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){ + return ordinaryGetOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +}}); + +/***/ }), +/* 300 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , ordinaryOwnMetadataKeys = metadata.keys + , toMetaKey = metadata.key; + +metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){ + return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); +}}); + +/***/ }), +/* 301 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , getPrototypeOf = __webpack_require__(53) + , ordinaryHasOwnMetadata = metadata.has + , toMetaKey = metadata.key; + +var ordinaryHasMetadata = function(MetadataKey, O, P){ + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if(hasOwn)return true; + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; +}; + +metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){ + return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +}}); + +/***/ }), +/* 302 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , ordinaryHasOwnMetadata = metadata.has + , toMetaKey = metadata.key; + +metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){ + return ordinaryHasOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +}}); + +/***/ }), +/* 303 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(28) + , anObject = __webpack_require__(9) + , aFunction = __webpack_require__(80) + , toMetaKey = metadata.key + , ordinaryDefineOwnMetadata = metadata.set; + +metadata.exp({metadata: function metadata(metadataKey, metadataValue){ + return function decorator(target, targetKey){ + ordinaryDefineOwnMetadata( + metadataKey, metadataValue, + (targetKey !== undefined ? anObject : aFunction)(target), + toMetaKey(targetKey) + ); + }; +}}); + +/***/ }), +/* 304 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** * @license * Copyright Google Inc. All Rights Reserved. * @@ -1367,12 +2471,17 @@ module.exports = __webpack_require__(116).Reflect; * found in the LICENSE file at https://angular.io/license */ var Zone$1 = (function (global) { + var performance = global['performance']; + function mark(name) { + performance && performance['mark'] && performance['mark'](name); + } + function performanceMeasure(name, label) { + performance && performance['measure'] && performance['measure'](name, label); + } + mark('Zone'); if (global['Zone']) { throw new Error('Zone already loaded.'); } - var NO_ZONE = { name: 'NO ZONE' }; - var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling'; - var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask'; var Zone = (function () { function Zone(parent, zoneSpec) { this._properties = null; @@ -1383,7 +2492,7 @@ var Zone$1 = (function (global) { new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); } Zone.assertZonePatched = function () { - if (global.Promise !== ZoneAwarePromise) { + if (global['Promise'] !== patches['ZoneAwarePromise']) { throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + @@ -1418,6 +2527,17 @@ var Zone$1 = (function (global) { configurable: true }); + Zone.__load_patch = function (name, fn) { + if (patches.hasOwnProperty(name)) { + throw Error('Already loaded patch: ' + name); + } + else if (!global['__Zone_disable_' + name]) { + var perfName = 'Zone:' + name; + mark(perfName); + patches[name] = fn(global, Zone, _api); + performanceMeasure(perfName, perfName); + } + }; Object.defineProperty(Zone.prototype, "parent", { get: function () { return this._parent; @@ -1468,7 +2588,7 @@ var Zone$1 = (function (global) { if (applyThis === void 0) { applyThis = undefined; } if (applyArgs === void 0) { applyArgs = null; } if (source === void 0) { source = null; } - _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this); + _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; try { return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); } @@ -1480,7 +2600,7 @@ var Zone$1 = (function (global) { if (applyThis === void 0) { applyThis = null; } if (applyArgs === void 0) { applyArgs = null; } if (source === void 0) { source = null; } - _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this); + _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; try { try { return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); @@ -1496,15 +2616,25 @@ var Zone$1 = (function (global) { } }; Zone.prototype.runTask = function (task, applyThis, applyArgs) { - if (task.zone != this) + if (task.zone != this) { throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); + } + // https://github.com/angular/zone.js/issues/778, sometimes eventTask + // will run in notScheduled(canceled) state, we should not try to + // run such kind of task but just return + // we have to define an variable here, if not + // typescript compiler will complain below + var isNotScheduled = task.state === notScheduled; + if (isNotScheduled && task.type === eventTask) { + return; + } var reEntryGuard = task.state != running; reEntryGuard && task._transitionTo(running, scheduled); task.runCount++; var previousTask = _currentTask; _currentTask = task; - _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this); + _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; try { if (task.type == macroTask && task.data && !task.data.isPeriodic) { task.cancelFn = null; @@ -1519,29 +2649,51 @@ var Zone$1 = (function (global) { } } finally { - if (task.type == eventTask || (task.data && task.data.isPeriodic)) { - // if the task's state is notScheduled, then it has already been cancelled - // we should not reset the state to scheduled - if (task.state !== notScheduled) { + // if the task's state is notScheduled or unknown, then it has already been cancelled + // we should not reset the state to scheduled + if (task.state !== notScheduled && task.state !== unknown) { + if (task.type == eventTask || (task.data && task.data.isPeriodic)) { reEntryGuard && task._transitionTo(scheduled, running); } - } - else { - task.runCount = 0; - this._updateTaskCount(task, -1); - reEntryGuard && - task._transitionTo(notScheduled, running, notScheduled); + else { + task.runCount = 0; + this._updateTaskCount(task, -1); + reEntryGuard && + task._transitionTo(notScheduled, running, notScheduled); + } } _currentZoneFrame = _currentZoneFrame.parent; _currentTask = previousTask; } }; Zone.prototype.scheduleTask = function (task) { + if (task.zone && task.zone !== this) { + // check if the task was rescheduled, the newZone + // should not be the children of the original zone + var newZone = this; + while (newZone) { + if (newZone === task.zone) { + throw Error("can not reschedule task to " + this + .name + " which is descendants of the original zone " + task.zone.name); + } + newZone = newZone.parent; + } + } task._transitionTo(scheduling, notScheduled); var zoneDelegates = []; task._zoneDelegates = zoneDelegates; - task.zone = this; - task = this._zoneDelegate.scheduleTask(this, task); + task._zone = this; + try { + task = this._zoneDelegate.scheduleTask(this, task); + } + catch (err) { + // should set task's state to unknown when scheduleTask throw error + // because the err may from reschedule, so the fromState maybe notScheduled + task._transitionTo(unknown, scheduling, notScheduled); + // TODO: @JiaLiPassion, should we check the result from handleError? + this._zoneDelegate.handleError(this, err); + throw err; + } if (task._zoneDelegates === zoneDelegates) { // we have to check because internally the delegate can reschedule the task. this._updateTaskCount(task, 1); @@ -1561,8 +2713,19 @@ var Zone$1 = (function (global) { return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); }; Zone.prototype.cancelTask = function (task) { + if (task.zone != this) + throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); task._transitionTo(canceling, scheduled, running); - this._zoneDelegate.cancelTask(this, task); + try { + this._zoneDelegate.cancelTask(this, task); + } + catch (err) { + // if error occurs when cancelTask, transit the state to unknown + task._transitionTo(unknown, canceling); + this._zoneDelegate.handleError(this, err); + throw err; + } this._updateTaskCount(task, -1); task._transitionTo(notScheduled, canceling); task.runCount = 0; @@ -1595,7 +2758,7 @@ var Zone$1 = (function (global) { }; var ZoneDelegate = (function () { function ZoneDelegate(zone, parentDelegate, zoneSpec) { - this._taskCounts = { microTask: 0, macroTask: 0, eventTask: 0 }; + this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 }; this.zone = zone; this._parentDelegate = parentDelegate; this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); @@ -1718,13 +2881,23 @@ var Zone$1 = (function (global) { value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); } else { + if (!task.cancelFn) { + throw Error('Task is not cancelable'); + } value = task.cancelFn(task); } return value; }; ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) { - return this._hasTaskZS && - this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); + // hasTask should not throw error so other ZoneDelegate + // can still trigger hasTask callback + try { + return this._hasTaskZS && + this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); + } + catch (err) { + this.handleError(targetZone, err); + } }; ZoneDelegate.prototype._updateTaskCount = function (type, count) { var counts = this._taskCounts; @@ -1740,7 +2913,6 @@ var Zone$1 = (function (global) { eventTask: counts.eventTask > 0, change: type }; - // TODO(misko): what should happen if it throws? this.hasTask(this.zone, isEmpty); } }; @@ -1748,7 +2920,7 @@ var Zone$1 = (function (global) { }()); var ZoneTask = (function () { function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) { - this.zone = null; + this._zone = null; this.runCount = 0; this._zoneDelegates = null; this._state = 'notScheduled'; @@ -1773,6 +2945,13 @@ var Zone$1 = (function (global) { } }; } + Object.defineProperty(ZoneTask.prototype, "zone", { + get: function () { + return this._zone; + }, + enumerable: true, + configurable: true + }); Object.defineProperty(ZoneTask.prototype, "state", { get: function () { return this._state; @@ -1811,7 +2990,6 @@ var Zone$1 = (function (global) { type: this.type, state: this.state, source: this.source, - data: this.data, zone: this.zone.name, invoke: this.invoke, scheduleFn: this.scheduleFn, @@ -1822,27 +3000,17 @@ var Zone$1 = (function (global) { }; return ZoneTask; }()); - var ZoneFrame = (function () { - function ZoneFrame(parent, zone) { - this.parent = parent; - this.zone = zone; - } - return ZoneFrame; - }()); - function __symbol__(name) { - return '__zone_symbol__' + name; - } - + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + /// MICROTASK QUEUE + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// var symbolSetTimeout = __symbol__('setTimeout'); var symbolPromise = __symbol__('Promise'); var symbolThen = __symbol__('then'); - var _currentZoneFrame = new ZoneFrame(null, new Zone(null, null)); - var _currentTask = null; var _microTaskQueue = []; var _isDrainingMicrotaskQueue = false; - var _uncaughtPromiseErrors = []; - var _numberOfNestedTaskFrames = 0; - function scheduleQueueDrain() { + function scheduleMicroTask(task) { // if we are not running in any task, and there has not been anything scheduled // we must bootstrap the initial task creation by manually scheduling the drain if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { @@ -1854,31 +3022,7 @@ var Zone$1 = (function (global) { global[symbolSetTimeout](drainMicroTaskQueue, 0); } } - } - function scheduleMicroTask(task) { - scheduleQueueDrain(); - _microTaskQueue.push(task); - } - function consoleError(e) { - if (Zone[__symbol__('ignoreConsoleErrorUncaughtError')]) { - return; - } - var rejection = e && e.rejection; - if (rejection) { - console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); - } - console.error(e); - } - function handleUnhandledRejection(e) { - consoleError(e); - try { - var handler = Zone[__symbol__('unhandledPromiseRejectionHandler')]; - if (handler && typeof handler === 'function') { - handler.apply(this, [e]); - } - } - catch (err) { - } + task && _microTaskQueue.push(task); } function drainMicroTaskQueue() { if (!_isDrainingMicrotaskQueue) { @@ -1892,29 +3036,96 @@ var Zone$1 = (function (global) { task.zone.runTask(task, null, null); } catch (error) { - consoleError(error); + _api.onUnhandledError(error); } } } - while (_uncaughtPromiseErrors.length) { - var _loop_1 = function () { - var uncaughtPromiseError = _uncaughtPromiseErrors.shift(); - try { - uncaughtPromiseError.zone.runGuarded(function () { - throw uncaughtPromiseError; - }); - } - catch (error) { - handleUnhandledRejection(error); - } - }; - while (_uncaughtPromiseErrors.length) { - _loop_1(); - } - } + var showError = !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; + _api.microtaskDrainDone(); _isDrainingMicrotaskQueue = false; } } + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + /// BOOTSTRAP + ////////////////////////////////////////////////////// + ////////////////////////////////////////////////////// + var NO_ZONE = { name: 'NO ZONE' }; + var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown'; + var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask'; + var patches = {}; + var _api = { + symbol: __symbol__, + currentZoneFrame: function () { return _currentZoneFrame; }, + onUnhandledError: noop, + microtaskDrainDone: noop, + scheduleMicroTask: scheduleMicroTask, + showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; }, + patchEventTargetMethods: function () { return false; }, + patchOnProperties: noop, + patchMethod: function () { return noop; } + }; + var _currentZoneFrame = { parent: null, zone: new Zone(null, null) }; + var _currentTask = null; + var _numberOfNestedTaskFrames = 0; + function noop() { } + function __symbol__(name) { + return '__zone_symbol__' + name; + } + performanceMeasure('Zone', 'Zone'); + return global['Zone'] = Zone; +})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); + +/** + * @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 + */ +Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) { + var __symbol__ = api.symbol; + var _uncaughtPromiseErrors = []; + var symbolPromise = __symbol__('Promise'); + var symbolThen = __symbol__('then'); + api.onUnhandledError = function (e) { + if (api.showUncaughtError()) { + var rejection = e && e.rejection; + if (rejection) { + console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); + } + console.error(e); + } + }; + api.microtaskDrainDone = function () { + while (_uncaughtPromiseErrors.length) { + var _loop_1 = function () { + var uncaughtPromiseError = _uncaughtPromiseErrors.shift(); + try { + uncaughtPromiseError.zone.runGuarded(function () { + throw uncaughtPromiseError; + }); + } + catch (error) { + handleUnhandledRejection(error); + } + }; + while (_uncaughtPromiseErrors.length) { + _loop_1(); + } + } + }; + function handleUnhandledRejection(e) { + api.onUnhandledError(e); + try { + var handler = Zone[__symbol__('unhandledPromiseRejectionHandler')]; + if (handler && typeof handler === 'function') { + handler.apply(this, [e]); + } + } + catch (err) { + } + } function isThenable(value) { return value && value.then; } @@ -2018,7 +3229,7 @@ var Zone$1 = (function (global) { error_1.zone = Zone.current; error_1.task = Zone.currentTask; _uncaughtPromiseErrors.push(error_1); - scheduleQueueDrain(); + api.scheduleMicroTask(); // to make sure that it is running } } } @@ -2181,9 +3392,9 @@ var Zone$1 = (function (global) { if (resultPromise instanceof ZoneAwarePromise) { return resultPromise; } - var Ctor = resultPromise.constructor; - if (!Ctor[symbolThenPatched]) { - patchThen(Ctor); + var ctor = resultPromise.constructor; + if (!ctor[symbolThenPatched]) { + patchThen(ctor); } return resultPromise; }; @@ -2195,325 +3406,10 @@ var Zone$1 = (function (global) { global['fetch'] = zoneify(fetch_1); } } - // This is not part of public API, but it is usefull for tests, so we expose it. + // This is not part of public API, but it is useful for tests, so we expose it. Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; - /* - * This code patches Error so that: - * - It ignores un-needed stack frames. - * - It Shows the associated Zone for reach frame. - */ - var FrameType; - (function (FrameType) { - /// Skip this frame when printing out stack - FrameType[FrameType["blackList"] = 0] = "blackList"; - /// This frame marks zone transition - FrameType[FrameType["transition"] = 1] = "transition"; - })(FrameType || (FrameType = {})); - var NativeError = global[__symbol__('Error')] = global.Error; - // Store the frames which should be removed from the stack frames - var blackListedStackFrames = {}; - // We must find the frame where Error was created, otherwise we assume we don't understand stack - var zoneAwareFrame; - global.Error = ZoneAwareError; - // How should the stack frames be parsed. - var frameParserStrategy = null; - var stackRewrite = 'stackRewrite'; - // fix #595, create property descriptor - // for error properties - var createProperty = function (props, key) { - // if property is already defined, skip it. - if (props[key]) { - return; - } - // define a local property - // in case error property is not settable - var name = __symbol__(key); - props[key] = { - configurable: true, - enumerable: true, - get: function () { - // if local property has no value - // use internal error's property value - if (!this[name]) { - var error_2 = this[__symbol__('error')]; - if (error_2) { - this[name] = error_2[key]; - } - } - return this[name]; - }, - set: function (value) { - // setter will set value to local property value - this[name] = value; - } - }; - }; - // fix #595, create property descriptor - // for error method properties - var createMethodProperty = function (props, key) { - if (props[key]) { - return; - } - props[key] = { - configurable: true, - enumerable: true, - writable: true, - value: function () { - var error = this[__symbol__('error')]; - var errorMethod = (error && error[key]) || this[key]; - if (errorMethod) { - return errorMethod.apply(error, arguments); - } - } - }; - }; - var createErrorProperties = function () { - var props = Object.create(null); - var error = new NativeError(); - var keys = Object.getOwnPropertyNames(error); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - // Avoid bugs when hasOwnProperty is shadowed - if (Object.prototype.hasOwnProperty.call(error, key)) { - createProperty(props, key); - } - } - var proto = NativeError.prototype; - if (proto) { - var pKeys = Object.getOwnPropertyNames(proto); - for (var i = 0; i < pKeys.length; i++) { - var key = pKeys[i]; - // skip constructor - if (key !== 'constructor' && key !== 'toString' && key !== 'toSource') { - createProperty(props, key); - } - } - } - // some other properties are not - // in NativeError - createProperty(props, 'originalStack'); - createProperty(props, 'zoneAwareStack'); - // define toString, toSource as method property - createMethodProperty(props, 'toString'); - createMethodProperty(props, 'toSource'); - return props; - }; - var errorProperties = createErrorProperties(); - // for derived Error class which extends ZoneAwareError - // we should not override the derived class's property - // so we create a new props object only copy the properties - // from errorProperties which not exist in derived Error's prototype - var getErrorPropertiesForPrototype = function (prototype) { - // if the prototype is ZoneAwareError.prototype - // we just return the prebuilt errorProperties. - if (prototype === ZoneAwareError.prototype) { - return errorProperties; - } - var newProps = Object.create(null); - var cKeys = Object.getOwnPropertyNames(errorProperties); - var keys = Object.getOwnPropertyNames(prototype); - cKeys.forEach(function (cKey) { - if (keys.filter(function (key) { - return key === cKey; - }) - .length === 0) { - newProps[cKey] = errorProperties[cKey]; - } - }); - return newProps; - }; - /** - * This is ZoneAwareError which processes the stack frame and cleans up extra frames as well as - * adds zone information to it. - */ - function ZoneAwareError() { - // make sure we have a valid this - // if this is undefined(call Error without new) or this is global - // or this is some other objects, we should force to create a - // valid ZoneAwareError by call Object.create() - if (!(this instanceof ZoneAwareError)) { - return ZoneAwareError.apply(Object.create(ZoneAwareError.prototype), arguments); - } - // Create an Error. - var error = NativeError.apply(this, arguments); - this[__symbol__('error')] = error; - // Save original stack trace - error.originalStack = error.stack; - // Process the stack trace and rewrite the frames. - if (ZoneAwareError[stackRewrite] && error.originalStack) { - var frames_1 = error.originalStack.split('\n'); - var zoneFrame = _currentZoneFrame; - var i = 0; - // Find the first frame - while (frames_1[i] !== zoneAwareFrame && i < frames_1.length) { - i++; - } - for (; i < frames_1.length && zoneFrame; i++) { - var frame = frames_1[i]; - if (frame.trim()) { - var frameType = blackListedStackFrames.hasOwnProperty(frame) && blackListedStackFrames[frame]; - if (frameType === FrameType.blackList) { - frames_1.splice(i, 1); - i--; - } - else if (frameType === FrameType.transition) { - if (zoneFrame.parent) { - // This is the special frame where zone changed. Print and process it accordingly - frames_1[i] += " [" + zoneFrame.parent.zone.name + " => " + zoneFrame.zone.name + "]"; - zoneFrame = zoneFrame.parent; - } - else { - zoneFrame = null; - } - } - else { - frames_1[i] += " [" + zoneFrame.zone.name + "]"; - } - } - } - error.stack = error.zoneAwareStack = frames_1.join('\n'); - } - // use defineProperties here instead of copy property value - // because of issue #595 which will break angular2. - Object.defineProperties(this, getErrorPropertiesForPrototype(Object.getPrototypeOf(this))); - return this; - } - // Copy the prototype so that instanceof operator works as expected - ZoneAwareError.prototype = NativeError.prototype; - ZoneAwareError[Zone.__symbol__('blacklistedStackFrames')] = blackListedStackFrames; - ZoneAwareError[stackRewrite] = false; - // those properties need special handling - var specialPropertyNames = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace']; - // those properties of NativeError should be set to ZoneAwareError - var nativeErrorProperties = Object.keys(NativeError); - if (nativeErrorProperties) { - nativeErrorProperties.forEach(function (prop) { - if (specialPropertyNames.filter(function (sp) { return sp === prop; }).length === 0) { - Object.defineProperty(ZoneAwareError, prop, { - get: function () { - return NativeError[prop]; - }, - set: function (value) { - NativeError[prop] = value; - } - }); - } - }); - } - if (NativeError.hasOwnProperty('stackTraceLimit')) { - // Extend default stack limit as we will be removing few frames. - NativeError.stackTraceLimit = Math.max(NativeError.stackTraceLimit, 15); - // make sure that ZoneAwareError has the same property which forwards to NativeError. - Object.defineProperty(ZoneAwareError, 'stackTraceLimit', { - get: function () { - return NativeError.stackTraceLimit; - }, - set: function (value) { - return NativeError.stackTraceLimit = value; - } - }); - } - if (NativeError.hasOwnProperty('captureStackTrace')) { - Object.defineProperty(ZoneAwareError, 'captureStackTrace', { - // add named function here because we need to remove this - // stack frame when prepareStackTrace below - value: function zoneCaptureStackTrace(targetObject, constructorOpt) { - NativeError.captureStackTrace(targetObject, constructorOpt); - } - }); - } - Object.defineProperty(ZoneAwareError, 'prepareStackTrace', { - get: function () { - return NativeError.prepareStackTrace; - }, - set: function (value) { - if (!value || typeof value !== 'function') { - return NativeError.prepareStackTrace = value; - } - return NativeError.prepareStackTrace = function (error, structuredStackTrace) { - // remove additional stack information from ZoneAwareError.captureStackTrace - if (structuredStackTrace) { - for (var i = 0; i < structuredStackTrace.length; i++) { - var st = structuredStackTrace[i]; - // remove the first function which name is zoneCaptureStackTrace - if (st.getFunctionName() === 'zoneCaptureStackTrace') { - structuredStackTrace.splice(i, 1); - break; - } - } - } - return value.apply(this, [error, structuredStackTrace]); - }; - } - }); - // Now we need to populet the `blacklistedStackFrames` as well as find the - // run/runGuraded/runTask frames. This is done by creating a detect zone and then threading - // the execution through all of the above methods so that we can look at the stack trace and - // find the frames of interest. - var detectZone = Zone.current.fork({ - name: 'detect', - onInvoke: function (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs, source) { - // Here only so that it will show up in the stack frame so that it can be black listed. - return parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source); - }, - onHandleError: function (parentZD, current, target, error) { - if (error.originalStack && Error === ZoneAwareError) { - var frames_2 = error.originalStack.split(/\n/); - var runFrame = false, runGuardedFrame = false, runTaskFrame = false; - while (frames_2.length) { - var frame = frames_2.shift(); - // On safari it is possible to have stack frame with no line number. - // This check makes sure that we don't filter frames on name only (must have - // linenumber) - if (/:\d+:\d+/.test(frame)) { - // Get rid of the path so that we don't accidintely find function name in path. - // In chrome the seperator is `(` and `@` in FF and safari - // Chrome: at Zone.run (zone.js:100) - // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24) - // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24 - // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24 - var fnName = frame.split('(')[0].split('@')[0]; - var frameType = FrameType.transition; - if (fnName.indexOf('ZoneAwareError') !== -1) { - zoneAwareFrame = frame; - } - if (fnName.indexOf('runGuarded') !== -1) { - runGuardedFrame = true; - } - else if (fnName.indexOf('runTask') !== -1) { - runTaskFrame = true; - } - else if (fnName.indexOf('run') !== -1) { - runFrame = true; - } - else { - frameType = FrameType.blackList; - } - blackListedStackFrames[frame] = frameType; - // Once we find all of the frames we can stop looking. - if (runFrame && runGuardedFrame && runTaskFrame) { - ZoneAwareError[stackRewrite] = true; - break; - } - } - } - } - return false; - } - }); - // carefully constructor a stack frame which contains all of the frames of interest which - // need to be detected and blacklisted. - var detectRunFn = function () { - detectZone.run(function () { - detectZone.runGuarded(function () { - throw new Error('blacklistStackFrames'); - }); - }); - }; - // Cause the error to extract the stack frames. - detectZone.runTask(detectZone.scheduleMacroTask('detect', detectRunFn, null, function () { return null; }, null)); - return global['Zone'] = Zone; -})(typeof window === 'object' && window || typeof self === 'object' && self || global); + return ZoneAwarePromise; +}); /** * @license @@ -2528,7 +3424,7 @@ var Zone$1 = (function (global) { * @suppress {undefinedVars,globalThis} */ var zoneSymbol = function (n) { return "__zone_symbol__" + n; }; -var _global$1 = typeof window === 'object' && window || typeof self === 'object' && self || global; +var _global = typeof window === 'object' && window || typeof self === 'object' && self || global; function bindArguments(args, source) { for (var i = args.length - 1; i >= 0; i--) { if (typeof args[i] === 'function') { @@ -2544,9 +3440,11 @@ function patchPrototype(prototype, fnNames) { var delegate = prototype[name_1]; if (delegate) { prototype[name_1] = (function (delegate) { - return function () { + var patched = function () { return delegate.apply(this, bindArguments(arguments, source + '.' + name_1)); }; + attachOriginToPatched(patched, delegate); + return patched; })(delegate); } }; @@ -2555,18 +3453,30 @@ function patchPrototype(prototype, fnNames) { } } var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope); -var isNode = (!('nw' in _global$1) && typeof process !== 'undefined' && - {}.toString.call(process) === '[object process]'); +// Make sure to access `process` through `_global` so that WebPack does not accidently browserify +// this code. +var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' && + {}.toString.call(_global.process) === '[object process]'); var isBrowser = !isNode && !isWebWorker && !!(typeof window !== 'undefined' && window['HTMLElement']); // we are in electron of nw, so we are both browser and nodejs -var isMix = typeof process !== 'undefined' && - {}.toString.call(process) === '[object process]' && !isWebWorker && +// Make sure to access `process` through `_global` so that WebPack does not accidently browserify +// this code. +var isMix = typeof _global.process !== 'undefined' && + {}.toString.call(_global.process) === '[object process]' && !isWebWorker && !!(typeof window !== 'undefined' && window['HTMLElement']); -function patchProperty(obj, prop) { - var desc = Object.getOwnPropertyDescriptor(obj, prop) || { enumerable: true, configurable: true }; - var originalDesc = Object.getOwnPropertyDescriptor(obj, 'original' + prop); - if (!originalDesc && desc.get) { - Object.defineProperty(obj, 'original' + prop, { enumerable: false, configurable: true, get: desc.get }); +function patchProperty(obj, prop, prototype) { + var desc = Object.getOwnPropertyDescriptor(obj, prop); + if (!desc && prototype) { + // when patch window object, use prototype to check prop exist or not + var prototypeDesc = Object.getOwnPropertyDescriptor(prototype, prop); + if (prototypeDesc) { + desc = { enumerable: true, configurable: true }; + } + } + // if the descriptor not exists or is not configurable + // just return + if (!desc || !desc.configurable) { + return; } // A property descriptor cannot have getter/setter and be writable // deleting the writable and value properties avoids this error: @@ -2575,75 +3485,109 @@ function patchProperty(obj, prop) { // getter or setter has been specified delete desc.writable; delete desc.value; + var originalDescGet = desc.get; // substr(2) cuz 'onclick' -> 'click', etc var eventName = prop.substr(2); var _prop = zoneSymbol('_' + prop); - desc.set = function (fn) { - if (this[_prop]) { - this.removeEventListener(eventName, this[_prop]); + desc.set = function (newValue) { + // in some of windows's onproperty callback, this is undefined + // so we need to check it + var target = this; + if (!target && obj === _global) { + target = _global; } - if (typeof fn === 'function') { + if (!target) { + return; + } + var previousValue = target[_prop]; + if (previousValue) { + target.removeEventListener(eventName, previousValue); + } + if (typeof newValue === 'function') { var wrapFn = function (event) { - var result; - result = fn.apply(this, arguments); - if (result != undefined && !result) + var result = newValue.apply(this, arguments); + if (result != undefined && !result) { event.preventDefault(); + } + return result; }; - this[_prop] = wrapFn; - this.addEventListener(eventName, wrapFn, false); + target[_prop] = wrapFn; + target.addEventListener(eventName, wrapFn, false); } else { - this[_prop] = null; + target[_prop] = null; } }; // The getter would return undefined for unassigned properties but the default value of an // unassigned property is null desc.get = function () { - var r = this[_prop] || null; - // result will be null when use inline event attribute, - // such as - // because the onclick function is internal raw uncompiled handler - // the onclick will be evaluated when first time event was triggered or - // the property is accessed, https://github.com/angular/zone.js/issues/525 - // so we should use original native get to retrieve the handler - if (r === null) { - if (originalDesc && originalDesc.get) { - r = originalDesc.get.apply(this, arguments); - if (r) { - desc.set.apply(this, [r]); - if (typeof this['removeAttribute'] === 'function') { - this.removeAttribute(prop); - } + // in some of windows's onproperty callback, this is undefined + // so we need to check it + var target = this; + if (!target && obj === _global) { + target = _global; + } + if (!target) { + return null; + } + if (target.hasOwnProperty(_prop)) { + return target[_prop]; + } + else if (originalDescGet) { + // result will be null when use inline event attribute, + // such as + // because the onclick function is internal raw uncompiled handler + // the onclick will be evaluated when first time event was triggered or + // the property is accessed, https://github.com/angular/zone.js/issues/525 + // so we should use original native get to retrieve the handler + var value = originalDescGet && originalDescGet.apply(this); + if (value) { + desc.set.apply(this, [value]); + if (typeof target['removeAttribute'] === 'function') { + target.removeAttribute(prop); } + return value; } } - return this[_prop] || null; + return null; }; Object.defineProperty(obj, prop, desc); } - -function patchOnProperties(obj, properties) { - var onProperties = []; - for (var prop in obj) { - if (prop.substr(0, 2) == 'on') { - onProperties.push(prop); - } - } - for (var j = 0; j < onProperties.length; j++) { - patchProperty(obj, onProperties[j]); - } +function patchOnProperties(obj, properties, prototype) { if (properties) { for (var i = 0; i < properties.length; i++) { - patchProperty(obj, 'on' + properties[i]); + patchProperty(obj, 'on' + properties[i], prototype); + } + } + else { + var onProperties = []; + for (var prop in obj) { + if (prop.substr(0, 2) == 'on') { + onProperties.push(prop); + } + } + for (var j = 0; j < onProperties.length; j++) { + patchProperty(obj, onProperties[j], prototype); } } } - var EVENT_TASKS = zoneSymbol('eventTasks'); // For EventTarget var ADD_EVENT_LISTENER = 'addEventListener'; var REMOVE_EVENT_LISTENER = 'removeEventListener'; -function findExistingRegisteredTask(target, handler, name, capture, remove) { +// compare the EventListenerOptionsOrCapture +// 1. if the options is usCapture: boolean, compare the useCpature values directly +// 2. if the options is EventListerOptions, only compare the capture +function compareEventListenerOptions(left, right) { + var leftCapture = (typeof left === 'boolean') ? + left : + ((typeof left === 'object') ? (left && left.capture) : false); + var rightCapture = (typeof right === 'boolean') ? + right : + ((typeof right === 'object') ? (right && right.capture) : false); + return !!leftCapture === !!rightCapture; +} +function findExistingRegisteredTask(target, handler, name, options, remove) { var eventTasks = target[EVENT_TASKS]; if (eventTasks) { for (var i = 0; i < eventTasks.length; i++) { @@ -2651,7 +3595,7 @@ function findExistingRegisteredTask(target, handler, name, capture, remove) { var data = eventTask.data; var listener = data.handler; if ((data.handler === handler || listener.listener === handler) && - data.useCapturing === capture && data.eventName === name) { + compareEventListenerOptions(data.options, options) && data.eventName === name) { if (remove) { eventTasks.splice(i, 1); } @@ -2675,25 +3619,54 @@ function attachRegisteredEvent(target, eventTask, isPrepend) { } var defaultListenerMetaCreator = function (self, args) { return { - useCapturing: args[2], + options: args[2], eventName: args[0], handler: args[1], - target: self || _global$1, + target: self || _global, name: args[0], + crossContext: false, invokeAddFunc: function (addFnSymbol, delegate) { - if (delegate && delegate.invoke) { - return this.target[addFnSymbol](this.eventName, delegate.invoke, this.useCapturing); + // check if the data is cross site context, if it is, fallback to + // remove the delegate directly and try catch error + if (!this.crossContext) { + if (delegate && delegate.invoke) { + return this.target[addFnSymbol](this.eventName, delegate.invoke, this.options); + } + else { + return this.target[addFnSymbol](this.eventName, delegate, this.options); + } } else { - return this.target[addFnSymbol](this.eventName, delegate, this.useCapturing); + // add a if/else branch here for performance concern, for most times + // cross site context is false, so we don't need to try/catch + try { + return this.target[addFnSymbol](this.eventName, delegate, this.options); + } + catch (err) { + // do nothing here is fine, because objects in a cross-site context are unusable + } } }, invokeRemoveFunc: function (removeFnSymbol, delegate) { - if (delegate && delegate.invoke) { - return this.target[removeFnSymbol](this.eventName, delegate.invoke, this.useCapturing); + // check if the data is cross site context, if it is, fallback to + // remove the delegate directly and try catch error + if (!this.crossContext) { + if (delegate && delegate.invoke) { + return this.target[removeFnSymbol](this.eventName, delegate.invoke, this.options); + } + else { + return this.target[removeFnSymbol](this.eventName, delegate, this.options); + } } else { - return this.target[removeFnSymbol](this.eventName, delegate, this.useCapturing); + // add a if/else branch here for performance concern, for most times + // cross site context is false, so we don't need to try/catch + try { + return this.target[removeFnSymbol](this.eventName, delegate, this.options); + } + catch (err) { + // do nothing here is fine, because objects in a cross-site context are unusable + } } } }; @@ -2713,12 +3686,12 @@ function makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, al } function cancelEventListener(eventTask) { var meta = eventTask.data; - findExistingRegisteredTask(meta.target, eventTask.invoke, meta.eventName, meta.useCapturing, true); + findExistingRegisteredTask(meta.target, eventTask.invoke, meta.eventName, meta.options, true); return meta.invokeRemoveFunc(removeFnSymbol, eventTask); } return function zoneAwareAddListener(self, args) { var data = metaCreator(self, args); - data.useCapturing = data.useCapturing || defaultUseCapturing; + data.options = data.options || defaultUseCapturing; // - Inside a Web Worker, `this` is undefined, the context is `global` // - When `addEventListener` is called on the global context in strict mode, `this` is undefined // see https://github.com/angular/zone.js/issues/190 @@ -2737,8 +3710,9 @@ function makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, al validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]'; } catch (error) { - // Returning nothing here is fine, because objects in a cross-site context are unusable - return; + // we can still try to add the data.handler even we are in cross site context + data.crossContext = true; + return data.invokeAddFunc(addFnSymbol, data.handler); } // Ignore special listeners of IE11 & Edge dev tools, see // https://github.com/angular/zone.js/issues/150 @@ -2746,7 +3720,7 @@ function makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, al return data.invokeAddFunc(addFnSymbol, data.handler); } if (!allowDuplicates) { - var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, false); + var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.options, false); if (eventTask) { // we already registered, so this will have noop. return data.invokeAddFunc(addFnSymbol, eventTask); @@ -2764,11 +3738,34 @@ function makeZoneAwareRemoveListener(fnName, useCapturingParam, metaCreator) { var defaultUseCapturing = useCapturingParam ? false : undefined; return function zoneAwareRemoveListener(self, args) { var data = metaCreator(self, args); - data.useCapturing = data.useCapturing || defaultUseCapturing; + data.options = data.options || defaultUseCapturing; // - Inside a Web Worker, `this` is undefined, the context is `global` // - When `addEventListener` is called on the global context in strict mode, `this` is undefined // see https://github.com/angular/zone.js/issues/190 - var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, true); + var delegate = null; + if (typeof data.handler == 'function') { + delegate = data.handler; + } + else if (data.handler && data.handler.handleEvent) { + delegate = function (event) { return data.handler.handleEvent(event); }; + } + var validZoneHandler = false; + try { + // In cross site contexts (such as WebDriver frameworks like Selenium), + // accessing the handler object here will cause an exception to be thrown which + // will fail tests prematurely. + validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]'; + } + catch (error) { + data.crossContext = true; + return data.invokeRemoveFunc(symbol, data.handler); + } + // Ignore special listeners of IE11 & Edge dev tools, see + // https://github.com/angular/zone.js/issues/150 + if (!delegate || validZoneHandler) { + return data.invokeRemoveFunc(symbol, data.handler); + } + var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.options, true); if (eventTask) { eventTask.zone.cancelTask(eventTask); } @@ -2779,8 +3776,6 @@ function makeZoneAwareRemoveListener(fnName, useCapturingParam, metaCreator) { } -var zoneAwareAddEventListener = makeZoneAwareAddListener(ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER); -var zoneAwareRemoveEventListener = makeZoneAwareRemoveListener(REMOVE_EVENT_LISTENER); function patchEventTargetMethods(obj, addFnName, removeFnName, metaCreator) { if (addFnName === void 0) { addFnName = ADD_EVENT_LISTENER; } if (removeFnName === void 0) { removeFnName = REMOVE_EVENT_LISTENER; } @@ -2797,10 +3792,12 @@ function patchEventTargetMethods(obj, addFnName, removeFnName, metaCreator) { var originalInstanceKey = zoneSymbol('originalInstance'); // wrap some native API on `window` function patchClass(className) { - var OriginalClass = _global$1[className]; + var OriginalClass = _global[className]; if (!OriginalClass) return; - _global$1[className] = function () { + // keep original class in global + _global[zoneSymbol(className)] = OriginalClass; + _global[className] = function () { var a = bindArguments(arguments, className); switch (a.length) { case 0: @@ -2822,6 +3819,8 @@ function patchClass(className) { throw new Error('Arg list too long.'); } }; + // attach original delegate to patched function + attachOriginToPatched(_global[className], OriginalClass); var instance = new OriginalClass(function () { }); var prop; for (prop in instance) { @@ -2830,15 +3829,19 @@ function patchClass(className) { continue; (function (prop) { if (typeof instance[prop] === 'function') { - _global$1[className].prototype[prop] = function () { + _global[className].prototype[prop] = function () { return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); }; } else { - Object.defineProperty(_global$1[className].prototype, prop, { + Object.defineProperty(_global[className].prototype, prop, { set: function (fn) { if (typeof fn === 'function') { this[originalInstanceKey][prop] = Zone.current.wrap(fn, className + '.' + prop); + // keep callback in wrapped function so we can + // use it in Function.prototype.toString to return + // the native one. + attachOriginToPatched(this[originalInstanceKey][prop], fn); } else { this[originalInstanceKey][prop] = fn; @@ -2853,25 +3856,13 @@ function patchClass(className) { } for (prop in OriginalClass) { if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { - _global$1[className][prop] = OriginalClass[prop]; + _global[className][prop] = OriginalClass[prop]; } } } - -function createNamedFn(name, delegate) { - try { - return (Function('f', "return function " + name + "(){return f(this, arguments)}"))(delegate); - } - catch (error) { - // if we fail, we must be CSP, just return delegate. - return function () { - return delegate(this, arguments); - }; - } -} function patchMethod(target, name, patchFn) { var proto = target; - while (proto && Object.getOwnPropertyNames(proto).indexOf(name) === -1) { + while (proto && !proto.hasOwnProperty(name)) { proto = Object.getPrototypeOf(proto); } if (!proto && target[name]) { @@ -2882,12 +3873,37 @@ function patchMethod(target, name, patchFn) { var delegate; if (proto && !(delegate = proto[delegateName])) { delegate = proto[delegateName] = proto[name]; - proto[name] = createNamedFn(name, patchFn(delegate, delegateName, name)); + var patchDelegate_1 = patchFn(delegate, delegateName, name); + proto[name] = function () { + return patchDelegate_1(this, arguments); + }; + attachOriginToPatched(proto[name], delegate); } return delegate; } // TODO: @JiaLiPassion, support cancel task later if necessary - +function patchMacroTask(obj, funcName, metaCreator) { + var setNative = null; + function scheduleTask(task) { + var data = task.data; + data.args[data.callbackIndex] = function () { + task.invoke.apply(this, arguments); + }; + setNative.apply(data.target, data.args); + return task; + } + setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) { + var meta = metaCreator(self, args); + if (meta.callbackIndex >= 0 && typeof args[meta.callbackIndex] === 'function') { + var task = Zone.current.scheduleMacroTask(meta.name, args[meta.callbackIndex], meta, scheduleTask, null); + return task; + } + else { + // cause an error by calling it directly. + return delegate.apply(self, args); + } + }; }); +} function findEventTask(target, evtName) { var eventTasks = target[zoneSymbol('eventTasks')]; @@ -2904,8 +3920,57 @@ function findEventTask(target, evtName) { } return result; } -Zone[zoneSymbol('patchEventTargetMethods')] = patchEventTargetMethods; -Zone[zoneSymbol('patchOnProperties')] = patchOnProperties; +function attachOriginToPatched(patched, original) { + patched[zoneSymbol('OriginalDelegate')] = original; +} + +/** + * @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 + */ +// override Function.prototype.toString to make zone.js patched function +// look like native function +Zone.__load_patch('toString', function (global, Zone, api) { + // patch Func.prototype.toString to let them look like native + var originalFunctionToString = Function.prototype.toString; + Function.prototype.toString = function () { + if (typeof this === 'function') { + var originalDelegate = this[zoneSymbol('OriginalDelegate')]; + if (originalDelegate) { + if (typeof originalDelegate === 'function') { + return originalFunctionToString.apply(this[zoneSymbol('OriginalDelegate')], arguments); + } + else { + return Object.prototype.toString.call(originalDelegate); + } + } + if (this === Promise) { + var nativePromise = global[zoneSymbol('Promise')]; + if (nativePromise) { + return originalFunctionToString.apply(nativePromise, arguments); + } + } + if (this === Error) { + var nativeError = global[zoneSymbol('Error')]; + if (nativeError) { + return originalFunctionToString.apply(nativeError, arguments); + } + } + } + return originalFunctionToString.apply(this, arguments); + }; + // patch Object.prototype.toString to let them look like native + var originalObjectToString = Object.prototype.toString; + Object.prototype.toString = function () { + if (this instanceof Promise) { + return '[object Promise]'; + } + return originalObjectToString.apply(this, arguments); + }; +}); /** * @license @@ -2922,20 +3987,32 @@ function patchTimer(window, setName, cancelName, nameSuffix) { var tasksByHandleId = {}; function scheduleTask(task) { var data = task.data; - data.args[0] = function () { + function timer() { try { task.invoke.apply(this, arguments); } finally { - delete tasksByHandleId[data.handleId]; + if (typeof data.handleId === 'number') { + // Node returns complex objects as handleIds + delete tasksByHandleId[data.handleId]; + } } - }; + } + data.args[0] = timer; data.handleId = setNative.apply(window, data.args); - tasksByHandleId[data.handleId] = task; + if (typeof data.handleId === 'number') { + // Node returns complex objects as handleIds -> no need to keep them around. Additionally, + // this throws an + // exception in older node versions and has no effect there, because of the stringified key. + tasksByHandleId[data.handleId] = task; + } return task; } function clearTask(task) { - delete tasksByHandleId[task.data.handleId]; + if (typeof task.data.handleId === 'number') { + // Node returns complex objects as handleIds + delete tasksByHandleId[task.data.handleId]; + } return clearNative(task.data.handleId); } setNative = @@ -3034,13 +4111,11 @@ function propertyPatch() { return desc; }; } - function _redefineProperty(obj, prop, desc) { var originalConfigurableFlag = desc.configurable; desc = rewriteDescriptor(obj, prop, desc); return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); } - function isUnconfigurable(obj, prop) { return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop]; } @@ -3156,7 +4231,7 @@ function apply(_global) { return proxySocket; }; for (var prop in WS) { - _global.WebSocket[prop] = WS[prop]; + _global['WebSocket'][prop] = WS[prop]; } } @@ -3167,8 +4242,215 @@ function apply(_global) { * 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 eventNames = 'copy cut paste abort blur focus canplay canplaythrough change click contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop durationchange emptied ended input invalid keydown keypress keyup load loadeddata loadedmetadata loadstart message mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup pause play playing progress ratechange reset scroll seeked seeking select show stalled submit suspend timeupdate volumechange waiting mozfullscreenchange mozfullscreenerror mozpointerlockchange mozpointerlockerror error webglcontextrestored webglcontextlost webglcontextcreationerror' - .split(' '); +var globalEventHandlersEventNames = [ + 'abort', + 'animationcancel', + 'animationend', + 'animationiteration', + 'auxclick', + 'beforeinput', + 'blur', + 'cancel', + 'canplay', + 'canplaythrough', + 'change', + 'compositionstart', + 'compositionupdate', + 'compositionend', + 'cuechange', + 'click', + 'close', + 'contextmenu', + 'curechange', + 'dblclick', + 'drag', + 'dragend', + 'dragenter', + 'dragexit', + 'dragleave', + 'dragover', + 'drop', + 'durationchange', + 'emptied', + 'ended', + 'error', + 'focus', + 'focusin', + 'focusout', + 'gotpointercapture', + 'input', + 'invalid', + 'keydown', + 'keypress', + 'keyup', + 'load', + 'loadstart', + 'loadeddata', + 'loadedmetadata', + 'lostpointercapture', + 'mousedown', + 'mouseenter', + 'mouseleave', + 'mousemove', + 'mouseout', + 'mouseover', + 'mouseup', + 'mousewheel', + 'pause', + 'play', + 'playing', + 'pointercancel', + 'pointerdown', + 'pointerenter', + 'pointerleave', + 'pointerlockchange', + 'mozpointerlockchange', + 'webkitpointerlockerchange', + 'pointerlockerror', + 'mozpointerlockerror', + 'webkitpointerlockerror', + 'pointermove', + 'pointout', + 'pointerover', + 'pointerup', + 'progress', + 'ratechange', + 'reset', + 'resize', + 'scroll', + 'seeked', + 'seeking', + 'select', + 'selectionchange', + 'selectstart', + 'show', + 'sort', + 'stalled', + 'submit', + 'suspend', + 'timeupdate', + 'volumechange', + 'touchcancel', + 'touchmove', + 'touchstart', + 'transitioncancel', + 'transitionend', + 'waiting', + 'wheel' +]; +var documentEventNames = [ + 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'fullscreenchange', + 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror', + 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange' +]; +var windowEventNames = [ + 'absolutedeviceorientation', + 'afterinput', + 'afterprint', + 'appinstalled', + 'beforeinstallprompt', + 'beforeprint', + 'beforeunload', + 'devicelight', + 'devicemotion', + 'deviceorientation', + 'deviceorientationabsolute', + 'deviceproximity', + 'hashchange', + 'languagechange', + 'message', + 'mozbeforepaint', + 'offline', + 'online', + 'paint', + 'pageshow', + 'pagehide', + 'popstate', + 'rejectionhandled', + 'storage', + 'unhandledrejection', + 'unload', + 'userproximity', + 'vrdisplyconnected', + 'vrdisplaydisconnected', + 'vrdisplaypresentchange' +]; +var htmlElementEventNames = [ + 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend', + 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend', + 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend' +]; +var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend']; +var ieElementEventNames = [ + 'activate', + 'afterupdate', + 'ariarequest', + 'beforeactivate', + 'beforedeactivate', + 'beforeeditfocus', + 'beforeupdate', + 'cellchange', + 'controlselect', + 'dataavailable', + 'datasetchanged', + 'datasetcomplete', + 'errorupdate', + 'filterchange', + 'layoutcomplete', + 'losecapture', + 'move', + 'moveend', + 'movestart', + 'propertychange', + 'resizeend', + 'resizestart', + 'rowenter', + 'rowexit', + 'rowsdelete', + 'rowsinserted', + 'command', + 'compassneedscalibration', + 'deactivate', + 'help', + 'mscontentzoom', + 'msmanipulationstatechanged', + 'msgesturechange', + 'msgesturedoubletap', + 'msgestureend', + 'msgesturehold', + 'msgesturestart', + 'msgesturetap', + 'msgotpointercapture', + 'msinertiastart', + 'mslostpointercapture', + 'mspointercancel', + 'mspointerdown', + 'mspointerenter', + 'mspointerhover', + 'mspointerleave', + 'mspointermove', + 'mspointerout', + 'mspointerover', + 'mspointerup', + 'pointerout', + 'mssitemodejumplistitemremoved', + 'msthumbnailclick', + 'stop', + 'storagecommit' +]; +var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror']; +var formEventNames = ['autocomplete', 'autocompleteerror']; +var detailEventNames = ['toggle']; +var frameEventNames = ['load']; +var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll']; +var marqueeEventNames = ['bounce', 'finish', 'start']; +var XMLHttpRequestEventNames = [ + 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend', + 'readystatechange' +]; +var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close']; +var websocketEventNames = ['close', 'error', 'open', 'message']; +var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames); function propertyDescriptorPatch(_global) { if (isNode && !isMix) { return; @@ -3177,19 +4459,40 @@ function propertyDescriptorPatch(_global) { if (canPatchViaPropertyDescriptor()) { // for browsers that we can patch the descriptor: Chrome & Firefox if (isBrowser) { + // in IE/Edge, onProp not exist in window object, but in WindowPrototype + // so we need to pass WindowPrototype to check onProp exist or not + patchOnProperties(window, eventNames, Object.getPrototypeOf(window)); + patchOnProperties(Document.prototype, eventNames); + if (typeof window['SVGElement'] !== 'undefined') { + patchOnProperties(window['SVGElement'].prototype, eventNames); + } + patchOnProperties(Element.prototype, eventNames); patchOnProperties(HTMLElement.prototype, eventNames); + patchOnProperties(HTMLMediaElement.prototype, mediaElementEventNames); + patchOnProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames)); + patchOnProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames)); + patchOnProperties(HTMLFrameElement.prototype, frameEventNames); + patchOnProperties(HTMLIFrameElement.prototype, frameEventNames); + var HTMLMarqueeElement_1 = window['HTMLMarqueeElement']; + if (HTMLMarqueeElement_1) { + patchOnProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames); + } + } + patchOnProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames); + var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget) { + patchOnProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames); } - patchOnProperties(XMLHttpRequest.prototype, null); if (typeof IDBIndex !== 'undefined') { - patchOnProperties(IDBIndex.prototype, null); - patchOnProperties(IDBRequest.prototype, null); - patchOnProperties(IDBOpenDBRequest.prototype, null); - patchOnProperties(IDBDatabase.prototype, null); - patchOnProperties(IDBTransaction.prototype, null); - patchOnProperties(IDBCursor.prototype, null); + patchOnProperties(IDBIndex.prototype, IDBIndexEventNames); + patchOnProperties(IDBRequest.prototype, IDBIndexEventNames); + patchOnProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames); + patchOnProperties(IDBDatabase.prototype, IDBIndexEventNames); + patchOnProperties(IDBTransaction.prototype, IDBIndexEventNames); + patchOnProperties(IDBCursor.prototype, IDBIndexEventNames); } if (supportsWebSocket) { - patchOnProperties(WebSocket.prototype, null); + patchOnProperties(WebSocket.prototype, websocketEventNames); } } else { @@ -3215,18 +4518,40 @@ function canPatchViaPropertyDescriptor() { // by default XMLHttpRequest.prototype.onreadystatechange is undefined // without adding enumerable and configurable will cause onreadystatechange // non-configurable - Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', { - enumerable: true, - configurable: true, - get: function () { - return true; - } - }); - var req = new XMLHttpRequest(); - var result = !!req.onreadystatechange; - // restore original desc - Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', xhrDesc || {}); - return result; + // and if XMLHttpRequest.prototype.onreadystatechange is undefined, + // we should set a real desc instead a fake one + if (xhrDesc) { + Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', { + enumerable: true, + configurable: true, + get: function () { + return true; + } + }); + var req = new XMLHttpRequest(); + var result = !!req.onreadystatechange; + // restore original desc + Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', xhrDesc || {}); + return result; + } + else { + Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', { + enumerable: true, + configurable: true, + get: function () { + return this[zoneSymbol('fakeonreadystatechange')]; + }, + set: function (value) { + this[zoneSymbol('fakeonreadystatechange')] = value; + } + }); + var req = new XMLHttpRequest(); + var detectFunc = function () { }; + req.onreadystatechange = detectFunc; + var result = req[zoneSymbol('fakeonreadystatechange')] === detectFunc; + req.onreadystatechange = null; + return result; + } } var unboundKey = zoneSymbol('unbound'); @@ -3258,7 +4583,6 @@ function patchViaCapturingAllTheEvents() { for (var i = 0; i < eventNames.length; i++) { _loop_1(i); } - } /** @@ -3295,6 +4619,7 @@ function registerElementPatch(_global) { } return _registerElement.apply(document, [name, opts]); }; + attachOriginToPatched(document.registerElement, _registerElement); } /** @@ -3304,132 +4629,168 @@ function registerElementPatch(_global) { * 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 set = 'set'; -var clear = 'clear'; -var blockingMethods = ['alert', 'prompt', 'confirm']; -var _global = typeof window === 'object' && window || typeof self === 'object' && self || global; -patchTimer(_global, set, clear, 'Timeout'); -patchTimer(_global, set, clear, 'Interval'); -patchTimer(_global, set, clear, 'Immediate'); -patchTimer(_global, 'request', 'cancel', 'AnimationFrame'); -patchTimer(_global, 'mozRequest', 'mozCancel', 'AnimationFrame'); -patchTimer(_global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); -for (var i = 0; i < blockingMethods.length; i++) { - var name_1 = blockingMethods[i]; - patchMethod(_global, name_1, function (delegate, symbol, name) { - return function (s, args) { - return Zone.current.run(delegate, _global, args, name); - }; - }); -} -eventTargetPatch(_global); -propertyDescriptorPatch(_global); -patchClass('MutationObserver'); -patchClass('WebKitMutationObserver'); -patchClass('FileReader'); -propertyPatch(); -registerElementPatch(_global); -// Treat XMLHTTPRequest as a macrotask. -patchXHR(_global); -var XHR_TASK = zoneSymbol('xhrTask'); -var XHR_SYNC = zoneSymbol('xhrSync'); -var XHR_LISTENER = zoneSymbol('xhrListener'); -var XHR_SCHEDULED = zoneSymbol('xhrScheduled'); -function patchXHR(window) { - function findPendingTask(target) { - var pendingTask = target[XHR_TASK]; - return pendingTask; - } - function scheduleTask(task) { - XMLHttpRequest[XHR_SCHEDULED] = false; - var data = task.data; - // remove existing event listener - var listener = data.target[XHR_LISTENER]; - if (listener) { - data.target.removeEventListener('readystatechange', listener); - } - var newListener = data.target[XHR_LISTENER] = function () { - if (data.target.readyState === data.target.DONE) { - // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with - // readyState=4 multiple times, so we need to check task state here - if (!data.aborted && XMLHttpRequest[XHR_SCHEDULED] && task.state === 'scheduled') { - task.invoke(); - } - } - }; - data.target.addEventListener('readystatechange', newListener); - var storedTask = data.target[XHR_TASK]; - if (!storedTask) { - data.target[XHR_TASK] = task; - } - sendNative.apply(data.target, data.args); - XMLHttpRequest[XHR_SCHEDULED] = true; - return task; - } - function placeholderCallback() { } - function clearTask(task) { - var data = task.data; - // Note - ideally, we would call data.target.removeEventListener here, but it's too late - // to prevent it from firing. So instead, we store info for the event listener. - data.aborted = true; - return abortNative.apply(data.target, data.args); - } - var openNative = patchMethod(window.XMLHttpRequest.prototype, 'open', function () { return function (self, args) { - self[XHR_SYNC] = args[2] == false; - return openNative.apply(self, args); - }; }); - var sendNative = patchMethod(window.XMLHttpRequest.prototype, 'send', function () { return function (self, args) { - var zone = Zone.current; - if (self[XHR_SYNC]) { - // if the XHR is sync there is no task to schedule, just execute the code. - return sendNative.apply(self, args); - } - else { - var options = { target: self, isPeriodic: false, delay: null, args: args, aborted: false }; - return zone.scheduleMacroTask('XMLHttpRequest.send', placeholderCallback, options, scheduleTask, clearTask); - } - }; }); - var abortNative = patchMethod(window.XMLHttpRequest.prototype, 'abort', function (delegate) { return function (self, args) { - var task = findPendingTask(self); - if (task && typeof task.type == 'string') { - // If the XHR has already completed, do nothing. - // If the XHR has already been aborted, do nothing. - // Fix #569, call abort multiple times before done will cause - // macroTask task count be negative number - if (task.cancelFn == null || (task.data && task.data.aborted)) { - return; - } - task.zone.cancelTask(task); - } - // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no task - // to cancel. Do nothing. - }; }); -} -/// GEO_LOCATION -if (_global['navigator'] && _global['navigator'].geolocation) { - patchPrototype(_global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); -} -// handle unhandled promise rejection -function findPromiseRejectionHandler(evtName) { - return function (e) { - var eventTasks = findEventTask(_global, evtName); - eventTasks.forEach(function (eventTask) { - // windows has added unhandledrejection event listener - // trigger the event listener - var PromiseRejectionEvent = _global['PromiseRejectionEvent']; - if (PromiseRejectionEvent) { - var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection }); - eventTask.invoke(evt); - } +Zone.__load_patch('timers', function (global, Zone, api) { + var set = 'set'; + var clear = 'clear'; + patchTimer(global, set, clear, 'Timeout'); + patchTimer(global, set, clear, 'Interval'); + patchTimer(global, set, clear, 'Immediate'); + patchTimer(global, 'request', 'cancel', 'AnimationFrame'); + patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); + patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); +}); +Zone.__load_patch('blocking', function (global, Zone, api) { + var blockingMethods = ['alert', 'prompt', 'confirm']; + for (var i = 0; i < blockingMethods.length; i++) { + var name_1 = blockingMethods[i]; + patchMethod(global, name_1, function (delegate, symbol, name) { + return function (s, args) { + return Zone.current.run(delegate, global, args, name); + }; }); - }; -} -if (_global['PromiseRejectionEvent']) { - Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = - findPromiseRejectionHandler('unhandledrejection'); - Zone[zoneSymbol('rejectionHandledHandler')] = - findPromiseRejectionHandler('rejectionhandled'); -} + } +}); +Zone.__load_patch('EventTarget', function (global, Zone, api) { + eventTargetPatch(global); + // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener + var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; + if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { + patchEventTargetMethods(XMLHttpRequestEventTarget.prototype); + } + patchClass('MutationObserver'); + patchClass('WebKitMutationObserver'); + patchClass('FileReader'); +}); +Zone.__load_patch('on_property', function (global, Zone, api) { + propertyDescriptorPatch(global); + propertyPatch(); + registerElementPatch(global); +}); +Zone.__load_patch('canvas', function (global, Zone, api) { + var HTMLCanvasElement = global['HTMLCanvasElement']; + if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype && + HTMLCanvasElement.prototype.toBlob) { + patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) { + return { name: 'HTMLCanvasElement.toBlob', target: self, callbackIndex: 0, args: args }; + }); + } +}); +Zone.__load_patch('XHR', function (global, Zone, api) { + // Treat XMLHTTPRequest as a macrotask. + patchXHR(global); + var XHR_TASK = zoneSymbol('xhrTask'); + var XHR_SYNC = zoneSymbol('xhrSync'); + var XHR_LISTENER = zoneSymbol('xhrListener'); + var XHR_SCHEDULED = zoneSymbol('xhrScheduled'); + function patchXHR(window) { + function findPendingTask(target) { + var pendingTask = target[XHR_TASK]; + return pendingTask; + } + function scheduleTask(task) { + XMLHttpRequest[XHR_SCHEDULED] = false; + var data = task.data; + // remove existing event listener + var listener = data.target[XHR_LISTENER]; + var oriAddListener = data.target[zoneSymbol('addEventListener')]; + var oriRemoveListener = data.target[zoneSymbol('removeEventListener')]; + if (listener) { + oriRemoveListener.apply(data.target, ['readystatechange', listener]); + } + var newListener = data.target[XHR_LISTENER] = function () { + if (data.target.readyState === data.target.DONE) { + // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with + // readyState=4 multiple times, so we need to check task state here + if (!data.aborted && XMLHttpRequest[XHR_SCHEDULED] && + task.state === 'scheduled') { + task.invoke(); + } + } + }; + oriAddListener.apply(data.target, ['readystatechange', newListener]); + var storedTask = data.target[XHR_TASK]; + if (!storedTask) { + data.target[XHR_TASK] = task; + } + sendNative.apply(data.target, data.args); + XMLHttpRequest[XHR_SCHEDULED] = true; + return task; + } + function placeholderCallback() { } + function clearTask(task) { + var data = task.data; + // Note - ideally, we would call data.target.removeEventListener here, but it's too late + // to prevent it from firing. So instead, we store info for the event listener. + data.aborted = true; + return abortNative.apply(data.target, data.args); + } + var openNative = patchMethod(window.XMLHttpRequest.prototype, 'open', function () { return function (self, args) { + self[XHR_SYNC] = args[2] == false; + return openNative.apply(self, args); + }; }); + var sendNative = patchMethod(window.XMLHttpRequest.prototype, 'send', function () { return function (self, args) { + var zone = Zone.current; + if (self[XHR_SYNC]) { + // if the XHR is sync there is no task to schedule, just execute the code. + return sendNative.apply(self, args); + } + else { + var options = { target: self, isPeriodic: false, delay: null, args: args, aborted: false }; + return zone.scheduleMacroTask('XMLHttpRequest.send', placeholderCallback, options, scheduleTask, clearTask); + } + }; }); + var abortNative = patchMethod(window.XMLHttpRequest.prototype, 'abort', function (delegate) { return function (self, args) { + var task = findPendingTask(self); + if (task && typeof task.type == 'string') { + // If the XHR has already completed, do nothing. + // If the XHR has already been aborted, do nothing. + // Fix #569, call abort multiple times before done will cause + // macroTask task count be negative number + if (task.cancelFn == null || (task.data && task.data.aborted)) { + return; + } + task.zone.cancelTask(task); + } + // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no + // task + // to cancel. Do nothing. + }; }); + } +}); +Zone.__load_patch('geolocation', function (global, Zone, api) { + /// GEO_LOCATION + if (global['navigator'] && global['navigator'].geolocation) { + patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); + } +}); +Zone.__load_patch('PromiseRejectionEvent', function (global, Zone, api) { + // handle unhandled promise rejection + function findPromiseRejectionHandler(evtName) { + return function (e) { + var eventTasks = findEventTask(global, evtName); + eventTasks.forEach(function (eventTask) { + // windows has added unhandledrejection event listener + // trigger the event listener + var PromiseRejectionEvent = global['PromiseRejectionEvent']; + if (PromiseRejectionEvent) { + var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection }); + eventTask.invoke(evt); + } + }); + }; + } + if (global['PromiseRejectionEvent']) { + Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = + findPromiseRejectionHandler('unhandledrejection'); + Zone[zoneSymbol('rejectionHandledHandler')] = + findPromiseRejectionHandler('rejectionhandled'); + } +}); +Zone.__load_patch('util', function (global, Zone, api) { + api.patchEventTargetMethods = patchEventTargetMethods; + api.patchOnProperties = patchOnProperties; + api.patchMethod = patchMethod; +}); /** * @license @@ -3441,1149 +4802,8 @@ if (_global['PromiseRejectionEvent']) { }))); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(15), __webpack_require__(32))) - -/***/ }), - -/***/ 47: -/***/ (function(module, exports, __webpack_require__) { - -var Map = __webpack_require__(645) - , $export = __webpack_require__(40) - , shared = __webpack_require__(264)('metadata') - , store = shared.store || (shared.store = new (__webpack_require__(647))); - -var getOrCreateMetadataMap = function(target, targetKey, create){ - var targetMetadata = store.get(target); - if(!targetMetadata){ - if(!create)return undefined; - store.set(target, targetMetadata = new Map); - } - var keyMetadata = targetMetadata.get(targetKey); - if(!keyMetadata){ - if(!create)return undefined; - targetMetadata.set(targetKey, keyMetadata = new Map); - } return keyMetadata; -}; -var ordinaryHasOwnMetadata = function(MetadataKey, O, P){ - var metadataMap = getOrCreateMetadataMap(O, P, false); - return metadataMap === undefined ? false : metadataMap.has(MetadataKey); -}; -var ordinaryGetOwnMetadata = function(MetadataKey, O, P){ - var metadataMap = getOrCreateMetadataMap(O, P, false); - return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); -}; -var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){ - getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); -}; -var ordinaryOwnMetadataKeys = function(target, targetKey){ - var metadataMap = getOrCreateMetadataMap(target, targetKey, false) - , keys = []; - if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); }); - return keys; -}; -var toMetaKey = function(it){ - return it === undefined || typeof it == 'symbol' ? it : String(it); -}; -var exp = function(O){ - $export($export.S, 'Reflect', O); -}; - -module.exports = { - store: store, - map: getOrCreateMetadataMap, - has: ordinaryHasOwnMetadata, - get: ordinaryGetOwnMetadata, - set: ordinaryDefineOwnMetadata, - keys: ordinaryOwnMetadataKeys, - key: toMetaKey, - exp: exp -}; - -/***/ }), - -/***/ 48: -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(17) - , IE8_DOM_DEFINE = __webpack_require__(393) - , toPrimitive = __webpack_require__(173) - , dP = Object.defineProperty; - -exports.f = __webpack_require__(30) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; -}; - -/***/ }), - -/***/ 49: -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(264)('wks') - , uid = __webpack_require__(174) - , Symbol = __webpack_require__(41).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - -/***/ }), - -/***/ 621: -/***/ (function(module, exports, __webpack_require__) { - -var forOf = __webpack_require__(167); - -module.exports = function(iter, ITERATOR){ - var result = []; - forOf(iter, false, result.push, result, ITERATOR); - return result; -}; - - -/***/ }), - -/***/ 622: -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(119) - , toLength = __webpack_require__(265) - , toIndex = __webpack_require__(643); -module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -/***/ }), - -/***/ 623: -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(42) - , isArray = __webpack_require__(631) - , SPECIES = __webpack_require__(49)('species'); - -module.exports = function(original){ - var C; - if(isArray(original)){ - C = original.constructor; - // cross-realm fallback - if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined; - if(isObject(C)){ - C = C[SPECIES]; - if(C === null)C = undefined; - } - } return C === undefined ? Array : C; -}; - -/***/ }), - -/***/ 624: -/***/ (function(module, exports, __webpack_require__) { - -// 9.4.2.3 ArraySpeciesCreate(originalArray, length) -var speciesConstructor = __webpack_require__(623); - -module.exports = function(original, length){ - return new (speciesConstructor(original))(length); -}; - -/***/ }), - -/***/ 625: -/***/ (function(module, exports, __webpack_require__) { - -// getting tag from 19.1.3.6 Object.prototype.toString() -var cof = __webpack_require__(253) - , TAG = __webpack_require__(49)('toStringTag') - // ES3 wrong here - , ARG = cof(function(){ return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function(it, key){ - try { - return it[key]; - } catch(e){ /* empty */ } -}; - -module.exports = function(it){ - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - -/***/ }), - -/***/ 626: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var redefineAll = __webpack_require__(261) - , getWeak = __webpack_require__(169).getWeak - , anObject = __webpack_require__(17) - , isObject = __webpack_require__(42) - , anInstance = __webpack_require__(252) - , forOf = __webpack_require__(167) - , createArrayMethod = __webpack_require__(390) - , $has = __webpack_require__(64) - , arrayFind = createArrayMethod(5) - , arrayFindIndex = createArrayMethod(6) - , id = 0; - -// fallback for uncaught frozen keys -var uncaughtFrozenStore = function(that){ - return that._l || (that._l = new UncaughtFrozenStore); -}; -var UncaughtFrozenStore = function(){ - this.a = []; -}; -var findUncaughtFrozen = function(store, key){ - return arrayFind(store.a, function(it){ - return it[0] === key; - }); -}; -UncaughtFrozenStore.prototype = { - get: function(key){ - var entry = findUncaughtFrozen(this, key); - if(entry)return entry[1]; - }, - has: function(key){ - return !!findUncaughtFrozen(this, key); - }, - set: function(key, value){ - var entry = findUncaughtFrozen(this, key); - if(entry)entry[1] = value; - else this.a.push([key, value]); - }, - 'delete': function(key){ - var index = arrayFindIndex(this.a, function(it){ - return it[0] === key; - }); - if(~index)this.a.splice(index, 1); - return !!~index; - } -}; - -module.exports = { - getConstructor: function(wrapper, NAME, IS_MAP, ADDER){ - var C = wrapper(function(that, iterable){ - anInstance(that, C, NAME, '_i'); - that._i = id++; // collection id - that._l = undefined; // leak store for uncaught frozen objects - if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function(key){ - if(!isObject(key))return false; - var data = getWeak(key); - if(data === true)return uncaughtFrozenStore(this)['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key){ - if(!isObject(key))return false; - var data = getWeak(key); - if(data === true)return uncaughtFrozenStore(this).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function(that, key, value){ - var data = getWeak(anObject(key), true); - if(data === true)uncaughtFrozenStore(that).set(key, value); - else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - -/***/ }), - -/***/ 627: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $defineProperty = __webpack_require__(48) - , createDesc = __webpack_require__(172); - -module.exports = function(object, index, value){ - if(index in object)$defineProperty.f(object, index, createDesc(0, value)); - else object[index] = value; -}; - -/***/ }), - -/***/ 628: -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(41).document && document.documentElement; - -/***/ }), - -/***/ 629: -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(42) - , setPrototypeOf = __webpack_require__(641).set; -module.exports = function(that, target, C){ - var P, S = target.constructor; - if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){ - setPrototypeOf(that, P); - } return that; -}; - -/***/ }), - -/***/ 630: -/***/ (function(module, exports, __webpack_require__) { - -// check on default Array iterator -var Iterators = __webpack_require__(258) - , ITERATOR = __webpack_require__(49)('iterator') - , ArrayProto = Array.prototype; - -module.exports = function(it){ - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - -/***/ }), - -/***/ 631: -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(253); -module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; -}; - -/***/ }), - -/***/ 632: -/***/ (function(module, exports, __webpack_require__) { - -// call something on iterator step with safe closing on error -var anObject = __webpack_require__(17); -module.exports = function(iterator, fn, value, entries){ - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch(e){ - var ret = iterator['return']; - if(ret !== undefined)anObject(ret.call(iterator)); - throw e; - } -}; - -/***/ }), - -/***/ 633: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(395) - , descriptor = __webpack_require__(172) - , setToStringTag = __webpack_require__(262) - , IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(168)(IteratorPrototype, __webpack_require__(49)('iterator'), function(){ return this; }); - -module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -/***/ }), - -/***/ 634: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(394) - , $export = __webpack_require__(40) - , redefine = __webpack_require__(118) - , hide = __webpack_require__(168) - , has = __webpack_require__(64) - , Iterators = __webpack_require__(258) - , $iterCreate = __webpack_require__(633) - , setToStringTag = __webpack_require__(262) - , getPrototypeOf = __webpack_require__(91) - , ITERATOR = __webpack_require__(49)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - -var returnThis = function(){ return this; }; - -module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - -/***/ }), - -/***/ 635: -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__(49)('iterator') - , SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function(){ SAFE_CLOSING = true; }; - Array.from(riter, function(){ throw 2; }); -} catch(e){ /* empty */ } - -module.exports = function(exec, skipClosing){ - if(!skipClosing && !SAFE_CLOSING)return false; - var safe = false; - try { - var arr = [7] - , iter = arr[ITERATOR](); - iter.next = function(){ return {done: safe = true}; }; - arr[ITERATOR] = function(){ return iter; }; - exec(arr); - } catch(e){ /* empty */ } - return safe; -}; - -/***/ }), - -/***/ 636: -/***/ (function(module, exports) { - -module.exports = function(done, value){ - return {value: value, done: !!done}; -}; - -/***/ }), - -/***/ 637: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// 19.1.2.1 Object.assign(target, source, ...) -var getKeys = __webpack_require__(259) - , gOPS = __webpack_require__(396) - , pIE = __webpack_require__(260) - , toObject = __webpack_require__(77) - , IObject = __webpack_require__(257) - , $assign = Object.assign; - -// should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || __webpack_require__(90)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; -} : $assign; - -/***/ }), - -/***/ 638: -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(48) - , anObject = __webpack_require__(17) - , getKeys = __webpack_require__(259); - -module.exports = __webpack_require__(30) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - -/***/ }), - -/***/ 639: -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(397) - , hiddenKeys = __webpack_require__(256).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); -}; - -/***/ }), - -/***/ 64: -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function(it, key){ - return hasOwnProperty.call(it, key); -}; - -/***/ }), - -/***/ 640: -/***/ (function(module, exports, __webpack_require__) { - -// all object keys, includes non-enumerable and symbols -var gOPN = __webpack_require__(639) - , gOPS = __webpack_require__(396) - , anObject = __webpack_require__(17) - , Reflect = __webpack_require__(41).Reflect; -module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){ - var keys = gOPN.f(anObject(it)) - , getSymbols = gOPS.f; - return getSymbols ? keys.concat(getSymbols(it)) : keys; -}; - -/***/ }), - -/***/ 641: -/***/ (function(module, exports, __webpack_require__) { - -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = __webpack_require__(42) - , anObject = __webpack_require__(17); -var check = function(O, proto){ - anObject(O); - if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function(test, buggy, set){ - try { - set = __webpack_require__(117)(Function.call, __webpack_require__(171).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ - check(O, proto); - if(buggy)O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -/***/ }), - -/***/ 642: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(41) - , dP = __webpack_require__(48) - , DESCRIPTORS = __webpack_require__(30) - , SPECIES = __webpack_require__(49)('species'); - -module.exports = function(KEY){ - var C = global[KEY]; - if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, { - configurable: true, - get: function(){ return this; } - }); -}; - -/***/ }), - -/***/ 643: -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(399) - , max = Math.max - , min = Math.min; -module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -/***/ }), - -/***/ 644: -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(625) - , ITERATOR = __webpack_require__(49)('iterator') - , Iterators = __webpack_require__(258); -module.exports = __webpack_require__(116).getIteratorMethod = function(it){ - if(it != undefined)return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - -/***/ }), - -/***/ 645: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__(391); - -// 23.1 Map Objects -module.exports = __webpack_require__(254)('Map', function(get){ - return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key){ - var entry = strong.getEntry(this, key); - return entry && entry.v; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value){ - return strong.def(this, key === 0 ? 0 : key, value); - } -}, strong, true); - -/***/ }), - -/***/ 646: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var strong = __webpack_require__(391); - -// 23.2 Set Objects -module.exports = __webpack_require__(254)('Set', function(get){ - return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; -}, { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value){ - return strong.def(this, value = value === 0 ? 0 : value, value); - } -}, strong); - -/***/ }), - -/***/ 647: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var each = __webpack_require__(390)(0) - , redefine = __webpack_require__(118) - , meta = __webpack_require__(169) - , assign = __webpack_require__(637) - , weak = __webpack_require__(626) - , isObject = __webpack_require__(42) - , getWeak = meta.getWeak - , isExtensible = Object.isExtensible - , uncaughtFrozenStore = weak.ufstore - , tmp = {} - , InternalMap; - -var wrapper = function(get){ - return function WeakMap(){ - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key){ - if(isObject(key)){ - var data = getWeak(key); - if(data === true)return uncaughtFrozenStore(this).get(key); - return data ? data[this._i] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value){ - return weak.def(this, key, value); - } -}; - -// 23.3 WeakMap Objects -var $WeakMap = module.exports = __webpack_require__(254)('WeakMap', wrapper, methods, weak, true, true); - -// IE11 WeakMap frozen keys fix -if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){ - InternalMap = weak.getConstructor(wrapper); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function(key){ - var proto = $WeakMap.prototype - , method = proto[key]; - redefine(proto, key, function(a, b){ - // store frozen objects on internal weakmap shim - if(isObject(a) && !isExtensible(a)){ - if(!this._f)this._f = new InternalMap; - var result = this._f[key](a, b); - return key == 'set' ? this : result; - // store all the rest on native weakmap - } return method.call(this, a, b); - }); - }); -} - -/***/ }), - -/***/ 648: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $export = __webpack_require__(40) - , toObject = __webpack_require__(77) - , aFunction = __webpack_require__(166) - , $defineProperty = __webpack_require__(48); - -// B.2.2.2 Object.prototype.__defineGetter__(P, getter) -__webpack_require__(30) && $export($export.P + __webpack_require__(170), 'Object', { - __defineGetter__: function __defineGetter__(P, getter){ - $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true}); - } -}); - -/***/ }), - -/***/ 649: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $export = __webpack_require__(40) - , toObject = __webpack_require__(77) - , aFunction = __webpack_require__(166) - , $defineProperty = __webpack_require__(48); - -// B.2.2.3 Object.prototype.__defineSetter__(P, setter) -__webpack_require__(30) && $export($export.P + __webpack_require__(170), 'Object', { - __defineSetter__: function __defineSetter__(P, setter){ - $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true}); - } -}); - -/***/ }), - -/***/ 650: -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/tc39/proposal-object-values-entries -var $export = __webpack_require__(40) - , $entries = __webpack_require__(398)(true); - -$export($export.S, 'Object', { - entries: function entries(it){ - return $entries(it); - } -}); - -/***/ }), - -/***/ 651: -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/tc39/proposal-object-getownpropertydescriptors -var $export = __webpack_require__(40) - , ownKeys = __webpack_require__(640) - , toIObject = __webpack_require__(119) - , gOPD = __webpack_require__(171) - , createProperty = __webpack_require__(627); - -$export($export.S, 'Object', { - getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){ - var O = toIObject(object) - , getDesc = gOPD.f - , keys = ownKeys(O) - , result = {} - , i = 0 - , key; - while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key)); - return result; - } -}); - -/***/ }), - -/***/ 652: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $export = __webpack_require__(40) - , toObject = __webpack_require__(77) - , toPrimitive = __webpack_require__(173) - , getPrototypeOf = __webpack_require__(91) - , getOwnPropertyDescriptor = __webpack_require__(171).f; - -// B.2.2.4 Object.prototype.__lookupGetter__(P) -__webpack_require__(30) && $export($export.P + __webpack_require__(170), 'Object', { - __lookupGetter__: function __lookupGetter__(P){ - var O = toObject(this) - , K = toPrimitive(P, true) - , D; - do { - if(D = getOwnPropertyDescriptor(O, K))return D.get; - } while(O = getPrototypeOf(O)); - } -}); - -/***/ }), - -/***/ 653: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $export = __webpack_require__(40) - , toObject = __webpack_require__(77) - , toPrimitive = __webpack_require__(173) - , getPrototypeOf = __webpack_require__(91) - , getOwnPropertyDescriptor = __webpack_require__(171).f; - -// B.2.2.5 Object.prototype.__lookupSetter__(P) -__webpack_require__(30) && $export($export.P + __webpack_require__(170), 'Object', { - __lookupSetter__: function __lookupSetter__(P){ - var O = toObject(this) - , K = toPrimitive(P, true) - , D; - do { - if(D = getOwnPropertyDescriptor(O, K))return D.set; - } while(O = getPrototypeOf(O)); - } -}); - -/***/ }), - -/***/ 654: -/***/ (function(module, exports, __webpack_require__) { - -// https://github.com/tc39/proposal-object-values-entries -var $export = __webpack_require__(40) - , $values = __webpack_require__(398)(false); - -$export($export.S, 'Object', { - values: function values(it){ - return $values(it); - } -}); - -/***/ }), - -/***/ 655: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , toMetaKey = metadata.key - , ordinaryDefineOwnMetadata = metadata.set; - -metadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){ - ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); -}}); - -/***/ }), - -/***/ 656: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , toMetaKey = metadata.key - , getOrCreateMetadataMap = metadata.map - , store = metadata.store; - -metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){ - var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]) - , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); - if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false; - if(metadataMap.size)return true; - var targetMetadata = store.get(target); - targetMetadata['delete'](targetKey); - return !!targetMetadata.size || store['delete'](target); -}}); - -/***/ }), - -/***/ 657: -/***/ (function(module, exports, __webpack_require__) { - -var Set = __webpack_require__(646) - , from = __webpack_require__(621) - , metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , getPrototypeOf = __webpack_require__(91) - , ordinaryOwnMetadataKeys = metadata.keys - , toMetaKey = metadata.key; - -var ordinaryMetadataKeys = function(O, P){ - var oKeys = ordinaryOwnMetadataKeys(O, P) - , parent = getPrototypeOf(O); - if(parent === null)return oKeys; - var pKeys = ordinaryMetadataKeys(parent, P); - return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; -}; - -metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){ - return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); -}}); - -/***/ }), - -/***/ 658: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , getPrototypeOf = __webpack_require__(91) - , ordinaryHasOwnMetadata = metadata.has - , ordinaryGetOwnMetadata = metadata.get - , toMetaKey = metadata.key; - -var ordinaryGetMetadata = function(MetadataKey, O, P){ - var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); - if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P); - var parent = getPrototypeOf(O); - return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; -}; - -metadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){ - return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -}}); - -/***/ }), - -/***/ 659: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , ordinaryOwnMetadataKeys = metadata.keys - , toMetaKey = metadata.key; - -metadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){ - return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); -}}); - -/***/ }), - -/***/ 660: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , ordinaryGetOwnMetadata = metadata.get - , toMetaKey = metadata.key; - -metadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){ - return ordinaryGetOwnMetadata(metadataKey, anObject(target) - , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -}}); - -/***/ }), - -/***/ 661: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , getPrototypeOf = __webpack_require__(91) - , ordinaryHasOwnMetadata = metadata.has - , toMetaKey = metadata.key; - -var ordinaryHasMetadata = function(MetadataKey, O, P){ - var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); - if(hasOwn)return true; - var parent = getPrototypeOf(O); - return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; -}; - -metadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){ - return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -}}); - -/***/ }), - -/***/ 662: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , ordinaryHasOwnMetadata = metadata.has - , toMetaKey = metadata.key; - -metadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){ - return ordinaryHasOwnMetadata(metadataKey, anObject(target) - , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); -}}); - -/***/ }), - -/***/ 663: -/***/ (function(module, exports, __webpack_require__) { - -var metadata = __webpack_require__(47) - , anObject = __webpack_require__(17) - , aFunction = __webpack_require__(166) - , toMetaKey = metadata.key - , ordinaryDefineOwnMetadata = metadata.set; - -metadata.exp({metadata: function metadata(metadataKey, metadataValue){ - return function decorator(target, targetKey){ - ordinaryDefineOwnMetadata( - metadataKey, metadataValue, - (targetKey !== undefined ? anObject : aFunction)(target), - toMetaKey(targetKey) - ); - }; -}}); - -/***/ }), - -/***/ 77: -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(255); -module.exports = function(it){ - return Object(defined(it)); -}; - -/***/ }), - -/***/ 90: -/***/ (function(module, exports) { - -module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } -}; - -/***/ }), - -/***/ 91: -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(64) - , toObject = __webpack_require__(77) - , IE_PROTO = __webpack_require__(263)('IE_PROTO') - , ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13))) /***/ }) - -/******/ }); +/******/ ]); //# sourceMappingURL=polyfills.uhk.js.map \ No newline at end of file diff --git a/polyfills.uhk.js.map b/polyfills.uhk.js.map index 6d75029e..a8cf8f27 100644 --- a/polyfills.uhk.js.map +++ b/polyfills.uhk.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap ab0811480d90a1439d21","webpack:///./shared/src/polyfills.ts","webpack:///./~/core-js/modules/_core.js","webpack:///./~/core-js/modules/_ctx.js","webpack:///./~/core-js/modules/_redefine.js","webpack:///./~/core-js/modules/_to-iobject.js","webpack:///(webpack)/buildin/global.js","webpack:///./~/core-js/modules/_a-function.js","webpack:///./~/core-js/modules/_for-of.js","webpack:///./~/core-js/modules/_hide.js","webpack:///./~/core-js/modules/_meta.js","webpack:///./~/core-js/modules/_an-object.js","webpack:///./~/core-js/modules/_object-forced-pam.js","webpack:///./~/core-js/modules/_object-gopd.js","webpack:///./~/core-js/modules/_property-desc.js","webpack:///./~/core-js/modules/_to-primitive.js","webpack:///./~/core-js/modules/_uid.js","webpack:///./~/core-js/modules/_an-instance.js","webpack:///./~/core-js/modules/_cof.js","webpack:///./~/core-js/modules/_collection.js","webpack:///./~/core-js/modules/_defined.js","webpack:///./~/core-js/modules/_enum-bug-keys.js","webpack:///./~/core-js/modules/_iobject.js","webpack:///./~/core-js/modules/_iterators.js","webpack:///./~/core-js/modules/_object-keys.js","webpack:///./~/core-js/modules/_object-pie.js","webpack:///./~/core-js/modules/_redefine-all.js","webpack:///./~/core-js/modules/_set-to-string-tag.js","webpack:///./~/core-js/modules/_shared-key.js","webpack:///./~/core-js/modules/_shared.js","webpack:///./~/core-js/modules/_to-length.js","webpack:///./~/core-js/modules/_descriptors.js","webpack:///./~/process/browser.js","webpack:///./~/core-js/modules/_array-methods.js","webpack:///./~/core-js/modules/_collection-strong.js","webpack:///./~/core-js/modules/_dom-create.js","webpack:///./~/core-js/modules/_ie8-dom-define.js","webpack:///./~/core-js/modules/_library.js","webpack:///./~/core-js/modules/_object-create.js","webpack:///./~/core-js/modules/_object-gops.js","webpack:///./~/core-js/modules/_object-keys-internal.js","webpack:///./~/core-js/modules/_object-to-array.js","webpack:///./~/core-js/modules/_to-integer.js","webpack:///./~/core-js/modules/_export.js","webpack:///./~/core-js/modules/_global.js","webpack:///./~/core-js/modules/_is-object.js","webpack:///./~/core-js/es7/object.js","webpack:///./~/core-js/es7/reflect.js","webpack:///./~/zone.js/dist/zone.js","webpack:///./~/core-js/modules/_metadata.js","webpack:///./~/core-js/modules/_object-dp.js","webpack:///./~/core-js/modules/_wks.js","webpack:///./~/core-js/modules/_array-from-iterable.js","webpack:///./~/core-js/modules/_array-includes.js","webpack:///./~/core-js/modules/_array-species-constructor.js","webpack:///./~/core-js/modules/_array-species-create.js","webpack:///./~/core-js/modules/_classof.js","webpack:///./~/core-js/modules/_collection-weak.js","webpack:///./~/core-js/modules/_create-property.js","webpack:///./~/core-js/modules/_html.js","webpack:///./~/core-js/modules/_inherit-if-required.js","webpack:///./~/core-js/modules/_is-array-iter.js","webpack:///./~/core-js/modules/_is-array.js","webpack:///./~/core-js/modules/_iter-call.js","webpack:///./~/core-js/modules/_iter-create.js","webpack:///./~/core-js/modules/_iter-define.js","webpack:///./~/core-js/modules/_iter-detect.js","webpack:///./~/core-js/modules/_iter-step.js","webpack:///./~/core-js/modules/_object-assign.js","webpack:///./~/core-js/modules/_object-dps.js","webpack:///./~/core-js/modules/_object-gopn.js","webpack:///./~/core-js/modules/_has.js","webpack:///./~/core-js/modules/_own-keys.js","webpack:///./~/core-js/modules/_set-proto.js","webpack:///./~/core-js/modules/_set-species.js","webpack:///./~/core-js/modules/_to-index.js","webpack:///./~/core-js/modules/core.get-iterator-method.js","webpack:///./~/core-js/modules/es6.map.js","webpack:///./~/core-js/modules/es6.set.js","webpack:///./~/core-js/modules/es6.weak-map.js","webpack:///./~/core-js/modules/es7.object.define-getter.js","webpack:///./~/core-js/modules/es7.object.define-setter.js","webpack:///./~/core-js/modules/es7.object.entries.js","webpack:///./~/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./~/core-js/modules/es7.object.lookup-getter.js","webpack:///./~/core-js/modules/es7.object.lookup-setter.js","webpack:///./~/core-js/modules/es7.object.values.js","webpack:///./~/core-js/modules/es7.reflect.define-metadata.js","webpack:///./~/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.metadata.js","webpack:///./~/core-js/modules/_to-object.js","webpack:///./~/core-js/modules/_fails.js","webpack:///./~/core-js/modules/_object-gpo.js"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW;;AAEzE;AACA;;;;;;;;;;;AC/IA,yBAA4B;AAC5B,yBAA6B;AAC7B,yBAA2B;;;;;;;;ACF3B,6BAA6B;AAC7B,qCAAqC,gC;;;;;;;ACDrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC,E;;;;;;;AC/BD;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACLA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACpBA;AACA;AACA;AACA,E;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA,GAAG,2CAA2C,gCAAgC;AAC9E;AACA;AACA;AACA;AACA;AACA,wB;;;;;;;ACxBA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,E;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACpDA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA,CAAC,E;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACXA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;;ACJA,iBAAiB;;AAEjB;AACA;AACA,E;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,kCAAkC,gCAAgC,aAAa;AACtF,6BAA6B,mCAAmC,aAAa;AAC7E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2DAA2D;AAC3D;AACA,gDAAgD,iBAAiB,EAAE;AACnE;AACA,0DAA0D,aAAa,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,0B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,E;;;;;;;ACpFA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;AACA,a;;;;;;;ACHA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA,oB;;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACNA,cAAc,sB;;;;;;;ACAd;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;;AAEA;AACA,kEAAkE,+BAA+B;AACjG,E;;;;;;;ACNA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA,mDAAmD;AACnD;AACA,uCAAuC;AACvC,E;;;;;;;ACLA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,E;;;;;;;ACLA;AACA;AACA,iCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,CAAC,E;;;;;;;ACHD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe;AACxB;AACA;AACA;AACA,sCAAsC;AACtC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,+BAA+B;AACxC;AACA;AACA;AACA;AACA,E;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,E;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACNA;AACA,sEAAsE,gBAAgB,UAAU,GAAG;AACnG,CAAC,E;;;;;;;ACFD,uB;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACxCA,yC;;;;;;;ACAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,E;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,uBAAuB;AAC5G,mEAAmE;AACnE,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB,yB;;;;;;;AC1CA;AACA;AACA;AACA,uCAAuC,gC;;;;;;;ACHvC;AACA;AACA,E;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,kFAAkF,gEAAgE,EAAE;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,wBAAwB,oCAAoC;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAoD;AAC9F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,8BAA8B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB,EAAE;AACjF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,8FAA8F,aAAa,EAAE;AAC7G;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,uDAAuD,uDAAuD;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,qCAAqC,yBAAyB;AAC9D,+BAA+B,mBAAmB;AAClD,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,kCAAkC,sCAAsC;AACxE,iCAAiC,0CAA0C;AAC3E;AACA,iDAAiD,2FAA2F,EAAE;AAC9I,oDAAoD,qEAAqE,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uFAAuF;AACvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA,MAAM,EAAE;AACR,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,MAAM,EAAE;AACR,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0CAA0C;AACxG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;AC7iED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AClDA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA;AACA;AACA,E;;;;;;;ACfA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uB;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW,eAAe;AAC/B;AACA,KAAK;AACL;AACA,E;;;;;;;ACpBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;;ACfA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACLA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,E;;;;;;;;AClFA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;;ACPA,8E;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACPA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,E;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAAgF,aAAa,EAAE;;AAE/F;AACA,qDAAqD,0BAA0B;AAC/E;AACA,E;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,wCAAwC,oCAAoC;AAC5E,4CAA4C,oCAAoC;AAChF,KAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,E;;;;;;;ACrEA;AACA;;AAEA;AACA;AACA,+BAA+B,qBAAqB;AACpD,+BAA+B,SAAS,EAAE;AAC1C,CAAC,UAAU;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,mBAAmB;AACvD,+BAA+B,aAAa;AAC5C;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;;ACpBA;AACA,UAAU;AACV,E;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU,EAAE;AAC9C,mBAAmB,sCAAsC;AACzD,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,W;;;;;;;AChCD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACNA,uBAAuB;AACvB;AACA;AACA,E;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,E;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,GAAG;AACH,E;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;ACPA;AACA;;AAEA;AACA;AACA,wBAAwB,mEAAmE;AAC3F,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC,gB;;;;;;;;AChBD;AACA;;AAEA;AACA;AACA,wBAAwB,mEAAmE;AAC3F,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,U;;;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,C;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,6DAA6D;AACvG;AACA,CAAC,E;;;;;;;;ACXD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,6DAA6D;AACvG;AACA,CAAC,E;;;;;;;ACXD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,E;;;;;;;;ACjBD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,E;;;;;;;ACjBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;ACRD;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;ACPF;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,E;;;;;;;ACdF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;AClBF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;AChBF;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;ACPF;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,EAAE,E;;;;;;;ACRF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;ACfF;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,EAAE,E;;;;;;;ACRF;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,E;;;;;;;ACdF;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,E;;;;;;;ACNA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E","file":"polyfills.uhk.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length)\n \t\t\tresolves.shift()();\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".uhk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\thead.appendChild(script);\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1128);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ab0811480d90a1439d21","import 'core-js/es7/object';\r\nimport 'core-js/es7/reflect';\r\nimport 'zone.js/dist/zone';\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/angular2-template-loader!./shared/src/polyfills.ts","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_core.js\n// module id = 116\n// module chunks = 2","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ctx.js\n// module id = 117\n// module chunks = 2","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine.js\n// module id = 118\n// module chunks = 2","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-iobject.js\n// module id = 119\n// module chunks = 2","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 15\n// module chunks = 2","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_a-function.js\n// module id = 166\n// module chunks = 2","var ctx = require('./_ctx')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , anObject = require('./_an-object')\n , toLength = require('./_to-length')\n , getIterFn = require('./core.get-iterator-method')\n , BREAK = {}\n , RETURN = {};\nvar exports = module.exports = function(iterable, entries, fn, that, ITERATOR){\n var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator, result;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if(result === BREAK || result === RETURN)return result;\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n result = call(iterator, f, step.value, entries);\n if(result === BREAK || result === RETURN)return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_for-of.js\n// module id = 167\n// module chunks = 2","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_hide.js\n// module id = 168\n// module chunks = 2","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_meta.js\n// module id = 169\n// module chunks = 2","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-object.js\n// module id = 17\n// module chunks = 2","// Forced replacement prototype accessors methods\nmodule.exports = require('./_library')|| !require('./_fails')(function(){\n var K = Math.random();\n // In FF throws only define methods\n __defineSetter__.call(null, K, function(){ /* empty */});\n delete require('./_global')[K];\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-forced-pam.js\n// module id = 170\n// module chunks = 2","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopd.js\n// module id = 171\n// module chunks = 2","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_property-desc.js\n// module id = 172\n// module chunks = 2","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-primitive.js\n// module id = 173\n// module chunks = 2","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_uid.js\n// module id = 174\n// module chunks = 2","module.exports = function(it, Constructor, name, forbiddenField){\n if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-instance.js\n// module id = 252\n// module chunks = 2","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_cof.js\n// module id = 253\n// module chunks = 2","'use strict';\nvar global = require('./_global')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , redefineAll = require('./_redefine-all')\n , meta = require('./_meta')\n , forOf = require('./_for-of')\n , anInstance = require('./_an-instance')\n , isObject = require('./_is-object')\n , fails = require('./_fails')\n , $iterDetect = require('./_iter-detect')\n , setToStringTag = require('./_set-to-string-tag')\n , inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n var fixMethod = function(KEY){\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a){\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C\n // early implementations not supports chaining\n , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n , BUGGY_ZERO = !IS_WEAK && fails(function(){\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C()\n , index = 5;\n while(index--)$instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if(!ACCEPT_ITERABLES){ \n C = wrapper(function(target, iterable){\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base, target, C);\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);\n // weak collections should not contains .clear method\n if(IS_WEAK && proto.clear)delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection.js\n// module id = 254\n// module chunks = 2","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_defined.js\n// module id = 255\n// module chunks = 2","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-bug-keys.js\n// module id = 256\n// module chunks = 2","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iobject.js\n// module id = 257\n// module chunks = 2","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iterators.js\n// module id = 258\n// module chunks = 2","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys.js\n// module id = 259\n// module chunks = 2","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-pie.js\n// module id = 260\n// module chunks = 2","var redefine = require('./_redefine');\nmodule.exports = function(target, src, safe){\n for(var key in src)redefine(target, key, src[key], safe);\n return target;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine-all.js\n// module id = 261\n// module chunks = 2","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-to-string-tag.js\n// module id = 262\n// module chunks = 2","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared-key.js\n// module id = 263\n// module chunks = 2","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared.js\n// module id = 264\n// module chunks = 2","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-length.js\n// module id = 265\n// module chunks = 2","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_descriptors.js\n// module id = 30\n// module chunks = 2","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 32\n// module chunks = 2","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-methods.js\n// module id = 390\n// module chunks = 2","'use strict';\nvar dP = require('./_object-dp').f\n , create = require('./_object-create')\n , redefineAll = require('./_redefine-all')\n , ctx = require('./_ctx')\n , anInstance = require('./_an-instance')\n , defined = require('./_defined')\n , forOf = require('./_for-of')\n , $iterDefine = require('./_iter-define')\n , step = require('./_iter-step')\n , setSpecies = require('./_set-species')\n , DESCRIPTORS = require('./_descriptors')\n , fastKey = require('./_meta').fastKey\n , SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n anInstance(this, C, 'forEach');\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)dP(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-strong.js\n// module id = 391\n// module chunks = 2","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_dom-create.js\n// module id = 392\n// module chunks = 2","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ie8-dom-define.js\n// module id = 393\n// module chunks = 2","module.exports = false;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_library.js\n// module id = 394\n// module chunks = 2","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-create.js\n// module id = 395\n// module chunks = 2","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gops.js\n// module id = 396\n// module chunks = 2","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys-internal.js\n// module id = 397\n// module chunks = 2","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject')\n , isEnum = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n return function(it){\n var O = toIObject(it)\n , keys = getKeys(O)\n , length = keys.length\n , i = 0\n , result = []\n , key;\n while(length > i)if(isEnum.call(O, key = keys[i++])){\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-to-array.js\n// module id = 398\n// module chunks = 2","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-integer.js\n// module id = 399\n// module chunks = 2","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_export.js\n// module id = 40\n// module chunks = 2","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_global.js\n// module id = 41\n// module chunks = 2","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-object.js\n// module id = 42\n// module chunks = 2","require('../modules/es7.object.get-own-property-descriptors');\nrequire('../modules/es7.object.values');\nrequire('../modules/es7.object.entries');\nrequire('../modules/es7.object.define-getter');\nrequire('../modules/es7.object.define-setter');\nrequire('../modules/es7.object.lookup-getter');\nrequire('../modules/es7.object.lookup-setter');\nmodule.exports = require('../modules/_core').Object;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es7/object.js\n// module id = 465\n// module chunks = 2","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es7/reflect.js\n// module id = 466\n// module chunks = 2","/**\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(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\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 */\nvar Zone$1 = (function (global) {\n if (global['Zone']) {\n throw new Error('Zone already loaded.');\n }\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var Zone = (function () {\n function Zone(parent, zoneSpec) {\n this._properties = null;\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global.Promise !== ZoneAwarePromise) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n \n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = undefined; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this)\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = null;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n // if the task's state is notScheduled, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task.zone = this;\n task = this._zoneDelegate.scheduleTask(this, task);\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, null));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n task._transitionTo(canceling, scheduled, running);\n this._zoneDelegate.cancelTask(this, task);\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) {\n return delegate.hasTask(target, hasTaskState);\n },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) {\n return delegate.cancelTask(target, task);\n }\n };\n var ZoneDelegate = (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { microTask: 0, macroTask: 0, eventTask: 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n return this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts.microTask > 0,\n macroTask: counts.macroTask > 0,\n eventTask: counts.eventTask > 0,\n change: type\n };\n // TODO(misko): what should happen if it throws?\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this.zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n this.invoke = function () {\n _numberOfNestedTaskFrames++;\n try {\n self.runCount++;\n return self.zone.runTask(self, this, arguments);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n }\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ?\n ' or \\'' + fromState2 + '\\'' :\n '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId;\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n data: this.data,\n zone: this.zone.name,\n invoke: this.invoke,\n scheduleFn: this.scheduleFn,\n cancelFn: this.cancelFn,\n runCount: this.runCount,\n callback: this.callback\n };\n };\n return ZoneTask;\n }());\n var ZoneFrame = (function () {\n function ZoneFrame(parent, zone) {\n this.parent = parent;\n this.zone = zone;\n }\n return ZoneFrame;\n }());\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n \n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _currentZoneFrame = new ZoneFrame(null, new Zone(null, null));\n var _currentTask = null;\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var _uncaughtPromiseErrors = [];\n var _numberOfNestedTaskFrames = 0;\n function scheduleQueueDrain() {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (global[symbolPromise]) {\n global[symbolPromise].resolve(0)[symbolThen](drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n }\n function scheduleMicroTask(task) {\n scheduleQueueDrain();\n _microTaskQueue.push(task);\n }\n function consoleError(e) {\n if (Zone[__symbol__('ignoreConsoleErrorUncaughtError')]) {\n return;\n }\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n console.error(e);\n }\n function handleUnhandledRejection(e) {\n consoleError(e);\n try {\n var handler = Zone[__symbol__('unhandledPromiseRejectionHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [e]);\n }\n }\n catch (err) {\n }\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n consoleError(error);\n }\n }\n }\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n _isDrainingMicrotaskQueue = false;\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError('Promise resolved with itself');\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.apply(value, [\n onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))\n ]);\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n value[__symbol__('currentTask')] = Zone.currentTask;\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n throw new Error('Uncaught (in promise): ' + value +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n scheduleQueueDrain();\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[__symbol__('rejectionHandledHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [{ rejection: promise[symbolValue], promise: promise }]);\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var delegate = promise[symbolState] ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n resolvePromise(chainPromise, true, zone.run(delegate, undefined, [promise[symbolValue]]));\n }\n catch (error) {\n resolvePromise(chainPromise, false, error);\n }\n });\n }\n var ZoneAwarePromise = (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return 'function ZoneAwarePromise() { [native code] }';\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n _a = [res, rej], resolve = _a[0], reject = _a[1];\n var _a;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n var count = 0;\n var resolvedValues = [];\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then((function (index) { return function (value) {\n resolvedValues[index] = value;\n count--;\n if (!count) {\n resolve(resolvedValues);\n }\n }; })(count), reject);\n count++;\n }\n if (!count)\n resolve(resolvedValues);\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var Ctor = resultPromise.constructor;\n if (!Ctor[symbolThenPatched]) {\n patchThen(Ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is usefull for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n /*\n * This code patches Error so that:\n * - It ignores un-needed stack frames.\n * - It Shows the associated Zone for reach frame.\n */\n var FrameType;\n (function (FrameType) {\n /// Skip this frame when printing out stack\n FrameType[FrameType[\"blackList\"] = 0] = \"blackList\";\n /// This frame marks zone transition\n FrameType[FrameType[\"transition\"] = 1] = \"transition\";\n })(FrameType || (FrameType = {}));\n var NativeError = global[__symbol__('Error')] = global.Error;\n // Store the frames which should be removed from the stack frames\n var blackListedStackFrames = {};\n // We must find the frame where Error was created, otherwise we assume we don't understand stack\n var zoneAwareFrame;\n global.Error = ZoneAwareError;\n // How should the stack frames be parsed.\n var frameParserStrategy = null;\n var stackRewrite = 'stackRewrite';\n // fix #595, create property descriptor\n // for error properties\n var createProperty = function (props, key) {\n // if property is already defined, skip it.\n if (props[key]) {\n return;\n }\n // define a local property\n // in case error property is not settable\n var name = __symbol__(key);\n props[key] = {\n configurable: true,\n enumerable: true,\n get: function () {\n // if local property has no value\n // use internal error's property value\n if (!this[name]) {\n var error_2 = this[__symbol__('error')];\n if (error_2) {\n this[name] = error_2[key];\n }\n }\n return this[name];\n },\n set: function (value) {\n // setter will set value to local property value\n this[name] = value;\n }\n };\n };\n // fix #595, create property descriptor\n // for error method properties\n var createMethodProperty = function (props, key) {\n if (props[key]) {\n return;\n }\n props[key] = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function () {\n var error = this[__symbol__('error')];\n var errorMethod = (error && error[key]) || this[key];\n if (errorMethod) {\n return errorMethod.apply(error, arguments);\n }\n }\n };\n };\n var createErrorProperties = function () {\n var props = Object.create(null);\n var error = new NativeError();\n var keys = Object.getOwnPropertyNames(error);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(error, key)) {\n createProperty(props, key);\n }\n }\n var proto = NativeError.prototype;\n if (proto) {\n var pKeys = Object.getOwnPropertyNames(proto);\n for (var i = 0; i < pKeys.length; i++) {\n var key = pKeys[i];\n // skip constructor\n if (key !== 'constructor' && key !== 'toString' && key !== 'toSource') {\n createProperty(props, key);\n }\n }\n }\n // some other properties are not\n // in NativeError\n createProperty(props, 'originalStack');\n createProperty(props, 'zoneAwareStack');\n // define toString, toSource as method property\n createMethodProperty(props, 'toString');\n createMethodProperty(props, 'toSource');\n return props;\n };\n var errorProperties = createErrorProperties();\n // for derived Error class which extends ZoneAwareError\n // we should not override the derived class's property\n // so we create a new props object only copy the properties\n // from errorProperties which not exist in derived Error's prototype\n var getErrorPropertiesForPrototype = function (prototype) {\n // if the prototype is ZoneAwareError.prototype\n // we just return the prebuilt errorProperties.\n if (prototype === ZoneAwareError.prototype) {\n return errorProperties;\n }\n var newProps = Object.create(null);\n var cKeys = Object.getOwnPropertyNames(errorProperties);\n var keys = Object.getOwnPropertyNames(prototype);\n cKeys.forEach(function (cKey) {\n if (keys.filter(function (key) {\n return key === cKey;\n })\n .length === 0) {\n newProps[cKey] = errorProperties[cKey];\n }\n });\n return newProps;\n };\n /**\n * This is ZoneAwareError which processes the stack frame and cleans up extra frames as well as\n * adds zone information to it.\n */\n function ZoneAwareError() {\n // make sure we have a valid this\n // if this is undefined(call Error without new) or this is global\n // or this is some other objects, we should force to create a\n // valid ZoneAwareError by call Object.create()\n if (!(this instanceof ZoneAwareError)) {\n return ZoneAwareError.apply(Object.create(ZoneAwareError.prototype), arguments);\n }\n // Create an Error.\n var error = NativeError.apply(this, arguments);\n this[__symbol__('error')] = error;\n // Save original stack trace\n error.originalStack = error.stack;\n // Process the stack trace and rewrite the frames.\n if (ZoneAwareError[stackRewrite] && error.originalStack) {\n var frames_1 = error.originalStack.split('\\n');\n var zoneFrame = _currentZoneFrame;\n var i = 0;\n // Find the first frame\n while (frames_1[i] !== zoneAwareFrame && i < frames_1.length) {\n i++;\n }\n for (; i < frames_1.length && zoneFrame; i++) {\n var frame = frames_1[i];\n if (frame.trim()) {\n var frameType = blackListedStackFrames.hasOwnProperty(frame) && blackListedStackFrames[frame];\n if (frameType === FrameType.blackList) {\n frames_1.splice(i, 1);\n i--;\n }\n else if (frameType === FrameType.transition) {\n if (zoneFrame.parent) {\n // This is the special frame where zone changed. Print and process it accordingly\n frames_1[i] += \" [\" + zoneFrame.parent.zone.name + \" => \" + zoneFrame.zone.name + \"]\";\n zoneFrame = zoneFrame.parent;\n }\n else {\n zoneFrame = null;\n }\n }\n else {\n frames_1[i] += \" [\" + zoneFrame.zone.name + \"]\";\n }\n }\n }\n error.stack = error.zoneAwareStack = frames_1.join('\\n');\n }\n // use defineProperties here instead of copy property value\n // because of issue #595 which will break angular2.\n Object.defineProperties(this, getErrorPropertiesForPrototype(Object.getPrototypeOf(this)));\n return this;\n }\n // Copy the prototype so that instanceof operator works as expected\n ZoneAwareError.prototype = NativeError.prototype;\n ZoneAwareError[Zone.__symbol__('blacklistedStackFrames')] = blackListedStackFrames;\n ZoneAwareError[stackRewrite] = false;\n // those properties need special handling\n var specialPropertyNames = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace'];\n // those properties of NativeError should be set to ZoneAwareError\n var nativeErrorProperties = Object.keys(NativeError);\n if (nativeErrorProperties) {\n nativeErrorProperties.forEach(function (prop) {\n if (specialPropertyNames.filter(function (sp) { return sp === prop; }).length === 0) {\n Object.defineProperty(ZoneAwareError, prop, {\n get: function () {\n return NativeError[prop];\n },\n set: function (value) {\n NativeError[prop] = value;\n }\n });\n }\n });\n }\n if (NativeError.hasOwnProperty('stackTraceLimit')) {\n // Extend default stack limit as we will be removing few frames.\n NativeError.stackTraceLimit = Math.max(NativeError.stackTraceLimit, 15);\n // make sure that ZoneAwareError has the same property which forwards to NativeError.\n Object.defineProperty(ZoneAwareError, 'stackTraceLimit', {\n get: function () {\n return NativeError.stackTraceLimit;\n },\n set: function (value) {\n return NativeError.stackTraceLimit = value;\n }\n });\n }\n if (NativeError.hasOwnProperty('captureStackTrace')) {\n Object.defineProperty(ZoneAwareError, 'captureStackTrace', {\n // add named function here because we need to remove this\n // stack frame when prepareStackTrace below\n value: function zoneCaptureStackTrace(targetObject, constructorOpt) {\n NativeError.captureStackTrace(targetObject, constructorOpt);\n }\n });\n }\n Object.defineProperty(ZoneAwareError, 'prepareStackTrace', {\n get: function () {\n return NativeError.prepareStackTrace;\n },\n set: function (value) {\n if (!value || typeof value !== 'function') {\n return NativeError.prepareStackTrace = value;\n }\n return NativeError.prepareStackTrace = function (error, structuredStackTrace) {\n // remove additional stack information from ZoneAwareError.captureStackTrace\n if (structuredStackTrace) {\n for (var i = 0; i < structuredStackTrace.length; i++) {\n var st = structuredStackTrace[i];\n // remove the first function which name is zoneCaptureStackTrace\n if (st.getFunctionName() === 'zoneCaptureStackTrace') {\n structuredStackTrace.splice(i, 1);\n break;\n }\n }\n }\n return value.apply(this, [error, structuredStackTrace]);\n };\n }\n });\n // Now we need to populet the `blacklistedStackFrames` as well as find the\n // run/runGuraded/runTask frames. This is done by creating a detect zone and then threading\n // the execution through all of the above methods so that we can look at the stack trace and\n // find the frames of interest.\n var detectZone = Zone.current.fork({\n name: 'detect',\n onInvoke: function (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs, source) {\n // Here only so that it will show up in the stack frame so that it can be black listed.\n return parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n },\n onHandleError: function (parentZD, current, target, error) {\n if (error.originalStack && Error === ZoneAwareError) {\n var frames_2 = error.originalStack.split(/\\n/);\n var runFrame = false, runGuardedFrame = false, runTaskFrame = false;\n while (frames_2.length) {\n var frame = frames_2.shift();\n // On safari it is possible to have stack frame with no line number.\n // This check makes sure that we don't filter frames on name only (must have\n // linenumber)\n if (/:\\d+:\\d+/.test(frame)) {\n // Get rid of the path so that we don't accidintely find function name in path.\n // In chrome the seperator is `(` and `@` in FF and safari\n // Chrome: at Zone.run (zone.js:100)\n // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24)\n // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24\n // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24\n var fnName = frame.split('(')[0].split('@')[0];\n var frameType = FrameType.transition;\n if (fnName.indexOf('ZoneAwareError') !== -1) {\n zoneAwareFrame = frame;\n }\n if (fnName.indexOf('runGuarded') !== -1) {\n runGuardedFrame = true;\n }\n else if (fnName.indexOf('runTask') !== -1) {\n runTaskFrame = true;\n }\n else if (fnName.indexOf('run') !== -1) {\n runFrame = true;\n }\n else {\n frameType = FrameType.blackList;\n }\n blackListedStackFrames[frame] = frameType;\n // Once we find all of the frames we can stop looking.\n if (runFrame && runGuardedFrame && runTaskFrame) {\n ZoneAwareError[stackRewrite] = true;\n break;\n }\n }\n }\n }\n return false;\n }\n });\n // carefully constructor a stack frame which contains all of the frames of interest which\n // need to be detected and blacklisted.\n var detectRunFn = function () {\n detectZone.run(function () {\n detectZone.runGuarded(function () {\n throw new Error('blacklistStackFrames');\n });\n });\n };\n // Cause the error to extract the stack frames.\n detectZone.runTask(detectZone.scheduleMacroTask('detect', detectRunFn, null, function () { return null; }, null));\n return global['Zone'] = Zone;\n})(typeof window === 'object' && window || typeof self === 'object' && self || global);\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 */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis}\n */\nvar zoneSymbol = function (n) { return \"__zone_symbol__\" + n; };\nvar _global$1 = typeof window === 'object' && window || typeof self === 'object' && self || global;\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = Zone.current.wrap(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n prototype[name_1] = (function (delegate) {\n return function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\nvar isNode = (!('nw' in _global$1) && typeof process !== 'undefined' &&\n {}.toString.call(process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(typeof window !== 'undefined' && window['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\nvar isMix = typeof process !== 'undefined' &&\n {}.toString.call(process) === '[object process]' && !isWebWorker &&\n !!(typeof window !== 'undefined' && window['HTMLElement']);\nfunction patchProperty(obj, prop) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop) || { enumerable: true, configurable: true };\n var originalDesc = Object.getOwnPropertyDescriptor(obj, 'original' + prop);\n if (!originalDesc && desc.get) {\n Object.defineProperty(obj, 'original' + prop, { enumerable: false, configurable: true, get: desc.get });\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var _prop = zoneSymbol('_' + prop);\n desc.set = function (fn) {\n if (this[_prop]) {\n this.removeEventListener(eventName, this[_prop]);\n }\n if (typeof fn === 'function') {\n var wrapFn = function (event) {\n var result;\n result = fn.apply(this, arguments);\n if (result != undefined && !result)\n event.preventDefault();\n };\n this[_prop] = wrapFn;\n this.addEventListener(eventName, wrapFn, false);\n }\n else {\n this[_prop] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n var r = this[_prop] || null;\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n if (r === null) {\n if (originalDesc && originalDesc.get) {\n r = originalDesc.get.apply(this, arguments);\n if (r) {\n desc.set.apply(this, [r]);\n if (typeof this['removeAttribute'] === 'function') {\n this.removeAttribute(prop);\n }\n }\n }\n }\n return this[_prop] || null;\n };\n Object.defineProperty(obj, prop, desc);\n}\n\nfunction patchOnProperties(obj, properties) {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j]);\n }\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i]);\n }\n }\n}\n\nvar EVENT_TASKS = zoneSymbol('eventTasks');\n// For EventTarget\nvar ADD_EVENT_LISTENER = 'addEventListener';\nvar REMOVE_EVENT_LISTENER = 'removeEventListener';\nfunction findExistingRegisteredTask(target, handler, name, capture, remove) {\n var eventTasks = target[EVENT_TASKS];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var listener = data.handler;\n if ((data.handler === handler || listener.listener === handler) &&\n data.useCapturing === capture && data.eventName === name) {\n if (remove) {\n eventTasks.splice(i, 1);\n }\n return eventTask;\n }\n }\n }\n return null;\n}\nfunction attachRegisteredEvent(target, eventTask, isPrepend) {\n var eventTasks = target[EVENT_TASKS];\n if (!eventTasks) {\n eventTasks = target[EVENT_TASKS] = [];\n }\n if (isPrepend) {\n eventTasks.unshift(eventTask);\n }\n else {\n eventTasks.push(eventTask);\n }\n}\nvar defaultListenerMetaCreator = function (self, args) {\n return {\n useCapturing: args[2],\n eventName: args[0],\n handler: args[1],\n target: self || _global$1,\n name: args[0],\n invokeAddFunc: function (addFnSymbol, delegate) {\n if (delegate && delegate.invoke) {\n return this.target[addFnSymbol](this.eventName, delegate.invoke, this.useCapturing);\n }\n else {\n return this.target[addFnSymbol](this.eventName, delegate, this.useCapturing);\n }\n },\n invokeRemoveFunc: function (removeFnSymbol, delegate) {\n if (delegate && delegate.invoke) {\n return this.target[removeFnSymbol](this.eventName, delegate.invoke, this.useCapturing);\n }\n else {\n return this.target[removeFnSymbol](this.eventName, delegate, this.useCapturing);\n }\n }\n };\n};\nfunction makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, allowDuplicates, isPrepend, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (allowDuplicates === void 0) { allowDuplicates = false; }\n if (isPrepend === void 0) { isPrepend = false; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var addFnSymbol = zoneSymbol(addFnName);\n var removeFnSymbol = zoneSymbol(removeFnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n function scheduleEventListener(eventTask) {\n var meta = eventTask.data;\n attachRegisteredEvent(meta.target, eventTask, isPrepend);\n return meta.invokeAddFunc(addFnSymbol, eventTask);\n }\n function cancelEventListener(eventTask) {\n var meta = eventTask.data;\n findExistingRegisteredTask(meta.target, eventTask.invoke, meta.eventName, meta.useCapturing, true);\n return meta.invokeRemoveFunc(removeFnSymbol, eventTask);\n }\n return function zoneAwareAddListener(self, args) {\n var data = metaCreator(self, args);\n data.useCapturing = data.useCapturing || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var delegate = null;\n if (typeof data.handler == 'function') {\n delegate = data.handler;\n }\n else if (data.handler && data.handler.handleEvent) {\n delegate = function (event) { return data.handler.handleEvent(event); };\n }\n var validZoneHandler = false;\n try {\n // In cross site contexts (such as WebDriver frameworks like Selenium),\n // accessing the handler object here will cause an exception to be thrown which\n // will fail tests prematurely.\n validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]';\n }\n catch (error) {\n // Returning nothing here is fine, because objects in a cross-site context are unusable\n return;\n }\n // Ignore special listeners of IE11 & Edge dev tools, see\n // https://github.com/angular/zone.js/issues/150\n if (!delegate || validZoneHandler) {\n return data.invokeAddFunc(addFnSymbol, data.handler);\n }\n if (!allowDuplicates) {\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, false);\n if (eventTask) {\n // we already registered, so this will have noop.\n return data.invokeAddFunc(addFnSymbol, eventTask);\n }\n }\n var zone = Zone.current;\n var source = data.target.constructor['name'] + '.' + addFnName + ':' + data.eventName;\n zone.scheduleEventTask(source, delegate, data, scheduleEventListener, cancelEventListener);\n };\n}\nfunction makeZoneAwareRemoveListener(fnName, useCapturingParam, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var symbol = zoneSymbol(fnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n return function zoneAwareRemoveListener(self, args) {\n var data = metaCreator(self, args);\n data.useCapturing = data.useCapturing || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, true);\n if (eventTask) {\n eventTask.zone.cancelTask(eventTask);\n }\n else {\n data.invokeRemoveFunc(symbol, data.handler);\n }\n };\n}\n\n\nvar zoneAwareAddEventListener = makeZoneAwareAddListener(ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER);\nvar zoneAwareRemoveEventListener = makeZoneAwareRemoveListener(REMOVE_EVENT_LISTENER);\nfunction patchEventTargetMethods(obj, addFnName, removeFnName, metaCreator) {\n if (addFnName === void 0) { addFnName = ADD_EVENT_LISTENER; }\n if (removeFnName === void 0) { removeFnName = REMOVE_EVENT_LISTENER; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n if (obj && obj[addFnName]) {\n patchMethod(obj, addFnName, function () { return makeZoneAwareAddListener(addFnName, removeFnName, true, false, false, metaCreator); });\n patchMethod(obj, removeFnName, function () { return makeZoneAwareRemoveListener(removeFnName, true, metaCreator); });\n return true;\n }\n else {\n return false;\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global$1[className];\n if (!OriginalClass)\n return;\n _global$1[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global$1[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n Object.defineProperty(_global$1[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = Zone.current.wrap(fn, className + '.' + prop);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global$1[className][prop] = OriginalClass[prop];\n }\n }\n}\n\nfunction createNamedFn(name, delegate) {\n try {\n return (Function('f', \"return function \" + name + \"(){return f(this, arguments)}\"))(delegate);\n }\n catch (error) {\n // if we fail, we must be CSP, just return delegate.\n return function () {\n return delegate(this, arguments);\n };\n }\n}\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && Object.getOwnPropertyNames(proto).indexOf(name) === -1) {\n proto = Object.getPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n proto[name] = createNamedFn(name, patchFn(delegate, delegateName, name));\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\n\n\nfunction findEventTask(target, evtName) {\n var eventTasks = target[zoneSymbol('eventTasks')];\n var result = [];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var eventName = data && data.eventName;\n if (eventName === evtName) {\n result.push(eventTask);\n }\n }\n }\n return result;\n}\nZone[zoneSymbol('patchEventTargetMethods')] = patchEventTargetMethods;\nZone[zoneSymbol('patchOnProperties')] = patchOnProperties;\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 */\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n data.args[0] = function () {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n delete tasksByHandleId[data.handleId];\n }\n };\n data.handleId = setNative.apply(window, data.args);\n tasksByHandleId[data.handleId] = task;\n return task;\n }\n function clearTask(task) {\n delete tasksByHandleId[task.data.handleId];\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var zone = Zone.current;\n var options = {\n handleId: null,\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : null,\n args: args\n };\n var task = zone.scheduleMacroTask(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var task = typeof args[0] === 'number' ? tasksByHandleId[args[0]] : args[0];\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\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 */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\n\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\n\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n desc.configurable = true;\n if (!desc.configurable) {\n if (!obj[unconfigurablesKey]) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n obj[unconfigurablesKey][prop] = true;\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = descJson.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\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 */\nvar WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\nvar NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\nvar EVENT_TARGET = 'EventTarget';\nfunction eventTargetPatch(_global) {\n var apis = [];\n var isWtf = _global['wtf'];\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555.split(',').map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n patchEventTargetMethods(type && type.prototype);\n }\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 */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(_global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTargetMethods(WS.prototype);\n }\n _global.WebSocket = function (a, b) {\n var socket = arguments.length > 1 ? new WS(a, b) : new WS(a);\n var proxySocket;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = Object.getOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = Object.create(socket);\n ['addEventListener', 'removeEventListener', 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n return socket[propName].apply(socket, arguments);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open']);\n return proxySocket;\n };\n for (var prop in WS) {\n _global.WebSocket[prop] = WS[prop];\n }\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 */\nvar eventNames = 'copy cut paste abort blur focus canplay canplaythrough change click contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop durationchange emptied ended input invalid keydown keypress keyup load loadeddata loadedmetadata loadstart message mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup pause play playing progress ratechange reset scroll seeked seeking select show stalled submit suspend timeupdate volumechange waiting mozfullscreenchange mozfullscreenerror mozpointerlockchange mozpointerlockerror error webglcontextrestored webglcontextlost webglcontextcreationerror'\n .split(' ');\nfunction propertyDescriptorPatch(_global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n patchOnProperties(HTMLElement.prototype, eventNames);\n }\n patchOnProperties(XMLHttpRequest.prototype, null);\n if (typeof IDBIndex !== 'undefined') {\n patchOnProperties(IDBIndex.prototype, null);\n patchOnProperties(IDBRequest.prototype, null);\n patchOnProperties(IDBOpenDBRequest.prototype, null);\n patchOnProperties(IDBDatabase.prototype, null);\n patchOnProperties(IDBTransaction.prototype, null);\n patchOnProperties(IDBCursor.prototype, null);\n }\n if (supportsWebSocket) {\n patchOnProperties(WebSocket.prototype, null);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(_global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = Object.getOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var xhrDesc = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'onreadystatechange');\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', xhrDesc || {});\n return result;\n}\n\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = Zone.current.wrap(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n \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 */\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var _registerElement = document.registerElement;\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n document.registerElement = function (name, opts) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = 'Document.registerElement::' + callback;\n if (opts.prototype.hasOwnProperty(callback)) {\n var descriptor = Object.getOwnPropertyDescriptor(opts.prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = Zone.current.wrap(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n }\n else if (opts.prototype[callback]) {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n });\n }\n return _registerElement.apply(document, [name, opts]);\n };\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 */\nvar set = 'set';\nvar clear = 'clear';\nvar blockingMethods = ['alert', 'prompt', 'confirm'];\nvar _global = typeof window === 'object' && window || typeof self === 'object' && self || global;\npatchTimer(_global, set, clear, 'Timeout');\npatchTimer(_global, set, clear, 'Interval');\npatchTimer(_global, set, clear, 'Immediate');\npatchTimer(_global, 'request', 'cancel', 'AnimationFrame');\npatchTimer(_global, 'mozRequest', 'mozCancel', 'AnimationFrame');\npatchTimer(_global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\nfor (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(_global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, _global, args, name);\n };\n });\n}\neventTargetPatch(_global);\npropertyDescriptorPatch(_global);\npatchClass('MutationObserver');\npatchClass('WebKitMutationObserver');\npatchClass('FileReader');\npropertyPatch();\nregisterElementPatch(_global);\n// Treat XMLHTTPRequest as a macrotask.\npatchXHR(_global);\nvar XHR_TASK = zoneSymbol('xhrTask');\nvar XHR_SYNC = zoneSymbol('xhrSync');\nvar XHR_LISTENER = zoneSymbol('xhrListener');\nvar XHR_SCHEDULED = zoneSymbol('xhrScheduled');\nfunction patchXHR(window) {\n function findPendingTask(target) {\n var pendingTask = target[XHR_TASK];\n return pendingTask;\n }\n function scheduleTask(task) {\n XMLHttpRequest[XHR_SCHEDULED] = false;\n var data = task.data;\n // remove existing event listener\n var listener = data.target[XHR_LISTENER];\n if (listener) {\n data.target.removeEventListener('readystatechange', listener);\n }\n var newListener = data.target[XHR_LISTENER] = function () {\n if (data.target.readyState === data.target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && XMLHttpRequest[XHR_SCHEDULED] && task.state === 'scheduled') {\n task.invoke();\n }\n }\n };\n data.target.addEventListener('readystatechange', newListener);\n var storedTask = data.target[XHR_TASK];\n if (!storedTask) {\n data.target[XHR_TASK] = task;\n }\n sendNative.apply(data.target, data.args);\n XMLHttpRequest[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(window.XMLHttpRequest.prototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n return openNative.apply(self, args);\n }; });\n var sendNative = patchMethod(window.XMLHttpRequest.prototype, 'send', function () { return function (self, args) {\n var zone = Zone.current;\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, isPeriodic: false, delay: null, args: args, aborted: false };\n return zone.scheduleMacroTask('XMLHttpRequest.send', placeholderCallback, options, scheduleTask, clearTask);\n }\n }; });\n var abortNative = patchMethod(window.XMLHttpRequest.prototype, 'abort', function (delegate) { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no task\n // to cancel. Do nothing.\n }; });\n}\n/// GEO_LOCATION\nif (_global['navigator'] && _global['navigator'].geolocation) {\n patchPrototype(_global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n}\n// handle unhandled promise rejection\nfunction findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTask(_global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = _global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n}\nif (_global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\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 */\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/zone.js/dist/zone.js\n// module id = 469\n// module chunks = 2","var Map = require('./es6.map')\n , $export = require('./_export')\n , shared = require('./_shared')('metadata')\n , store = shared.store || (shared.store = new (require('./es6.weak-map')));\n\nvar getOrCreateMetadataMap = function(target, targetKey, create){\n var targetMetadata = store.get(target);\n if(!targetMetadata){\n if(!create)return undefined;\n store.set(target, targetMetadata = new Map);\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if(!keyMetadata){\n if(!create)return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map);\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function(target, targetKey){\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false)\n , keys = [];\n if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });\n return keys;\n};\nvar toMetaKey = function(it){\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function(O){\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_metadata.js\n// module id = 47\n// module chunks = 2","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dp.js\n// module id = 48\n// module chunks = 2","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks.js\n// module id = 49\n// module chunks = 2","var forOf = require('./_for-of');\n\nmodule.exports = function(iter, ITERATOR){\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-from-iterable.js\n// module id = 621\n// module chunks = 2","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-includes.js\n// module id = 622\n// module chunks = 2","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-constructor.js\n// module id = 623\n// module chunks = 2","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-create.js\n// module id = 624\n// module chunks = 2","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_classof.js\n// module id = 625\n// module chunks = 2","'use strict';\nvar redefineAll = require('./_redefine-all')\n , getWeak = require('./_meta').getWeak\n , anObject = require('./_an-object')\n , isObject = require('./_is-object')\n , anInstance = require('./_an-instance')\n , forOf = require('./_for-of')\n , createArrayMethod = require('./_array-methods')\n , $has = require('./_has')\n , arrayFind = createArrayMethod(5)\n , arrayFindIndex = createArrayMethod(6)\n , id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function(that){\n return that._l || (that._l = new UncaughtFrozenStore);\n};\nvar UncaughtFrozenStore = function(){\n this.a = [];\n};\nvar findUncaughtFrozen = function(store, key){\n return arrayFind(store.a, function(it){\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function(key){\n var entry = findUncaughtFrozen(this, key);\n if(entry)return entry[1];\n },\n has: function(key){\n return !!findUncaughtFrozen(this, key);\n },\n set: function(key, value){\n var entry = findUncaughtFrozen(this, key);\n if(entry)entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function(key){\n var index = arrayFindIndex(this.a, function(it){\n return it[0] === key;\n });\n if(~index)this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this)['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var data = getWeak(anObject(key), true);\n if(data === true)uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-weak.js\n// module id = 626\n// module chunks = 2","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_create-property.js\n// module id = 627\n// module chunks = 2","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_html.js\n// module id = 628\n// module chunks = 2","var isObject = require('./_is-object')\n , setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function(that, target, C){\n var P, S = target.constructor;\n if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_inherit-if-required.js\n// module id = 629\n// module chunks = 2","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array-iter.js\n// module id = 630\n// module chunks = 2","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array.js\n// module id = 631\n// module chunks = 2","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-call.js\n// module id = 632\n// module chunks = 2","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-create.js\n// module id = 633\n// module chunks = 2","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-define.js\n// module id = 634\n// module chunks = 2","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-detect.js\n// module id = 635\n// module chunks = 2","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-step.js\n// module id = 636\n// module chunks = 2","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-assign.js\n// module id = 637\n// module chunks = 2","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dps.js\n// module id = 638\n// module chunks = 2","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn.js\n// module id = 639\n// module chunks = 2","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_has.js\n// module id = 64\n// module chunks = 2","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn')\n , gOPS = require('./_object-gops')\n , anObject = require('./_an-object')\n , Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it){\n var keys = gOPN.f(anObject(it))\n , getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_own-keys.js\n// module id = 640\n// module chunks = 2","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-proto.js\n// module id = 641\n// module chunks = 2","'use strict';\nvar global = require('./_global')\n , dP = require('./_object-dp')\n , DESCRIPTORS = require('./_descriptors')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(KEY){\n var C = global[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-species.js\n// module id = 642\n// module chunks = 2","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-index.js\n// module id = 643\n// module chunks = 2","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.get-iterator-method.js\n// module id = 644\n// module chunks = 2","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')('Map', function(get){\n return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key){\n var entry = strong.getEntry(this, key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value){\n return strong.def(this, key === 0 ? 0 : key, value);\n }\n}, strong, true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.map.js\n// module id = 645\n// module chunks = 2","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.set.js\n// module id = 646\n// module chunks = 2","'use strict';\nvar each = require('./_array-methods')(0)\n , redefine = require('./_redefine')\n , meta = require('./_meta')\n , assign = require('./_object-assign')\n , weak = require('./_collection-weak')\n , isObject = require('./_is-object')\n , getWeak = meta.getWeak\n , isExtensible = Object.isExtensible\n , uncaughtFrozenStore = weak.ufstore\n , tmp = {}\n , InternalMap;\n\nvar wrapper = function(get){\n return function WeakMap(){\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key){\n if(isObject(key)){\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value){\n return weak.def(this, key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){\n InternalMap = weak.getConstructor(wrapper);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function(key){\n var proto = $WeakMap.prototype\n , method = proto[key];\n redefine(proto, key, function(a, b){\n // store frozen objects on internal weakmap shim\n if(isObject(a) && !isExtensible(a)){\n if(!this._f)this._f = new InternalMap;\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.weak-map.js\n// module id = 647\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter){\n $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.define-getter.js\n// module id = 648\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter){\n $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.define-setter.js\n// module id = 649\n// module chunks = 2","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it){\n return $entries(it);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.entries.js\n// module id = 650\n// module chunks = 2","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export')\n , ownKeys = require('./_own-keys')\n , toIObject = require('./_to-iobject')\n , gOPD = require('./_object-gopd')\n , createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){\n var O = toIObject(object)\n , getDesc = gOPD.f\n , keys = ownKeys(O)\n , result = {}\n , i = 0\n , key;\n while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));\n return result;\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.get-own-property-descriptors.js\n// module id = 651\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.get;\n } while(O = getPrototypeOf(O));\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.lookup-getter.js\n// module id = 652\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.set;\n } while(O = getPrototypeOf(O));\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.lookup-setter.js\n// module id = 653\n// module chunks = 2","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it){\n return $values(it);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.values.js\n// module id = 654\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.define-metadata.js\n// module id = 655\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , getOrCreateMetadataMap = metadata.map\n , store = metadata.store;\n\nmetadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])\n , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;\n if(metadataMap.size)return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.delete-metadata.js\n// module id = 656\n// module chunks = 2","var Set = require('./es6.set')\n , from = require('./_array-from-iterable')\n , metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function(O, P){\n var oKeys = ordinaryOwnMetadataKeys(O, P)\n , parent = getPrototypeOf(O);\n if(parent === null)return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata-keys.js\n// module id = 657\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata.js\n// module id = 658\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata-keys.js\n// module id = 659\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata.js\n// module id = 660\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-metadata.js\n// module id = 661\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nmetadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-own-metadata.js\n// module id = 662\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , aFunction = require('./_a-function')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({metadata: function metadata(metadataKey, metadataValue){\n return function decorator(target, targetKey){\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.metadata.js\n// module id = 663\n// module chunks = 2","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-object.js\n// module id = 77\n// module chunks = 2","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails.js\n// module id = 90\n// module chunks = 2","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gpo.js\n// module id = 91\n// module chunks = 2"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap d7098364caa9f38eb16a","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-forced-pam.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./shared/src/polyfills.ts","webpack:///./node_modules/core-js/es7/array.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_to-index.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/es7/object.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js","webpack:///./node_modules/core-js/modules/es7.object.define-getter.js","webpack:///./node_modules/core-js/modules/es7.object.define-setter.js","webpack:///./node_modules/core-js/modules/es7.object.lookup-getter.js","webpack:///./node_modules/core-js/modules/es7.object.lookup-setter.js","webpack:///./node_modules/core-js/es7/reflect.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/zone.js/dist/zone.js"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAA0C,WAAW,EAAE;AACvD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW;;AAEzE;AACA;;;;;;;;;;;;;;;;ACpJA;AACA;AACA;AACA;AACA,E;;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,uBAAuB;AAC5G,mEAAmE;AACnE,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB,yB;;;;;;AC1CA;AACA;AACA,iCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,CAAC,E;;;;;;;;;ACHD;AACA;AACA;AACA,uCAAuC,gC;;;;;;ACHvC;AACA;AACA,E;;;;;;ACFA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uB;;;;;;;ACVA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA;AACA;AACA,E;;;;;;ACfA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;;AClDA,uBAAuB;AACvB;AACA;AACA,E;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;;;;ACJA,6BAA6B;AAC7B,qCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC,E;;;;;;AC/BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA,E;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;ACfA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA,CAAC,E;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA,GAAG,2CAA2C,gCAAgC;AAC9E;AACA;AACA;AACA;AACA;AACA,wB;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA,E;;;;;;ACJA,iBAAiB;;AAEjB;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,E;;;;;;ACLA;AACA;AACA,mDAAmD;AACnD;AACA,uCAAuC;AACvC,E;;;;;;ACLA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA,a;;;;;;ACHA,cAAc,sB;;;;;;ACAd;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACJA,oB;;;;;;ACAA;AACA;AACA;;AAEA;AACA,kEAAkE,+BAA+B;AACjG,E;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,kCAAkC,gCAAgC,aAAa;AACtF,6BAA6B,mCAAmC,aAAa;AAC7E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2DAA2D;AAC3D;AACA,gDAAgD,iBAAiB,EAAE;AACnE;AACA,0DAA0D,aAAa,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,0B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFA;AACA,sEAAsE,gBAAgB,UAAU,GAAG;AACnG,CAAC,E;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW,eAAe;AAC/B;AACA,KAAK;AACL;AACA,E;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AChBA,yC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,E;;;;;;ACfA,uB;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,E;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe;AACxB;AACA;AACA;AACA,sCAAsC;AACtC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,+BAA+B;AACxC;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3CA,yBAA2B;AAC3B,yBAA4B;AAC5B,yBAA6B;AAC7B,yBAA2B;;;;;;;ACH3B;AACA,+C;;;;;;;ACDA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED,qC;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA,2FAAsF;AACtF;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACTA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACNA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;ACRD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;;ACRD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,6DAA6D;AACvG;AACA,CAAC,E;;;;;;;ACXD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,6DAA6D;AACvG;AACA,CAAC,E;;;;;;;ACXD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,E;;;;;;;ACjBD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,E;;;;;;ACjBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;ACPF;AACA;;AAEA;AACA;AACA,wBAAwB,mEAAmE;AAC3F,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC,gB;;;;;;AChBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACZA,8E;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,E;;;;;;ACXA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACPA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,wCAAwC,oCAAoC;AAC5E,4CAA4C,oCAAoC;AAChF,KAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,E;;;;;;;ACrEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2FAAgF,aAAa,EAAE;;AAE/F;AACA,qDAAqD,0BAA0B;AAC/E;AACA,E;;;;;;ACZA;AACA,UAAU;AACV,E;;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,GAAG;AACH,E;;;;;;ACZA;AACA;;AAEA;AACA;AACA,+BAA+B,qBAAqB;AACpD,+BAA+B,SAAS,EAAE;AAC1C,CAAC,UAAU;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,mBAAmB;AACvD,+BAA+B,aAAa;AAC5C;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,E;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,C;;;;;;ACvDA;AACA;;AAEA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACfA;AACA;AACA;AACA;AACA,E;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU,EAAE;AAC9C,mBAAmB,sCAAsC;AACzD,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,W;;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,E;;;;;;AClFA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,E;;;;;;ACdF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;AChBF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;;AClBF;AACA;;AAEA;AACA;AACA,wBAAwB,mEAAmE;AAC3F,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,U;;;;;;ACXD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,EAAE,E;;;;;;ACRF;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;ACPF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,EAAE,E;;;;;;ACfF;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,EAAE,E;;;;;;ACRF;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,E;;;;;;ACdF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,kFAAkF,gEAAgE,EAAE;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG,8CAA8C,cAAc,EAAE;AAC9D;AACA,kCAAkC,aAAa;AAC/C;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H,wBAAwB,oCAAoC;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAoD;AAC9F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,qCAAqC,yBAAyB;AAC9D,+BAA+B,mBAAmB;AAClD,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,+BAA+B,gCAAgC;AAC/D,kCAAkC,sCAAsC;AACxE,iCAAiC,0CAA0C;AAC3E;AACA,iDAAiD,2FAA2F,EAAE;AAC9I,oDAAoD,qEAAqE,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F;AAC3F;AACA;AACA,UAAU,EAAE;AACZ,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,UAAU,EAAE;AACZ,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0CAA0C;AAC5G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC","file":"polyfills.uhk.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".uhk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 256);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d7098364caa9f38eb16a","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_an-object.js\n// module id = 9\n// module chunks = 2","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 13\n// module chunks = 2","var global = require('./_global')\n , core = require('./_core')\n , hide = require('./_hide')\n , redefine = require('./_redefine')\n , ctx = require('./_ctx')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {})\n , key, own, out, exp;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if(target)redefine(target, key, out, type & $export.U);\n // export\n if(exports[key] != out)hide(exports, key, exp);\n if(IS_PROTO && expProto[key] != out)expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_export.js\n// module id = 18\n// module chunks = 2","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_descriptors.js\n// module id = 19\n// module chunks = 2","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_global.js\n// module id = 23\n// module chunks = 2","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-object.js\n// module id = 24\n// module chunks = 2","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_wks.js\n// module id = 25\n// module chunks = 2","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dp.js\n// module id = 27\n// module chunks = 2","var Map = require('./es6.map')\n , $export = require('./_export')\n , shared = require('./_shared')('metadata')\n , store = shared.store || (shared.store = new (require('./es6.weak-map')));\n\nvar getOrCreateMetadataMap = function(target, targetKey, create){\n var targetMetadata = store.get(target);\n if(!targetMetadata){\n if(!create)return undefined;\n store.set(target, targetMetadata = new Map);\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if(!keyMetadata){\n if(!create)return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map);\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function(MetadataKey, O, P){\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P){\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function(target, targetKey){\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false)\n , keys = [];\n if(metadataMap)metadataMap.forEach(function(_, key){ keys.push(key); });\n return keys;\n};\nvar toMetaKey = function(it){\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function(O){\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_metadata.js\n// module id = 28\n// module chunks = 2","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_has.js\n// module id = 36\n// module chunks = 2","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-object.js\n// module id = 41\n// module chunks = 2","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_core.js\n// module id = 51\n// module chunks = 2","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_fails.js\n// module id = 52\n// module chunks = 2","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gpo.js\n// module id = 53\n// module chunks = 2","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_hide.js\n// module id = 59\n// module chunks = 2","var global = require('./_global')\n , hide = require('./_hide')\n , has = require('./_has')\n , SRC = require('./_uid')('src')\n , TO_STRING = 'toString'\n , $toString = Function[TO_STRING]\n , TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function(it){\n return $toString.call(it);\n};\n\n(module.exports = function(O, key, val, safe){\n var isFunction = typeof val == 'function';\n if(isFunction)has(val, 'name') || hide(val, 'name', key);\n if(O[key] === val)return;\n if(isFunction)has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if(O === global){\n O[key] = val;\n } else {\n if(!safe){\n delete O[key];\n hide(O, key, val);\n } else {\n if(O[key])O[key] = val;\n else hide(O, key, val);\n }\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString(){\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_redefine.js\n// module id = 60\n// module chunks = 2","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ctx.js\n// module id = 61\n// module chunks = 2","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-iobject.js\n// module id = 62\n// module chunks = 2","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-primitive.js\n// module id = 77\n// module chunks = 2","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_property-desc.js\n// module id = 78\n// module chunks = 2","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_uid.js\n// module id = 79\n// module chunks = 2","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_a-function.js\n// module id = 80\n// module chunks = 2","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gopd.js\n// module id = 81\n// module chunks = 2","// Forced replacement prototype accessors methods\nmodule.exports = require('./_library')|| !require('./_fails')(function(){\n var K = Math.random();\n // In FF throws only define methods\n __defineSetter__.call(null, K, function(){ /* empty */});\n delete require('./_global')[K];\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-forced-pam.js\n// module id = 82\n// module chunks = 2","var ctx = require('./_ctx')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , anObject = require('./_an-object')\n , toLength = require('./_to-length')\n , getIterFn = require('./core.get-iterator-method')\n , BREAK = {}\n , RETURN = {};\nvar exports = module.exports = function(iterable, entries, fn, that, ITERATOR){\n var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator, result;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if(result === BREAK || result === RETURN)return result;\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n result = call(iterator, f, step.value, entries);\n if(result === BREAK || result === RETURN)return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_for-of.js\n// module id = 83\n// module chunks = 2","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_meta.js\n// module id = 84\n// module chunks = 2","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iobject.js\n// module id = 102\n// module chunks = 2","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_cof.js\n// module id = 103\n// module chunks = 2","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_defined.js\n// module id = 104\n// module chunks = 2","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-length.js\n// module id = 105\n// module chunks = 2","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared.js\n// module id = 106\n// module chunks = 2","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared-key.js\n// module id = 107\n// module chunks = 2","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_enum-bug-keys.js\n// module id = 108\n// module chunks = 2","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-pie.js\n// module id = 109\n// module chunks = 2","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys.js\n// module id = 110\n// module chunks = 2","var redefine = require('./_redefine');\nmodule.exports = function(target, src, safe){\n for(var key in src)redefine(target, key, src[key], safe);\n return target;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_redefine-all.js\n// module id = 111\n// module chunks = 2","module.exports = function(it, Constructor, name, forbiddenField){\n if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_an-instance.js\n// module id = 112\n// module chunks = 2","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iterators.js\n// module id = 113\n// module chunks = 2","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-to-string-tag.js\n// module id = 114\n// module chunks = 2","'use strict';\nvar global = require('./_global')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , redefineAll = require('./_redefine-all')\n , meta = require('./_meta')\n , forOf = require('./_for-of')\n , anInstance = require('./_an-instance')\n , isObject = require('./_is-object')\n , fails = require('./_fails')\n , $iterDetect = require('./_iter-detect')\n , setToStringTag = require('./_set-to-string-tag')\n , inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){\n var Base = global[NAME]\n , C = Base\n , ADDER = IS_MAP ? 'set' : 'add'\n , proto = C && C.prototype\n , O = {};\n var fixMethod = function(KEY){\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a){\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a){\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){\n new C().entries().next();\n }))){\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C\n // early implementations not supports chaining\n , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); })\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n , BUGGY_ZERO = !IS_WEAK && fails(function(){\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C()\n , index = 5;\n while(index--)$instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if(!ACCEPT_ITERABLES){ \n C = wrapper(function(target, iterable){\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base, target, C);\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER);\n // weak collections should not contains .clear method\n if(IS_WEAK && proto.clear)delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_collection.js\n// module id = 115\n// module chunks = 2","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ie8-dom-define.js\n// module id = 151\n// module chunks = 2","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_dom-create.js\n// module id = 152\n// module chunks = 2","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-includes.js\n// module id = 153\n// module chunks = 2","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-integer.js\n// module id = 154\n// module chunks = 2","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys-internal.js\n// module id = 155\n// module chunks = 2","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gops.js\n// module id = 156\n// module chunks = 2","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject')\n , isEnum = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n return function(it){\n var O = toIObject(it)\n , keys = getKeys(O)\n , length = keys.length\n , i = 0\n , result = []\n , key;\n while(length > i)if(isEnum.call(O, key = keys[i++])){\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-to-array.js\n// module id = 157\n// module chunks = 2","module.exports = false;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_library.js\n// module id = 158\n// module chunks = 2","'use strict';\nvar dP = require('./_object-dp').f\n , create = require('./_object-create')\n , redefineAll = require('./_redefine-all')\n , ctx = require('./_ctx')\n , anInstance = require('./_an-instance')\n , defined = require('./_defined')\n , forOf = require('./_for-of')\n , $iterDefine = require('./_iter-define')\n , step = require('./_iter-step')\n , setSpecies = require('./_set-species')\n , DESCRIPTORS = require('./_descriptors')\n , fastKey = require('./_meta').fastKey\n , SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function(that, key){\n // fast case\n var index = fastKey(key), entry;\n if(index !== 'F')return that._i[index];\n // frozen object case\n for(entry = that._f; entry; entry = entry.n){\n if(entry.k == key)return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear(){\n for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){\n entry.r = true;\n if(entry.p)entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function(key){\n var that = this\n , entry = getEntry(that, key);\n if(entry){\n var next = entry.n\n , prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if(prev)prev.n = next;\n if(next)next.p = prev;\n if(that._f == entry)that._f = next;\n if(that._l == entry)that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /*, that = undefined */){\n anInstance(this, C, 'forEach');\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)\n , entry;\n while(entry = entry ? entry.n : this._f){\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key){\n return !!getEntry(this, key);\n }\n });\n if(DESCRIPTORS)dP(C.prototype, 'size', {\n get: function(){\n return defined(this[SIZE]);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var entry = getEntry(that, key)\n , prev, index;\n // change existing entry\n if(entry){\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if(!that._f)that._f = entry;\n if(prev)prev.n = entry;\n that[SIZE]++;\n // add to index\n if(index !== 'F')that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function(C, NAME, IS_MAP){\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function(iterated, kind){\n this._t = iterated; // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function(){\n var that = this\n , kind = that._k\n , entry = that._l;\n // revert to the last existing entry\n while(entry && entry.r)entry = entry.p;\n // get next entry\n if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if(kind == 'keys' )return step(0, entry.k);\n if(kind == 'values')return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_collection-strong.js\n// module id = 159\n// module chunks = 2","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-create.js\n// module id = 160\n// module chunks = 2","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx')\n , IObject = require('./_iobject')\n , toObject = require('./_to-object')\n , toLength = require('./_to-length')\n , asc = require('./_array-species-create');\nmodule.exports = function(TYPE, $create){\n var IS_MAP = TYPE == 1\n , IS_FILTER = TYPE == 2\n , IS_SOME = TYPE == 3\n , IS_EVERY = TYPE == 4\n , IS_FIND_INDEX = TYPE == 6\n , NO_HOLES = TYPE == 5 || IS_FIND_INDEX\n , create = $create || asc;\n return function($this, callbackfn, that){\n var O = toObject($this)\n , self = IObject(O)\n , f = ctx(callbackfn, that, 3)\n , length = toLength(self.length)\n , index = 0\n , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined\n , val, res;\n for(;length > index; index++)if(NO_HOLES || index in self){\n val = self[index];\n res = f(val, index, O);\n if(TYPE){\n if(IS_MAP)result[index] = res; // map\n else if(res)switch(TYPE){\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if(IS_EVERY)return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-methods.js\n// module id = 161\n// module chunks = 2","import 'core-js/es7/array';\r\nimport 'core-js/es7/object';\r\nimport 'core-js/es7/reflect';\r\nimport 'zone.js/dist/zone';\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./shared/src/polyfills.ts","require('../modules/es7.array.includes');\nmodule.exports = require('../modules/_core').Array;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/es7/array.js\n// module id = 257\n// module chunks = 2","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export')\n , $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /*, fromIndex = 0 */){\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.array.includes.js\n// module id = 258\n// module chunks = 2","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-index.js\n// module id = 259\n// module chunks = 2","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_add-to-unscopables.js\n// module id = 260\n// module chunks = 2","require('../modules/es7.object.get-own-property-descriptors');\nrequire('../modules/es7.object.values');\nrequire('../modules/es7.object.entries');\nrequire('../modules/es7.object.define-getter');\nrequire('../modules/es7.object.define-setter');\nrequire('../modules/es7.object.lookup-getter');\nrequire('../modules/es7.object.lookup-setter');\nmodule.exports = require('../modules/_core').Object;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/es7/object.js\n// module id = 261\n// module chunks = 2","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export')\n , ownKeys = require('./_own-keys')\n , toIObject = require('./_to-iobject')\n , gOPD = require('./_object-gopd')\n , createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){\n var O = toIObject(object)\n , getDesc = gOPD.f\n , keys = ownKeys(O)\n , result = {}\n , i = 0\n , key;\n while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));\n return result;\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js\n// module id = 262\n// module chunks = 2","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn')\n , gOPS = require('./_object-gops')\n , anObject = require('./_an-object')\n , Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it){\n var keys = gOPN.f(anObject(it))\n , getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_own-keys.js\n// module id = 263\n// module chunks = 2","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gopn.js\n// module id = 264\n// module chunks = 2","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_create-property.js\n// module id = 265\n// module chunks = 2","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it){\n return $values(it);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.values.js\n// module id = 266\n// module chunks = 2","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export')\n , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it){\n return $entries(it);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.entries.js\n// module id = 267\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter){\n $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.define-getter.js\n// module id = 268\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , aFunction = require('./_a-function')\n , $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter){\n $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.define-setter.js\n// module id = 269\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.get;\n } while(O = getPrototypeOf(O));\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.lookup-getter.js\n// module id = 270\n// module chunks = 2","'use strict';\nvar $export = require('./_export')\n , toObject = require('./_to-object')\n , toPrimitive = require('./_to-primitive')\n , getPrototypeOf = require('./_object-gpo')\n , getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P){\n var O = toObject(this)\n , K = toPrimitive(P, true)\n , D;\n do {\n if(D = getOwnPropertyDescriptor(O, K))return D.set;\n } while(O = getPrototypeOf(O));\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.object.lookup-setter.js\n// module id = 271\n// module chunks = 2","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/es7/reflect.js\n// module id = 272\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.define-metadata.js\n// module id = 273\n// module chunks = 2","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')('Map', function(get){\n return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key){\n var entry = strong.getEntry(this, key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value){\n return strong.def(this, key === 0 ? 0 : key, value);\n }\n}, strong, true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.map.js\n// module id = 274\n// module chunks = 2","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dps.js\n// module id = 275\n// module chunks = 2","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_html.js\n// module id = 276\n// module chunks = 2","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-call.js\n// module id = 277\n// module chunks = 2","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array-iter.js\n// module id = 278\n// module chunks = 2","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/core.get-iterator-method.js\n// module id = 279\n// module chunks = 2","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_classof.js\n// module id = 280\n// module chunks = 2","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-define.js\n// module id = 281\n// module chunks = 2","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-create.js\n// module id = 282\n// module chunks = 2","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-step.js\n// module id = 283\n// module chunks = 2","'use strict';\nvar global = require('./_global')\n , dP = require('./_object-dp')\n , DESCRIPTORS = require('./_descriptors')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(KEY){\n var C = global[KEY];\n if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {\n configurable: true,\n get: function(){ return this; }\n });\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-species.js\n// module id = 284\n// module chunks = 2","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-detect.js\n// module id = 285\n// module chunks = 2","var isObject = require('./_is-object')\n , setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function(that, target, C){\n var P, S = target.constructor;\n if(S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf){\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_inherit-if-required.js\n// module id = 286\n// module chunks = 2","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-proto.js\n// module id = 287\n// module chunks = 2","'use strict';\nvar each = require('./_array-methods')(0)\n , redefine = require('./_redefine')\n , meta = require('./_meta')\n , assign = require('./_object-assign')\n , weak = require('./_collection-weak')\n , isObject = require('./_is-object')\n , getWeak = meta.getWeak\n , isExtensible = Object.isExtensible\n , uncaughtFrozenStore = weak.ufstore\n , tmp = {}\n , InternalMap;\n\nvar wrapper = function(get){\n return function WeakMap(){\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key){\n if(isObject(key)){\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value){\n return weak.def(this, key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')('WeakMap', wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){\n InternalMap = weak.getConstructor(wrapper);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function(key){\n var proto = $WeakMap.prototype\n , method = proto[key];\n redefine(proto, key, function(a, b){\n // store frozen objects on internal weakmap shim\n if(isObject(a) && !isExtensible(a)){\n if(!this._f)this._f = new InternalMap;\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.weak-map.js\n// module id = 288\n// module chunks = 2","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function(original, length){\n return new (speciesConstructor(original))(length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-species-create.js\n// module id = 289\n// module chunks = 2","var isObject = require('./_is-object')\n , isArray = require('./_is-array')\n , SPECIES = require('./_wks')('species');\n\nmodule.exports = function(original){\n var C;\n if(isArray(original)){\n C = original.constructor;\n // cross-realm fallback\n if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\n if(isObject(C)){\n C = C[SPECIES];\n if(C === null)C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-species-constructor.js\n// module id = 290\n// module chunks = 2","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array.js\n// module id = 291\n// module chunks = 2","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-assign.js\n// module id = 292\n// module chunks = 2","'use strict';\nvar redefineAll = require('./_redefine-all')\n , getWeak = require('./_meta').getWeak\n , anObject = require('./_an-object')\n , isObject = require('./_is-object')\n , anInstance = require('./_an-instance')\n , forOf = require('./_for-of')\n , createArrayMethod = require('./_array-methods')\n , $has = require('./_has')\n , arrayFind = createArrayMethod(5)\n , arrayFindIndex = createArrayMethod(6)\n , id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function(that){\n return that._l || (that._l = new UncaughtFrozenStore);\n};\nvar UncaughtFrozenStore = function(){\n this.a = [];\n};\nvar findUncaughtFrozen = function(store, key){\n return arrayFind(store.a, function(it){\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function(key){\n var entry = findUncaughtFrozen(this, key);\n if(entry)return entry[1];\n },\n has: function(key){\n return !!findUncaughtFrozen(this, key);\n },\n set: function(key, value){\n var entry = findUncaughtFrozen(this, key);\n if(entry)entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function(key){\n var index = arrayFindIndex(this.a, function(it){\n return it[0] === key;\n });\n if(~index)this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function(wrapper, NAME, IS_MAP, ADDER){\n var C = wrapper(function(that, iterable){\n anInstance(that, C, NAME, '_i');\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this)['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key){\n if(!isObject(key))return false;\n var data = getWeak(key);\n if(data === true)return uncaughtFrozenStore(this).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function(that, key, value){\n var data = getWeak(anObject(key), true);\n if(data === true)uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_collection-weak.js\n// module id = 293\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , toMetaKey = metadata.key\n , getOrCreateMetadataMap = metadata.map\n , store = metadata.store;\n\nmetadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])\n , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;\n if(metadataMap.size)return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.delete-metadata.js\n// module id = 294\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.get-metadata.js\n// module id = 295\n// module chunks = 2","var Set = require('./es6.set')\n , from = require('./_array-from-iterable')\n , metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function(O, P){\n var oKeys = ordinaryOwnMetadataKeys(O, P)\n , parent = getPrototypeOf(O);\n if(parent === null)return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js\n// module id = 296\n// module chunks = 2","'use strict';\nvar strong = require('./_collection-strong');\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')('Set', function(get){\n return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value){\n return strong.def(this, value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.set.js\n// module id = 297\n// module chunks = 2","var forOf = require('./_for-of');\n\nmodule.exports = function(iter, ITERATOR){\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-from-iterable.js\n// module id = 298\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryGetOwnMetadata = metadata.get\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.get-own-metadata.js\n// module id = 299\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryOwnMetadataKeys = metadata.keys\n , toMetaKey = metadata.key;\n\nmetadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js\n// module id = 300\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , getPrototypeOf = require('./_object-gpo')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function(MetadataKey, O, P){\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if(hasOwn)return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.has-metadata.js\n// module id = 301\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , ordinaryHasOwnMetadata = metadata.has\n , toMetaKey = metadata.key;\n\nmetadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.has-own-metadata.js\n// module id = 302\n// module chunks = 2","var metadata = require('./_metadata')\n , anObject = require('./_an-object')\n , aFunction = require('./_a-function')\n , toMetaKey = metadata.key\n , ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({metadata: function metadata(metadataKey, metadataValue){\n return function decorator(target, targetKey){\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.reflect.metadata.js\n// module id = 303\n// module chunks = 2","/**\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(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\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 */\nvar Zone$1 = (function (global) {\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n if (global['Zone']) {\n throw new Error('Zone already loaded.');\n }\n var Zone = (function () {\n function Zone(parent, zoneSpec) {\n this._properties = null;\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n \n Zone.__load_patch = function (name, fn) {\n if (patches.hasOwnProperty(name)) {\n throw Error('Already loaded patch: ' + name);\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n \n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = undefined; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n // we have to define an variable here, if not\n // typescript compiler will complain below\n var isNotScheduled = task.state === notScheduled;\n if (isNotScheduled && task.type === eventTask) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = null;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \" + this\n .name + \" which is descendants of the original zone \" + task.zone.name);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, null));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) {\n return delegate.hasTask(target, hasTaskState);\n },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) {\n return delegate.cancelTask(target, task);\n }\n };\n var ZoneDelegate = (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n return this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts.microTask > 0,\n macroTask: counts.macroTask > 0,\n eventTask: counts.eventTask > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this._zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n this.invoke = function () {\n _numberOfNestedTaskFrames++;\n try {\n self.runCount++;\n return self.zone.runTask(self, this, arguments);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n }\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ?\n ' or \\'' + fromState2 + '\\'' :\n '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId;\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n invoke: this.invoke,\n scheduleFn: this.scheduleFn,\n cancelFn: this.cancelFn,\n runCount: this.runCount,\n callback: this.callback\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (global[symbolPromise]) {\n global[symbolPromise].resolve(0)[symbolThen](drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n var showError = !Zone[__symbol__('ignoreConsoleErrorUncaughtError')];\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTargetMethods: function () { return false; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; }\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\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 */\nZone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n console.error(e);\n }\n };\n api.microtaskDrainDone = function () {\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n };\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[__symbol__('unhandledPromiseRejectionHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [e]);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError('Promise resolved with itself');\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.apply(value, [\n onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))\n ]);\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n value[__symbol__('currentTask')] = Zone.currentTask;\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n throw new Error('Uncaught (in promise): ' + value +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[__symbol__('rejectionHandledHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [{ rejection: promise[symbolValue], promise: promise }]);\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var delegate = promise[symbolState] ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n resolvePromise(chainPromise, true, zone.run(delegate, undefined, [promise[symbolValue]]));\n }\n catch (error) {\n resolvePromise(chainPromise, false, error);\n }\n });\n }\n var ZoneAwarePromise = (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return 'function ZoneAwarePromise() { [native code] }';\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n _a = [res, rej], resolve = _a[0], reject = _a[1];\n var _a;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n var count = 0;\n var resolvedValues = [];\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then((function (index) { return function (value) {\n resolvedValues[index] = value;\n count--;\n if (!count) {\n resolve(resolvedValues);\n }\n }; })(count), reject);\n count++;\n }\n if (!count)\n resolve(resolvedValues);\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch_1 = global['fetch'];\n if (typeof fetch_1 == 'function') {\n global['fetch'] = zoneify(fetch_1);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\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 */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis}\n */\nvar zoneSymbol = function (n) { return \"__zone_symbol__\" + n; };\nvar _global = typeof window === 'object' && window || typeof self === 'object' && self || global;\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = Zone.current.wrap(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidently browserify\n// this code.\nvar isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(typeof window !== 'undefined' && window['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidently browserify\n// this code.\nvar isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(typeof window !== 'undefined' && window['HTMLElement']);\nfunction patchProperty(obj, prop, prototype) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = Object.getOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var _prop = zoneSymbol('_' + prop);\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[_prop];\n if (previousValue) {\n target.removeEventListener(eventName, previousValue);\n }\n if (typeof newValue === 'function') {\n var wrapFn = function (event) {\n var result = newValue.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n return result;\n };\n target[_prop] = wrapFn;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[_prop] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n if (target.hasOwnProperty(_prop)) {\n return target[_prop];\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet && originalDescGet.apply(this);\n if (value) {\n desc.set.apply(this, [value]);\n if (typeof target['removeAttribute'] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n Object.defineProperty(obj, prop, desc);\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nvar EVENT_TASKS = zoneSymbol('eventTasks');\n// For EventTarget\nvar ADD_EVENT_LISTENER = 'addEventListener';\nvar REMOVE_EVENT_LISTENER = 'removeEventListener';\n// compare the EventListenerOptionsOrCapture\n// 1. if the options is usCapture: boolean, compare the useCpature values directly\n// 2. if the options is EventListerOptions, only compare the capture\nfunction compareEventListenerOptions(left, right) {\n var leftCapture = (typeof left === 'boolean') ?\n left :\n ((typeof left === 'object') ? (left && left.capture) : false);\n var rightCapture = (typeof right === 'boolean') ?\n right :\n ((typeof right === 'object') ? (right && right.capture) : false);\n return !!leftCapture === !!rightCapture;\n}\nfunction findExistingRegisteredTask(target, handler, name, options, remove) {\n var eventTasks = target[EVENT_TASKS];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var listener = data.handler;\n if ((data.handler === handler || listener.listener === handler) &&\n compareEventListenerOptions(data.options, options) && data.eventName === name) {\n if (remove) {\n eventTasks.splice(i, 1);\n }\n return eventTask;\n }\n }\n }\n return null;\n}\nfunction attachRegisteredEvent(target, eventTask, isPrepend) {\n var eventTasks = target[EVENT_TASKS];\n if (!eventTasks) {\n eventTasks = target[EVENT_TASKS] = [];\n }\n if (isPrepend) {\n eventTasks.unshift(eventTask);\n }\n else {\n eventTasks.push(eventTask);\n }\n}\nvar defaultListenerMetaCreator = function (self, args) {\n return {\n options: args[2],\n eventName: args[0],\n handler: args[1],\n target: self || _global,\n name: args[0],\n crossContext: false,\n invokeAddFunc: function (addFnSymbol, delegate) {\n // check if the data is cross site context, if it is, fallback to\n // remove the delegate directly and try catch error\n if (!this.crossContext) {\n if (delegate && delegate.invoke) {\n return this.target[addFnSymbol](this.eventName, delegate.invoke, this.options);\n }\n else {\n return this.target[addFnSymbol](this.eventName, delegate, this.options);\n }\n }\n else {\n // add a if/else branch here for performance concern, for most times\n // cross site context is false, so we don't need to try/catch\n try {\n return this.target[addFnSymbol](this.eventName, delegate, this.options);\n }\n catch (err) {\n // do nothing here is fine, because objects in a cross-site context are unusable\n }\n }\n },\n invokeRemoveFunc: function (removeFnSymbol, delegate) {\n // check if the data is cross site context, if it is, fallback to\n // remove the delegate directly and try catch error\n if (!this.crossContext) {\n if (delegate && delegate.invoke) {\n return this.target[removeFnSymbol](this.eventName, delegate.invoke, this.options);\n }\n else {\n return this.target[removeFnSymbol](this.eventName, delegate, this.options);\n }\n }\n else {\n // add a if/else branch here for performance concern, for most times\n // cross site context is false, so we don't need to try/catch\n try {\n return this.target[removeFnSymbol](this.eventName, delegate, this.options);\n }\n catch (err) {\n // do nothing here is fine, because objects in a cross-site context are unusable\n }\n }\n }\n };\n};\nfunction makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, allowDuplicates, isPrepend, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (allowDuplicates === void 0) { allowDuplicates = false; }\n if (isPrepend === void 0) { isPrepend = false; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var addFnSymbol = zoneSymbol(addFnName);\n var removeFnSymbol = zoneSymbol(removeFnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n function scheduleEventListener(eventTask) {\n var meta = eventTask.data;\n attachRegisteredEvent(meta.target, eventTask, isPrepend);\n return meta.invokeAddFunc(addFnSymbol, eventTask);\n }\n function cancelEventListener(eventTask) {\n var meta = eventTask.data;\n findExistingRegisteredTask(meta.target, eventTask.invoke, meta.eventName, meta.options, true);\n return meta.invokeRemoveFunc(removeFnSymbol, eventTask);\n }\n return function zoneAwareAddListener(self, args) {\n var data = metaCreator(self, args);\n data.options = data.options || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var delegate = null;\n if (typeof data.handler == 'function') {\n delegate = data.handler;\n }\n else if (data.handler && data.handler.handleEvent) {\n delegate = function (event) { return data.handler.handleEvent(event); };\n }\n var validZoneHandler = false;\n try {\n // In cross site contexts (such as WebDriver frameworks like Selenium),\n // accessing the handler object here will cause an exception to be thrown which\n // will fail tests prematurely.\n validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]';\n }\n catch (error) {\n // we can still try to add the data.handler even we are in cross site context\n data.crossContext = true;\n return data.invokeAddFunc(addFnSymbol, data.handler);\n }\n // Ignore special listeners of IE11 & Edge dev tools, see\n // https://github.com/angular/zone.js/issues/150\n if (!delegate || validZoneHandler) {\n return data.invokeAddFunc(addFnSymbol, data.handler);\n }\n if (!allowDuplicates) {\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.options, false);\n if (eventTask) {\n // we already registered, so this will have noop.\n return data.invokeAddFunc(addFnSymbol, eventTask);\n }\n }\n var zone = Zone.current;\n var source = data.target.constructor['name'] + '.' + addFnName + ':' + data.eventName;\n zone.scheduleEventTask(source, delegate, data, scheduleEventListener, cancelEventListener);\n };\n}\nfunction makeZoneAwareRemoveListener(fnName, useCapturingParam, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var symbol = zoneSymbol(fnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n return function zoneAwareRemoveListener(self, args) {\n var data = metaCreator(self, args);\n data.options = data.options || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var delegate = null;\n if (typeof data.handler == 'function') {\n delegate = data.handler;\n }\n else if (data.handler && data.handler.handleEvent) {\n delegate = function (event) { return data.handler.handleEvent(event); };\n }\n var validZoneHandler = false;\n try {\n // In cross site contexts (such as WebDriver frameworks like Selenium),\n // accessing the handler object here will cause an exception to be thrown which\n // will fail tests prematurely.\n validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]';\n }\n catch (error) {\n data.crossContext = true;\n return data.invokeRemoveFunc(symbol, data.handler);\n }\n // Ignore special listeners of IE11 & Edge dev tools, see\n // https://github.com/angular/zone.js/issues/150\n if (!delegate || validZoneHandler) {\n return data.invokeRemoveFunc(symbol, data.handler);\n }\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.options, true);\n if (eventTask) {\n eventTask.zone.cancelTask(eventTask);\n }\n else {\n data.invokeRemoveFunc(symbol, data.handler);\n }\n };\n}\n\n\nfunction patchEventTargetMethods(obj, addFnName, removeFnName, metaCreator) {\n if (addFnName === void 0) { addFnName = ADD_EVENT_LISTENER; }\n if (removeFnName === void 0) { removeFnName = REMOVE_EVENT_LISTENER; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n if (obj && obj[addFnName]) {\n patchMethod(obj, addFnName, function () { return makeZoneAwareAddListener(addFnName, removeFnName, true, false, false, metaCreator); });\n patchMethod(obj, removeFnName, function () { return makeZoneAwareRemoveListener(removeFnName, true, metaCreator); });\n return true;\n }\n else {\n return false;\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n Object.defineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = Zone.current.wrap(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = Object.getPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.callbackIndex] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.callbackIndex >= 0 && typeof args[meta.callbackIndex] === 'function') {\n var task = Zone.current.scheduleMacroTask(meta.name, args[meta.callbackIndex], meta, scheduleTask, null);\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n}\n\nfunction findEventTask(target, evtName) {\n var eventTasks = target[zoneSymbol('eventTasks')];\n var result = [];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var eventName = data && data.eventName;\n if (eventName === evtName) {\n result.push(eventTask);\n }\n }\n }\n return result;\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\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 */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', function (global, Zone, api) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n Function.prototype.toString = function () {\n if (typeof this === 'function') {\n var originalDelegate = this[zoneSymbol('OriginalDelegate')];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.apply(this[zoneSymbol('OriginalDelegate')], arguments);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[zoneSymbol('Promise')];\n if (nativePromise) {\n return originalFunctionToString.apply(nativePromise, arguments);\n }\n }\n if (this === Error) {\n var nativeError = global[zoneSymbol('Error')];\n if (nativeError) {\n return originalFunctionToString.apply(nativeError, arguments);\n }\n }\n }\n return originalFunctionToString.apply(this, arguments);\n };\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return '[object Promise]';\n }\n return originalObjectToString.apply(this, arguments);\n };\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 */\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n if (typeof data.handleId === 'number') {\n // Node returns complex objects as handleIds\n delete tasksByHandleId[data.handleId];\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n if (typeof data.handleId === 'number') {\n // Node returns complex objects as handleIds -> no need to keep them around. Additionally,\n // this throws an\n // exception in older node versions and has no effect there, because of the stringified key.\n tasksByHandleId[data.handleId] = task;\n }\n return task;\n }\n function clearTask(task) {\n if (typeof task.data.handleId === 'number') {\n // Node returns complex objects as handleIds\n delete tasksByHandleId[task.data.handleId];\n }\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var zone = Zone.current;\n var options = {\n handleId: null,\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : null,\n args: args\n };\n var task = zone.scheduleMacroTask(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var task = typeof args[0] === 'number' ? tasksByHandleId[args[0]] : args[0];\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\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 */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n desc.configurable = true;\n if (!desc.configurable) {\n if (!obj[unconfigurablesKey]) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n obj[unconfigurablesKey][prop] = true;\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = descJson.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\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 */\nvar WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\nvar NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\nvar EVENT_TARGET = 'EventTarget';\nfunction eventTargetPatch(_global) {\n var apis = [];\n var isWtf = _global['wtf'];\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555.split(',').map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n patchEventTargetMethods(type && type.prototype);\n }\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 */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(_global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTargetMethods(WS.prototype);\n }\n _global.WebSocket = function (a, b) {\n var socket = arguments.length > 1 ? new WS(a, b) : new WS(a);\n var proxySocket;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = Object.getOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = Object.create(socket);\n ['addEventListener', 'removeEventListener', 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n return socket[propName].apply(socket, arguments);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open']);\n return proxySocket;\n };\n for (var prop in WS) {\n _global['WebSocket'][prop] = WS[prop];\n }\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 */\nvar globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nvar documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange'\n];\nvar windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplyconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nvar htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nvar mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nvar ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nvar webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nvar formEventNames = ['autocomplete', 'autocompleteerror'];\nvar detailEventNames = ['toggle'];\nvar frameEventNames = ['load'];\nvar frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll'];\nvar marqueeEventNames = ['bounce', 'finish', 'start'];\nvar XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nvar IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nvar websocketEventNames = ['close', 'error', 'open', 'message'];\nvar eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\nfunction propertyDescriptorPatch(_global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchOnProperties(window, eventNames, Object.getPrototypeOf(window));\n patchOnProperties(Document.prototype, eventNames);\n if (typeof window['SVGElement'] !== 'undefined') {\n patchOnProperties(window['SVGElement'].prototype, eventNames);\n }\n patchOnProperties(Element.prototype, eventNames);\n patchOnProperties(HTMLElement.prototype, eventNames);\n patchOnProperties(HTMLMediaElement.prototype, mediaElementEventNames);\n patchOnProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames));\n patchOnProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames));\n patchOnProperties(HTMLFrameElement.prototype, frameEventNames);\n patchOnProperties(HTMLIFrameElement.prototype, frameEventNames);\n var HTMLMarqueeElement_1 = window['HTMLMarqueeElement'];\n if (HTMLMarqueeElement_1) {\n patchOnProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames);\n }\n }\n patchOnProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames);\n var XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchOnProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchOnProperties(IDBIndex.prototype, IDBIndexEventNames);\n patchOnProperties(IDBRequest.prototype, IDBIndexEventNames);\n patchOnProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames);\n patchOnProperties(IDBDatabase.prototype, IDBIndexEventNames);\n patchOnProperties(IDBTransaction.prototype, IDBIndexEventNames);\n patchOnProperties(IDBCursor.prototype, IDBIndexEventNames);\n }\n if (supportsWebSocket) {\n patchOnProperties(WebSocket.prototype, websocketEventNames);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(_global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = Object.getOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var xhrDesc = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'onreadystatechange');\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', xhrDesc || {});\n return result;\n }\n else {\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[zoneSymbol('fakeonreadystatechange')];\n },\n set: function (value) {\n this[zoneSymbol('fakeonreadystatechange')] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[zoneSymbol('fakeonreadystatechange')] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n}\n\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = Zone.current.wrap(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\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 */\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var _registerElement = document.registerElement;\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n document.registerElement = function (name, opts) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = 'Document.registerElement::' + callback;\n if (opts.prototype.hasOwnProperty(callback)) {\n var descriptor = Object.getOwnPropertyDescriptor(opts.prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = Zone.current.wrap(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n }\n else if (opts.prototype[callback]) {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n });\n }\n return _registerElement.apply(document, [name, opts]);\n };\n attachOriginToPatched(document.registerElement, _registerElement);\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 */\nZone.__load_patch('timers', function (global, Zone, api) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', function (global, Zone, api) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', function (global, Zone, api) {\n eventTargetPatch(global);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n patchEventTargetMethods(XMLHttpRequestEventTarget.prototype);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(global);\n propertyPatch();\n registerElementPatch(global);\n});\nZone.__load_patch('canvas', function (global, Zone, api) {\n var HTMLCanvasElement = global['HTMLCanvasElement'];\n if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype &&\n HTMLCanvasElement.prototype.toBlob) {\n patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) {\n return { name: 'HTMLCanvasElement.toBlob', target: self, callbackIndex: 0, args: args };\n });\n }\n});\nZone.__load_patch('XHR', function (global, Zone, api) {\n // Treat XMLHTTPRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol('xhrTask');\n var XHR_SYNC = zoneSymbol('xhrSync');\n var XHR_LISTENER = zoneSymbol('xhrListener');\n var XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n function patchXHR(window) {\n function findPendingTask(target) {\n var pendingTask = target[XHR_TASK];\n return pendingTask;\n }\n function scheduleTask(task) {\n XMLHttpRequest[XHR_SCHEDULED] = false;\n var data = task.data;\n // remove existing event listener\n var listener = data.target[XHR_LISTENER];\n var oriAddListener = data.target[zoneSymbol('addEventListener')];\n var oriRemoveListener = data.target[zoneSymbol('removeEventListener')];\n if (listener) {\n oriRemoveListener.apply(data.target, ['readystatechange', listener]);\n }\n var newListener = data.target[XHR_LISTENER] = function () {\n if (data.target.readyState === data.target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && XMLHttpRequest[XHR_SCHEDULED] &&\n task.state === 'scheduled') {\n task.invoke();\n }\n }\n };\n oriAddListener.apply(data.target, ['readystatechange', newListener]);\n var storedTask = data.target[XHR_TASK];\n if (!storedTask) {\n data.target[XHR_TASK] = task;\n }\n sendNative.apply(data.target, data.args);\n XMLHttpRequest[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(window.XMLHttpRequest.prototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n return openNative.apply(self, args);\n }; });\n var sendNative = patchMethod(window.XMLHttpRequest.prototype, 'send', function () { return function (self, args) {\n var zone = Zone.current;\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, isPeriodic: false, delay: null, args: args, aborted: false };\n return zone.scheduleMacroTask('XMLHttpRequest.send', placeholderCallback, options, scheduleTask, clearTask);\n }\n }; });\n var abortNative = patchMethod(window.XMLHttpRequest.prototype, 'abort', function (delegate) { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n});\nZone.__load_patch('geolocation', function (global, Zone, api) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', function (global, Zone, api) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTask(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\nZone.__load_patch('util', function (global, Zone, api) {\n api.patchEventTargetMethods = patchEventTargetMethods;\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\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 */\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/zone.js/dist/zone.js\n// module id = 304\n// module chunks = 2"],"sourceRoot":""} \ No newline at end of file diff --git a/vendor.uhk.js b/vendor.uhk.js index ca9914cb..b5945b5c 100644 --- a/vendor.uhk.js +++ b/vendor.uhk.js @@ -1,170 +1,12 @@ webpackJsonp([0],[ /* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_core__ = __webpack_require__(526); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "createPlatform", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["a"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "assertPlatform", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["b"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "destroyPlatform", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["c"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "getPlatform", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["d"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PlatformRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["e"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["f"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "enableProdMode", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["g"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "isDevMode", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["h"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "createPlatformFactory", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["i"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgProbeToken", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["j"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "APP_ID", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["k"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PACKAGE_ROOT_URL", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["l"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PLATFORM_INITIALIZER", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["m"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "APP_BOOTSTRAP_LISTENER", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["n"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "APP_INITIALIZER", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["o"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationInitStatus", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["p"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "DebugElement", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["q"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "DebugNode", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["r"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "asNativeElements", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["s"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "getDebugNode", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["t"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Testability", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["u"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TestabilityRegistry", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["v"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "setTestabilityGetter", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["w"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSLATIONS", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["x"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSLATIONS_FORMAT", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["y"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "LOCALE_ID", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["z"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationModule", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["A"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "wtfCreateScope", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["B"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "wtfLeave", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["C"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "wtfStartTimeRange", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["D"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "wtfEndTimeRange", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["E"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Type", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["F"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "EventEmitter", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["G"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorHandler", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["H"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationTransitionEvent", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["I"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationPlayer", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["J"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationStyles", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["K"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationKeyframe", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["L"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Sanitizer", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["M"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SecurityContext", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["N"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ANALYZE_FOR_ENTRY_COMPONENTS", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["O"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Attribute", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["P"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ContentChild", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["Q"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ContentChildren", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["R"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Query", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["S"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ViewChild", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["T"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ViewChildren", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["U"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["V"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Directive", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["W"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "HostBinding", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["X"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "HostListener", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["Y"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["Z"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Output", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_0"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Pipe", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_1"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AfterContentChecked", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_2"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AfterContentInit", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_3"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AfterViewChecked", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_4"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AfterViewInit", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_5"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "DoCheck", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_6"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "OnChanges", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_7"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "OnDestroy", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_8"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "OnInit", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_9"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CUSTOM_ELEMENTS_SCHEMA", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_10"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NO_ERRORS_SCHEMA", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_11"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgModule", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_12"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ViewEncapsulation", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_13"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Version", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_14"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_15"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Class", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_16"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "forwardRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_17"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "resolveForwardRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_18"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Injector", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_19"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ReflectiveInjector", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_20"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ResolvedReflectiveFactory", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_21"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ReflectiveKey", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_22"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "OpaqueToken", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_23"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Inject", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_24"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_25"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Injectable", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_26"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Self", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_27"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SkipSelf", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_28"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Host", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_29"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgZone", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_30"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "RenderComponentType", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_31"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Renderer", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_32"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "RootRenderer", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_33"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "COMPILER_OPTIONS", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_34"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Compiler", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_35"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CompilerFactory", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_36"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleWithComponentFactories", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_37"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentFactory", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_38"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_39"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentFactoryResolver", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_40"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ElementRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_41"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgModuleFactory", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_42"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgModuleRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_43"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgModuleFactoryLoader", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_44"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "getModuleFactory", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_45"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "QueryList", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_46"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SystemJsNgModuleLoader", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_47"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SystemJsNgModuleLoaderConfig", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_48"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TemplateRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_49"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ViewContainerRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_50"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "EmbeddedViewRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_51"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ViewRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_52"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectionStrategy", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_53"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectorRef", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_54"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CollectionChangeRecord", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_55"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultIterableDiffer", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_56"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "IterableDiffers", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_57"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "KeyValueChangeRecord", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_58"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "KeyValueDiffers", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_59"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleChange", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_60"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "WrappedValue", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_61"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "platformCore", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_62"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "__core_private__", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_63"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AUTO_STYLE", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_64"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationEntryMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_65"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationStateMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_66"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationStateDeclarationMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_67"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationStateTransitionMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_68"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_69"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationKeyframesSequenceMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_70"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationStyleMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_71"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationAnimateMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_72"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationWithStepsMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_73"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationSequenceMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_74"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupMetadata", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_75"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "animate", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_76"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "group", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_77"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "sequence", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_78"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "style", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_79"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "state", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_80"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_81"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_82"]; }); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return __WEBPACK_IMPORTED_MODULE_0__src_core__["_83"]; }); -/** - * @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 core package. - */ - -//# sourceMappingURL=index.js.map - -/***/ }), -/* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var root_1 = __webpack_require__(20); -var toSubscriber_1 = __webpack_require__(1007); -var observable_1 = __webpack_require__(128); +var root_1 = __webpack_require__(11); +var toSubscriber_1 = __webpack_require__(307); +var observable_1 = __webpack_require__(87); /** * A representation of any set of values over any amount of time. This the most basic building block * of RxJS. @@ -198,6 +40,120 @@ var Observable = (function () { observable.operator = operator; return observable; }; + /** + * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit. + * + * Use it when you have all these Observables, but still nothing is happening. + * + * `subscribe` is not a regular operator, but a method that calls Observables internal `subscribe` function. It + * might be for example a function that you passed to a {@link create} static factory, but most of the time it is + * a library implementation, which defines what and when will be emitted by an Observable. This means that calling + * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often + * thought. + * + * Apart from starting the execution of an Observable, this method allows you to listen for values + * that an Observable emits, as well as for when it completes or errors. You can achieve this in two + * following ways. + * + * The first way is creating an object that implements {@link Observer} interface. It should have methods + * defined by that interface, but note that it should be just a regular JavaScript object, which you can create + * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do + * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also + * that your object does not have to implement all methods. If you find yourself creating a method that doesn't + * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will + * be left uncaught. + * + * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods. + * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent + * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer, + * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`, + * since `subscribe` recognizes these functions by where they were placed in function call. When it comes + * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown. + * + * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object. + * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean + * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback + * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable. + * + * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously. + * It is an Observable itself that decides when these functions will be called. For example {@link of} + * by default emits all its values synchronously. Always check documentation for how given Observable + * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}. + * + * @example Subscribe with an Observer + * const sumObserver = { + * sum: 0, + * next(value) { + * console.log('Adding: ' + value); + * this.sum = this.sum + value; + * }, + * error() { // We actually could just remote this method, + * }, // since we do not really care about errors right now. + * complete() { + * console.log('Sum equals: ' + this.sum); + * } + * }; + * + * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes. + * .subscribe(sumObserver); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * + * + * @example Subscribe with functions + * let sum = 0; + * + * Rx.Observable.of(1, 2, 3) + * .subscribe( + * function(value) { + * console.log('Adding: ' + value); + * sum = sum + value; + * }, + * undefined, + * function() { + * console.log('Sum equals: ' + sum); + * } + * ); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * + * + * @example Cancel a subscription + * const subscription = Rx.Observable.interval(1000).subscribe( + * num => console.log(num), + * undefined, + * () => console.log('completed!') // Will not be called, even + * ); // when cancelling subscription + * + * + * setTimeout(() => { + * subscription.unsubscribe(); + * console.log('unsubscribed!'); + * }, 2500); + * + * // Logs: + * // 0 after 1s + * // 1 after 2s + * // "unsubscribed!" after 2,5s + * + * + * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called, + * or the first of three possible handlers, which is the handler for each value emitted from the subscribed + * Observable. + * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided, + * the error will be thrown as unhandled. + * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion. + * @return {ISubscription} a subscription reference to the registered handlers + * @method subscribe + */ Observable.prototype.subscribe = function (observerOrNext, error, complete) { var operator = this.operator; var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete); @@ -205,7 +161,7 @@ var Observable = (function () { operator.call(sink, this.source); } else { - sink.add(this._trySubscribe(sink)); + sink.add(this.source ? this._subscribe(sink) : this._trySubscribe(sink)); } if (sink.syncErrorThrowable) { sink.syncErrorThrowable = false; @@ -246,7 +202,10 @@ var Observable = (function () { throw new Error('no Promise impl found'); } return new PromiseCtor(function (resolve, reject) { - var subscription = _this.subscribe(function (value) { + // Must be declared in a separate statement to avoid a RefernceError when + // accessing subscription below in the closure due to Temporal Dead Zone. + var subscription; + subscription = _this.subscribe(function (value) { if (subscription) { // if there is a subscription, then we can surmise // the next handling is asynchronous. Any errors thrown @@ -280,7 +239,7 @@ var Observable = (function () { * @method Symbol.observable * @return {Observable} this instance of the observable */ - Observable.prototype[observable_1.$$observable] = function () { + Observable.prototype[observable_1.observable] = function () { return this; }; // HACK: Since TypeScript inherits static properties too, we have to @@ -301,6 +260,14951 @@ var Observable = (function () { exports.Observable = Observable; //# sourceMappingURL=Observable.js.map +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Class", function() { return Class; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPlatform", function() { return createPlatform; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assertPlatform", function() { return assertPlatform; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "destroyPlatform", function() { return destroyPlatform; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPlatform", function() { return getPlatform; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PlatformRef", function() { return PlatformRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationRef", function() { return ApplicationRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableProdMode", function() { return enableProdMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDevMode", function() { return isDevMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createPlatformFactory", function() { return createPlatformFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgProbeToken", function() { return NgProbeToken; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APP_ID", function() { return APP_ID; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PACKAGE_ROOT_URL", function() { return PACKAGE_ROOT_URL; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PLATFORM_INITIALIZER", function() { return PLATFORM_INITIALIZER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PLATFORM_ID", function() { return PLATFORM_ID; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APP_BOOTSTRAP_LISTENER", function() { return APP_BOOTSTRAP_LISTENER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "APP_INITIALIZER", function() { return APP_INITIALIZER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationInitStatus", function() { return ApplicationInitStatus; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DebugElement", function() { return DebugElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DebugNode", function() { return DebugNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asNativeElements", function() { return asNativeElements; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDebugNode", function() { return getDebugNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Testability", function() { return Testability; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TestabilityRegistry", function() { return TestabilityRegistry; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTestabilityGetter", function() { return setTestabilityGetter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSLATIONS", function() { return TRANSLATIONS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TRANSLATIONS_FORMAT", function() { return TRANSLATIONS_FORMAT; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOCALE_ID", function() { return LOCALE_ID; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MissingTranslationStrategy", function() { return MissingTranslationStrategy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApplicationModule", function() { return ApplicationModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wtfCreateScope", function() { return wtfCreateScope; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wtfLeave", function() { return wtfLeave; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wtfStartTimeRange", function() { return wtfStartTimeRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wtfEndTimeRange", function() { return wtfEndTimeRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Type", function() { return Type; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventEmitter", function() { return EventEmitter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorHandler", function() { return ErrorHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Sanitizer", function() { return Sanitizer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SecurityContext", function() { return SecurityContext; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ANALYZE_FOR_ENTRY_COMPONENTS", function() { return ANALYZE_FOR_ENTRY_COMPONENTS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Attribute", function() { return Attribute; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContentChild", function() { return ContentChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContentChildren", function() { return ContentChildren; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Query", function() { return Query; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewChild", function() { return ViewChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewChildren", function() { return ViewChildren; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return Component; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Directive", function() { return Directive; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HostBinding", function() { return HostBinding; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HostListener", function() { return HostListener; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return Input; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Output", function() { return Output; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Pipe", function() { return Pipe; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CUSTOM_ELEMENTS_SCHEMA", function() { return CUSTOM_ELEMENTS_SCHEMA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NO_ERRORS_SCHEMA", function() { return NO_ERRORS_SCHEMA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgModule", function() { return NgModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewEncapsulation", function() { return ViewEncapsulation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Version", function() { return Version; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forwardRef", function() { return forwardRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveForwardRef", function() { return resolveForwardRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Injector", function() { return Injector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReflectiveInjector", function() { return ReflectiveInjector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResolvedReflectiveFactory", function() { return ResolvedReflectiveFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReflectiveKey", function() { return ReflectiveKey; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InjectionToken", function() { return InjectionToken; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OpaqueToken", function() { return OpaqueToken; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Inject", function() { return Inject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return Optional; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Injectable", function() { return Injectable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Self", function() { return Self; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SkipSelf", function() { return SkipSelf; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Host", function() { return Host; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgZone", function() { return NgZone; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RenderComponentType", function() { return RenderComponentType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Renderer", function() { return Renderer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Renderer2", function() { return Renderer2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RendererFactory2", function() { return RendererFactory2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RendererStyleFlags2", function() { return RendererStyleFlags2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RootRenderer", function() { return RootRenderer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COMPILER_OPTIONS", function() { return COMPILER_OPTIONS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Compiler", function() { return Compiler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CompilerFactory", function() { return CompilerFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleWithComponentFactories", function() { return ModuleWithComponentFactories; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentFactory", function() { return ComponentFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentRef", function() { return ComponentRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentFactoryResolver", function() { return ComponentFactoryResolver; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ElementRef", function() { return ElementRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgModuleFactory", function() { return NgModuleFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgModuleRef", function() { return NgModuleRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgModuleFactoryLoader", function() { return NgModuleFactoryLoader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getModuleFactory", function() { return getModuleFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryList", function() { return QueryList; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SystemJsNgModuleLoader", function() { return SystemJsNgModuleLoader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SystemJsNgModuleLoaderConfig", function() { return SystemJsNgModuleLoaderConfig; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TemplateRef", function() { return TemplateRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewContainerRef", function() { return ViewContainerRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmbeddedViewRef", function() { return EmbeddedViewRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewRef", function() { return ViewRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectionStrategy", function() { return ChangeDetectionStrategy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectorRef", function() { return ChangeDetectorRef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultIterableDiffer", function() { return DefaultIterableDiffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IterableDiffers", function() { return IterableDiffers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyValueDiffers", function() { return KeyValueDiffers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleChange", function() { return SimpleChange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WrappedValue", function() { return WrappedValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "platformCore", function() { return platformCore; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵALLOW_MULTIPLE_PLATFORMS", function() { return ALLOW_MULTIPLE_PLATFORMS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵAPP_ID_RANDOM_PROVIDER", function() { return APP_ID_RANDOM_PROVIDER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵValueUnwrapper", function() { return ValueUnwrapper; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵdevModeEqual", function() { return devModeEqual; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵisListLikeIterable", function() { return isListLikeIterable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵChangeDetectorStatus", function() { return ChangeDetectorStatus; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵisDefaultChangeDetectionStrategy", function() { return isDefaultChangeDetectionStrategy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵConsole", function() { return Console; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵERROR_COMPONENT_TYPE", function() { return ERROR_COMPONENT_TYPE; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵComponentFactory", function() { return ComponentFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵCodegenComponentFactoryResolver", function() { return CodegenComponentFactoryResolver; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵViewMetadata", function() { return ViewMetadata; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵReflectionCapabilities", function() { return ReflectionCapabilities; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵRenderDebugInfo", function() { return RenderDebugInfo; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵglobal", function() { return _global; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵlooseIdentical", function() { return looseIdentical; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵstringify", function() { return stringify; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵmakeDecorator", function() { return makeDecorator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵisObservable", function() { return isObservable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵisPromise", function() { return isPromise; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵclearProviderOverrides", function() { return clearProviderOverrides; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵoverrideProvider", function() { return overrideProvider; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR", function() { return NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵregisterModuleFactory", function() { return registerModuleFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵEMPTY_ARRAY", function() { return EMPTY_ARRAY; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵEMPTY_MAP", function() { return EMPTY_MAP; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵand", function() { return anchorDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵccf", function() { return createComponentFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵcmf", function() { return createNgModuleFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵcrt", function() { return createRendererType2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵdid", function() { return directiveDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵeld", function() { return elementDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵelementEventFullName", function() { return elementEventFullName; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵgetComponentViewDefinitionFactory", function() { return getComponentViewDefinitionFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵinlineInterpolate", function() { return inlineInterpolate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵinterpolate", function() { return interpolate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵmod", function() { return moduleDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵmpd", function() { return moduleProvideDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵncd", function() { return ngContentDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵnov", function() { return nodeValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵpid", function() { return pipeDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵprd", function() { return providerDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵpad", function() { return pureArrayDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵpod", function() { return pureObjectDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵppd", function() { return purePipeDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵqud", function() { return queryDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵted", function() { return textDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵunv", function() { return unwrapValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵvid", function() { return viewDef; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AUTO_STYLE", function() { return AUTO_STYLE$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return trigger$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animate", function() { return animate$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "group", function() { return group$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequence", function() { return sequence$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "style", function() { return style$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "state", function() { return state$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyframes", function() { return keyframes$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return transition$$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵx", function() { return animate$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵy", function() { return group$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵbc", function() { return keyframes$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵz", function() { return sequence$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵbb", function() { return state$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵba", function() { return style$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵbd", function() { return transition$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵw", function() { return trigger$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵk", function() { return _iterableDiffersFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵl", function() { return _keyValueDiffersFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵm", function() { return _localeFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵe", function() { return ApplicationRef_; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵf", function() { return _appIdRandomProviderFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵg", function() { return defaultIterableDiffers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵh", function() { return defaultKeyValueDiffers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵi", function() { return DefaultIterableDifferFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵj", function() { return DefaultKeyValueDifferFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵb", function() { return ReflectiveInjector_; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵc", function() { return ReflectiveDependency; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵd", function() { return resolveReflectiveProviders; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵn", function() { return wtfEnabled; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵp", function() { return createScope$1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵo", function() { return detectWTF; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵs", function() { return endTimeRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵq", function() { return leave; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵr", function() { return startTimeRange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵa", function() { return makeParamDecorator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵt", function() { return _def; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵu", function() { return DebugContext; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tslib__ = __webpack_require__(29); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_merge__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_observable_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_share__ = __webpack_require__(118); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_share___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_share__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_Subject__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_Subject___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_Subject__); + +/** + * @license Angular v4.2.6 + * (c) 2010-2017 Google, Inc. https://angular.io/ + * License: MIT + */ + + + + +/** + * Creates a token that can be used in a DI Provider. + * + * ### Example ([live demo](http://plnkr.co/edit/Ys9ezXpj2Mnoy3Uc8KBp?p=preview)) + * + * ```typescript + * var t = new OpaqueToken("value"); + * + * var injector = Injector.resolveAndCreate([ + * {provide: t, useValue: "bindingValue"} + * ]); + * + * expect(injector.get(t)).toEqual("bindingValue"); + * ``` + * + * Using an `OpaqueToken` is preferable to using strings as tokens because of possible collisions + * caused by multiple providers using the same string as two different tokens. + * + * Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better + * error messages. + * @deprecated since v4.0.0 because it does not support type information, use `InjectionToken` + * instead. + */ +var OpaqueToken = (function () { + /** + * @param {?} _desc + */ + function OpaqueToken(_desc) { + this._desc = _desc; + } + /** + * @return {?} + */ + OpaqueToken.prototype.toString = function () { return "Token " + this._desc; }; + return OpaqueToken; +}()); +/** + * Creates a token that can be used in a DI Provider. + * + * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a + * runtime representation) such as when injecting an interface, callable type, array or + * parametrized type. + * + * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by + * the `Injector`. This provides additional level of type safety. + * + * ``` + * interface MyInterface {...} + * var myInterface = injector.get(new InjectionToken('SomeToken')); + * // myInterface is inferred to be MyInterface. + * ``` + * + * ### Example + * + * {\@example core/di/ts/injector_spec.ts region='InjectionToken'} + * + * \@stable + */ +var InjectionToken = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](InjectionToken, _super); + /** + * @param {?} desc + */ + function InjectionToken(desc) { + return _super.call(this, desc) || this; + } + /** + * @return {?} + */ + InjectionToken.prototype.toString = function () { return "InjectionToken " + this._desc; }; + return InjectionToken; +}(OpaqueToken)); +/** + * @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 __window = typeof window !== 'undefined' && window; +var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && + self instanceof WorkerGlobalScope && self; +var __global = typeof global !== 'undefined' && global; +var _global = __window || __global || __self; +var _symbolIterator = null; +/** + * @return {?} + */ +function getSymbolIterator() { + if (!_symbolIterator) { + var /** @type {?} */ Symbol = _global['Symbol']; + if (Symbol && Symbol.iterator) { + _symbolIterator = Symbol.iterator; + } + else { + // es6-shim specific logic + var /** @type {?} */ keys = Object.getOwnPropertyNames(Map.prototype); + for (var /** @type {?} */ i = 0; i < keys.length; ++i) { + var /** @type {?} */ key = keys[i]; + if (key !== 'entries' && key !== 'size' && + ((Map)).prototype[key] === Map.prototype['entries']) { + _symbolIterator = key; + } + } + } + } + return _symbolIterator; +} +/** + * @param {?} fn + * @return {?} + */ +function scheduleMicroTask(fn) { + Zone.current.scheduleMicroTask('scheduleMicrotask', fn); +} +/** + * @param {?} a + * @param {?} b + * @return {?} + */ +function looseIdentical(a, b) { + return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b); +} +/** + * @param {?} token + * @return {?} + */ +function stringify(token) { + if (typeof token === 'string') { + return token; + } + if (token == null) { + return '' + token; + } + if (token.overriddenName) { + return "" + token.overriddenName; + } + if (token.name) { + return "" + token.name; + } + var /** @type {?} */ res = token.toString(); + if (res == null) { + return '' + res; + } + var /** @type {?} */ newLineIndex = res.indexOf('\n'); + return newLineIndex === -1 ? res : res.substring(0, newLineIndex); +} +/** + * @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 _nextClassId = 0; +var Reflect = _global['Reflect']; +/** + * @param {?} annotation + * @return {?} + */ +function extractAnnotation(annotation) { + if (typeof annotation === 'function' && annotation.hasOwnProperty('annotation')) { + // it is a decorator, extract annotation + annotation = annotation.annotation; + } + return annotation; +} +/** + * @param {?} fnOrArray + * @param {?} key + * @return {?} + */ +function applyParams(fnOrArray, key) { + if (fnOrArray === Object || fnOrArray === String || fnOrArray === Function || + fnOrArray === Number || fnOrArray === Array) { + throw new Error("Can not use native " + stringify(fnOrArray) + " as constructor"); + } + if (typeof fnOrArray === 'function') { + return fnOrArray; + } + if (Array.isArray(fnOrArray)) { + var /** @type {?} */ annotations = (fnOrArray); + var /** @type {?} */ annoLength = annotations.length - 1; + var /** @type {?} */ fn = fnOrArray[annoLength]; + if (typeof fn !== 'function') { + throw new Error("Last position of Class method array must be Function in key " + key + " was '" + stringify(fn) + "'"); + } + if (annoLength != fn.length) { + throw new Error("Number of annotations (" + annoLength + ") does not match number of arguments (" + fn.length + ") in the function: " + stringify(fn)); + } + var /** @type {?} */ paramsAnnotations = []; + for (var /** @type {?} */ i = 0, /** @type {?} */ ii = annotations.length - 1; i < ii; i++) { + var /** @type {?} */ paramAnnotations = []; + paramsAnnotations.push(paramAnnotations); + var /** @type {?} */ annotation = annotations[i]; + if (Array.isArray(annotation)) { + for (var /** @type {?} */ j = 0; j < annotation.length; j++) { + paramAnnotations.push(extractAnnotation(annotation[j])); + } + } + else if (typeof annotation === 'function') { + paramAnnotations.push(extractAnnotation(annotation)); + } + else { + paramAnnotations.push(annotation); + } + } + Reflect.defineMetadata('parameters', paramsAnnotations, fn); + return fn; + } + throw new Error("Only Function or Array is supported in Class definition for key '" + key + "' is '" + stringify(fnOrArray) + "'"); +} +/** + * Provides a way for expressing ES6 classes with parameter annotations in ES5. + * + * ## Basic Example + * + * ``` + * var Greeter = ng.Class({ + * constructor: function(name) { + * this.name = name; + * }, + * + * greet: function() { + * alert('Hello ' + this.name + '!'); + * } + * }); + * ``` + * + * is equivalent to ES6: + * + * ``` + * class Greeter { + * constructor(name) { + * this.name = name; + * } + * + * greet() { + * alert('Hello ' + this.name + '!'); + * } + * } + * ``` + * + * or equivalent to ES5: + * + * ``` + * var Greeter = function (name) { + * this.name = name; + * } + * + * Greeter.prototype.greet = function () { + * alert('Hello ' + this.name + '!'); + * } + * ``` + * + * ### Example with parameter annotations + * + * ``` + * var MyService = ng.Class({ + * constructor: [String, [new Optional(), Service], function(name, myService) { + * ... + * }] + * }); + * ``` + * + * is equivalent to ES6: + * + * ``` + * class MyService { + * constructor(name: string, \@Optional() myService: Service) { + * ... + * } + * } + * ``` + * + * ### Example with inheritance + * + * ``` + * var Shape = ng.Class({ + * constructor: (color) { + * this.color = color; + * } + * }); + * + * var Square = ng.Class({ + * extends: Shape, + * constructor: function(color, size) { + * Shape.call(this, color); + * this.size = size; + * } + * }); + * ``` + * @suppress {globalThis} + * \@stable + * @param {?} clsDef + * @return {?} + */ +function Class(clsDef) { + var /** @type {?} */ constructor = applyParams(clsDef.hasOwnProperty('constructor') ? clsDef.constructor : undefined, 'constructor'); + var /** @type {?} */ proto = constructor.prototype; + if (clsDef.hasOwnProperty('extends')) { + if (typeof clsDef.extends === 'function') { + ((constructor)).prototype = proto = + Object.create(((clsDef.extends)).prototype); + } + else { + throw new Error("Class definition 'extends' property must be a constructor function was: " + stringify(clsDef.extends)); + } + } + for (var /** @type {?} */ key in clsDef) { + if (key !== 'extends' && key !== 'prototype' && clsDef.hasOwnProperty(key)) { + proto[key] = applyParams(clsDef[key], key); + } + } + if (this && this.annotations instanceof Array) { + Reflect.defineMetadata('annotations', this.annotations, constructor); + } + var /** @type {?} */ constructorName = constructor['name']; + if (!constructorName || constructorName === 'constructor') { + ((constructor))['overriddenName'] = "class" + _nextClassId++; + } + return (constructor); +} +/** + * @suppress {globalThis} + * @param {?} name + * @param {?=} props + * @param {?=} parentClass + * @param {?=} chainFn + * @return {?} + */ +function makeDecorator(name, props, parentClass, chainFn) { + var /** @type {?} */ metaCtor = makeMetadataCtor(props); + /** + * @param {?} objOrType + * @return {?} + */ + function DecoratorFactory(objOrType) { + if (!(Reflect && Reflect.getOwnMetadata)) { + throw 'reflect-metadata shim is required when using class decorators'; + } + if (this instanceof DecoratorFactory) { + metaCtor.call(this, objOrType); + return this; + } + var /** @type {?} */ annotationInstance = new ((DecoratorFactory))(objOrType); + var /** @type {?} */ chainAnnotation = typeof this === 'function' && Array.isArray(this.annotations) ? this.annotations : []; + chainAnnotation.push(annotationInstance); + var /** @type {?} */ TypeDecorator = (function TypeDecorator(cls) { + var /** @type {?} */ annotations = Reflect.getOwnMetadata('annotations', cls) || []; + annotations.push(annotationInstance); + Reflect.defineMetadata('annotations', annotations, cls); + return cls; + }); + TypeDecorator.annotations = chainAnnotation; + TypeDecorator.Class = Class; + if (chainFn) + chainFn(TypeDecorator); + return TypeDecorator; + } + if (parentClass) { + DecoratorFactory.prototype = Object.create(parentClass.prototype); + } + DecoratorFactory.prototype.toString = function () { return "@" + name; }; + ((DecoratorFactory)).annotationCls = DecoratorFactory; + return DecoratorFactory; +} +/** + * @param {?=} props + * @return {?} + */ +function makeMetadataCtor(props) { + return function ctor() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (props) { + var /** @type {?} */ values = props.apply(void 0, args); + for (var /** @type {?} */ propName in values) { + this[propName] = values[propName]; + } + } + }; +} +/** + * @param {?} name + * @param {?=} props + * @param {?=} parentClass + * @return {?} + */ +function makeParamDecorator(name, props, parentClass) { + var /** @type {?} */ metaCtor = makeMetadataCtor(props); + /** + * @param {...?} args + * @return {?} + */ + function ParamDecoratorFactory() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (this instanceof ParamDecoratorFactory) { + metaCtor.apply(this, args); + return this; + } + var /** @type {?} */ annotationInstance = new (((ParamDecoratorFactory)).bind.apply(((ParamDecoratorFactory)), [void 0].concat(args)))(); + ((ParamDecorator)).annotation = annotationInstance; + return ParamDecorator; + /** + * @param {?} cls + * @param {?} unusedKey + * @param {?} index + * @return {?} + */ + function ParamDecorator(cls, unusedKey, index) { + var /** @type {?} */ parameters = Reflect.getOwnMetadata('parameters', cls) || []; + // there might be gaps if some in between parameters do not have annotations. + // we pad with nulls. + while (parameters.length <= index) { + parameters.push(null); + } + parameters[index] = parameters[index] || []; /** @type {?} */ + ((parameters[index])).push(annotationInstance); + Reflect.defineMetadata('parameters', parameters, cls); + return cls; + } + } + if (parentClass) { + ParamDecoratorFactory.prototype = Object.create(parentClass.prototype); + } + ParamDecoratorFactory.prototype.toString = function () { return "@" + name; }; + ((ParamDecoratorFactory)).annotationCls = ParamDecoratorFactory; + return ParamDecoratorFactory; +} +/** + * @param {?} name + * @param {?=} props + * @param {?=} parentClass + * @return {?} + */ +function makePropDecorator(name, props, parentClass) { + var /** @type {?} */ metaCtor = makeMetadataCtor(props); + /** + * @param {...?} args + * @return {?} + */ + function PropDecoratorFactory() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (this instanceof PropDecoratorFactory) { + metaCtor.apply(this, args); + return this; + } + var /** @type {?} */ decoratorInstance = new (((PropDecoratorFactory)).bind.apply(((PropDecoratorFactory)), [void 0].concat(args)))(); + return function PropDecorator(target, name) { + var /** @type {?} */ meta = Reflect.getOwnMetadata('propMetadata', target.constructor) || {}; + meta[name] = meta.hasOwnProperty(name) && meta[name] || []; + meta[name].unshift(decoratorInstance); + Reflect.defineMetadata('propMetadata', meta, target.constructor); + }; + } + if (parentClass) { + PropDecoratorFactory.prototype = Object.create(parentClass.prototype); + } + PropDecoratorFactory.prototype.toString = function () { return "@" + name; }; + ((PropDecoratorFactory)).annotationCls = PropDecoratorFactory; + return PropDecoratorFactory; +} +/** + * @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 + */ +/** + * This token can be used to create a virtual provider that will populate the + * `entryComponents` fields of components and ng modules based on its `useValue`. + * All components that are referenced in the `useValue` value (either directly + * or in a nested array or map) will be added to the `entryComponents` property. + * + * ### Example + * The following example shows how the router can populate the `entryComponents` + * field of an NgModule based on the router configuration which refers + * to components. + * + * ```typescript + * // helper function inside the router + * function provideRoutes(routes) { + * return [ + * {provide: ROUTES, useValue: routes}, + * {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true} + * ]; + * } + * + * // user code + * let routes = [ + * {path: '/root', component: RootComp}, + * {path: '/teams', component: TeamsComp} + * ]; + * + * \@NgModule({ + * providers: [provideRoutes(routes)] + * }) + * class ModuleWithRoutes {} + * ``` + * + * \@experimental + */ +var ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponents'); +/** + * Attribute decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Attribute = makeParamDecorator('Attribute', function (attributeName) { return ({ attributeName: attributeName }); }); +/** + * Base class for query metadata. + * + * See {\@link ContentChildren}, {\@link ContentChild}, {\@link ViewChildren}, {\@link ViewChild} for + * more information. + * + * \@stable + * @abstract + */ +var Query = (function () { + function Query() { + } + return Query; +}()); +/** + * ContentChildren decorator and metadata. + * + * \@stable + * \@Annotation + */ +var ContentChildren = makePropDecorator('ContentChildren', function (selector, data) { + if (data === void 0) { data = {}; } + return (Object.assign({ selector: selector, first: false, isViewQuery: false, descendants: false }, data)); +}, Query); +/** + * ContentChild decorator and metadata. + * + * \@stable + * \@Annotation + */ +var ContentChild = makePropDecorator('ContentChild', function (selector, data) { + if (data === void 0) { data = {}; } + return (Object.assign({ selector: selector, first: true, isViewQuery: false, descendants: true }, data)); +}, Query); +/** + * ViewChildren decorator and metadata. + * + * \@stable + * \@Annotation + */ +var ViewChildren = makePropDecorator('ViewChildren', function (selector, data) { + if (data === void 0) { data = {}; } + return (Object.assign({ selector: selector, first: false, isViewQuery: true, descendants: true }, data)); +}, Query); +/** + * ViewChild decorator and metadata. + * + * \@stable + * \@Annotation + */ +var ViewChild = makePropDecorator('ViewChild', function (selector, data) { return (Object.assign({ selector: selector, first: true, isViewQuery: true, descendants: true }, data)); }, Query); +var ChangeDetectionStrategy = {}; +ChangeDetectionStrategy.OnPush = 0; +ChangeDetectionStrategy.Default = 1; +ChangeDetectionStrategy[ChangeDetectionStrategy.OnPush] = "OnPush"; +ChangeDetectionStrategy[ChangeDetectionStrategy.Default] = "Default"; +var ChangeDetectorStatus = {}; +ChangeDetectorStatus.CheckOnce = 0; +ChangeDetectorStatus.Checked = 1; +ChangeDetectorStatus.CheckAlways = 2; +ChangeDetectorStatus.Detached = 3; +ChangeDetectorStatus.Errored = 4; +ChangeDetectorStatus.Destroyed = 5; +ChangeDetectorStatus[ChangeDetectorStatus.CheckOnce] = "CheckOnce"; +ChangeDetectorStatus[ChangeDetectorStatus.Checked] = "Checked"; +ChangeDetectorStatus[ChangeDetectorStatus.CheckAlways] = "CheckAlways"; +ChangeDetectorStatus[ChangeDetectorStatus.Detached] = "Detached"; +ChangeDetectorStatus[ChangeDetectorStatus.Errored] = "Errored"; +ChangeDetectorStatus[ChangeDetectorStatus.Destroyed] = "Destroyed"; +/** + * @param {?} changeDetectionStrategy + * @return {?} + */ +function isDefaultChangeDetectionStrategy(changeDetectionStrategy) { + return changeDetectionStrategy == null || + changeDetectionStrategy === ChangeDetectionStrategy.Default; +} +/** + * @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 + */ +/** + * Directive decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Directive = makeDecorator('Directive', function (dir) { + if (dir === void 0) { dir = {}; } + return dir; +}); +/** + * Component decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Component = makeDecorator('Component', function (c) { + if (c === void 0) { c = {}; } + return (Object.assign({ changeDetection: ChangeDetectionStrategy.Default }, c)); +}, Directive); +/** + * Pipe decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Pipe = makeDecorator('Pipe', function (p) { return (Object.assign({ pure: true }, p)); }); +/** + * Input decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Input = makePropDecorator('Input', function (bindingPropertyName) { return ({ bindingPropertyName: bindingPropertyName }); }); +/** + * Output decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Output = makePropDecorator('Output', function (bindingPropertyName) { return ({ bindingPropertyName: bindingPropertyName }); }); +/** + * HostBinding decorator and metadata. + * + * \@stable + * \@Annotation + */ +var HostBinding = makePropDecorator('HostBinding', function (hostPropertyName) { return ({ hostPropertyName: hostPropertyName }); }); +/** + * HostListener decorator and metadata. + * + * \@stable + * \@Annotation + */ +var HostListener = makePropDecorator('HostListener', function (eventName, args) { return ({ eventName: eventName, args: args }); }); +/** + * @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 + */ +/** + * Defines a schema that will allow: + * - any non-Angular elements with a `-` in their name, + * - any properties on elements with a `-` in their name which is the common rule for custom + * elements. + * + * \@stable + */ +var CUSTOM_ELEMENTS_SCHEMA = { + name: 'custom-elements' +}; +/** + * Defines a schema that will allow any property on any element. + * + * \@experimental + */ +var NO_ERRORS_SCHEMA = { + name: 'no-errors-schema' +}; +/** + * NgModule decorator and metadata. + * + * \@stable + * \@Annotation + */ +var NgModule = makeDecorator('NgModule', function (ngModule) { return ngModule; }); +var ViewEncapsulation = {}; +ViewEncapsulation.Emulated = 0; +ViewEncapsulation.Native = 1; +ViewEncapsulation.None = 2; +ViewEncapsulation[ViewEncapsulation.Emulated] = "Emulated"; +ViewEncapsulation[ViewEncapsulation.Native] = "Native"; +ViewEncapsulation[ViewEncapsulation.None] = "None"; +/** + * Metadata properties available for configuring Views. + * + * For details on the `\@Component` annotation, see {\@link Component}. + * + * ### Example + * + * ``` + * \@Component({ + * selector: 'greet', + * template: 'Hello {{name}}!', + * }) + * class Greet { + * name: string; + * + * constructor() { + * this.name = 'World'; + * } + * } + * ``` + * + * @deprecated Use Component instead. + * + * {\@link Component} + */ +var ViewMetadata = (function () { + /** + * @param {?=} opts + */ + function ViewMetadata(opts) { + if (opts === void 0) { opts = {}; } + this.templateUrl = opts.templateUrl; + this.template = opts.template; + this.styleUrls = opts.styleUrls; + this.styles = opts.styles; + this.encapsulation = opts.encapsulation; + this.animations = opts.animations; + this.interpolation = opts.interpolation; + } + return ViewMetadata; +}()); +/** + * @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 + */ +/** + * \@whatItDoes Represents the version of Angular + * + * \@stable + */ +var Version = (function () { + /** + * @param {?} full + */ + function Version(full) { + this.full = full; + } + Object.defineProperty(Version.prototype, "major", { + /** + * @return {?} + */ + get: function () { return this.full.split('.')[0]; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Version.prototype, "minor", { + /** + * @return {?} + */ + get: function () { return this.full.split('.')[1]; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Version.prototype, "patch", { + /** + * @return {?} + */ + get: function () { return this.full.split('.').slice(2).join('.'); }, + enumerable: true, + configurable: true + }); + return Version; +}()); +/** + * \@stable + */ +var VERSION = new Version('4.2.6'); +/** + * @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 + */ +/** + * Inject decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Inject = makeParamDecorator('Inject', function (token) { return ({ token: token }); }); +/** + * Optional decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Optional = makeParamDecorator('Optional'); +/** + * Injectable decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Injectable = makeDecorator('Injectable'); +/** + * Self decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Self = makeParamDecorator('Self'); +/** + * SkipSelf decorator and metadata. + * + * \@stable + * \@Annotation + */ +var SkipSelf = makeParamDecorator('SkipSelf'); +/** + * Host decorator and metadata. + * + * \@stable + * \@Annotation + */ +var Host = makeParamDecorator('Host'); +/** + * @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 + */ +/** + * Allows to refer to references which are not yet defined. + * + * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of + * DI is declared, + * but not yet defined. It is also used when the `token` which we use when creating a query is not + * yet defined. + * + * ### Example + * {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'} + * \@experimental + * @param {?} forwardRefFn + * @return {?} + */ +function forwardRef(forwardRefFn) { + ((forwardRefFn)).__forward_ref__ = forwardRef; + ((forwardRefFn)).toString = function () { return stringify(this()); }; + return (((forwardRefFn))); +} +/** + * Lazily retrieves the reference value from a forwardRef. + * + * Acts as the identity function when given a non-forward-ref value. + * + * ### Example ([live demo](http://plnkr.co/edit/GU72mJrk1fiodChcmiDR?p=preview)) + * + * {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'} + * + * See: {\@link forwardRef} + * \@experimental + * @param {?} type + * @return {?} + */ +function resolveForwardRef(type) { + if (typeof type === 'function' && type.hasOwnProperty('__forward_ref__') && + type.__forward_ref__ === forwardRef) { + return ((type))(); + } + else { + return type; + } +} +/** + * @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 _THROW_IF_NOT_FOUND = new Object(); +var THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND; +var _NullInjector = (function () { + function _NullInjector() { + } + /** + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + _NullInjector.prototype.get = function (token, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = _THROW_IF_NOT_FOUND; } + if (notFoundValue === _THROW_IF_NOT_FOUND) { + throw new Error("No provider for " + stringify(token) + "!"); + } + return notFoundValue; + }; + return _NullInjector; +}()); +/** + * \@whatItDoes Injector interface + * \@howToUse + * ``` + * const injector: Injector = ...; + * injector.get(...); + * ``` + * + * \@description + * For more details, see the {\@linkDocs guide/dependency-injection "Dependency Injection Guide"}. + * + * ### Example + * + * {\@example core/di/ts/injector_spec.ts region='Injector'} + * + * `Injector` returns itself when given `Injector` as a token: + * {\@example core/di/ts/injector_spec.ts region='injectInjector'} + * + * \@stable + * @abstract + */ +var Injector = (function () { + function Injector() { + } + /** + * Retrieves an instance from the injector based on the provided token. + * If not found: + * - Throws an error if no `notFoundValue` that is not equal to + * Injector.THROW_IF_NOT_FOUND is given + * - Returns the `notFoundValue` otherwise + * @abstract + * @template T + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + Injector.prototype.get = function (token, notFoundValue) { }; + /** + * @deprecated from v4.0.0 use Type or InjectionToken + * @suppress {duplicate} + * @abstract + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + Injector.prototype.get = function (token, notFoundValue) { }; + return Injector; +}()); +Injector.THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND; +Injector.NULL = new _NullInjector(); +/** + * @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 ERROR_COMPONENT_TYPE = 'ngComponentType'; +var ERROR_DEBUG_CONTEXT = 'ngDebugContext'; +var ERROR_ORIGINAL_ERROR = 'ngOriginalError'; +var ERROR_LOGGER = 'ngErrorLogger'; +/** + * @param {?} error + * @return {?} + */ +/** + * @param {?} error + * @return {?} + */ +function getDebugContext(error) { + return ((error))[ERROR_DEBUG_CONTEXT]; +} +/** + * @param {?} error + * @return {?} + */ +function getOriginalError(error) { + return ((error))[ERROR_ORIGINAL_ERROR]; +} +/** + * @param {?} error + * @return {?} + */ +function getErrorLogger(error) { + return ((error))[ERROR_LOGGER] || defaultErrorLogger; +} +/** + * @param {?} console + * @param {...?} values + * @return {?} + */ +function defaultErrorLogger(console) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + console.error.apply(console, values); +} +/** + * @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 + */ +/** + * \@whatItDoes Provides a hook for centralized exception handling. + * + * \@description + * + * The default implementation of `ErrorHandler` prints error messages to the `console`. To + * intercept error handling, write a custom exception handler that replaces this default as + * appropriate for your app. + * + * ### Example + * + * ``` + * class MyErrorHandler implements ErrorHandler { + * handleError(error) { + * // do something with the exception + * } + * } + * + * \@NgModule({ + * providers: [{provide: ErrorHandler, useClass: MyErrorHandler}] + * }) + * class MyModule {} + * ``` + * + * \@stable + */ +var ErrorHandler = (function () { + /** + * @param {?=} deprecatedParameter + */ + function ErrorHandler( + /** + * @deprecated since v4.0 parameter no longer has an effect, as ErrorHandler will never + * rethrow. + */ + deprecatedParameter) { + /** + * \@internal + */ + this._console = console; + } + /** + * @param {?} error + * @return {?} + */ + ErrorHandler.prototype.handleError = function (error) { + var /** @type {?} */ originalError = this._findOriginalError(error); + var /** @type {?} */ context = this._findContext(error); + // Note: Browser consoles show the place from where console.error was called. + // We can use this to give users additional information about the error. + var /** @type {?} */ errorLogger = getErrorLogger(error); + errorLogger(this._console, "ERROR", error); + if (originalError) { + errorLogger(this._console, "ORIGINAL ERROR", originalError); + } + if (context) { + errorLogger(this._console, 'ERROR CONTEXT', context); + } + }; + /** + * \@internal + * @param {?} error + * @return {?} + */ + ErrorHandler.prototype._findContext = function (error) { + if (error) { + return getDebugContext(error) ? getDebugContext(error) : + this._findContext(getOriginalError(error)); + } + return null; + }; + /** + * \@internal + * @param {?} error + * @return {?} + */ + ErrorHandler.prototype._findOriginalError = function (error) { + var /** @type {?} */ e = getOriginalError(error); + while (e && getOriginalError(e)) { + e = getOriginalError(e); + } + return e; + }; + return ErrorHandler; +}()); +/** + * @param {?} message + * @param {?} originalError + * @return {?} + */ +function wrappedError(message, originalError) { + var /** @type {?} */ msg = message + " caused by: " + (originalError instanceof Error ? originalError.message : originalError); + var /** @type {?} */ error = Error(msg); + ((error))[ERROR_ORIGINAL_ERROR] = originalError; + return error; +} +/** + * @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 + */ +/** + * @param {?} keys + * @return {?} + */ +function findFirstClosedCycle(keys) { + var /** @type {?} */ res = []; + for (var /** @type {?} */ i = 0; i < keys.length; ++i) { + if (res.indexOf(keys[i]) > -1) { + res.push(keys[i]); + return res; + } + res.push(keys[i]); + } + return res; +} +/** + * @param {?} keys + * @return {?} + */ +function constructResolvingPath(keys) { + if (keys.length > 1) { + var /** @type {?} */ reversed = findFirstClosedCycle(keys.slice().reverse()); + var /** @type {?} */ tokenStrs = reversed.map(function (k) { return stringify(k.token); }); + return ' (' + tokenStrs.join(' -> ') + ')'; + } + return ''; +} +/** + * @param {?} injector + * @param {?} key + * @param {?} constructResolvingMessage + * @param {?=} originalError + * @return {?} + */ +function injectionError(injector, key, constructResolvingMessage, originalError) { + var /** @type {?} */ keys = [key]; + var /** @type {?} */ errMsg = constructResolvingMessage(keys); + var /** @type {?} */ error = ((originalError ? wrappedError(errMsg, originalError) : Error(errMsg))); + error.addKey = addKey; + error.keys = keys; + error.injectors = [injector]; + error.constructResolvingMessage = constructResolvingMessage; + ((error))[ERROR_ORIGINAL_ERROR] = originalError; + return error; +} +/** + * @this {?} + * @param {?} injector + * @param {?} key + * @return {?} + */ +function addKey(injector, key) { + this.injectors.push(injector); + this.keys.push(key); + // Note: This updated message won't be reflected in the `.stack` property + this.message = this.constructResolvingMessage(this.keys); +} +/** + * Thrown when trying to retrieve a dependency by key from {\@link Injector}, but the + * {\@link Injector} does not have a {\@link Provider} for the given key. + * + * ### Example ([live demo](http://plnkr.co/edit/vq8D3FRB9aGbnWJqtEPE?p=preview)) + * + * ```typescript + * class A { + * constructor(b:B) {} + * } + * + * expect(() => Injector.resolveAndCreate([A])).toThrowError(); + * ``` + * @param {?} injector + * @param {?} key + * @return {?} + */ +function noProviderError(injector, key) { + return injectionError(injector, key, function (keys) { + var /** @type {?} */ first = stringify(keys[0].token); + return "No provider for " + first + "!" + constructResolvingPath(keys); + }); +} +/** + * Thrown when dependencies form a cycle. + * + * ### Example ([live demo](http://plnkr.co/edit/wYQdNos0Tzql3ei1EV9j?p=info)) + * + * ```typescript + * var injector = Injector.resolveAndCreate([ + * {provide: "one", useFactory: (two) => "two", deps: [[new Inject("two")]]}, + * {provide: "two", useFactory: (one) => "one", deps: [[new Inject("one")]]} + * ]); + * + * expect(() => injector.get("one")).toThrowError(); + * ``` + * + * Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed. + * @param {?} injector + * @param {?} key + * @return {?} + */ +function cyclicDependencyError(injector, key) { + return injectionError(injector, key, function (keys) { + return "Cannot instantiate cyclic dependency!" + constructResolvingPath(keys); + }); +} +/** + * Thrown when a constructing type returns with an Error. + * + * The `InstantiationError` class contains the original error plus the dependency graph which caused + * this object to be instantiated. + * + * ### Example ([live demo](http://plnkr.co/edit/7aWYdcqTQsP0eNqEdUAf?p=preview)) + * + * ```typescript + * class A { + * constructor() { + * throw new Error('message'); + * } + * } + * + * var injector = Injector.resolveAndCreate([A]); + * try { + * injector.get(A); + * } catch (e) { + * expect(e instanceof InstantiationError).toBe(true); + * expect(e.originalException.message).toEqual("message"); + * expect(e.originalStack).toBeDefined(); + * } + * ``` + * @param {?} injector + * @param {?} originalException + * @param {?} originalStack + * @param {?} key + * @return {?} + */ +function instantiationError(injector, originalException, originalStack, key) { + return injectionError(injector, key, function (keys) { + var /** @type {?} */ first = stringify(keys[0].token); + return originalException.message + ": Error during instantiation of " + first + "!" + constructResolvingPath(keys) + "."; + }, originalException); +} +/** + * Thrown when an object other then {\@link Provider} (or `Type`) is passed to {\@link Injector} + * creation. + * + * ### Example ([live demo](http://plnkr.co/edit/YatCFbPAMCL0JSSQ4mvH?p=preview)) + * + * ```typescript + * expect(() => Injector.resolveAndCreate(["not a type"])).toThrowError(); + * ``` + * @param {?} provider + * @return {?} + */ +function invalidProviderError(provider) { + return Error("Invalid provider - only instances of Provider and Type are allowed, got: " + provider); +} +/** + * Thrown when the class has no annotation information. + * + * Lack of annotation information prevents the {\@link Injector} from determining which dependencies + * need to be injected into the constructor. + * + * ### Example ([live demo](http://plnkr.co/edit/rHnZtlNS7vJOPQ6pcVkm?p=preview)) + * + * ```typescript + * class A { + * constructor(b) {} + * } + * + * expect(() => Injector.resolveAndCreate([A])).toThrowError(); + * ``` + * + * This error is also thrown when the class not marked with {\@link Injectable} has parameter types. + * + * ```typescript + * class B {} + * + * class A { + * constructor(b:B) {} // no information about the parameter types of A is available at runtime. + * } + * + * expect(() => Injector.resolveAndCreate([A,B])).toThrowError(); + * ``` + * \@stable + * @param {?} typeOrFunc + * @param {?} params + * @return {?} + */ +function noAnnotationError(typeOrFunc, params) { + var /** @type {?} */ signature = []; + for (var /** @type {?} */ i = 0, /** @type {?} */ ii = params.length; i < ii; i++) { + var /** @type {?} */ parameter = params[i]; + if (!parameter || parameter.length == 0) { + signature.push('?'); + } + else { + signature.push(parameter.map(stringify).join(' ')); + } + } + return Error('Cannot resolve all parameters for \'' + stringify(typeOrFunc) + '\'(' + + signature.join(', ') + '). ' + + 'Make sure that all the parameters are decorated with Inject or have valid type annotations and that \'' + + stringify(typeOrFunc) + '\' is decorated with Injectable.'); +} +/** + * Thrown when getting an object by index. + * + * ### Example ([live demo](http://plnkr.co/edit/bRs0SX2OTQiJzqvjgl8P?p=preview)) + * + * ```typescript + * class A {} + * + * var injector = Injector.resolveAndCreate([A]); + * + * expect(() => injector.getAt(100)).toThrowError(); + * ``` + * \@stable + * @param {?} index + * @return {?} + */ +function outOfBoundsError(index) { + return Error("Index " + index + " is out-of-bounds."); +} +/** + * Thrown when a multi provider and a regular provider are bound to the same token. + * + * ### Example + * + * ```typescript + * expect(() => Injector.resolveAndCreate([ + * { provide: "Strings", useValue: "string1", multi: true}, + * { provide: "Strings", useValue: "string2", multi: false} + * ])).toThrowError(); + * ``` + * @param {?} provider1 + * @param {?} provider2 + * @return {?} + */ +function mixingMultiProvidersWithRegularProvidersError(provider1, provider2) { + return Error("Cannot mix multi providers and regular providers, got: " + provider1 + " " + provider2); +} +/** + * @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 + */ +/** + * A unique object used for retrieving items from the {\@link ReflectiveInjector}. + * + * Keys have: + * - a system-wide unique `id`. + * - a `token`. + * + * `Key` is used internally by {\@link ReflectiveInjector} because its system-wide unique `id` allows + * the + * injector to store created objects in a more efficient way. + * + * `Key` should not be created directly. {\@link ReflectiveInjector} creates keys automatically when + * resolving + * providers. + * \@experimental + */ +var ReflectiveKey = (function () { + /** + * Private + * @param {?} token + * @param {?} id + */ + function ReflectiveKey(token, id) { + this.token = token; + this.id = id; + if (!token) { + throw new Error('Token must be defined!'); + } + } + Object.defineProperty(ReflectiveKey.prototype, "displayName", { + /** + * Returns a stringified token. + * @return {?} + */ + get: function () { return stringify(this.token); }, + enumerable: true, + configurable: true + }); + /** + * Retrieves a `Key` for a token. + * @param {?} token + * @return {?} + */ + ReflectiveKey.get = function (token) { + return _globalKeyRegistry.get(resolveForwardRef(token)); + }; + Object.defineProperty(ReflectiveKey, "numberOfKeys", { + /** + * @return {?} the number of keys registered in the system. + */ + get: function () { return _globalKeyRegistry.numberOfKeys; }, + enumerable: true, + configurable: true + }); + return ReflectiveKey; +}()); +/** + * \@internal + */ +var KeyRegistry = (function () { + function KeyRegistry() { + this._allKeys = new Map(); + } + /** + * @param {?} token + * @return {?} + */ + KeyRegistry.prototype.get = function (token) { + if (token instanceof ReflectiveKey) + return token; + if (this._allKeys.has(token)) { + return ((this._allKeys.get(token))); + } + var /** @type {?} */ newKey = new ReflectiveKey(token, ReflectiveKey.numberOfKeys); + this._allKeys.set(token, newKey); + return newKey; + }; + Object.defineProperty(KeyRegistry.prototype, "numberOfKeys", { + /** + * @return {?} + */ + get: function () { return this._allKeys.size; }, + enumerable: true, + configurable: true + }); + return KeyRegistry; +}()); +var _globalKeyRegistry = new KeyRegistry(); +/** + * \@whatItDoes Represents a type that a Component or other object is instances of. + * + * \@description + * + * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by + * the `MyCustomComponent` constructor function. + * + * \@stable + */ +var Type = Function; +/** + * @param {?} v + * @return {?} + */ +function isType(v) { + return typeof v === 'function'; +} +/** + * @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 + */ +/** + * Attention: This regex has to hold even if the code is minified! + */ +var DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/; +var ReflectionCapabilities = (function () { + /** + * @param {?=} reflect + */ + function ReflectionCapabilities(reflect) { + this._reflect = reflect || _global['Reflect']; + } + /** + * @return {?} + */ + ReflectionCapabilities.prototype.isReflectionEnabled = function () { return true; }; + /** + * @template T + * @param {?} t + * @return {?} + */ + ReflectionCapabilities.prototype.factory = function (t) { return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return new (t.bind.apply(t, [void 0].concat(args)))(); + }; }; + /** + * \@internal + * @param {?} paramTypes + * @param {?} paramAnnotations + * @return {?} + */ + ReflectionCapabilities.prototype._zipTypesAndAnnotations = function (paramTypes, paramAnnotations) { + var /** @type {?} */ result; + if (typeof paramTypes === 'undefined') { + result = new Array(paramAnnotations.length); + } + else { + result = new Array(paramTypes.length); + } + for (var /** @type {?} */ i = 0; i < result.length; i++) { + // TS outputs Object for parameters without types, while Traceur omits + // the annotations. For now we preserve the Traceur behavior to aid + // migration, but this can be revisited. + if (typeof paramTypes === 'undefined') { + result[i] = []; + } + else if (paramTypes[i] != Object) { + result[i] = [paramTypes[i]]; + } + else { + result[i] = []; + } + if (paramAnnotations && paramAnnotations[i] != null) { + result[i] = result[i].concat(paramAnnotations[i]); + } + } + return result; + }; + /** + * @param {?} type + * @param {?} parentCtor + * @return {?} + */ + ReflectionCapabilities.prototype._ownParameters = function (type, parentCtor) { + // If we have no decorators, we only have function.length as metadata. + // In that case, to detect whether a child class declared an own constructor or not, + // we need to look inside of that constructor to check whether it is + // just calling the parent. + // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439 + // that sets 'design:paramtypes' to [] + // if a class inherits from another class but has no ctor declared itself. + if (DELEGATE_CTOR.exec(type.toString())) { + return null; + } + // Prefer the direct API. + if (((type)).parameters && ((type)).parameters !== parentCtor.parameters) { + return ((type)).parameters; + } + // API of tsickle for lowering decorators to properties on the class. + var /** @type {?} */ tsickleCtorParams = ((type)).ctorParameters; + if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) { + // Newer tsickle uses a function closure + // Retain the non-function case for compatibility with older tsickle + var /** @type {?} */ ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams; + var /** @type {?} */ paramTypes = ctorParameters.map(function (ctorParam) { return ctorParam && ctorParam.type; }); + var /** @type {?} */ paramAnnotations = ctorParameters.map(function (ctorParam) { return ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators); }); + return this._zipTypesAndAnnotations(paramTypes, paramAnnotations); + } + // API for metadata created by invoking the decorators. + if (this._reflect != null && this._reflect.getOwnMetadata != null) { + var /** @type {?} */ paramAnnotations = this._reflect.getOwnMetadata('parameters', type); + var /** @type {?} */ paramTypes = this._reflect.getOwnMetadata('design:paramtypes', type); + if (paramTypes || paramAnnotations) { + return this._zipTypesAndAnnotations(paramTypes, paramAnnotations); + } + } + // If a class has no decorators, at least create metadata + // based on function.length. + // Note: We know that this is a real constructor as we checked + // the content of the constructor above. + return new Array(((type.length))).fill(undefined); + }; + /** + * @param {?} type + * @return {?} + */ + ReflectionCapabilities.prototype.parameters = function (type) { + // Note: only report metadata if we have at least one class decorator + // to stay in sync with the static reflector. + if (!isType(type)) { + return []; + } + var /** @type {?} */ parentCtor = getParentCtor(type); + var /** @type {?} */ parameters = this._ownParameters(type, parentCtor); + if (!parameters && parentCtor !== Object) { + parameters = this.parameters(parentCtor); + } + return parameters || []; + }; + /** + * @param {?} typeOrFunc + * @param {?} parentCtor + * @return {?} + */ + ReflectionCapabilities.prototype._ownAnnotations = function (typeOrFunc, parentCtor) { + // Prefer the direct API. + if (((typeOrFunc)).annotations && ((typeOrFunc)).annotations !== parentCtor.annotations) { + var /** @type {?} */ annotations = ((typeOrFunc)).annotations; + if (typeof annotations === 'function' && annotations.annotations) { + annotations = annotations.annotations; + } + return annotations; + } + // API of tsickle for lowering decorators to properties on the class. + if (((typeOrFunc)).decorators && ((typeOrFunc)).decorators !== parentCtor.decorators) { + return convertTsickleDecoratorIntoMetadata(((typeOrFunc)).decorators); + } + // API for metadata created by invoking the decorators. + if (this._reflect && this._reflect.getOwnMetadata) { + return this._reflect.getOwnMetadata('annotations', typeOrFunc); + } + return null; + }; + /** + * @param {?} typeOrFunc + * @return {?} + */ + ReflectionCapabilities.prototype.annotations = function (typeOrFunc) { + if (!isType(typeOrFunc)) { + return []; + } + var /** @type {?} */ parentCtor = getParentCtor(typeOrFunc); + var /** @type {?} */ ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || []; + var /** @type {?} */ parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : []; + return parentAnnotations.concat(ownAnnotations); + }; + /** + * @param {?} typeOrFunc + * @param {?} parentCtor + * @return {?} + */ + ReflectionCapabilities.prototype._ownPropMetadata = function (typeOrFunc, parentCtor) { + // Prefer the direct API. + if (((typeOrFunc)).propMetadata && + ((typeOrFunc)).propMetadata !== parentCtor.propMetadata) { + var /** @type {?} */ propMetadata = ((typeOrFunc)).propMetadata; + if (typeof propMetadata === 'function' && propMetadata.propMetadata) { + propMetadata = propMetadata.propMetadata; + } + return propMetadata; + } + // API of tsickle for lowering decorators to properties on the class. + if (((typeOrFunc)).propDecorators && + ((typeOrFunc)).propDecorators !== parentCtor.propDecorators) { + var /** @type {?} */ propDecorators_1 = ((typeOrFunc)).propDecorators; + var /** @type {?} */ propMetadata_1 = ({}); + Object.keys(propDecorators_1).forEach(function (prop) { + propMetadata_1[prop] = convertTsickleDecoratorIntoMetadata(propDecorators_1[prop]); + }); + return propMetadata_1; + } + // API for metadata created by invoking the decorators. + if (this._reflect && this._reflect.getOwnMetadata) { + return this._reflect.getOwnMetadata('propMetadata', typeOrFunc); + } + return null; + }; + /** + * @param {?} typeOrFunc + * @return {?} + */ + ReflectionCapabilities.prototype.propMetadata = function (typeOrFunc) { + if (!isType(typeOrFunc)) { + return {}; + } + var /** @type {?} */ parentCtor = getParentCtor(typeOrFunc); + var /** @type {?} */ propMetadata = {}; + if (parentCtor !== Object) { + var /** @type {?} */ parentPropMetadata_1 = this.propMetadata(parentCtor); + Object.keys(parentPropMetadata_1).forEach(function (propName) { + propMetadata[propName] = parentPropMetadata_1[propName]; + }); + } + var /** @type {?} */ ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor); + if (ownPropMetadata) { + Object.keys(ownPropMetadata).forEach(function (propName) { + var /** @type {?} */ decorators = []; + if (propMetadata.hasOwnProperty(propName)) { + decorators.push.apply(decorators, propMetadata[propName]); + } + decorators.push.apply(decorators, ownPropMetadata[propName]); + propMetadata[propName] = decorators; + }); + } + return propMetadata; + }; + /** + * @param {?} type + * @param {?} lcProperty + * @return {?} + */ + ReflectionCapabilities.prototype.hasLifecycleHook = function (type, lcProperty) { + return type instanceof Type && lcProperty in type.prototype; + }; + /** + * @param {?} name + * @return {?} + */ + ReflectionCapabilities.prototype.getter = function (name) { return (new Function('o', 'return o.' + name + ';')); }; + /** + * @param {?} name + * @return {?} + */ + ReflectionCapabilities.prototype.setter = function (name) { + return (new Function('o', 'v', 'return o.' + name + ' = v;')); + }; + /** + * @param {?} name + * @return {?} + */ + ReflectionCapabilities.prototype.method = function (name) { + var /** @type {?} */ functionBody = "if (!o." + name + ") throw new Error('\"" + name + "\" is undefined');\n return o." + name + ".apply(o, args);"; + return (new Function('o', 'args', functionBody)); + }; + /** + * @param {?} type + * @return {?} + */ + ReflectionCapabilities.prototype.importUri = function (type) { + // StaticSymbol + if (typeof type === 'object' && type['filePath']) { + return type['filePath']; + } + // Runtime type + return "./" + stringify(type); + }; + /** + * @param {?} type + * @return {?} + */ + ReflectionCapabilities.prototype.resourceUri = function (type) { return "./" + stringify(type); }; + /** + * @param {?} name + * @param {?} moduleUrl + * @param {?} members + * @param {?} runtime + * @return {?} + */ + ReflectionCapabilities.prototype.resolveIdentifier = function (name, moduleUrl, members, runtime) { + return runtime; + }; + /** + * @param {?} enumIdentifier + * @param {?} name + * @return {?} + */ + ReflectionCapabilities.prototype.resolveEnum = function (enumIdentifier, name) { return enumIdentifier[name]; }; + return ReflectionCapabilities; +}()); +/** + * @param {?} decoratorInvocations + * @return {?} + */ +function convertTsickleDecoratorIntoMetadata(decoratorInvocations) { + if (!decoratorInvocations) { + return []; + } + return decoratorInvocations.map(function (decoratorInvocation) { + var /** @type {?} */ decoratorType = decoratorInvocation.type; + var /** @type {?} */ annotationCls = decoratorType.annotationCls; + var /** @type {?} */ annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : []; + return new (annotationCls.bind.apply(annotationCls, [void 0].concat(annotationArgs)))(); + }); +} +/** + * @param {?} ctor + * @return {?} + */ +function getParentCtor(ctor) { + var /** @type {?} */ parentProto = Object.getPrototypeOf(ctor.prototype); + var /** @type {?} */ parentCtor = parentProto ? parentProto.constructor : null; + // Note: We always use `Object` as the null value + // to simplify checking later on. + return parentCtor || Object; +} +/** + * @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 + */ +/** + * Provides access to reflection data about symbols. Used internally by Angular + * to power dependency injection and compilation. + */ +var Reflector = (function () { + /** + * @param {?} reflectionCapabilities + */ + function Reflector(reflectionCapabilities) { + this.reflectionCapabilities = reflectionCapabilities; + } + /** + * @param {?} caps + * @return {?} + */ + Reflector.prototype.updateCapabilities = function (caps) { this.reflectionCapabilities = caps; }; + /** + * @param {?} type + * @return {?} + */ + Reflector.prototype.factory = function (type) { return this.reflectionCapabilities.factory(type); }; + /** + * @param {?} typeOrFunc + * @return {?} + */ + Reflector.prototype.parameters = function (typeOrFunc) { + return this.reflectionCapabilities.parameters(typeOrFunc); + }; + /** + * @param {?} typeOrFunc + * @return {?} + */ + Reflector.prototype.annotations = function (typeOrFunc) { + return this.reflectionCapabilities.annotations(typeOrFunc); + }; + /** + * @param {?} typeOrFunc + * @return {?} + */ + Reflector.prototype.propMetadata = function (typeOrFunc) { + return this.reflectionCapabilities.propMetadata(typeOrFunc); + }; + /** + * @param {?} type + * @param {?} lcProperty + * @return {?} + */ + Reflector.prototype.hasLifecycleHook = function (type, lcProperty) { + return this.reflectionCapabilities.hasLifecycleHook(type, lcProperty); + }; + /** + * @param {?} name + * @return {?} + */ + Reflector.prototype.getter = function (name) { return this.reflectionCapabilities.getter(name); }; + /** + * @param {?} name + * @return {?} + */ + Reflector.prototype.setter = function (name) { return this.reflectionCapabilities.setter(name); }; + /** + * @param {?} name + * @return {?} + */ + Reflector.prototype.method = function (name) { return this.reflectionCapabilities.method(name); }; + /** + * @param {?} type + * @return {?} + */ + Reflector.prototype.importUri = function (type) { return this.reflectionCapabilities.importUri(type); }; + /** + * @param {?} type + * @return {?} + */ + Reflector.prototype.resourceUri = function (type) { return this.reflectionCapabilities.resourceUri(type); }; + /** + * @param {?} name + * @param {?} moduleUrl + * @param {?} members + * @param {?} runtime + * @return {?} + */ + Reflector.prototype.resolveIdentifier = function (name, moduleUrl, members, runtime) { + return this.reflectionCapabilities.resolveIdentifier(name, moduleUrl, members, runtime); + }; + /** + * @param {?} identifier + * @param {?} name + * @return {?} + */ + Reflector.prototype.resolveEnum = function (identifier, name) { + return this.reflectionCapabilities.resolveEnum(identifier, name); + }; + return Reflector; +}()); +/** + * @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 + */ +/** + * The {\@link Reflector} used internally in Angular to access metadata + * about symbols. + */ +var reflector = new Reflector(new ReflectionCapabilities()); +/** + * @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 + */ +/** + * `Dependency` is used by the framework to extend DI. + * This is internal to Angular and should not be used directly. + */ +var ReflectiveDependency = (function () { + /** + * @param {?} key + * @param {?} optional + * @param {?} visibility + */ + function ReflectiveDependency(key, optional, visibility) { + this.key = key; + this.optional = optional; + this.visibility = visibility; + } + /** + * @param {?} key + * @return {?} + */ + ReflectiveDependency.fromKey = function (key) { + return new ReflectiveDependency(key, false, null); + }; + return ReflectiveDependency; +}()); +var _EMPTY_LIST = []; +var ResolvedReflectiveProvider_ = (function () { + /** + * @param {?} key + * @param {?} resolvedFactories + * @param {?} multiProvider + */ + function ResolvedReflectiveProvider_(key, resolvedFactories, multiProvider) { + this.key = key; + this.resolvedFactories = resolvedFactories; + this.multiProvider = multiProvider; + } + Object.defineProperty(ResolvedReflectiveProvider_.prototype, "resolvedFactory", { + /** + * @return {?} + */ + get: function () { return this.resolvedFactories[0]; }, + enumerable: true, + configurable: true + }); + return ResolvedReflectiveProvider_; +}()); +/** + * An internal resolved representation of a factory function created by resolving {\@link + * Provider}. + * \@experimental + */ +var ResolvedReflectiveFactory = (function () { + /** + * @param {?} factory + * @param {?} dependencies + */ + function ResolvedReflectiveFactory(factory, dependencies) { + this.factory = factory; + this.dependencies = dependencies; + } + return ResolvedReflectiveFactory; +}()); +/** + * Resolve a single provider. + * @param {?} provider + * @return {?} + */ +function resolveReflectiveFactory(provider) { + var /** @type {?} */ factoryFn; + var /** @type {?} */ resolvedDeps; + if (provider.useClass) { + var /** @type {?} */ useClass = resolveForwardRef(provider.useClass); + factoryFn = reflector.factory(useClass); + resolvedDeps = _dependenciesFor(useClass); + } + else if (provider.useExisting) { + factoryFn = function (aliasInstance) { return aliasInstance; }; + resolvedDeps = [ReflectiveDependency.fromKey(ReflectiveKey.get(provider.useExisting))]; + } + else if (provider.useFactory) { + factoryFn = provider.useFactory; + resolvedDeps = constructDependencies(provider.useFactory, provider.deps); + } + else { + factoryFn = function () { return provider.useValue; }; + resolvedDeps = _EMPTY_LIST; + } + return new ResolvedReflectiveFactory(factoryFn, resolvedDeps); +} +/** + * Converts the {\@link Provider} into {\@link ResolvedProvider}. + * + * {\@link Injector} internally only uses {\@link ResolvedProvider}, {\@link Provider} contains + * convenience provider syntax. + * @param {?} provider + * @return {?} + */ +function resolveReflectiveProvider(provider) { + return new ResolvedReflectiveProvider_(ReflectiveKey.get(provider.provide), [resolveReflectiveFactory(provider)], provider.multi || false); +} +/** + * Resolve a list of Providers. + * @param {?} providers + * @return {?} + */ +function resolveReflectiveProviders(providers) { + var /** @type {?} */ normalized = _normalizeProviders(providers, []); + var /** @type {?} */ resolved = normalized.map(resolveReflectiveProvider); + var /** @type {?} */ resolvedProviderMap = mergeResolvedReflectiveProviders(resolved, new Map()); + return Array.from(resolvedProviderMap.values()); +} +/** + * Merges a list of ResolvedProviders into a list where + * each key is contained exactly once and multi providers + * have been merged. + * @param {?} providers + * @param {?} normalizedProvidersMap + * @return {?} + */ +function mergeResolvedReflectiveProviders(providers, normalizedProvidersMap) { + for (var /** @type {?} */ i = 0; i < providers.length; i++) { + var /** @type {?} */ provider = providers[i]; + var /** @type {?} */ existing = normalizedProvidersMap.get(provider.key.id); + if (existing) { + if (provider.multiProvider !== existing.multiProvider) { + throw mixingMultiProvidersWithRegularProvidersError(existing, provider); + } + if (provider.multiProvider) { + for (var /** @type {?} */ j = 0; j < provider.resolvedFactories.length; j++) { + existing.resolvedFactories.push(provider.resolvedFactories[j]); + } + } + else { + normalizedProvidersMap.set(provider.key.id, provider); + } + } + else { + var /** @type {?} */ resolvedProvider = void 0; + if (provider.multiProvider) { + resolvedProvider = new ResolvedReflectiveProvider_(provider.key, provider.resolvedFactories.slice(), provider.multiProvider); + } + else { + resolvedProvider = provider; + } + normalizedProvidersMap.set(provider.key.id, resolvedProvider); + } + } + return normalizedProvidersMap; +} +/** + * @param {?} providers + * @param {?} res + * @return {?} + */ +function _normalizeProviders(providers, res) { + providers.forEach(function (b) { + if (b instanceof Type) { + res.push({ provide: b, useClass: b }); + } + else if (b && typeof b == 'object' && ((b)).provide !== undefined) { + res.push(/** @type {?} */ (b)); + } + else if (b instanceof Array) { + _normalizeProviders(b, res); + } + else { + throw invalidProviderError(b); + } + }); + return res; +} +/** + * @param {?} typeOrFunc + * @param {?=} dependencies + * @return {?} + */ +function constructDependencies(typeOrFunc, dependencies) { + if (!dependencies) { + return _dependenciesFor(typeOrFunc); + } + else { + var /** @type {?} */ params_1 = dependencies.map(function (t) { return [t]; }); + return dependencies.map(function (t) { return _extractToken(typeOrFunc, t, params_1); }); + } +} +/** + * @param {?} typeOrFunc + * @return {?} + */ +function _dependenciesFor(typeOrFunc) { + var /** @type {?} */ params = reflector.parameters(typeOrFunc); + if (!params) + return []; + if (params.some(function (p) { return p == null; })) { + throw noAnnotationError(typeOrFunc, params); + } + return params.map(function (p) { return _extractToken(typeOrFunc, p, params); }); +} +/** + * @param {?} typeOrFunc + * @param {?} metadata + * @param {?} params + * @return {?} + */ +function _extractToken(typeOrFunc, metadata, params) { + var /** @type {?} */ token = null; + var /** @type {?} */ optional = false; + if (!Array.isArray(metadata)) { + if (metadata instanceof Inject) { + return _createDependency(metadata.token, optional, null); + } + else { + return _createDependency(metadata, optional, null); + } + } + var /** @type {?} */ visibility = null; + for (var /** @type {?} */ i = 0; i < metadata.length; ++i) { + var /** @type {?} */ paramMetadata = metadata[i]; + if (paramMetadata instanceof Type) { + token = paramMetadata; + } + else if (paramMetadata instanceof Inject) { + token = paramMetadata.token; + } + else if (paramMetadata instanceof Optional) { + optional = true; + } + else if (paramMetadata instanceof Self || paramMetadata instanceof SkipSelf) { + visibility = paramMetadata; + } + else if (paramMetadata instanceof InjectionToken) { + token = paramMetadata; + } + } + token = resolveForwardRef(token); + if (token != null) { + return _createDependency(token, optional, visibility); + } + else { + throw noAnnotationError(typeOrFunc, params); + } +} +/** + * @param {?} token + * @param {?} optional + * @param {?} visibility + * @return {?} + */ +function _createDependency(token, optional, visibility) { + return new ReflectiveDependency(ReflectiveKey.get(token), optional, visibility); +} +/** + * @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 + */ +// Threshold for the dynamic version +var UNDEFINED = new Object(); +/** + * A ReflectiveDependency injection container used for instantiating objects and resolving + * dependencies. + * + * An `Injector` is a replacement for a `new` operator, which can automatically resolve the + * constructor dependencies. + * + * In typical use, application code asks for the dependencies in the constructor and they are + * resolved by the `Injector`. + * + * ### Example ([live demo](http://plnkr.co/edit/jzjec0?p=preview)) + * + * The following example creates an `Injector` configured to create `Engine` and `Car`. + * + * ```typescript + * \@Injectable() + * class Engine { + * } + * + * \@Injectable() + * class Car { + * constructor(public engine:Engine) {} + * } + * + * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]); + * var car = injector.get(Car); + * expect(car instanceof Car).toBe(true); + * expect(car.engine instanceof Engine).toBe(true); + * ``` + * + * Notice, we don't use the `new` operator because we explicitly want to have the `Injector` + * resolve all of the object's dependencies automatically. + * + * \@stable + * @abstract + */ +var ReflectiveInjector = (function () { + function ReflectiveInjector() { + } + /** + * Turns an array of provider definitions into an array of resolved providers. + * + * A resolution is a process of flattening multiple nested arrays and converting individual + * providers into an array of {\@link ResolvedReflectiveProvider}s. + * + * ### Example ([live demo](http://plnkr.co/edit/AiXTHi?p=preview)) + * + * ```typescript + * \@Injectable() + * class Engine { + * } + * + * \@Injectable() + * class Car { + * constructor(public engine:Engine) {} + * } + * + * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]); + * + * expect(providers.length).toEqual(2); + * + * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true); + * expect(providers[0].key.displayName).toBe("Car"); + * expect(providers[0].dependencies.length).toEqual(1); + * expect(providers[0].factory).toBeDefined(); + * + * expect(providers[1].key.displayName).toBe("Engine"); + * }); + * ``` + * + * See {\@link ReflectiveInjector#fromResolvedProviders} for more info. + * @param {?} providers + * @return {?} + */ + ReflectiveInjector.resolve = function (providers) { + return resolveReflectiveProviders(providers); + }; + /** + * Resolves an array of providers and creates an injector from those providers. + * + * The passed-in providers can be an array of `Type`, {\@link Provider}, + * or a recursive array of more providers. + * + * ### Example ([live demo](http://plnkr.co/edit/ePOccA?p=preview)) + * + * ```typescript + * \@Injectable() + * class Engine { + * } + * + * \@Injectable() + * class Car { + * constructor(public engine:Engine) {} + * } + * + * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]); + * expect(injector.get(Car) instanceof Car).toBe(true); + * ``` + * + * This function is slower than the corresponding `fromResolvedProviders` + * because it needs to resolve the passed-in providers first. + * See {\@link ReflectiveInjector#resolve} and {\@link ReflectiveInjector#fromResolvedProviders}. + * @param {?} providers + * @param {?=} parent + * @return {?} + */ + ReflectiveInjector.resolveAndCreate = function (providers, parent) { + var /** @type {?} */ ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers); + return ReflectiveInjector.fromResolvedProviders(ResolvedReflectiveProviders, parent); + }; + /** + * Creates an injector from previously resolved providers. + * + * This API is the recommended way to construct injectors in performance-sensitive parts. + * + * ### Example ([live demo](http://plnkr.co/edit/KrSMci?p=preview)) + * + * ```typescript + * \@Injectable() + * class Engine { + * } + * + * \@Injectable() + * class Car { + * constructor(public engine:Engine) {} + * } + * + * var providers = ReflectiveInjector.resolve([Car, Engine]); + * var injector = ReflectiveInjector.fromResolvedProviders(providers); + * expect(injector.get(Car) instanceof Car).toBe(true); + * ``` + * \@experimental + * @param {?} providers + * @param {?=} parent + * @return {?} + */ + ReflectiveInjector.fromResolvedProviders = function (providers, parent) { + return new ReflectiveInjector_(providers, parent); + }; + /** + * Parent of this injector. + * + * + * + * ### Example ([live demo](http://plnkr.co/edit/eosMGo?p=preview)) + * + * ```typescript + * var parent = ReflectiveInjector.resolveAndCreate([]); + * var child = parent.resolveAndCreateChild([]); + * expect(child.parent).toBe(parent); + * ``` + * @abstract + * @return {?} + */ + ReflectiveInjector.prototype.parent = function () { }; + /** + * Resolves an array of providers and creates a child injector from those providers. + * + * + * + * The passed-in providers can be an array of `Type`, {\@link Provider}, + * or a recursive array of more providers. + * + * ### Example ([live demo](http://plnkr.co/edit/opB3T4?p=preview)) + * + * ```typescript + * class ParentProvider {} + * class ChildProvider {} + * + * var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]); + * var child = parent.resolveAndCreateChild([ChildProvider]); + * + * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true); + * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true); + * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider)); + * ``` + * + * This function is slower than the corresponding `createChildFromResolved` + * because it needs to resolve the passed-in providers first. + * See {\@link ReflectiveInjector#resolve} and {\@link ReflectiveInjector#createChildFromResolved}. + * @abstract + * @param {?} providers + * @return {?} + */ + ReflectiveInjector.prototype.resolveAndCreateChild = function (providers) { }; + /** + * Creates a child injector from previously resolved providers. + * + * + * + * This API is the recommended way to construct injectors in performance-sensitive parts. + * + * ### Example ([live demo](http://plnkr.co/edit/VhyfjN?p=preview)) + * + * ```typescript + * class ParentProvider {} + * class ChildProvider {} + * + * var parentProviders = ReflectiveInjector.resolve([ParentProvider]); + * var childProviders = ReflectiveInjector.resolve([ChildProvider]); + * + * var parent = ReflectiveInjector.fromResolvedProviders(parentProviders); + * var child = parent.createChildFromResolved(childProviders); + * + * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true); + * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true); + * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider)); + * ``` + * @abstract + * @param {?} providers + * @return {?} + */ + ReflectiveInjector.prototype.createChildFromResolved = function (providers) { }; + /** + * Resolves a provider and instantiates an object in the context of the injector. + * + * The created object does not get cached by the injector. + * + * ### Example ([live demo](http://plnkr.co/edit/yvVXoB?p=preview)) + * + * ```typescript + * \@Injectable() + * class Engine { + * } + * + * \@Injectable() + * class Car { + * constructor(public engine:Engine) {} + * } + * + * var injector = ReflectiveInjector.resolveAndCreate([Engine]); + * + * var car = injector.resolveAndInstantiate(Car); + * expect(car.engine).toBe(injector.get(Engine)); + * expect(car).not.toBe(injector.resolveAndInstantiate(Car)); + * ``` + * @abstract + * @param {?} provider + * @return {?} + */ + ReflectiveInjector.prototype.resolveAndInstantiate = function (provider) { }; + /** + * Instantiates an object using a resolved provider in the context of the injector. + * + * The created object does not get cached by the injector. + * + * ### Example ([live demo](http://plnkr.co/edit/ptCImQ?p=preview)) + * + * ```typescript + * \@Injectable() + * class Engine { + * } + * + * \@Injectable() + * class Car { + * constructor(public engine:Engine) {} + * } + * + * var injector = ReflectiveInjector.resolveAndCreate([Engine]); + * var carProvider = ReflectiveInjector.resolve([Car])[0]; + * var car = injector.instantiateResolved(carProvider); + * expect(car.engine).toBe(injector.get(Engine)); + * expect(car).not.toBe(injector.instantiateResolved(carProvider)); + * ``` + * @abstract + * @param {?} provider + * @return {?} + */ + ReflectiveInjector.prototype.instantiateResolved = function (provider) { }; + /** + * @abstract + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + ReflectiveInjector.prototype.get = function (token, notFoundValue) { }; + return ReflectiveInjector; +}()); +var ReflectiveInjector_ = (function () { + /** + * Private + * @param {?} _providers + * @param {?=} _parent + */ + function ReflectiveInjector_(_providers, _parent) { + /** + * \@internal + */ + this._constructionCounter = 0; + this._providers = _providers; + this._parent = _parent || null; + var len = _providers.length; + this.keyIds = new Array(len); + this.objs = new Array(len); + for (var i = 0; i < len; i++) { + this.keyIds[i] = _providers[i].key.id; + this.objs[i] = UNDEFINED; + } + } + /** + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype.get = function (token, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = THROW_IF_NOT_FOUND; } + return this._getByKey(ReflectiveKey.get(token), null, notFoundValue); + }; + Object.defineProperty(ReflectiveInjector_.prototype, "parent", { + /** + * @return {?} + */ + get: function () { return this._parent; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} providers + * @return {?} + */ + ReflectiveInjector_.prototype.resolveAndCreateChild = function (providers) { + var /** @type {?} */ ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers); + return this.createChildFromResolved(ResolvedReflectiveProviders); + }; + /** + * @param {?} providers + * @return {?} + */ + ReflectiveInjector_.prototype.createChildFromResolved = function (providers) { + var /** @type {?} */ inj = new ReflectiveInjector_(providers); + inj._parent = this; + return inj; + }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype.resolveAndInstantiate = function (provider) { + return this.instantiateResolved(ReflectiveInjector.resolve([provider])[0]); + }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype.instantiateResolved = function (provider) { + return this._instantiateProvider(provider); + }; + /** + * @param {?} index + * @return {?} + */ + ReflectiveInjector_.prototype.getProviderAtIndex = function (index) { + if (index < 0 || index >= this._providers.length) { + throw outOfBoundsError(index); + } + return this._providers[index]; + }; + /** + * \@internal + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype._new = function (provider) { + if (this._constructionCounter++ > this._getMaxNumberOfObjects()) { + throw cyclicDependencyError(this, provider.key); + } + return this._instantiateProvider(provider); + }; + /** + * @return {?} + */ + ReflectiveInjector_.prototype._getMaxNumberOfObjects = function () { return this.objs.length; }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype._instantiateProvider = function (provider) { + if (provider.multiProvider) { + var /** @type {?} */ res = new Array(provider.resolvedFactories.length); + for (var /** @type {?} */ i = 0; i < provider.resolvedFactories.length; ++i) { + res[i] = this._instantiate(provider, provider.resolvedFactories[i]); + } + return res; + } + else { + return this._instantiate(provider, provider.resolvedFactories[0]); + } + }; + /** + * @param {?} provider + * @param {?} ResolvedReflectiveFactory + * @return {?} + */ + ReflectiveInjector_.prototype._instantiate = function (provider, ResolvedReflectiveFactory$$1) { + var _this = this; + var /** @type {?} */ factory = ResolvedReflectiveFactory$$1.factory; + var /** @type {?} */ deps; + try { + deps = + ResolvedReflectiveFactory$$1.dependencies.map(function (dep) { return _this._getByReflectiveDependency(dep); }); + } + catch (e) { + if (e.addKey) { + e.addKey(this, provider.key); + } + throw e; + } + var /** @type {?} */ obj; + try { + obj = factory.apply(void 0, deps); + } + catch (e) { + throw instantiationError(this, e, e.stack, provider.key); + } + return obj; + }; + /** + * @param {?} dep + * @return {?} + */ + ReflectiveInjector_.prototype._getByReflectiveDependency = function (dep) { + return this._getByKey(dep.key, dep.visibility, dep.optional ? null : THROW_IF_NOT_FOUND); + }; + /** + * @param {?} key + * @param {?} visibility + * @param {?} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype._getByKey = function (key, visibility, notFoundValue) { + if (key === INJECTOR_KEY) { + return this; + } + if (visibility instanceof Self) { + return this._getByKeySelf(key, notFoundValue); + } + else { + return this._getByKeyDefault(key, notFoundValue, visibility); + } + }; + /** + * @param {?} keyId + * @return {?} + */ + ReflectiveInjector_.prototype._getObjByKeyId = function (keyId) { + for (var /** @type {?} */ i = 0; i < this.keyIds.length; i++) { + if (this.keyIds[i] === keyId) { + if (this.objs[i] === UNDEFINED) { + this.objs[i] = this._new(this._providers[i]); + } + return this.objs[i]; + } + } + return UNDEFINED; + }; + /** + * \@internal + * @param {?} key + * @param {?} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype._throwOrNull = function (key, notFoundValue) { + if (notFoundValue !== THROW_IF_NOT_FOUND) { + return notFoundValue; + } + else { + throw noProviderError(this, key); + } + }; + /** + * \@internal + * @param {?} key + * @param {?} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype._getByKeySelf = function (key, notFoundValue) { + var /** @type {?} */ obj = this._getObjByKeyId(key.id); + return (obj !== UNDEFINED) ? obj : this._throwOrNull(key, notFoundValue); + }; + /** + * \@internal + * @param {?} key + * @param {?} notFoundValue + * @param {?} visibility + * @return {?} + */ + ReflectiveInjector_.prototype._getByKeyDefault = function (key, notFoundValue, visibility) { + var /** @type {?} */ inj; + if (visibility instanceof SkipSelf) { + inj = this._parent; + } + else { + inj = this; + } + while (inj instanceof ReflectiveInjector_) { + var /** @type {?} */ inj_ = (inj); + var /** @type {?} */ obj = inj_._getObjByKeyId(key.id); + if (obj !== UNDEFINED) + return obj; + inj = inj_._parent; + } + if (inj !== null) { + return inj.get(key.token, notFoundValue); + } + else { + return this._throwOrNull(key, notFoundValue); + } + }; + Object.defineProperty(ReflectiveInjector_.prototype, "displayName", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ providers = _mapProviders(this, function (b) { return ' "' + b.key.displayName + '" '; }) + .join(', '); + return "ReflectiveInjector(providers: [" + providers + "])"; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ReflectiveInjector_.prototype.toString = function () { return this.displayName; }; + return ReflectiveInjector_; +}()); +var INJECTOR_KEY = ReflectiveKey.get(Injector); +/** + * @param {?} injector + * @param {?} fn + * @return {?} + */ +function _mapProviders(injector, fn) { + var /** @type {?} */ res = new Array(injector._providers.length); + for (var /** @type {?} */ i = 0; i < injector._providers.length; ++i) { + res[i] = fn(injector.getProviderAtIndex(i)); + } + return res; +} +/** + * @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 + * The `di` module provides dependency injection container services. + */ +/** + * @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 + */ +/** + * Determine if the argument is shaped like a Promise + * @param {?} obj + * @return {?} + */ +function isPromise(obj) { + // allow any Promise/A+ compliant thenable. + // It's up to the caller to ensure that obj.then conforms to the spec + return !!obj && typeof obj.then === 'function'; +} +/** + * Determine if the argument is an Observable + * @param {?} obj + * @return {?} + */ +function isObservable(obj) { + // TODO use Symbol.observable when https://github.com/ReactiveX/rxjs/issues/2415 will be resolved + return !!obj && typeof obj.subscribe === 'function'; +} +/** + * @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 + */ +/** + * A function that will be executed when an application is initialized. + * \@experimental + */ +var APP_INITIALIZER = new InjectionToken('Application Initializer'); +/** + * A class that reflects the state of running {\@link APP_INITIALIZER}s. + * + * \@experimental + */ +var ApplicationInitStatus = (function () { + /** + * @param {?} appInits + */ + function ApplicationInitStatus(appInits) { + var _this = this; + this.appInits = appInits; + this.initialized = false; + this._done = false; + this._donePromise = new Promise(function (res, rej) { + _this.resolve = res; + _this.reject = rej; + }); + } + /** + * \@internal + * @return {?} + */ + ApplicationInitStatus.prototype.runInitializers = function () { + var _this = this; + if (this.initialized) { + return; + } + var /** @type {?} */ asyncInitPromises = []; + var /** @type {?} */ complete = function () { + _this._done = true; + _this.resolve(); + }; + if (this.appInits) { + for (var /** @type {?} */ i = 0; i < this.appInits.length; i++) { + var /** @type {?} */ initResult = this.appInits[i](); + if (isPromise(initResult)) { + asyncInitPromises.push(initResult); + } + } + } + Promise.all(asyncInitPromises).then(function () { complete(); }).catch(function (e) { _this.reject(e); }); + if (asyncInitPromises.length === 0) { + complete(); + } + this.initialized = true; + }; + Object.defineProperty(ApplicationInitStatus.prototype, "done", { + /** + * @return {?} + */ + get: function () { return this._done; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ApplicationInitStatus.prototype, "donePromise", { + /** + * @return {?} + */ + get: function () { return this._donePromise; }, + enumerable: true, + configurable: true + }); + return ApplicationInitStatus; +}()); +ApplicationInitStatus.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +ApplicationInitStatus.ctorParameters = function () { return [ + { type: Array, decorators: [{ type: Inject, args: [APP_INITIALIZER,] }, { type: Optional },] }, +]; }; +/** + * @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 + */ +/** + * A DI Token representing a unique string id assigned to the application by Angular and used + * primarily for prefixing application attributes and CSS styles when + * {\@link ViewEncapsulation#Emulated} is being used. + * + * If you need to avoid randomly generated value to be used as an application id, you can provide + * a custom value via a DI provider configuring the root {\@link Injector} + * using this token. + * \@experimental + */ +var APP_ID = new InjectionToken('AppId'); +/** + * @return {?} + */ +function _appIdRandomProviderFactory() { + return "" + _randomChar() + _randomChar() + _randomChar(); +} +/** + * Providers that will generate a random APP_ID_TOKEN. + * \@experimental + */ +var APP_ID_RANDOM_PROVIDER = { + provide: APP_ID, + useFactory: _appIdRandomProviderFactory, + deps: [], +}; +/** + * @return {?} + */ +function _randomChar() { + return String.fromCharCode(97 + Math.floor(Math.random() * 25)); +} +/** + * A function that will be executed when a platform is initialized. + * \@experimental + */ +var PLATFORM_INITIALIZER = new InjectionToken('Platform Initializer'); +/** + * A token that indicates an opaque platform id. + * \@experimental + */ +var PLATFORM_ID = new InjectionToken('Platform ID'); +/** + * All callbacks provided via this token will be called for every component that is bootstrapped. + * Signature of the callback: + * + * `(componentRef: ComponentRef) => void`. + * + * \@experimental + */ +var APP_BOOTSTRAP_LISTENER = new InjectionToken('appBootstrapListener'); +/** + * A token which indicates the root directory of the application + * \@experimental + */ +var PACKAGE_ROOT_URL = new InjectionToken('Application Packages Root URL'); +/** + * @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 Console = (function () { + function Console() { + } + /** + * @param {?} message + * @return {?} + */ + Console.prototype.log = function (message) { + // tslint:disable-next-line:no-console + console.log(message); + }; + /** + * @param {?} message + * @return {?} + */ + Console.prototype.warn = function (message) { + // tslint:disable-next-line:no-console + console.warn(message); + }; + return Console; +}()); +Console.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +Console.ctorParameters = function () { return []; }; +/** + * @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 + */ +/** + * Combination of NgModuleFactory and ComponentFactorys. + * + * \@experimental + */ +var ModuleWithComponentFactories = (function () { + /** + * @param {?} ngModuleFactory + * @param {?} componentFactories + */ + function ModuleWithComponentFactories(ngModuleFactory, componentFactories) { + this.ngModuleFactory = ngModuleFactory; + this.componentFactories = componentFactories; + } + return ModuleWithComponentFactories; +}()); +/** + * @return {?} + */ +function _throwError() { + throw new Error("Runtime compiler is not loaded"); +} +/** + * Low-level service for running the angular compiler during runtime + * to create {\@link ComponentFactory}s, which + * can later be used to create and render a Component instance. + * + * Each `\@NgModule` provides an own `Compiler` to its injector, + * that will use the directives/pipes of the ng module for compilation + * of components. + * \@stable + */ +var Compiler = (function () { + function Compiler() { + } + /** + * Compiles the given NgModule and all of its components. All templates of the components listed + * in `entryComponents` have to be inlined. + * @template T + * @param {?} moduleType + * @return {?} + */ + Compiler.prototype.compileModuleSync = function (moduleType) { throw _throwError(); }; + /** + * Compiles the given NgModule and all of its components + * @template T + * @param {?} moduleType + * @return {?} + */ + Compiler.prototype.compileModuleAsync = function (moduleType) { throw _throwError(); }; + /** + * Same as {\@link #compileModuleSync} but also creates ComponentFactories for all components. + * @template T + * @param {?} moduleType + * @return {?} + */ + Compiler.prototype.compileModuleAndAllComponentsSync = function (moduleType) { + throw _throwError(); + }; + /** + * Same as {\@link #compileModuleAsync} but also creates ComponentFactories for all components. + * @template T + * @param {?} moduleType + * @return {?} + */ + Compiler.prototype.compileModuleAndAllComponentsAsync = function (moduleType) { + throw _throwError(); + }; + /** + * Exposes the CSS-style selectors that have been used in `ngContent` directives within + * the template of the given component. + * This is used by the `upgrade` library to compile the appropriate transclude content + * in the AngularJS wrapper component. + * + * @deprecated since v4. Use ComponentFactory.ngContentSelectors instead. + * @param {?} component + * @return {?} + */ + Compiler.prototype.getNgContentSelectors = function (component) { throw _throwError(); }; + /** + * Clears all caches. + * @return {?} + */ + Compiler.prototype.clearCache = function () { }; + /** + * Clears the cache for the given component/ngModule. + * @param {?} type + * @return {?} + */ + Compiler.prototype.clearCacheFor = function (type) { }; + return Compiler; +}()); +Compiler.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +Compiler.ctorParameters = function () { return []; }; +/** + * Token to provide CompilerOptions in the platform injector. + * + * \@experimental + */ +var COMPILER_OPTIONS = new InjectionToken('compilerOptions'); +/** + * A factory for creating a Compiler + * + * \@experimental + * @abstract + */ +var CompilerFactory = (function () { + function CompilerFactory() { + } + /** + * @abstract + * @param {?=} options + * @return {?} + */ + CompilerFactory.prototype.createCompiler = function (options) { }; + return CompilerFactory; +}()); +/** + * @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 + */ +/** + * Represents an instance of a Component created via a {\@link ComponentFactory}. + * + * `ComponentRef` provides access to the Component Instance as well other objects related to this + * Component Instance and allows you to destroy the Component Instance via the {\@link #destroy} + * method. + * \@stable + * @abstract + */ +var ComponentRef = (function () { + function ComponentRef() { + } + /** + * Location of the Host Element of this Component Instance. + * @abstract + * @return {?} + */ + ComponentRef.prototype.location = function () { }; + /** + * The injector on which the component instance exists. + * @abstract + * @return {?} + */ + ComponentRef.prototype.injector = function () { }; + /** + * The instance of the Component. + * @abstract + * @return {?} + */ + ComponentRef.prototype.instance = function () { }; + /** + * The {\@link ViewRef} of the Host View of this Component instance. + * @abstract + * @return {?} + */ + ComponentRef.prototype.hostView = function () { }; + /** + * The {\@link ChangeDetectorRef} of the Component instance. + * @abstract + * @return {?} + */ + ComponentRef.prototype.changeDetectorRef = function () { }; + /** + * The component type. + * @abstract + * @return {?} + */ + ComponentRef.prototype.componentType = function () { }; + /** + * Destroys the component instance and all of the data structures associated with it. + * @abstract + * @return {?} + */ + ComponentRef.prototype.destroy = function () { }; + /** + * Allows to register a callback that will be called when the component is destroyed. + * @abstract + * @param {?} callback + * @return {?} + */ + ComponentRef.prototype.onDestroy = function (callback) { }; + return ComponentRef; +}()); +/** + * \@stable + * @abstract + */ +var ComponentFactory = (function () { + function ComponentFactory() { + } + /** + * @abstract + * @return {?} + */ + ComponentFactory.prototype.selector = function () { }; + /** + * @abstract + * @return {?} + */ + ComponentFactory.prototype.componentType = function () { }; + /** + * selector for all elements in the component. + * @abstract + * @return {?} + */ + ComponentFactory.prototype.ngContentSelectors = function () { }; + /** + * the inputs of the component. + * @abstract + * @return {?} + */ + ComponentFactory.prototype.inputs = function () { }; + /** + * the outputs of the component. + * @abstract + * @return {?} + */ + ComponentFactory.prototype.outputs = function () { }; + /** + * Creates a new component. + * @abstract + * @param {?} injector + * @param {?=} projectableNodes + * @param {?=} rootSelectorOrNode + * @param {?=} ngModule + * @return {?} + */ + ComponentFactory.prototype.create = function (injector, projectableNodes, rootSelectorOrNode, ngModule) { }; + return ComponentFactory; +}()); +/** + * @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 + */ +/** + * @param {?} component + * @return {?} + */ +function noComponentFactoryError(component) { + var /** @type {?} */ error = Error("No component factory found for " + stringify(component) + ". Did you add it to @NgModule.entryComponents?"); + ((error))[ERROR_COMPONENT] = component; + return error; +} +var ERROR_COMPONENT = 'ngComponent'; +/** + * @param {?} error + * @return {?} + */ +var _NullComponentFactoryResolver = (function () { + function _NullComponentFactoryResolver() { + } + /** + * @template T + * @param {?} component + * @return {?} + */ + _NullComponentFactoryResolver.prototype.resolveComponentFactory = function (component) { + throw noComponentFactoryError(component); + }; + return _NullComponentFactoryResolver; +}()); +/** + * \@stable + * @abstract + */ +var ComponentFactoryResolver = (function () { + function ComponentFactoryResolver() { + } + /** + * @abstract + * @template T + * @param {?} component + * @return {?} + */ + ComponentFactoryResolver.prototype.resolveComponentFactory = function (component) { }; + return ComponentFactoryResolver; +}()); +ComponentFactoryResolver.NULL = new _NullComponentFactoryResolver(); +var CodegenComponentFactoryResolver = (function () { + /** + * @param {?} factories + * @param {?} _parent + * @param {?} _ngModule + */ + function CodegenComponentFactoryResolver(factories, _parent, _ngModule) { + this._parent = _parent; + this._ngModule = _ngModule; + this._factories = new Map(); + for (var i = 0; i < factories.length; i++) { + var factory = factories[i]; + this._factories.set(factory.componentType, factory); + } + } + /** + * @template T + * @param {?} component + * @return {?} + */ + CodegenComponentFactoryResolver.prototype.resolveComponentFactory = function (component) { + var /** @type {?} */ factory = this._factories.get(component); + if (!factory && this._parent) { + factory = this._parent.resolveComponentFactory(component); + } + if (!factory) { + throw noComponentFactoryError(component); + } + return new ComponentFactoryBoundToModule(factory, this._ngModule); + }; + return CodegenComponentFactoryResolver; +}()); +var ComponentFactoryBoundToModule = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](ComponentFactoryBoundToModule, _super); + /** + * @param {?} factory + * @param {?} ngModule + */ + function ComponentFactoryBoundToModule(factory, ngModule) { + var _this = _super.call(this) || this; + _this.factory = factory; + _this.ngModule = ngModule; + return _this; + } + Object.defineProperty(ComponentFactoryBoundToModule.prototype, "selector", { + /** + * @return {?} + */ + get: function () { return this.factory.selector; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentFactoryBoundToModule.prototype, "componentType", { + /** + * @return {?} + */ + get: function () { return this.factory.componentType; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentFactoryBoundToModule.prototype, "ngContentSelectors", { + /** + * @return {?} + */ + get: function () { return this.factory.ngContentSelectors; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentFactoryBoundToModule.prototype, "inputs", { + /** + * @return {?} + */ + get: function () { return this.factory.inputs; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentFactoryBoundToModule.prototype, "outputs", { + /** + * @return {?} + */ + get: function () { return this.factory.outputs; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} injector + * @param {?=} projectableNodes + * @param {?=} rootSelectorOrNode + * @param {?=} ngModule + * @return {?} + */ + ComponentFactoryBoundToModule.prototype.create = function (injector, projectableNodes, rootSelectorOrNode, ngModule) { + return this.factory.create(injector, projectableNodes, rootSelectorOrNode, ngModule || this.ngModule); + }; + return ComponentFactoryBoundToModule; +}(ComponentFactory)); +/** + * @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 + */ +/** + * Represents an instance of an NgModule created via a {\@link NgModuleFactory}. + * + * `NgModuleRef` provides access to the NgModule Instance as well other objects related to this + * NgModule Instance. + * + * \@stable + * @abstract + */ +var NgModuleRef = (function () { + function NgModuleRef() { + } + /** + * The injector that contains all of the providers of the NgModule. + * @abstract + * @return {?} + */ + NgModuleRef.prototype.injector = function () { }; + /** + * The ComponentFactoryResolver to get hold of the ComponentFactories + * declared in the `entryComponents` property of the module. + * @abstract + * @return {?} + */ + NgModuleRef.prototype.componentFactoryResolver = function () { }; + /** + * The NgModule instance. + * @abstract + * @return {?} + */ + NgModuleRef.prototype.instance = function () { }; + /** + * Destroys the module instance and all of the data structures associated with it. + * @abstract + * @return {?} + */ + NgModuleRef.prototype.destroy = function () { }; + /** + * Allows to register a callback that will be called when the module is destroyed. + * @abstract + * @param {?} callback + * @return {?} + */ + NgModuleRef.prototype.onDestroy = function (callback) { }; + return NgModuleRef; +}()); +/** + * \@experimental + * @abstract + */ +var NgModuleFactory = (function () { + function NgModuleFactory() { + } + /** + * @abstract + * @return {?} + */ + NgModuleFactory.prototype.moduleType = function () { }; + /** + * @abstract + * @param {?} parentInjector + * @return {?} + */ + NgModuleFactory.prototype.create = function (parentInjector) { }; + return NgModuleFactory; +}()); +/** + * @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 trace; +var events; +/** + * @return {?} + */ +function detectWTF() { + var /** @type {?} */ wtf = ((_global) /** TODO #9100 */)['wtf']; + if (wtf) { + trace = wtf['trace']; + if (trace) { + events = trace['events']; + return true; + } + } + return false; +} +/** + * @param {?} signature + * @param {?=} flags + * @return {?} + */ +function createScope$1(signature, flags) { + if (flags === void 0) { flags = null; } + return events.createScope(signature, flags); +} +/** + * @template T + * @param {?} scope + * @param {?=} returnValue + * @return {?} + */ +function leave(scope, returnValue) { + trace.leaveScope(scope, returnValue); + return returnValue; +} +/** + * @param {?} rangeType + * @param {?} action + * @return {?} + */ +function startTimeRange(rangeType, action) { + return trace.beginTimeRange(rangeType, action); +} +/** + * @param {?} range + * @return {?} + */ +function endTimeRange(range) { + trace.endTimeRange(range); +} +/** + * @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 + */ +/** + * True if WTF is enabled. + */ +var wtfEnabled = detectWTF(); +/** + * @param {?=} arg0 + * @param {?=} arg1 + * @return {?} + */ +function noopScope(arg0, arg1) { + return null; +} +/** + * Create trace scope. + * + * Scopes must be strictly nested and are analogous to stack frames, but + * do not have to follow the stack frames. Instead it is recommended that they follow logical + * nesting. You may want to use + * [Event + * Signatures](http://google.github.io/tracing-framework/instrumenting-code.html#custom-events) + * as they are defined in WTF. + * + * Used to mark scope entry. The return value is used to leave the scope. + * + * var myScope = wtfCreateScope('MyClass#myMethod(ascii someVal)'); + * + * someMethod() { + * var s = myScope('Foo'); // 'Foo' gets stored in tracing UI + * // DO SOME WORK HERE + * return wtfLeave(s, 123); // Return value 123 + * } + * + * Note, adding try-finally block around the work to ensure that `wtfLeave` gets called can + * negatively impact the performance of your application. For this reason we recommend that + * you don't add them to ensure that `wtfLeave` gets called. In production `wtfLeave` is a noop and + * so try-finally block has no value. When debugging perf issues, skipping `wtfLeave`, do to + * exception, will produce incorrect trace, but presence of exception signifies logic error which + * needs to be fixed before the app should be profiled. Add try-finally only when you expect that + * an exception is expected during normal execution while profiling. + * + * \@experimental + */ +var wtfCreateScope = wtfEnabled ? createScope$1 : function (signature, flags) { return noopScope; }; +/** + * Used to mark end of Scope. + * + * - `scope` to end. + * - `returnValue` (optional) to be passed to the WTF. + * + * Returns the `returnValue for easy chaining. + * \@experimental + */ +var wtfLeave = wtfEnabled ? leave : function (s, r) { return r; }; +/** + * Used to mark Async start. Async are similar to scope but they don't have to be strictly nested. + * The return value is used in the call to [endAsync]. Async ranges only work if WTF has been + * enabled. + * + * someMethod() { + * var s = wtfStartTimeRange('HTTP:GET', 'some.url'); + * var future = new Future.delay(5).then((_) { + * wtfEndTimeRange(s); + * }); + * } + * \@experimental + */ +var wtfStartTimeRange = wtfEnabled ? startTimeRange : function (rangeType, action) { return null; }; +/** + * Ends a async time range operation. + * [range] is the return value from [wtfStartTimeRange] Async ranges only work if WTF has been + * enabled. + * \@experimental + */ +var wtfEndTimeRange = wtfEnabled ? endTimeRange : function (r) { return null; }; +/** + * @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 + */ +/** + * Use by directives and components to emit custom Events. + * + * ### Examples + * + * In the following example, `Zippy` alternatively emits `open` and `close` events when its + * title gets clicked: + * + * ``` + * \@Component({ + * selector: 'zippy', + * template: ` + *
+ *
Toggle
+ *
+ * + *
+ *
`}) + * export class Zippy { + * visible: boolean = true; + * \@Output() open: EventEmitter = new EventEmitter(); + * \@Output() close: EventEmitter = new EventEmitter(); + * + * toggle() { + * this.visible = !this.visible; + * if (this.visible) { + * this.open.emit(null); + * } else { + * this.close.emit(null); + * } + * } + * } + * ``` + * + * The events payload can be accessed by the parameter `$event` on the components output event + * handler: + * + * ``` + * + * ``` + * + * Uses Rx.Observable but provides an adapter to make it work as specified here: + * https://github.com/jhusain/observable-spec + * + * Once a reference implementation of the spec is available, switch to it. + * \@stable + */ +var EventEmitter = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](EventEmitter, _super); + /** + * Creates an instance of {\@link EventEmitter}, which depending on `isAsync`, + * delivers events synchronously or asynchronously. + * + * @param {?=} isAsync By default, events are delivered synchronously (default value: `false`). + * Set to `true` for asynchronous event delivery. + */ + function EventEmitter(isAsync) { + if (isAsync === void 0) { isAsync = false; } + var _this = _super.call(this) || this; + _this.__isAsync = isAsync; + return _this; + } + /** + * @param {?=} value + * @return {?} + */ + EventEmitter.prototype.emit = function (value) { _super.prototype.next.call(this, value); }; + /** + * @param {?=} generatorOrNext + * @param {?=} error + * @param {?=} complete + * @return {?} + */ + EventEmitter.prototype.subscribe = function (generatorOrNext, error, complete) { + var /** @type {?} */ schedulerFn; + var /** @type {?} */ errorFn = function (err) { return null; }; + var /** @type {?} */ completeFn = function () { return null; }; + if (generatorOrNext && typeof generatorOrNext === 'object') { + schedulerFn = this.__isAsync ? function (value) { + setTimeout(function () { return generatorOrNext.next(value); }); + } : function (value) { generatorOrNext.next(value); }; + if (generatorOrNext.error) { + errorFn = this.__isAsync ? function (err) { setTimeout(function () { return generatorOrNext.error(err); }); } : + function (err) { generatorOrNext.error(err); }; + } + if (generatorOrNext.complete) { + completeFn = this.__isAsync ? function () { setTimeout(function () { return generatorOrNext.complete(); }); } : + function () { generatorOrNext.complete(); }; + } + } + else { + schedulerFn = this.__isAsync ? function (value) { setTimeout(function () { return generatorOrNext(value); }); } : + function (value) { generatorOrNext(value); }; + if (error) { + errorFn = + this.__isAsync ? function (err) { setTimeout(function () { return error(err); }); } : function (err) { error(err); }; + } + if (complete) { + completeFn = + this.__isAsync ? function () { setTimeout(function () { return complete(); }); } : function () { complete(); }; + } + } + return _super.prototype.subscribe.call(this, schedulerFn, errorFn, completeFn); + }; + return EventEmitter; +}(__WEBPACK_IMPORTED_MODULE_4_rxjs_Subject__["Subject"])); +/** + * @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 + */ +/** + * An injectable service for executing work inside or outside of the Angular zone. + * + * The most common use of this service is to optimize performance when starting a work consisting of + * one or more asynchronous tasks that don't require UI updates or error handling to be handled by + * Angular. Such tasks can be kicked off via {\@link #runOutsideAngular} and if needed, these tasks + * can reenter the Angular zone via {\@link #run}. + * + * + * + * ### Example + * + * ``` + * import {Component, NgZone} from '\@angular/core'; + * import {NgIf} from '\@angular/common'; + * + * \@Component({ + * selector: 'ng-zone-demo'. + * template: ` + *

Demo: NgZone

+ * + *

Progress: {{progress}}%

+ *

Done processing {{label}} of Angular zone!

+ * + * + * + * `, + * }) + * export class NgZoneDemo { + * progress: number = 0; + * label: string; + * + * constructor(private _ngZone: NgZone) {} + * + * // Loop inside the Angular zone + * // so the UI DOES refresh after each setTimeout cycle + * processWithinAngularZone() { + * this.label = 'inside'; + * this.progress = 0; + * this._increaseProgress(() => console.log('Inside Done!')); + * } + * + * // Loop outside of the Angular zone + * // so the UI DOES NOT refresh after each setTimeout cycle + * processOutsideOfAngularZone() { + * this.label = 'outside'; + * this.progress = 0; + * this._ngZone.runOutsideAngular(() => { + * this._increaseProgress(() => { + * // reenter the Angular zone and display done + * this._ngZone.run(() => {console.log('Outside Done!') }); + * }})); + * } + * + * _increaseProgress(doneCallback: () => void) { + * this.progress += 1; + * console.log(`Current progress: ${this.progress}%`); + * + * if (this.progress < 100) { + * window.setTimeout(() => this._increaseProgress(doneCallback)), 10) + * } else { + * doneCallback(); + * } + * } + * } + * ``` + * + * \@experimental + */ +var NgZone = (function () { + /** + * @param {?} __0 + */ + function NgZone(_a) { + var _b = _a.enableLongStackTrace, enableLongStackTrace = _b === void 0 ? false : _b; + this.hasPendingMicrotasks = false; + this.hasPendingMacrotasks = false; + /** + * Whether there are no outstanding microtasks or macrotasks. + */ + this.isStable = true; + /** + * Notifies when code enters Angular Zone. This gets fired first on VM Turn. + */ + this.onUnstable = new EventEmitter(false); + /** + * Notifies when there is no more microtasks enqueue in the current VM Turn. + * This is a hint for Angular to do change detection, which may enqueue more microtasks. + * For this reason this event can fire multiple times per VM Turn. + */ + this.onMicrotaskEmpty = new EventEmitter(false); + /** + * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which + * implies we are about to relinquish VM turn. + * This event gets called just once. + */ + this.onStable = new EventEmitter(false); + /** + * Notifies that an error has been delivered. + */ + this.onError = new EventEmitter(false); + if (typeof Zone == 'undefined') { + throw new Error('Angular requires Zone.js prolyfill.'); + } + Zone.assertZonePatched(); + var self = this; + self._nesting = 0; + self._outer = self._inner = Zone.current; + if (Zone['wtfZoneSpec']) { + self._inner = self._inner.fork(Zone['wtfZoneSpec']); + } + if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) { + self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']); + } + forkInnerZoneWithAngularBehavior(self); + } + /** + * @return {?} + */ + NgZone.isInAngularZone = function () { return Zone.current.get('isAngularZone') === true; }; + /** + * @return {?} + */ + NgZone.assertInAngularZone = function () { + if (!NgZone.isInAngularZone()) { + throw new Error('Expected to be in Angular Zone, but it is not!'); + } + }; + /** + * @return {?} + */ + NgZone.assertNotInAngularZone = function () { + if (NgZone.isInAngularZone()) { + throw new Error('Expected to not be in Angular Zone, but it is!'); + } + }; + /** + * Executes the `fn` function synchronously within the Angular zone and returns value returned by + * the function. + * + * Running functions via `run` allows you to reenter Angular zone from a task that was executed + * outside of the Angular zone (typically started via {\@link #runOutsideAngular}). + * + * Any future tasks or microtasks scheduled from within this function will continue executing from + * within the Angular zone. + * + * If a synchronous error happens it will be rethrown and not reported via `onError`. + * @param {?} fn + * @return {?} + */ + NgZone.prototype.run = function (fn) { return (((this)))._inner.run(fn); }; + /** + * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not + * rethrown. + * @param {?} fn + * @return {?} + */ + NgZone.prototype.runGuarded = function (fn) { return (((this)))._inner.runGuarded(fn); }; + /** + * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by + * the function. + * + * Running functions via {\@link #runOutsideAngular} allows you to escape Angular's zone and do + * work that + * doesn't trigger Angular change-detection or is subject to Angular's error handling. + * + * Any future tasks or microtasks scheduled from within this function will continue executing from + * outside of the Angular zone. + * + * Use {\@link #run} to reenter the Angular zone and do work that updates the application model. + * @param {?} fn + * @return {?} + */ + NgZone.prototype.runOutsideAngular = function (fn) { return (((this)))._outer.run(fn); }; + return NgZone; +}()); +/** + * @param {?} zone + * @return {?} + */ +function checkStable(zone) { + if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) { + try { + zone._nesting++; + zone.onMicrotaskEmpty.emit(null); + } + finally { + zone._nesting--; + if (!zone.hasPendingMicrotasks) { + try { + zone.runOutsideAngular(function () { return zone.onStable.emit(null); }); + } + finally { + zone.isStable = true; + } + } + } + } +} +/** + * @param {?} zone + * @return {?} + */ +function forkInnerZoneWithAngularBehavior(zone) { + zone._inner = zone._inner.fork({ + name: 'angular', + properties: /** @type {?} */ ({ 'isAngularZone': true }), + onInvokeTask: function (delegate, current, target, task, applyThis, applyArgs) { + try { + onEnter(zone); + return delegate.invokeTask(target, task, applyThis, applyArgs); + } + finally { + onLeave(zone); + } + }, + onInvoke: function (delegate, current, target, callback, applyThis, applyArgs, source) { + try { + onEnter(zone); + return delegate.invoke(target, callback, applyThis, applyArgs, source); + } + finally { + onLeave(zone); + } + }, + onHasTask: function (delegate, current, target, hasTaskState) { + delegate.hasTask(target, hasTaskState); + if (current === target) { + // We are only interested in hasTask events which originate from our zone + // (A child hasTask event is not interesting to us) + if (hasTaskState.change == 'microTask') { + zone.hasPendingMicrotasks = hasTaskState.microTask; + checkStable(zone); + } + else if (hasTaskState.change == 'macroTask') { + zone.hasPendingMacrotasks = hasTaskState.macroTask; + } + } + }, + onHandleError: function (delegate, current, target, error) { + delegate.handleError(target, error); + zone.onError.emit(error); + return false; + } + }); +} +/** + * @param {?} zone + * @return {?} + */ +function onEnter(zone) { + zone._nesting++; + if (zone.isStable) { + zone.isStable = false; + zone.onUnstable.emit(null); + } +} +/** + * @param {?} zone + * @return {?} + */ +function onLeave(zone) { + zone._nesting--; + checkStable(zone); +} +/** + * @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 + */ +/** + * The Testability service provides testing hooks that can be accessed from + * the browser and by services such as Protractor. Each bootstrapped Angular + * application on the page will have an instance of Testability. + * \@experimental + */ +var Testability = (function () { + /** + * @param {?} _ngZone + */ + function Testability(_ngZone) { + this._ngZone = _ngZone; + /** + * \@internal + */ + this._pendingCount = 0; + /** + * \@internal + */ + this._isZoneStable = true; + /** + * Whether any work was done since the last 'whenStable' callback. This is + * useful to detect if this could have potentially destabilized another + * component while it is stabilizing. + * \@internal + */ + this._didWork = false; + /** + * \@internal + */ + this._callbacks = []; + this._watchAngularEvents(); + } + /** + * \@internal + * @return {?} + */ + Testability.prototype._watchAngularEvents = function () { + var _this = this; + this._ngZone.onUnstable.subscribe({ + next: function () { + _this._didWork = true; + _this._isZoneStable = false; + } + }); + this._ngZone.runOutsideAngular(function () { + _this._ngZone.onStable.subscribe({ + next: function () { + NgZone.assertNotInAngularZone(); + scheduleMicroTask(function () { + _this._isZoneStable = true; + _this._runCallbacksIfReady(); + }); + } + }); + }); + }; + /** + * @return {?} + */ + Testability.prototype.increasePendingRequestCount = function () { + this._pendingCount += 1; + this._didWork = true; + return this._pendingCount; + }; + /** + * @return {?} + */ + Testability.prototype.decreasePendingRequestCount = function () { + this._pendingCount -= 1; + if (this._pendingCount < 0) { + throw new Error('pending async requests below zero'); + } + this._runCallbacksIfReady(); + return this._pendingCount; + }; + /** + * @return {?} + */ + Testability.prototype.isStable = function () { + return this._isZoneStable && this._pendingCount == 0 && !this._ngZone.hasPendingMacrotasks; + }; + /** + * \@internal + * @return {?} + */ + Testability.prototype._runCallbacksIfReady = function () { + var _this = this; + if (this.isStable()) { + // Schedules the call backs in a new frame so that it is always async. + scheduleMicroTask(function () { + while (_this._callbacks.length !== 0) { + (((_this._callbacks.pop())))(_this._didWork); + } + _this._didWork = false; + }); + } + else { + // Not Ready + this._didWork = true; + } + }; + /** + * @param {?} callback + * @return {?} + */ + Testability.prototype.whenStable = function (callback) { + this._callbacks.push(callback); + this._runCallbacksIfReady(); + }; + /** + * @return {?} + */ + Testability.prototype.getPendingRequestCount = function () { return this._pendingCount; }; + /** + * @deprecated use findProviders + * @param {?} using + * @param {?} provider + * @param {?} exactMatch + * @return {?} + */ + Testability.prototype.findBindings = function (using, provider, exactMatch) { + // TODO(juliemr): implement. + return []; + }; + /** + * @param {?} using + * @param {?} provider + * @param {?} exactMatch + * @return {?} + */ + Testability.prototype.findProviders = function (using, provider, exactMatch) { + // TODO(juliemr): implement. + return []; + }; + return Testability; +}()); +Testability.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +Testability.ctorParameters = function () { return [ + { type: NgZone, }, +]; }; +/** + * A global registry of {\@link Testability} instances for specific elements. + * \@experimental + */ +var TestabilityRegistry = (function () { + function TestabilityRegistry() { + /** + * \@internal + */ + this._applications = new Map(); + _testabilityGetter.addToWindow(this); + } + /** + * @param {?} token + * @param {?} testability + * @return {?} + */ + TestabilityRegistry.prototype.registerApplication = function (token, testability) { + this._applications.set(token, testability); + }; + /** + * @param {?} elem + * @return {?} + */ + TestabilityRegistry.prototype.getTestability = function (elem) { return this._applications.get(elem) || null; }; + /** + * @return {?} + */ + TestabilityRegistry.prototype.getAllTestabilities = function () { return Array.from(this._applications.values()); }; + /** + * @return {?} + */ + TestabilityRegistry.prototype.getAllRootElements = function () { return Array.from(this._applications.keys()); }; + /** + * @param {?} elem + * @param {?=} findInAncestors + * @return {?} + */ + TestabilityRegistry.prototype.findTestabilityInTree = function (elem, findInAncestors) { + if (findInAncestors === void 0) { findInAncestors = true; } + return _testabilityGetter.findTestabilityInTree(this, elem, findInAncestors); + }; + return TestabilityRegistry; +}()); +TestabilityRegistry.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +TestabilityRegistry.ctorParameters = function () { return []; }; +var _NoopGetTestability = (function () { + function _NoopGetTestability() { + } + /** + * @param {?} registry + * @return {?} + */ + _NoopGetTestability.prototype.addToWindow = function (registry) { }; + /** + * @param {?} registry + * @param {?} elem + * @param {?} findInAncestors + * @return {?} + */ + _NoopGetTestability.prototype.findTestabilityInTree = function (registry, elem, findInAncestors) { + return null; + }; + return _NoopGetTestability; +}()); +/** + * Set the {\@link GetTestability} implementation used by the Angular testing framework. + * \@experimental + * @param {?} getter + * @return {?} + */ +function setTestabilityGetter(getter) { + _testabilityGetter = getter; +} +var _testabilityGetter = new _NoopGetTestability(); +/** + * @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 _devMode = true; +var _runModeLocked = false; +var _platform; +var ALLOW_MULTIPLE_PLATFORMS = new InjectionToken('AllowMultipleToken'); +/** + * Disable Angular's development mode, which turns off assertions and other + * checks within the framework. + * + * One important assertion this disables verifies that a change detection pass + * does not result in additional changes to any bindings (also known as + * unidirectional data flow). + * + * \@stable + * @return {?} + */ +function enableProdMode() { + if (_runModeLocked) { + throw new Error('Cannot enable prod mode after platform setup.'); + } + _devMode = false; +} +/** + * Returns whether Angular is in development mode. After called once, + * the value is locked and won't change any more. + * + * By default, this is true, unless a user calls `enableProdMode` before calling this. + * + * \@experimental APIs related to application bootstrap are currently under review. + * @return {?} + */ +function isDevMode() { + _runModeLocked = true; + return _devMode; +} +/** + * A token for third-party components that can register themselves with NgProbe. + * + * \@experimental + */ +var NgProbeToken = (function () { + /** + * @param {?} name + * @param {?} token + */ + function NgProbeToken(name, token) { + this.name = name; + this.token = token; + } + return NgProbeToken; +}()); +/** + * Creates a platform. + * Platforms have to be eagerly created via this function. + * + * \@experimental APIs related to application bootstrap are currently under review. + * @param {?} injector + * @return {?} + */ +function createPlatform(injector) { + if (_platform && !_platform.destroyed && + !_platform.injector.get(ALLOW_MULTIPLE_PLATFORMS, false)) { + throw new Error('There can be only one platform. Destroy the previous one to create a new one.'); + } + _platform = injector.get(PlatformRef); + var /** @type {?} */ inits = injector.get(PLATFORM_INITIALIZER, null); + if (inits) + inits.forEach(function (init) { return init(); }); + return _platform; +} +/** + * Creates a factory for a platform + * + * \@experimental APIs related to application bootstrap are currently under review. + * @param {?} parentPlatformFactory + * @param {?} name + * @param {?=} providers + * @return {?} + */ +function createPlatformFactory(parentPlatformFactory, name, providers) { + if (providers === void 0) { providers = []; } + var /** @type {?} */ marker = new InjectionToken("Platform: " + name); + return function (extraProviders) { + if (extraProviders === void 0) { extraProviders = []; } + var /** @type {?} */ platform = getPlatform(); + if (!platform || platform.injector.get(ALLOW_MULTIPLE_PLATFORMS, false)) { + if (parentPlatformFactory) { + parentPlatformFactory(providers.concat(extraProviders).concat({ provide: marker, useValue: true })); + } + else { + createPlatform(ReflectiveInjector.resolveAndCreate(providers.concat(extraProviders).concat({ provide: marker, useValue: true }))); + } + } + return assertPlatform(marker); + }; +} +/** + * Checks that there currently is a platform which contains the given token as a provider. + * + * \@experimental APIs related to application bootstrap are currently under review. + * @param {?} requiredToken + * @return {?} + */ +function assertPlatform(requiredToken) { + var /** @type {?} */ platform = getPlatform(); + if (!platform) { + throw new Error('No platform exists!'); + } + if (!platform.injector.get(requiredToken, null)) { + throw new Error('A platform with a different configuration has been created. Please destroy it first.'); + } + return platform; +} +/** + * Destroy the existing platform. + * + * \@experimental APIs related to application bootstrap are currently under review. + * @return {?} + */ +function destroyPlatform() { + if (_platform && !_platform.destroyed) { + _platform.destroy(); + } +} +/** + * Returns the current platform. + * + * \@experimental APIs related to application bootstrap are currently under review. + * @return {?} + */ +function getPlatform() { + return _platform && !_platform.destroyed ? _platform : null; +} +/** + * The Angular platform is the entry point for Angular on a web page. Each page + * has exactly one platform, and services (such as reflection) which are common + * to every Angular application running on the page are bound in its scope. + * + * A page's platform is initialized implicitly when a platform is created via a platform factory + * (e.g. {\@link platformBrowser}), or explicitly by calling the {\@link createPlatform} function. + * + * \@stable + * @abstract + */ +var PlatformRef = (function () { + function PlatformRef() { + } + /** + * Creates an instance of an `\@NgModule` for the given platform + * for offline compilation. + * + * ## Simple Example + * + * ```typescript + * my_module.ts: + * + * \@NgModule({ + * imports: [BrowserModule] + * }) + * class MyModule {} + * + * main.ts: + * import {MyModuleNgFactory} from './my_module.ngfactory'; + * import {platformBrowser} from '\@angular/platform-browser'; + * + * let moduleRef = platformBrowser().bootstrapModuleFactory(MyModuleNgFactory); + * ``` + * + * \@experimental APIs related to application bootstrap are currently under review. + * @abstract + * @template M + * @param {?} moduleFactory + * @return {?} + */ + PlatformRef.prototype.bootstrapModuleFactory = function (moduleFactory) { }; + /** + * Creates an instance of an `\@NgModule` for a given platform using the given runtime compiler. + * + * ## Simple Example + * + * ```typescript + * \@NgModule({ + * imports: [BrowserModule] + * }) + * class MyModule {} + * + * let moduleRef = platformBrowser().bootstrapModule(MyModule); + * ``` + * \@stable + * @abstract + * @template M + * @param {?} moduleType + * @param {?=} compilerOptions + * @return {?} + */ + PlatformRef.prototype.bootstrapModule = function (moduleType, compilerOptions) { }; + /** + * Register a listener to be called when the platform is disposed. + * @abstract + * @param {?} callback + * @return {?} + */ + PlatformRef.prototype.onDestroy = function (callback) { }; + /** + * Retrieve the platform {\@link Injector}, which is the parent injector for + * every Angular application on the page and provides singleton providers. + * @abstract + * @return {?} + */ + PlatformRef.prototype.injector = function () { }; + /** + * Destroy the Angular platform and all Angular applications on the page. + * @abstract + * @return {?} + */ + PlatformRef.prototype.destroy = function () { }; + /** + * @abstract + * @return {?} + */ + PlatformRef.prototype.destroyed = function () { }; + return PlatformRef; +}()); +/** + * @param {?} errorHandler + * @param {?} callback + * @return {?} + */ +function _callAndReportToErrorHandler(errorHandler, callback) { + try { + var /** @type {?} */ result = callback(); + if (isPromise(result)) { + return result.catch(function (e) { + errorHandler.handleError(e); + // rethrow as the exception handler might not do it + throw e; + }); + } + return result; + } + catch (e) { + errorHandler.handleError(e); + // rethrow as the exception handler might not do it + throw e; + } +} +/** + * workaround https://github.com/angular/tsickle/issues/350 + * @suppress {checkTypes} + */ +var PlatformRef_ = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](PlatformRef_, _super); + /** + * @param {?} _injector + */ + function PlatformRef_(_injector) { + var _this = _super.call(this) || this; + _this._injector = _injector; + _this._modules = []; + _this._destroyListeners = []; + _this._destroyed = false; + return _this; + } + /** + * @param {?} callback + * @return {?} + */ + PlatformRef_.prototype.onDestroy = function (callback) { this._destroyListeners.push(callback); }; + Object.defineProperty(PlatformRef_.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return this._injector; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(PlatformRef_.prototype, "destroyed", { + /** + * @return {?} + */ + get: function () { return this._destroyed; }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + PlatformRef_.prototype.destroy = function () { + if (this._destroyed) { + throw new Error('The platform has already been destroyed!'); + } + this._modules.slice().forEach(function (module) { return module.destroy(); }); + this._destroyListeners.forEach(function (listener) { return listener(); }); + this._destroyed = true; + }; + /** + * @template M + * @param {?} moduleFactory + * @return {?} + */ + PlatformRef_.prototype.bootstrapModuleFactory = function (moduleFactory) { + return this._bootstrapModuleFactoryWithZone(moduleFactory); + }; + /** + * @template M + * @param {?} moduleFactory + * @param {?=} ngZone + * @return {?} + */ + PlatformRef_.prototype._bootstrapModuleFactoryWithZone = function (moduleFactory, ngZone) { + var _this = this; + // Note: We need to create the NgZone _before_ we instantiate the module, + // as instantiating the module creates some providers eagerly. + // So we create a mini parent injector that just contains the new NgZone and + // pass that as parent to the NgModuleFactory. + if (!ngZone) + ngZone = new NgZone({ enableLongStackTrace: isDevMode() }); + // Attention: Don't use ApplicationRef.run here, + // as we want to be sure that all possible constructor calls are inside `ngZone.run`! + return ngZone.run(function () { + var /** @type {?} */ ngZoneInjector = ReflectiveInjector.resolveAndCreate([{ provide: NgZone, useValue: ngZone }], _this.injector); + var /** @type {?} */ moduleRef = (moduleFactory.create(ngZoneInjector)); + var /** @type {?} */ exceptionHandler = moduleRef.injector.get(ErrorHandler, null); + if (!exceptionHandler) { + throw new Error('No ErrorHandler. Is platform module (BrowserModule) included?'); + } + moduleRef.onDestroy(function () { return remove(_this._modules, moduleRef); }); /** @type {?} */ + ((ngZone)).onError.subscribe({ next: function (error) { exceptionHandler.handleError(error); } }); + return _callAndReportToErrorHandler(exceptionHandler, function () { + var /** @type {?} */ initStatus = moduleRef.injector.get(ApplicationInitStatus); + initStatus.runInitializers(); + return initStatus.donePromise.then(function () { + _this._moduleDoBootstrap(moduleRef); + return moduleRef; + }); + }); + }); + }; + /** + * @template M + * @param {?} moduleType + * @param {?=} compilerOptions + * @return {?} + */ + PlatformRef_.prototype.bootstrapModule = function (moduleType, compilerOptions) { + if (compilerOptions === void 0) { compilerOptions = []; } + return this._bootstrapModuleWithZone(moduleType, compilerOptions); + }; + /** + * @template M + * @param {?} moduleType + * @param {?=} compilerOptions + * @param {?=} ngZone + * @return {?} + */ + PlatformRef_.prototype._bootstrapModuleWithZone = function (moduleType, compilerOptions, ngZone) { + var _this = this; + if (compilerOptions === void 0) { compilerOptions = []; } + var /** @type {?} */ compilerFactory = this.injector.get(CompilerFactory); + var /** @type {?} */ compiler = compilerFactory.createCompiler(Array.isArray(compilerOptions) ? compilerOptions : [compilerOptions]); + return compiler.compileModuleAsync(moduleType) + .then(function (moduleFactory) { return _this._bootstrapModuleFactoryWithZone(moduleFactory, ngZone); }); + }; + /** + * @param {?} moduleRef + * @return {?} + */ + PlatformRef_.prototype._moduleDoBootstrap = function (moduleRef) { + var /** @type {?} */ appRef = (moduleRef.injector.get(ApplicationRef)); + if (moduleRef._bootstrapComponents.length > 0) { + moduleRef._bootstrapComponents.forEach(function (f) { return appRef.bootstrap(f); }); + } + else if (moduleRef.instance.ngDoBootstrap) { + moduleRef.instance.ngDoBootstrap(appRef); + } + else { + throw new Error("The module " + stringify(moduleRef.instance.constructor) + " was bootstrapped, but it does not declare \"@NgModule.bootstrap\" components nor a \"ngDoBootstrap\" method. " + + "Please define one of these."); + } + this._modules.push(moduleRef); + }; + return PlatformRef_; +}(PlatformRef)); +PlatformRef_.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +PlatformRef_.ctorParameters = function () { return [ + { type: Injector, }, +]; }; +/** + * A reference to an Angular application running on a page. + * + * \@stable + * @abstract + */ +var ApplicationRef = (function () { + function ApplicationRef() { + } + /** + * Bootstrap a new component at the root level of the application. + * + * ### Bootstrap process + * + * When bootstrapping a new root component into an application, Angular mounts the + * specified application component onto DOM elements identified by the [componentType]'s + * selector and kicks off automatic change detection to finish initializing the component. + * + * Optionally, a component can be mounted onto a DOM element that does not match the + * [componentType]'s selector. + * + * ### Example + * {\@example core/ts/platform/platform.ts region='longform'} + * @abstract + * @template C + * @param {?} componentFactory + * @param {?=} rootSelectorOrNode + * @return {?} + */ + ApplicationRef.prototype.bootstrap = function (componentFactory, rootSelectorOrNode) { }; + /** + * Invoke this method to explicitly process change detection and its side-effects. + * + * In development mode, `tick()` also performs a second change detection cycle to ensure that no + * further changes are detected. If additional changes are picked up during this second cycle, + * bindings in the app have side-effects that cannot be resolved in a single change detection + * pass. + * In this case, Angular throws an error, since an Angular application can only have one change + * detection pass during which all change detection must complete. + * @abstract + * @return {?} + */ + ApplicationRef.prototype.tick = function () { }; + /** + * Get a list of component types registered to this application. + * This list is populated even before the component is created. + * @abstract + * @return {?} + */ + ApplicationRef.prototype.componentTypes = function () { }; + /** + * Get a list of components registered to this application. + * @abstract + * @return {?} + */ + ApplicationRef.prototype.components = function () { }; + /** + * Attaches a view so that it will be dirty checked. + * The view will be automatically detached when it is destroyed. + * This will throw if the view is already attached to a ViewContainer. + * @abstract + * @param {?} view + * @return {?} + */ + ApplicationRef.prototype.attachView = function (view) { }; + /** + * Detaches a view from dirty checking again. + * @abstract + * @param {?} view + * @return {?} + */ + ApplicationRef.prototype.detachView = function (view) { }; + /** + * Returns the number of attached views. + * @abstract + * @return {?} + */ + ApplicationRef.prototype.viewCount = function () { }; + /** + * Returns an Observable that indicates when the application is stable or unstable. + * @abstract + * @return {?} + */ + ApplicationRef.prototype.isStable = function () { }; + return ApplicationRef; +}()); +/** + * workaround https://github.com/angular/tsickle/issues/350 + * @suppress {checkTypes} + */ +var ApplicationRef_ = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](ApplicationRef_, _super); + /** + * @param {?} _zone + * @param {?} _console + * @param {?} _injector + * @param {?} _exceptionHandler + * @param {?} _componentFactoryResolver + * @param {?} _initStatus + */ + function ApplicationRef_(_zone, _console, _injector, _exceptionHandler, _componentFactoryResolver, _initStatus) { + var _this = _super.call(this) || this; + _this._zone = _zone; + _this._console = _console; + _this._injector = _injector; + _this._exceptionHandler = _exceptionHandler; + _this._componentFactoryResolver = _componentFactoryResolver; + _this._initStatus = _initStatus; + _this._bootstrapListeners = []; + _this._rootComponents = []; + _this._rootComponentTypes = []; + _this._views = []; + _this._runningTick = false; + _this._enforceNoNewChanges = false; + _this._stable = true; + _this._enforceNoNewChanges = isDevMode(); + _this._zone.onMicrotaskEmpty.subscribe({ next: function () { _this._zone.run(function () { _this.tick(); }); } }); + var isCurrentlyStable = new __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"](function (observer) { + _this._stable = _this._zone.isStable && !_this._zone.hasPendingMacrotasks && + !_this._zone.hasPendingMicrotasks; + _this._zone.runOutsideAngular(function () { + observer.next(_this._stable); + observer.complete(); + }); + }); + var isStable = new __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"](function (observer) { + var stableSub = _this._zone.onStable.subscribe(function () { + NgZone.assertNotInAngularZone(); + // Check whether there are no pending macro/micro tasks in the next tick + // to allow for NgZone to update the state. + scheduleMicroTask(function () { + if (!_this._stable && !_this._zone.hasPendingMacrotasks && + !_this._zone.hasPendingMicrotasks) { + _this._stable = true; + observer.next(true); + } + }); + }); + var unstableSub = _this._zone.onUnstable.subscribe(function () { + NgZone.assertInAngularZone(); + if (_this._stable) { + _this._stable = false; + _this._zone.runOutsideAngular(function () { observer.next(false); }); + } + }); + return function () { + stableSub.unsubscribe(); + unstableSub.unsubscribe(); + }; + }); + _this._isStable = __WEBPACK_IMPORTED_MODULE_2_rxjs_observable_merge__["merge"](isCurrentlyStable, __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_share__["share"].call(isStable)); + return _this; + } + /** + * @param {?} viewRef + * @return {?} + */ + ApplicationRef_.prototype.attachView = function (viewRef) { + var /** @type {?} */ view = ((viewRef)); + this._views.push(view); + view.attachToAppRef(this); + }; + /** + * @param {?} viewRef + * @return {?} + */ + ApplicationRef_.prototype.detachView = function (viewRef) { + var /** @type {?} */ view = ((viewRef)); + remove(this._views, view); + view.detachFromAppRef(); + }; + /** + * @template C + * @param {?} componentOrFactory + * @param {?=} rootSelectorOrNode + * @return {?} + */ + ApplicationRef_.prototype.bootstrap = function (componentOrFactory, rootSelectorOrNode) { + var _this = this; + if (!this._initStatus.done) { + throw new Error('Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.'); + } + var /** @type {?} */ componentFactory; + if (componentOrFactory instanceof ComponentFactory) { + componentFactory = componentOrFactory; + } + else { + componentFactory = ((this._componentFactoryResolver.resolveComponentFactory(componentOrFactory))); + } + this._rootComponentTypes.push(componentFactory.componentType); + // Create a factory associated with the current module if it's not bound to some other + var /** @type {?} */ ngModule = componentFactory instanceof ComponentFactoryBoundToModule ? + null : + this._injector.get(NgModuleRef); + var /** @type {?} */ selectorOrNode = rootSelectorOrNode || componentFactory.selector; + var /** @type {?} */ compRef = componentFactory.create(Injector.NULL, [], selectorOrNode, ngModule); + compRef.onDestroy(function () { _this._unloadComponent(compRef); }); + var /** @type {?} */ testability = compRef.injector.get(Testability, null); + if (testability) { + compRef.injector.get(TestabilityRegistry) + .registerApplication(compRef.location.nativeElement, testability); + } + this._loadComponent(compRef); + if (isDevMode()) { + this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."); + } + return compRef; + }; + /** + * @param {?} componentRef + * @return {?} + */ + ApplicationRef_.prototype._loadComponent = function (componentRef) { + this.attachView(componentRef.hostView); + this.tick(); + this._rootComponents.push(componentRef); + // Get the listeners lazily to prevent DI cycles. + var /** @type {?} */ listeners = this._injector.get(APP_BOOTSTRAP_LISTENER, []).concat(this._bootstrapListeners); + listeners.forEach(function (listener) { return listener(componentRef); }); + }; + /** + * @param {?} componentRef + * @return {?} + */ + ApplicationRef_.prototype._unloadComponent = function (componentRef) { + this.detachView(componentRef.hostView); + remove(this._rootComponents, componentRef); + }; + /** + * @return {?} + */ + ApplicationRef_.prototype.tick = function () { + if (this._runningTick) { + throw new Error('ApplicationRef.tick is called recursively'); + } + var /** @type {?} */ scope = ApplicationRef_._tickScope(); + try { + this._runningTick = true; + this._views.forEach(function (view) { return view.detectChanges(); }); + if (this._enforceNoNewChanges) { + this._views.forEach(function (view) { return view.checkNoChanges(); }); + } + } + catch (e) { + // Attention: Don't rethrow as it could cancel subscriptions to Observables! + this._exceptionHandler.handleError(e); + } + finally { + this._runningTick = false; + wtfLeave(scope); + } + }; + /** + * @return {?} + */ + ApplicationRef_.prototype.ngOnDestroy = function () { + // TODO(alxhub): Dispose of the NgZone. + this._views.slice().forEach(function (view) { return view.destroy(); }); + }; + Object.defineProperty(ApplicationRef_.prototype, "viewCount", { + /** + * @return {?} + */ + get: function () { return this._views.length; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ApplicationRef_.prototype, "componentTypes", { + /** + * @return {?} + */ + get: function () { return this._rootComponentTypes; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ApplicationRef_.prototype, "components", { + /** + * @return {?} + */ + get: function () { return this._rootComponents; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ApplicationRef_.prototype, "isStable", { + /** + * @return {?} + */ + get: function () { return this._isStable; }, + enumerable: true, + configurable: true + }); + return ApplicationRef_; +}(ApplicationRef)); +/** + * \@internal + */ +ApplicationRef_._tickScope = wtfCreateScope('ApplicationRef#tick()'); +ApplicationRef_.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +ApplicationRef_.ctorParameters = function () { return [ + { type: NgZone, }, + { type: Console, }, + { type: Injector, }, + { type: ErrorHandler, }, + { type: ComponentFactoryResolver, }, + { type: ApplicationInitStatus, }, +]; }; +/** + * @template T + * @param {?} list + * @param {?} el + * @return {?} + */ +function remove(list, el) { + var /** @type {?} */ index = list.indexOf(el); + if (index > -1) { + list.splice(index, 1); + } +} +/** + * @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 + */ +// Public API for Zone +/** + * @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 + */ +/** + * @deprecated Use `RendererType2` (and `Renderer2`) instead. + */ +var RenderComponentType = (function () { + /** + * @param {?} id + * @param {?} templateUrl + * @param {?} slotCount + * @param {?} encapsulation + * @param {?} styles + * @param {?} animations + */ + function RenderComponentType(id, templateUrl, slotCount, encapsulation, styles, animations) { + this.id = id; + this.templateUrl = templateUrl; + this.slotCount = slotCount; + this.encapsulation = encapsulation; + this.styles = styles; + this.animations = animations; + } + return RenderComponentType; +}()); +/** + * @deprecated Debug info is handeled internally in the view engine now. + * @abstract + */ +var RenderDebugInfo = (function () { + function RenderDebugInfo() { + } + /** + * @abstract + * @return {?} + */ + RenderDebugInfo.prototype.injector = function () { }; + /** + * @abstract + * @return {?} + */ + RenderDebugInfo.prototype.component = function () { }; + /** + * @abstract + * @return {?} + */ + RenderDebugInfo.prototype.providerTokens = function () { }; + /** + * @abstract + * @return {?} + */ + RenderDebugInfo.prototype.references = function () { }; + /** + * @abstract + * @return {?} + */ + RenderDebugInfo.prototype.context = function () { }; + /** + * @abstract + * @return {?} + */ + RenderDebugInfo.prototype.source = function () { }; + return RenderDebugInfo; +}()); +/** + * @deprecated Use the `Renderer2` instead. + * @abstract + */ +var Renderer = (function () { + function Renderer() { + } + /** + * @abstract + * @param {?} selectorOrNode + * @param {?=} debugInfo + * @return {?} + */ + Renderer.prototype.selectRootElement = function (selectorOrNode, debugInfo) { }; + /** + * @abstract + * @param {?} parentElement + * @param {?} name + * @param {?=} debugInfo + * @return {?} + */ + Renderer.prototype.createElement = function (parentElement, name, debugInfo) { }; + /** + * @abstract + * @param {?} hostElement + * @return {?} + */ + Renderer.prototype.createViewRoot = function (hostElement) { }; + /** + * @abstract + * @param {?} parentElement + * @param {?=} debugInfo + * @return {?} + */ + Renderer.prototype.createTemplateAnchor = function (parentElement, debugInfo) { }; + /** + * @abstract + * @param {?} parentElement + * @param {?} value + * @param {?=} debugInfo + * @return {?} + */ + Renderer.prototype.createText = function (parentElement, value, debugInfo) { }; + /** + * @abstract + * @param {?} parentElement + * @param {?} nodes + * @return {?} + */ + Renderer.prototype.projectNodes = function (parentElement, nodes) { }; + /** + * @abstract + * @param {?} node + * @param {?} viewRootNodes + * @return {?} + */ + Renderer.prototype.attachViewAfter = function (node, viewRootNodes) { }; + /** + * @abstract + * @param {?} viewRootNodes + * @return {?} + */ + Renderer.prototype.detachView = function (viewRootNodes) { }; + /** + * @abstract + * @param {?} hostElement + * @param {?} viewAllNodes + * @return {?} + */ + Renderer.prototype.destroyView = function (hostElement, viewAllNodes) { }; + /** + * @abstract + * @param {?} renderElement + * @param {?} name + * @param {?} callback + * @return {?} + */ + Renderer.prototype.listen = function (renderElement, name, callback) { }; + /** + * @abstract + * @param {?} target + * @param {?} name + * @param {?} callback + * @return {?} + */ + Renderer.prototype.listenGlobal = function (target, name, callback) { }; + /** + * @abstract + * @param {?} renderElement + * @param {?} propertyName + * @param {?} propertyValue + * @return {?} + */ + Renderer.prototype.setElementProperty = function (renderElement, propertyName, propertyValue) { }; + /** + * @abstract + * @param {?} renderElement + * @param {?} attributeName + * @param {?} attributeValue + * @return {?} + */ + Renderer.prototype.setElementAttribute = function (renderElement, attributeName, attributeValue) { }; + /** + * Used only in debug mode to serialize property changes to dom nodes as attributes. + * @abstract + * @param {?} renderElement + * @param {?} propertyName + * @param {?} propertyValue + * @return {?} + */ + Renderer.prototype.setBindingDebugInfo = function (renderElement, propertyName, propertyValue) { }; + /** + * @abstract + * @param {?} renderElement + * @param {?} className + * @param {?} isAdd + * @return {?} + */ + Renderer.prototype.setElementClass = function (renderElement, className, isAdd) { }; + /** + * @abstract + * @param {?} renderElement + * @param {?} styleName + * @param {?} styleValue + * @return {?} + */ + Renderer.prototype.setElementStyle = function (renderElement, styleName, styleValue) { }; + /** + * @abstract + * @param {?} renderElement + * @param {?} methodName + * @param {?=} args + * @return {?} + */ + Renderer.prototype.invokeElementMethod = function (renderElement, methodName, args) { }; + /** + * @abstract + * @param {?} renderNode + * @param {?} text + * @return {?} + */ + Renderer.prototype.setText = function (renderNode, text) { }; + /** + * @abstract + * @param {?} element + * @param {?} startingStyles + * @param {?} keyframes + * @param {?} duration + * @param {?} delay + * @param {?} easing + * @param {?=} previousPlayers + * @return {?} + */ + Renderer.prototype.animate = function (element, startingStyles, keyframes, duration, delay, easing, previousPlayers) { }; + return Renderer; +}()); +var Renderer2Interceptor = new InjectionToken('Renderer2Interceptor'); +/** + * Injectable service that provides a low-level interface for modifying the UI. + * + * Use this service to bypass Angular's templating and make custom UI changes that can't be + * expressed declaratively. For example if you need to set a property or an attribute whose name is + * not statically known, use {\@link Renderer#setElementProperty} or {\@link + * Renderer#setElementAttribute} + * respectively. + * + * If you are implementing a custom renderer, you must implement this interface. + * + * The default Renderer implementation is `DomRenderer`. Also available is `WebWorkerRenderer`. + * + * @deprecated Use `RendererFactory2` instead. + * @abstract + */ +var RootRenderer = (function () { + function RootRenderer() { + } + /** + * @abstract + * @param {?} componentType + * @return {?} + */ + RootRenderer.prototype.renderComponent = function (componentType) { }; + return RootRenderer; +}()); +/** + * \@experimental + * @abstract + */ +var RendererFactory2 = (function () { + function RendererFactory2() { + } + /** + * @abstract + * @param {?} hostElement + * @param {?} type + * @return {?} + */ + RendererFactory2.prototype.createRenderer = function (hostElement, type) { }; + /** + * @abstract + * @return {?} + */ + RendererFactory2.prototype.begin = function () { }; + /** + * @abstract + * @return {?} + */ + RendererFactory2.prototype.end = function () { }; + /** + * @abstract + * @return {?} + */ + RendererFactory2.prototype.whenRenderingDone = function () { }; + return RendererFactory2; +}()); +var RendererStyleFlags2 = {}; +RendererStyleFlags2.Important = 1; +RendererStyleFlags2.DashCase = 2; +RendererStyleFlags2[RendererStyleFlags2.Important] = "Important"; +RendererStyleFlags2[RendererStyleFlags2.DashCase] = "DashCase"; +/** + * \@experimental + * @abstract + */ +var Renderer2 = (function () { + function Renderer2() { + } + /** + * This field can be used to store arbitrary data on this renderer instance. + * This is useful for renderers that delegate to other renderers. + * @abstract + * @return {?} + */ + Renderer2.prototype.data = function () { }; + /** + * @abstract + * @return {?} + */ + Renderer2.prototype.destroy = function () { }; + /** + * @abstract + * @param {?} name + * @param {?=} namespace + * @return {?} + */ + Renderer2.prototype.createElement = function (name, namespace) { }; + /** + * @abstract + * @param {?} value + * @return {?} + */ + Renderer2.prototype.createComment = function (value) { }; + /** + * @abstract + * @param {?} value + * @return {?} + */ + Renderer2.prototype.createText = function (value) { }; + /** + * @abstract + * @param {?} parent + * @param {?} newChild + * @return {?} + */ + Renderer2.prototype.appendChild = function (parent, newChild) { }; + /** + * @abstract + * @param {?} parent + * @param {?} newChild + * @param {?} refChild + * @return {?} + */ + Renderer2.prototype.insertBefore = function (parent, newChild, refChild) { }; + /** + * @abstract + * @param {?} parent + * @param {?} oldChild + * @return {?} + */ + Renderer2.prototype.removeChild = function (parent, oldChild) { }; + /** + * @abstract + * @param {?} selectorOrNode + * @return {?} + */ + Renderer2.prototype.selectRootElement = function (selectorOrNode) { }; + /** + * Attention: On WebWorkers, this will always return a value, + * as we are asking for a result synchronously. I.e. + * the caller can't rely on checking whether this is null or not. + * @abstract + * @param {?} node + * @return {?} + */ + Renderer2.prototype.parentNode = function (node) { }; + /** + * Attention: On WebWorkers, this will always return a value, + * as we are asking for a result synchronously. I.e. + * the caller can't rely on checking whether this is null or not. + * @abstract + * @param {?} node + * @return {?} + */ + Renderer2.prototype.nextSibling = function (node) { }; + /** + * @abstract + * @param {?} el + * @param {?} name + * @param {?} value + * @param {?=} namespace + * @return {?} + */ + Renderer2.prototype.setAttribute = function (el, name, value, namespace) { }; + /** + * @abstract + * @param {?} el + * @param {?} name + * @param {?=} namespace + * @return {?} + */ + Renderer2.prototype.removeAttribute = function (el, name, namespace) { }; + /** + * @abstract + * @param {?} el + * @param {?} name + * @return {?} + */ + Renderer2.prototype.addClass = function (el, name) { }; + /** + * @abstract + * @param {?} el + * @param {?} name + * @return {?} + */ + Renderer2.prototype.removeClass = function (el, name) { }; + /** + * @abstract + * @param {?} el + * @param {?} style + * @param {?} value + * @param {?=} flags + * @return {?} + */ + Renderer2.prototype.setStyle = function (el, style, value, flags) { }; + /** + * @abstract + * @param {?} el + * @param {?} style + * @param {?=} flags + * @return {?} + */ + Renderer2.prototype.removeStyle = function (el, style, flags) { }; + /** + * @abstract + * @param {?} el + * @param {?} name + * @param {?} value + * @return {?} + */ + Renderer2.prototype.setProperty = function (el, name, value) { }; + /** + * @abstract + * @param {?} node + * @param {?} value + * @return {?} + */ + Renderer2.prototype.setValue = function (node, value) { }; + /** + * @abstract + * @param {?} target + * @param {?} eventName + * @param {?} callback + * @return {?} + */ + Renderer2.prototype.listen = function (target, eventName, callback) { }; + return Renderer2; +}()); +/** + * @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 + */ +// Public API for render +var ElementRef = (function () { + /** + * @param {?} nativeElement + */ + function ElementRef(nativeElement) { + this.nativeElement = nativeElement; + } + return ElementRef; +}()); +/** + * @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 + */ +/** + * Used to load ng module factories. + * \@stable + * @abstract + */ +var NgModuleFactoryLoader = (function () { + function NgModuleFactoryLoader() { + } + /** + * @abstract + * @param {?} path + * @return {?} + */ + NgModuleFactoryLoader.prototype.load = function (path) { }; + return NgModuleFactoryLoader; +}()); +var moduleFactories = new Map(); +/** + * Registers a loaded module. Should only be called from generated NgModuleFactory code. + * \@experimental + * @param {?} id + * @param {?} factory + * @return {?} + */ +function registerModuleFactory(id, factory) { + var /** @type {?} */ existing = moduleFactories.get(id); + if (existing) { + throw new Error("Duplicate module registered for " + id + " - " + existing.moduleType.name + " vs " + factory.moduleType.name); + } + moduleFactories.set(id, factory); +} +/** + * @return {?} + */ +/** + * Returns the NgModuleFactory with the given id, if it exists and has been loaded. + * Factories for modules that do not specify an `id` cannot be retrieved. Throws if the module + * cannot be found. + * \@experimental + * @param {?} id + * @return {?} + */ +function getModuleFactory(id) { + var /** @type {?} */ factory = moduleFactories.get(id); + if (!factory) + throw new Error("No module with ID " + id + " loaded"); + return factory; +} +/** + * @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 + */ +/** + * An unmodifiable list of items that Angular keeps up to date when the state + * of the application changes. + * + * The type of object that {\@link ViewChildren}, {\@link ContentChildren}, and {\@link QueryList} + * provide. + * + * Implements an iterable interface, therefore it can be used in both ES6 + * javascript `for (var i of items)` loops as well as in Angular templates with + * `*ngFor="let i of myList"`. + * + * Changes can be observed by subscribing to the changes `Observable`. + * + * NOTE: In the future this class will implement an `Observable` interface. + * + * ### Example ([live demo](http://plnkr.co/edit/RX8sJnQYl9FWuSCWme5z?p=preview)) + * ```typescript + * \@Component({...}) + * class Container { + * \@ViewChildren(Item) items:QueryList; + * } + * ``` + * \@stable + */ +var QueryList = (function () { + function QueryList() { + this._dirty = true; + this._results = []; + this._emitter = new EventEmitter(); + } + Object.defineProperty(QueryList.prototype, "changes", { + /** + * @return {?} + */ + get: function () { return this._emitter; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(QueryList.prototype, "length", { + /** + * @return {?} + */ + get: function () { return this._results.length; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(QueryList.prototype, "first", { + /** + * @return {?} + */ + get: function () { return this._results[0]; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(QueryList.prototype, "last", { + /** + * @return {?} + */ + get: function () { return this._results[this.length - 1]; }, + enumerable: true, + configurable: true + }); + /** + * See + * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) + * @template U + * @param {?} fn + * @return {?} + */ + QueryList.prototype.map = function (fn) { return this._results.map(fn); }; + /** + * See + * [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.filter = function (fn) { + return this._results.filter(fn); + }; + /** + * See + * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.find = function (fn) { + return this._results.find(fn); + }; + /** + * See + * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) + * @template U + * @param {?} fn + * @param {?} init + * @return {?} + */ + QueryList.prototype.reduce = function (fn, init) { + return this._results.reduce(fn, init); + }; + /** + * See + * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.forEach = function (fn) { this._results.forEach(fn); }; + /** + * See + * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.some = function (fn) { + return this._results.some(fn); + }; + /** + * @return {?} + */ + QueryList.prototype.toArray = function () { return this._results.slice(); }; + /** + * @return {?} + */ + QueryList.prototype[getSymbolIterator()] = function () { return ((this._results))[getSymbolIterator()](); }; + /** + * @return {?} + */ + QueryList.prototype.toString = function () { return this._results.toString(); }; + /** + * @param {?} res + * @return {?} + */ + QueryList.prototype.reset = function (res) { + this._results = flatten(res); + this._dirty = false; + }; + /** + * @return {?} + */ + QueryList.prototype.notifyOnChanges = function () { this._emitter.emit(this); }; + /** + * internal + * @return {?} + */ + QueryList.prototype.setDirty = function () { this._dirty = true; }; + Object.defineProperty(QueryList.prototype, "dirty", { + /** + * internal + * @return {?} + */ + get: function () { return this._dirty; }, + enumerable: true, + configurable: true + }); + return QueryList; +}()); +/** + * @template T + * @param {?} list + * @return {?} + */ +function flatten(list) { + return list.reduce(function (flat, item) { + var /** @type {?} */ flatItem = Array.isArray(item) ? flatten(item) : item; + return ((flat)).concat(flatItem); + }, []); +} +/** + * @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 _SEPARATOR = '#'; +var FACTORY_CLASS_SUFFIX = 'NgFactory'; +/** + * Configuration for SystemJsNgModuleLoader. + * token. + * + * \@experimental + * @abstract + */ +var SystemJsNgModuleLoaderConfig = (function () { + function SystemJsNgModuleLoaderConfig() { + } + return SystemJsNgModuleLoaderConfig; +}()); +var DEFAULT_CONFIG = { + factoryPathPrefix: '', + factoryPathSuffix: '.ngfactory', +}; +/** + * NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory + * \@experimental + */ +var SystemJsNgModuleLoader = (function () { + /** + * @param {?} _compiler + * @param {?=} config + */ + function SystemJsNgModuleLoader(_compiler, config) { + this._compiler = _compiler; + this._config = config || DEFAULT_CONFIG; + } + /** + * @param {?} path + * @return {?} + */ + SystemJsNgModuleLoader.prototype.load = function (path) { + var /** @type {?} */ offlineMode = this._compiler instanceof Compiler; + return offlineMode ? this.loadFactory(path) : this.loadAndCompile(path); + }; + /** + * @param {?} path + * @return {?} + */ + SystemJsNgModuleLoader.prototype.loadAndCompile = function (path) { + var _this = this; + var _a = path.split(_SEPARATOR), module = _a[0], exportName = _a[1]; + if (exportName === undefined) { + exportName = 'default'; + } + return __webpack_require__(169)(module) + .then(function (module) { return module[exportName]; }) + .then(function (type) { return checkNotEmpty(type, module, exportName); }) + .then(function (type) { return _this._compiler.compileModuleAsync(type); }); + }; + /** + * @param {?} path + * @return {?} + */ + SystemJsNgModuleLoader.prototype.loadFactory = function (path) { + var _a = path.split(_SEPARATOR), module = _a[0], exportName = _a[1]; + var /** @type {?} */ factoryClassSuffix = FACTORY_CLASS_SUFFIX; + if (exportName === undefined) { + exportName = 'default'; + factoryClassSuffix = ''; + } + return __webpack_require__(169)(this._config.factoryPathPrefix + module + this._config.factoryPathSuffix) + .then(function (module) { return module[exportName + factoryClassSuffix]; }) + .then(function (factory) { return checkNotEmpty(factory, module, exportName); }); + }; + return SystemJsNgModuleLoader; +}()); +SystemJsNgModuleLoader.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +SystemJsNgModuleLoader.ctorParameters = function () { return [ + { type: Compiler, }, + { type: SystemJsNgModuleLoaderConfig, decorators: [{ type: Optional },] }, +]; }; +/** + * @param {?} value + * @param {?} modulePath + * @param {?} exportName + * @return {?} + */ +function checkNotEmpty(value, modulePath, exportName) { + if (!value) { + throw new Error("Cannot find '" + exportName + "' in '" + modulePath + "'"); + } + return value; +} +/** + * @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 + */ +/** + * Represents an Embedded Template that can be used to instantiate Embedded Views. + * + * You can access a `TemplateRef`, in two ways. Via a directive placed on a `` element + * (or directive prefixed with `*`) and have the `TemplateRef` for this Embedded View injected into + * the constructor of the directive using the `TemplateRef` Token. Alternatively you can query for + * the `TemplateRef` from a Component or a Directive via {\@link Query}. + * + * To instantiate Embedded Views based on a Template, use + * {\@link ViewContainerRef#createEmbeddedView}, which will create the View and attach it to the + * View Container. + * \@stable + * @abstract + */ +var TemplateRef = (function () { + function TemplateRef() { + } + /** + * @abstract + * @return {?} + */ + TemplateRef.prototype.elementRef = function () { }; + /** + * @abstract + * @param {?} context + * @return {?} + */ + TemplateRef.prototype.createEmbeddedView = function (context) { }; + return TemplateRef; +}()); +/** + * @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 + */ +/** + * Represents a container where one or more Views can be attached. + * + * The container can contain two kinds of Views. Host Views, created by instantiating a + * {\@link Component} via {\@link #createComponent}, and Embedded Views, created by instantiating an + * {\@link TemplateRef Embedded Template} via {\@link #createEmbeddedView}. + * + * The location of the View Container within the containing View is specified by the Anchor + * `element`. Each View Container can have only one Anchor Element and each Anchor Element can only + * have a single View Container. + * + * Root elements of Views attached to this container become siblings of the Anchor Element in + * the Rendered View. + * + * To access a `ViewContainerRef` of an Element, you can either place a {\@link Directive} injected + * with `ViewContainerRef` on the Element, or you obtain it via a {\@link ViewChild} query. + * \@stable + * @abstract + */ +var ViewContainerRef = (function () { + function ViewContainerRef() { + } + /** + * Anchor element that specifies the location of this container in the containing View. + * + * @abstract + * @return {?} + */ + ViewContainerRef.prototype.element = function () { }; + /** + * @abstract + * @return {?} + */ + ViewContainerRef.prototype.injector = function () { }; + /** + * @abstract + * @return {?} + */ + ViewContainerRef.prototype.parentInjector = function () { }; + /** + * Destroys all Views in this container. + * @abstract + * @return {?} + */ + ViewContainerRef.prototype.clear = function () { }; + /** + * Returns the {\@link ViewRef} for the View located in this container at the specified index. + * @abstract + * @param {?} index + * @return {?} + */ + ViewContainerRef.prototype.get = function (index) { }; + /** + * Returns the number of Views currently attached to this container. + * @abstract + * @return {?} + */ + ViewContainerRef.prototype.length = function () { }; + /** + * Instantiates an Embedded View based on the {\@link TemplateRef `templateRef`} and inserts it + * into this container at the specified `index`. + * + * If `index` is not specified, the new View will be inserted as the last View in the container. + * + * Returns the {\@link ViewRef} for the newly created View. + * @abstract + * @template C + * @param {?} templateRef + * @param {?=} context + * @param {?=} index + * @return {?} + */ + ViewContainerRef.prototype.createEmbeddedView = function (templateRef, context, index) { }; + /** + * Instantiates a single {\@link Component} and inserts its Host View into this container at the + * specified `index`. + * + * The component is instantiated using its {\@link ComponentFactory} which can be + * obtained via {\@link ComponentFactoryResolver#resolveComponentFactory}. + * + * If `index` is not specified, the new View will be inserted as the last View in the container. + * + * You can optionally specify the {\@link Injector} that will be used as parent for the Component. + * + * Returns the {\@link ComponentRef} of the Host View created for the newly instantiated Component. + * @abstract + * @template C + * @param {?} componentFactory + * @param {?=} index + * @param {?=} injector + * @param {?=} projectableNodes + * @param {?=} ngModule + * @return {?} + */ + ViewContainerRef.prototype.createComponent = function (componentFactory, index, injector, projectableNodes, ngModule) { }; + /** + * Inserts a View identified by a {\@link ViewRef} into the container at the specified `index`. + * + * If `index` is not specified, the new View will be inserted as the last View in the container. + * + * Returns the inserted {\@link ViewRef}. + * @abstract + * @param {?} viewRef + * @param {?=} index + * @return {?} + */ + ViewContainerRef.prototype.insert = function (viewRef, index) { }; + /** + * Moves a View identified by a {\@link ViewRef} into the container at the specified `index`. + * + * Returns the inserted {\@link ViewRef}. + * @abstract + * @param {?} viewRef + * @param {?} currentIndex + * @return {?} + */ + ViewContainerRef.prototype.move = function (viewRef, currentIndex) { }; + /** + * Returns the index of the View, specified via {\@link ViewRef}, within the current container or + * `-1` if this container doesn't contain the View. + * @abstract + * @param {?} viewRef + * @return {?} + */ + ViewContainerRef.prototype.indexOf = function (viewRef) { }; + /** + * Destroys a View attached to this container at the specified `index`. + * + * If `index` is not specified, the last View in the container will be removed. + * @abstract + * @param {?=} index + * @return {?} + */ + ViewContainerRef.prototype.remove = function (index) { }; + /** + * Use along with {\@link #insert} to move a View within the current container. + * + * If the `index` param is omitted, the last {\@link ViewRef} is detached. + * @abstract + * @param {?=} index + * @return {?} + */ + ViewContainerRef.prototype.detach = function (index) { }; + return ViewContainerRef; +}()); +/** + * \@stable + * @abstract + */ +var ChangeDetectorRef = (function () { + function ChangeDetectorRef() { + } + /** + * Marks all {\@link ChangeDetectionStrategy#OnPush} ancestors as to be checked. + * + * + * + * ### Example ([live demo](http://plnkr.co/edit/GC512b?p=preview)) + * + * ```typescript + * \@Component({ + * selector: 'cmp', + * changeDetection: ChangeDetectionStrategy.OnPush, + * template: `Number of ticks: {{numberOfTicks}}` + * }) + * class Cmp { + * numberOfTicks = 0; + * + * constructor(ref: ChangeDetectorRef) { + * setInterval(() => { + * this.numberOfTicks ++ + * // the following is required, otherwise the view will not be updated + * this.ref.markForCheck(); + * }, 1000); + * } + * } + * + * \@Component({ + * selector: 'app', + * changeDetection: ChangeDetectionStrategy.OnPush, + * template: ` + * + * `, + * }) + * class App { + * } + * ``` + * @abstract + * @return {?} + */ + ChangeDetectorRef.prototype.markForCheck = function () { }; + /** + * Detaches the change detector from the change detector tree. + * + * The detached change detector will not be checked until it is reattached. + * + * This can also be used in combination with {\@link ChangeDetectorRef#detectChanges} to implement + * local change + * detection checks. + * + * + * + * + * ### Example + * + * The following example defines a component with a large list of readonly data. + * Imagine the data changes constantly, many times per second. For performance reasons, + * we want to check and update the list every five seconds. We can do that by detaching + * the component's change detector and doing a local check every five seconds. + * + * ```typescript + * class DataProvider { + * // in a real application the returned data will be different every time + * get data() { + * return [1,2,3,4,5]; + * } + * } + * + * \@Component({ + * selector: 'giant-list', + * template: ` + *
  • Data {{d}} + * `, + * }) + * class GiantList { + * constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) { + * ref.detach(); + * setInterval(() => { + * this.ref.detectChanges(); + * }, 5000); + * } + * } + * + * \@Component({ + * selector: 'app', + * providers: [DataProvider], + * template: ` + * + * `, + * }) + * class App { + * } + * ``` + * @abstract + * @return {?} + */ + ChangeDetectorRef.prototype.detach = function () { }; + /** + * Checks the change detector and its children. + * + * This can also be used in combination with {\@link ChangeDetectorRef#detach} to implement local + * change detection + * checks. + * + * + * + * + * ### Example + * + * The following example defines a component with a large list of readonly data. + * Imagine, the data changes constantly, many times per second. For performance reasons, + * we want to check and update the list every five seconds. + * + * We can do that by detaching the component's change detector and doing a local change detection + * check + * every five seconds. + * + * See {\@link ChangeDetectorRef#detach} for more information. + * @abstract + * @return {?} + */ + ChangeDetectorRef.prototype.detectChanges = function () { }; + /** + * Checks the change detector and its children, and throws if any changes are detected. + * + * This is used in development mode to verify that running change detection doesn't introduce + * other changes. + * @abstract + * @return {?} + */ + ChangeDetectorRef.prototype.checkNoChanges = function () { }; + /** + * Reattach the change detector to the change detector tree. + * + * This also marks OnPush ancestors as to be checked. This reattached change detector will be + * checked during the next change detection run. + * + * + * + * ### Example ([live demo](http://plnkr.co/edit/aUhZha?p=preview)) + * + * The following example creates a component displaying `live` data. The component will detach + * its change detector from the main change detector tree when the component's live property + * is set to false. + * + * ```typescript + * class DataProvider { + * data = 1; + * + * constructor() { + * setInterval(() => { + * this.data = this.data * 2; + * }, 500); + * } + * } + * + * \@Component({ + * selector: 'live-data', + * inputs: ['live'], + * template: 'Data: {{dataProvider.data}}' + * }) + * class LiveData { + * constructor(private ref: ChangeDetectorRef, private dataProvider:DataProvider) {} + * + * set live(value) { + * if (value) + * this.ref.reattach(); + * else + * this.ref.detach(); + * } + * } + * + * \@Component({ + * selector: 'app', + * providers: [DataProvider], + * template: ` + * Live Update: + * + * `, + * }) + * class App { + * live = true; + * } + * ``` + * @abstract + * @return {?} + */ + ChangeDetectorRef.prototype.reattach = function () { }; + return ChangeDetectorRef; +}()); +/** + * @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 + */ +/** + * \@stable + * @abstract + */ +var ViewRef = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](ViewRef, _super); + function ViewRef() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Destroys the view and all of the data structures associated with it. + * @abstract + * @return {?} + */ + ViewRef.prototype.destroy = function () { }; + /** + * @abstract + * @return {?} + */ + ViewRef.prototype.destroyed = function () { }; + /** + * @abstract + * @param {?} callback + * @return {?} + */ + ViewRef.prototype.onDestroy = function (callback) { }; + return ViewRef; +}(ChangeDetectorRef)); +/** + * Represents an Angular View. + * + * + * A View is a fundamental building block of the application UI. It is the smallest grouping of + * Elements which are created and destroyed together. + * + * Properties of elements in a View can change, but the structure (number and order) of elements in + * a View cannot. Changing the structure of Elements can only be done by inserting, moving or + * removing nested Views via a {\@link ViewContainerRef}. Each View can contain many View Containers. + * + * + * ### Example + * + * Given this template... + * + * ``` + * Count: {{items.length}} + *
      + *
    • {{item}}
    • + *
    + * ``` + * + * We have two {\@link TemplateRef}s: + * + * Outer {\@link TemplateRef}: + * ``` + * Count: {{items.length}} + *
      + * + *
    + * ``` + * + * Inner {\@link TemplateRef}: + * ``` + *
  • {{item}}
  • + * ``` + * + * Notice that the original template is broken down into two separate {\@link TemplateRef}s. + * + * The outer/inner {\@link TemplateRef}s are then assembled into views like so: + * + * ``` + * + * Count: 2 + *
      + * + *
    • first
    • + *
    • second
    • + *
    + * + * ``` + * \@experimental + * @abstract + */ +var EmbeddedViewRef = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](EmbeddedViewRef, _super); + function EmbeddedViewRef() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * @abstract + * @return {?} + */ + EmbeddedViewRef.prototype.context = function () { }; + /** + * @abstract + * @return {?} + */ + EmbeddedViewRef.prototype.rootNodes = function () { }; + return EmbeddedViewRef; +}(ViewRef)); +/** + * @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 + */ +// Public API for compiler +/** + * @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 EventListener = (function () { + /** + * @param {?} name + * @param {?} callback + */ + function EventListener(name, callback) { + this.name = name; + this.callback = callback; + } + ; + return EventListener; +}()); +/** + * \@experimental All debugging apis are currently experimental. + */ +var DebugNode = (function () { + /** + * @param {?} nativeNode + * @param {?} parent + * @param {?} _debugContext + */ + function DebugNode(nativeNode, parent, _debugContext) { + this._debugContext = _debugContext; + this.nativeNode = nativeNode; + if (parent && parent instanceof DebugElement) { + parent.addChild(this); + } + else { + this.parent = null; + } + this.listeners = []; + } + Object.defineProperty(DebugNode.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return this._debugContext.injector; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugNode.prototype, "componentInstance", { + /** + * @return {?} + */ + get: function () { return this._debugContext.component; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugNode.prototype, "context", { + /** + * @return {?} + */ + get: function () { return this._debugContext.context; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugNode.prototype, "references", { + /** + * @return {?} + */ + get: function () { return this._debugContext.references; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugNode.prototype, "providerTokens", { + /** + * @return {?} + */ + get: function () { return this._debugContext.providerTokens; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugNode.prototype, "source", { + /** + * @deprecated since v4 + * @return {?} + */ + get: function () { return 'Deprecated since v4'; }, + enumerable: true, + configurable: true + }); + return DebugNode; +}()); +/** + * \@experimental All debugging apis are currently experimental. + */ +var DebugElement = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](DebugElement, _super); + /** + * @param {?} nativeNode + * @param {?} parent + * @param {?} _debugContext + */ + function DebugElement(nativeNode, parent, _debugContext) { + var _this = _super.call(this, nativeNode, parent, _debugContext) || this; + _this.properties = {}; + _this.attributes = {}; + _this.classes = {}; + _this.styles = {}; + _this.childNodes = []; + _this.nativeElement = nativeNode; + return _this; + } + /** + * @param {?} child + * @return {?} + */ + DebugElement.prototype.addChild = function (child) { + if (child) { + this.childNodes.push(child); + child.parent = this; + } + }; + /** + * @param {?} child + * @return {?} + */ + DebugElement.prototype.removeChild = function (child) { + var /** @type {?} */ childIndex = this.childNodes.indexOf(child); + if (childIndex !== -1) { + child.parent = null; + this.childNodes.splice(childIndex, 1); + } + }; + /** + * @param {?} child + * @param {?} newChildren + * @return {?} + */ + DebugElement.prototype.insertChildrenAfter = function (child, newChildren) { + var _this = this; + var /** @type {?} */ siblingIndex = this.childNodes.indexOf(child); + if (siblingIndex !== -1) { + (_a = this.childNodes).splice.apply(_a, [siblingIndex + 1, 0].concat(newChildren)); + newChildren.forEach(function (c) { + if (c.parent) { + c.parent.removeChild(c); + } + c.parent = _this; + }); + } + var _a; + }; + /** + * @param {?} refChild + * @param {?} newChild + * @return {?} + */ + DebugElement.prototype.insertBefore = function (refChild, newChild) { + var /** @type {?} */ refIndex = this.childNodes.indexOf(refChild); + if (refIndex === -1) { + this.addChild(newChild); + } + else { + if (newChild.parent) { + newChild.parent.removeChild(newChild); + } + newChild.parent = this; + this.childNodes.splice(refIndex, 0, newChild); + } + }; + /** + * @param {?} predicate + * @return {?} + */ + DebugElement.prototype.query = function (predicate) { + var /** @type {?} */ results = this.queryAll(predicate); + return results[0] || null; + }; + /** + * @param {?} predicate + * @return {?} + */ + DebugElement.prototype.queryAll = function (predicate) { + var /** @type {?} */ matches = []; + _queryElementChildren(this, predicate, matches); + return matches; + }; + /** + * @param {?} predicate + * @return {?} + */ + DebugElement.prototype.queryAllNodes = function (predicate) { + var /** @type {?} */ matches = []; + _queryNodeChildren(this, predicate, matches); + return matches; + }; + Object.defineProperty(DebugElement.prototype, "children", { + /** + * @return {?} + */ + get: function () { + return (this.childNodes.filter(function (node) { return node instanceof DebugElement; })); + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} eventName + * @param {?} eventObj + * @return {?} + */ + DebugElement.prototype.triggerEventHandler = function (eventName, eventObj) { + this.listeners.forEach(function (listener) { + if (listener.name == eventName) { + listener.callback(eventObj); + } + }); + }; + return DebugElement; +}(DebugNode)); +/** + * \@experimental + * @param {?} debugEls + * @return {?} + */ +function asNativeElements(debugEls) { + return debugEls.map(function (el) { return el.nativeElement; }); +} +/** + * @param {?} element + * @param {?} predicate + * @param {?} matches + * @return {?} + */ +function _queryElementChildren(element, predicate, matches) { + element.childNodes.forEach(function (node) { + if (node instanceof DebugElement) { + if (predicate(node)) { + matches.push(node); + } + _queryElementChildren(node, predicate, matches); + } + }); +} +/** + * @param {?} parentNode + * @param {?} predicate + * @param {?} matches + * @return {?} + */ +function _queryNodeChildren(parentNode, predicate, matches) { + if (parentNode instanceof DebugElement) { + parentNode.childNodes.forEach(function (node) { + if (predicate(node)) { + matches.push(node); + } + if (node instanceof DebugElement) { + _queryNodeChildren(node, predicate, matches); + } + }); + } +} +// Need to keep the nodes in a global Map so that multiple angular apps are supported. +var _nativeNodeToDebugNode = new Map(); +/** + * \@experimental + * @param {?} nativeNode + * @return {?} + */ +function getDebugNode(nativeNode) { + return _nativeNodeToDebugNode.get(nativeNode) || null; +} +/** + * @return {?} + */ +/** + * @param {?} node + * @return {?} + */ +function indexDebugNode(node) { + _nativeNodeToDebugNode.set(node.nativeNode, node); +} +/** + * @param {?} node + * @return {?} + */ +function removeDebugNodeFromIndex(node) { + _nativeNodeToDebugNode.delete(node.nativeNode); +} +/** + * @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 + */ +/** + * @param {?} a + * @param {?} b + * @return {?} + */ +function devModeEqual(a, b) { + var /** @type {?} */ isListLikeIterableA = isListLikeIterable(a); + var /** @type {?} */ isListLikeIterableB = isListLikeIterable(b); + if (isListLikeIterableA && isListLikeIterableB) { + return areIterablesEqual(a, b, devModeEqual); + } + else { + var /** @type {?} */ isAObject = a && (typeof a === 'object' || typeof a === 'function'); + var /** @type {?} */ isBObject = b && (typeof b === 'object' || typeof b === 'function'); + if (!isListLikeIterableA && isAObject && !isListLikeIterableB && isBObject) { + return true; + } + else { + return looseIdentical(a, b); + } + } +} +/** + * Indicates that the result of a {\@link Pipe} transformation has changed even though the + * reference + * has not changed. + * + * The wrapped value will be unwrapped by change detection, and the unwrapped value will be stored. + * + * Example: + * + * ``` + * if (this._latestValue === this._latestReturnedValue) { + * return this._latestReturnedValue; + * } else { + * this._latestReturnedValue = this._latestValue; + * return WrappedValue.wrap(this._latestValue); // this will force update + * } + * ``` + * \@stable + */ +var WrappedValue = (function () { + /** + * @param {?} wrapped + */ + function WrappedValue(wrapped) { + this.wrapped = wrapped; + } + /** + * @param {?} value + * @return {?} + */ + WrappedValue.wrap = function (value) { return new WrappedValue(value); }; + return WrappedValue; +}()); +/** + * Helper class for unwrapping WrappedValue s + */ +var ValueUnwrapper = (function () { + function ValueUnwrapper() { + this.hasWrappedValue = false; + } + /** + * @param {?} value + * @return {?} + */ + ValueUnwrapper.prototype.unwrap = function (value) { + if (value instanceof WrappedValue) { + this.hasWrappedValue = true; + return value.wrapped; + } + return value; + }; + /** + * @return {?} + */ + ValueUnwrapper.prototype.reset = function () { this.hasWrappedValue = false; }; + return ValueUnwrapper; +}()); +/** + * Represents a basic change from a previous to a new value. + * \@stable + */ +var SimpleChange = (function () { + /** + * @param {?} previousValue + * @param {?} currentValue + * @param {?} firstChange + */ + function SimpleChange(previousValue, currentValue, firstChange) { + this.previousValue = previousValue; + this.currentValue = currentValue; + this.firstChange = firstChange; + } + /** + * Check whether the new value is the first value assigned. + * @return {?} + */ + SimpleChange.prototype.isFirstChange = function () { return this.firstChange; }; + return SimpleChange; +}()); +/** + * @param {?} obj + * @return {?} + */ +function isListLikeIterable(obj) { + if (!isJsObject(obj)) + return false; + return Array.isArray(obj) || + (!(obj instanceof Map) && + getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop +} +/** + * @param {?} a + * @param {?} b + * @param {?} comparator + * @return {?} + */ +function areIterablesEqual(a, b, comparator) { + var /** @type {?} */ iterator1 = a[getSymbolIterator()](); + var /** @type {?} */ iterator2 = b[getSymbolIterator()](); + while (true) { + var /** @type {?} */ item1 = iterator1.next(); + var /** @type {?} */ item2 = iterator2.next(); + if (item1.done && item2.done) + return true; + if (item1.done || item2.done) + return false; + if (!comparator(item1.value, item2.value)) + return false; + } +} +/** + * @param {?} obj + * @param {?} fn + * @return {?} + */ +function iterateListLike(obj, fn) { + if (Array.isArray(obj)) { + for (var /** @type {?} */ i = 0; i < obj.length; i++) { + fn(obj[i]); + } + } + else { + var /** @type {?} */ iterator = obj[getSymbolIterator()](); + var /** @type {?} */ item = void 0; + while (!((item = iterator.next()).done)) { + fn(item.value); + } + } +} +/** + * @param {?} o + * @return {?} + */ +function isJsObject(o) { + return o !== null && (typeof o === 'function' || typeof o === 'object'); +} +/** + * @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 DefaultIterableDifferFactory = (function () { + function DefaultIterableDifferFactory() { + } + /** + * @param {?} obj + * @return {?} + */ + DefaultIterableDifferFactory.prototype.supports = function (obj) { return isListLikeIterable(obj); }; + /** + * @deprecated v4.0.0 - ChangeDetectorRef is not used and is no longer a parameter + * @template V + * @param {?=} cdRefOrTrackBy + * @param {?=} trackByFn + * @return {?} + */ + DefaultIterableDifferFactory.prototype.create = function (cdRefOrTrackBy, trackByFn) { + return new DefaultIterableDiffer(trackByFn || (cdRefOrTrackBy)); + }; + return DefaultIterableDifferFactory; +}()); +var trackByIdentity = function (index, item) { return item; }; +/** + * @deprecated v4.0.0 - Should not be part of public API. + */ +var DefaultIterableDiffer = (function () { + /** + * @param {?=} trackByFn + */ + function DefaultIterableDiffer(trackByFn) { + this._length = 0; + this._collection = null; + this._linkedRecords = null; + this._unlinkedRecords = null; + this._previousItHead = null; + this._itHead = null; + this._itTail = null; + this._additionsHead = null; + this._additionsTail = null; + this._movesHead = null; + this._movesTail = null; + this._removalsHead = null; + this._removalsTail = null; + this._identityChangesHead = null; + this._identityChangesTail = null; + this._trackByFn = trackByFn || trackByIdentity; + } + Object.defineProperty(DefaultIterableDiffer.prototype, "collection", { + /** + * @return {?} + */ + get: function () { return this._collection; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DefaultIterableDiffer.prototype, "length", { + /** + * @return {?} + */ + get: function () { return this._length; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachItem = function (fn) { + var /** @type {?} */ record; + for (record = this._itHead; record !== null; record = record._next) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachOperation = function (fn) { + var /** @type {?} */ nextIt = this._itHead; + var /** @type {?} */ nextRemove = this._removalsHead; + var /** @type {?} */ addRemoveOffset = 0; + var /** @type {?} */ moveOffsets = null; + while (nextIt || nextRemove) { + // Figure out which is the next record to process + // Order: remove, add, move + var /** @type {?} */ record = !nextRemove || + nextIt && ((nextIt.currentIndex)) < + getPreviousIndex(nextRemove, addRemoveOffset, moveOffsets) ? ((nextIt)) : + nextRemove; + var /** @type {?} */ adjPreviousIndex = getPreviousIndex(record, addRemoveOffset, moveOffsets); + var /** @type {?} */ currentIndex = record.currentIndex; + // consume the item, and adjust the addRemoveOffset and update moveDistance if necessary + if (record === nextRemove) { + addRemoveOffset--; + nextRemove = nextRemove._nextRemoved; + } + else { + nextIt = ((nextIt))._next; + if (record.previousIndex == null) { + addRemoveOffset++; + } + else { + // INVARIANT: currentIndex < previousIndex + if (!moveOffsets) + moveOffsets = []; + var /** @type {?} */ localMovePreviousIndex = adjPreviousIndex - addRemoveOffset; + var /** @type {?} */ localCurrentIndex = ((currentIndex)) - addRemoveOffset; + if (localMovePreviousIndex != localCurrentIndex) { + for (var /** @type {?} */ i = 0; i < localMovePreviousIndex; i++) { + var /** @type {?} */ offset = i < moveOffsets.length ? moveOffsets[i] : (moveOffsets[i] = 0); + var /** @type {?} */ index = offset + i; + if (localCurrentIndex <= index && index < localMovePreviousIndex) { + moveOffsets[i] = offset + 1; + } + } + var /** @type {?} */ previousIndex = record.previousIndex; + moveOffsets[previousIndex] = localCurrentIndex - localMovePreviousIndex; + } + } + } + if (adjPreviousIndex !== currentIndex) { + fn(record, adjPreviousIndex, currentIndex); + } + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachPreviousItem = function (fn) { + var /** @type {?} */ record; + for (record = this._previousItHead; record !== null; record = record._nextPrevious) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachAddedItem = function (fn) { + var /** @type {?} */ record; + for (record = this._additionsHead; record !== null; record = record._nextAdded) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachMovedItem = function (fn) { + var /** @type {?} */ record; + for (record = this._movesHead; record !== null; record = record._nextMoved) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachRemovedItem = function (fn) { + var /** @type {?} */ record; + for (record = this._removalsHead; record !== null; record = record._nextRemoved) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultIterableDiffer.prototype.forEachIdentityChange = function (fn) { + var /** @type {?} */ record; + for (record = this._identityChangesHead; record !== null; record = record._nextIdentityChange) { + fn(record); + } + }; + /** + * @param {?} collection + * @return {?} + */ + DefaultIterableDiffer.prototype.diff = function (collection) { + if (collection == null) + collection = []; + if (!isListLikeIterable(collection)) { + throw new Error("Error trying to diff '" + stringify(collection) + "'. Only arrays and iterables are allowed"); + } + if (this.check(collection)) { + return this; + } + else { + return null; + } + }; + /** + * @return {?} + */ + DefaultIterableDiffer.prototype.onDestroy = function () { }; + /** + * @param {?} collection + * @return {?} + */ + DefaultIterableDiffer.prototype.check = function (collection) { + var _this = this; + this._reset(); + var /** @type {?} */ record = this._itHead; + var /** @type {?} */ mayBeDirty = false; + var /** @type {?} */ index; + var /** @type {?} */ item; + var /** @type {?} */ itemTrackBy; + if (Array.isArray(collection)) { + this._length = collection.length; + for (var /** @type {?} */ index_1 = 0; index_1 < this._length; index_1++) { + item = collection[index_1]; + itemTrackBy = this._trackByFn(index_1, item); + if (record === null || !looseIdentical(record.trackById, itemTrackBy)) { + record = this._mismatch(record, item, itemTrackBy, index_1); + mayBeDirty = true; + } + else { + if (mayBeDirty) { + // TODO(misko): can we limit this to duplicates only? + record = this._verifyReinsertion(record, item, itemTrackBy, index_1); + } + if (!looseIdentical(record.item, item)) + this._addIdentityChange(record, item); + } + record = record._next; + } + } + else { + index = 0; + iterateListLike(collection, function (item) { + itemTrackBy = _this._trackByFn(index, item); + if (record === null || !looseIdentical(record.trackById, itemTrackBy)) { + record = _this._mismatch(record, item, itemTrackBy, index); + mayBeDirty = true; + } + else { + if (mayBeDirty) { + // TODO(misko): can we limit this to duplicates only? + record = _this._verifyReinsertion(record, item, itemTrackBy, index); + } + if (!looseIdentical(record.item, item)) + _this._addIdentityChange(record, item); + } + record = record._next; + index++; + }); + this._length = index; + } + this._truncate(record); + this._collection = collection; + return this.isDirty; + }; + Object.defineProperty(DefaultIterableDiffer.prototype, "isDirty", { + /** + * @return {?} + */ + get: function () { + return this._additionsHead !== null || this._movesHead !== null || + this._removalsHead !== null || this._identityChangesHead !== null; + }, + enumerable: true, + configurable: true + }); + /** + * Reset the state of the change objects to show no changes. This means set previousKey to + * currentKey, and clear all of the queues (additions, moves, removals). + * Set the previousIndexes of moved and added items to their currentIndexes + * Reset the list of additions, moves and removals + * + * \@internal + * @return {?} + */ + DefaultIterableDiffer.prototype._reset = function () { + if (this.isDirty) { + var /** @type {?} */ record = void 0; + var /** @type {?} */ nextRecord = void 0; + for (record = this._previousItHead = this._itHead; record !== null; record = record._next) { + record._nextPrevious = record._next; + } + for (record = this._additionsHead; record !== null; record = record._nextAdded) { + record.previousIndex = record.currentIndex; + } + this._additionsHead = this._additionsTail = null; + for (record = this._movesHead; record !== null; record = nextRecord) { + record.previousIndex = record.currentIndex; + nextRecord = record._nextMoved; + } + this._movesHead = this._movesTail = null; + this._removalsHead = this._removalsTail = null; + this._identityChangesHead = this._identityChangesTail = null; + // todo(vicb) when assert gets supported + // assert(!this.isDirty); + } + }; + /** + * This is the core function which handles differences between collections. + * + * - `record` is the record which we saw at this position last time. If null then it is a new + * item. + * - `item` is the current item in the collection + * - `index` is the position of the item in the collection + * + * \@internal + * @param {?} record + * @param {?} item + * @param {?} itemTrackBy + * @param {?} index + * @return {?} + */ + DefaultIterableDiffer.prototype._mismatch = function (record, item, itemTrackBy, index) { + // The previous record after which we will append the current one. + var /** @type {?} */ previousRecord; + if (record === null) { + previousRecord = this._itTail; + } + else { + previousRecord = record._prev; + // Remove the record from the collection since we know it does not match the item. + this._remove(record); + } + // Attempt to see if we have seen the item before. + record = this._linkedRecords === null ? null : this._linkedRecords.get(itemTrackBy, index); + if (record !== null) { + // We have seen this before, we need to move it forward in the collection. + // But first we need to check if identity changed, so we can update in view if necessary + if (!looseIdentical(record.item, item)) + this._addIdentityChange(record, item); + this._moveAfter(record, previousRecord, index); + } + else { + // Never seen it, check evicted list. + record = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy, null); + if (record !== null) { + // It is an item which we have evicted earlier: reinsert it back into the list. + // But first we need to check if identity changed, so we can update in view if necessary + if (!looseIdentical(record.item, item)) + this._addIdentityChange(record, item); + this._reinsertAfter(record, previousRecord, index); + } + else { + // It is a new item: add it. + record = + this._addAfter(new IterableChangeRecord_(item, itemTrackBy), previousRecord, index); + } + } + return record; + }; + /** + * This check is only needed if an array contains duplicates. (Short circuit of nothing dirty) + * + * Use case: `[a, a]` => `[b, a, a]` + * + * If we did not have this check then the insertion of `b` would: + * 1) evict first `a` + * 2) insert `b` at `0` index. + * 3) leave `a` at index `1` as is. <-- this is wrong! + * 3) reinsert `a` at index 2. <-- this is wrong! + * + * The correct behavior is: + * 1) evict first `a` + * 2) insert `b` at `0` index. + * 3) reinsert `a` at index 1. + * 3) move `a` at from `1` to `2`. + * + * + * Double check that we have not evicted a duplicate item. We need to check if the item type may + * have already been removed: + * The insertion of b will evict the first 'a'. If we don't reinsert it now it will be reinserted + * at the end. Which will show up as the two 'a's switching position. This is incorrect, since a + * better way to think of it is as insert of 'b' rather then switch 'a' with 'b' and then add 'a' + * at the end. + * + * \@internal + * @param {?} record + * @param {?} item + * @param {?} itemTrackBy + * @param {?} index + * @return {?} + */ + DefaultIterableDiffer.prototype._verifyReinsertion = function (record, item, itemTrackBy, index) { + var /** @type {?} */ reinsertRecord = this._unlinkedRecords === null ? null : this._unlinkedRecords.get(itemTrackBy, null); + if (reinsertRecord !== null) { + record = this._reinsertAfter(reinsertRecord, /** @type {?} */ ((record._prev)), index); + } + else if (record.currentIndex != index) { + record.currentIndex = index; + this._addToMoves(record, index); + } + return record; + }; + /** + * Get rid of any excess {\@link IterableChangeRecord_}s from the previous collection + * + * - `record` The first excess {\@link IterableChangeRecord_}. + * + * \@internal + * @param {?} record + * @return {?} + */ + DefaultIterableDiffer.prototype._truncate = function (record) { + // Anything after that needs to be removed; + while (record !== null) { + var /** @type {?} */ nextRecord = record._next; + this._addToRemovals(this._unlink(record)); + record = nextRecord; + } + if (this._unlinkedRecords !== null) { + this._unlinkedRecords.clear(); + } + if (this._additionsTail !== null) { + this._additionsTail._nextAdded = null; + } + if (this._movesTail !== null) { + this._movesTail._nextMoved = null; + } + if (this._itTail !== null) { + this._itTail._next = null; + } + if (this._removalsTail !== null) { + this._removalsTail._nextRemoved = null; + } + if (this._identityChangesTail !== null) { + this._identityChangesTail._nextIdentityChange = null; + } + }; + /** + * \@internal + * @param {?} record + * @param {?} prevRecord + * @param {?} index + * @return {?} + */ + DefaultIterableDiffer.prototype._reinsertAfter = function (record, prevRecord, index) { + if (this._unlinkedRecords !== null) { + this._unlinkedRecords.remove(record); + } + var /** @type {?} */ prev = record._prevRemoved; + var /** @type {?} */ next = record._nextRemoved; + if (prev === null) { + this._removalsHead = next; + } + else { + prev._nextRemoved = next; + } + if (next === null) { + this._removalsTail = prev; + } + else { + next._prevRemoved = prev; + } + this._insertAfter(record, prevRecord, index); + this._addToMoves(record, index); + return record; + }; + /** + * \@internal + * @param {?} record + * @param {?} prevRecord + * @param {?} index + * @return {?} + */ + DefaultIterableDiffer.prototype._moveAfter = function (record, prevRecord, index) { + this._unlink(record); + this._insertAfter(record, prevRecord, index); + this._addToMoves(record, index); + return record; + }; + /** + * \@internal + * @param {?} record + * @param {?} prevRecord + * @param {?} index + * @return {?} + */ + DefaultIterableDiffer.prototype._addAfter = function (record, prevRecord, index) { + this._insertAfter(record, prevRecord, index); + if (this._additionsTail === null) { + // todo(vicb) + // assert(this._additionsHead === null); + this._additionsTail = this._additionsHead = record; + } + else { + // todo(vicb) + // assert(_additionsTail._nextAdded === null); + // assert(record._nextAdded === null); + this._additionsTail = this._additionsTail._nextAdded = record; + } + return record; + }; + /** + * \@internal + * @param {?} record + * @param {?} prevRecord + * @param {?} index + * @return {?} + */ + DefaultIterableDiffer.prototype._insertAfter = function (record, prevRecord, index) { + // todo(vicb) + // assert(record != prevRecord); + // assert(record._next === null); + // assert(record._prev === null); + var /** @type {?} */ next = prevRecord === null ? this._itHead : prevRecord._next; + // todo(vicb) + // assert(next != record); + // assert(prevRecord != record); + record._next = next; + record._prev = prevRecord; + if (next === null) { + this._itTail = record; + } + else { + next._prev = record; + } + if (prevRecord === null) { + this._itHead = record; + } + else { + prevRecord._next = record; + } + if (this._linkedRecords === null) { + this._linkedRecords = new _DuplicateMap(); + } + this._linkedRecords.put(record); + record.currentIndex = index; + return record; + }; + /** + * \@internal + * @param {?} record + * @return {?} + */ + DefaultIterableDiffer.prototype._remove = function (record) { + return this._addToRemovals(this._unlink(record)); + }; + /** + * \@internal + * @param {?} record + * @return {?} + */ + DefaultIterableDiffer.prototype._unlink = function (record) { + if (this._linkedRecords !== null) { + this._linkedRecords.remove(record); + } + var /** @type {?} */ prev = record._prev; + var /** @type {?} */ next = record._next; + // todo(vicb) + // assert((record._prev = null) === null); + // assert((record._next = null) === null); + if (prev === null) { + this._itHead = next; + } + else { + prev._next = next; + } + if (next === null) { + this._itTail = prev; + } + else { + next._prev = prev; + } + return record; + }; + /** + * \@internal + * @param {?} record + * @param {?} toIndex + * @return {?} + */ + DefaultIterableDiffer.prototype._addToMoves = function (record, toIndex) { + // todo(vicb) + // assert(record._nextMoved === null); + if (record.previousIndex === toIndex) { + return record; + } + if (this._movesTail === null) { + // todo(vicb) + // assert(_movesHead === null); + this._movesTail = this._movesHead = record; + } + else { + // todo(vicb) + // assert(_movesTail._nextMoved === null); + this._movesTail = this._movesTail._nextMoved = record; + } + return record; + }; + /** + * @param {?} record + * @return {?} + */ + DefaultIterableDiffer.prototype._addToRemovals = function (record) { + if (this._unlinkedRecords === null) { + this._unlinkedRecords = new _DuplicateMap(); + } + this._unlinkedRecords.put(record); + record.currentIndex = null; + record._nextRemoved = null; + if (this._removalsTail === null) { + // todo(vicb) + // assert(_removalsHead === null); + this._removalsTail = this._removalsHead = record; + record._prevRemoved = null; + } + else { + // todo(vicb) + // assert(_removalsTail._nextRemoved === null); + // assert(record._nextRemoved === null); + record._prevRemoved = this._removalsTail; + this._removalsTail = this._removalsTail._nextRemoved = record; + } + return record; + }; + /** + * \@internal + * @param {?} record + * @param {?} item + * @return {?} + */ + DefaultIterableDiffer.prototype._addIdentityChange = function (record, item) { + record.item = item; + if (this._identityChangesTail === null) { + this._identityChangesTail = this._identityChangesHead = record; + } + else { + this._identityChangesTail = this._identityChangesTail._nextIdentityChange = record; + } + return record; + }; + /** + * @return {?} + */ + DefaultIterableDiffer.prototype.toString = function () { + var /** @type {?} */ list = []; + this.forEachItem(function (record) { return list.push(record); }); + var /** @type {?} */ previous = []; + this.forEachPreviousItem(function (record) { return previous.push(record); }); + var /** @type {?} */ additions = []; + this.forEachAddedItem(function (record) { return additions.push(record); }); + var /** @type {?} */ moves = []; + this.forEachMovedItem(function (record) { return moves.push(record); }); + var /** @type {?} */ removals = []; + this.forEachRemovedItem(function (record) { return removals.push(record); }); + var /** @type {?} */ identityChanges = []; + this.forEachIdentityChange(function (record) { return identityChanges.push(record); }); + return 'collection: ' + list.join(', ') + '\n' + + 'previous: ' + previous.join(', ') + '\n' + + 'additions: ' + additions.join(', ') + '\n' + + 'moves: ' + moves.join(', ') + '\n' + + 'removals: ' + removals.join(', ') + '\n' + + 'identityChanges: ' + identityChanges.join(', ') + '\n'; + }; + return DefaultIterableDiffer; +}()); +/** + * \@stable + */ +var IterableChangeRecord_ = (function () { + /** + * @param {?} item + * @param {?} trackById + */ + function IterableChangeRecord_(item, trackById) { + this.item = item; + this.trackById = trackById; + this.currentIndex = null; + this.previousIndex = null; + /** + * \@internal + */ + this._nextPrevious = null; + /** + * \@internal + */ + this._prev = null; + /** + * \@internal + */ + this._next = null; + /** + * \@internal + */ + this._prevDup = null; + /** + * \@internal + */ + this._nextDup = null; + /** + * \@internal + */ + this._prevRemoved = null; + /** + * \@internal + */ + this._nextRemoved = null; + /** + * \@internal + */ + this._nextAdded = null; + /** + * \@internal + */ + this._nextMoved = null; + /** + * \@internal + */ + this._nextIdentityChange = null; + } + /** + * @return {?} + */ + IterableChangeRecord_.prototype.toString = function () { + return this.previousIndex === this.currentIndex ? stringify(this.item) : + stringify(this.item) + '[' + + stringify(this.previousIndex) + '->' + stringify(this.currentIndex) + ']'; + }; + return IterableChangeRecord_; +}()); +var _DuplicateItemRecordList = (function () { + function _DuplicateItemRecordList() { + /** + * \@internal + */ + this._head = null; + /** + * \@internal + */ + this._tail = null; + } + /** + * Append the record to the list of duplicates. + * + * Note: by design all records in the list of duplicates hold the same value in record.item. + * @param {?} record + * @return {?} + */ + _DuplicateItemRecordList.prototype.add = function (record) { + if (this._head === null) { + this._head = this._tail = record; + record._nextDup = null; + record._prevDup = null; + } + else { + (( + // todo(vicb) + // assert(record.item == _head.item || + // record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN); + this._tail))._nextDup = record; + record._prevDup = this._tail; + record._nextDup = null; + this._tail = record; + } + }; + /** + * @param {?} trackById + * @param {?} atOrAfterIndex + * @return {?} + */ + _DuplicateItemRecordList.prototype.get = function (trackById, atOrAfterIndex) { + var /** @type {?} */ record; + for (record = this._head; record !== null; record = record._nextDup) { + if ((atOrAfterIndex === null || atOrAfterIndex <= ((record.currentIndex))) && + looseIdentical(record.trackById, trackById)) { + return record; + } + } + return null; + }; + /** + * Remove one {\@link IterableChangeRecord_} from the list of duplicates. + * + * Returns whether the list of duplicates is empty. + * @param {?} record + * @return {?} + */ + _DuplicateItemRecordList.prototype.remove = function (record) { + // todo(vicb) + // assert(() { + // // verify that the record being removed is in the list. + // for (IterableChangeRecord_ cursor = _head; cursor != null; cursor = cursor._nextDup) { + // if (identical(cursor, record)) return true; + // } + // return false; + //}); + var /** @type {?} */ prev = record._prevDup; + var /** @type {?} */ next = record._nextDup; + if (prev === null) { + this._head = next; + } + else { + prev._nextDup = next; + } + if (next === null) { + this._tail = prev; + } + else { + next._prevDup = prev; + } + return this._head === null; + }; + return _DuplicateItemRecordList; +}()); +var _DuplicateMap = (function () { + function _DuplicateMap() { + this.map = new Map(); + } + /** + * @param {?} record + * @return {?} + */ + _DuplicateMap.prototype.put = function (record) { + var /** @type {?} */ key = record.trackById; + var /** @type {?} */ duplicates = this.map.get(key); + if (!duplicates) { + duplicates = new _DuplicateItemRecordList(); + this.map.set(key, duplicates); + } + duplicates.add(record); + }; + /** + * Retrieve the `value` using key. Because the IterableChangeRecord_ value may be one which we + * have already iterated over, we use the `atOrAfterIndex` to pretend it is not there. + * + * Use case: `[a, b, c, a, a]` if we are at index `3` which is the second `a` then asking if we + * have any more `a`s needs to return the second `a`. + * @param {?} trackById + * @param {?} atOrAfterIndex + * @return {?} + */ + _DuplicateMap.prototype.get = function (trackById, atOrAfterIndex) { + var /** @type {?} */ key = trackById; + var /** @type {?} */ recordList = this.map.get(key); + return recordList ? recordList.get(trackById, atOrAfterIndex) : null; + }; + /** + * Removes a {\@link IterableChangeRecord_} from the list of duplicates. + * + * The list of duplicates also is removed from the map if it gets empty. + * @param {?} record + * @return {?} + */ + _DuplicateMap.prototype.remove = function (record) { + var /** @type {?} */ key = record.trackById; + var /** @type {?} */ recordList = ((this.map.get(key))); + // Remove the list of duplicates when it gets empty + if (recordList.remove(record)) { + this.map.delete(key); + } + return record; + }; + Object.defineProperty(_DuplicateMap.prototype, "isEmpty", { + /** + * @return {?} + */ + get: function () { return this.map.size === 0; }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + _DuplicateMap.prototype.clear = function () { this.map.clear(); }; + /** + * @return {?} + */ + _DuplicateMap.prototype.toString = function () { return '_DuplicateMap(' + stringify(this.map) + ')'; }; + return _DuplicateMap; +}()); +/** + * @param {?} item + * @param {?} addRemoveOffset + * @param {?} moveOffsets + * @return {?} + */ +function getPreviousIndex(item, addRemoveOffset, moveOffsets) { + var /** @type {?} */ previousIndex = item.previousIndex; + if (previousIndex === null) + return previousIndex; + var /** @type {?} */ moveOffset = 0; + if (moveOffsets && previousIndex < moveOffsets.length) { + moveOffset = moveOffsets[previousIndex]; + } + return previousIndex + addRemoveOffset + moveOffset; +} +/** + * @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 DefaultKeyValueDifferFactory = (function () { + function DefaultKeyValueDifferFactory() { + } + /** + * @param {?} obj + * @return {?} + */ + DefaultKeyValueDifferFactory.prototype.supports = function (obj) { return obj instanceof Map || isJsObject(obj); }; + /** + * @deprecated v4.0.0 - ChangeDetectorRef is not used and is no longer a parameter + * @template K, V + * @param {?=} cd + * @return {?} + */ + DefaultKeyValueDifferFactory.prototype.create = function (cd) { + return new DefaultKeyValueDiffer(); + }; + return DefaultKeyValueDifferFactory; +}()); +var DefaultKeyValueDiffer = (function () { + function DefaultKeyValueDiffer() { + this._records = new Map(); + this._mapHead = null; + this._appendAfter = null; + this._previousMapHead = null; + this._changesHead = null; + this._changesTail = null; + this._additionsHead = null; + this._additionsTail = null; + this._removalsHead = null; + this._removalsTail = null; + } + Object.defineProperty(DefaultKeyValueDiffer.prototype, "isDirty", { + /** + * @return {?} + */ + get: function () { + return this._additionsHead !== null || this._changesHead !== null || + this._removalsHead !== null; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} fn + * @return {?} + */ + DefaultKeyValueDiffer.prototype.forEachItem = function (fn) { + var /** @type {?} */ record; + for (record = this._mapHead; record !== null; record = record._next) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultKeyValueDiffer.prototype.forEachPreviousItem = function (fn) { + var /** @type {?} */ record; + for (record = this._previousMapHead; record !== null; record = record._nextPrevious) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultKeyValueDiffer.prototype.forEachChangedItem = function (fn) { + var /** @type {?} */ record; + for (record = this._changesHead; record !== null; record = record._nextChanged) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultKeyValueDiffer.prototype.forEachAddedItem = function (fn) { + var /** @type {?} */ record; + for (record = this._additionsHead; record !== null; record = record._nextAdded) { + fn(record); + } + }; + /** + * @param {?} fn + * @return {?} + */ + DefaultKeyValueDiffer.prototype.forEachRemovedItem = function (fn) { + var /** @type {?} */ record; + for (record = this._removalsHead; record !== null; record = record._nextRemoved) { + fn(record); + } + }; + /** + * @param {?=} map + * @return {?} + */ + DefaultKeyValueDiffer.prototype.diff = function (map) { + if (!map) { + map = new Map(); + } + else if (!(map instanceof Map || isJsObject(map))) { + throw new Error("Error trying to diff '" + stringify(map) + "'. Only maps and objects are allowed"); + } + return this.check(map) ? this : null; + }; + /** + * @return {?} + */ + DefaultKeyValueDiffer.prototype.onDestroy = function () { }; + /** + * Check the current state of the map vs the previous. + * The algorithm is optimised for when the keys do no change. + * @param {?} map + * @return {?} + */ + DefaultKeyValueDiffer.prototype.check = function (map) { + var _this = this; + this._reset(); + var /** @type {?} */ insertBefore = this._mapHead; + this._appendAfter = null; + this._forEach(map, function (value, key) { + if (insertBefore && insertBefore.key === key) { + _this._maybeAddToChanges(insertBefore, value); + _this._appendAfter = insertBefore; + insertBefore = insertBefore._next; + } + else { + var /** @type {?} */ record = _this._getOrCreateRecordForKey(key, value); + insertBefore = _this._insertBeforeOrAppend(insertBefore, record); + } + }); + // Items remaining at the end of the list have been deleted + if (insertBefore) { + if (insertBefore._prev) { + insertBefore._prev._next = null; + } + this._removalsHead = insertBefore; + for (var /** @type {?} */ record = insertBefore; record !== null; record = record._nextRemoved) { + if (record === this._mapHead) { + this._mapHead = null; + } + this._records.delete(record.key); + record._nextRemoved = record._next; + record.previousValue = record.currentValue; + record.currentValue = null; + record._prev = null; + record._next = null; + } + } + // Make sure tails have no next records from previous runs + if (this._changesTail) + this._changesTail._nextChanged = null; + if (this._additionsTail) + this._additionsTail._nextAdded = null; + return this.isDirty; + }; + /** + * Inserts a record before `before` or append at the end of the list when `before` is null. + * + * Notes: + * - This method appends at `this._appendAfter`, + * - This method updates `this._appendAfter`, + * - The return value is the new value for the insertion pointer. + * @param {?} before + * @param {?} record + * @return {?} + */ + DefaultKeyValueDiffer.prototype._insertBeforeOrAppend = function (before, record) { + if (before) { + var /** @type {?} */ prev = before._prev; + record._next = before; + record._prev = prev; + before._prev = record; + if (prev) { + prev._next = record; + } + if (before === this._mapHead) { + this._mapHead = record; + } + this._appendAfter = before; + return before; + } + if (this._appendAfter) { + this._appendAfter._next = record; + record._prev = this._appendAfter; + } + else { + this._mapHead = record; + } + this._appendAfter = record; + return null; + }; + /** + * @param {?} key + * @param {?} value + * @return {?} + */ + DefaultKeyValueDiffer.prototype._getOrCreateRecordForKey = function (key, value) { + if (this._records.has(key)) { + var /** @type {?} */ record_1 = ((this._records.get(key))); + this._maybeAddToChanges(record_1, value); + var /** @type {?} */ prev = record_1._prev; + var /** @type {?} */ next = record_1._next; + if (prev) { + prev._next = next; + } + if (next) { + next._prev = prev; + } + record_1._next = null; + record_1._prev = null; + return record_1; + } + var /** @type {?} */ record = new KeyValueChangeRecord_(key); + this._records.set(key, record); + record.currentValue = value; + this._addToAdditions(record); + return record; + }; + /** + * \@internal + * @return {?} + */ + DefaultKeyValueDiffer.prototype._reset = function () { + if (this.isDirty) { + var /** @type {?} */ record = void 0; + // let `_previousMapHead` contain the state of the map before the changes + this._previousMapHead = this._mapHead; + for (record = this._previousMapHead; record !== null; record = record._next) { + record._nextPrevious = record._next; + } + // Update `record.previousValue` with the value of the item before the changes + // We need to update all changed items (that's those which have been added and changed) + for (record = this._changesHead; record !== null; record = record._nextChanged) { + record.previousValue = record.currentValue; + } + for (record = this._additionsHead; record != null; record = record._nextAdded) { + record.previousValue = record.currentValue; + } + this._changesHead = this._changesTail = null; + this._additionsHead = this._additionsTail = null; + this._removalsHead = null; + } + }; + /** + * @param {?} record + * @param {?} newValue + * @return {?} + */ + DefaultKeyValueDiffer.prototype._maybeAddToChanges = function (record, newValue) { + if (!looseIdentical(newValue, record.currentValue)) { + record.previousValue = record.currentValue; + record.currentValue = newValue; + this._addToChanges(record); + } + }; + /** + * @param {?} record + * @return {?} + */ + DefaultKeyValueDiffer.prototype._addToAdditions = function (record) { + if (this._additionsHead === null) { + this._additionsHead = this._additionsTail = record; + } + else { + ((this._additionsTail))._nextAdded = record; + this._additionsTail = record; + } + }; + /** + * @param {?} record + * @return {?} + */ + DefaultKeyValueDiffer.prototype._addToChanges = function (record) { + if (this._changesHead === null) { + this._changesHead = this._changesTail = record; + } + else { + ((this._changesTail))._nextChanged = record; + this._changesTail = record; + } + }; + /** + * \@internal + * @template K, V + * @param {?} obj + * @param {?} fn + * @return {?} + */ + DefaultKeyValueDiffer.prototype._forEach = function (obj, fn) { + if (obj instanceof Map) { + obj.forEach(fn); + } + else { + Object.keys(obj).forEach(function (k) { return fn(obj[k], k); }); + } + }; + return DefaultKeyValueDiffer; +}()); +/** + * \@stable + */ +var KeyValueChangeRecord_ = (function () { + /** + * @param {?} key + */ + function KeyValueChangeRecord_(key) { + this.key = key; + this.previousValue = null; + this.currentValue = null; + /** + * \@internal + */ + this._nextPrevious = null; + /** + * \@internal + */ + this._next = null; + /** + * \@internal + */ + this._prev = null; + /** + * \@internal + */ + this._nextAdded = null; + /** + * \@internal + */ + this._nextRemoved = null; + /** + * \@internal + */ + this._nextChanged = null; + } + return KeyValueChangeRecord_; +}()); +/** + * @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 + */ +/** + * A repository of different iterable diffing strategies used by NgFor, NgClass, and others. + * \@stable + */ +var IterableDiffers = (function () { + /** + * @param {?} factories + */ + function IterableDiffers(factories) { + this.factories = factories; + } + /** + * @param {?} factories + * @param {?=} parent + * @return {?} + */ + IterableDiffers.create = function (factories, parent) { + if (parent != null) { + var /** @type {?} */ copied = parent.factories.slice(); + factories = factories.concat(copied); + return new IterableDiffers(factories); + } + else { + return new IterableDiffers(factories); + } + }; + /** + * Takes an array of {\@link IterableDifferFactory} and returns a provider used to extend the + * inherited {\@link IterableDiffers} instance with the provided factories and return a new + * {\@link IterableDiffers} instance. + * + * The following example shows how to extend an existing list of factories, + * which will only be applied to the injector for this component and its children. + * This step is all that's required to make a new {\@link IterableDiffer} available. + * + * ### Example + * + * ``` + * \@Component({ + * viewProviders: [ + * IterableDiffers.extend([new ImmutableListDiffer()]) + * ] + * }) + * ``` + * @param {?} factories + * @return {?} + */ + IterableDiffers.extend = function (factories) { + return { + provide: IterableDiffers, + useFactory: function (parent) { + if (!parent) { + // Typically would occur when calling IterableDiffers.extend inside of dependencies passed + // to + // bootstrap(), which would override default pipes instead of extending them. + throw new Error('Cannot extend IterableDiffers without a parent injector'); + } + return IterableDiffers.create(factories, parent); + }, + // Dependency technically isn't optional, but we can provide a better error message this way. + deps: [[IterableDiffers, new SkipSelf(), new Optional()]] + }; + }; + /** + * @param {?} iterable + * @return {?} + */ + IterableDiffers.prototype.find = function (iterable) { + var /** @type {?} */ factory = this.factories.find(function (f) { return f.supports(iterable); }); + if (factory != null) { + return factory; + } + else { + throw new Error("Cannot find a differ supporting object '" + iterable + "' of type '" + getTypeNameForDebugging(iterable) + "'"); + } + }; + return IterableDiffers; +}()); +/** + * @param {?} type + * @return {?} + */ +function getTypeNameForDebugging(type) { + return type['name'] || typeof type; +} +/** + * @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 + */ +/** + * A repository of different Map diffing strategies used by NgClass, NgStyle, and others. + * \@stable + */ +var KeyValueDiffers = (function () { + /** + * @param {?} factories + */ + function KeyValueDiffers(factories) { + this.factories = factories; + } + /** + * @template S + * @param {?} factories + * @param {?=} parent + * @return {?} + */ + KeyValueDiffers.create = function (factories, parent) { + if (parent) { + var /** @type {?} */ copied = parent.factories.slice(); + factories = factories.concat(copied); + } + return new KeyValueDiffers(factories); + }; + /** + * Takes an array of {\@link KeyValueDifferFactory} and returns a provider used to extend the + * inherited {\@link KeyValueDiffers} instance with the provided factories and return a new + * {\@link KeyValueDiffers} instance. + * + * The following example shows how to extend an existing list of factories, + * which will only be applied to the injector for this component and its children. + * This step is all that's required to make a new {\@link KeyValueDiffer} available. + * + * ### Example + * + * ``` + * \@Component({ + * viewProviders: [ + * KeyValueDiffers.extend([new ImmutableMapDiffer()]) + * ] + * }) + * ``` + * @template S + * @param {?} factories + * @return {?} + */ + KeyValueDiffers.extend = function (factories) { + return { + provide: KeyValueDiffers, + useFactory: function (parent) { + if (!parent) { + // Typically would occur when calling KeyValueDiffers.extend inside of dependencies passed + // to bootstrap(), which would override default pipes instead of extending them. + throw new Error('Cannot extend KeyValueDiffers without a parent injector'); + } + return KeyValueDiffers.create(factories, parent); + }, + // Dependency technically isn't optional, but we can provide a better error message this way. + deps: [[KeyValueDiffers, new SkipSelf(), new Optional()]] + }; + }; + /** + * @param {?} kv + * @return {?} + */ + KeyValueDiffers.prototype.find = function (kv) { + var /** @type {?} */ factory = this.factories.find(function (f) { return f.supports(kv); }); + if (factory) { + return factory; + } + throw new Error("Cannot find a differ supporting object '" + kv + "'"); + }; + return KeyValueDiffers; +}()); +/** + * @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 + */ +/** + * Structural diffing for `Object`s and `Map`s. + */ +var keyValDiff = [new DefaultKeyValueDifferFactory()]; +/** + * Structural diffing for `Iterable` types such as `Array`s. + */ +var iterableDiff = [new DefaultIterableDifferFactory()]; +var defaultIterableDiffers = new IterableDiffers(iterableDiff); +var defaultKeyValueDiffers = new KeyValueDiffers(keyValDiff); +/** + * @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 + * Change detection enables data binding in Angular. + */ +/** + * @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 + */ +/** + * @return {?} + */ +function _reflector() { + return reflector; +} +var _CORE_PLATFORM_PROVIDERS = [ + // Set a default platform name for platforms that don't set it explicitly. + { provide: PLATFORM_ID, useValue: 'unknown' }, + PlatformRef_, + { provide: PlatformRef, useExisting: PlatformRef_ }, + { provide: Reflector, useFactory: _reflector, deps: [] }, + TestabilityRegistry, + Console, +]; +/** + * This platform has to be included in any other platform + * + * \@experimental + */ +var platformCore = createPlatformFactory(null, 'core', _CORE_PLATFORM_PROVIDERS); +/** + * @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 i18n support is experimental. + */ +var LOCALE_ID = new InjectionToken('LocaleId'); +/** + * \@experimental i18n support is experimental. + */ +var TRANSLATIONS = new InjectionToken('Translations'); +/** + * \@experimental i18n support is experimental. + */ +var TRANSLATIONS_FORMAT = new InjectionToken('TranslationsFormat'); +var MissingTranslationStrategy = {}; +MissingTranslationStrategy.Error = 0; +MissingTranslationStrategy.Warning = 1; +MissingTranslationStrategy.Ignore = 2; +MissingTranslationStrategy[MissingTranslationStrategy.Error] = "Error"; +MissingTranslationStrategy[MissingTranslationStrategy.Warning] = "Warning"; +MissingTranslationStrategy[MissingTranslationStrategy.Ignore] = "Ignore"; +/** + * @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 + */ +/** + * @return {?} + */ +function _iterableDiffersFactory() { + return defaultIterableDiffers; +} +/** + * @return {?} + */ +function _keyValueDiffersFactory() { + return defaultKeyValueDiffers; +} +/** + * @param {?=} locale + * @return {?} + */ +function _localeFactory(locale) { + return locale || 'en-US'; +} +/** + * This module includes the providers of \@angular/core that are needed + * to bootstrap components via `ApplicationRef`. + * + * \@experimental + */ +var ApplicationModule = (function () { + /** + * @param {?} appRef + */ + function ApplicationModule(appRef) { + } + return ApplicationModule; +}()); +ApplicationModule.decorators = [ + { type: NgModule, args: [{ + providers: [ + ApplicationRef_, + { provide: ApplicationRef, useExisting: ApplicationRef_ }, + ApplicationInitStatus, + Compiler, + APP_ID_RANDOM_PROVIDER, + { provide: IterableDiffers, useFactory: _iterableDiffersFactory }, + { provide: KeyValueDiffers, useFactory: _keyValueDiffersFactory }, + { + provide: LOCALE_ID, + useFactory: _localeFactory, + deps: [[new Inject(LOCALE_ID), new Optional(), new SkipSelf()]] + }, + ] + },] }, +]; +/** + * @nocollapse + */ +ApplicationModule.ctorParameters = function () { return [ + { type: ApplicationRef, }, +]; }; +var SecurityContext = {}; +SecurityContext.NONE = 0; +SecurityContext.HTML = 1; +SecurityContext.STYLE = 2; +SecurityContext.SCRIPT = 3; +SecurityContext.URL = 4; +SecurityContext.RESOURCE_URL = 5; +SecurityContext[SecurityContext.NONE] = "NONE"; +SecurityContext[SecurityContext.HTML] = "HTML"; +SecurityContext[SecurityContext.STYLE] = "STYLE"; +SecurityContext[SecurityContext.SCRIPT] = "SCRIPT"; +SecurityContext[SecurityContext.URL] = "URL"; +SecurityContext[SecurityContext.RESOURCE_URL] = "RESOURCE_URL"; +/** + * Sanitizer is used by the views to sanitize potentially dangerous values. + * + * \@stable + * @abstract + */ +var Sanitizer = (function () { + function Sanitizer() { + } + /** + * @abstract + * @param {?} context + * @param {?} value + * @return {?} + */ + Sanitizer.prototype.sanitize = function (context, value) { }; + return Sanitizer; +}()); +/** + * @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 + */ +/** + * Node instance data. + * + * We have a separate type per NodeType to save memory + * (TextData | ElementData | ProviderData | PureExpressionData | QueryList) + * + * To keep our code monomorphic, + * we prohibit using `NodeData` directly but enforce the use of accessors (`asElementData`, ...). + * This way, no usage site can get a `NodeData` from view.nodes and then use it for different + * purposes. + */ +/** + * Accessor for view.nodes, enforcing that every usage site stays monomorphic. + * @param {?} view + * @param {?} index + * @return {?} + */ +function asTextData(view, index) { + return (view.nodes[index]); +} +/** + * Accessor for view.nodes, enforcing that every usage site stays monomorphic. + * @param {?} view + * @param {?} index + * @return {?} + */ +function asElementData(view, index) { + return (view.nodes[index]); +} +/** + * Accessor for view.nodes, enforcing that every usage site stays monomorphic. + * @param {?} view + * @param {?} index + * @return {?} + */ +function asProviderData(view, index) { + return (view.nodes[index]); +} +/** + * Accessor for view.nodes, enforcing that every usage site stays monomorphic. + * @param {?} view + * @param {?} index + * @return {?} + */ +function asPureExpressionData(view, index) { + return (view.nodes[index]); +} +/** + * Accessor for view.nodes, enforcing that every usage site stays monomorphic. + * @param {?} view + * @param {?} index + * @return {?} + */ +function asQueryList(view, index) { + return (view.nodes[index]); +} +/** + * @abstract + */ +var DebugContext = (function () { + function DebugContext() { + } + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.view = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.nodeIndex = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.injector = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.component = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.providerTokens = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.references = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.context = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.componentRenderElement = function () { }; + /** + * @abstract + * @return {?} + */ + DebugContext.prototype.renderNode = function () { }; + /** + * @abstract + * @param {?} console + * @param {...?} values + * @return {?} + */ + DebugContext.prototype.logError = function (console) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + }; + return DebugContext; +}()); +/** + * This object is used to prevent cycles in the source files and to have a place where + * debug mode can hook it. It is lazily filled when `isDevMode` is known. + */ +var Services = { + setCurrentNode: undefined, + createRootView: undefined, + createEmbeddedView: undefined, + createComponentView: undefined, + createNgModuleRef: undefined, + overrideProvider: undefined, + clearProviderOverrides: undefined, + checkAndUpdateView: undefined, + checkNoChangesView: undefined, + destroyView: undefined, + resolveDep: undefined, + createDebugContext: undefined, + handleEvent: undefined, + updateDirectives: undefined, + updateRenderer: undefined, + dirtyParentQueries: undefined, +}; +/** + * @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 + */ +/** + * @param {?} context + * @param {?} oldValue + * @param {?} currValue + * @param {?} isFirstCheck + * @return {?} + */ +function expressionChangedAfterItHasBeenCheckedError(context, oldValue, currValue, isFirstCheck) { + var /** @type {?} */ msg = "ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '" + oldValue + "'. Current value: '" + currValue + "'."; + if (isFirstCheck) { + msg += + " It seems like the view has been created after its parent and its children have been dirty checked." + + " Has it been created in a change detection hook ?"; + } + return viewDebugError(msg, context); +} +/** + * @param {?} err + * @param {?} context + * @return {?} + */ +function viewWrappedDebugError(err, context) { + if (!(err instanceof Error)) { + // errors that are not Error instances don't have a stack, + // so it is ok to wrap them into a new Error object... + err = new Error(err.toString()); + } + _addDebugContext(err, context); + return err; +} +/** + * @param {?} msg + * @param {?} context + * @return {?} + */ +function viewDebugError(msg, context) { + var /** @type {?} */ err = new Error(msg); + _addDebugContext(err, context); + return err; +} +/** + * @param {?} err + * @param {?} context + * @return {?} + */ +function _addDebugContext(err, context) { + ((err))[ERROR_DEBUG_CONTEXT] = context; + ((err))[ERROR_LOGGER] = context.logError.bind(context); +} +/** + * @param {?} err + * @return {?} + */ +function isViewDebugError(err) { + return !!getDebugContext(err); +} +/** + * @param {?} action + * @return {?} + */ +function viewDestroyedError(action) { + return new Error("ViewDestroyedError: Attempt to use a destroyed view: " + action); +} +/** + * @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 NOOP = function () { }; +var _tokenKeyCache = new Map(); +/** + * @param {?} token + * @return {?} + */ +function tokenKey(token) { + var /** @type {?} */ key = _tokenKeyCache.get(token); + if (!key) { + key = stringify(token) + '_' + _tokenKeyCache.size; + _tokenKeyCache.set(token, key); + } + return key; +} +/** + * @param {?} view + * @param {?} nodeIdx + * @param {?} bindingIdx + * @param {?} value + * @return {?} + */ +function unwrapValue(view, nodeIdx, bindingIdx, value) { + if (value instanceof WrappedValue) { + value = value.wrapped; + var /** @type {?} */ globalBindingIdx = view.def.nodes[nodeIdx].bindingIndex + bindingIdx; + var /** @type {?} */ oldValue = view.oldValues[globalBindingIdx]; + if (oldValue instanceof WrappedValue) { + oldValue = oldValue.wrapped; + } + view.oldValues[globalBindingIdx] = new WrappedValue(oldValue); + } + return value; +} +var UNDEFINED_RENDERER_TYPE_ID = '$$undefined'; +var EMPTY_RENDERER_TYPE_ID = '$$empty'; +/** + * @param {?} values + * @return {?} + */ +function createRendererType2(values) { + return { + id: UNDEFINED_RENDERER_TYPE_ID, + styles: values.styles, + encapsulation: values.encapsulation, + data: values.data + }; +} +var _renderCompCount = 0; +/** + * @param {?=} type + * @return {?} + */ +function resolveRendererType2(type) { + if (type && type.id === UNDEFINED_RENDERER_TYPE_ID) { + // first time we see this RendererType2. Initialize it... + var /** @type {?} */ isFilled = ((type.encapsulation != null && type.encapsulation !== ViewEncapsulation.None) || + type.styles.length || Object.keys(type.data).length); + if (isFilled) { + type.id = "c" + _renderCompCount++; + } + else { + type.id = EMPTY_RENDERER_TYPE_ID; + } + } + if (type && type.id === EMPTY_RENDERER_TYPE_ID) { + type = null; + } + return type || null; +} +/** + * @param {?} view + * @param {?} def + * @param {?} bindingIdx + * @param {?} value + * @return {?} + */ +function checkBinding(view, def, bindingIdx, value) { + var /** @type {?} */ oldValues = view.oldValues; + if ((view.state & 2 /* FirstCheck */) || + !looseIdentical(oldValues[def.bindingIndex + bindingIdx], value)) { + return true; + } + return false; +} +/** + * @param {?} view + * @param {?} def + * @param {?} bindingIdx + * @param {?} value + * @return {?} + */ +function checkAndUpdateBinding(view, def, bindingIdx, value) { + if (checkBinding(view, def, bindingIdx, value)) { + view.oldValues[def.bindingIndex + bindingIdx] = value; + return true; + } + return false; +} +/** + * @param {?} view + * @param {?} def + * @param {?} bindingIdx + * @param {?} value + * @return {?} + */ +function checkBindingNoChanges(view, def, bindingIdx, value) { + var /** @type {?} */ oldValue = view.oldValues[def.bindingIndex + bindingIdx]; + if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual(oldValue, value)) { + throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.index), oldValue, value, (view.state & 1 /* BeforeFirstCheck */) !== 0); + } +} +/** + * @param {?} view + * @return {?} + */ +function markParentViewsForCheck(view) { + var /** @type {?} */ currView = view; + while (currView) { + if (currView.def.flags & 2 /* OnPush */) { + currView.state |= 8 /* ChecksEnabled */; + } + currView = currView.viewContainerParent || currView.parent; + } +} +/** + * @param {?} view + * @param {?} endView + * @return {?} + */ +function markParentViewsForCheckProjectedViews(view, endView) { + var /** @type {?} */ currView = view; + while (currView && currView !== endView) { + currView.state |= 64 /* CheckProjectedViews */; + currView = currView.viewContainerParent || currView.parent; + } +} +/** + * @param {?} view + * @param {?} nodeIndex + * @param {?} eventName + * @param {?} event + * @return {?} + */ +function dispatchEvent(view, nodeIndex, eventName, event) { + var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex]; + var /** @type {?} */ startView = nodeDef.flags & 33554432 /* ComponentView */ ? asElementData(view, nodeIndex).componentView : view; + markParentViewsForCheck(startView); + return Services.handleEvent(view, nodeIndex, eventName, event); +} +/** + * @param {?} view + * @return {?} + */ +function declaredViewContainer(view) { + if (view.parent) { + var /** @type {?} */ parentView = view.parent; + return asElementData(parentView, /** @type {?} */ ((view.parentNodeDef)).index); + } + return null; +} +/** + * for component views, this is the host element. + * for embedded views, this is the index of the parent node + * that contains the view container. + * @param {?} view + * @return {?} + */ +function viewParentEl(view) { + var /** @type {?} */ parentView = view.parent; + if (parentView) { + return ((view.parentNodeDef)).parent; + } + else { + return null; + } +} +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function renderNode(view, def) { + switch (def.flags & 201347067 /* Types */) { + case 1 /* TypeElement */: + return asElementData(view, def.index).renderElement; + case 2 /* TypeText */: + return asTextData(view, def.index).renderText; + } +} +/** + * @param {?} target + * @param {?} name + * @return {?} + */ +function elementEventFullName(target, name) { + return target ? target + ":" + name : name; +} +/** + * @param {?} view + * @return {?} + */ +function isComponentView(view) { + return !!view.parent && !!(((view.parentNodeDef)).flags & 32768 /* Component */); +} +/** + * @param {?} view + * @return {?} + */ +function isEmbeddedView(view) { + return !!view.parent && !(((view.parentNodeDef)).flags & 32768 /* Component */); +} +/** + * @param {?} queryId + * @return {?} + */ +function filterQueryId(queryId) { + return 1 << (queryId % 32); +} +/** + * @param {?} matchedQueriesDsl + * @return {?} + */ +function splitMatchedQueriesDsl(matchedQueriesDsl) { + var /** @type {?} */ matchedQueries = {}; + var /** @type {?} */ matchedQueryIds = 0; + var /** @type {?} */ references = {}; + if (matchedQueriesDsl) { + matchedQueriesDsl.forEach(function (_a) { + var queryId = _a[0], valueType = _a[1]; + if (typeof queryId === 'number') { + matchedQueries[queryId] = valueType; + matchedQueryIds |= filterQueryId(queryId); + } + else { + references[queryId] = valueType; + } + }); + } + return { matchedQueries: matchedQueries, references: references, matchedQueryIds: matchedQueryIds }; +} +/** + * @param {?} deps + * @return {?} + */ +function splitDepsDsl(deps) { + return deps.map(function (value) { + var /** @type {?} */ token; + var /** @type {?} */ flags; + if (Array.isArray(value)) { + flags = value[0], token = value[1]; + } + else { + flags = 0 /* None */; + token = value; + } + return { flags: flags, token: token, tokenKey: tokenKey(token) }; + }); +} +/** + * @param {?} view + * @param {?} renderHost + * @param {?} def + * @return {?} + */ +function getParentRenderElement(view, renderHost, def) { + var /** @type {?} */ renderParent = def.renderParent; + if (renderParent) { + if ((renderParent.flags & 1 /* TypeElement */) === 0 || + (renderParent.flags & 33554432 /* ComponentView */) === 0 || + (((renderParent.element)).componentRendererType && ((((renderParent.element)).componentRendererType)).encapsulation === + ViewEncapsulation.Native)) { + // only children of non components, or children of components with native encapsulation should + // be attached. + return asElementData(view, /** @type {?} */ ((def.renderParent)).index).renderElement; + } + } + else { + return renderHost; + } +} +var DEFINITION_CACHE = new WeakMap(); +/** + * @template D + * @param {?} factory + * @return {?} + */ +function resolveDefinition(factory) { + var /** @type {?} */ value = (((DEFINITION_CACHE.get(factory)))); + if (!value) { + value = factory(function () { return NOOP; }); + value.factory = factory; + DEFINITION_CACHE.set(factory, value); + } + return value; +} +/** + * @param {?} view + * @return {?} + */ +function rootRenderNodes(view) { + var /** @type {?} */ renderNodes = []; + visitRootRenderNodes(view, 0 /* Collect */, undefined, undefined, renderNodes); + return renderNodes; +} +/** + * @param {?} view + * @param {?} action + * @param {?} parentNode + * @param {?} nextSibling + * @param {?=} target + * @return {?} + */ +function visitRootRenderNodes(view, action, parentNode, nextSibling, target) { + // We need to re-compute the parent node in case the nodes have been moved around manually + if (action === 3 /* RemoveChild */) { + parentNode = view.renderer.parentNode(renderNode(view, /** @type {?} */ ((view.def.lastRenderRootNode)))); + } + visitSiblingRenderNodes(view, action, 0, view.def.nodes.length - 1, parentNode, nextSibling, target); +} +/** + * @param {?} view + * @param {?} action + * @param {?} startIndex + * @param {?} endIndex + * @param {?} parentNode + * @param {?} nextSibling + * @param {?=} target + * @return {?} + */ +function visitSiblingRenderNodes(view, action, startIndex, endIndex, parentNode, nextSibling, target) { + for (var /** @type {?} */ i = startIndex; i <= endIndex; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if (nodeDef.flags & (1 /* TypeElement */ | 2 /* TypeText */ | 8 /* TypeNgContent */)) { + visitRenderNode(view, nodeDef, action, parentNode, nextSibling, target); + } + // jump to next sibling + i += nodeDef.childCount; + } +} +/** + * @param {?} view + * @param {?} ngContentIndex + * @param {?} action + * @param {?} parentNode + * @param {?} nextSibling + * @param {?=} target + * @return {?} + */ +function visitProjectedRenderNodes(view, ngContentIndex, action, parentNode, nextSibling, target) { + var /** @type {?} */ compView = view; + while (compView && !isComponentView(compView)) { + compView = compView.parent; + } + var /** @type {?} */ hostView = ((compView)).parent; + var /** @type {?} */ hostElDef = viewParentEl(/** @type {?} */ ((compView))); + var /** @type {?} */ startIndex = ((hostElDef)).index + 1; + var /** @type {?} */ endIndex = ((hostElDef)).index + ((hostElDef)).childCount; + for (var /** @type {?} */ i = startIndex; i <= endIndex; i++) { + var /** @type {?} */ nodeDef = ((hostView)).def.nodes[i]; + if (nodeDef.ngContentIndex === ngContentIndex) { + visitRenderNode(/** @type {?} */ ((hostView)), nodeDef, action, parentNode, nextSibling, target); + } + // jump to next sibling + i += nodeDef.childCount; + } + if (!((hostView)).parent) { + // a root view + var /** @type {?} */ projectedNodes = view.root.projectableNodes[ngContentIndex]; + if (projectedNodes) { + for (var /** @type {?} */ i = 0; i < projectedNodes.length; i++) { + execRenderNodeAction(view, projectedNodes[i], action, parentNode, nextSibling, target); + } + } + } +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} action + * @param {?} parentNode + * @param {?} nextSibling + * @param {?=} target + * @return {?} + */ +function visitRenderNode(view, nodeDef, action, parentNode, nextSibling, target) { + if (nodeDef.flags & 8 /* TypeNgContent */) { + visitProjectedRenderNodes(view, /** @type {?} */ ((nodeDef.ngContent)).index, action, parentNode, nextSibling, target); + } + else { + var /** @type {?} */ rn = renderNode(view, nodeDef); + if (action === 3 /* RemoveChild */ && (nodeDef.flags & 33554432 /* ComponentView */) && + (nodeDef.bindingFlags & 48 /* CatSyntheticProperty */)) { + // Note: we might need to do both actions. + if (nodeDef.bindingFlags & (16 /* SyntheticProperty */)) { + execRenderNodeAction(view, rn, action, parentNode, nextSibling, target); + } + if (nodeDef.bindingFlags & (32 /* SyntheticHostProperty */)) { + var /** @type {?} */ compView = asElementData(view, nodeDef.index).componentView; + execRenderNodeAction(compView, rn, action, parentNode, nextSibling, target); + } + } + else { + execRenderNodeAction(view, rn, action, parentNode, nextSibling, target); + } + if (nodeDef.flags & 16777216 /* EmbeddedViews */) { + var /** @type {?} */ embeddedViews = ((asElementData(view, nodeDef.index).viewContainer))._embeddedViews; + for (var /** @type {?} */ k = 0; k < embeddedViews.length; k++) { + visitRootRenderNodes(embeddedViews[k], action, parentNode, nextSibling, target); + } + } + if (nodeDef.flags & 1 /* TypeElement */ && !((nodeDef.element)).name) { + visitSiblingRenderNodes(view, action, nodeDef.index + 1, nodeDef.index + nodeDef.childCount, parentNode, nextSibling, target); + } + } +} +/** + * @param {?} view + * @param {?} renderNode + * @param {?} action + * @param {?} parentNode + * @param {?} nextSibling + * @param {?=} target + * @return {?} + */ +function execRenderNodeAction(view, renderNode, action, parentNode, nextSibling, target) { + var /** @type {?} */ renderer = view.renderer; + switch (action) { + case 1 /* AppendChild */: + renderer.appendChild(parentNode, renderNode); + break; + case 2 /* InsertBefore */: + renderer.insertBefore(parentNode, renderNode, nextSibling); + break; + case 3 /* RemoveChild */: + renderer.removeChild(parentNode, renderNode); + break; + case 0 /* Collect */: + ((target)).push(renderNode); + break; + } +} +var NS_PREFIX_RE = /^:([^:]+):(.+)$/; +/** + * @param {?} name + * @return {?} + */ +function splitNamespace(name) { + if (name[0] === ':') { + var /** @type {?} */ match = ((name.match(NS_PREFIX_RE))); + return [match[1], match[2]]; + } + return ['', name]; +} +/** + * @param {?} bindings + * @return {?} + */ +function calcBindingFlags(bindings) { + var /** @type {?} */ flags = 0; + for (var /** @type {?} */ i = 0; i < bindings.length; i++) { + flags |= bindings[i].flags; + } + return flags; +} +/** + * @param {?} valueCount + * @param {?} constAndInterp + * @return {?} + */ +function interpolate(valueCount, constAndInterp) { + var /** @type {?} */ result = ''; + for (var /** @type {?} */ i = 0; i < valueCount * 2; i = i + 2) { + result = result + constAndInterp[i] + _toStringWithNull(constAndInterp[i + 1]); + } + return result + constAndInterp[valueCount * 2]; +} +/** + * @param {?} valueCount + * @param {?} c0 + * @param {?} a1 + * @param {?} c1 + * @param {?=} a2 + * @param {?=} c2 + * @param {?=} a3 + * @param {?=} c3 + * @param {?=} a4 + * @param {?=} c4 + * @param {?=} a5 + * @param {?=} c5 + * @param {?=} a6 + * @param {?=} c6 + * @param {?=} a7 + * @param {?=} c7 + * @param {?=} a8 + * @param {?=} c8 + * @param {?=} a9 + * @param {?=} c9 + * @return {?} + */ +function inlineInterpolate(valueCount, c0, a1, c1, a2, c2, a3, c3, a4, c4, a5, c5, a6, c6, a7, c7, a8, c8, a9, c9) { + switch (valueCount) { + case 1: + return c0 + _toStringWithNull(a1) + c1; + case 2: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2; + case 3: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3; + case 4: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3 + _toStringWithNull(a4) + c4; + case 5: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5; + case 6: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) + c6; + case 7: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) + + c6 + _toStringWithNull(a7) + c7; + case 8: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) + + c6 + _toStringWithNull(a7) + c7 + _toStringWithNull(a8) + c8; + case 9: + return c0 + _toStringWithNull(a1) + c1 + _toStringWithNull(a2) + c2 + _toStringWithNull(a3) + + c3 + _toStringWithNull(a4) + c4 + _toStringWithNull(a5) + c5 + _toStringWithNull(a6) + + c6 + _toStringWithNull(a7) + c7 + _toStringWithNull(a8) + c8 + _toStringWithNull(a9) + c9; + default: + throw new Error("Does not support more than 9 expressions"); + } +} +/** + * @param {?} v + * @return {?} + */ +function _toStringWithNull(v) { + return v != null ? v.toString() : ''; +} +var EMPTY_ARRAY = []; +var EMPTY_MAP = {}; +/** + * @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 + */ +/** + * @param {?} flags + * @param {?} matchedQueriesDsl + * @param {?} ngContentIndex + * @param {?} childCount + * @param {?=} handleEvent + * @param {?=} templateFactory + * @return {?} + */ +function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleEvent, templateFactory) { + flags |= 1 /* TypeElement */; + var _a = splitMatchedQueriesDsl(matchedQueriesDsl), matchedQueries = _a.matchedQueries, references = _a.references, matchedQueryIds = _a.matchedQueryIds; + var /** @type {?} */ template = templateFactory ? resolveDefinition(templateFactory) : null; + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: flags, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, matchedQueries: matchedQueries, matchedQueryIds: matchedQueryIds, references: references, ngContentIndex: ngContentIndex, childCount: childCount, + bindings: [], + bindingFlags: 0, + outputs: [], + element: { + ns: null, + name: null, + attrs: null, template: template, + componentProvider: null, + componentView: null, + componentRendererType: null, + publicProviders: null, + allProviders: null, + handleEvent: handleEvent || NOOP + }, + provider: null, + text: null, + query: null, + ngContent: null + }; +} +/** + * @param {?} flags + * @param {?} matchedQueriesDsl + * @param {?} ngContentIndex + * @param {?} childCount + * @param {?} namespaceAndName + * @param {?=} fixedAttrs + * @param {?=} bindings + * @param {?=} outputs + * @param {?=} handleEvent + * @param {?=} componentView + * @param {?=} componentRendererType + * @return {?} + */ +function elementDef(flags, matchedQueriesDsl, ngContentIndex, childCount, namespaceAndName, fixedAttrs, bindings, outputs, handleEvent, componentView, componentRendererType) { + if (fixedAttrs === void 0) { fixedAttrs = []; } + if (!handleEvent) { + handleEvent = NOOP; + } + var _a = splitMatchedQueriesDsl(matchedQueriesDsl), matchedQueries = _a.matchedQueries, references = _a.references, matchedQueryIds = _a.matchedQueryIds; + var /** @type {?} */ ns = ((null)); + var /** @type {?} */ name = ((null)); + if (namespaceAndName) { + _b = splitNamespace(namespaceAndName), ns = _b[0], name = _b[1]; + } + bindings = bindings || []; + var /** @type {?} */ bindingDefs = new Array(bindings.length); + for (var /** @type {?} */ i = 0; i < bindings.length; i++) { + var _c = bindings[i], bindingFlags = _c[0], namespaceAndName_1 = _c[1], suffixOrSecurityContext = _c[2]; + var _d = splitNamespace(namespaceAndName_1), ns_1 = _d[0], name_1 = _d[1]; + var /** @type {?} */ securityContext = ((undefined)); + var /** @type {?} */ suffix = ((undefined)); + switch (bindingFlags & 15 /* Types */) { + case 4 /* TypeElementStyle */: + suffix = (suffixOrSecurityContext); + break; + case 1 /* TypeElementAttribute */: + case 8 /* TypeProperty */: + securityContext = (suffixOrSecurityContext); + break; + } + bindingDefs[i] = + { flags: bindingFlags, ns: ns_1, name: name_1, nonMinifiedName: name_1, securityContext: securityContext, suffix: suffix }; + } + outputs = outputs || []; + var /** @type {?} */ outputDefs = new Array(outputs.length); + for (var /** @type {?} */ i = 0; i < outputs.length; i++) { + var _e = outputs[i], target = _e[0], eventName = _e[1]; + outputDefs[i] = { + type: 0 /* ElementOutput */, + target: /** @type {?} */ (target), eventName: eventName, + propName: null + }; + } + fixedAttrs = fixedAttrs || []; + var /** @type {?} */ attrs = (fixedAttrs.map(function (_a) { + var namespaceAndName = _a[0], value = _a[1]; + var _b = splitNamespace(namespaceAndName), ns = _b[0], name = _b[1]; + return [ns, name, value]; + })); + componentRendererType = resolveRendererType2(componentRendererType); + if (componentView) { + flags |= 33554432 /* ComponentView */; + } + flags |= 1 /* TypeElement */; + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: flags, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, matchedQueries: matchedQueries, matchedQueryIds: matchedQueryIds, references: references, ngContentIndex: ngContentIndex, childCount: childCount, + bindings: bindingDefs, + bindingFlags: calcBindingFlags(bindingDefs), + outputs: outputDefs, + element: { + ns: ns, + name: name, + attrs: attrs, + template: null, + // will bet set by the view definition + componentProvider: null, + componentView: componentView || null, + componentRendererType: componentRendererType, + publicProviders: null, + allProviders: null, + handleEvent: handleEvent || NOOP, + }, + provider: null, + text: null, + query: null, + ngContent: null + }; + var _b; +} +/** + * @param {?} view + * @param {?} renderHost + * @param {?} def + * @return {?} + */ +function createElement(view, renderHost, def) { + var /** @type {?} */ elDef = ((def.element)); + var /** @type {?} */ rootSelectorOrNode = view.root.selectorOrNode; + var /** @type {?} */ renderer = view.renderer; + var /** @type {?} */ el; + if (view.parent || !rootSelectorOrNode) { + if (elDef.name) { + el = renderer.createElement(elDef.name, elDef.ns); + } + else { + el = renderer.createComment(''); + } + var /** @type {?} */ parentEl = getParentRenderElement(view, renderHost, def); + if (parentEl) { + renderer.appendChild(parentEl, el); + } + } + else { + el = renderer.selectRootElement(rootSelectorOrNode); + } + if (elDef.attrs) { + for (var /** @type {?} */ i = 0; i < elDef.attrs.length; i++) { + var _a = elDef.attrs[i], ns = _a[0], name = _a[1], value = _a[2]; + renderer.setAttribute(el, name, value, ns); + } + } + return el; +} +/** + * @param {?} view + * @param {?} compView + * @param {?} def + * @param {?} el + * @return {?} + */ +function listenToElementOutputs(view, compView, def, el) { + for (var /** @type {?} */ i = 0; i < def.outputs.length; i++) { + var /** @type {?} */ output = def.outputs[i]; + var /** @type {?} */ handleEventClosure = renderEventHandlerClosure(view, def.index, elementEventFullName(output.target, output.eventName)); + var /** @type {?} */ listenTarget = output.target; + var /** @type {?} */ listenerView = view; + if (output.target === 'component') { + listenTarget = null; + listenerView = compView; + } + var /** @type {?} */ disposable = (listenerView.renderer.listen(listenTarget || el, output.eventName, handleEventClosure)); /** @type {?} */ + ((view.disposables))[def.outputIndex + i] = disposable; + } +} +/** + * @param {?} view + * @param {?} index + * @param {?} eventName + * @return {?} + */ +function renderEventHandlerClosure(view, index, eventName) { + return function (event) { + try { + return dispatchEvent(view, index, eventName, event); + } + catch (e) { + // Attention: Don't rethrow, to keep in sync with directive events. + view.root.errorHandler.handleError(e); + } + }; +} +/** + * @param {?} view + * @param {?} def + * @param {?} v0 + * @param {?} v1 + * @param {?} v2 + * @param {?} v3 + * @param {?} v4 + * @param {?} v5 + * @param {?} v6 + * @param {?} v7 + * @param {?} v8 + * @param {?} v9 + * @return {?} + */ +function checkAndUpdateElementInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ bindLen = def.bindings.length; + var /** @type {?} */ changed = false; + if (bindLen > 0 && checkAndUpdateElementValue(view, def, 0, v0)) + changed = true; + if (bindLen > 1 && checkAndUpdateElementValue(view, def, 1, v1)) + changed = true; + if (bindLen > 2 && checkAndUpdateElementValue(view, def, 2, v2)) + changed = true; + if (bindLen > 3 && checkAndUpdateElementValue(view, def, 3, v3)) + changed = true; + if (bindLen > 4 && checkAndUpdateElementValue(view, def, 4, v4)) + changed = true; + if (bindLen > 5 && checkAndUpdateElementValue(view, def, 5, v5)) + changed = true; + if (bindLen > 6 && checkAndUpdateElementValue(view, def, 6, v6)) + changed = true; + if (bindLen > 7 && checkAndUpdateElementValue(view, def, 7, v7)) + changed = true; + if (bindLen > 8 && checkAndUpdateElementValue(view, def, 8, v8)) + changed = true; + if (bindLen > 9 && checkAndUpdateElementValue(view, def, 9, v9)) + changed = true; + return changed; +} +/** + * @param {?} view + * @param {?} def + * @param {?} values + * @return {?} + */ +function checkAndUpdateElementDynamic(view, def, values) { + var /** @type {?} */ changed = false; + for (var /** @type {?} */ i = 0; i < values.length; i++) { + if (checkAndUpdateElementValue(view, def, i, values[i])) + changed = true; + } + return changed; +} +/** + * @param {?} view + * @param {?} def + * @param {?} bindingIdx + * @param {?} value + * @return {?} + */ +function checkAndUpdateElementValue(view, def, bindingIdx, value) { + if (!checkAndUpdateBinding(view, def, bindingIdx, value)) { + return false; + } + var /** @type {?} */ binding = def.bindings[bindingIdx]; + var /** @type {?} */ elData = asElementData(view, def.index); + var /** @type {?} */ renderNode$$1 = elData.renderElement; + var /** @type {?} */ name = ((binding.name)); + switch (binding.flags & 15 /* Types */) { + case 1 /* TypeElementAttribute */: + setElementAttribute(view, binding, renderNode$$1, binding.ns, name, value); + break; + case 2 /* TypeElementClass */: + setElementClass(view, renderNode$$1, name, value); + break; + case 4 /* TypeElementStyle */: + setElementStyle(view, binding, renderNode$$1, name, value); + break; + case 8 /* TypeProperty */: + var /** @type {?} */ bindView = (def.flags & 33554432 /* ComponentView */ && + binding.flags & 32 /* SyntheticHostProperty */) ? + elData.componentView : + view; + setElementProperty(bindView, binding, renderNode$$1, name, value); + break; + } + return true; +} +/** + * @param {?} view + * @param {?} binding + * @param {?} renderNode + * @param {?} ns + * @param {?} name + * @param {?} value + * @return {?} + */ +function setElementAttribute(view, binding, renderNode$$1, ns, name, value) { + var /** @type {?} */ securityContext = binding.securityContext; + var /** @type {?} */ renderValue = securityContext ? view.root.sanitizer.sanitize(securityContext, value) : value; + renderValue = renderValue != null ? renderValue.toString() : null; + var /** @type {?} */ renderer = view.renderer; + if (value != null) { + renderer.setAttribute(renderNode$$1, name, renderValue, ns); + } + else { + renderer.removeAttribute(renderNode$$1, name, ns); + } +} +/** + * @param {?} view + * @param {?} renderNode + * @param {?} name + * @param {?} value + * @return {?} + */ +function setElementClass(view, renderNode$$1, name, value) { + var /** @type {?} */ renderer = view.renderer; + if (value) { + renderer.addClass(renderNode$$1, name); + } + else { + renderer.removeClass(renderNode$$1, name); + } +} +/** + * @param {?} view + * @param {?} binding + * @param {?} renderNode + * @param {?} name + * @param {?} value + * @return {?} + */ +function setElementStyle(view, binding, renderNode$$1, name, value) { + var /** @type {?} */ renderValue = view.root.sanitizer.sanitize(SecurityContext.STYLE, /** @type {?} */ (value)); + if (renderValue != null) { + renderValue = renderValue.toString(); + var /** @type {?} */ unit = binding.suffix; + if (unit != null) { + renderValue = renderValue + unit; + } + } + else { + renderValue = null; + } + var /** @type {?} */ renderer = view.renderer; + if (renderValue != null) { + renderer.setStyle(renderNode$$1, name, renderValue); + } + else { + renderer.removeStyle(renderNode$$1, name); + } +} +/** + * @param {?} view + * @param {?} binding + * @param {?} renderNode + * @param {?} name + * @param {?} value + * @return {?} + */ +function setElementProperty(view, binding, renderNode$$1, name, value) { + var /** @type {?} */ securityContext = binding.securityContext; + var /** @type {?} */ renderValue = securityContext ? view.root.sanitizer.sanitize(securityContext, value) : value; + view.renderer.setProperty(renderNode$$1, name, renderValue); +} +/** + * @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 NOT_CREATED$1 = new Object(); +var InjectorRefTokenKey$1 = tokenKey(Injector); +var NgModuleRefTokenKey = tokenKey(NgModuleRef); +/** + * @param {?} flags + * @param {?} token + * @param {?} value + * @param {?} deps + * @return {?} + */ +function moduleProvideDef(flags, token, value, deps) { + var /** @type {?} */ depDefs = splitDepsDsl(deps); + return { + // will bet set by the module definition + index: -1, + deps: depDefs, flags: flags, token: token, value: value + }; +} +/** + * @param {?} providers + * @return {?} + */ +function moduleDef(providers) { + var /** @type {?} */ providersByKey = {}; + for (var /** @type {?} */ i = 0; i < providers.length; i++) { + var /** @type {?} */ provider = providers[i]; + provider.index = i; + providersByKey[tokenKey(provider.token)] = provider; + } + return { + // Will be filled later... + factory: null, + providersByKey: providersByKey, + providers: providers + }; +} +/** + * @param {?} data + * @return {?} + */ +function initNgModule(data) { + var /** @type {?} */ def = data._def; + var /** @type {?} */ providers = data._providers = new Array(def.providers.length); + for (var /** @type {?} */ i = 0; i < def.providers.length; i++) { + var /** @type {?} */ provDef = def.providers[i]; + providers[i] = provDef.flags & 4096 /* LazyProvider */ ? NOT_CREATED$1 : + _createProviderInstance$1(data, provDef); + } +} +/** + * @param {?} data + * @param {?} depDef + * @param {?=} notFoundValue + * @return {?} + */ +function resolveNgModuleDep(data, depDef, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = Injector.THROW_IF_NOT_FOUND; } + if (depDef.flags & 8 /* Value */) { + return depDef.token; + } + if (depDef.flags & 2 /* Optional */) { + notFoundValue = null; + } + if (depDef.flags & 1 /* SkipSelf */) { + return data._parent.get(depDef.token, notFoundValue); + } + var /** @type {?} */ tokenKey$$1 = depDef.tokenKey; + switch (tokenKey$$1) { + case InjectorRefTokenKey$1: + case NgModuleRefTokenKey: + return data; + } + var /** @type {?} */ providerDef = data._def.providersByKey[tokenKey$$1]; + if (providerDef) { + var /** @type {?} */ providerInstance = data._providers[providerDef.index]; + if (providerInstance === NOT_CREATED$1) { + providerInstance = data._providers[providerDef.index] = + _createProviderInstance$1(data, providerDef); + } + return providerInstance; + } + return data._parent.get(depDef.token, notFoundValue); +} +/** + * @param {?} ngModule + * @param {?} providerDef + * @return {?} + */ +function _createProviderInstance$1(ngModule, providerDef) { + var /** @type {?} */ injectable; + switch (providerDef.flags & 201347067 /* Types */) { + case 512 /* TypeClassProvider */: + injectable = _createClass(ngModule, providerDef.value, providerDef.deps); + break; + case 1024 /* TypeFactoryProvider */: + injectable = _callFactory(ngModule, providerDef.value, providerDef.deps); + break; + case 2048 /* TypeUseExistingProvider */: + injectable = resolveNgModuleDep(ngModule, providerDef.deps[0]); + break; + case 256 /* TypeValueProvider */: + injectable = providerDef.value; + break; + } + return injectable; +} +/** + * @param {?} ngModule + * @param {?} ctor + * @param {?} deps + * @return {?} + */ +function _createClass(ngModule, ctor, deps) { + var /** @type {?} */ len = deps.length; + var /** @type {?} */ injectable; + switch (len) { + case 0: + injectable = new ctor(); + break; + case 1: + injectable = new ctor(resolveNgModuleDep(ngModule, deps[0])); + break; + case 2: + injectable = + new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1])); + break; + case 3: + injectable = new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2])); + break; + default: + var /** @type {?} */ depValues = new Array(len); + for (var /** @type {?} */ i = 0; i < len; i++) { + depValues[i] = resolveNgModuleDep(ngModule, deps[i]); + } + injectable = new (ctor.bind.apply(ctor, [void 0].concat(depValues)))(); + } + return injectable; +} +/** + * @param {?} ngModule + * @param {?} factory + * @param {?} deps + * @return {?} + */ +function _callFactory(ngModule, factory, deps) { + var /** @type {?} */ len = deps.length; + var /** @type {?} */ injectable; + switch (len) { + case 0: + injectable = factory(); + break; + case 1: + injectable = factory(resolveNgModuleDep(ngModule, deps[0])); + break; + case 2: + injectable = + factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1])); + break; + case 3: + injectable = factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2])); + break; + default: + var /** @type {?} */ depValues = Array(len); + for (var /** @type {?} */ i = 0; i < len; i++) { + depValues[i] = resolveNgModuleDep(ngModule, deps[i]); + } + injectable = factory.apply(void 0, depValues); + } + return injectable; +} +/** + * @param {?} ngModule + * @param {?} lifecycles + * @return {?} + */ +function callNgModuleLifecycle(ngModule, lifecycles) { + var /** @type {?} */ def = ngModule._def; + for (var /** @type {?} */ i = 0; i < def.providers.length; i++) { + var /** @type {?} */ provDef = def.providers[i]; + if (provDef.flags & 131072 /* OnDestroy */) { + var /** @type {?} */ instance = ngModule._providers[i]; + if (instance && instance !== NOT_CREATED$1) { + instance.ngOnDestroy(); + } + } + } +} +/** + * @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 + */ +/** + * @param {?} parentView + * @param {?} elementData + * @param {?} viewIndex + * @param {?} view + * @return {?} + */ +function attachEmbeddedView(parentView, elementData, viewIndex, view) { + var /** @type {?} */ embeddedViews = ((elementData.viewContainer))._embeddedViews; + if (viewIndex === null || viewIndex === undefined) { + viewIndex = embeddedViews.length; + } + view.viewContainerParent = parentView; + addToArray(embeddedViews, /** @type {?} */ ((viewIndex)), view); + attachProjectedView(elementData, view); + Services.dirtyParentQueries(view); + var /** @type {?} */ prevView = ((viewIndex)) > 0 ? embeddedViews[((viewIndex)) - 1] : null; + renderAttachEmbeddedView(elementData, prevView, view); +} +/** + * @param {?} vcElementData + * @param {?} view + * @return {?} + */ +function attachProjectedView(vcElementData, view) { + var /** @type {?} */ dvcElementData = declaredViewContainer(view); + if (!dvcElementData || dvcElementData === vcElementData || + view.state & 16 /* IsProjectedView */) { + return; + } + // Note: For performance reasons, we + // - add a view to template._projectedViews only 1x throughout its lifetime, + // and remove it not until the view is destroyed. + // (hard, as when a parent view is attached/detached we would need to attach/detach all + // nested projected views as well, even accross component boundaries). + // - don't track the insertion order of views in the projected views array + // (hard, as when the views of the same template are inserted different view containers) + view.state |= 16 /* IsProjectedView */; + var /** @type {?} */ projectedViews = dvcElementData.template._projectedViews; + if (!projectedViews) { + projectedViews = dvcElementData.template._projectedViews = []; + } + projectedViews.push(view); + // Note: we are changing the NodeDef here as we cannot calculate + // the fact whether a template is used for projection during compilation. + markNodeAsProjectedTemplate(/** @type {?} */ ((view.parent)).def, /** @type {?} */ ((view.parentNodeDef))); +} +/** + * @param {?} viewDef + * @param {?} nodeDef + * @return {?} + */ +function markNodeAsProjectedTemplate(viewDef, nodeDef) { + if (nodeDef.flags & 4 /* ProjectedTemplate */) { + return; + } + viewDef.nodeFlags |= 4 /* ProjectedTemplate */; + nodeDef.flags |= 4 /* ProjectedTemplate */; + var /** @type {?} */ parentNodeDef = nodeDef.parent; + while (parentNodeDef) { + parentNodeDef.childFlags |= 4 /* ProjectedTemplate */; + parentNodeDef = parentNodeDef.parent; + } +} +/** + * @param {?} elementData + * @param {?=} viewIndex + * @return {?} + */ +function detachEmbeddedView(elementData, viewIndex) { + var /** @type {?} */ embeddedViews = ((elementData.viewContainer))._embeddedViews; + if (viewIndex == null || viewIndex >= embeddedViews.length) { + viewIndex = embeddedViews.length - 1; + } + if (viewIndex < 0) { + return null; + } + var /** @type {?} */ view = embeddedViews[viewIndex]; + view.viewContainerParent = null; + removeFromArray(embeddedViews, viewIndex); + // See attachProjectedView for why we don't update projectedViews here. + Services.dirtyParentQueries(view); + renderDetachView(view); + return view; +} +/** + * @param {?} view + * @return {?} + */ +function detachProjectedView(view) { + if (!(view.state & 16 /* IsProjectedView */)) { + return; + } + var /** @type {?} */ dvcElementData = declaredViewContainer(view); + if (dvcElementData) { + var /** @type {?} */ projectedViews = dvcElementData.template._projectedViews; + if (projectedViews) { + removeFromArray(projectedViews, projectedViews.indexOf(view)); + Services.dirtyParentQueries(view); + } + } +} +/** + * @param {?} elementData + * @param {?} oldViewIndex + * @param {?} newViewIndex + * @return {?} + */ +function moveEmbeddedView(elementData, oldViewIndex, newViewIndex) { + var /** @type {?} */ embeddedViews = ((elementData.viewContainer))._embeddedViews; + var /** @type {?} */ view = embeddedViews[oldViewIndex]; + removeFromArray(embeddedViews, oldViewIndex); + if (newViewIndex == null) { + newViewIndex = embeddedViews.length; + } + addToArray(embeddedViews, newViewIndex, view); + // Note: Don't need to change projectedViews as the order in there + // as always invalid... + Services.dirtyParentQueries(view); + renderDetachView(view); + var /** @type {?} */ prevView = newViewIndex > 0 ? embeddedViews[newViewIndex - 1] : null; + renderAttachEmbeddedView(elementData, prevView, view); + return view; +} +/** + * @param {?} elementData + * @param {?} prevView + * @param {?} view + * @return {?} + */ +function renderAttachEmbeddedView(elementData, prevView, view) { + var /** @type {?} */ prevRenderNode = prevView ? renderNode(prevView, /** @type {?} */ ((prevView.def.lastRenderRootNode))) : + elementData.renderElement; + var /** @type {?} */ parentNode = view.renderer.parentNode(prevRenderNode); + var /** @type {?} */ nextSibling = view.renderer.nextSibling(prevRenderNode); + // Note: We can't check if `nextSibling` is present, as on WebWorkers it will always be! + // However, browsers automatically do `appendChild` when there is no `nextSibling`. + visitRootRenderNodes(view, 2 /* InsertBefore */, parentNode, nextSibling, undefined); +} +/** + * @param {?} view + * @return {?} + */ +function renderDetachView(view) { + visitRootRenderNodes(view, 3 /* RemoveChild */, null, null, undefined); +} +/** + * @param {?} arr + * @param {?} index + * @param {?} value + * @return {?} + */ +function addToArray(arr, index, value) { + // perf: array.push is faster than array.splice! + if (index >= arr.length) { + arr.push(value); + } + else { + arr.splice(index, 0, value); + } +} +/** + * @param {?} arr + * @param {?} index + * @return {?} + */ +function removeFromArray(arr, index) { + // perf: array.pop is faster than array.splice! + if (index >= arr.length - 1) { + arr.pop(); + } + else { + arr.splice(index, 1); + } +} +/** + * @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 EMPTY_CONTEXT = new Object(); +/** + * @param {?} selector + * @param {?} componentType + * @param {?} viewDefFactory + * @param {?} inputs + * @param {?} outputs + * @param {?} ngContentSelectors + * @return {?} + */ +function createComponentFactory(selector, componentType, viewDefFactory, inputs, outputs, ngContentSelectors) { + return new ComponentFactory_(selector, componentType, viewDefFactory, inputs, outputs, ngContentSelectors); +} +/** + * @param {?} componentFactory + * @return {?} + */ +function getComponentViewDefinitionFactory(componentFactory) { + return ((componentFactory)).viewDefFactory; +} +var ComponentFactory_ = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](ComponentFactory_, _super); + /** + * @param {?} selector + * @param {?} componentType + * @param {?} viewDefFactory + * @param {?} _inputs + * @param {?} _outputs + * @param {?} ngContentSelectors + */ + function ComponentFactory_(selector, componentType, viewDefFactory, _inputs, _outputs, ngContentSelectors) { + var _this = + // Attention: this ctor is called as top level function. + // Putting any logic in here will destroy closure tree shaking! + _super.call(this) || this; + _this.selector = selector; + _this.componentType = componentType; + _this._inputs = _inputs; + _this._outputs = _outputs; + _this.ngContentSelectors = ngContentSelectors; + _this.viewDefFactory = viewDefFactory; + return _this; + } + Object.defineProperty(ComponentFactory_.prototype, "inputs", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ inputsArr = []; + var /** @type {?} */ inputs = ((this._inputs)); + for (var /** @type {?} */ propName in inputs) { + var /** @type {?} */ templateName = inputs[propName]; + inputsArr.push({ propName: propName, templateName: templateName }); + } + return inputsArr; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentFactory_.prototype, "outputs", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ outputsArr = []; + for (var /** @type {?} */ propName in this._outputs) { + var /** @type {?} */ templateName = this._outputs[propName]; + outputsArr.push({ propName: propName, templateName: templateName }); + } + return outputsArr; + }, + enumerable: true, + configurable: true + }); + /** + * Creates a new component. + * @param {?} injector + * @param {?=} projectableNodes + * @param {?=} rootSelectorOrNode + * @param {?=} ngModule + * @return {?} + */ + ComponentFactory_.prototype.create = function (injector, projectableNodes, rootSelectorOrNode, ngModule) { + if (!ngModule) { + throw new Error('ngModule should be provided'); + } + var /** @type {?} */ viewDef = resolveDefinition(this.viewDefFactory); + var /** @type {?} */ componentNodeIndex = ((((viewDef.nodes[0].element)).componentProvider)).index; + var /** @type {?} */ view = Services.createRootView(injector, projectableNodes || [], rootSelectorOrNode, viewDef, ngModule, EMPTY_CONTEXT); + var /** @type {?} */ component = asProviderData(view, componentNodeIndex).instance; + if (rootSelectorOrNode) { + view.renderer.setAttribute(asElementData(view, 0).renderElement, 'ng-version', VERSION.full); + } + return new ComponentRef_(view, new ViewRef_(view), component); + }; + return ComponentFactory_; +}(ComponentFactory)); +var ComponentRef_ = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](ComponentRef_, _super); + /** + * @param {?} _view + * @param {?} _viewRef + * @param {?} _component + */ + function ComponentRef_(_view, _viewRef, _component) { + var _this = _super.call(this) || this; + _this._view = _view; + _this._viewRef = _viewRef; + _this._component = _component; + _this._elDef = _this._view.def.nodes[0]; + return _this; + } + Object.defineProperty(ComponentRef_.prototype, "location", { + /** + * @return {?} + */ + get: function () { + return new ElementRef(asElementData(this._view, this._elDef.index).renderElement); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentRef_.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return new Injector_(this._view, this._elDef); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ComponentRef_.prototype, "instance", { + /** + * @return {?} + */ + get: function () { return this._component; }, + enumerable: true, + configurable: true + }); + ; + Object.defineProperty(ComponentRef_.prototype, "hostView", { + /** + * @return {?} + */ + get: function () { return this._viewRef; }, + enumerable: true, + configurable: true + }); + ; + Object.defineProperty(ComponentRef_.prototype, "changeDetectorRef", { + /** + * @return {?} + */ + get: function () { return this._viewRef; }, + enumerable: true, + configurable: true + }); + ; + Object.defineProperty(ComponentRef_.prototype, "componentType", { + /** + * @return {?} + */ + get: function () { return (this._component.constructor); }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ComponentRef_.prototype.destroy = function () { this._viewRef.destroy(); }; + /** + * @param {?} callback + * @return {?} + */ + ComponentRef_.prototype.onDestroy = function (callback) { this._viewRef.onDestroy(callback); }; + return ComponentRef_; +}(ComponentRef)); +/** + * @param {?} view + * @param {?} elDef + * @param {?} elData + * @return {?} + */ +function createViewContainerData(view, elDef, elData) { + return new ViewContainerRef_(view, elDef, elData); +} +var ViewContainerRef_ = (function () { + /** + * @param {?} _view + * @param {?} _elDef + * @param {?} _data + */ + function ViewContainerRef_(_view, _elDef, _data) { + this._view = _view; + this._elDef = _elDef; + this._data = _data; + /** + * \@internal + */ + this._embeddedViews = []; + } + Object.defineProperty(ViewContainerRef_.prototype, "element", { + /** + * @return {?} + */ + get: function () { return new ElementRef(this._data.renderElement); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewContainerRef_.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return new Injector_(this._view, this._elDef); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewContainerRef_.prototype, "parentInjector", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ view = this._view; + var /** @type {?} */ elDef = this._elDef.parent; + while (!elDef && view) { + elDef = viewParentEl(view); + view = ((view.parent)); + } + return view ? new Injector_(view, elDef) : new Injector_(this._view, null); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ViewContainerRef_.prototype.clear = function () { + var /** @type {?} */ len = this._embeddedViews.length; + for (var /** @type {?} */ i = len - 1; i >= 0; i--) { + var /** @type {?} */ view = ((detachEmbeddedView(this._data, i))); + Services.destroyView(view); + } + }; + /** + * @param {?} index + * @return {?} + */ + ViewContainerRef_.prototype.get = function (index) { + var /** @type {?} */ view = this._embeddedViews[index]; + if (view) { + var /** @type {?} */ ref = new ViewRef_(view); + ref.attachToViewContainerRef(this); + return ref; + } + return null; + }; + Object.defineProperty(ViewContainerRef_.prototype, "length", { + /** + * @return {?} + */ + get: function () { return this._embeddedViews.length; }, + enumerable: true, + configurable: true + }); + ; + /** + * @template C + * @param {?} templateRef + * @param {?=} context + * @param {?=} index + * @return {?} + */ + ViewContainerRef_.prototype.createEmbeddedView = function (templateRef, context, index) { + var /** @type {?} */ viewRef = templateRef.createEmbeddedView(context || ({})); + this.insert(viewRef, index); + return viewRef; + }; + /** + * @template C + * @param {?} componentFactory + * @param {?=} index + * @param {?=} injector + * @param {?=} projectableNodes + * @param {?=} ngModuleRef + * @return {?} + */ + ViewContainerRef_.prototype.createComponent = function (componentFactory, index, injector, projectableNodes, ngModuleRef) { + var /** @type {?} */ contextInjector = injector || this.parentInjector; + if (!ngModuleRef && !(componentFactory instanceof ComponentFactoryBoundToModule)) { + ngModuleRef = contextInjector.get(NgModuleRef); + } + var /** @type {?} */ componentRef = componentFactory.create(contextInjector, projectableNodes, undefined, ngModuleRef); + this.insert(componentRef.hostView, index); + return componentRef; + }; + /** + * @param {?} viewRef + * @param {?=} index + * @return {?} + */ + ViewContainerRef_.prototype.insert = function (viewRef, index) { + var /** @type {?} */ viewRef_ = (viewRef); + var /** @type {?} */ viewData = viewRef_._view; + attachEmbeddedView(this._view, this._data, index, viewData); + viewRef_.attachToViewContainerRef(this); + return viewRef; + }; + /** + * @param {?} viewRef + * @param {?} currentIndex + * @return {?} + */ + ViewContainerRef_.prototype.move = function (viewRef, currentIndex) { + var /** @type {?} */ previousIndex = this._embeddedViews.indexOf(viewRef._view); + moveEmbeddedView(this._data, previousIndex, currentIndex); + return viewRef; + }; + /** + * @param {?} viewRef + * @return {?} + */ + ViewContainerRef_.prototype.indexOf = function (viewRef) { + return this._embeddedViews.indexOf(((viewRef))._view); + }; + /** + * @param {?=} index + * @return {?} + */ + ViewContainerRef_.prototype.remove = function (index) { + var /** @type {?} */ viewData = detachEmbeddedView(this._data, index); + if (viewData) { + Services.destroyView(viewData); + } + }; + /** + * @param {?=} index + * @return {?} + */ + ViewContainerRef_.prototype.detach = function (index) { + var /** @type {?} */ view = detachEmbeddedView(this._data, index); + return view ? new ViewRef_(view) : null; + }; + return ViewContainerRef_; +}()); +/** + * @param {?} view + * @return {?} + */ +function createChangeDetectorRef(view) { + return new ViewRef_(view); +} +var ViewRef_ = (function () { + /** + * @param {?} _view + */ + function ViewRef_(_view) { + this._view = _view; + this._viewContainerRef = null; + this._appRef = null; + } + Object.defineProperty(ViewRef_.prototype, "rootNodes", { + /** + * @return {?} + */ + get: function () { return rootRenderNodes(this._view); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewRef_.prototype, "context", { + /** + * @return {?} + */ + get: function () { return this._view.context; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewRef_.prototype, "destroyed", { + /** + * @return {?} + */ + get: function () { return (this._view.state & 128 /* Destroyed */) !== 0; }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ViewRef_.prototype.markForCheck = function () { markParentViewsForCheck(this._view); }; + /** + * @return {?} + */ + ViewRef_.prototype.detach = function () { this._view.state &= ~4 /* Attached */; }; + /** + * @return {?} + */ + ViewRef_.prototype.detectChanges = function () { + var /** @type {?} */ fs = this._view.root.rendererFactory; + if (fs.begin) { + fs.begin(); + } + Services.checkAndUpdateView(this._view); + if (fs.end) { + fs.end(); + } + }; + /** + * @return {?} + */ + ViewRef_.prototype.checkNoChanges = function () { Services.checkNoChangesView(this._view); }; + /** + * @return {?} + */ + ViewRef_.prototype.reattach = function () { this._view.state |= 4 /* Attached */; }; + /** + * @param {?} callback + * @return {?} + */ + ViewRef_.prototype.onDestroy = function (callback) { + if (!this._view.disposables) { + this._view.disposables = []; + } + this._view.disposables.push(/** @type {?} */ (callback)); + }; + /** + * @return {?} + */ + ViewRef_.prototype.destroy = function () { + if (this._appRef) { + this._appRef.detachView(this); + } + else if (this._viewContainerRef) { + this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)); + } + Services.destroyView(this._view); + }; + /** + * @return {?} + */ + ViewRef_.prototype.detachFromAppRef = function () { + this._appRef = null; + renderDetachView(this._view); + Services.dirtyParentQueries(this._view); + }; + /** + * @param {?} appRef + * @return {?} + */ + ViewRef_.prototype.attachToAppRef = function (appRef) { + if (this._viewContainerRef) { + throw new Error('This view is already attached to a ViewContainer!'); + } + this._appRef = appRef; + }; + /** + * @param {?} vcRef + * @return {?} + */ + ViewRef_.prototype.attachToViewContainerRef = function (vcRef) { + if (this._appRef) { + throw new Error('This view is already attached directly to the ApplicationRef!'); + } + this._viewContainerRef = vcRef; + }; + return ViewRef_; +}()); +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function createTemplateData(view, def) { + return new TemplateRef_(view, def); +} +var TemplateRef_ = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](TemplateRef_, _super); + /** + * @param {?} _parentView + * @param {?} _def + */ + function TemplateRef_(_parentView, _def) { + var _this = _super.call(this) || this; + _this._parentView = _parentView; + _this._def = _def; + return _this; + } + /** + * @param {?} context + * @return {?} + */ + TemplateRef_.prototype.createEmbeddedView = function (context) { + return new ViewRef_(Services.createEmbeddedView(this._parentView, this._def, /** @type {?} */ ((((this._def.element)).template)), context)); + }; + Object.defineProperty(TemplateRef_.prototype, "elementRef", { + /** + * @return {?} + */ + get: function () { + return new ElementRef(asElementData(this._parentView, this._def.index).renderElement); + }, + enumerable: true, + configurable: true + }); + return TemplateRef_; +}(TemplateRef)); +/** + * @param {?} view + * @param {?} elDef + * @return {?} + */ +function createInjector(view, elDef) { + return new Injector_(view, elDef); +} +var Injector_ = (function () { + /** + * @param {?} view + * @param {?} elDef + */ + function Injector_(view, elDef) { + this.view = view; + this.elDef = elDef; + } + /** + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + Injector_.prototype.get = function (token, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = Injector.THROW_IF_NOT_FOUND; } + var /** @type {?} */ allowPrivateServices = this.elDef ? (this.elDef.flags & 33554432 /* ComponentView */) !== 0 : false; + return Services.resolveDep(this.view, this.elDef, allowPrivateServices, { flags: 0 /* None */, token: token, tokenKey: tokenKey(token) }, notFoundValue); + }; + return Injector_; +}()); +/** + * @param {?} view + * @param {?} index + * @return {?} + */ +function nodeValue(view, index) { + var /** @type {?} */ def = view.def.nodes[index]; + if (def.flags & 1 /* TypeElement */) { + var /** @type {?} */ elData = asElementData(view, def.index); + return ((def.element)).template ? elData.template : elData.renderElement; + } + else if (def.flags & 2 /* TypeText */) { + return asTextData(view, def.index).renderText; + } + else if (def.flags & (20224 /* CatProvider */ | 16 /* TypePipe */)) { + return asProviderData(view, def.index).instance; + } + throw new Error("Illegal state: read nodeValue for node index " + index); +} +/** + * @param {?} view + * @return {?} + */ +function createRendererV1(view) { + return new RendererAdapter(view.renderer); +} +var RendererAdapter = (function () { + /** + * @param {?} delegate + */ + function RendererAdapter(delegate) { + this.delegate = delegate; + } + /** + * @param {?} selectorOrNode + * @return {?} + */ + RendererAdapter.prototype.selectRootElement = function (selectorOrNode) { + return this.delegate.selectRootElement(selectorOrNode); + }; + /** + * @param {?} parent + * @param {?} namespaceAndName + * @return {?} + */ + RendererAdapter.prototype.createElement = function (parent, namespaceAndName) { + var _a = splitNamespace(namespaceAndName), ns = _a[0], name = _a[1]; + var /** @type {?} */ el = this.delegate.createElement(name, ns); + if (parent) { + this.delegate.appendChild(parent, el); + } + return el; + }; + /** + * @param {?} hostElement + * @return {?} + */ + RendererAdapter.prototype.createViewRoot = function (hostElement) { return hostElement; }; + /** + * @param {?} parentElement + * @return {?} + */ + RendererAdapter.prototype.createTemplateAnchor = function (parentElement) { + var /** @type {?} */ comment = this.delegate.createComment(''); + if (parentElement) { + this.delegate.appendChild(parentElement, comment); + } + return comment; + }; + /** + * @param {?} parentElement + * @param {?} value + * @return {?} + */ + RendererAdapter.prototype.createText = function (parentElement, value) { + var /** @type {?} */ node = this.delegate.createText(value); + if (parentElement) { + this.delegate.appendChild(parentElement, node); + } + return node; + }; + /** + * @param {?} parentElement + * @param {?} nodes + * @return {?} + */ + RendererAdapter.prototype.projectNodes = function (parentElement, nodes) { + for (var /** @type {?} */ i = 0; i < nodes.length; i++) { + this.delegate.appendChild(parentElement, nodes[i]); + } + }; + /** + * @param {?} node + * @param {?} viewRootNodes + * @return {?} + */ + RendererAdapter.prototype.attachViewAfter = function (node, viewRootNodes) { + var /** @type {?} */ parentElement = this.delegate.parentNode(node); + var /** @type {?} */ nextSibling = this.delegate.nextSibling(node); + for (var /** @type {?} */ i = 0; i < viewRootNodes.length; i++) { + this.delegate.insertBefore(parentElement, viewRootNodes[i], nextSibling); + } + }; + /** + * @param {?} viewRootNodes + * @return {?} + */ + RendererAdapter.prototype.detachView = function (viewRootNodes) { + for (var /** @type {?} */ i = 0; i < viewRootNodes.length; i++) { + var /** @type {?} */ node = viewRootNodes[i]; + var /** @type {?} */ parentElement = this.delegate.parentNode(node); + this.delegate.removeChild(parentElement, node); + } + }; + /** + * @param {?} hostElement + * @param {?} viewAllNodes + * @return {?} + */ + RendererAdapter.prototype.destroyView = function (hostElement, viewAllNodes) { + for (var /** @type {?} */ i = 0; i < viewAllNodes.length; i++) { + ((this.delegate.destroyNode))(viewAllNodes[i]); + } + }; + /** + * @param {?} renderElement + * @param {?} name + * @param {?} callback + * @return {?} + */ + RendererAdapter.prototype.listen = function (renderElement, name, callback) { + return this.delegate.listen(renderElement, name, /** @type {?} */ (callback)); + }; + /** + * @param {?} target + * @param {?} name + * @param {?} callback + * @return {?} + */ + RendererAdapter.prototype.listenGlobal = function (target, name, callback) { + return this.delegate.listen(target, name, /** @type {?} */ (callback)); + }; + /** + * @param {?} renderElement + * @param {?} propertyName + * @param {?} propertyValue + * @return {?} + */ + RendererAdapter.prototype.setElementProperty = function (renderElement, propertyName, propertyValue) { + this.delegate.setProperty(renderElement, propertyName, propertyValue); + }; + /** + * @param {?} renderElement + * @param {?} namespaceAndName + * @param {?} attributeValue + * @return {?} + */ + RendererAdapter.prototype.setElementAttribute = function (renderElement, namespaceAndName, attributeValue) { + var _a = splitNamespace(namespaceAndName), ns = _a[0], name = _a[1]; + if (attributeValue != null) { + this.delegate.setAttribute(renderElement, name, attributeValue, ns); + } + else { + this.delegate.removeAttribute(renderElement, name, ns); + } + }; + /** + * @param {?} renderElement + * @param {?} propertyName + * @param {?} propertyValue + * @return {?} + */ + RendererAdapter.prototype.setBindingDebugInfo = function (renderElement, propertyName, propertyValue) { }; + /** + * @param {?} renderElement + * @param {?} className + * @param {?} isAdd + * @return {?} + */ + RendererAdapter.prototype.setElementClass = function (renderElement, className, isAdd) { + if (isAdd) { + this.delegate.addClass(renderElement, className); + } + else { + this.delegate.removeClass(renderElement, className); + } + }; + /** + * @param {?} renderElement + * @param {?} styleName + * @param {?} styleValue + * @return {?} + */ + RendererAdapter.prototype.setElementStyle = function (renderElement, styleName, styleValue) { + if (styleValue != null) { + this.delegate.setStyle(renderElement, styleName, styleValue); + } + else { + this.delegate.removeStyle(renderElement, styleName); + } + }; + /** + * @param {?} renderElement + * @param {?} methodName + * @param {?} args + * @return {?} + */ + RendererAdapter.prototype.invokeElementMethod = function (renderElement, methodName, args) { + ((renderElement))[methodName].apply(renderElement, args); + }; + /** + * @param {?} renderNode + * @param {?} text + * @return {?} + */ + RendererAdapter.prototype.setText = function (renderNode$$1, text) { this.delegate.setValue(renderNode$$1, text); }; + /** + * @return {?} + */ + RendererAdapter.prototype.animate = function () { throw new Error('Renderer.animate is no longer supported!'); }; + return RendererAdapter; +}()); +/** + * @param {?} moduleType + * @param {?} parent + * @param {?} bootstrapComponents + * @param {?} def + * @return {?} + */ +function createNgModuleRef(moduleType, parent, bootstrapComponents, def) { + return new NgModuleRef_(moduleType, parent, bootstrapComponents, def); +} +var NgModuleRef_ = (function () { + /** + * @param {?} _moduleType + * @param {?} _parent + * @param {?} _bootstrapComponents + * @param {?} _def + */ + function NgModuleRef_(_moduleType, _parent, _bootstrapComponents, _def) { + this._moduleType = _moduleType; + this._parent = _parent; + this._bootstrapComponents = _bootstrapComponents; + this._def = _def; + this._destroyListeners = []; + this._destroyed = false; + initNgModule(this); + } + /** + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + NgModuleRef_.prototype.get = function (token, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = Injector.THROW_IF_NOT_FOUND; } + return resolveNgModuleDep(this, { token: token, tokenKey: tokenKey(token), flags: 0 /* None */ }, notFoundValue); + }; + Object.defineProperty(NgModuleRef_.prototype, "instance", { + /** + * @return {?} + */ + get: function () { return this.get(this._moduleType); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NgModuleRef_.prototype, "componentFactoryResolver", { + /** + * @return {?} + */ + get: function () { return this.get(ComponentFactoryResolver); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NgModuleRef_.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return this; }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + NgModuleRef_.prototype.destroy = function () { + if (this._destroyed) { + throw new Error("The ng module " + stringify(this.instance.constructor) + " has already been destroyed."); + } + this._destroyed = true; + callNgModuleLifecycle(this, 131072 /* OnDestroy */); + this._destroyListeners.forEach(function (listener) { return listener(); }); + }; + /** + * @param {?} callback + * @return {?} + */ + NgModuleRef_.prototype.onDestroy = function (callback) { this._destroyListeners.push(callback); }; + return NgModuleRef_; +}()); +/** + * @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 RendererV1TokenKey = tokenKey(Renderer); +var Renderer2TokenKey = tokenKey(Renderer2); +var ElementRefTokenKey = tokenKey(ElementRef); +var ViewContainerRefTokenKey = tokenKey(ViewContainerRef); +var TemplateRefTokenKey = tokenKey(TemplateRef); +var ChangeDetectorRefTokenKey = tokenKey(ChangeDetectorRef); +var InjectorRefTokenKey = tokenKey(Injector); +var NOT_CREATED = new Object(); +/** + * @param {?} flags + * @param {?} matchedQueries + * @param {?} childCount + * @param {?} ctor + * @param {?} deps + * @param {?=} props + * @param {?=} outputs + * @return {?} + */ +function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outputs) { + var /** @type {?} */ bindings = []; + if (props) { + for (var /** @type {?} */ prop in props) { + var _a = props[prop], bindingIndex = _a[0], nonMinifiedName = _a[1]; + bindings[bindingIndex] = { + flags: 8 /* TypeProperty */, + name: prop, nonMinifiedName: nonMinifiedName, + ns: null, + securityContext: null, + suffix: null + }; + } + } + var /** @type {?} */ outputDefs = []; + if (outputs) { + for (var /** @type {?} */ propName in outputs) { + outputDefs.push({ type: 1 /* DirectiveOutput */, propName: propName, target: null, eventName: outputs[propName] }); + } + } + flags |= 16384 /* TypeDirective */; + return _def(flags, matchedQueries, childCount, ctor, ctor, deps, bindings, outputDefs); +} +/** + * @param {?} flags + * @param {?} ctor + * @param {?} deps + * @return {?} + */ +function pipeDef(flags, ctor, deps) { + flags |= 16 /* TypePipe */; + return _def(flags, null, 0, ctor, ctor, deps); +} +/** + * @param {?} flags + * @param {?} matchedQueries + * @param {?} token + * @param {?} value + * @param {?} deps + * @return {?} + */ +function providerDef(flags, matchedQueries, token, value, deps) { + return _def(flags, matchedQueries, 0, token, value, deps); +} +/** + * @param {?} flags + * @param {?} matchedQueriesDsl + * @param {?} childCount + * @param {?} token + * @param {?} value + * @param {?} deps + * @param {?=} bindings + * @param {?=} outputs + * @return {?} + */ +function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings, outputs) { + var _a = splitMatchedQueriesDsl(matchedQueriesDsl), matchedQueries = _a.matchedQueries, references = _a.references, matchedQueryIds = _a.matchedQueryIds; + if (!outputs) { + outputs = []; + } + if (!bindings) { + bindings = []; + } + var /** @type {?} */ depDefs = splitDepsDsl(deps); + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: flags, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, matchedQueries: matchedQueries, matchedQueryIds: matchedQueryIds, references: references, + ngContentIndex: -1, childCount: childCount, bindings: bindings, + bindingFlags: calcBindingFlags(bindings), outputs: outputs, + element: null, + provider: { token: token, value: value, deps: depDefs }, + text: null, + query: null, + ngContent: null + }; +} +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function createProviderInstance(view, def) { + return def.flags & 4096 /* LazyProvider */ ? NOT_CREATED : _createProviderInstance(view, def); +} +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function createPipeInstance(view, def) { + // deps are looked up from component. + var /** @type {?} */ compView = view; + while (compView.parent && !isComponentView(compView)) { + compView = compView.parent; + } + // pipes can see the private services of the component + var /** @type {?} */ allowPrivateServices = true; + // pipes are always eager and classes! + return createClass(/** @type {?} */ ((compView.parent)), /** @type {?} */ ((viewParentEl(compView))), allowPrivateServices, /** @type {?} */ ((def.provider)).value, /** @type {?} */ ((def.provider)).deps); +} +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function createDirectiveInstance(view, def) { + // components can see other private services, other directives can't. + var /** @type {?} */ allowPrivateServices = (def.flags & 32768 /* Component */) > 0; + // directives are always eager and classes! + var /** @type {?} */ instance = createClass(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((def.provider)).value, /** @type {?} */ ((def.provider)).deps); + if (def.outputs.length) { + for (var /** @type {?} */ i = 0; i < def.outputs.length; i++) { + var /** @type {?} */ output = def.outputs[i]; + var /** @type {?} */ subscription = instance[((output.propName))].subscribe(eventHandlerClosure(view, /** @type {?} */ ((def.parent)).index, output.eventName)); /** @type {?} */ + ((view.disposables))[def.outputIndex + i] = subscription.unsubscribe.bind(subscription); + } + } + return instance; +} +/** + * @param {?} view + * @param {?} index + * @param {?} eventName + * @return {?} + */ +function eventHandlerClosure(view, index, eventName) { + return function (event) { + try { + return dispatchEvent(view, index, eventName, event); + } + catch (e) { + // Attention: Don't rethrow, as it would cancel Observable subscriptions! + view.root.errorHandler.handleError(e); + } + }; +} +/** + * @param {?} view + * @param {?} def + * @param {?} v0 + * @param {?} v1 + * @param {?} v2 + * @param {?} v3 + * @param {?} v4 + * @param {?} v5 + * @param {?} v6 + * @param {?} v7 + * @param {?} v8 + * @param {?} v9 + * @return {?} + */ +function checkAndUpdateDirectiveInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ providerData = asProviderData(view, def.index); + var /** @type {?} */ directive = providerData.instance; + var /** @type {?} */ changed = false; + var /** @type {?} */ changes = ((undefined)); + var /** @type {?} */ bindLen = def.bindings.length; + if (bindLen > 0 && checkBinding(view, def, 0, v0)) { + changed = true; + changes = updateProp(view, providerData, def, 0, v0, changes); + } + if (bindLen > 1 && checkBinding(view, def, 1, v1)) { + changed = true; + changes = updateProp(view, providerData, def, 1, v1, changes); + } + if (bindLen > 2 && checkBinding(view, def, 2, v2)) { + changed = true; + changes = updateProp(view, providerData, def, 2, v2, changes); + } + if (bindLen > 3 && checkBinding(view, def, 3, v3)) { + changed = true; + changes = updateProp(view, providerData, def, 3, v3, changes); + } + if (bindLen > 4 && checkBinding(view, def, 4, v4)) { + changed = true; + changes = updateProp(view, providerData, def, 4, v4, changes); + } + if (bindLen > 5 && checkBinding(view, def, 5, v5)) { + changed = true; + changes = updateProp(view, providerData, def, 5, v5, changes); + } + if (bindLen > 6 && checkBinding(view, def, 6, v6)) { + changed = true; + changes = updateProp(view, providerData, def, 6, v6, changes); + } + if (bindLen > 7 && checkBinding(view, def, 7, v7)) { + changed = true; + changes = updateProp(view, providerData, def, 7, v7, changes); + } + if (bindLen > 8 && checkBinding(view, def, 8, v8)) { + changed = true; + changes = updateProp(view, providerData, def, 8, v8, changes); + } + if (bindLen > 9 && checkBinding(view, def, 9, v9)) { + changed = true; + changes = updateProp(view, providerData, def, 9, v9, changes); + } + if (changes) { + directive.ngOnChanges(changes); + } + if ((view.state & 2 /* FirstCheck */) && (def.flags & 65536 /* OnInit */)) { + directive.ngOnInit(); + } + if (def.flags & 262144 /* DoCheck */) { + directive.ngDoCheck(); + } + return changed; +} +/** + * @param {?} view + * @param {?} def + * @param {?} values + * @return {?} + */ +function checkAndUpdateDirectiveDynamic(view, def, values) { + var /** @type {?} */ providerData = asProviderData(view, def.index); + var /** @type {?} */ directive = providerData.instance; + var /** @type {?} */ changed = false; + var /** @type {?} */ changes = ((undefined)); + for (var /** @type {?} */ i = 0; i < values.length; i++) { + if (checkBinding(view, def, i, values[i])) { + changed = true; + changes = updateProp(view, providerData, def, i, values[i], changes); + } + } + if (changes) { + directive.ngOnChanges(changes); + } + if ((view.state & 2 /* FirstCheck */) && (def.flags & 65536 /* OnInit */)) { + directive.ngOnInit(); + } + if (def.flags & 262144 /* DoCheck */) { + directive.ngDoCheck(); + } + return changed; +} +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function _createProviderInstance(view, def) { + // private services can see other private services + var /** @type {?} */ allowPrivateServices = (def.flags & 8192 /* PrivateProvider */) > 0; + var /** @type {?} */ providerDef = def.provider; + var /** @type {?} */ injectable; + switch (def.flags & 201347067 /* Types */) { + case 512 /* TypeClassProvider */: + injectable = createClass(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps); + break; + case 1024 /* TypeFactoryProvider */: + injectable = callFactory(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps); + break; + case 2048 /* TypeUseExistingProvider */: + injectable = resolveDep(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).deps[0]); + break; + case 256 /* TypeValueProvider */: + injectable = ((providerDef)).value; + break; + } + return injectable; +} +/** + * @param {?} view + * @param {?} elDef + * @param {?} allowPrivateServices + * @param {?} ctor + * @param {?} deps + * @return {?} + */ +function createClass(view, elDef, allowPrivateServices, ctor, deps) { + var /** @type {?} */ len = deps.length; + var /** @type {?} */ injectable; + switch (len) { + case 0: + injectable = new ctor(); + break; + case 1: + injectable = new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0])); + break; + case 2: + injectable = new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1])); + break; + case 3: + injectable = new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2])); + break; + default: + var /** @type {?} */ depValues = new Array(len); + for (var /** @type {?} */ i = 0; i < len; i++) { + depValues[i] = resolveDep(view, elDef, allowPrivateServices, deps[i]); + } + injectable = new (ctor.bind.apply(ctor, [void 0].concat(depValues)))(); + } + return injectable; +} +/** + * @param {?} view + * @param {?} elDef + * @param {?} allowPrivateServices + * @param {?} factory + * @param {?} deps + * @return {?} + */ +function callFactory(view, elDef, allowPrivateServices, factory, deps) { + var /** @type {?} */ len = deps.length; + var /** @type {?} */ injectable; + switch (len) { + case 0: + injectable = factory(); + break; + case 1: + injectable = factory(resolveDep(view, elDef, allowPrivateServices, deps[0])); + break; + case 2: + injectable = factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1])); + break; + case 3: + injectable = factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2])); + break; + default: + var /** @type {?} */ depValues = Array(len); + for (var /** @type {?} */ i = 0; i < len; i++) { + depValues[i] = resolveDep(view, elDef, allowPrivateServices, deps[i]); + } + injectable = factory.apply(void 0, depValues); + } + return injectable; +} +// This default value is when checking the hierarchy for a token. +// +// It means both: +// - the token is not provided by the current injector, +// - only the element injectors should be checked (ie do not check module injectors +// +// mod1 +// / +// el1 mod2 +// \ / +// el2 +// +// When requesting el2.injector.get(token), we should check in the following order and return the +// first found value: +// - el2.injector.get(token, default) +// - el1.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) -> do not check the module +// - mod2.injector.get(token, default) +var NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {}; +/** + * @param {?} view + * @param {?} elDef + * @param {?} allowPrivateServices + * @param {?} depDef + * @param {?=} notFoundValue + * @return {?} + */ +function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = Injector.THROW_IF_NOT_FOUND; } + if (depDef.flags & 8 /* Value */) { + return depDef.token; + } + var /** @type {?} */ startView = view; + if (depDef.flags & 2 /* Optional */) { + notFoundValue = null; + } + var /** @type {?} */ tokenKey$$1 = depDef.tokenKey; + if (tokenKey$$1 === ChangeDetectorRefTokenKey) { + // directives on the same element as a component should be able to control the change detector + // of that component as well. + allowPrivateServices = !!(elDef && ((elDef.element)).componentView); + } + if (elDef && (depDef.flags & 1 /* SkipSelf */)) { + allowPrivateServices = false; + elDef = ((elDef.parent)); + } + while (view) { + if (elDef) { + switch (tokenKey$$1) { + case RendererV1TokenKey: { + var /** @type {?} */ compView = findCompView(view, elDef, allowPrivateServices); + return createRendererV1(compView); + } + case Renderer2TokenKey: { + var /** @type {?} */ compView = findCompView(view, elDef, allowPrivateServices); + return compView.renderer; + } + case ElementRefTokenKey: + return new ElementRef(asElementData(view, elDef.index).renderElement); + case ViewContainerRefTokenKey: + return asElementData(view, elDef.index).viewContainer; + case TemplateRefTokenKey: { + if (((elDef.element)).template) { + return asElementData(view, elDef.index).template; + } + break; + } + case ChangeDetectorRefTokenKey: { + var /** @type {?} */ cdView = findCompView(view, elDef, allowPrivateServices); + return createChangeDetectorRef(cdView); + } + case InjectorRefTokenKey: + return createInjector(view, elDef); + default: + var /** @type {?} */ providerDef_1 = (((allowPrivateServices ? ((elDef.element)).allProviders : ((elDef.element)).publicProviders)))[tokenKey$$1]; + if (providerDef_1) { + var /** @type {?} */ providerData = asProviderData(view, providerDef_1.index); + if (providerData.instance === NOT_CREATED) { + providerData.instance = _createProviderInstance(view, providerDef_1); + } + return providerData.instance; + } + } + } + allowPrivateServices = isComponentView(view); + elDef = ((viewParentEl(view))); + view = ((view.parent)); + } + var /** @type {?} */ value = startView.root.injector.get(depDef.token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR); + if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR || + notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) { + // Return the value from the root element injector when + // - it provides it + // (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) + // - the module injector should not be checked + // (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) + return value; + } + return startView.root.ngModule.injector.get(depDef.token, notFoundValue); +} +/** + * @param {?} view + * @param {?} elDef + * @param {?} allowPrivateServices + * @return {?} + */ +function findCompView(view, elDef, allowPrivateServices) { + var /** @type {?} */ compView; + if (allowPrivateServices) { + compView = asElementData(view, elDef.index).componentView; + } + else { + compView = view; + while (compView.parent && !isComponentView(compView)) { + compView = compView.parent; + } + } + return compView; +} +/** + * @param {?} view + * @param {?} providerData + * @param {?} def + * @param {?} bindingIdx + * @param {?} value + * @param {?} changes + * @return {?} + */ +function updateProp(view, providerData, def, bindingIdx, value, changes) { + if (def.flags & 32768 /* Component */) { + var /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((def.parent)).index).componentView; + if (compView.def.flags & 2 /* OnPush */) { + compView.state |= 8 /* ChecksEnabled */; + } + } + var /** @type {?} */ binding = def.bindings[bindingIdx]; + var /** @type {?} */ propName = ((binding.name)); + // Note: This is still safe with Closure Compiler as + // the user passed in the property name as an object has to `providerDef`, + // so Closure Compiler will have renamed the property correctly already. + providerData.instance[propName] = value; + if (def.flags & 524288 /* OnChanges */) { + changes = changes || {}; + var /** @type {?} */ oldValue = view.oldValues[def.bindingIndex + bindingIdx]; + if (oldValue instanceof WrappedValue) { + oldValue = oldValue.wrapped; + } + var /** @type {?} */ binding_1 = def.bindings[bindingIdx]; + changes[((binding_1.nonMinifiedName))] = + new SimpleChange(oldValue, value, (view.state & 2 /* FirstCheck */) !== 0); + } + view.oldValues[def.bindingIndex + bindingIdx] = value; + return changes; +} +/** + * @param {?} view + * @param {?} lifecycles + * @return {?} + */ +function callLifecycleHooksChildrenFirst(view, lifecycles) { + if (!(view.def.nodeFlags & lifecycles)) { + return; + } + var /** @type {?} */ nodes = view.def.nodes; + for (var /** @type {?} */ i = 0; i < nodes.length; i++) { + var /** @type {?} */ nodeDef = nodes[i]; + var /** @type {?} */ parent = nodeDef.parent; + if (!parent && nodeDef.flags & lifecycles) { + // matching root node (e.g. a pipe) + callProviderLifecycles(view, i, nodeDef.flags & lifecycles); + } + if ((nodeDef.childFlags & lifecycles) === 0) { + // no child matches one of the lifecycles + i += nodeDef.childCount; + } + while (parent && (parent.flags & 1 /* TypeElement */) && + i === parent.index + parent.childCount) { + // last child of an element + if (parent.directChildFlags & lifecycles) { + callElementProvidersLifecycles(view, parent, lifecycles); + } + parent = parent.parent; + } + } +} +/** + * @param {?} view + * @param {?} elDef + * @param {?} lifecycles + * @return {?} + */ +function callElementProvidersLifecycles(view, elDef, lifecycles) { + for (var /** @type {?} */ i = elDef.index + 1; i <= elDef.index + elDef.childCount; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if (nodeDef.flags & lifecycles) { + callProviderLifecycles(view, i, nodeDef.flags & lifecycles); + } + // only visit direct children + i += nodeDef.childCount; + } +} +/** + * @param {?} view + * @param {?} index + * @param {?} lifecycles + * @return {?} + */ +function callProviderLifecycles(view, index, lifecycles) { + var /** @type {?} */ provider = asProviderData(view, index).instance; + if (provider === NOT_CREATED) { + return; + } + Services.setCurrentNode(view, index); + if (lifecycles & 1048576 /* AfterContentInit */) { + provider.ngAfterContentInit(); + } + if (lifecycles & 2097152 /* AfterContentChecked */) { + provider.ngAfterContentChecked(); + } + if (lifecycles & 4194304 /* AfterViewInit */) { + provider.ngAfterViewInit(); + } + if (lifecycles & 8388608 /* AfterViewChecked */) { + provider.ngAfterViewChecked(); + } + if (lifecycles & 131072 /* OnDestroy */) { + provider.ngOnDestroy(); + } +} +/** + * @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 + */ +/** + * @param {?} flags + * @param {?} id + * @param {?} bindings + * @return {?} + */ +function queryDef(flags, id, bindings) { + var /** @type {?} */ bindingDefs = []; + for (var /** @type {?} */ propName in bindings) { + var /** @type {?} */ bindingType = bindings[propName]; + bindingDefs.push({ propName: propName, bindingType: bindingType }); + } + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: flags, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, + ngContentIndex: -1, + matchedQueries: {}, + matchedQueryIds: 0, + references: {}, + childCount: 0, + bindings: [], + bindingFlags: 0, + outputs: [], + element: null, + provider: null, + text: null, + query: { id: id, filterId: filterQueryId(id), bindings: bindingDefs }, + ngContent: null + }; +} +/** + * @return {?} + */ +function createQuery() { + return new QueryList(); +} +/** + * @param {?} view + * @return {?} + */ +function dirtyParentQueries(view) { + var /** @type {?} */ queryIds = view.def.nodeMatchedQueries; + while (view.parent && isEmbeddedView(view)) { + var /** @type {?} */ tplDef = ((view.parentNodeDef)); + view = view.parent; + // content queries + var /** @type {?} */ end = tplDef.index + tplDef.childCount; + for (var /** @type {?} */ i = 0; i <= end; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if ((nodeDef.flags & 67108864 /* TypeContentQuery */) && + (nodeDef.flags & 536870912 /* DynamicQuery */) && + (((nodeDef.query)).filterId & queryIds) === ((nodeDef.query)).filterId) { + asQueryList(view, i).setDirty(); + } + if ((nodeDef.flags & 1 /* TypeElement */ && i + nodeDef.childCount < tplDef.index) || + !(nodeDef.childFlags & 67108864 /* TypeContentQuery */) || + !(nodeDef.childFlags & 536870912 /* DynamicQuery */)) { + // skip elements that don't contain the template element or no query. + i += nodeDef.childCount; + } + } + } + // view queries + if (view.def.nodeFlags & 134217728 /* TypeViewQuery */) { + for (var /** @type {?} */ i = 0; i < view.def.nodes.length; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if ((nodeDef.flags & 134217728 /* TypeViewQuery */) && (nodeDef.flags & 536870912 /* DynamicQuery */)) { + asQueryList(view, i).setDirty(); + } + // only visit the root nodes + i += nodeDef.childCount; + } + } +} +/** + * @param {?} view + * @param {?} nodeDef + * @return {?} + */ +function checkAndUpdateQuery(view, nodeDef) { + var /** @type {?} */ queryList = asQueryList(view, nodeDef.index); + if (!queryList.dirty) { + return; + } + var /** @type {?} */ directiveInstance; + var /** @type {?} */ newValues = ((undefined)); + if (nodeDef.flags & 67108864 /* TypeContentQuery */) { + var /** @type {?} */ elementDef_1 = ((((nodeDef.parent)).parent)); + newValues = calcQueryValues(view, elementDef_1.index, elementDef_1.index + elementDef_1.childCount, /** @type {?} */ ((nodeDef.query)), []); + directiveInstance = asProviderData(view, /** @type {?} */ ((nodeDef.parent)).index).instance; + } + else if (nodeDef.flags & 134217728 /* TypeViewQuery */) { + newValues = calcQueryValues(view, 0, view.def.nodes.length - 1, /** @type {?} */ ((nodeDef.query)), []); + directiveInstance = view.component; + } + queryList.reset(newValues); + var /** @type {?} */ bindings = ((nodeDef.query)).bindings; + var /** @type {?} */ notify = false; + for (var /** @type {?} */ i = 0; i < bindings.length; i++) { + var /** @type {?} */ binding = bindings[i]; + var /** @type {?} */ boundValue = void 0; + switch (binding.bindingType) { + case 0 /* First */: + boundValue = queryList.first; + break; + case 1 /* All */: + boundValue = queryList; + notify = true; + break; + } + directiveInstance[binding.propName] = boundValue; + } + if (notify) { + queryList.notifyOnChanges(); + } +} +/** + * @param {?} view + * @param {?} startIndex + * @param {?} endIndex + * @param {?} queryDef + * @param {?} values + * @return {?} + */ +function calcQueryValues(view, startIndex, endIndex, queryDef, values) { + for (var /** @type {?} */ i = startIndex; i <= endIndex; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + var /** @type {?} */ valueType = nodeDef.matchedQueries[queryDef.id]; + if (valueType != null) { + values.push(getQueryValue(view, nodeDef, valueType)); + } + if (nodeDef.flags & 1 /* TypeElement */ && ((nodeDef.element)).template && + (((((nodeDef.element)).template)).nodeMatchedQueries & queryDef.filterId) === + queryDef.filterId) { + // check embedded views that were attached at the place of their template. + var /** @type {?} */ elementData = asElementData(view, i); + if (nodeDef.flags & 16777216 /* EmbeddedViews */) { + var /** @type {?} */ embeddedViews = ((elementData.viewContainer))._embeddedViews; + for (var /** @type {?} */ k = 0; k < embeddedViews.length; k++) { + var /** @type {?} */ embeddedView = embeddedViews[k]; + var /** @type {?} */ dvc = declaredViewContainer(embeddedView); + if (dvc && dvc === elementData) { + calcQueryValues(embeddedView, 0, embeddedView.def.nodes.length - 1, queryDef, values); + } + } + } + var /** @type {?} */ projectedViews = elementData.template._projectedViews; + if (projectedViews) { + for (var /** @type {?} */ k = 0; k < projectedViews.length; k++) { + var /** @type {?} */ projectedView = projectedViews[k]; + calcQueryValues(projectedView, 0, projectedView.def.nodes.length - 1, queryDef, values); + } + } + } + if ((nodeDef.childMatchedQueries & queryDef.filterId) !== queryDef.filterId) { + // if no child matches the query, skip the children. + i += nodeDef.childCount; + } + } + return values; +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} queryValueType + * @return {?} + */ +function getQueryValue(view, nodeDef, queryValueType) { + if (queryValueType != null) { + // a match + var /** @type {?} */ value = void 0; + switch (queryValueType) { + case 1 /* RenderElement */: + value = asElementData(view, nodeDef.index).renderElement; + break; + case 0 /* ElementRef */: + value = new ElementRef(asElementData(view, nodeDef.index).renderElement); + break; + case 2 /* TemplateRef */: + value = asElementData(view, nodeDef.index).template; + break; + case 3 /* ViewContainerRef */: + value = asElementData(view, nodeDef.index).viewContainer; + break; + case 4 /* Provider */: + value = asProviderData(view, nodeDef.index).instance; + break; + } + return value; + } +} +/** + * @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 + */ +/** + * @param {?} ngContentIndex + * @param {?} index + * @return {?} + */ +function ngContentDef(ngContentIndex, index) { + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: 8 /* TypeNgContent */, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, + matchedQueries: {}, + matchedQueryIds: 0, + references: {}, ngContentIndex: ngContentIndex, + childCount: 0, + bindings: [], + bindingFlags: 0, + outputs: [], + element: null, + provider: null, + text: null, + query: null, + ngContent: { index: index } + }; +} +/** + * @param {?} view + * @param {?} renderHost + * @param {?} def + * @return {?} + */ +function appendNgContent(view, renderHost, def) { + var /** @type {?} */ parentEl = getParentRenderElement(view, renderHost, def); + if (!parentEl) { + // Nothing to do if there is no parent element. + return; + } + var /** @type {?} */ ngContentIndex = ((def.ngContent)).index; + visitProjectedRenderNodes(view, ngContentIndex, 1 /* AppendChild */, parentEl, null, undefined); +} +/** + * @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 + */ +/** + * @param {?} argCount + * @return {?} + */ +function purePipeDef(argCount) { + // argCount + 1 to include the pipe as first arg + return _pureExpressionDef(128 /* TypePurePipe */, new Array(argCount + 1)); +} +/** + * @param {?} argCount + * @return {?} + */ +function pureArrayDef(argCount) { + return _pureExpressionDef(32 /* TypePureArray */, new Array(argCount)); +} +/** + * @param {?} propToIndex + * @return {?} + */ +function pureObjectDef(propToIndex) { + var /** @type {?} */ keys = Object.keys(propToIndex); + var /** @type {?} */ nbKeys = keys.length; + var /** @type {?} */ propertyNames = new Array(nbKeys); + for (var /** @type {?} */ i = 0; i < nbKeys; i++) { + var /** @type {?} */ key = keys[i]; + var /** @type {?} */ index = propToIndex[key]; + propertyNames[index] = key; + } + return _pureExpressionDef(64 /* TypePureObject */, propertyNames); +} +/** + * @param {?} flags + * @param {?} propertyNames + * @return {?} + */ +function _pureExpressionDef(flags, propertyNames) { + var /** @type {?} */ bindings = new Array(propertyNames.length); + for (var /** @type {?} */ i = 0; i < propertyNames.length; i++) { + var /** @type {?} */ prop = propertyNames[i]; + bindings[i] = { + flags: 8 /* TypeProperty */, + name: prop, + ns: null, + nonMinifiedName: prop, + securityContext: null, + suffix: null + }; + } + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: flags, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, + matchedQueries: {}, + matchedQueryIds: 0, + references: {}, + ngContentIndex: -1, + childCount: 0, bindings: bindings, + bindingFlags: calcBindingFlags(bindings), + outputs: [], + element: null, + provider: null, + text: null, + query: null, + ngContent: null + }; +} +/** + * @param {?} view + * @param {?} def + * @return {?} + */ +function createPureExpression(view, def) { + return { value: undefined }; +} +/** + * @param {?} view + * @param {?} def + * @param {?} v0 + * @param {?} v1 + * @param {?} v2 + * @param {?} v3 + * @param {?} v4 + * @param {?} v5 + * @param {?} v6 + * @param {?} v7 + * @param {?} v8 + * @param {?} v9 + * @return {?} + */ +function checkAndUpdatePureExpressionInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ bindings = def.bindings; + var /** @type {?} */ changed = false; + var /** @type {?} */ bindLen = bindings.length; + if (bindLen > 0 && checkAndUpdateBinding(view, def, 0, v0)) + changed = true; + if (bindLen > 1 && checkAndUpdateBinding(view, def, 1, v1)) + changed = true; + if (bindLen > 2 && checkAndUpdateBinding(view, def, 2, v2)) + changed = true; + if (bindLen > 3 && checkAndUpdateBinding(view, def, 3, v3)) + changed = true; + if (bindLen > 4 && checkAndUpdateBinding(view, def, 4, v4)) + changed = true; + if (bindLen > 5 && checkAndUpdateBinding(view, def, 5, v5)) + changed = true; + if (bindLen > 6 && checkAndUpdateBinding(view, def, 6, v6)) + changed = true; + if (bindLen > 7 && checkAndUpdateBinding(view, def, 7, v7)) + changed = true; + if (bindLen > 8 && checkAndUpdateBinding(view, def, 8, v8)) + changed = true; + if (bindLen > 9 && checkAndUpdateBinding(view, def, 9, v9)) + changed = true; + if (changed) { + var /** @type {?} */ data = asPureExpressionData(view, def.index); + var /** @type {?} */ value = void 0; + switch (def.flags & 201347067 /* Types */) { + case 32 /* TypePureArray */: + value = new Array(bindings.length); + if (bindLen > 0) + value[0] = v0; + if (bindLen > 1) + value[1] = v1; + if (bindLen > 2) + value[2] = v2; + if (bindLen > 3) + value[3] = v3; + if (bindLen > 4) + value[4] = v4; + if (bindLen > 5) + value[5] = v5; + if (bindLen > 6) + value[6] = v6; + if (bindLen > 7) + value[7] = v7; + if (bindLen > 8) + value[8] = v8; + if (bindLen > 9) + value[9] = v9; + break; + case 64 /* TypePureObject */: + value = {}; + if (bindLen > 0) + value[((bindings[0].name))] = v0; + if (bindLen > 1) + value[((bindings[1].name))] = v1; + if (bindLen > 2) + value[((bindings[2].name))] = v2; + if (bindLen > 3) + value[((bindings[3].name))] = v3; + if (bindLen > 4) + value[((bindings[4].name))] = v4; + if (bindLen > 5) + value[((bindings[5].name))] = v5; + if (bindLen > 6) + value[((bindings[6].name))] = v6; + if (bindLen > 7) + value[((bindings[7].name))] = v7; + if (bindLen > 8) + value[((bindings[8].name))] = v8; + if (bindLen > 9) + value[((bindings[9].name))] = v9; + break; + case 128 /* TypePurePipe */: + var /** @type {?} */ pipe = v0; + switch (bindLen) { + case 1: + value = pipe.transform(v0); + break; + case 2: + value = pipe.transform(v1); + break; + case 3: + value = pipe.transform(v1, v2); + break; + case 4: + value = pipe.transform(v1, v2, v3); + break; + case 5: + value = pipe.transform(v1, v2, v3, v4); + break; + case 6: + value = pipe.transform(v1, v2, v3, v4, v5); + break; + case 7: + value = pipe.transform(v1, v2, v3, v4, v5, v6); + break; + case 8: + value = pipe.transform(v1, v2, v3, v4, v5, v6, v7); + break; + case 9: + value = pipe.transform(v1, v2, v3, v4, v5, v6, v7, v8); + break; + case 10: + value = pipe.transform(v1, v2, v3, v4, v5, v6, v7, v8, v9); + break; + } + break; + } + data.value = value; + } + return changed; +} +/** + * @param {?} view + * @param {?} def + * @param {?} values + * @return {?} + */ +function checkAndUpdatePureExpressionDynamic(view, def, values) { + var /** @type {?} */ bindings = def.bindings; + var /** @type {?} */ changed = false; + for (var /** @type {?} */ i = 0; i < values.length; i++) { + // Note: We need to loop over all values, so that + // the old values are updates as well! + if (checkAndUpdateBinding(view, def, i, values[i])) { + changed = true; + } + } + if (changed) { + var /** @type {?} */ data = asPureExpressionData(view, def.index); + var /** @type {?} */ value = void 0; + switch (def.flags & 201347067 /* Types */) { + case 32 /* TypePureArray */: + value = values; + break; + case 64 /* TypePureObject */: + value = {}; + for (var /** @type {?} */ i = 0; i < values.length; i++) { + value[((bindings[i].name))] = values[i]; + } + break; + case 128 /* TypePurePipe */: + var /** @type {?} */ pipe = values[0]; + var /** @type {?} */ params = values.slice(1); + value = pipe.transform.apply(pipe, params); + break; + } + data.value = value; + } + return changed; +} +/** + * @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 + */ +/** + * @param {?} ngContentIndex + * @param {?} constants + * @return {?} + */ +function textDef(ngContentIndex, constants) { + var /** @type {?} */ bindings = new Array(constants.length - 1); + for (var /** @type {?} */ i = 1; i < constants.length; i++) { + bindings[i - 1] = { + flags: 8 /* TypeProperty */, + name: null, + ns: null, + nonMinifiedName: null, + securityContext: null, + suffix: constants[i] + }; + } + var /** @type {?} */ flags = 2; + return { + // will bet set by the view definition + index: -1, + parent: null, + renderParent: null, + bindingIndex: -1, + outputIndex: -1, + // regular values + flags: flags, + childFlags: 0, + directChildFlags: 0, + childMatchedQueries: 0, + matchedQueries: {}, + matchedQueryIds: 0, + references: {}, ngContentIndex: ngContentIndex, + childCount: 0, bindings: bindings, + bindingFlags: calcBindingFlags(bindings), + outputs: [], + element: null, + provider: null, + text: { prefix: constants[0] }, + query: null, + ngContent: null + }; +} +/** + * @param {?} view + * @param {?} renderHost + * @param {?} def + * @return {?} + */ +function createText(view, renderHost, def) { + var /** @type {?} */ renderNode$$1; + var /** @type {?} */ renderer = view.renderer; + renderNode$$1 = renderer.createText(/** @type {?} */ ((def.text)).prefix); + var /** @type {?} */ parentEl = getParentRenderElement(view, renderHost, def); + if (parentEl) { + renderer.appendChild(parentEl, renderNode$$1); + } + return { renderText: renderNode$$1 }; +} +/** + * @param {?} view + * @param {?} def + * @param {?} v0 + * @param {?} v1 + * @param {?} v2 + * @param {?} v3 + * @param {?} v4 + * @param {?} v5 + * @param {?} v6 + * @param {?} v7 + * @param {?} v8 + * @param {?} v9 + * @return {?} + */ +function checkAndUpdateTextInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ changed = false; + var /** @type {?} */ bindings = def.bindings; + var /** @type {?} */ bindLen = bindings.length; + if (bindLen > 0 && checkAndUpdateBinding(view, def, 0, v0)) + changed = true; + if (bindLen > 1 && checkAndUpdateBinding(view, def, 1, v1)) + changed = true; + if (bindLen > 2 && checkAndUpdateBinding(view, def, 2, v2)) + changed = true; + if (bindLen > 3 && checkAndUpdateBinding(view, def, 3, v3)) + changed = true; + if (bindLen > 4 && checkAndUpdateBinding(view, def, 4, v4)) + changed = true; + if (bindLen > 5 && checkAndUpdateBinding(view, def, 5, v5)) + changed = true; + if (bindLen > 6 && checkAndUpdateBinding(view, def, 6, v6)) + changed = true; + if (bindLen > 7 && checkAndUpdateBinding(view, def, 7, v7)) + changed = true; + if (bindLen > 8 && checkAndUpdateBinding(view, def, 8, v8)) + changed = true; + if (bindLen > 9 && checkAndUpdateBinding(view, def, 9, v9)) + changed = true; + if (changed) { + var /** @type {?} */ value = ((def.text)).prefix; + if (bindLen > 0) + value += _addInterpolationPart(v0, bindings[0]); + if (bindLen > 1) + value += _addInterpolationPart(v1, bindings[1]); + if (bindLen > 2) + value += _addInterpolationPart(v2, bindings[2]); + if (bindLen > 3) + value += _addInterpolationPart(v3, bindings[3]); + if (bindLen > 4) + value += _addInterpolationPart(v4, bindings[4]); + if (bindLen > 5) + value += _addInterpolationPart(v5, bindings[5]); + if (bindLen > 6) + value += _addInterpolationPart(v6, bindings[6]); + if (bindLen > 7) + value += _addInterpolationPart(v7, bindings[7]); + if (bindLen > 8) + value += _addInterpolationPart(v8, bindings[8]); + if (bindLen > 9) + value += _addInterpolationPart(v9, bindings[9]); + var /** @type {?} */ renderNode$$1 = asTextData(view, def.index).renderText; + view.renderer.setValue(renderNode$$1, value); + } + return changed; +} +/** + * @param {?} view + * @param {?} def + * @param {?} values + * @return {?} + */ +function checkAndUpdateTextDynamic(view, def, values) { + var /** @type {?} */ bindings = def.bindings; + var /** @type {?} */ changed = false; + for (var /** @type {?} */ i = 0; i < values.length; i++) { + // Note: We need to loop over all values, so that + // the old values are updates as well! + if (checkAndUpdateBinding(view, def, i, values[i])) { + changed = true; + } + } + if (changed) { + var /** @type {?} */ value = ''; + for (var /** @type {?} */ i = 0; i < values.length; i++) { + value = value + _addInterpolationPart(values[i], bindings[i]); + } + value = ((def.text)).prefix + value; + var /** @type {?} */ renderNode$$1 = asTextData(view, def.index).renderText; + view.renderer.setValue(renderNode$$1, value); + } + return changed; +} +/** + * @param {?} value + * @param {?} binding + * @return {?} + */ +function _addInterpolationPart(value, binding) { + var /** @type {?} */ valueStr = value != null ? value.toString() : ''; + return valueStr + binding.suffix; +} +/** + * @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 + */ +/** + * @param {?} flags + * @param {?} nodes + * @param {?=} updateDirectives + * @param {?=} updateRenderer + * @return {?} + */ +function viewDef(flags, nodes, updateDirectives, updateRenderer) { + // clone nodes and set auto calculated values + var /** @type {?} */ viewBindingCount = 0; + var /** @type {?} */ viewDisposableCount = 0; + var /** @type {?} */ viewNodeFlags = 0; + var /** @type {?} */ viewRootNodeFlags = 0; + var /** @type {?} */ viewMatchedQueries = 0; + var /** @type {?} */ currentParent = null; + var /** @type {?} */ currentElementHasPublicProviders = false; + var /** @type {?} */ currentElementHasPrivateProviders = false; + var /** @type {?} */ lastRenderRootNode = null; + for (var /** @type {?} */ i = 0; i < nodes.length; i++) { + while (currentParent && i > currentParent.index + currentParent.childCount) { + var /** @type {?} */ newParent = currentParent.parent; + if (newParent) { + newParent.childFlags |= ((currentParent.childFlags)); + newParent.childMatchedQueries |= currentParent.childMatchedQueries; + } + currentParent = newParent; + } + var /** @type {?} */ node = nodes[i]; + node.index = i; + node.parent = currentParent; + node.bindingIndex = viewBindingCount; + node.outputIndex = viewDisposableCount; + // renderParent needs to account for ng-container! + var /** @type {?} */ currentRenderParent = void 0; + if (currentParent && currentParent.flags & 1 /* TypeElement */ && + !((currentParent.element)).name) { + currentRenderParent = currentParent.renderParent; + } + else { + currentRenderParent = currentParent; + } + node.renderParent = currentRenderParent; + if (node.element) { + var /** @type {?} */ elDef = node.element; + elDef.publicProviders = + currentParent ? ((currentParent.element)).publicProviders : Object.create(null); + elDef.allProviders = elDef.publicProviders; + // Note: We assume that all providers of an element are before any child element! + currentElementHasPublicProviders = false; + currentElementHasPrivateProviders = false; + } + validateNode(currentParent, node, nodes.length); + viewNodeFlags |= node.flags; + viewMatchedQueries |= node.matchedQueryIds; + if (node.element && node.element.template) { + viewMatchedQueries |= node.element.template.nodeMatchedQueries; + } + if (currentParent) { + currentParent.childFlags |= node.flags; + currentParent.directChildFlags |= node.flags; + currentParent.childMatchedQueries |= node.matchedQueryIds; + if (node.element && node.element.template) { + currentParent.childMatchedQueries |= node.element.template.nodeMatchedQueries; + } + } + else { + viewRootNodeFlags |= node.flags; + } + viewBindingCount += node.bindings.length; + viewDisposableCount += node.outputs.length; + if (!currentRenderParent && (node.flags & 3 /* CatRenderNode */)) { + lastRenderRootNode = node; + } + if (node.flags & 20224 /* CatProvider */) { + if (!currentElementHasPublicProviders) { + currentElementHasPublicProviders = true; /** @type {?} */ + (((( + // Use prototypical inheritance to not get O(n^2) complexity... + currentParent)).element)).publicProviders = + Object.create(/** @type {?} */ ((((currentParent)).element)).publicProviders); /** @type {?} */ + ((((currentParent)).element)).allProviders = ((((currentParent)).element)).publicProviders; + } + var /** @type {?} */ isPrivateService = (node.flags & 8192 /* PrivateProvider */) !== 0; + var /** @type {?} */ isComponent = (node.flags & 32768 /* Component */) !== 0; + if (!isPrivateService || isComponent) { + ((((((currentParent)).element)).publicProviders))[tokenKey(/** @type {?} */ ((node.provider)).token)] = node; + } + else { + if (!currentElementHasPrivateProviders) { + currentElementHasPrivateProviders = true; /** @type {?} */ + (((( + // Use protoyypical inheritance to not get O(n^2) complexity... + currentParent)).element)).allProviders = + Object.create(/** @type {?} */ ((((currentParent)).element)).publicProviders); + } /** @type {?} */ + ((((((currentParent)).element)).allProviders))[tokenKey(/** @type {?} */ ((node.provider)).token)] = node; + } + if (isComponent) { + ((((currentParent)).element)).componentProvider = node; + } + } + if (node.childCount) { + currentParent = node; + } + } + while (currentParent) { + var /** @type {?} */ newParent = currentParent.parent; + if (newParent) { + newParent.childFlags |= currentParent.childFlags; + newParent.childMatchedQueries |= currentParent.childMatchedQueries; + } + currentParent = newParent; + } + var /** @type {?} */ handleEvent = function (view, nodeIndex, eventName, event) { return ((((nodes[nodeIndex].element)).handleEvent))(view, eventName, event); }; + return { + // Will be filled later... + factory: null, + nodeFlags: viewNodeFlags, + rootNodeFlags: viewRootNodeFlags, + nodeMatchedQueries: viewMatchedQueries, flags: flags, + nodes: nodes, + updateDirectives: updateDirectives || NOOP, + updateRenderer: updateRenderer || NOOP, + handleEvent: handleEvent || NOOP, + bindingCount: viewBindingCount, + outputCount: viewDisposableCount, lastRenderRootNode: lastRenderRootNode + }; +} +/** + * @param {?} parent + * @param {?} node + * @param {?} nodeCount + * @return {?} + */ +function validateNode(parent, node, nodeCount) { + var /** @type {?} */ template = node.element && node.element.template; + if (template) { + if (!template.lastRenderRootNode) { + throw new Error("Illegal State: Embedded templates without nodes are not allowed!"); + } + if (template.lastRenderRootNode && + template.lastRenderRootNode.flags & 16777216 /* EmbeddedViews */) { + throw new Error("Illegal State: Last root node of a template can't have embedded views, at index " + node.index + "!"); + } + } + if (node.flags & 20224 /* CatProvider */) { + var /** @type {?} */ parentFlags = parent ? parent.flags : 0; + if ((parentFlags & 1 /* TypeElement */) === 0) { + throw new Error("Illegal State: Provider/Directive nodes need to be children of elements or anchors, at index " + node.index + "!"); + } + } + if (node.query) { + if (node.flags & 67108864 /* TypeContentQuery */ && + (!parent || (parent.flags & 16384 /* TypeDirective */) === 0)) { + throw new Error("Illegal State: Content Query nodes need to be children of directives, at index " + node.index + "!"); + } + if (node.flags & 134217728 /* TypeViewQuery */ && parent) { + throw new Error("Illegal State: View Query nodes have to be top level nodes, at index " + node.index + "!"); + } + } + if (node.childCount) { + var /** @type {?} */ parentEnd = parent ? parent.index + parent.childCount : nodeCount - 1; + if (node.index <= parentEnd && node.index + node.childCount > parentEnd) { + throw new Error("Illegal State: childCount of node leads outside of parent, at index " + node.index + "!"); + } + } +} +/** + * @param {?} parent + * @param {?} anchorDef + * @param {?} viewDef + * @param {?=} context + * @return {?} + */ +function createEmbeddedView(parent, anchorDef$$1, viewDef, context) { + // embedded views are seen as siblings to the anchor, so we need + // to get the parent of the anchor and use it as parentIndex. + var /** @type {?} */ view = createView(parent.root, parent.renderer, parent, anchorDef$$1, viewDef); + initView(view, parent.component, context); + createViewNodes(view); + return view; +} +/** + * @param {?} root + * @param {?} def + * @param {?=} context + * @return {?} + */ +function createRootView(root, def, context) { + var /** @type {?} */ view = createView(root, root.renderer, null, null, def); + initView(view, context, context); + createViewNodes(view); + return view; +} +/** + * @param {?} parentView + * @param {?} nodeDef + * @param {?} viewDef + * @param {?} hostElement + * @return {?} + */ +function createComponentView(parentView, nodeDef, viewDef, hostElement) { + var /** @type {?} */ rendererType = ((nodeDef.element)).componentRendererType; + var /** @type {?} */ compRenderer; + if (!rendererType) { + compRenderer = parentView.root.renderer; + } + else { + compRenderer = parentView.root.rendererFactory.createRenderer(hostElement, rendererType); + } + return createView(parentView.root, compRenderer, parentView, /** @type {?} */ ((nodeDef.element)).componentProvider, viewDef); +} +/** + * @param {?} root + * @param {?} renderer + * @param {?} parent + * @param {?} parentNodeDef + * @param {?} def + * @return {?} + */ +function createView(root, renderer, parent, parentNodeDef, def) { + var /** @type {?} */ nodes = new Array(def.nodes.length); + var /** @type {?} */ disposables = def.outputCount ? new Array(def.outputCount) : null; + var /** @type {?} */ view = { + def: def, + parent: parent, + viewContainerParent: null, parentNodeDef: parentNodeDef, + context: null, + component: null, nodes: nodes, + state: 13 /* CatInit */, root: root, renderer: renderer, + oldValues: new Array(def.bindingCount), disposables: disposables + }; + return view; +} +/** + * @param {?} view + * @param {?} component + * @param {?} context + * @return {?} + */ +function initView(view, component, context) { + view.component = component; + view.context = context; +} +/** + * @param {?} view + * @return {?} + */ +function createViewNodes(view) { + var /** @type {?} */ renderHost; + if (isComponentView(view)) { + var /** @type {?} */ hostDef = view.parentNodeDef; + renderHost = asElementData(/** @type {?} */ ((view.parent)), /** @type {?} */ ((((hostDef)).parent)).index).renderElement; + } + var /** @type {?} */ def = view.def; + var /** @type {?} */ nodes = view.nodes; + for (var /** @type {?} */ i = 0; i < def.nodes.length; i++) { + var /** @type {?} */ nodeDef = def.nodes[i]; + Services.setCurrentNode(view, i); + var /** @type {?} */ nodeData = void 0; + switch (nodeDef.flags & 201347067 /* Types */) { + case 1 /* TypeElement */: + var /** @type {?} */ el = (createElement(view, renderHost, nodeDef)); + var /** @type {?} */ componentView = ((undefined)); + if (nodeDef.flags & 33554432 /* ComponentView */) { + var /** @type {?} */ compViewDef = resolveDefinition(/** @type {?} */ ((((nodeDef.element)).componentView))); + componentView = Services.createComponentView(view, nodeDef, compViewDef, el); + } + listenToElementOutputs(view, componentView, nodeDef, el); + nodeData = ({ + renderElement: el, + componentView: componentView, + viewContainer: null, + template: /** @type {?} */ ((nodeDef.element)).template ? createTemplateData(view, nodeDef) : undefined + }); + if (nodeDef.flags & 16777216 /* EmbeddedViews */) { + nodeData.viewContainer = createViewContainerData(view, nodeDef, nodeData); + } + break; + case 2 /* TypeText */: + nodeData = (createText(view, renderHost, nodeDef)); + break; + case 512 /* TypeClassProvider */: + case 1024 /* TypeFactoryProvider */: + case 2048 /* TypeUseExistingProvider */: + case 256 /* TypeValueProvider */: { + var /** @type {?} */ instance = createProviderInstance(view, nodeDef); + nodeData = ({ instance: instance }); + break; + } + case 16 /* TypePipe */: { + var /** @type {?} */ instance = createPipeInstance(view, nodeDef); + nodeData = ({ instance: instance }); + break; + } + case 16384 /* TypeDirective */: { + var /** @type {?} */ instance = createDirectiveInstance(view, nodeDef); + nodeData = ({ instance: instance }); + if (nodeDef.flags & 32768 /* Component */) { + var /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((nodeDef.parent)).index).componentView; + initView(compView, instance, instance); + } + break; + } + case 32 /* TypePureArray */: + case 64 /* TypePureObject */: + case 128 /* TypePurePipe */: + nodeData = (createPureExpression(view, nodeDef)); + break; + case 67108864 /* TypeContentQuery */: + case 134217728 /* TypeViewQuery */: + nodeData = (createQuery()); + break; + case 8 /* TypeNgContent */: + appendNgContent(view, renderHost, nodeDef); + // no runtime data needed for NgContent... + nodeData = undefined; + break; + } + nodes[i] = nodeData; + } + // Create the ViewData.nodes of component views after we created everything else, + // so that e.g. ng-content works + execComponentViewsAction(view, ViewAction.CreateViewNodes); + // fill static content and view queries + execQueriesAction(view, 67108864 /* TypeContentQuery */ | 134217728 /* TypeViewQuery */, 268435456 /* StaticQuery */, 0 /* CheckAndUpdate */); +} +/** + * @param {?} view + * @return {?} + */ +function checkNoChangesView(view) { + markProjectedViewsForCheck(view); + Services.updateDirectives(view, 1 /* CheckNoChanges */); + execEmbeddedViewsAction(view, ViewAction.CheckNoChanges); + Services.updateRenderer(view, 1 /* CheckNoChanges */); + execComponentViewsAction(view, ViewAction.CheckNoChanges); + // Note: We don't check queries for changes as we didn't do this in v2.x. + // TODO(tbosch): investigate if we can enable the check again in v5.x with a nicer error message. + view.state &= ~(64 /* CheckProjectedViews */ | 32 /* CheckProjectedView */); +} +/** + * @param {?} view + * @return {?} + */ +function checkAndUpdateView(view) { + if (view.state & 1 /* BeforeFirstCheck */) { + view.state &= ~1 /* BeforeFirstCheck */; + view.state |= 2 /* FirstCheck */; + } + else { + view.state &= ~2 /* FirstCheck */; + } + markProjectedViewsForCheck(view); + Services.updateDirectives(view, 0 /* CheckAndUpdate */); + execEmbeddedViewsAction(view, ViewAction.CheckAndUpdate); + execQueriesAction(view, 67108864 /* TypeContentQuery */, 536870912 /* DynamicQuery */, 0 /* CheckAndUpdate */); + callLifecycleHooksChildrenFirst(view, 2097152 /* AfterContentChecked */ | + (view.state & 2 /* FirstCheck */ ? 1048576 /* AfterContentInit */ : 0)); + Services.updateRenderer(view, 0 /* CheckAndUpdate */); + execComponentViewsAction(view, ViewAction.CheckAndUpdate); + execQueriesAction(view, 134217728 /* TypeViewQuery */, 536870912 /* DynamicQuery */, 0 /* CheckAndUpdate */); + callLifecycleHooksChildrenFirst(view, 8388608 /* AfterViewChecked */ | + (view.state & 2 /* FirstCheck */ ? 4194304 /* AfterViewInit */ : 0)); + if (view.def.flags & 2 /* OnPush */) { + view.state &= ~8 /* ChecksEnabled */; + } + view.state &= ~(64 /* CheckProjectedViews */ | 32 /* CheckProjectedView */); +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} argStyle + * @param {?=} v0 + * @param {?=} v1 + * @param {?=} v2 + * @param {?=} v3 + * @param {?=} v4 + * @param {?=} v5 + * @param {?=} v6 + * @param {?=} v7 + * @param {?=} v8 + * @param {?=} v9 + * @return {?} + */ +function checkAndUpdateNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + if (argStyle === 0 /* Inline */) { + return checkAndUpdateNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + } + else { + return checkAndUpdateNodeDynamic(view, nodeDef, v0); + } +} +/** + * @param {?} view + * @return {?} + */ +function markProjectedViewsForCheck(view) { + var /** @type {?} */ def = view.def; + if (!(def.nodeFlags & 4 /* ProjectedTemplate */)) { + return; + } + for (var /** @type {?} */ i = 0; i < def.nodes.length; i++) { + var /** @type {?} */ nodeDef = def.nodes[i]; + if (nodeDef.flags & 4 /* ProjectedTemplate */) { + var /** @type {?} */ projectedViews = asElementData(view, i).template._projectedViews; + if (projectedViews) { + for (var /** @type {?} */ i_1 = 0; i_1 < projectedViews.length; i_1++) { + var /** @type {?} */ projectedView = projectedViews[i_1]; + projectedView.state |= 32 /* CheckProjectedView */; + markParentViewsForCheckProjectedViews(projectedView, view); + } + } + } + else if ((nodeDef.childFlags & 4 /* ProjectedTemplate */) === 0) { + // a parent with leafs + // no child is a component, + // then skip the children + i += nodeDef.childCount; + } + } +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?=} v0 + * @param {?=} v1 + * @param {?=} v2 + * @param {?=} v3 + * @param {?=} v4 + * @param {?=} v5 + * @param {?=} v6 + * @param {?=} v7 + * @param {?=} v8 + * @param {?=} v9 + * @return {?} + */ +function checkAndUpdateNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ changed = false; + switch (nodeDef.flags & 201347067 /* Types */) { + case 1 /* TypeElement */: + changed = checkAndUpdateElementInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + break; + case 2 /* TypeText */: + changed = checkAndUpdateTextInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + break; + case 16384 /* TypeDirective */: + changed = + checkAndUpdateDirectiveInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + break; + case 32 /* TypePureArray */: + case 64 /* TypePureObject */: + case 128 /* TypePurePipe */: + changed = + checkAndUpdatePureExpressionInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + break; + } + return changed; +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} values + * @return {?} + */ +function checkAndUpdateNodeDynamic(view, nodeDef, values) { + var /** @type {?} */ changed = false; + switch (nodeDef.flags & 201347067 /* Types */) { + case 1 /* TypeElement */: + changed = checkAndUpdateElementDynamic(view, nodeDef, values); + break; + case 2 /* TypeText */: + changed = checkAndUpdateTextDynamic(view, nodeDef, values); + break; + case 16384 /* TypeDirective */: + changed = checkAndUpdateDirectiveDynamic(view, nodeDef, values); + break; + case 32 /* TypePureArray */: + case 64 /* TypePureObject */: + case 128 /* TypePurePipe */: + changed = checkAndUpdatePureExpressionDynamic(view, nodeDef, values); + break; + } + if (changed) { + // Update oldValues after all bindings have been updated, + // as a setter for a property might update other properties. + var /** @type {?} */ bindLen = nodeDef.bindings.length; + var /** @type {?} */ bindingStart = nodeDef.bindingIndex; + var /** @type {?} */ oldValues = view.oldValues; + for (var /** @type {?} */ i = 0; i < bindLen; i++) { + oldValues[bindingStart + i] = values[i]; + } + } + return changed; +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} argStyle + * @param {?=} v0 + * @param {?=} v1 + * @param {?=} v2 + * @param {?=} v3 + * @param {?=} v4 + * @param {?=} v5 + * @param {?=} v6 + * @param {?=} v7 + * @param {?=} v8 + * @param {?=} v9 + * @return {?} + */ +function checkNoChangesNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + if (argStyle === 0 /* Inline */) { + checkNoChangesNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + } + else { + checkNoChangesNodeDynamic(view, nodeDef, v0); + } + // Returning false is ok here as we would have thrown in case of a change. + return false; +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} v0 + * @param {?} v1 + * @param {?} v2 + * @param {?} v3 + * @param {?} v4 + * @param {?} v5 + * @param {?} v6 + * @param {?} v7 + * @param {?} v8 + * @param {?} v9 + * @return {?} + */ +function checkNoChangesNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ bindLen = nodeDef.bindings.length; + if (bindLen > 0) + checkBindingNoChanges(view, nodeDef, 0, v0); + if (bindLen > 1) + checkBindingNoChanges(view, nodeDef, 1, v1); + if (bindLen > 2) + checkBindingNoChanges(view, nodeDef, 2, v2); + if (bindLen > 3) + checkBindingNoChanges(view, nodeDef, 3, v3); + if (bindLen > 4) + checkBindingNoChanges(view, nodeDef, 4, v4); + if (bindLen > 5) + checkBindingNoChanges(view, nodeDef, 5, v5); + if (bindLen > 6) + checkBindingNoChanges(view, nodeDef, 6, v6); + if (bindLen > 7) + checkBindingNoChanges(view, nodeDef, 7, v7); + if (bindLen > 8) + checkBindingNoChanges(view, nodeDef, 8, v8); + if (bindLen > 9) + checkBindingNoChanges(view, nodeDef, 9, v9); +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} values + * @return {?} + */ +function checkNoChangesNodeDynamic(view, nodeDef, values) { + for (var /** @type {?} */ i = 0; i < values.length; i++) { + checkBindingNoChanges(view, nodeDef, i, values[i]); + } +} +/** + * Workaround https://github.com/angular/tsickle/issues/497 + * @suppress {misplacedTypeAnnotation} + * @param {?} view + * @param {?} nodeDef + * @return {?} + */ +function checkNoChangesQuery(view, nodeDef) { + var /** @type {?} */ queryList = asQueryList(view, nodeDef.index); + if (queryList.dirty) { + throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, nodeDef.index), "Query " + ((nodeDef.query)).id + " not dirty", "Query " + ((nodeDef.query)).id + " dirty", (view.state & 1 /* BeforeFirstCheck */) !== 0); + } +} +/** + * @param {?} view + * @return {?} + */ +function destroyView(view) { + if (view.state & 128 /* Destroyed */) { + return; + } + execEmbeddedViewsAction(view, ViewAction.Destroy); + execComponentViewsAction(view, ViewAction.Destroy); + callLifecycleHooksChildrenFirst(view, 131072 /* OnDestroy */); + if (view.disposables) { + for (var /** @type {?} */ i = 0; i < view.disposables.length; i++) { + view.disposables[i](); + } + } + detachProjectedView(view); + if (view.renderer.destroyNode) { + destroyViewNodes(view); + } + if (isComponentView(view)) { + view.renderer.destroy(); + } + view.state |= 128 /* Destroyed */; +} +/** + * @param {?} view + * @return {?} + */ +function destroyViewNodes(view) { + var /** @type {?} */ len = view.def.nodes.length; + for (var /** @type {?} */ i = 0; i < len; i++) { + var /** @type {?} */ def = view.def.nodes[i]; + if (def.flags & 1 /* TypeElement */) { + ((view.renderer.destroyNode))(asElementData(view, i).renderElement); + } + else if (def.flags & 2 /* TypeText */) { + ((view.renderer.destroyNode))(asTextData(view, i).renderText); + } + } +} +var ViewAction = {}; +ViewAction.CreateViewNodes = 0; +ViewAction.CheckNoChanges = 1; +ViewAction.CheckNoChangesProjectedViews = 2; +ViewAction.CheckAndUpdate = 3; +ViewAction.CheckAndUpdateProjectedViews = 4; +ViewAction.Destroy = 5; +ViewAction[ViewAction.CreateViewNodes] = "CreateViewNodes"; +ViewAction[ViewAction.CheckNoChanges] = "CheckNoChanges"; +ViewAction[ViewAction.CheckNoChangesProjectedViews] = "CheckNoChangesProjectedViews"; +ViewAction[ViewAction.CheckAndUpdate] = "CheckAndUpdate"; +ViewAction[ViewAction.CheckAndUpdateProjectedViews] = "CheckAndUpdateProjectedViews"; +ViewAction[ViewAction.Destroy] = "Destroy"; +/** + * @param {?} view + * @param {?} action + * @return {?} + */ +function execComponentViewsAction(view, action) { + var /** @type {?} */ def = view.def; + if (!(def.nodeFlags & 33554432 /* ComponentView */)) { + return; + } + for (var /** @type {?} */ i = 0; i < def.nodes.length; i++) { + var /** @type {?} */ nodeDef = def.nodes[i]; + if (nodeDef.flags & 33554432 /* ComponentView */) { + // a leaf + callViewAction(asElementData(view, i).componentView, action); + } + else if ((nodeDef.childFlags & 33554432 /* ComponentView */) === 0) { + // a parent with leafs + // no child is a component, + // then skip the children + i += nodeDef.childCount; + } + } +} +/** + * @param {?} view + * @param {?} action + * @return {?} + */ +function execEmbeddedViewsAction(view, action) { + var /** @type {?} */ def = view.def; + if (!(def.nodeFlags & 16777216 /* EmbeddedViews */)) { + return; + } + for (var /** @type {?} */ i = 0; i < def.nodes.length; i++) { + var /** @type {?} */ nodeDef = def.nodes[i]; + if (nodeDef.flags & 16777216 /* EmbeddedViews */) { + // a leaf + var /** @type {?} */ embeddedViews = ((asElementData(view, i).viewContainer))._embeddedViews; + for (var /** @type {?} */ k = 0; k < embeddedViews.length; k++) { + callViewAction(embeddedViews[k], action); + } + } + else if ((nodeDef.childFlags & 16777216 /* EmbeddedViews */) === 0) { + // a parent with leafs + // no child is a component, + // then skip the children + i += nodeDef.childCount; + } + } +} +/** + * @param {?} view + * @param {?} action + * @return {?} + */ +function callViewAction(view, action) { + var /** @type {?} */ viewState = view.state; + switch (action) { + case ViewAction.CheckNoChanges: + if ((viewState & 128 /* Destroyed */) === 0) { + if ((viewState & 12 /* CatDetectChanges */) === 12 /* CatDetectChanges */) { + checkNoChangesView(view); + } + else if (viewState & 64 /* CheckProjectedViews */) { + execProjectedViewsAction(view, ViewAction.CheckNoChangesProjectedViews); + } + } + break; + case ViewAction.CheckNoChangesProjectedViews: + if ((viewState & 128 /* Destroyed */) === 0) { + if (viewState & 32 /* CheckProjectedView */) { + checkNoChangesView(view); + } + else if (viewState & 64 /* CheckProjectedViews */) { + execProjectedViewsAction(view, action); + } + } + break; + case ViewAction.CheckAndUpdate: + if ((viewState & 128 /* Destroyed */) === 0) { + if ((viewState & 12 /* CatDetectChanges */) === 12 /* CatDetectChanges */) { + checkAndUpdateView(view); + } + else if (viewState & 64 /* CheckProjectedViews */) { + execProjectedViewsAction(view, ViewAction.CheckAndUpdateProjectedViews); + } + } + break; + case ViewAction.CheckAndUpdateProjectedViews: + if ((viewState & 128 /* Destroyed */) === 0) { + if (viewState & 32 /* CheckProjectedView */) { + checkAndUpdateView(view); + } + else if (viewState & 64 /* CheckProjectedViews */) { + execProjectedViewsAction(view, action); + } + } + break; + case ViewAction.Destroy: + // Note: destroyView recurses over all views, + // so we don't need to special case projected views here. + destroyView(view); + break; + case ViewAction.CreateViewNodes: + createViewNodes(view); + break; + } +} +/** + * @param {?} view + * @param {?} action + * @return {?} + */ +function execProjectedViewsAction(view, action) { + execEmbeddedViewsAction(view, action); + execComponentViewsAction(view, action); +} +/** + * @param {?} view + * @param {?} queryFlags + * @param {?} staticDynamicQueryFlag + * @param {?} checkType + * @return {?} + */ +function execQueriesAction(view, queryFlags, staticDynamicQueryFlag, checkType) { + if (!(view.def.nodeFlags & queryFlags) || !(view.def.nodeFlags & staticDynamicQueryFlag)) { + return; + } + var /** @type {?} */ nodeCount = view.def.nodes.length; + for (var /** @type {?} */ i = 0; i < nodeCount; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if ((nodeDef.flags & queryFlags) && (nodeDef.flags & staticDynamicQueryFlag)) { + Services.setCurrentNode(view, nodeDef.index); + switch (checkType) { + case 0 /* CheckAndUpdate */: + checkAndUpdateQuery(view, nodeDef); + break; + case 1 /* CheckNoChanges */: + checkNoChangesQuery(view, nodeDef); + break; + } + } + if (!(nodeDef.childFlags & queryFlags) || !(nodeDef.childFlags & staticDynamicQueryFlag)) { + // no child has a matching query + // then skip the children + i += nodeDef.childCount; + } + } +} +/** + * @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 initialized = false; +/** + * @return {?} + */ +function initServicesIfNeeded() { + if (initialized) { + return; + } + initialized = true; + var /** @type {?} */ services = isDevMode() ? createDebugServices() : createProdServices(); + Services.setCurrentNode = services.setCurrentNode; + Services.createRootView = services.createRootView; + Services.createEmbeddedView = services.createEmbeddedView; + Services.createComponentView = services.createComponentView; + Services.createNgModuleRef = services.createNgModuleRef; + Services.overrideProvider = services.overrideProvider; + Services.clearProviderOverrides = services.clearProviderOverrides; + Services.checkAndUpdateView = services.checkAndUpdateView; + Services.checkNoChangesView = services.checkNoChangesView; + Services.destroyView = services.destroyView; + Services.resolveDep = resolveDep; + Services.createDebugContext = services.createDebugContext; + Services.handleEvent = services.handleEvent; + Services.updateDirectives = services.updateDirectives; + Services.updateRenderer = services.updateRenderer; + Services.dirtyParentQueries = dirtyParentQueries; +} +/** + * @return {?} + */ +function createProdServices() { + return { + setCurrentNode: function () { }, + createRootView: createProdRootView, + createEmbeddedView: createEmbeddedView, + createComponentView: createComponentView, + createNgModuleRef: createNgModuleRef, + overrideProvider: NOOP, + clearProviderOverrides: NOOP, + checkAndUpdateView: checkAndUpdateView, + checkNoChangesView: checkNoChangesView, + destroyView: destroyView, + createDebugContext: function (view, nodeIndex) { return new DebugContext_(view, nodeIndex); }, + handleEvent: function (view, nodeIndex, eventName, event) { return view.def.handleEvent(view, nodeIndex, eventName, event); }, + updateDirectives: function (view, checkType) { return view.def.updateDirectives(checkType === 0 /* CheckAndUpdate */ ? prodCheckAndUpdateNode : + prodCheckNoChangesNode, view); }, + updateRenderer: function (view, checkType) { return view.def.updateRenderer(checkType === 0 /* CheckAndUpdate */ ? prodCheckAndUpdateNode : + prodCheckNoChangesNode, view); }, + }; +} +/** + * @return {?} + */ +function createDebugServices() { + return { + setCurrentNode: debugSetCurrentNode, + createRootView: debugCreateRootView, + createEmbeddedView: debugCreateEmbeddedView, + createComponentView: debugCreateComponentView, + createNgModuleRef: debugCreateNgModuleRef, + overrideProvider: debugOverrideProvider, + clearProviderOverrides: debugClearProviderOverrides, + checkAndUpdateView: debugCheckAndUpdateView, + checkNoChangesView: debugCheckNoChangesView, + destroyView: debugDestroyView, + createDebugContext: function (view, nodeIndex) { return new DebugContext_(view, nodeIndex); }, + handleEvent: debugHandleEvent, + updateDirectives: debugUpdateDirectives, + updateRenderer: debugUpdateRenderer, + }; +} +/** + * @param {?} elInjector + * @param {?} projectableNodes + * @param {?} rootSelectorOrNode + * @param {?} def + * @param {?} ngModule + * @param {?=} context + * @return {?} + */ +function createProdRootView(elInjector, projectableNodes, rootSelectorOrNode, def, ngModule, context) { + var /** @type {?} */ rendererFactory = ngModule.injector.get(RendererFactory2); + return createRootView(createRootData(elInjector, ngModule, rendererFactory, projectableNodes, rootSelectorOrNode), def, context); +} +/** + * @param {?} elInjector + * @param {?} projectableNodes + * @param {?} rootSelectorOrNode + * @param {?} def + * @param {?} ngModule + * @param {?=} context + * @return {?} + */ +function debugCreateRootView(elInjector, projectableNodes, rootSelectorOrNode, def, ngModule, context) { + var /** @type {?} */ rendererFactory = ngModule.injector.get(RendererFactory2); + var /** @type {?} */ root = createRootData(elInjector, ngModule, new DebugRendererFactory2(rendererFactory), projectableNodes, rootSelectorOrNode); + var /** @type {?} */ defWithOverride = applyProviderOverridesToView(def); + return callWithDebugContext(DebugAction.create, createRootView, null, [root, defWithOverride, context]); +} +/** + * @param {?} elInjector + * @param {?} ngModule + * @param {?} rendererFactory + * @param {?} projectableNodes + * @param {?} rootSelectorOrNode + * @return {?} + */ +function createRootData(elInjector, ngModule, rendererFactory, projectableNodes, rootSelectorOrNode) { + var /** @type {?} */ sanitizer = ngModule.injector.get(Sanitizer); + var /** @type {?} */ errorHandler = ngModule.injector.get(ErrorHandler); + var /** @type {?} */ renderer = rendererFactory.createRenderer(null, null); + return { + ngModule: ngModule, + injector: elInjector, projectableNodes: projectableNodes, + selectorOrNode: rootSelectorOrNode, sanitizer: sanitizer, rendererFactory: rendererFactory, renderer: renderer, errorHandler: errorHandler + }; +} +/** + * @param {?} parentView + * @param {?} anchorDef + * @param {?} viewDef + * @param {?=} context + * @return {?} + */ +function debugCreateEmbeddedView(parentView, anchorDef, viewDef$$1, context) { + var /** @type {?} */ defWithOverride = applyProviderOverridesToView(viewDef$$1); + return callWithDebugContext(DebugAction.create, createEmbeddedView, null, [parentView, anchorDef, defWithOverride, context]); +} +/** + * @param {?} parentView + * @param {?} nodeDef + * @param {?} viewDef + * @param {?} hostElement + * @return {?} + */ +function debugCreateComponentView(parentView, nodeDef, viewDef$$1, hostElement) { + var /** @type {?} */ defWithOverride = applyProviderOverridesToView(viewDef$$1); + return callWithDebugContext(DebugAction.create, createComponentView, null, [parentView, nodeDef, defWithOverride, hostElement]); +} +/** + * @param {?} moduleType + * @param {?} parentInjector + * @param {?} bootstrapComponents + * @param {?} def + * @return {?} + */ +function debugCreateNgModuleRef(moduleType, parentInjector, bootstrapComponents, def) { + var /** @type {?} */ defWithOverride = applyProviderOverridesToNgModule(def); + return createNgModuleRef(moduleType, parentInjector, bootstrapComponents, defWithOverride); +} +var providerOverrides = new Map(); +/** + * @param {?} override + * @return {?} + */ +function debugOverrideProvider(override) { + providerOverrides.set(override.token, override); +} +/** + * @return {?} + */ +function debugClearProviderOverrides() { + providerOverrides.clear(); +} +/** + * @param {?} def + * @return {?} + */ +function applyProviderOverridesToView(def) { + if (providerOverrides.size === 0) { + return def; + } + var /** @type {?} */ elementIndicesWithOverwrittenProviders = findElementIndicesWithOverwrittenProviders(def); + if (elementIndicesWithOverwrittenProviders.length === 0) { + return def; + } + // clone the whole view definition, + // as it maintains references between the nodes that are hard to update. + def = ((def.factory))(function () { return NOOP; }); + for (var /** @type {?} */ i = 0; i < elementIndicesWithOverwrittenProviders.length; i++) { + applyProviderOverridesToElement(def, elementIndicesWithOverwrittenProviders[i]); + } + return def; + /** + * @param {?} def + * @return {?} + */ + function findElementIndicesWithOverwrittenProviders(def) { + var /** @type {?} */ elIndicesWithOverwrittenProviders = []; + var /** @type {?} */ lastElementDef = null; + for (var /** @type {?} */ i = 0; i < def.nodes.length; i++) { + var /** @type {?} */ nodeDef = def.nodes[i]; + if (nodeDef.flags & 1 /* TypeElement */) { + lastElementDef = nodeDef; + } + if (lastElementDef && nodeDef.flags & 3840 /* CatProviderNoDirective */ && + providerOverrides.has(/** @type {?} */ ((nodeDef.provider)).token)) { + elIndicesWithOverwrittenProviders.push(/** @type {?} */ ((lastElementDef)).index); + lastElementDef = null; + } + } + return elIndicesWithOverwrittenProviders; + } + /** + * @param {?} viewDef + * @param {?} elIndex + * @return {?} + */ + function applyProviderOverridesToElement(viewDef$$1, elIndex) { + for (var /** @type {?} */ i = elIndex + 1; i < viewDef$$1.nodes.length; i++) { + var /** @type {?} */ nodeDef = viewDef$$1.nodes[i]; + if (nodeDef.flags & 1 /* TypeElement */) { + // stop at the next element + return; + } + if (nodeDef.flags & 3840 /* CatProviderNoDirective */) { + // Make all providers lazy, so that we don't get into trouble + // with ordering problems of providers on the same element + nodeDef.flags |= 4096 /* LazyProvider */; + var /** @type {?} */ provider = ((nodeDef.provider)); + var /** @type {?} */ override = providerOverrides.get(provider.token); + if (override) { + nodeDef.flags = (nodeDef.flags & ~3840 /* CatProviderNoDirective */) | override.flags; + provider.deps = splitDepsDsl(override.deps); + provider.value = override.value; + } + } + } + } +} +/** + * @param {?} def + * @return {?} + */ +function applyProviderOverridesToNgModule(def) { + if (providerOverrides.size === 0 || !hasOverrrides(def)) { + return def; + } + // clone the whole view definition, + // as it maintains references between the nodes that are hard to update. + def = ((def.factory))(function () { return NOOP; }); + applyProviderOverrides(def); + return def; + /** + * @param {?} def + * @return {?} + */ + function hasOverrrides(def) { + return def.providers.some(function (node) { return !!(node.flags & 3840 /* CatProviderNoDirective */) && providerOverrides.has(node.token); }); + } + /** + * @param {?} def + * @return {?} + */ + function applyProviderOverrides(def) { + for (var /** @type {?} */ i = 0; i < def.providers.length; i++) { + var /** @type {?} */ provider = def.providers[i]; + // Make all providers lazy, so that we don't get into trouble + // with ordering problems of providers on the same element + provider.flags |= 4096 /* LazyProvider */; + var /** @type {?} */ override = providerOverrides.get(provider.token); + if (override) { + provider.flags = (provider.flags & ~3840 /* CatProviderNoDirective */) | override.flags; + provider.deps = splitDepsDsl(override.deps); + provider.value = override.value; + } + } + } +} +/** + * @param {?} view + * @param {?} nodeIndex + * @param {?} argStyle + * @param {?=} v0 + * @param {?=} v1 + * @param {?=} v2 + * @param {?=} v3 + * @param {?=} v4 + * @param {?=} v5 + * @param {?=} v6 + * @param {?=} v7 + * @param {?=} v8 + * @param {?=} v9 + * @return {?} + */ +function prodCheckAndUpdateNode(view, nodeIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex]; + checkAndUpdateNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + return (nodeDef.flags & 224 /* CatPureExpression */) ? + asPureExpressionData(view, nodeIndex).value : + undefined; +} +/** + * @param {?} view + * @param {?} nodeIndex + * @param {?} argStyle + * @param {?=} v0 + * @param {?=} v1 + * @param {?=} v2 + * @param {?=} v3 + * @param {?=} v4 + * @param {?=} v5 + * @param {?=} v6 + * @param {?=} v7 + * @param {?=} v8 + * @param {?=} v9 + * @return {?} + */ +function prodCheckNoChangesNode(view, nodeIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) { + var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex]; + checkNoChangesNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9); + return (nodeDef.flags & 224 /* CatPureExpression */) ? + asPureExpressionData(view, nodeIndex).value : + undefined; +} +/** + * @param {?} view + * @return {?} + */ +function debugCheckAndUpdateView(view) { + return callWithDebugContext(DebugAction.detectChanges, checkAndUpdateView, null, [view]); +} +/** + * @param {?} view + * @return {?} + */ +function debugCheckNoChangesView(view) { + return callWithDebugContext(DebugAction.checkNoChanges, checkNoChangesView, null, [view]); +} +/** + * @param {?} view + * @return {?} + */ +function debugDestroyView(view) { + return callWithDebugContext(DebugAction.destroy, destroyView, null, [view]); +} +var DebugAction = {}; +DebugAction.create = 0; +DebugAction.detectChanges = 1; +DebugAction.checkNoChanges = 2; +DebugAction.destroy = 3; +DebugAction.handleEvent = 4; +DebugAction[DebugAction.create] = "create"; +DebugAction[DebugAction.detectChanges] = "detectChanges"; +DebugAction[DebugAction.checkNoChanges] = "checkNoChanges"; +DebugAction[DebugAction.destroy] = "destroy"; +DebugAction[DebugAction.handleEvent] = "handleEvent"; +var _currentAction; +var _currentView; +var _currentNodeIndex; +/** + * @param {?} view + * @param {?} nodeIndex + * @return {?} + */ +function debugSetCurrentNode(view, nodeIndex) { + _currentView = view; + _currentNodeIndex = nodeIndex; +} +/** + * @param {?} view + * @param {?} nodeIndex + * @param {?} eventName + * @param {?} event + * @return {?} + */ +function debugHandleEvent(view, nodeIndex, eventName, event) { + debugSetCurrentNode(view, nodeIndex); + return callWithDebugContext(DebugAction.handleEvent, view.def.handleEvent, null, [view, nodeIndex, eventName, event]); +} +/** + * @param {?} view + * @param {?} checkType + * @return {?} + */ +function debugUpdateDirectives(view, checkType) { + if (view.state & 128 /* Destroyed */) { + throw viewDestroyedError(DebugAction[_currentAction]); + } + debugSetCurrentNode(view, nextDirectiveWithBinding(view, 0)); + return view.def.updateDirectives(debugCheckDirectivesFn, view); + /** + * @param {?} view + * @param {?} nodeIndex + * @param {?} argStyle + * @param {...?} values + * @return {?} + */ + function debugCheckDirectivesFn(view, nodeIndex, argStyle) { + var values = []; + for (var _i = 3; _i < arguments.length; _i++) { + values[_i - 3] = arguments[_i]; + } + var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex]; + if (checkType === 0 /* CheckAndUpdate */) { + debugCheckAndUpdateNode(view, nodeDef, argStyle, values); + } + else { + debugCheckNoChangesNode(view, nodeDef, argStyle, values); + } + if (nodeDef.flags & 16384 /* TypeDirective */) { + debugSetCurrentNode(view, nextDirectiveWithBinding(view, nodeIndex)); + } + return (nodeDef.flags & 224 /* CatPureExpression */) ? + asPureExpressionData(view, nodeDef.index).value : + undefined; + } +} +/** + * @param {?} view + * @param {?} checkType + * @return {?} + */ +function debugUpdateRenderer(view, checkType) { + if (view.state & 128 /* Destroyed */) { + throw viewDestroyedError(DebugAction[_currentAction]); + } + debugSetCurrentNode(view, nextRenderNodeWithBinding(view, 0)); + return view.def.updateRenderer(debugCheckRenderNodeFn, view); + /** + * @param {?} view + * @param {?} nodeIndex + * @param {?} argStyle + * @param {...?} values + * @return {?} + */ + function debugCheckRenderNodeFn(view, nodeIndex, argStyle) { + var values = []; + for (var _i = 3; _i < arguments.length; _i++) { + values[_i - 3] = arguments[_i]; + } + var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex]; + if (checkType === 0 /* CheckAndUpdate */) { + debugCheckAndUpdateNode(view, nodeDef, argStyle, values); + } + else { + debugCheckNoChangesNode(view, nodeDef, argStyle, values); + } + if (nodeDef.flags & 3 /* CatRenderNode */) { + debugSetCurrentNode(view, nextRenderNodeWithBinding(view, nodeIndex)); + } + return (nodeDef.flags & 224 /* CatPureExpression */) ? + asPureExpressionData(view, nodeDef.index).value : + undefined; + } +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} argStyle + * @param {?} givenValues + * @return {?} + */ +function debugCheckAndUpdateNode(view, nodeDef, argStyle, givenValues) { + var /** @type {?} */ changed = ((checkAndUpdateNode)).apply(void 0, [view, nodeDef, argStyle].concat(givenValues)); + if (changed) { + var /** @type {?} */ values = argStyle === 1 /* Dynamic */ ? givenValues[0] : givenValues; + if (nodeDef.flags & 16384 /* TypeDirective */) { + var /** @type {?} */ bindingValues = {}; + for (var /** @type {?} */ i = 0; i < nodeDef.bindings.length; i++) { + var /** @type {?} */ binding = nodeDef.bindings[i]; + var /** @type {?} */ value = values[i]; + if (binding.flags & 8 /* TypeProperty */) { + bindingValues[normalizeDebugBindingName(/** @type {?} */ ((binding.nonMinifiedName)))] = + normalizeDebugBindingValue(value); + } + } + var /** @type {?} */ elDef = ((nodeDef.parent)); + var /** @type {?} */ el = asElementData(view, elDef.index).renderElement; + if (!((elDef.element)).name) { + // a comment. + view.renderer.setValue(el, "bindings=" + JSON.stringify(bindingValues, null, 2)); + } + else { + // a regular element. + for (var /** @type {?} */ attr in bindingValues) { + var /** @type {?} */ value = bindingValues[attr]; + if (value != null) { + view.renderer.setAttribute(el, attr, value); + } + else { + view.renderer.removeAttribute(el, attr); + } + } + } + } + } +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} argStyle + * @param {?} values + * @return {?} + */ +function debugCheckNoChangesNode(view, nodeDef, argStyle, values) { + ((checkNoChangesNode)).apply(void 0, [view, nodeDef, argStyle].concat(values)); +} +/** + * @param {?} name + * @return {?} + */ +function normalizeDebugBindingName(name) { + // Attribute names with `$` (eg `x-y$`) are valid per spec, but unsupported by some browsers + name = camelCaseToDashCase(name.replace(/[$@]/g, '_')); + return "ng-reflect-" + name; +} +var CAMEL_CASE_REGEXP = /([A-Z])/g; +/** + * @param {?} input + * @return {?} + */ +function camelCaseToDashCase(input) { + return input.replace(CAMEL_CASE_REGEXP, function () { + var m = []; + for (var _i = 0; _i < arguments.length; _i++) { + m[_i] = arguments[_i]; + } + return '-' + m[1].toLowerCase(); + }); +} +/** + * @param {?} value + * @return {?} + */ +function normalizeDebugBindingValue(value) { + try { + // Limit the size of the value as otherwise the DOM just gets polluted. + return value != null ? value.toString().slice(0, 30) : value; + } + catch (e) { + return '[ERROR] Exception while trying to serialize the value'; + } +} +/** + * @param {?} view + * @param {?} nodeIndex + * @return {?} + */ +function nextDirectiveWithBinding(view, nodeIndex) { + for (var /** @type {?} */ i = nodeIndex; i < view.def.nodes.length; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if (nodeDef.flags & 16384 /* TypeDirective */ && nodeDef.bindings && nodeDef.bindings.length) { + return i; + } + } + return null; +} +/** + * @param {?} view + * @param {?} nodeIndex + * @return {?} + */ +function nextRenderNodeWithBinding(view, nodeIndex) { + for (var /** @type {?} */ i = nodeIndex; i < view.def.nodes.length; i++) { + var /** @type {?} */ nodeDef = view.def.nodes[i]; + if ((nodeDef.flags & 3 /* CatRenderNode */) && nodeDef.bindings && nodeDef.bindings.length) { + return i; + } + } + return null; +} +var DebugContext_ = (function () { + /** + * @param {?} view + * @param {?} nodeIndex + */ + function DebugContext_(view, nodeIndex) { + this.view = view; + this.nodeIndex = nodeIndex; + if (nodeIndex == null) { + this.nodeIndex = nodeIndex = 0; + } + this.nodeDef = view.def.nodes[nodeIndex]; + var elDef = this.nodeDef; + var elView = view; + while (elDef && (elDef.flags & 1 /* TypeElement */) === 0) { + elDef = elDef.parent; + } + if (!elDef) { + while (!elDef && elView) { + elDef = viewParentEl(elView); + elView = elView.parent; + } + } + this.elDef = elDef; + this.elView = elView; + } + Object.defineProperty(DebugContext_.prototype, "elOrCompView", { + /** + * @return {?} + */ + get: function () { + // Has to be done lazily as we use the DebugContext also during creation of elements... + return asElementData(this.elView, this.elDef.index).componentView || this.view; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return createInjector(this.elView, this.elDef); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "component", { + /** + * @return {?} + */ + get: function () { return this.elOrCompView.component; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "context", { + /** + * @return {?} + */ + get: function () { return this.elOrCompView.context; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "providerTokens", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ tokens = []; + if (this.elDef) { + for (var /** @type {?} */ i = this.elDef.index + 1; i <= this.elDef.index + this.elDef.childCount; i++) { + var /** @type {?} */ childDef = this.elView.def.nodes[i]; + if (childDef.flags & 20224 /* CatProvider */) { + tokens.push(/** @type {?} */ ((childDef.provider)).token); + } + i += childDef.childCount; + } + } + return tokens; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "references", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ references = {}; + if (this.elDef) { + collectReferences(this.elView, this.elDef, references); + for (var /** @type {?} */ i = this.elDef.index + 1; i <= this.elDef.index + this.elDef.childCount; i++) { + var /** @type {?} */ childDef = this.elView.def.nodes[i]; + if (childDef.flags & 20224 /* CatProvider */) { + collectReferences(this.elView, childDef, references); + } + i += childDef.childCount; + } + } + return references; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "componentRenderElement", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ elData = findHostElement(this.elOrCompView); + return elData ? elData.renderElement : undefined; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DebugContext_.prototype, "renderNode", { + /** + * @return {?} + */ + get: function () { + return this.nodeDef.flags & 2 /* TypeText */ ? renderNode(this.view, this.nodeDef) : + renderNode(this.elView, this.elDef); + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} console + * @param {...?} values + * @return {?} + */ + DebugContext_.prototype.logError = function (console) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var /** @type {?} */ logViewDef; + var /** @type {?} */ logNodeIndex; + if (this.nodeDef.flags & 2 /* TypeText */) { + logViewDef = this.view.def; + logNodeIndex = this.nodeDef.index; + } + else { + logViewDef = this.elView.def; + logNodeIndex = this.elDef.index; + } + // Note: we only generate a log function for text and element nodes + // to make the generated code as small as possible. + var /** @type {?} */ renderNodeIndex = getRenderNodeIndex(logViewDef, logNodeIndex); + var /** @type {?} */ currRenderNodeIndex = -1; + var /** @type {?} */ nodeLogger = function () { + currRenderNodeIndex++; + if (currRenderNodeIndex === renderNodeIndex) { + return (_a = console.error).bind.apply(_a, [console].concat(values)); + } + else { + return NOOP; + } + var _a; + }; /** @type {?} */ + ((logViewDef.factory))(nodeLogger); + if (currRenderNodeIndex < renderNodeIndex) { + console.error('Illegal state: the ViewDefinitionFactory did not call the logger!'); + console.error.apply(console, values); + } + }; + return DebugContext_; +}()); +/** + * @param {?} viewDef + * @param {?} nodeIndex + * @return {?} + */ +function getRenderNodeIndex(viewDef$$1, nodeIndex) { + var /** @type {?} */ renderNodeIndex = -1; + for (var /** @type {?} */ i = 0; i <= nodeIndex; i++) { + var /** @type {?} */ nodeDef = viewDef$$1.nodes[i]; + if (nodeDef.flags & 3 /* CatRenderNode */) { + renderNodeIndex++; + } + } + return renderNodeIndex; +} +/** + * @param {?} view + * @return {?} + */ +function findHostElement(view) { + while (view && !isComponentView(view)) { + view = ((view.parent)); + } + if (view.parent) { + return asElementData(view.parent, /** @type {?} */ ((viewParentEl(view))).index); + } + return null; +} +/** + * @param {?} view + * @param {?} nodeDef + * @param {?} references + * @return {?} + */ +function collectReferences(view, nodeDef, references) { + for (var /** @type {?} */ refName in nodeDef.references) { + references[refName] = getQueryValue(view, nodeDef, nodeDef.references[refName]); + } +} +/** + * @param {?} action + * @param {?} fn + * @param {?} self + * @param {?} args + * @return {?} + */ +function callWithDebugContext(action, fn, self, args) { + var /** @type {?} */ oldAction = _currentAction; + var /** @type {?} */ oldView = _currentView; + var /** @type {?} */ oldNodeIndex = _currentNodeIndex; + try { + _currentAction = action; + var /** @type {?} */ result = fn.apply(self, args); + _currentView = oldView; + _currentNodeIndex = oldNodeIndex; + _currentAction = oldAction; + return result; + } + catch (e) { + if (isViewDebugError(e) || !_currentView) { + throw e; + } + throw viewWrappedDebugError(e, /** @type {?} */ ((getCurrentDebugContext()))); + } +} +/** + * @return {?} + */ +function getCurrentDebugContext() { + return _currentView ? new DebugContext_(_currentView, _currentNodeIndex) : null; +} +var DebugRendererFactory2 = (function () { + /** + * @param {?} delegate + */ + function DebugRendererFactory2(delegate) { + this.delegate = delegate; + } + /** + * @param {?} element + * @param {?} renderData + * @return {?} + */ + DebugRendererFactory2.prototype.createRenderer = function (element, renderData) { + return new DebugRenderer2(this.delegate.createRenderer(element, renderData)); + }; + /** + * @return {?} + */ + DebugRendererFactory2.prototype.begin = function () { + if (this.delegate.begin) { + this.delegate.begin(); + } + }; + /** + * @return {?} + */ + DebugRendererFactory2.prototype.end = function () { + if (this.delegate.end) { + this.delegate.end(); + } + }; + /** + * @return {?} + */ + DebugRendererFactory2.prototype.whenRenderingDone = function () { + if (this.delegate.whenRenderingDone) { + return this.delegate.whenRenderingDone(); + } + return Promise.resolve(null); + }; + return DebugRendererFactory2; +}()); +var DebugRenderer2 = (function () { + /** + * @param {?} delegate + */ + function DebugRenderer2(delegate) { + this.delegate = delegate; + } + Object.defineProperty(DebugRenderer2.prototype, "data", { + /** + * @return {?} + */ + get: function () { return this.delegate.data; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} node + * @return {?} + */ + DebugRenderer2.prototype.destroyNode = function (node) { + removeDebugNodeFromIndex(/** @type {?} */ ((getDebugNode(node)))); + if (this.delegate.destroyNode) { + this.delegate.destroyNode(node); + } + }; + /** + * @return {?} + */ + DebugRenderer2.prototype.destroy = function () { this.delegate.destroy(); }; + /** + * @param {?} name + * @param {?=} namespace + * @return {?} + */ + DebugRenderer2.prototype.createElement = function (name, namespace) { + var /** @type {?} */ el = this.delegate.createElement(name, namespace); + var /** @type {?} */ debugCtx = getCurrentDebugContext(); + if (debugCtx) { + var /** @type {?} */ debugEl = new DebugElement(el, null, debugCtx); + debugEl.name = name; + indexDebugNode(debugEl); + } + return el; + }; + /** + * @param {?} value + * @return {?} + */ + DebugRenderer2.prototype.createComment = function (value) { + var /** @type {?} */ comment = this.delegate.createComment(value); + var /** @type {?} */ debugCtx = getCurrentDebugContext(); + if (debugCtx) { + indexDebugNode(new DebugNode(comment, null, debugCtx)); + } + return comment; + }; + /** + * @param {?} value + * @return {?} + */ + DebugRenderer2.prototype.createText = function (value) { + var /** @type {?} */ text = this.delegate.createText(value); + var /** @type {?} */ debugCtx = getCurrentDebugContext(); + if (debugCtx) { + indexDebugNode(new DebugNode(text, null, debugCtx)); + } + return text; + }; + /** + * @param {?} parent + * @param {?} newChild + * @return {?} + */ + DebugRenderer2.prototype.appendChild = function (parent, newChild) { + var /** @type {?} */ debugEl = getDebugNode(parent); + var /** @type {?} */ debugChildEl = getDebugNode(newChild); + if (debugEl && debugChildEl && debugEl instanceof DebugElement) { + debugEl.addChild(debugChildEl); + } + this.delegate.appendChild(parent, newChild); + }; + /** + * @param {?} parent + * @param {?} newChild + * @param {?} refChild + * @return {?} + */ + DebugRenderer2.prototype.insertBefore = function (parent, newChild, refChild) { + var /** @type {?} */ debugEl = getDebugNode(parent); + var /** @type {?} */ debugChildEl = getDebugNode(newChild); + var /** @type {?} */ debugRefEl = ((getDebugNode(refChild))); + if (debugEl && debugChildEl && debugEl instanceof DebugElement) { + debugEl.insertBefore(debugRefEl, debugChildEl); + } + this.delegate.insertBefore(parent, newChild, refChild); + }; + /** + * @param {?} parent + * @param {?} oldChild + * @return {?} + */ + DebugRenderer2.prototype.removeChild = function (parent, oldChild) { + var /** @type {?} */ debugEl = getDebugNode(parent); + var /** @type {?} */ debugChildEl = getDebugNode(oldChild); + if (debugEl && debugChildEl && debugEl instanceof DebugElement) { + debugEl.removeChild(debugChildEl); + } + this.delegate.removeChild(parent, oldChild); + }; + /** + * @param {?} selectorOrNode + * @return {?} + */ + DebugRenderer2.prototype.selectRootElement = function (selectorOrNode) { + var /** @type {?} */ el = this.delegate.selectRootElement(selectorOrNode); + var /** @type {?} */ debugCtx = getCurrentDebugContext(); + if (debugCtx) { + indexDebugNode(new DebugElement(el, null, debugCtx)); + } + return el; + }; + /** + * @param {?} el + * @param {?} name + * @param {?} value + * @param {?=} namespace + * @return {?} + */ + DebugRenderer2.prototype.setAttribute = function (el, name, value, namespace) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + var /** @type {?} */ fullName = namespace ? namespace + ':' + name : name; + debugEl.attributes[fullName] = value; + } + this.delegate.setAttribute(el, name, value, namespace); + }; + /** + * @param {?} el + * @param {?} name + * @param {?=} namespace + * @return {?} + */ + DebugRenderer2.prototype.removeAttribute = function (el, name, namespace) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + var /** @type {?} */ fullName = namespace ? namespace + ':' + name : name; + debugEl.attributes[fullName] = null; + } + this.delegate.removeAttribute(el, name, namespace); + }; + /** + * @param {?} el + * @param {?} name + * @return {?} + */ + DebugRenderer2.prototype.addClass = function (el, name) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + debugEl.classes[name] = true; + } + this.delegate.addClass(el, name); + }; + /** + * @param {?} el + * @param {?} name + * @return {?} + */ + DebugRenderer2.prototype.removeClass = function (el, name) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + debugEl.classes[name] = false; + } + this.delegate.removeClass(el, name); + }; + /** + * @param {?} el + * @param {?} style + * @param {?} value + * @param {?} flags + * @return {?} + */ + DebugRenderer2.prototype.setStyle = function (el, style, value, flags) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + debugEl.styles[style] = value; + } + this.delegate.setStyle(el, style, value, flags); + }; + /** + * @param {?} el + * @param {?} style + * @param {?} flags + * @return {?} + */ + DebugRenderer2.prototype.removeStyle = function (el, style, flags) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + debugEl.styles[style] = null; + } + this.delegate.removeStyle(el, style, flags); + }; + /** + * @param {?} el + * @param {?} name + * @param {?} value + * @return {?} + */ + DebugRenderer2.prototype.setProperty = function (el, name, value) { + var /** @type {?} */ debugEl = getDebugNode(el); + if (debugEl && debugEl instanceof DebugElement) { + debugEl.properties[name] = value; + } + this.delegate.setProperty(el, name, value); + }; + /** + * @param {?} target + * @param {?} eventName + * @param {?} callback + * @return {?} + */ + DebugRenderer2.prototype.listen = function (target, eventName, callback) { + if (typeof target !== 'string') { + var /** @type {?} */ debugEl = getDebugNode(target); + if (debugEl) { + debugEl.listeners.push(new EventListener(eventName, callback)); + } + } + return this.delegate.listen(target, eventName, callback); + }; + /** + * @param {?} node + * @return {?} + */ + DebugRenderer2.prototype.parentNode = function (node) { return this.delegate.parentNode(node); }; + /** + * @param {?} node + * @return {?} + */ + DebugRenderer2.prototype.nextSibling = function (node) { return this.delegate.nextSibling(node); }; + /** + * @param {?} node + * @param {?} value + * @return {?} + */ + DebugRenderer2.prototype.setValue = function (node, value) { return this.delegate.setValue(node, value); }; + return DebugRenderer2; +}()); +/** + * @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 + */ +/** + * @param {?} override + * @return {?} + */ +function overrideProvider(override) { + initServicesIfNeeded(); + return Services.overrideProvider(override); +} +/** + * @return {?} + */ +function clearProviderOverrides() { + initServicesIfNeeded(); + return Services.clearProviderOverrides(); +} +/** + * @param {?} ngModuleType + * @param {?} bootstrapComponents + * @param {?} defFactory + * @return {?} + */ +function createNgModuleFactory(ngModuleType, bootstrapComponents, defFactory) { + return new NgModuleFactory_(ngModuleType, bootstrapComponents, defFactory); +} +var NgModuleFactory_ = (function (_super) { + __WEBPACK_IMPORTED_MODULE_0_tslib__["a" /* __extends */](NgModuleFactory_, _super); + /** + * @param {?} moduleType + * @param {?} _bootstrapComponents + * @param {?} _ngModuleDefFactory + */ + function NgModuleFactory_(moduleType, _bootstrapComponents, _ngModuleDefFactory) { + var _this = + // Attention: this ctor is called as top level function. + // Putting any logic in here will destroy closure tree shaking! + _super.call(this) || this; + _this.moduleType = moduleType; + _this._bootstrapComponents = _bootstrapComponents; + _this._ngModuleDefFactory = _ngModuleDefFactory; + return _this; + } + /** + * @param {?} parentInjector + * @return {?} + */ + NgModuleFactory_.prototype.create = function (parentInjector) { + initServicesIfNeeded(); + var /** @type {?} */ def = resolveDefinition(this._ngModuleDefFactory); + return Services.createNgModuleRef(this.moduleType, parentInjector || Injector.NULL, this._bootstrapComponents, def); + }; + return NgModuleFactory_; +}(NgModuleFactory)); +/** + * @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 + */ +/** + * @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. + */ +/** + * `trigger` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `trigger` Creates an animation trigger which will a list of {\@link state state} and {\@link + * transition transition} entries that will be evaluated when the expression bound to the trigger + * changes. + * + * Triggers are registered within the component annotation data under the {\@link + * Component#animations animations section}. An animation trigger can be placed on an element + * within a template by referencing the name of the trigger followed by the expression value that the + * trigger is bound to (in the form of `[\@triggerName]="expression"`. + * + * ### Usage + * + * `trigger` will create an animation trigger reference based on the provided `name` value. The + * provided `animation` value is expected to be an array consisting of {\@link state state} and {\@link + * transition transition} declarations. + * + * ```typescript + * \@Component({ + * selector: 'my-component', + * templateUrl: 'my-component-tpl.html', + * animations: [ + * trigger("myAnimationTrigger", [ + * state(...), + * state(...), + * transition(...), + * transition(...) + * ]) + * ] + * }) + * class MyComponent { + * myStatusExp = "something"; + * } + * ``` + * + * The template associated with this component will make use of the `myAnimationTrigger` animation + * trigger by binding to an element within its template code. + * + * ```html + * + *
    ...
    + * tools/gulp-tasks/validate-commit-message.js ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} name + * @param {?} definitions + * @return {?} + */ +function trigger$1(name, definitions) { + return { type: 7 /* Trigger */, name: name, definitions: definitions, options: {} }; +} +/** + * `animate` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `animate` specifies an animation step that will apply the provided `styles` data for a given + * amount of time based on the provided `timing` expression value. Calls to `animate` are expected + * to be used within {\@link sequence an animation sequence}, {\@link group group}, or {\@link + * transition transition}. + * + * ### Usage + * + * The `animate` function accepts two input parameters: `timing` and `styles`: + * + * - `timing` is a string based value that can be a combination of a duration with optional delay + * and easing values. The format for the expression breaks down to `duration delay easing` + * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000, + * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the + * `duration` value in millisecond form. + * - `styles` is the style input data which can either be a call to {\@link style style} or {\@link + * keyframes keyframes}. If left empty then the styles from the destination state will be collected + * and used (this is useful when describing an animation step that will complete an animation by + * {\@link transition#the-final-animate-call animating to the final state}). + * + * ```typescript + * // various functions for specifying timing data + * animate(500, style(...)) + * animate("1s", style(...)) + * animate("100ms 0.5s", style(...)) + * animate("5s ease", style(...)) + * animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...)) + * + * // either style() of keyframes() can be used + * animate(500, style({ background: "red" })) + * animate(500, keyframes([ + * style({ background: "blue" })), + * style({ background: "red" })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} timings + * @param {?=} styles + * @return {?} + */ +function animate$1(timings, styles) { + if (styles === void 0) { styles = null; } + return { type: 4 /* Animate */, styles: styles, timings: timings }; +} +/** + * `group` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are + * useful when a series of styles must be animated/closed off at different starting/ending times. + * + * The `group` function can either be used within a {\@link sequence sequence} or a {\@link transition + * transition} and it will only continue to the next instruction once all of the inner animation + * steps have completed. + * + * ### Usage + * + * The `steps` data that is passed into the `group` animation function can either consist of {\@link + * style style} or {\@link animate animate} function calls. Each call to `style()` or `animate()` + * within a group will be executed instantly (use {\@link keyframes keyframes} or a {\@link + * animate#usage animate() with a delay value} to offset styles to be applied at a later time). + * + * ```typescript + * group([ + * animate("1s", { background: "black" })) + * animate("2s", { color: "white" })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function group$1(steps, options) { + if (options === void 0) { options = null; } + return { type: 3 /* Group */, steps: steps, options: options }; +} +/** + * `sequence` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by + * default when an array is passed as animation data into {\@link transition transition}.) + * + * The `sequence` function can either be used within a {\@link group group} or a {\@link transition + * transition} and it will only continue to the next instruction once each of the inner animation + * steps have completed. + * + * To perform animation styling in parallel with other animation steps then have a look at the + * {\@link group group} animation function. + * + * ### Usage + * + * The `steps` data that is passed into the `sequence` animation function can either consist of + * {\@link style style} or {\@link animate animate} function calls. A call to `style()` will apply the + * provided styling data immediately while a call to `animate()` will apply its styling data over a + * given time depending on its timing data. + * + * ```typescript + * sequence([ + * style({ opacity: 0 })), + * animate("1s", { opacity: 1 })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function sequence$1(steps, options) { + if (options === void 0) { options = null; } + return { type: 2 /* Sequence */, steps: steps, options: options }; +} +/** + * `style` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `style` declares a key/value object containing CSS properties/styles that can then be used for + * {\@link state animation states}, within an {\@link sequence animation sequence}, or as styling data + * for both {\@link animate animate} and {\@link keyframes keyframes}. + * + * ### Usage + * + * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs + * to be defined. + * + * ```typescript + * // string values are used for css properties + * style({ background: "red", color: "blue" }) + * + * // numerical (pixel) values are also supported + * style({ width: 100, height: 0 }) + * ``` + * + * #### Auto-styles (using `*`) + * + * When an asterix (`*`) character is used as a value then it will be detected from the element + * being animated and applied as animation data when the animation starts. + * + * This feature proves useful for a state depending on layout and/or environment factors; in such + * cases the styles are calculated just before the animation starts. + * + * ```typescript + * // the steps below will animate from 0 to the + * // actual height of the element + * style({ height: 0 }), + * animate("1s", style({ height: "*" })) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} tokens + * @return {?} + */ +function style$1(tokens) { + return { type: 6 /* Style */, styles: tokens, offset: null }; +} +/** + * `state` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `state` declares an animation state within the given trigger. When a state is active within a + * component then its associated styles will persist on the element that the trigger is attached to + * (even when the animation ends). + * + * To animate between states, have a look at the animation {\@link transition transition} DSL + * function. To register states to an animation trigger please have a look at the {\@link trigger + * trigger} function. + * + * #### The `void` state + * + * The `void` state value is a reserved word that angular uses to determine when the element is not + * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the + * associated element is void). + * + * #### The `*` (default) state + * + * The `*` state (when styled) is a fallback state that will be used if the state that is being + * animated is not declared within the trigger. + * + * ### Usage + * + * `state` will declare an animation state with its associated styles + * within the given trigger. + * + * - `stateNameExpr` can be one or more state names separated by commas. + * - `styles` refers to the {\@link style styling data} that will be persisted on the element once + * the state has been reached. + * + * ```typescript + * // "void" is a reserved name for a state and is used to represent + * // the state in which an element is detached from from the application. + * state("void", style({ height: 0 })) + * + * // user-defined states + * state("closed", style({ height: 0 })) + * state("open, visible", style({ height: "*" })) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} name + * @param {?} styles + * @return {?} + */ +function state$1(name, styles) { + return { type: 0 /* State */, name: name, styles: styles }; +} +/** + * `keyframes` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `keyframes` specifies a collection of {\@link style style} entries each optionally characterized + * by an `offset` value. + * + * ### Usage + * + * The `keyframes` animation function is designed to be used alongside the {\@link animate animate} + * animation function. Instead of applying animations from where they are currently to their + * destination, keyframes can describe how each style entry is applied and at what point within the + * animation arc (much like CSS Keyframe Animations do). + * + * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what + * percentage of the animate time the styles will be applied. + * + * ```typescript + * // the provided offset values describe when each backgroundColor value is applied. + * animate("5s", keyframes([ + * style({ backgroundColor: "red", offset: 0 }), + * style({ backgroundColor: "blue", offset: 0.2 }), + * style({ backgroundColor: "orange", offset: 0.3 }), + * style({ backgroundColor: "black", offset: 1 }) + * ])) + * ``` + * + * Alternatively, if there are no `offset` values used within the style entries then the offsets + * will be calculated automatically. + * + * ```typescript + * animate("5s", keyframes([ + * style({ backgroundColor: "red" }) // offset = 0 + * style({ backgroundColor: "blue" }) // offset = 0.33 + * style({ backgroundColor: "orange" }) // offset = 0.66 + * style({ backgroundColor: "black" }) // offset = 1 + * ])) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @return {?} + */ +function keyframes$1(steps) { + return { type: 5 /* Keyframes */, steps: steps }; +} +/** + * `transition` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. If this information is new, please navigate to the {\@link + * Component#animations component animations metadata page} to gain a better understanding of + * how animations in Angular are used. + * + * `transition` declares the {\@link sequence sequence of animation steps} that will be run when the + * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 => + * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting + * and/or ending state). + * + * A function can also be provided as the `stateChangeExpr` argument for a transition and this + * function will be executed each time a state change occurs. If the value returned within the + * function is true then the associated animation will be run. + * + * Animation transitions are placed within an {\@link trigger animation trigger}. For an transition + * to animate to a state value and persist its styles then one or more {\@link state animation + * states} is expected to be defined. + * + * ### Usage + * + * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on + * what the previous state is and what the current state has become. In other words, if a transition + * is defined that matches the old/current state criteria then the associated animation will be + * triggered. + * + * ```typescript + * // all transition/state changes are defined within an animation trigger + * trigger("myAnimationTrigger", [ + * // if a state is defined then its styles will be persisted when the + * // animation has fully completed itself + * state("on", style({ background: "green" })), + * state("off", style({ background: "grey" })), + * + * // a transition animation that will be kicked off when the state value + * // bound to "myAnimationTrigger" changes from "on" to "off" + * transition("on => off", animate(500)), + * + * // it is also possible to do run the same animation for both directions + * transition("on <=> off", animate(500)), + * + * // or to define multiple states pairs separated by commas + * transition("on => off, off => void", animate(500)), + * + * // this is a catch-all state change for when an element is inserted into + * // the page and the destination state is unknown + * transition("void => *", [ + * style({ opacity: 0 }), + * animate(500) + * ]), + * + * // this will capture a state change between any states + * transition("* => *", animate("1s 0s")), + * + * // you can also go full out and include a function + * transition((fromState, toState) => { + * // when `true` then it will allow the animation below to be invoked + * return fromState == "off" && toState == "on"; + * }, animate("1s 0s")) + * ]) + * ``` + * + * The template associated with this component will make use of the `myAnimationTrigger` animation + * trigger by binding to an element within its template code. + * + * ```html + * + *
    ...
    + * ``` + * + * #### The final `animate` call + * + * If the final step within the transition steps is a call to `animate()` that **only** uses a + * timing value with **no style data** then it will be automatically used as the final animation arc + * for the element to animate itself to the final state. This involves an automatic mix of + * adding/removing CSS styles so that the element will be in the exact state it should be for the + * applied state to be presented correctly. + * + * ``` + * // start off by hiding the element, but make sure that it animates properly to whatever state + * // is currently active for "myAnimationTrigger" + * transition("void => *", [ + * style({ opacity: 0 }), + * animate(500) + * ]) + * ``` + * + * ### Transition Aliases (`:enter` and `:leave`) + * + * Given that enter (insertion) and leave (removal) animations are so common, the `transition` + * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `* + * => void` state changes. + * + * ``` + * transition(":enter", [ + * style({ opacity: 0 }), + * animate(500, style({ opacity: 1 })) + * ]) + * transition(":leave", [ + * animate(500, style({ opacity: 0 })) + * ]) + * ``` + * + * {\@example core/animation/ts/dsl/animation_example.ts region='Component'} + * + * \@experimental Animation support is experimental. + * @param {?} stateChangeExpr + * @param {?} steps + * @param {?=} options + * @return {?} + */ +function transition$1(stateChangeExpr, steps, options) { + if (options === void 0) { options = null; } + return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options: options }; +} +/** + * `animation` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. + * + * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later + * invoked in another animation or sequence. Reusable animations are designed to make use of + * animation parameters and the produced animation can be used via the `useAnimation` method. + * + * ``` + * var fadeAnimation = animation([ + * style({ opacity: '{{ start }}' }), + * animate('{{ time }}', + * style({ opacity: '{{ end }}')) + * ], { params: { time: '1000ms', start: 0, end: 1 }}); + * ``` + * + * If parameters are attached to an animation then they act as **default parameter values**. When an + * animation is invoked via `useAnimation` then parameter values are allowed to be passed in + * directly. If any of the passed in parameter values are missing then the default values will be + * used. + * + * ``` + * useAnimation(fadeAnimation, { + * params: { + * time: '2s', + * start: 1, + * end: 0 + * } + * }) + * ``` + * + * If one or more parameter values are missing before animated then an error will be thrown. + * + * \@experimental Animation support is experimental. + * @param {?} steps + * @param {?=} options + * @return {?} + */ +/** + * `animateChild` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. It works by allowing a queried element to execute its own + * animation within the animation sequence. + * + * Each time an animation is triggered in angular, the parent animation + * will always get priority and any child animations will be blocked. In order + * for a child animation to run, the parent animation must query each of the elements + * containing child animations and then allow the animations to run using `animateChild`. + * + * The example HTML code below shows both parent and child elements that have animation + * triggers that will execute at the same time. + * + * ```html + * + * + *
    + * + *
    + *
    Hello
    + *
    + * one + *
    + *
    + * two + *
    + *
    + * three + *
    + *
    + * ``` + * + * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate + * because it has priority. However, using `query` and `animateChild` each of the inner animations + * can also fire: + * + * ```ts + * // parent-child.component.ts + * import {trigger, transition, animate, style, query, animateChild} from '\@angular/animations'; + * \@Component({ + * selector: 'parent-child-component', + * animations: [ + * trigger('parentAnimation', [ + * transition('false => true', [ + * query('header', [ + * style({ opacity: 0 }), + * animate(500, style({ opacity: 1 })) + * ]), + * query('\@childAnimation', [ + * animateChild() + * ]) + * ]) + * ]), + * trigger('childAnimation', [ + * transition('false => true', [ + * style({ opacity: 0 }), + * animate(500, style({ opacity: 1 })) + * ]) + * ]) + * ] + * }) + * class ParentChildCmp { + * exp: boolean = false; + * } + * ``` + * + * In the animation code above, when the `parentAnimation` transition kicks off it first queries to + * find the header element and fades it in. It then finds each of the sub elements that contain the + * `\@childAnimation` trigger and then allows for their animations to fire. + * + * This example can be further extended by using stagger: + * + * ```ts + * query('\@childAnimation', stagger(100, [ + * animateChild() + * ])) + * ``` + * + * Now each of the sub animations start off with respect to the `100ms` staggering step. + * + * ## The first frame of child animations + * When sub animations are executed using `animateChild` the animation engine will always apply the + * first frame of every sub animation immediately at the start of the animation sequence. This way + * the parent animation does not need to set any initial styling data on the sub elements before the + * sub animations kick off. + * + * In the example above the first frame of the `childAnimation`'s `false => true` transition + * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation` + * animation transition sequence starts. Only then when the `\@childAnimation` is queried and called + * with `animateChild` will it then animate to its destination of `opacity: 1`. + * + * Note that this feature designed to be used alongside {\@link query query()} and it will only work + * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes + * and transitions are not handled by this API). + * + * \@experimental Animation support is experimental. + * @param {?=} options + * @return {?} + */ +/** + * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. It is used to kick off a reusable animation that is created using {\@link + * animation animation()}. + * + * \@experimental Animation support is experimental. + * @param {?} animation + * @param {?=} options + * @return {?} + */ +/** + * `query` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. + * + * query() is used to find one or more inner elements within the current element that is + * being animated within the sequence. The provided animation steps are applied + * to the queried element (by default, an array is provided, then this will be + * treated as an animation sequence). + * + * ### Usage + * + * query() is designed to collect mutiple elements and works internally by using + * `element.querySelectorAll`. An additional options object can be provided which + * can be used to limit the total amount of items to be collected. + * + * ```js + * query('div', [ + * animate(...), + * animate(...) + * ], { limit: 1 }) + * ``` + * + * query(), by default, will throw an error when zero items are found. If a query + * has the `optional` flag set to true then this error will be ignored. + * + * ```js + * query('.some-element-that-may-not-be-there', [ + * animate(...), + * animate(...) + * ], { optional: true }) + * ``` + * + * ### Special Selector Values + * + * The selector value within a query can collect elements that contain angular-specific + * characteristics + * using special pseudo-selectors tokens. + * + * These include: + * + * - Querying for newly inserted/removed elements using `query(":enter")`/`query(":leave")` + * - Querying all currently animating elements using `query(":animating")` + * - Querying elements that contain an animation trigger using `query("\@triggerName")` + * - Querying all elements that contain an animation triggers using `query("\@*")` + * - Including the current element into the animation sequence using `query(":self")` + * + * + * Each of these pseudo-selector tokens can be merged together into a combined query selector + * string: + * + * ``` + * query(':self, .record:enter, .record:leave, \@subTrigger', [...]) + * ``` + * + * ### Demo + * + * ``` + * \@Component({ + * selector: 'inner', + * template: ` + *
    + *

    Title

    + *
    + * Blah blah blah + *
    + *
    + * `, + * animations: [ + * trigger('queryAnimation', [ + * transition('* => goAnimate', [ + * // hide the inner elements + * query('h1', style({ opacity: 0 })), + * query('.content', style({ opacity: 0 })), + * + * // animate the inner elements in, one by one + * query('h1', animate(1000, style({ opacity: 1 })), + * query('.content', animate(1000, style({ opacity: 1 })), + * ]) + * ]) + * ] + * }) + * class Cmp { + * exp = ''; + * + * goAnimate() { + * this.exp = 'goAnimate'; + * } + * } + * ``` + * + * \@experimental Animation support is experimental. + * @param {?} selector + * @param {?} animation + * @param {?=} options + * @return {?} + */ +/** + * `stagger` is an animation-specific function that is designed to be used inside of Angular's + * animation DSL language. It is designed to be used inside of an animation {\@link query query()} + * and works by issuing a timing gap between after each queried item is animated. + * + * ### Usage + * + * In the example below there is a container element that wraps a list of items stamped out + * by an ngFor. The container element contains an animation trigger that will later be set + * to query for each of the inner items. + * + * ```html + * + * + *
    + *
    + *
    + * {{ item }} + *
    + *
    + * ``` + * + * The component code for this looks as such: + * + * ```ts + * import {trigger, transition, style, animate, query, stagger} from '\@angular/animations'; + * \@Component({ + * templateUrl: 'list.component.html', + * animations: [ + * trigger('listAnimation', [ + * //... + * ]) + * ] + * }) + * class ListComponent { + * items = []; + * + * showItems() { + * this.items = [0,1,2,3,4]; + * } + * + * hideItems() { + * this.items = []; + * } + * + * toggle() { + * this.items.length ? this.hideItems() : this.showItems(); + * } + * } + * ``` + * + * And now for the animation trigger code: + * + * ```ts + * trigger('listAnimation', [ + * transition('* => *', [ // each time the binding value changes + * query(':leave', [ + * stagger(100, [ + * animate('0.5s', style({ opacity: 0 })) + * ]) + * ]), + * query(':enter', [ + * style({ opacity: 0 }), + * stagger(100, [ + * animate('0.5s', style({ opacity: 1 })) + * ]) + * ]) + * ]) + * ]) + * ``` + * + * Now each time the items are added/removed then either the opacity + * fade-in animation will run or each removed item will be faded out. + * When either of these animations occur then a stagger effect will be + * applied after each item's animation is started. + * + * \@experimental Animation support is experimental. + * @param {?} timings + * @param {?} animation + * @return {?} + */ +/** + * @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 + */ +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + */ +var AUTO_STYLE$$1 = '*'; +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} name + * @param {?} definitions + * @return {?} + */ +function trigger$$1(name, definitions) { + return trigger$1(name, definitions); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} timings + * @param {?=} styles + * @return {?} + */ +function animate$$1(timings, styles) { + return animate$1(timings, styles); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} steps + * @return {?} + */ +function group$$1(steps) { + return group$1(steps); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} steps + * @return {?} + */ +function sequence$$1(steps) { + return sequence$1(steps); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} tokens + * @return {?} + */ +function style$$1(tokens) { + return style$1(tokens); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} name + * @param {?} styles + * @return {?} + */ +function state$$1(name, styles) { + return state$1(name, styles); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} steps + * @return {?} + */ +function keyframes$$1(steps) { + return keyframes$1(steps); +} +/** + * @deprecated This symbol has moved. Please Import from \@angular/animations instead! + * @param {?} stateChangeExpr + * @param {?} steps + * @return {?} + */ +function transition$$1(stateChangeExpr, steps) { + return transition$1(stateChangeExpr, steps); +} +/** + * @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 from which you should import all public core APIs. + */ +/** + * @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 core package. + */ +// This file only reexports content of the `src` folder. Keep it that way. +/** + * Generated bundle index. Do not edit. + */ + +//# sourceMappingURL=core.es5.js.map + +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(13))) + /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { @@ -312,10 +15216,10 @@ var __extends = (this && this.__extends) || function (d, b) { function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; -var isFunction_1 = __webpack_require__(189); -var Subscription_1 = __webpack_require__(14); -var Observer_1 = __webpack_require__(409); -var rxSubscriber_1 = __webpack_require__(185); +var isFunction_1 = __webpack_require__(85); +var Subscription_1 = __webpack_require__(7); +var Observer_1 = __webpack_require__(164); +var rxSubscriber_1 = __webpack_require__(86); /** * Implements the {@link Observer} interface and extends the * {@link Subscription} class. While the {@link Observer} is the public API for @@ -368,7 +15272,7 @@ var Subscriber = (function (_super) { break; } } - Subscriber.prototype[rxSubscriber_1.$$rxSubscriber] = function () { return this; }; + Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; }; /** * A static factory for a Subscriber, given a (potentially partial) definition * of an Observer. @@ -470,14 +15374,16 @@ var SafeSubscriber = (function (_super) { next = observerOrNext; } else if (observerOrNext) { - context = observerOrNext; next = observerOrNext.next; error = observerOrNext.error; complete = observerOrNext.complete; - if (isFunction_1.isFunction(context.unsubscribe)) { - this.add(context.unsubscribe.bind(context)); + if (observerOrNext !== Observer_1.empty) { + context = Object.create(observerOrNext); + if (isFunction_1.isFunction(context.unsubscribe)) { + this.add(context.unsubscribe.bind(context)); + } + context.unsubscribe = this.unsubscribe.bind(this); } - context.unsubscribe = this.unsubscribe.bind(this); } this._context = context; this._next = next; @@ -520,15 +15426,17 @@ var SafeSubscriber = (function (_super) { } }; SafeSubscriber.prototype.complete = function () { + var _this = this; if (!this.isStopped) { var _parentSubscriber = this._parentSubscriber; if (this._complete) { + var wrappedComplete = function () { return _this._complete.call(_this._context); }; if (!_parentSubscriber.syncErrorThrowable) { - this.__tryOrUnsub(this._complete); + this.__tryOrUnsub(wrappedComplete); this.unsubscribe(); } else { - this.__tryOrSetError(_parentSubscriber, this._complete); + this.__tryOrSetError(_parentSubscriber, wrappedComplete); this.unsubscribe(); } } @@ -609,14 +15517,14 @@ exports.OuterSubscriber = OuterSubscriber; "use strict"; -var root_1 = __webpack_require__(20); -var isArrayLike_1 = __webpack_require__(438); -var isPromise_1 = __webpack_require__(440); -var isObject_1 = __webpack_require__(439); -var Observable_1 = __webpack_require__(1); -var iterator_1 = __webpack_require__(127); -var InnerSubscriber_1 = __webpack_require__(762); -var observable_1 = __webpack_require__(128); +var root_1 = __webpack_require__(11); +var isArrayLike_1 = __webpack_require__(165); +var isPromise_1 = __webpack_require__(166); +var isObject_1 = __webpack_require__(162); +var Observable_1 = __webpack_require__(0); +var iterator_1 = __webpack_require__(65); +var InnerSubscriber_1 = __webpack_require__(308); +var observable_1 = __webpack_require__(87); function subscribeToResult(outerSubscriber, result, outerValue, outerIndex) { var destination = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex); if (destination.closed) { @@ -653,8 +15561,8 @@ function subscribeToResult(outerSubscriber, result, outerValue, outerIndex) { }); return destination; } - else if (result && typeof result[iterator_1.$$iterator] === 'function') { - var iterator = result[iterator_1.$$iterator](); + else if (result && typeof result[iterator_1.iterator] === 'function') { + var iterator = result[iterator_1.iterator](); do { var item = iterator.next(); if (item.done) { @@ -667,8 +15575,8 @@ function subscribeToResult(outerSubscriber, result, outerValue, outerIndex) { } } while (true); } - else if (result && typeof result[observable_1.$$observable] === 'function') { - var obs = result[observable_1.$$observable](); + else if (result && typeof result[observable_1.observable] === 'function') { + var obs = result[observable_1.observable](); if (typeof obs.subscribe !== 'function') { destination.error(new TypeError('Provided object does not correctly implement Symbol.observable')); } @@ -691,3457 +15599,29 @@ exports.subscribeToResult = subscribeToResult; /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export scheduleMicroTask */ -/* unused harmony export global */ -/* unused harmony export getTypeNameForDebugging */ -/* harmony export (immutable) */ __webpack_exports__["c"] = isPresent; -/* harmony export (immutable) */ __webpack_exports__["d"] = isBlank; -/* harmony export (immutable) */ __webpack_exports__["a"] = isStrictStringMap; -/* harmony export (immutable) */ __webpack_exports__["e"] = stringify; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return NumberWrapper; }); -/* unused harmony export looseIdentical */ -/* harmony export (immutable) */ __webpack_exports__["f"] = isJsObject; -/* unused harmony export print */ -/* unused harmony export warn */ -/* unused harmony export setValueOnPath */ -/* harmony export (immutable) */ __webpack_exports__["g"] = getSymbolIterator; -/* harmony export (immutable) */ __webpack_exports__["b"] = isPrimitive; -/* harmony export (immutable) */ __webpack_exports__["h"] = escapeRegExp; -/** - * @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 /** @type {?} */ globalScope; -if (typeof window === 'undefined') { - if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { - // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492 - globalScope = (self); - } - else { - globalScope = (global); - } -} -else { - globalScope = (window); -} -/** - * @param {?} fn - * @return {?} - */ -function scheduleMicroTask(fn) { - Zone.current.scheduleMicroTask('scheduleMicrotask', fn); -} -// Need to declare a new variable for global here since TypeScript -// exports the original value of the symbol. -var /** @type {?} */ _global = globalScope; - -/** - * @param {?} type - * @return {?} - */ -function getTypeNameForDebugging(type) { - return type['name'] || typeof type; -} -// TODO: remove calls to assert in production environment -// Note: Can't just export this and import in in other files -// as `assert` is a reserved keyword in Dart -_global.assert = function assert(condition) { - // TODO: to be fixed properly via #2830, noop for now -}; -/** - * @param {?} obj - * @return {?} - */ -function isPresent(obj) { - return obj != null; -} -/** - * @param {?} obj - * @return {?} - */ -function isBlank(obj) { - return obj == null; -} -var /** @type {?} */ STRING_MAP_PROTO = Object.getPrototypeOf({}); -/** - * @param {?} obj - * @return {?} - */ -function isStrictStringMap(obj) { - return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO; -} -/** - * @param {?} token - * @return {?} - */ -function stringify(token) { - if (typeof token === 'string') { - return token; - } - if (token == null) { - return '' + token; - } - if (token.overriddenName) { - return "" + token.overriddenName; - } - if (token.name) { - return "" + token.name; - } - var /** @type {?} */ res = token.toString(); - var /** @type {?} */ newLineIndex = res.indexOf('\n'); - return newLineIndex === -1 ? res : res.substring(0, newLineIndex); -} -var NumberWrapper = (function () { - function NumberWrapper() { - } - /** - * @param {?} text - * @return {?} - */ - NumberWrapper.parseIntAutoRadix = function (text) { - var /** @type {?} */ result = parseInt(text); - if (isNaN(result)) { - throw new Error('Invalid integer literal when parsing ' + text); - } - return result; - }; - /** - * @param {?} value - * @return {?} - */ - NumberWrapper.isNumeric = function (value) { return !isNaN(value - parseFloat(value)); }; - return NumberWrapper; -}()); -/** - * @param {?} a - * @param {?} b - * @return {?} - */ -function looseIdentical(a, b) { - return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b); -} -/** - * @param {?} o - * @return {?} - */ -function isJsObject(o) { - return o !== null && (typeof o === 'function' || typeof o === 'object'); -} -/** - * @param {?} obj - * @return {?} - */ -function print(obj) { - // tslint:disable-next-line:no-console - console.log(obj); -} -/** - * @param {?} obj - * @return {?} - */ -function warn(obj) { - console.warn(obj); -} -/** - * @param {?} global - * @param {?} path - * @param {?} value - * @return {?} - */ -function setValueOnPath(global, path, value) { - var /** @type {?} */ parts = path.split('.'); - var /** @type {?} */ obj = global; - while (parts.length > 1) { - var /** @type {?} */ name_1 = parts.shift(); - if (obj.hasOwnProperty(name_1) && obj[name_1] != null) { - obj = obj[name_1]; - } - else { - obj = obj[name_1] = {}; - } - } - if (obj === undefined || obj === null) { - obj = {}; - } - obj[parts.shift()] = value; -} -var /** @type {?} */ _symbolIterator = null; -/** - * @return {?} - */ -function getSymbolIterator() { - if (!_symbolIterator) { - if (((globalScope)).Symbol && Symbol.iterator) { - _symbolIterator = Symbol.iterator; - } - else { - // es6-shim specific logic - var /** @type {?} */ keys = Object.getOwnPropertyNames(Map.prototype); - for (var /** @type {?} */ i = 0; i < keys.length; ++i) { - var /** @type {?} */ key = keys[i]; - if (key !== 'entries' && key !== 'size' && - ((Map)).prototype[key] === Map.prototype['entries']) { - _symbolIterator = key; - } - } - } - } - return _symbolIterator; -} -/** - * @param {?} obj - * @return {?} - */ -function isPrimitive(obj) { - return !isJsObject(obj); -} -/** - * @param {?} s - * @return {?} - */ -function escapeRegExp(s) { - return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); -} -//# sourceMappingURL=lang.js.map -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(15))) - -/***/ }), -/* 6 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__["a"] = scheduleMicroTask; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return _global; }); -/* harmony export (immutable) */ __webpack_exports__["l"] = getTypeNameForDebugging; -/* harmony export (immutable) */ __webpack_exports__["b"] = isPresent; -/* harmony export (immutable) */ __webpack_exports__["k"] = isBlank; -/* unused harmony export isStrictStringMap */ -/* harmony export (immutable) */ __webpack_exports__["c"] = stringify; -/* unused harmony export NumberWrapper */ -/* harmony export (immutable) */ __webpack_exports__["j"] = looseIdentical; -/* harmony export (immutable) */ __webpack_exports__["d"] = isJsObject; -/* harmony export (immutable) */ __webpack_exports__["f"] = print; -/* harmony export (immutable) */ __webpack_exports__["g"] = warn; -/* unused harmony export setValueOnPath */ -/* harmony export (immutable) */ __webpack_exports__["e"] = getSymbolIterator; -/* harmony export (immutable) */ __webpack_exports__["i"] = isPrimitive; -/* unused harmony export escapeRegExp */ -/** - * @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 /** @type {?} */ globalScope; -if (typeof window === 'undefined') { - if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { - // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492 - globalScope = (self); - } - else { - globalScope = (global); - } -} -else { - globalScope = (window); -} -/** - * @param {?} fn - * @return {?} - */ -function scheduleMicroTask(fn) { - Zone.current.scheduleMicroTask('scheduleMicrotask', fn); -} -// Need to declare a new variable for global here since TypeScript -// exports the original value of the symbol. -var /** @type {?} */ _global = globalScope; - -/** - * @param {?} type - * @return {?} - */ -function getTypeNameForDebugging(type) { - return type['name'] || typeof type; -} -// TODO: remove calls to assert in production environment -// Note: Can't just export this and import in in other files -// as `assert` is a reserved keyword in Dart -_global.assert = function assert(condition) { - // TODO: to be fixed properly via #2830, noop for now -}; -/** - * @param {?} obj - * @return {?} - */ -function isPresent(obj) { - return obj != null; -} -/** - * @param {?} obj - * @return {?} - */ -function isBlank(obj) { - return obj == null; -} -var /** @type {?} */ STRING_MAP_PROTO = Object.getPrototypeOf({}); -/** - * @param {?} obj - * @return {?} - */ -function isStrictStringMap(obj) { - return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO; -} -/** - * @param {?} token - * @return {?} - */ -function stringify(token) { - if (typeof token === 'string') { - return token; - } - if (token == null) { - return '' + token; - } - if (token.overriddenName) { - return "" + token.overriddenName; - } - if (token.name) { - return "" + token.name; - } - var /** @type {?} */ res = token.toString(); - var /** @type {?} */ newLineIndex = res.indexOf('\n'); - return newLineIndex === -1 ? res : res.substring(0, newLineIndex); -} -var NumberWrapper = (function () { - function NumberWrapper() { - } - /** - * @param {?} text - * @return {?} - */ - NumberWrapper.parseIntAutoRadix = function (text) { - var /** @type {?} */ result = parseInt(text); - if (isNaN(result)) { - throw new Error('Invalid integer literal when parsing ' + text); - } - return result; - }; - /** - * @param {?} value - * @return {?} - */ - NumberWrapper.isNumeric = function (value) { return !isNaN(value - parseFloat(value)); }; - return NumberWrapper; -}()); -/** - * @param {?} a - * @param {?} b - * @return {?} - */ -function looseIdentical(a, b) { - return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b); -} -/** - * @param {?} o - * @return {?} - */ -function isJsObject(o) { - return o !== null && (typeof o === 'function' || typeof o === 'object'); -} -/** - * @param {?} obj - * @return {?} - */ -function print(obj) { - // tslint:disable-next-line:no-console - console.log(obj); -} -/** - * @param {?} obj - * @return {?} - */ -function warn(obj) { - console.warn(obj); -} -/** - * @param {?} global - * @param {?} path - * @param {?} value - * @return {?} - */ -function setValueOnPath(global, path, value) { - var /** @type {?} */ parts = path.split('.'); - var /** @type {?} */ obj = global; - while (parts.length > 1) { - var /** @type {?} */ name_1 = parts.shift(); - if (obj.hasOwnProperty(name_1) && obj[name_1] != null) { - obj = obj[name_1]; - } - else { - obj = obj[name_1] = {}; - } - } - if (obj === undefined || obj === null) { - obj = {}; - } - obj[parts.shift()] = value; -} -var /** @type {?} */ _symbolIterator = null; -/** - * @return {?} - */ -function getSymbolIterator() { - if (!_symbolIterator) { - if (((globalScope)).Symbol && Symbol.iterator) { - _symbolIterator = Symbol.iterator; - } - else { - // es6-shim specific logic - var /** @type {?} */ keys = Object.getOwnPropertyNames(Map.prototype); - for (var /** @type {?} */ i = 0; i < keys.length; ++i) { - var /** @type {?} */ key = keys[i]; - if (key !== 'entries' && key !== 'size' && - ((Map)).prototype[key] === Map.prototype['entries']) { - _symbolIterator = key; - } - } - } - } - return _symbolIterator; -} -/** - * @param {?} obj - * @return {?} - */ -function isPrimitive(obj) { - return !isJsObject(obj); -} -/** - * @param {?} s - * @return {?} - */ -function escapeRegExp(s) { - return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); -} -//# sourceMappingURL=lang.js.map -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(15))) - -/***/ }), -/* 7 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_lang__ = __webpack_require__(5); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return TypeModifier; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return Type; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return BuiltinTypeName; }); -/* unused harmony export BuiltinType */ -/* unused harmony export ExpressionType */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return ArrayType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return MapType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return DYNAMIC_TYPE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return BOOL_TYPE; }); -/* unused harmony export INT_TYPE */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return NUMBER_TYPE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return STRING_TYPE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return FUNCTION_TYPE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "T", function() { return NULL_TYPE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return BinaryOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return Expression; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return BuiltinVar; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return ReadVarExpr; }); -/* unused harmony export WriteVarExpr */ -/* unused harmony export WriteKeyExpr */ -/* unused harmony export WritePropExpr */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "O", function() { return BuiltinMethod; }); -/* unused harmony export InvokeMethodExpr */ -/* unused harmony export InvokeFunctionExpr */ -/* unused harmony export InstantiateExpr */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return LiteralExpr; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Q", function() { return ExternalExpr; }); -/* unused harmony export ConditionalExpr */ -/* unused harmony export NotExpr */ -/* unused harmony export CastExpr */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return FnParam; }); -/* unused harmony export FunctionExpr */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return BinaryOperatorExpr; }); -/* unused harmony export ReadPropExpr */ -/* unused harmony export ReadKeyExpr */ -/* unused harmony export LiteralArrayExpr */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return LiteralMapEntry; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return LiteralMapExpr; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return THIS_EXPR; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return SUPER_EXPR; }); -/* unused harmony export CATCH_ERROR_VAR */ -/* unused harmony export CATCH_STACK_VAR */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return NULL_EXPR; }); -/* unused harmony export TYPED_NULL_EXPR */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return StmtModifier; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "R", function() { return Statement; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return DeclareVarStmt; }); -/* unused harmony export DeclareFunctionStmt */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return ExpressionStatement; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return ReturnStatement; }); -/* unused harmony export AbstractClassPart */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ClassField; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return ClassMethod; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return ClassGetter; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return ClassStmt; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return IfStmt; }); -/* unused harmony export CommentStmt */ -/* unused harmony export TryCatchStmt */ -/* unused harmony export ThrowStmt */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return ExpressionTransformer; }); -/* unused harmony export RecursiveExpressionVisitor */ -/* harmony export (immutable) */ __webpack_exports__["I"] = replaceVarInExpression; -/* harmony export (immutable) */ __webpack_exports__["w"] = findReadVarNames; -/* harmony export (immutable) */ __webpack_exports__["a"] = variable; -/* harmony export (immutable) */ __webpack_exports__["g"] = importExpr; -/* harmony export (immutable) */ __webpack_exports__["d"] = importType; -/* harmony export (immutable) */ __webpack_exports__["P"] = expressionType; -/* harmony export (immutable) */ __webpack_exports__["h"] = literalArr; -/* harmony export (immutable) */ __webpack_exports__["l"] = literalMap; -/* harmony export (immutable) */ __webpack_exports__["v"] = not; -/* harmony export (immutable) */ __webpack_exports__["B"] = fn; -/* harmony export (immutable) */ __webpack_exports__["f"] = literal; -/** - * @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 __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -}; - -var TypeModifier = {}; -TypeModifier.Const = 0; -TypeModifier[TypeModifier.Const] = "Const"; -/** - * @abstract - */ -var Type = (function () { - /** - * @param {?=} modifiers - */ - function Type(modifiers) { - if (modifiers === void 0) { modifiers = null; } - this.modifiers = modifiers; - if (!modifiers) { - this.modifiers = []; - } - } - /** - * @abstract - * @param {?} visitor - * @param {?} context - * @return {?} - */ - Type.prototype.visitType = function (visitor, context) { }; - /** - * @param {?} modifier - * @return {?} - */ - Type.prototype.hasModifier = function (modifier) { return this.modifiers.indexOf(modifier) !== -1; }; - return Type; -}()); -function Type_tsickle_Closure_declarations() { - /** @type {?} */ - Type.prototype.modifiers; -} -var BuiltinTypeName = {}; -BuiltinTypeName.Dynamic = 0; -BuiltinTypeName.Bool = 1; -BuiltinTypeName.String = 2; -BuiltinTypeName.Int = 3; -BuiltinTypeName.Number = 4; -BuiltinTypeName.Function = 5; -BuiltinTypeName.Null = 6; -BuiltinTypeName[BuiltinTypeName.Dynamic] = "Dynamic"; -BuiltinTypeName[BuiltinTypeName.Bool] = "Bool"; -BuiltinTypeName[BuiltinTypeName.String] = "String"; -BuiltinTypeName[BuiltinTypeName.Int] = "Int"; -BuiltinTypeName[BuiltinTypeName.Number] = "Number"; -BuiltinTypeName[BuiltinTypeName.Function] = "Function"; -BuiltinTypeName[BuiltinTypeName.Null] = "Null"; -var BuiltinType = (function (_super) { - __extends(BuiltinType, _super); - /** - * @param {?} name - * @param {?=} modifiers - */ - function BuiltinType(name, modifiers) { - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.name = name; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - BuiltinType.prototype.visitType = function (visitor, context) { - return visitor.visitBuiltintType(this, context); - }; - return BuiltinType; -}(Type)); -function BuiltinType_tsickle_Closure_declarations() { - /** @type {?} */ - BuiltinType.prototype.name; -} -var ExpressionType = (function (_super) { - __extends(ExpressionType, _super); - /** - * @param {?} value - * @param {?=} typeParams - * @param {?=} modifiers - */ - function ExpressionType(value, typeParams, modifiers) { - if (typeParams === void 0) { typeParams = null; } - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.value = value; - this.typeParams = typeParams; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ExpressionType.prototype.visitType = function (visitor, context) { - return visitor.visitExpressionType(this, context); - }; - return ExpressionType; -}(Type)); -function ExpressionType_tsickle_Closure_declarations() { - /** @type {?} */ - ExpressionType.prototype.value; - /** @type {?} */ - ExpressionType.prototype.typeParams; -} -var ArrayType = (function (_super) { - __extends(ArrayType, _super); - /** - * @param {?} of - * @param {?=} modifiers - */ - function ArrayType(of, modifiers) { - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.of = of; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ArrayType.prototype.visitType = function (visitor, context) { - return visitor.visitArrayType(this, context); - }; - return ArrayType; -}(Type)); -function ArrayType_tsickle_Closure_declarations() { - /** @type {?} */ - ArrayType.prototype.of; -} -var MapType = (function (_super) { - __extends(MapType, _super); - /** - * @param {?} valueType - * @param {?=} modifiers - */ - function MapType(valueType, modifiers) { - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.valueType = valueType; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - MapType.prototype.visitType = function (visitor, context) { return visitor.visitMapType(this, context); }; - return MapType; -}(Type)); -function MapType_tsickle_Closure_declarations() { - /** @type {?} */ - MapType.prototype.valueType; -} -var /** @type {?} */ DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic); -var /** @type {?} */ BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool); -var /** @type {?} */ INT_TYPE = new BuiltinType(BuiltinTypeName.Int); -var /** @type {?} */ NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number); -var /** @type {?} */ STRING_TYPE = new BuiltinType(BuiltinTypeName.String); -var /** @type {?} */ FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function); -var /** @type {?} */ NULL_TYPE = new BuiltinType(BuiltinTypeName.Null); -var BinaryOperator = {}; -BinaryOperator.Equals = 0; -BinaryOperator.NotEquals = 1; -BinaryOperator.Identical = 2; -BinaryOperator.NotIdentical = 3; -BinaryOperator.Minus = 4; -BinaryOperator.Plus = 5; -BinaryOperator.Divide = 6; -BinaryOperator.Multiply = 7; -BinaryOperator.Modulo = 8; -BinaryOperator.And = 9; -BinaryOperator.Or = 10; -BinaryOperator.Lower = 11; -BinaryOperator.LowerEquals = 12; -BinaryOperator.Bigger = 13; -BinaryOperator.BiggerEquals = 14; -BinaryOperator[BinaryOperator.Equals] = "Equals"; -BinaryOperator[BinaryOperator.NotEquals] = "NotEquals"; -BinaryOperator[BinaryOperator.Identical] = "Identical"; -BinaryOperator[BinaryOperator.NotIdentical] = "NotIdentical"; -BinaryOperator[BinaryOperator.Minus] = "Minus"; -BinaryOperator[BinaryOperator.Plus] = "Plus"; -BinaryOperator[BinaryOperator.Divide] = "Divide"; -BinaryOperator[BinaryOperator.Multiply] = "Multiply"; -BinaryOperator[BinaryOperator.Modulo] = "Modulo"; -BinaryOperator[BinaryOperator.And] = "And"; -BinaryOperator[BinaryOperator.Or] = "Or"; -BinaryOperator[BinaryOperator.Lower] = "Lower"; -BinaryOperator[BinaryOperator.LowerEquals] = "LowerEquals"; -BinaryOperator[BinaryOperator.Bigger] = "Bigger"; -BinaryOperator[BinaryOperator.BiggerEquals] = "BiggerEquals"; -/** - * @abstract - */ -var Expression = (function () { - /** - * @param {?} type - */ - function Expression(type) { - this.type = type; - } - /** - * @abstract - * @param {?} visitor - * @param {?} context - * @return {?} - */ - Expression.prototype.visitExpression = function (visitor, context) { }; - /** - * @param {?} name - * @return {?} - */ - Expression.prototype.prop = function (name) { return new ReadPropExpr(this, name); }; - /** - * @param {?} index - * @param {?=} type - * @return {?} - */ - Expression.prototype.key = function (index, type) { - if (type === void 0) { type = null; } - return new ReadKeyExpr(this, index, type); - }; - /** - * @param {?} name - * @param {?} params - * @return {?} - */ - Expression.prototype.callMethod = function (name, params) { - return new InvokeMethodExpr(this, name, params); - }; - /** - * @param {?} params - * @return {?} - */ - Expression.prototype.callFn = function (params) { return new InvokeFunctionExpr(this, params); }; - /** - * @param {?} params - * @param {?=} type - * @return {?} - */ - Expression.prototype.instantiate = function (params, type) { - if (type === void 0) { type = null; } - return new InstantiateExpr(this, params, type); - }; - /** - * @param {?} trueCase - * @param {?=} falseCase - * @return {?} - */ - Expression.prototype.conditional = function (trueCase, falseCase) { - if (falseCase === void 0) { falseCase = null; } - return new ConditionalExpr(this, trueCase, falseCase); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.equals = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.notEquals = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.identical = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.notIdentical = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.minus = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.plus = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.divide = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.multiply = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.modulo = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.and = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.And, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.or = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.lower = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.lowerEquals = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.bigger = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs); - }; - /** - * @param {?} rhs - * @return {?} - */ - Expression.prototype.biggerEquals = function (rhs) { - return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs); - }; - /** - * @return {?} - */ - Expression.prototype.isBlank = function () { - // Note: We use equals by purpose here to compare to null and undefined in JS. - // We use the typed null to allow strictNullChecks to narrow types. - return this.equals(TYPED_NULL_EXPR); - }; - /** - * @param {?} type - * @return {?} - */ - Expression.prototype.cast = function (type) { return new CastExpr(this, type); }; - /** - * @return {?} - */ - Expression.prototype.toStmt = function () { return new ExpressionStatement(this); }; - return Expression; -}()); -function Expression_tsickle_Closure_declarations() { - /** @type {?} */ - Expression.prototype.type; -} -var BuiltinVar = {}; -BuiltinVar.This = 0; -BuiltinVar.Super = 1; -BuiltinVar.CatchError = 2; -BuiltinVar.CatchStack = 3; -BuiltinVar[BuiltinVar.This] = "This"; -BuiltinVar[BuiltinVar.Super] = "Super"; -BuiltinVar[BuiltinVar.CatchError] = "CatchError"; -BuiltinVar[BuiltinVar.CatchStack] = "CatchStack"; -var ReadVarExpr = (function (_super) { - __extends(ReadVarExpr, _super); - /** - * @param {?} name - * @param {?=} type - */ - function ReadVarExpr(name, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - if (typeof name === 'string') { - this.name = name; - this.builtin = null; - } - else { - this.name = null; - this.builtin = name; - } - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ReadVarExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitReadVarExpr(this, context); - }; - /** - * @param {?} value - * @return {?} - */ - ReadVarExpr.prototype.set = function (value) { return new WriteVarExpr(this.name, value); }; - return ReadVarExpr; -}(Expression)); -function ReadVarExpr_tsickle_Closure_declarations() { - /** @type {?} */ - ReadVarExpr.prototype.name; - /** @type {?} */ - ReadVarExpr.prototype.builtin; -} -var WriteVarExpr = (function (_super) { - __extends(WriteVarExpr, _super); - /** - * @param {?} name - * @param {?} value - * @param {?=} type - */ - function WriteVarExpr(name, value, type) { - if (type === void 0) { type = null; } - _super.call(this, type || value.type); - this.name = name; - this.value = value; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - WriteVarExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitWriteVarExpr(this, context); - }; - /** - * @param {?=} type - * @param {?=} modifiers - * @return {?} - */ - WriteVarExpr.prototype.toDeclStmt = function (type, modifiers) { - if (type === void 0) { type = null; } - if (modifiers === void 0) { modifiers = null; } - return new DeclareVarStmt(this.name, this.value, type, modifiers); - }; - return WriteVarExpr; -}(Expression)); -function WriteVarExpr_tsickle_Closure_declarations() { - /** @type {?} */ - WriteVarExpr.prototype.value; - /** @type {?} */ - WriteVarExpr.prototype.name; -} -var WriteKeyExpr = (function (_super) { - __extends(WriteKeyExpr, _super); - /** - * @param {?} receiver - * @param {?} index - * @param {?} value - * @param {?=} type - */ - function WriteKeyExpr(receiver, index, value, type) { - if (type === void 0) { type = null; } - _super.call(this, type || value.type); - this.receiver = receiver; - this.index = index; - this.value = value; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - WriteKeyExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitWriteKeyExpr(this, context); - }; - return WriteKeyExpr; -}(Expression)); -function WriteKeyExpr_tsickle_Closure_declarations() { - /** @type {?} */ - WriteKeyExpr.prototype.value; - /** @type {?} */ - WriteKeyExpr.prototype.receiver; - /** @type {?} */ - WriteKeyExpr.prototype.index; -} -var WritePropExpr = (function (_super) { - __extends(WritePropExpr, _super); - /** - * @param {?} receiver - * @param {?} name - * @param {?} value - * @param {?=} type - */ - function WritePropExpr(receiver, name, value, type) { - if (type === void 0) { type = null; } - _super.call(this, type || value.type); - this.receiver = receiver; - this.name = name; - this.value = value; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - WritePropExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitWritePropExpr(this, context); - }; - return WritePropExpr; -}(Expression)); -function WritePropExpr_tsickle_Closure_declarations() { - /** @type {?} */ - WritePropExpr.prototype.value; - /** @type {?} */ - WritePropExpr.prototype.receiver; - /** @type {?} */ - WritePropExpr.prototype.name; -} -var BuiltinMethod = {}; -BuiltinMethod.ConcatArray = 0; -BuiltinMethod.SubscribeObservable = 1; -BuiltinMethod.Bind = 2; -BuiltinMethod[BuiltinMethod.ConcatArray] = "ConcatArray"; -BuiltinMethod[BuiltinMethod.SubscribeObservable] = "SubscribeObservable"; -BuiltinMethod[BuiltinMethod.Bind] = "Bind"; -var InvokeMethodExpr = (function (_super) { - __extends(InvokeMethodExpr, _super); - /** - * @param {?} receiver - * @param {?} method - * @param {?} args - * @param {?=} type - */ - function InvokeMethodExpr(receiver, method, args, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.receiver = receiver; - this.args = args; - if (typeof method === 'string') { - this.name = method; - this.builtin = null; - } - else { - this.name = null; - this.builtin = method; - } - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - InvokeMethodExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitInvokeMethodExpr(this, context); - }; - return InvokeMethodExpr; -}(Expression)); -function InvokeMethodExpr_tsickle_Closure_declarations() { - /** @type {?} */ - InvokeMethodExpr.prototype.name; - /** @type {?} */ - InvokeMethodExpr.prototype.builtin; - /** @type {?} */ - InvokeMethodExpr.prototype.receiver; - /** @type {?} */ - InvokeMethodExpr.prototype.args; -} -var InvokeFunctionExpr = (function (_super) { - __extends(InvokeFunctionExpr, _super); - /** - * @param {?} fn - * @param {?} args - * @param {?=} type - */ - function InvokeFunctionExpr(fn, args, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.fn = fn; - this.args = args; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - InvokeFunctionExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitInvokeFunctionExpr(this, context); - }; - return InvokeFunctionExpr; -}(Expression)); -function InvokeFunctionExpr_tsickle_Closure_declarations() { - /** @type {?} */ - InvokeFunctionExpr.prototype.fn; - /** @type {?} */ - InvokeFunctionExpr.prototype.args; -} -var InstantiateExpr = (function (_super) { - __extends(InstantiateExpr, _super); - /** - * @param {?} classExpr - * @param {?} args - * @param {?=} type - */ - function InstantiateExpr(classExpr, args, type) { - _super.call(this, type); - this.classExpr = classExpr; - this.args = args; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - InstantiateExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitInstantiateExpr(this, context); - }; - return InstantiateExpr; -}(Expression)); -function InstantiateExpr_tsickle_Closure_declarations() { - /** @type {?} */ - InstantiateExpr.prototype.classExpr; - /** @type {?} */ - InstantiateExpr.prototype.args; -} -var LiteralExpr = (function (_super) { - __extends(LiteralExpr, _super); - /** - * @param {?} value - * @param {?=} type - */ - function LiteralExpr(value, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.value = value; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - LiteralExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitLiteralExpr(this, context); - }; - return LiteralExpr; -}(Expression)); -function LiteralExpr_tsickle_Closure_declarations() { - /** @type {?} */ - LiteralExpr.prototype.value; -} -var ExternalExpr = (function (_super) { - __extends(ExternalExpr, _super); - /** - * @param {?} value - * @param {?=} type - * @param {?=} typeParams - */ - function ExternalExpr(value, type, typeParams) { - if (type === void 0) { type = null; } - if (typeParams === void 0) { typeParams = null; } - _super.call(this, type); - this.value = value; - this.typeParams = typeParams; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ExternalExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitExternalExpr(this, context); - }; - return ExternalExpr; -}(Expression)); -function ExternalExpr_tsickle_Closure_declarations() { - /** @type {?} */ - ExternalExpr.prototype.value; - /** @type {?} */ - ExternalExpr.prototype.typeParams; -} -var ConditionalExpr = (function (_super) { - __extends(ConditionalExpr, _super); - /** - * @param {?} condition - * @param {?} trueCase - * @param {?=} falseCase - * @param {?=} type - */ - function ConditionalExpr(condition, trueCase, falseCase, type) { - if (falseCase === void 0) { falseCase = null; } - if (type === void 0) { type = null; } - _super.call(this, type || trueCase.type); - this.condition = condition; - this.falseCase = falseCase; - this.trueCase = trueCase; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ConditionalExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitConditionalExpr(this, context); - }; - return ConditionalExpr; -}(Expression)); -function ConditionalExpr_tsickle_Closure_declarations() { - /** @type {?} */ - ConditionalExpr.prototype.trueCase; - /** @type {?} */ - ConditionalExpr.prototype.condition; - /** @type {?} */ - ConditionalExpr.prototype.falseCase; -} -var NotExpr = (function (_super) { - __extends(NotExpr, _super); - /** - * @param {?} condition - */ - function NotExpr(condition) { - _super.call(this, BOOL_TYPE); - this.condition = condition; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - NotExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitNotExpr(this, context); - }; - return NotExpr; -}(Expression)); -function NotExpr_tsickle_Closure_declarations() { - /** @type {?} */ - NotExpr.prototype.condition; -} -var CastExpr = (function (_super) { - __extends(CastExpr, _super); - /** - * @param {?} value - * @param {?} type - */ - function CastExpr(value, type) { - _super.call(this, type); - this.value = value; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - CastExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitCastExpr(this, context); - }; - return CastExpr; -}(Expression)); -function CastExpr_tsickle_Closure_declarations() { - /** @type {?} */ - CastExpr.prototype.value; -} -var FnParam = (function () { - /** - * @param {?} name - * @param {?=} type - */ - function FnParam(name, type) { - if (type === void 0) { type = null; } - this.name = name; - this.type = type; - } - return FnParam; -}()); -function FnParam_tsickle_Closure_declarations() { - /** @type {?} */ - FnParam.prototype.name; - /** @type {?} */ - FnParam.prototype.type; -} -var FunctionExpr = (function (_super) { - __extends(FunctionExpr, _super); - /** - * @param {?} params - * @param {?} statements - * @param {?=} type - */ - function FunctionExpr(params, statements, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.params = params; - this.statements = statements; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - FunctionExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitFunctionExpr(this, context); - }; - /** - * @param {?} name - * @param {?=} modifiers - * @return {?} - */ - FunctionExpr.prototype.toDeclStmt = function (name, modifiers) { - if (modifiers === void 0) { modifiers = null; } - return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers); - }; - return FunctionExpr; -}(Expression)); -function FunctionExpr_tsickle_Closure_declarations() { - /** @type {?} */ - FunctionExpr.prototype.params; - /** @type {?} */ - FunctionExpr.prototype.statements; -} -var BinaryOperatorExpr = (function (_super) { - __extends(BinaryOperatorExpr, _super); - /** - * @param {?} operator - * @param {?} lhs - * @param {?} rhs - * @param {?=} type - */ - function BinaryOperatorExpr(operator, lhs, rhs, type) { - if (type === void 0) { type = null; } - _super.call(this, type || lhs.type); - this.operator = operator; - this.rhs = rhs; - this.lhs = lhs; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - BinaryOperatorExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitBinaryOperatorExpr(this, context); - }; - return BinaryOperatorExpr; -}(Expression)); -function BinaryOperatorExpr_tsickle_Closure_declarations() { - /** @type {?} */ - BinaryOperatorExpr.prototype.lhs; - /** @type {?} */ - BinaryOperatorExpr.prototype.operator; - /** @type {?} */ - BinaryOperatorExpr.prototype.rhs; -} -var ReadPropExpr = (function (_super) { - __extends(ReadPropExpr, _super); - /** - * @param {?} receiver - * @param {?} name - * @param {?=} type - */ - function ReadPropExpr(receiver, name, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.receiver = receiver; - this.name = name; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ReadPropExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitReadPropExpr(this, context); - }; - /** - * @param {?} value - * @return {?} - */ - ReadPropExpr.prototype.set = function (value) { - return new WritePropExpr(this.receiver, this.name, value); - }; - return ReadPropExpr; -}(Expression)); -function ReadPropExpr_tsickle_Closure_declarations() { - /** @type {?} */ - ReadPropExpr.prototype.receiver; - /** @type {?} */ - ReadPropExpr.prototype.name; -} -var ReadKeyExpr = (function (_super) { - __extends(ReadKeyExpr, _super); - /** - * @param {?} receiver - * @param {?} index - * @param {?=} type - */ - function ReadKeyExpr(receiver, index, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.receiver = receiver; - this.index = index; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ReadKeyExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitReadKeyExpr(this, context); - }; - /** - * @param {?} value - * @return {?} - */ - ReadKeyExpr.prototype.set = function (value) { - return new WriteKeyExpr(this.receiver, this.index, value); - }; - return ReadKeyExpr; -}(Expression)); -function ReadKeyExpr_tsickle_Closure_declarations() { - /** @type {?} */ - ReadKeyExpr.prototype.receiver; - /** @type {?} */ - ReadKeyExpr.prototype.index; -} -var LiteralArrayExpr = (function (_super) { - __extends(LiteralArrayExpr, _super); - /** - * @param {?} entries - * @param {?=} type - */ - function LiteralArrayExpr(entries, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.entries = entries; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - LiteralArrayExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitLiteralArrayExpr(this, context); - }; - return LiteralArrayExpr; -}(Expression)); -function LiteralArrayExpr_tsickle_Closure_declarations() { - /** @type {?} */ - LiteralArrayExpr.prototype.entries; -} -var LiteralMapEntry = (function () { - /** - * @param {?} key - * @param {?} value - * @param {?=} quoted - */ - function LiteralMapEntry(key, value, quoted) { - if (quoted === void 0) { quoted = false; } - this.key = key; - this.value = value; - this.quoted = quoted; - } - return LiteralMapEntry; -}()); -function LiteralMapEntry_tsickle_Closure_declarations() { - /** @type {?} */ - LiteralMapEntry.prototype.key; - /** @type {?} */ - LiteralMapEntry.prototype.value; - /** @type {?} */ - LiteralMapEntry.prototype.quoted; -} -var LiteralMapExpr = (function (_super) { - __extends(LiteralMapExpr, _super); - /** - * @param {?} entries - * @param {?=} type - */ - function LiteralMapExpr(entries, type) { - if (type === void 0) { type = null; } - _super.call(this, type); - this.entries = entries; - this.valueType = null; - if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["c" /* isPresent */])(type)) { - this.valueType = type.valueType; - } - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - LiteralMapExpr.prototype.visitExpression = function (visitor, context) { - return visitor.visitLiteralMapExpr(this, context); - }; - return LiteralMapExpr; -}(Expression)); -function LiteralMapExpr_tsickle_Closure_declarations() { - /** @type {?} */ - LiteralMapExpr.prototype.valueType; - /** @type {?} */ - LiteralMapExpr.prototype.entries; -} -var /** @type {?} */ THIS_EXPR = new ReadVarExpr(BuiltinVar.This); -var /** @type {?} */ SUPER_EXPR = new ReadVarExpr(BuiltinVar.Super); -var /** @type {?} */ CATCH_ERROR_VAR = new ReadVarExpr(BuiltinVar.CatchError); -var /** @type {?} */ CATCH_STACK_VAR = new ReadVarExpr(BuiltinVar.CatchStack); -var /** @type {?} */ NULL_EXPR = new LiteralExpr(null, null); -var /** @type {?} */ TYPED_NULL_EXPR = new LiteralExpr(null, NULL_TYPE); -var StmtModifier = {}; -StmtModifier.Final = 0; -StmtModifier.Private = 1; -StmtModifier[StmtModifier.Final] = "Final"; -StmtModifier[StmtModifier.Private] = "Private"; -/** - * @abstract - */ -var Statement = (function () { - /** - * @param {?=} modifiers - */ - function Statement(modifiers) { - if (modifiers === void 0) { modifiers = null; } - this.modifiers = modifiers; - if (!modifiers) { - this.modifiers = []; - } - } - /** - * @abstract - * @param {?} visitor - * @param {?} context - * @return {?} - */ - Statement.prototype.visitStatement = function (visitor, context) { }; - /** - * @param {?} modifier - * @return {?} - */ - Statement.prototype.hasModifier = function (modifier) { return this.modifiers.indexOf(modifier) !== -1; }; - return Statement; -}()); -function Statement_tsickle_Closure_declarations() { - /** @type {?} */ - Statement.prototype.modifiers; -} -var DeclareVarStmt = (function (_super) { - __extends(DeclareVarStmt, _super); - /** - * @param {?} name - * @param {?} value - * @param {?=} type - * @param {?=} modifiers - */ - function DeclareVarStmt(name, value, type, modifiers) { - if (type === void 0) { type = null; } - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.name = name; - this.value = value; - this.type = type || value.type; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - DeclareVarStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitDeclareVarStmt(this, context); - }; - return DeclareVarStmt; -}(Statement)); -function DeclareVarStmt_tsickle_Closure_declarations() { - /** @type {?} */ - DeclareVarStmt.prototype.type; - /** @type {?} */ - DeclareVarStmt.prototype.name; - /** @type {?} */ - DeclareVarStmt.prototype.value; -} -var DeclareFunctionStmt = (function (_super) { - __extends(DeclareFunctionStmt, _super); - /** - * @param {?} name - * @param {?} params - * @param {?} statements - * @param {?=} type - * @param {?=} modifiers - */ - function DeclareFunctionStmt(name, params, statements, type, modifiers) { - if (type === void 0) { type = null; } - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.name = name; - this.params = params; - this.statements = statements; - this.type = type; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - DeclareFunctionStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitDeclareFunctionStmt(this, context); - }; - return DeclareFunctionStmt; -}(Statement)); -function DeclareFunctionStmt_tsickle_Closure_declarations() { - /** @type {?} */ - DeclareFunctionStmt.prototype.name; - /** @type {?} */ - DeclareFunctionStmt.prototype.params; - /** @type {?} */ - DeclareFunctionStmt.prototype.statements; - /** @type {?} */ - DeclareFunctionStmt.prototype.type; -} -var ExpressionStatement = (function (_super) { - __extends(ExpressionStatement, _super); - /** - * @param {?} expr - */ - function ExpressionStatement(expr) { - _super.call(this); - this.expr = expr; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ExpressionStatement.prototype.visitStatement = function (visitor, context) { - return visitor.visitExpressionStmt(this, context); - }; - return ExpressionStatement; -}(Statement)); -function ExpressionStatement_tsickle_Closure_declarations() { - /** @type {?} */ - ExpressionStatement.prototype.expr; -} -var ReturnStatement = (function (_super) { - __extends(ReturnStatement, _super); - /** - * @param {?} value - */ - function ReturnStatement(value) { - _super.call(this); - this.value = value; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ReturnStatement.prototype.visitStatement = function (visitor, context) { - return visitor.visitReturnStmt(this, context); - }; - return ReturnStatement; -}(Statement)); -function ReturnStatement_tsickle_Closure_declarations() { - /** @type {?} */ - ReturnStatement.prototype.value; -} -var AbstractClassPart = (function () { - /** - * @param {?=} type - * @param {?} modifiers - */ - function AbstractClassPart(type, modifiers) { - if (type === void 0) { type = null; } - this.type = type; - this.modifiers = modifiers; - if (!modifiers) { - this.modifiers = []; - } - } - /** - * @param {?} modifier - * @return {?} - */ - AbstractClassPart.prototype.hasModifier = function (modifier) { return this.modifiers.indexOf(modifier) !== -1; }; - return AbstractClassPart; -}()); -function AbstractClassPart_tsickle_Closure_declarations() { - /** @type {?} */ - AbstractClassPart.prototype.type; - /** @type {?} */ - AbstractClassPart.prototype.modifiers; -} -var ClassField = (function (_super) { - __extends(ClassField, _super); - /** - * @param {?} name - * @param {?=} type - * @param {?=} modifiers - */ - function ClassField(name, type, modifiers) { - if (type === void 0) { type = null; } - if (modifiers === void 0) { modifiers = null; } - _super.call(this, type, modifiers); - this.name = name; - } - return ClassField; -}(AbstractClassPart)); -function ClassField_tsickle_Closure_declarations() { - /** @type {?} */ - ClassField.prototype.name; -} -var ClassMethod = (function (_super) { - __extends(ClassMethod, _super); - /** - * @param {?} name - * @param {?} params - * @param {?} body - * @param {?=} type - * @param {?=} modifiers - */ - function ClassMethod(name, params, body, type, modifiers) { - if (type === void 0) { type = null; } - if (modifiers === void 0) { modifiers = null; } - _super.call(this, type, modifiers); - this.name = name; - this.params = params; - this.body = body; - } - return ClassMethod; -}(AbstractClassPart)); -function ClassMethod_tsickle_Closure_declarations() { - /** @type {?} */ - ClassMethod.prototype.name; - /** @type {?} */ - ClassMethod.prototype.params; - /** @type {?} */ - ClassMethod.prototype.body; -} -var ClassGetter = (function (_super) { - __extends(ClassGetter, _super); - /** - * @param {?} name - * @param {?} body - * @param {?=} type - * @param {?=} modifiers - */ - function ClassGetter(name, body, type, modifiers) { - if (type === void 0) { type = null; } - if (modifiers === void 0) { modifiers = null; } - _super.call(this, type, modifiers); - this.name = name; - this.body = body; - } - return ClassGetter; -}(AbstractClassPart)); -function ClassGetter_tsickle_Closure_declarations() { - /** @type {?} */ - ClassGetter.prototype.name; - /** @type {?} */ - ClassGetter.prototype.body; -} -var ClassStmt = (function (_super) { - __extends(ClassStmt, _super); - /** - * @param {?} name - * @param {?} parent - * @param {?} fields - * @param {?} getters - * @param {?} constructorMethod - * @param {?} methods - * @param {?=} modifiers - */ - function ClassStmt(name, parent, fields, getters, constructorMethod, methods, modifiers) { - if (modifiers === void 0) { modifiers = null; } - _super.call(this, modifiers); - this.name = name; - this.parent = parent; - this.fields = fields; - this.getters = getters; - this.constructorMethod = constructorMethod; - this.methods = methods; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ClassStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitDeclareClassStmt(this, context); - }; - return ClassStmt; -}(Statement)); -function ClassStmt_tsickle_Closure_declarations() { - /** @type {?} */ - ClassStmt.prototype.name; - /** @type {?} */ - ClassStmt.prototype.parent; - /** @type {?} */ - ClassStmt.prototype.fields; - /** @type {?} */ - ClassStmt.prototype.getters; - /** @type {?} */ - ClassStmt.prototype.constructorMethod; - /** @type {?} */ - ClassStmt.prototype.methods; -} -var IfStmt = (function (_super) { - __extends(IfStmt, _super); - /** - * @param {?} condition - * @param {?} trueCase - * @param {?=} falseCase - */ - function IfStmt(condition, trueCase, falseCase) { - if (falseCase === void 0) { falseCase = []; } - _super.call(this); - this.condition = condition; - this.trueCase = trueCase; - this.falseCase = falseCase; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - IfStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitIfStmt(this, context); - }; - return IfStmt; -}(Statement)); -function IfStmt_tsickle_Closure_declarations() { - /** @type {?} */ - IfStmt.prototype.condition; - /** @type {?} */ - IfStmt.prototype.trueCase; - /** @type {?} */ - IfStmt.prototype.falseCase; -} -var CommentStmt = (function (_super) { - __extends(CommentStmt, _super); - /** - * @param {?} comment - */ - function CommentStmt(comment) { - _super.call(this); - this.comment = comment; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - CommentStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitCommentStmt(this, context); - }; - return CommentStmt; -}(Statement)); -function CommentStmt_tsickle_Closure_declarations() { - /** @type {?} */ - CommentStmt.prototype.comment; -} -var TryCatchStmt = (function (_super) { - __extends(TryCatchStmt, _super); - /** - * @param {?} bodyStmts - * @param {?} catchStmts - */ - function TryCatchStmt(bodyStmts, catchStmts) { - _super.call(this); - this.bodyStmts = bodyStmts; - this.catchStmts = catchStmts; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - TryCatchStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitTryCatchStmt(this, context); - }; - return TryCatchStmt; -}(Statement)); -function TryCatchStmt_tsickle_Closure_declarations() { - /** @type {?} */ - TryCatchStmt.prototype.bodyStmts; - /** @type {?} */ - TryCatchStmt.prototype.catchStmts; -} -var ThrowStmt = (function (_super) { - __extends(ThrowStmt, _super); - /** - * @param {?} error - */ - function ThrowStmt(error) { - _super.call(this); - this.error = error; - } - /** - * @param {?} visitor - * @param {?} context - * @return {?} - */ - ThrowStmt.prototype.visitStatement = function (visitor, context) { - return visitor.visitThrowStmt(this, context); - }; - return ThrowStmt; -}(Statement)); -function ThrowStmt_tsickle_Closure_declarations() { - /** @type {?} */ - ThrowStmt.prototype.error; -} -var ExpressionTransformer = (function () { - function ExpressionTransformer() { - } - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitReadVarExpr = function (ast, context) { return ast; }; - /** - * @param {?} expr - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitWriteVarExpr = function (expr, context) { - return new WriteVarExpr(expr.name, expr.value.visitExpression(this, context)); - }; - /** - * @param {?} expr - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitWriteKeyExpr = function (expr, context) { - return new WriteKeyExpr(expr.receiver.visitExpression(this, context), expr.index.visitExpression(this, context), expr.value.visitExpression(this, context)); - }; - /** - * @param {?} expr - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitWritePropExpr = function (expr, context) { - return new WritePropExpr(expr.receiver.visitExpression(this, context), expr.name, expr.value.visitExpression(this, context)); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitInvokeMethodExpr = function (ast, context) { - var /** @type {?} */ method = ast.builtin || ast.name; - return new InvokeMethodExpr(ast.receiver.visitExpression(this, context), method, this.visitAllExpressions(ast.args, context), ast.type); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitInvokeFunctionExpr = function (ast, context) { - return new InvokeFunctionExpr(ast.fn.visitExpression(this, context), this.visitAllExpressions(ast.args, context), ast.type); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitInstantiateExpr = function (ast, context) { - return new InstantiateExpr(ast.classExpr.visitExpression(this, context), this.visitAllExpressions(ast.args, context), ast.type); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitLiteralExpr = function (ast, context) { return ast; }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitExternalExpr = function (ast, context) { return ast; }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitConditionalExpr = function (ast, context) { - return new ConditionalExpr(ast.condition.visitExpression(this, context), ast.trueCase.visitExpression(this, context), ast.falseCase.visitExpression(this, context)); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitNotExpr = function (ast, context) { - return new NotExpr(ast.condition.visitExpression(this, context)); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitCastExpr = function (ast, context) { - return new CastExpr(ast.value.visitExpression(this, context), context); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitFunctionExpr = function (ast, context) { - // Don't descend into nested functions - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitBinaryOperatorExpr = function (ast, context) { - return new BinaryOperatorExpr(ast.operator, ast.lhs.visitExpression(this, context), ast.rhs.visitExpression(this, context), ast.type); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitReadPropExpr = function (ast, context) { - return new ReadPropExpr(ast.receiver.visitExpression(this, context), ast.name, ast.type); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitReadKeyExpr = function (ast, context) { - return new ReadKeyExpr(ast.receiver.visitExpression(this, context), ast.index.visitExpression(this, context), ast.type); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitLiteralArrayExpr = function (ast, context) { - return new LiteralArrayExpr(this.visitAllExpressions(ast.entries, context)); - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitLiteralMapExpr = function (ast, context) { - var _this = this; - var /** @type {?} */ entries = ast.entries.map(function (entry) { return new LiteralMapEntry(entry.key, entry.value.visitExpression(_this, context), entry.quoted); }); - return new LiteralMapExpr(entries); - }; - /** - * @param {?} exprs - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitAllExpressions = function (exprs, context) { - var _this = this; - return exprs.map(function (expr) { return expr.visitExpression(_this, context); }); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitDeclareVarStmt = function (stmt, context) { - return new DeclareVarStmt(stmt.name, stmt.value.visitExpression(this, context), stmt.type, stmt.modifiers); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitDeclareFunctionStmt = function (stmt, context) { - // Don't descend into nested functions - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitExpressionStmt = function (stmt, context) { - return new ExpressionStatement(stmt.expr.visitExpression(this, context)); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitReturnStmt = function (stmt, context) { - return new ReturnStatement(stmt.value.visitExpression(this, context)); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitDeclareClassStmt = function (stmt, context) { - // Don't descend into nested functions - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitIfStmt = function (stmt, context) { - return new IfStmt(stmt.condition.visitExpression(this, context), this.visitAllStatements(stmt.trueCase, context), this.visitAllStatements(stmt.falseCase, context)); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitTryCatchStmt = function (stmt, context) { - return new TryCatchStmt(this.visitAllStatements(stmt.bodyStmts, context), this.visitAllStatements(stmt.catchStmts, context)); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitThrowStmt = function (stmt, context) { - return new ThrowStmt(stmt.error.visitExpression(this, context)); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitCommentStmt = function (stmt, context) { return stmt; }; - /** - * @param {?} stmts - * @param {?} context - * @return {?} - */ - ExpressionTransformer.prototype.visitAllStatements = function (stmts, context) { - var _this = this; - return stmts.map(function (stmt) { return stmt.visitStatement(_this, context); }); - }; - return ExpressionTransformer; -}()); -var RecursiveExpressionVisitor = (function () { - function RecursiveExpressionVisitor() { - } - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitReadVarExpr = function (ast, context) { return ast; }; - /** - * @param {?} expr - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitWriteVarExpr = function (expr, context) { - expr.value.visitExpression(this, context); - return expr; - }; - /** - * @param {?} expr - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitWriteKeyExpr = function (expr, context) { - expr.receiver.visitExpression(this, context); - expr.index.visitExpression(this, context); - expr.value.visitExpression(this, context); - return expr; - }; - /** - * @param {?} expr - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitWritePropExpr = function (expr, context) { - expr.receiver.visitExpression(this, context); - expr.value.visitExpression(this, context); - return expr; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitInvokeMethodExpr = function (ast, context) { - ast.receiver.visitExpression(this, context); - this.visitAllExpressions(ast.args, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitInvokeFunctionExpr = function (ast, context) { - ast.fn.visitExpression(this, context); - this.visitAllExpressions(ast.args, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitInstantiateExpr = function (ast, context) { - ast.classExpr.visitExpression(this, context); - this.visitAllExpressions(ast.args, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitLiteralExpr = function (ast, context) { return ast; }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitExternalExpr = function (ast, context) { return ast; }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitConditionalExpr = function (ast, context) { - ast.condition.visitExpression(this, context); - ast.trueCase.visitExpression(this, context); - ast.falseCase.visitExpression(this, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitNotExpr = function (ast, context) { - ast.condition.visitExpression(this, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitCastExpr = function (ast, context) { - ast.value.visitExpression(this, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitFunctionExpr = function (ast, context) { return ast; }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitBinaryOperatorExpr = function (ast, context) { - ast.lhs.visitExpression(this, context); - ast.rhs.visitExpression(this, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitReadPropExpr = function (ast, context) { - ast.receiver.visitExpression(this, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitReadKeyExpr = function (ast, context) { - ast.receiver.visitExpression(this, context); - ast.index.visitExpression(this, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitLiteralArrayExpr = function (ast, context) { - this.visitAllExpressions(ast.entries, context); - return ast; - }; - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitLiteralMapExpr = function (ast, context) { - var _this = this; - ast.entries.forEach(function (entry) { return entry.value.visitExpression(_this, context); }); - return ast; - }; - /** - * @param {?} exprs - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitAllExpressions = function (exprs, context) { - var _this = this; - exprs.forEach(function (expr) { return expr.visitExpression(_this, context); }); - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitDeclareVarStmt = function (stmt, context) { - stmt.value.visitExpression(this, context); - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitDeclareFunctionStmt = function (stmt, context) { - // Don't descend into nested functions - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitExpressionStmt = function (stmt, context) { - stmt.expr.visitExpression(this, context); - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitReturnStmt = function (stmt, context) { - stmt.value.visitExpression(this, context); - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitDeclareClassStmt = function (stmt, context) { - // Don't descend into nested functions - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitIfStmt = function (stmt, context) { - stmt.condition.visitExpression(this, context); - this.visitAllStatements(stmt.trueCase, context); - this.visitAllStatements(stmt.falseCase, context); - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitTryCatchStmt = function (stmt, context) { - this.visitAllStatements(stmt.bodyStmts, context); - this.visitAllStatements(stmt.catchStmts, context); - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitThrowStmt = function (stmt, context) { - stmt.error.visitExpression(this, context); - return stmt; - }; - /** - * @param {?} stmt - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitCommentStmt = function (stmt, context) { return stmt; }; - /** - * @param {?} stmts - * @param {?} context - * @return {?} - */ - RecursiveExpressionVisitor.prototype.visitAllStatements = function (stmts, context) { - var _this = this; - stmts.forEach(function (stmt) { return stmt.visitStatement(_this, context); }); - }; - return RecursiveExpressionVisitor; -}()); -/** - * @param {?} varName - * @param {?} newValue - * @param {?} expression - * @return {?} - */ -function replaceVarInExpression(varName, newValue, expression) { - var /** @type {?} */ transformer = new _ReplaceVariableTransformer(varName, newValue); - return expression.visitExpression(transformer, null); -} -var _ReplaceVariableTransformer = (function (_super) { - __extends(_ReplaceVariableTransformer, _super); - /** - * @param {?} _varName - * @param {?} _newValue - */ - function _ReplaceVariableTransformer(_varName, _newValue) { - _super.call(this); - this._varName = _varName; - this._newValue = _newValue; - } - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - _ReplaceVariableTransformer.prototype.visitReadVarExpr = function (ast, context) { - return ast.name == this._varName ? this._newValue : ast; - }; - return _ReplaceVariableTransformer; -}(ExpressionTransformer)); -function _ReplaceVariableTransformer_tsickle_Closure_declarations() { - /** @type {?} */ - _ReplaceVariableTransformer.prototype._varName; - /** @type {?} */ - _ReplaceVariableTransformer.prototype._newValue; -} -/** - * @param {?} stmts - * @return {?} - */ -function findReadVarNames(stmts) { - var /** @type {?} */ finder = new _VariableFinder(); - finder.visitAllStatements(stmts, null); - return finder.varNames; -} -var _VariableFinder = (function (_super) { - __extends(_VariableFinder, _super); - function _VariableFinder() { - _super.apply(this, arguments); - this.varNames = new Set(); - } - /** - * @param {?} ast - * @param {?} context - * @return {?} - */ - _VariableFinder.prototype.visitReadVarExpr = function (ast, context) { - this.varNames.add(ast.name); - return null; - }; - return _VariableFinder; -}(RecursiveExpressionVisitor)); -function _VariableFinder_tsickle_Closure_declarations() { - /** @type {?} */ - _VariableFinder.prototype.varNames; -} -/** - * @param {?} name - * @param {?=} type - * @return {?} - */ -function variable(name, type) { - if (type === void 0) { type = null; } - return new ReadVarExpr(name, type); -} -/** - * @param {?} id - * @param {?=} typeParams - * @return {?} - */ -function importExpr(id, typeParams) { - if (typeParams === void 0) { typeParams = null; } - return new ExternalExpr(id, null, typeParams); -} -/** - * @param {?} id - * @param {?=} typeParams - * @param {?=} typeModifiers - * @return {?} - */ -function importType(id, typeParams, typeModifiers) { - if (typeParams === void 0) { typeParams = null; } - if (typeModifiers === void 0) { typeModifiers = null; } - return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["c" /* isPresent */])(id) ? expressionType(importExpr(id), typeParams, typeModifiers) : null; -} -/** - * @param {?} expr - * @param {?=} typeParams - * @param {?=} typeModifiers - * @return {?} - */ -function expressionType(expr, typeParams, typeModifiers) { - if (typeParams === void 0) { typeParams = null; } - if (typeModifiers === void 0) { typeModifiers = null; } - return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["c" /* isPresent */])(expr) ? new ExpressionType(expr, typeParams, typeModifiers) : null; -} -/** - * @param {?} values - * @param {?=} type - * @return {?} - */ -function literalArr(values, type) { - if (type === void 0) { type = null; } - return new LiteralArrayExpr(values, type); -} -/** - * @param {?} values - * @param {?=} type - * @param {?=} quoted - * @return {?} - */ -function literalMap(values, type, quoted) { - if (type === void 0) { type = null; } - if (quoted === void 0) { quoted = false; } - return new LiteralMapExpr(values.map(function (entry) { return new LiteralMapEntry(entry[0], entry[1], quoted); }), type); -} -/** - * @param {?} expr - * @return {?} - */ -function not(expr) { - return new NotExpr(expr); -} -/** - * @param {?} params - * @param {?} body - * @param {?=} type - * @return {?} - */ -function fn(params, body, type) { - if (type === void 0) { type = null; } - return new FunctionExpr(params, body, type); -} -/** - * @param {?} value - * @param {?=} type - * @return {?} - */ -function literal(value, type) { - if (type === void 0) { type = null; } - return new LiteralExpr(value, type); -} -//# sourceMappingURL=output_ast.js.map - -/***/ }), -/* 8 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__aot_static_symbol__ = __webpack_require__(58); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__facade_collection__ = __webpack_require__(70); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__facade_lang__ = __webpack_require__(5); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__private_import_core__ = __webpack_require__(11); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__selector__ = __webpack_require__(141); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util__ = __webpack_require__(25); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return CompileAnimationEntryMetadata; }); -/* unused harmony export CompileAnimationStateMetadata */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CompileAnimationStateDeclarationMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return CompileAnimationStateTransitionMetadata; }); -/* unused harmony export CompileAnimationMetadata */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return CompileAnimationKeyframesSequenceMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return CompileAnimationStyleMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return CompileAnimationAnimateMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return CompileAnimationWithStepsMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CompileAnimationSequenceMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CompileAnimationGroupMetadata; }); -/* harmony export (immutable) */ __webpack_exports__["a"] = identifierName; -/* harmony export (immutable) */ __webpack_exports__["i"] = identifierModuleUrl; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return CompileSummaryKind; }); -/* harmony export (immutable) */ __webpack_exports__["k"] = tokenName; -/* harmony export (immutable) */ __webpack_exports__["j"] = tokenReference; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return CompileStylesheetMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return CompileTemplateMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return CompileDirectiveMetadata; }); -/* harmony export (immutable) */ __webpack_exports__["v"] = createHostComponentMeta; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return CompilePipeMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return CompileNgModuleMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return TransitiveCompileNgModuleMetadata; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return ProviderMeta; }); -/** - * @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 __extends = (this && this.__extends) || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -}; - - - - - - - -// group 0: "[prop] or (event) or @trigger" -// group 1: "prop" from "[prop]" -// group 2: "event" from "(event)" -// group 3: "@trigger" from "@trigger" -var /** @type {?} */ HOST_REG_EXP = /^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/; -var CompileAnimationEntryMetadata = (function () { - /** - * @param {?=} name - * @param {?=} definitions - */ - function CompileAnimationEntryMetadata(name, definitions) { - if (name === void 0) { name = null; } - if (definitions === void 0) { definitions = null; } - this.name = name; - this.definitions = definitions; - } - return CompileAnimationEntryMetadata; -}()); -function CompileAnimationEntryMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationEntryMetadata.prototype.name; - /** @type {?} */ - CompileAnimationEntryMetadata.prototype.definitions; -} -/** - * @abstract - */ -var CompileAnimationStateMetadata = (function () { - function CompileAnimationStateMetadata() { - } - return CompileAnimationStateMetadata; -}()); -var CompileAnimationStateDeclarationMetadata = (function (_super) { - __extends(CompileAnimationStateDeclarationMetadata, _super); - /** - * @param {?} stateNameExpr - * @param {?} styles - */ - function CompileAnimationStateDeclarationMetadata(stateNameExpr, styles) { - _super.call(this); - this.stateNameExpr = stateNameExpr; - this.styles = styles; - } - return CompileAnimationStateDeclarationMetadata; -}(CompileAnimationStateMetadata)); -function CompileAnimationStateDeclarationMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationStateDeclarationMetadata.prototype.stateNameExpr; - /** @type {?} */ - CompileAnimationStateDeclarationMetadata.prototype.styles; -} -var CompileAnimationStateTransitionMetadata = (function (_super) { - __extends(CompileAnimationStateTransitionMetadata, _super); - /** - * @param {?} stateChangeExpr - * @param {?} steps - */ - function CompileAnimationStateTransitionMetadata(stateChangeExpr, steps) { - _super.call(this); - this.stateChangeExpr = stateChangeExpr; - this.steps = steps; - } - return CompileAnimationStateTransitionMetadata; -}(CompileAnimationStateMetadata)); -function CompileAnimationStateTransitionMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationStateTransitionMetadata.prototype.stateChangeExpr; - /** @type {?} */ - CompileAnimationStateTransitionMetadata.prototype.steps; -} -/** - * @abstract - */ -var CompileAnimationMetadata = (function () { - function CompileAnimationMetadata() { - } - return CompileAnimationMetadata; -}()); -var CompileAnimationKeyframesSequenceMetadata = (function (_super) { - __extends(CompileAnimationKeyframesSequenceMetadata, _super); - /** - * @param {?=} steps - */ - function CompileAnimationKeyframesSequenceMetadata(steps) { - if (steps === void 0) { steps = []; } - _super.call(this); - this.steps = steps; - } - return CompileAnimationKeyframesSequenceMetadata; -}(CompileAnimationMetadata)); -function CompileAnimationKeyframesSequenceMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationKeyframesSequenceMetadata.prototype.steps; -} -var CompileAnimationStyleMetadata = (function (_super) { - __extends(CompileAnimationStyleMetadata, _super); - /** - * @param {?} offset - * @param {?=} styles - */ - function CompileAnimationStyleMetadata(offset, styles) { - if (styles === void 0) { styles = null; } - _super.call(this); - this.offset = offset; - this.styles = styles; - } - return CompileAnimationStyleMetadata; -}(CompileAnimationMetadata)); -function CompileAnimationStyleMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationStyleMetadata.prototype.offset; - /** @type {?} */ - CompileAnimationStyleMetadata.prototype.styles; -} -var CompileAnimationAnimateMetadata = (function (_super) { - __extends(CompileAnimationAnimateMetadata, _super); - /** - * @param {?=} timings - * @param {?=} styles - */ - function CompileAnimationAnimateMetadata(timings, styles) { - if (timings === void 0) { timings = 0; } - if (styles === void 0) { styles = null; } - _super.call(this); - this.timings = timings; - this.styles = styles; - } - return CompileAnimationAnimateMetadata; -}(CompileAnimationMetadata)); -function CompileAnimationAnimateMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationAnimateMetadata.prototype.timings; - /** @type {?} */ - CompileAnimationAnimateMetadata.prototype.styles; -} -/** - * @abstract - */ -var CompileAnimationWithStepsMetadata = (function (_super) { - __extends(CompileAnimationWithStepsMetadata, _super); - /** - * @param {?=} steps - */ - function CompileAnimationWithStepsMetadata(steps) { - if (steps === void 0) { steps = null; } - _super.call(this); - this.steps = steps; - } - return CompileAnimationWithStepsMetadata; -}(CompileAnimationMetadata)); -function CompileAnimationWithStepsMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileAnimationWithStepsMetadata.prototype.steps; -} -var CompileAnimationSequenceMetadata = (function (_super) { - __extends(CompileAnimationSequenceMetadata, _super); - /** - * @param {?=} steps - */ - function CompileAnimationSequenceMetadata(steps) { - if (steps === void 0) { steps = null; } - _super.call(this, steps); - } - return CompileAnimationSequenceMetadata; -}(CompileAnimationWithStepsMetadata)); -var CompileAnimationGroupMetadata = (function (_super) { - __extends(CompileAnimationGroupMetadata, _super); - /** - * @param {?=} steps - */ - function CompileAnimationGroupMetadata(steps) { - if (steps === void 0) { steps = null; } - _super.call(this, steps); - } - return CompileAnimationGroupMetadata; -}(CompileAnimationWithStepsMetadata)); -/** - * @param {?} name - * @return {?} - */ -function _sanitizeIdentifier(name) { - return name.replace(/\W/g, '_'); -} -var /** @type {?} */ _anonymousTypeIndex = 0; -/** - * @param {?} compileIdentifier - * @return {?} - */ -function identifierName(compileIdentifier) { - if (!compileIdentifier || !compileIdentifier.reference) { - return null; - } - var /** @type {?} */ ref = compileIdentifier.reference; - if (ref instanceof __WEBPACK_IMPORTED_MODULE_1__aot_static_symbol__["a" /* StaticSymbol */]) { - return ref.name; - } - if (ref['__anonymousType']) { - return ref['__anonymousType']; - } - var /** @type {?} */ identifier = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["e" /* stringify */])(ref); - if (identifier.indexOf('(') >= 0) { - // case: anonymous functions! - identifier = "anonymous_" + _anonymousTypeIndex++; - ref['__anonymousType'] = identifier; - } - else { - identifier = _sanitizeIdentifier(identifier); - } - return identifier; -} -/** - * @param {?} compileIdentifier - * @return {?} - */ -function identifierModuleUrl(compileIdentifier) { - var /** @type {?} */ ref = compileIdentifier.reference; - if (ref instanceof __WEBPACK_IMPORTED_MODULE_1__aot_static_symbol__["a" /* StaticSymbol */]) { - return ref.filePath; - } - return __WEBPACK_IMPORTED_MODULE_4__private_import_core__["c" /* reflector */].importUri(ref); -} -var CompileSummaryKind = {}; -CompileSummaryKind.Pipe = 0; -CompileSummaryKind.Directive = 1; -CompileSummaryKind.NgModule = 2; -CompileSummaryKind.Injectable = 3; -CompileSummaryKind[CompileSummaryKind.Pipe] = "Pipe"; -CompileSummaryKind[CompileSummaryKind.Directive] = "Directive"; -CompileSummaryKind[CompileSummaryKind.NgModule] = "NgModule"; -CompileSummaryKind[CompileSummaryKind.Injectable] = "Injectable"; -/** - * @param {?} token - * @return {?} - */ -function tokenName(token) { - return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(token.value) ? _sanitizeIdentifier(token.value) : - identifierName(token.identifier); -} -/** - * @param {?} token - * @return {?} - */ -function tokenReference(token) { - if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(token.identifier)) { - return token.identifier.reference; - } - else { - return token.value; - } -} -/** - * Metadata about a stylesheet - */ -var CompileStylesheetMetadata = (function () { - /** - * @param {?=} __0 - */ - function CompileStylesheetMetadata(_a) { - var _b = _a === void 0 ? {} : _a, moduleUrl = _b.moduleUrl, styles = _b.styles, styleUrls = _b.styleUrls; - this.moduleUrl = moduleUrl; - this.styles = _normalizeArray(styles); - this.styleUrls = _normalizeArray(styleUrls); - } - return CompileStylesheetMetadata; -}()); -function CompileStylesheetMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileStylesheetMetadata.prototype.moduleUrl; - /** @type {?} */ - CompileStylesheetMetadata.prototype.styles; - /** @type {?} */ - CompileStylesheetMetadata.prototype.styleUrls; -} -/** - * Metadata regarding compilation of a template. - */ -var CompileTemplateMetadata = (function () { - /** - * @param {?=} __0 - */ - function CompileTemplateMetadata(_a) { - var _b = _a === void 0 ? {} : _a, encapsulation = _b.encapsulation, template = _b.template, templateUrl = _b.templateUrl, styles = _b.styles, styleUrls = _b.styleUrls, externalStylesheets = _b.externalStylesheets, animations = _b.animations, ngContentSelectors = _b.ngContentSelectors, interpolation = _b.interpolation; - this.encapsulation = encapsulation; - this.template = template; - this.templateUrl = templateUrl; - this.styles = _normalizeArray(styles); - this.styleUrls = _normalizeArray(styleUrls); - this.externalStylesheets = _normalizeArray(externalStylesheets); - this.animations = animations ? __WEBPACK_IMPORTED_MODULE_2__facade_collection__["b" /* ListWrapper */].flatten(animations) : []; - this.ngContentSelectors = ngContentSelectors || []; - if (interpolation && interpolation.length != 2) { - throw new Error("'interpolation' should have a start and an end symbol."); - } - this.interpolation = interpolation; - } - /** - * @return {?} - */ - CompileTemplateMetadata.prototype.toSummary = function () { - return { - animations: this.animations.map(function (anim) { return anim.name; }), - ngContentSelectors: this.ngContentSelectors, - encapsulation: this.encapsulation - }; - }; - return CompileTemplateMetadata; -}()); -function CompileTemplateMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileTemplateMetadata.prototype.encapsulation; - /** @type {?} */ - CompileTemplateMetadata.prototype.template; - /** @type {?} */ - CompileTemplateMetadata.prototype.templateUrl; - /** @type {?} */ - CompileTemplateMetadata.prototype.styles; - /** @type {?} */ - CompileTemplateMetadata.prototype.styleUrls; - /** @type {?} */ - CompileTemplateMetadata.prototype.externalStylesheets; - /** @type {?} */ - CompileTemplateMetadata.prototype.animations; - /** @type {?} */ - CompileTemplateMetadata.prototype.ngContentSelectors; - /** @type {?} */ - CompileTemplateMetadata.prototype.interpolation; -} -/** - * Metadata regarding compilation of a directive. - */ -var CompileDirectiveMetadata = (function () { - /** - * @param {?=} __0 - */ - function CompileDirectiveMetadata(_a) { - var _b = _a === void 0 ? {} : _a, isHost = _b.isHost, type = _b.type, isComponent = _b.isComponent, selector = _b.selector, exportAs = _b.exportAs, changeDetection = _b.changeDetection, inputs = _b.inputs, outputs = _b.outputs, hostListeners = _b.hostListeners, hostProperties = _b.hostProperties, hostAttributes = _b.hostAttributes, providers = _b.providers, viewProviders = _b.viewProviders, queries = _b.queries, viewQueries = _b.viewQueries, entryComponents = _b.entryComponents, template = _b.template; - this.isHost = !!isHost; - this.type = type; - this.isComponent = isComponent; - this.selector = selector; - this.exportAs = exportAs; - this.changeDetection = changeDetection; - this.inputs = inputs; - this.outputs = outputs; - this.hostListeners = hostListeners; - this.hostProperties = hostProperties; - this.hostAttributes = hostAttributes; - this.providers = _normalizeArray(providers); - this.viewProviders = _normalizeArray(viewProviders); - this.queries = _normalizeArray(queries); - this.viewQueries = _normalizeArray(viewQueries); - this.entryComponents = _normalizeArray(entryComponents); - this.template = template; - } - /** - * @param {?=} __0 - * @return {?} - */ - CompileDirectiveMetadata.create = function (_a) { - var _b = _a === void 0 ? {} : _a, isHost = _b.isHost, type = _b.type, isComponent = _b.isComponent, selector = _b.selector, exportAs = _b.exportAs, changeDetection = _b.changeDetection, inputs = _b.inputs, outputs = _b.outputs, host = _b.host, providers = _b.providers, viewProviders = _b.viewProviders, queries = _b.queries, viewQueries = _b.viewQueries, entryComponents = _b.entryComponents, template = _b.template; - var /** @type {?} */ hostListeners = {}; - var /** @type {?} */ hostProperties = {}; - var /** @type {?} */ hostAttributes = {}; - if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(host)) { - Object.keys(host).forEach(function (key) { - var /** @type {?} */ value = host[key]; - var /** @type {?} */ matches = key.match(HOST_REG_EXP); - if (matches === null) { - hostAttributes[key] = value; - } - else if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(matches[1])) { - hostProperties[matches[1]] = value; - } - else if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(matches[2])) { - hostListeners[matches[2]] = value; - } - }); - } - var /** @type {?} */ inputsMap = {}; - if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(inputs)) { - inputs.forEach(function (bindConfig) { - // canonical syntax: `dirProp: elProp` - // if there is no `:`, use dirProp = elProp - var /** @type {?} */ parts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util__["a" /* splitAtColon */])(bindConfig, [bindConfig, bindConfig]); - inputsMap[parts[0]] = parts[1]; - }); - } - var /** @type {?} */ outputsMap = {}; - if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["c" /* isPresent */])(outputs)) { - outputs.forEach(function (bindConfig) { - // canonical syntax: `dirProp: elProp` - // if there is no `:`, use dirProp = elProp - var /** @type {?} */ parts = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util__["a" /* splitAtColon */])(bindConfig, [bindConfig, bindConfig]); - outputsMap[parts[0]] = parts[1]; - }); - } - return new CompileDirectiveMetadata({ - isHost: isHost, - type: type, - isComponent: !!isComponent, selector: selector, exportAs: exportAs, changeDetection: changeDetection, - inputs: inputsMap, - outputs: outputsMap, - hostListeners: hostListeners, - hostProperties: hostProperties, - hostAttributes: hostAttributes, - providers: providers, - viewProviders: viewProviders, - queries: queries, - viewQueries: viewQueries, - entryComponents: entryComponents, - template: template, - }); - }; - /** - * @return {?} - */ - CompileDirectiveMetadata.prototype.toSummary = function () { - return { - summaryKind: CompileSummaryKind.Directive, - type: this.type, - isComponent: this.isComponent, - selector: this.selector, - exportAs: this.exportAs, - inputs: this.inputs, - outputs: this.outputs, - hostListeners: this.hostListeners, - hostProperties: this.hostProperties, - hostAttributes: this.hostAttributes, - providers: this.providers, - viewProviders: this.viewProviders, - queries: this.queries, - entryComponents: this.entryComponents, - changeDetection: this.changeDetection, - template: this.template && this.template.toSummary() - }; - }; - return CompileDirectiveMetadata; -}()); -function CompileDirectiveMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileDirectiveMetadata.prototype.isHost; - /** @type {?} */ - CompileDirectiveMetadata.prototype.type; - /** @type {?} */ - CompileDirectiveMetadata.prototype.isComponent; - /** @type {?} */ - CompileDirectiveMetadata.prototype.selector; - /** @type {?} */ - CompileDirectiveMetadata.prototype.exportAs; - /** @type {?} */ - CompileDirectiveMetadata.prototype.changeDetection; - /** @type {?} */ - CompileDirectiveMetadata.prototype.inputs; - /** @type {?} */ - CompileDirectiveMetadata.prototype.outputs; - /** @type {?} */ - CompileDirectiveMetadata.prototype.hostListeners; - /** @type {?} */ - CompileDirectiveMetadata.prototype.hostProperties; - /** @type {?} */ - CompileDirectiveMetadata.prototype.hostAttributes; - /** @type {?} */ - CompileDirectiveMetadata.prototype.providers; - /** @type {?} */ - CompileDirectiveMetadata.prototype.viewProviders; - /** @type {?} */ - CompileDirectiveMetadata.prototype.queries; - /** @type {?} */ - CompileDirectiveMetadata.prototype.viewQueries; - /** @type {?} */ - CompileDirectiveMetadata.prototype.entryComponents; - /** @type {?} */ - CompileDirectiveMetadata.prototype.template; -} -/** - * Construct {\@link CompileDirectiveMetadata} from {\@link ComponentTypeMetadata} and a selector. - * @param {?} typeReference - * @param {?} compMeta - * @return {?} - */ -function createHostComponentMeta(typeReference, compMeta) { - var /** @type {?} */ template = __WEBPACK_IMPORTED_MODULE_5__selector__["a" /* CssSelector */].parse(compMeta.selector)[0].getMatchingElementTemplate(); - return CompileDirectiveMetadata.create({ - isHost: true, - type: { reference: typeReference, diDeps: [], lifecycleHooks: [] }, - template: new CompileTemplateMetadata({ - encapsulation: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ViewEncapsulation"].None, - template: template, - templateUrl: '', - styles: [], - styleUrls: [], - ngContentSelectors: [], - animations: [] - }), - changeDetection: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ChangeDetectionStrategy"].Default, - inputs: [], - outputs: [], - host: {}, - isComponent: true, - selector: '*', - providers: [], - viewProviders: [], - queries: [], - viewQueries: [] - }); -} -var CompilePipeMetadata = (function () { - /** - * @param {?=} __0 - */ - function CompilePipeMetadata(_a) { - var _b = _a === void 0 ? {} : _a, type = _b.type, name = _b.name, pure = _b.pure; - this.type = type; - this.name = name; - this.pure = !!pure; - } - /** - * @return {?} - */ - CompilePipeMetadata.prototype.toSummary = function () { - return { - summaryKind: CompileSummaryKind.Pipe, - type: this.type, - name: this.name, - pure: this.pure - }; - }; - return CompilePipeMetadata; -}()); -function CompilePipeMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompilePipeMetadata.prototype.type; - /** @type {?} */ - CompilePipeMetadata.prototype.name; - /** @type {?} */ - CompilePipeMetadata.prototype.pure; -} -/** - * Metadata regarding compilation of a module. - */ -var CompileNgModuleMetadata = (function () { - /** - * @param {?=} __0 - */ - function CompileNgModuleMetadata(_a) { - var _b = _a === void 0 ? {} : _a, type = _b.type, providers = _b.providers, declaredDirectives = _b.declaredDirectives, exportedDirectives = _b.exportedDirectives, declaredPipes = _b.declaredPipes, exportedPipes = _b.exportedPipes, entryComponents = _b.entryComponents, bootstrapComponents = _b.bootstrapComponents, importedModules = _b.importedModules, exportedModules = _b.exportedModules, schemas = _b.schemas, transitiveModule = _b.transitiveModule, id = _b.id; - this.type = type; - this.declaredDirectives = _normalizeArray(declaredDirectives); - this.exportedDirectives = _normalizeArray(exportedDirectives); - this.declaredPipes = _normalizeArray(declaredPipes); - this.exportedPipes = _normalizeArray(exportedPipes); - this.providers = _normalizeArray(providers); - this.entryComponents = _normalizeArray(entryComponents); - this.bootstrapComponents = _normalizeArray(bootstrapComponents); - this.importedModules = _normalizeArray(importedModules); - this.exportedModules = _normalizeArray(exportedModules); - this.schemas = _normalizeArray(schemas); - this.id = id; - this.transitiveModule = transitiveModule; - } - /** - * @return {?} - */ - CompileNgModuleMetadata.prototype.toSummary = function () { - return { - summaryKind: CompileSummaryKind.NgModule, - type: this.type, - entryComponents: this.transitiveModule.entryComponents, - providers: this.transitiveModule.providers, - modules: this.transitiveModule.modules, - exportedDirectives: this.transitiveModule.exportedDirectives, - exportedPipes: this.transitiveModule.exportedPipes - }; - }; - return CompileNgModuleMetadata; -}()); -function CompileNgModuleMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - CompileNgModuleMetadata.prototype.type; - /** @type {?} */ - CompileNgModuleMetadata.prototype.declaredDirectives; - /** @type {?} */ - CompileNgModuleMetadata.prototype.exportedDirectives; - /** @type {?} */ - CompileNgModuleMetadata.prototype.declaredPipes; - /** @type {?} */ - CompileNgModuleMetadata.prototype.exportedPipes; - /** @type {?} */ - CompileNgModuleMetadata.prototype.entryComponents; - /** @type {?} */ - CompileNgModuleMetadata.prototype.bootstrapComponents; - /** @type {?} */ - CompileNgModuleMetadata.prototype.providers; - /** @type {?} */ - CompileNgModuleMetadata.prototype.importedModules; - /** @type {?} */ - CompileNgModuleMetadata.prototype.exportedModules; - /** @type {?} */ - CompileNgModuleMetadata.prototype.schemas; - /** @type {?} */ - CompileNgModuleMetadata.prototype.id; - /** @type {?} */ - CompileNgModuleMetadata.prototype.transitiveModule; -} -var TransitiveCompileNgModuleMetadata = (function () { - function TransitiveCompileNgModuleMetadata() { - this.directivesSet = new Set(); - this.directives = []; - this.exportedDirectivesSet = new Set(); - this.exportedDirectives = []; - this.pipesSet = new Set(); - this.pipes = []; - this.exportedPipesSet = new Set(); - this.exportedPipes = []; - this.modulesSet = new Set(); - this.modules = []; - this.entryComponentsSet = new Set(); - this.entryComponents = []; - this.providers = []; - } - /** - * @param {?} provider - * @param {?} module - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addProvider = function (provider, module) { - this.providers.push({ provider: provider, module: module }); - }; - /** - * @param {?} id - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addDirective = function (id) { - if (!this.directivesSet.has(id.reference)) { - this.directivesSet.add(id.reference); - this.directives.push(id); - } - }; - /** - * @param {?} id - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addExportedDirective = function (id) { - if (!this.exportedDirectivesSet.has(id.reference)) { - this.exportedDirectivesSet.add(id.reference); - this.exportedDirectives.push(id); - } - }; - /** - * @param {?} id - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addPipe = function (id) { - if (!this.pipesSet.has(id.reference)) { - this.pipesSet.add(id.reference); - this.pipes.push(id); - } - }; - /** - * @param {?} id - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addExportedPipe = function (id) { - if (!this.exportedPipesSet.has(id.reference)) { - this.exportedPipesSet.add(id.reference); - this.exportedPipes.push(id); - } - }; - /** - * @param {?} id - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addModule = function (id) { - if (!this.modulesSet.has(id.reference)) { - this.modulesSet.add(id.reference); - this.modules.push(id); - } - }; - /** - * @param {?} id - * @return {?} - */ - TransitiveCompileNgModuleMetadata.prototype.addEntryComponent = function (id) { - if (!this.entryComponentsSet.has(id.reference)) { - this.entryComponentsSet.add(id.reference); - this.entryComponents.push(id); - } - }; - return TransitiveCompileNgModuleMetadata; -}()); -function TransitiveCompileNgModuleMetadata_tsickle_Closure_declarations() { - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.directivesSet; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.directives; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.exportedDirectivesSet; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.exportedDirectives; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.pipesSet; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.pipes; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.exportedPipesSet; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.exportedPipes; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.modulesSet; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.modules; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.entryComponentsSet; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.entryComponents; - /** @type {?} */ - TransitiveCompileNgModuleMetadata.prototype.providers; -} -/** - * @param {?} obj - * @return {?} - */ -function _normalizeArray(obj) { - return obj || []; -} -var ProviderMeta = (function () { - /** - * @param {?} token - * @param {?} __1 - */ - function ProviderMeta(token, _a) { - var useClass = _a.useClass, useValue = _a.useValue, useExisting = _a.useExisting, useFactory = _a.useFactory, deps = _a.deps, multi = _a.multi; - this.token = token; - this.useClass = useClass; - this.useValue = useValue; - this.useExisting = useExisting; - this.useFactory = useFactory; - this.dependencies = deps; - this.multi = !!multi; - } - return ProviderMeta; -}()); -function ProviderMeta_tsickle_Closure_declarations() { - /** @type {?} */ - ProviderMeta.prototype.token; - /** @type {?} */ - ProviderMeta.prototype.useClass; - /** @type {?} */ - ProviderMeta.prototype.useValue; - /** @type {?} */ - ProviderMeta.prototype.useExisting; - /** @type {?} */ - ProviderMeta.prototype.useFactory; - /** @type {?} */ - ProviderMeta.prototype.dependencies; - /** @type {?} */ - ProviderMeta.prototype.multi; -} -//# sourceMappingURL=compile_metadata.js.map - -/***/ }), -/* 9 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_dispatcher__ = __webpack_require__(385); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_dispatcher__ = __webpack_require__(207); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "Dispatcher", function() { return __WEBPACK_IMPORTED_MODULE_0__src_dispatcher__["a"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_ng2__ = __webpack_require__(603); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_ng2__ = __webpack_require__(561); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "INITIAL_REDUCER", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["a"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "INITIAL_STATE", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["b"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_INITIAL_REDUCER", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["c"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_INITIAL_STATE", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["d"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_initialReducerFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["e"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_initialStateFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["f"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_storeFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["g"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_stateFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["h"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_reducerFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["i"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "provideStore", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["j"]; }); -/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "StoreModule", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["k"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_reducer__ = __webpack_require__(386); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_INITIAL_REDUCER", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["d"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_INITIAL_STATE", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["e"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_initialReducerFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["f"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_initialStateFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["g"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_storeFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["j"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_stateFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["i"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "_reducerFactory", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["h"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "provideStore", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["k"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "StoreModule", function() { return __WEBPACK_IMPORTED_MODULE_1__src_ng2__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_reducer__ = __webpack_require__(208); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "Reducer", function() { return __WEBPACK_IMPORTED_MODULE_2__src_reducer__["a"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_state__ = __webpack_require__(387); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_state__ = __webpack_require__(210); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "State", function() { return __WEBPACK_IMPORTED_MODULE_3__src_state__["a"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_store__ = __webpack_require__(388); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_store__ = __webpack_require__(209); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return __WEBPACK_IMPORTED_MODULE_4__src_store__["a"]; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_utils__ = __webpack_require__(389); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_utils__ = __webpack_require__(211); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return __WEBPACK_IMPORTED_MODULE_5__src_utils__["a"]; }); @@ -4152,7 +15632,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); //# sourceMappingURL=index.js.map /***/ }), -/* 10 */ +/* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4162,12 +15642,12 @@ var __extends = (this && this.__extends) || function (d, b) { function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; -var Observable_1 = __webpack_require__(1); +var Observable_1 = __webpack_require__(0); var Subscriber_1 = __webpack_require__(2); -var Subscription_1 = __webpack_require__(14); -var ObjectUnsubscribedError_1 = __webpack_require__(187); -var SubjectSubscription_1 = __webpack_require__(410); -var rxSubscriber_1 = __webpack_require__(185); +var Subscription_1 = __webpack_require__(7); +var ObjectUnsubscribedError_1 = __webpack_require__(88); +var SubjectSubscription_1 = __webpack_require__(168); +var rxSubscriber_1 = __webpack_require__(86); /** * @class SubjectSubscriber */ @@ -4193,7 +15673,7 @@ var Subject = (function (_super) { this.hasError = false; this.thrownError = null; } - Subject.prototype[rxSubscriber_1.$$rxSubscriber] = function () { + Subject.prototype[rxSubscriber_1.rxSubscriber] = function () { return new SubjectSubscriber(this); }; Subject.prototype.lift = function (operator) { @@ -4326,657 +15806,17 @@ exports.AnonymousSubject = AnonymousSubject; //# sourceMappingURL=Subject.js.map /***/ }), -/* 11 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return isDefaultChangeDetectionStrategy; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return ChangeDetectorStatus; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return LifecycleHooks; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return LIFECYCLE_HOOKS_VALUES; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return ReflectorReader; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return ViewContainer; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return CodegenComponentFactoryResolver; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return ComponentRef_; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return AppView; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return DebugAppView; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return NgModuleInjector; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return registerModuleFactory; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return ViewType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return view_utils; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return DebugContext; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return StaticNodeDebugInfo; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return devModeEqual; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return UNINITIALIZED; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return ValueUnwrapper; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return TemplateRef_; }); -/* unused harmony export RenderDebugInfo */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return Console; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return reflector; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return Reflector; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return ReflectionCapabilities; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return NoOpAnimationPlayer; }); -/* unused harmony export AnimationPlayer */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return AnimationSequencePlayer; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return AnimationGroupPlayer; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return AnimationKeyframe; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return AnimationStyles; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ANY_STATE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return DEFAULT_STATE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return EMPTY_STATE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FILL_STYLE_FLAG; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return prepareFinalAnimationStyles; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return balanceAnimationKeyframes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return clearStyles; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return collectAndResolveStyles; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return renderStyles; }); -/* unused harmony export ViewMetadata */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return ComponentStillLoadingError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return AnimationTransition; }); -/** - * @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 /** @type {?} */ isDefaultChangeDetectionStrategy = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].isDefaultChangeDetectionStrategy; -var /** @type {?} */ ChangeDetectorStatus = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ChangeDetectorStatus; -var /** @type {?} */ LifecycleHooks = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].LifecycleHooks; -var /** @type {?} */ LIFECYCLE_HOOKS_VALUES = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].LIFECYCLE_HOOKS_VALUES; -var /** @type {?} */ ReflectorReader = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ReflectorReader; -var /** @type {?} */ ViewContainer = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ViewContainer; -var /** @type {?} */ CodegenComponentFactoryResolver = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].CodegenComponentFactoryResolver; -var /** @type {?} */ ComponentRef_ = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ComponentRef_; -var /** @type {?} */ AppView = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AppView; -var /** @type {?} */ DebugAppView = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].DebugAppView; -var /** @type {?} */ NgModuleInjector = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].NgModuleInjector; -var /** @type {?} */ registerModuleFactory = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].registerModuleFactory; -var /** @type {?} */ ViewType = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ViewType; -var /** @type {?} */ view_utils = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].view_utils; -var /** @type {?} */ DebugContext = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].DebugContext; -var /** @type {?} */ StaticNodeDebugInfo = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].StaticNodeDebugInfo; -var /** @type {?} */ devModeEqual = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].devModeEqual; -var /** @type {?} */ UNINITIALIZED = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].UNINITIALIZED; -var /** @type {?} */ ValueUnwrapper = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ValueUnwrapper; -var /** @type {?} */ TemplateRef_ = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].TemplateRef_; -var /** @type {?} */ RenderDebugInfo = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].RenderDebugInfo; -var /** @type {?} */ Console = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].Console; -var /** @type {?} */ reflector = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].reflector; -var /** @type {?} */ Reflector = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].Reflector; -var /** @type {?} */ ReflectionCapabilities = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ReflectionCapabilities; -var /** @type {?} */ NoOpAnimationPlayer = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].NoOpAnimationPlayer; -var /** @type {?} */ AnimationPlayer = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AnimationPlayer; -var /** @type {?} */ AnimationSequencePlayer = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AnimationSequencePlayer; -var /** @type {?} */ AnimationGroupPlayer = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AnimationGroupPlayer; -var /** @type {?} */ AnimationKeyframe = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AnimationKeyframe; -var /** @type {?} */ AnimationStyles = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AnimationStyles; -var /** @type {?} */ ANY_STATE = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ANY_STATE; -var /** @type {?} */ DEFAULT_STATE = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].DEFAULT_STATE; -var /** @type {?} */ EMPTY_STATE = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].EMPTY_STATE; -var /** @type {?} */ FILL_STYLE_FLAG = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].FILL_STYLE_FLAG; -var /** @type {?} */ prepareFinalAnimationStyles = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].prepareFinalAnimationStyles; -var /** @type {?} */ balanceAnimationKeyframes = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].balanceAnimationKeyframes; -var /** @type {?} */ clearStyles = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].clearStyles; -var /** @type {?} */ collectAndResolveStyles = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].collectAndResolveStyles; -var /** @type {?} */ renderStyles = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].renderStyles; -var /** @type {?} */ ViewMetadata = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ViewMetadata; -var /** @type {?} */ ComponentStillLoadingError = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].ComponentStillLoadingError; -var /** @type {?} */ AnimationTransition = __WEBPACK_IMPORTED_MODULE_0__angular_core__["__core_private__"].AnimationTransition; -//# sourceMappingURL=private_import_core.js.map - -/***/ }), -/* 12 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__private_import_core__ = __webpack_require__(11); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Identifiers; }); -/* unused harmony export assetUrl */ -/* harmony export (immutable) */ __webpack_exports__["e"] = resolveIdentifier; -/* harmony export (immutable) */ __webpack_exports__["a"] = createIdentifier; -/* harmony export (immutable) */ __webpack_exports__["c"] = identifierToken; -/* harmony export (immutable) */ __webpack_exports__["f"] = createIdentifierToken; -/* harmony export (immutable) */ __webpack_exports__["d"] = createEnumIdentifier; -/** - * @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 /** @type {?} */ APP_VIEW_MODULE_URL = assetUrl('core', 'linker/view'); -var /** @type {?} */ VIEW_UTILS_MODULE_URL = assetUrl('core', 'linker/view_utils'); -var /** @type {?} */ CD_MODULE_URL = assetUrl('core', 'change_detection/change_detection'); -var /** @type {?} */ ANIMATION_STYLE_UTIL_ASSET_URL = assetUrl('core', 'animation/animation_style_util'); -var Identifiers = (function () { - function Identifiers() { - } - Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS = { - name: 'ANALYZE_FOR_ENTRY_COMPONENTS', - moduleUrl: assetUrl('core', 'metadata/di'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ANALYZE_FOR_ENTRY_COMPONENTS"] - }; - Identifiers.ViewUtils = { - name: 'ViewUtils', - moduleUrl: assetUrl('core', 'linker/view_utils'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].ViewUtils - }; - Identifiers.AppView = { name: 'AppView', moduleUrl: APP_VIEW_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["e" /* AppView */] }; - Identifiers.DebugAppView = { - name: 'DebugAppView', - moduleUrl: APP_VIEW_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["f" /* DebugAppView */] - }; - Identifiers.ViewContainer = { - name: 'ViewContainer', - moduleUrl: assetUrl('core', 'linker/view_container'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["g" /* ViewContainer */] - }; - Identifiers.ElementRef = { - name: 'ElementRef', - moduleUrl: assetUrl('core', 'linker/element_ref'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ElementRef"] - }; - Identifiers.ViewContainerRef = { - name: 'ViewContainerRef', - moduleUrl: assetUrl('core', 'linker/view_container_ref'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ViewContainerRef"] - }; - Identifiers.ChangeDetectorRef = { - name: 'ChangeDetectorRef', - moduleUrl: assetUrl('core', 'change_detection/change_detector_ref'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ChangeDetectorRef"] - }; - Identifiers.RenderComponentType = { - name: 'RenderComponentType', - moduleUrl: assetUrl('core', 'render/api'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["RenderComponentType"] - }; - Identifiers.QueryList = { - name: 'QueryList', - moduleUrl: assetUrl('core', 'linker/query_list'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["QueryList"] - }; - Identifiers.TemplateRef = { - name: 'TemplateRef', - moduleUrl: assetUrl('core', 'linker/template_ref'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["TemplateRef"] - }; - Identifiers.TemplateRef_ = { - name: 'TemplateRef_', - moduleUrl: assetUrl('core', 'linker/template_ref'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["h" /* TemplateRef_ */] - }; - Identifiers.CodegenComponentFactoryResolver = { - name: 'CodegenComponentFactoryResolver', - moduleUrl: assetUrl('core', 'linker/component_factory_resolver'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["i" /* CodegenComponentFactoryResolver */] - }; - Identifiers.ComponentFactoryResolver = { - name: 'ComponentFactoryResolver', - moduleUrl: assetUrl('core', 'linker/component_factory_resolver'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ComponentFactoryResolver"] - }; - Identifiers.ComponentFactory = { - name: 'ComponentFactory', - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ComponentFactory"], - moduleUrl: assetUrl('core', 'linker/component_factory') - }; - Identifiers.ComponentRef_ = { - name: 'ComponentRef_', - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["j" /* ComponentRef_ */], - moduleUrl: assetUrl('core', 'linker/component_factory') - }; - Identifiers.ComponentRef = { - name: 'ComponentRef', - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ComponentRef"], - moduleUrl: assetUrl('core', 'linker/component_factory') - }; - Identifiers.NgModuleFactory = { - name: 'NgModuleFactory', - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModuleFactory"], - moduleUrl: assetUrl('core', 'linker/ng_module_factory') - }; - Identifiers.NgModuleInjector = { - name: 'NgModuleInjector', - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["k" /* NgModuleInjector */], - moduleUrl: assetUrl('core', 'linker/ng_module_factory') - }; - Identifiers.RegisterModuleFactoryFn = { - name: 'registerModuleFactory', - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["l" /* registerModuleFactory */], - moduleUrl: assetUrl('core', 'linker/ng_module_factory_loader') - }; - Identifiers.ValueUnwrapper = { name: 'ValueUnwrapper', moduleUrl: CD_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["m" /* ValueUnwrapper */] }; - Identifiers.Injector = { - name: 'Injector', - moduleUrl: assetUrl('core', 'di/injector'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injector"] - }; - Identifiers.ViewEncapsulation = { - name: 'ViewEncapsulation', - moduleUrl: assetUrl('core', 'metadata/view'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ViewEncapsulation"] - }; - Identifiers.ViewType = { - name: 'ViewType', - moduleUrl: assetUrl('core', 'linker/view_type'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["n" /* ViewType */] - }; - Identifiers.ChangeDetectionStrategy = { - name: 'ChangeDetectionStrategy', - moduleUrl: CD_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["ChangeDetectionStrategy"] - }; - Identifiers.StaticNodeDebugInfo = { - name: 'StaticNodeDebugInfo', - moduleUrl: assetUrl('core', 'linker/debug_context'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["o" /* StaticNodeDebugInfo */] - }; - Identifiers.DebugContext = { - name: 'DebugContext', - moduleUrl: assetUrl('core', 'linker/debug_context'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["p" /* DebugContext */] - }; - Identifiers.Renderer = { - name: 'Renderer', - moduleUrl: assetUrl('core', 'render/api'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Renderer"] - }; - Identifiers.SimpleChange = { name: 'SimpleChange', moduleUrl: CD_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["SimpleChange"] }; - Identifiers.UNINITIALIZED = { name: 'UNINITIALIZED', moduleUrl: CD_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["q" /* UNINITIALIZED */] }; - Identifiers.ChangeDetectorStatus = { - name: 'ChangeDetectorStatus', - moduleUrl: CD_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["r" /* ChangeDetectorStatus */] - }; - Identifiers.checkBinding = { - name: 'checkBinding', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].checkBinding - }; - Identifiers.devModeEqual = { name: 'devModeEqual', moduleUrl: CD_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["s" /* devModeEqual */] }; - Identifiers.inlineInterpolate = { - name: 'inlineInterpolate', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].inlineInterpolate - }; - Identifiers.interpolate = { - name: 'interpolate', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].interpolate - }; - Identifiers.castByValue = { - name: 'castByValue', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].castByValue - }; - Identifiers.EMPTY_ARRAY = { - name: 'EMPTY_ARRAY', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].EMPTY_ARRAY - }; - Identifiers.EMPTY_MAP = { - name: 'EMPTY_MAP', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].EMPTY_MAP - }; - Identifiers.createRenderElement = { - name: 'createRenderElement', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].createRenderElement - }; - Identifiers.selectOrCreateRenderHostElement = { - name: 'selectOrCreateRenderHostElement', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].selectOrCreateRenderHostElement - }; - Identifiers.pureProxies = [ - null, - { name: 'pureProxy1', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy1 }, - { name: 'pureProxy2', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy2 }, - { name: 'pureProxy3', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy3 }, - { name: 'pureProxy4', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy4 }, - { name: 'pureProxy5', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy5 }, - { name: 'pureProxy6', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy6 }, - { name: 'pureProxy7', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy7 }, - { name: 'pureProxy8', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy8 }, - { name: 'pureProxy9', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy9 }, - { name: 'pureProxy10', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].pureProxy10 }, - ]; - Identifiers.SecurityContext = { - name: 'SecurityContext', - moduleUrl: assetUrl('core', 'security'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["SecurityContext"], - }; - Identifiers.AnimationKeyframe = { - name: 'AnimationKeyframe', - moduleUrl: assetUrl('core', 'animation/animation_keyframe'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["t" /* AnimationKeyframe */] - }; - Identifiers.AnimationStyles = { - name: 'AnimationStyles', - moduleUrl: assetUrl('core', 'animation/animation_styles'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["u" /* AnimationStyles */] - }; - Identifiers.NoOpAnimationPlayer = { - name: 'NoOpAnimationPlayer', - moduleUrl: assetUrl('core', 'animation/animation_player'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["v" /* NoOpAnimationPlayer */] - }; - Identifiers.AnimationGroupPlayer = { - name: 'AnimationGroupPlayer', - moduleUrl: assetUrl('core', 'animation/animation_group_player'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["w" /* AnimationGroupPlayer */] - }; - Identifiers.AnimationSequencePlayer = { - name: 'AnimationSequencePlayer', - moduleUrl: assetUrl('core', 'animation/animation_sequence_player'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["x" /* AnimationSequencePlayer */] - }; - Identifiers.prepareFinalAnimationStyles = { - name: 'prepareFinalAnimationStyles', - moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["y" /* prepareFinalAnimationStyles */] - }; - Identifiers.balanceAnimationKeyframes = { - name: 'balanceAnimationKeyframes', - moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["z" /* balanceAnimationKeyframes */] - }; - Identifiers.clearStyles = { - name: 'clearStyles', - moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["A" /* clearStyles */] - }; - Identifiers.renderStyles = { - name: 'renderStyles', - moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["B" /* renderStyles */] - }; - Identifiers.collectAndResolveStyles = { - name: 'collectAndResolveStyles', - moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["C" /* collectAndResolveStyles */] - }; - Identifiers.LOCALE_ID = { - name: 'LOCALE_ID', - moduleUrl: assetUrl('core', 'i18n/tokens'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["LOCALE_ID"] - }; - Identifiers.TRANSLATIONS_FORMAT = { - name: 'TRANSLATIONS_FORMAT', - moduleUrl: assetUrl('core', 'i18n/tokens'), - runtime: __WEBPACK_IMPORTED_MODULE_0__angular_core__["TRANSLATIONS_FORMAT"] - }; - Identifiers.setBindingDebugInfo = { - name: 'setBindingDebugInfo', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].setBindingDebugInfo - }; - Identifiers.setBindingDebugInfoForChanges = { - name: 'setBindingDebugInfoForChanges', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].setBindingDebugInfoForChanges - }; - Identifiers.AnimationTransition = { - name: 'AnimationTransition', - moduleUrl: assetUrl('core', 'animation/animation_transition'), - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["D" /* AnimationTransition */] - }; - // This is just the interface! - Identifiers.InlineArray = { name: 'InlineArray', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: null }; - Identifiers.inlineArrays = [ - { name: 'InlineArray2', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].InlineArray2 }, - { name: 'InlineArray2', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].InlineArray2 }, - { name: 'InlineArray4', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].InlineArray4 }, - { name: 'InlineArray8', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].InlineArray8 }, - { name: 'InlineArray16', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].InlineArray16 }, - ]; - Identifiers.EMPTY_INLINE_ARRAY = { - name: 'EMPTY_INLINE_ARRAY', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].EMPTY_INLINE_ARRAY - }; - Identifiers.InlineArrayDynamic = { - name: 'InlineArrayDynamic', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].InlineArrayDynamic - }; - Identifiers.subscribeToRenderElement = { - name: 'subscribeToRenderElement', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].subscribeToRenderElement - }; - Identifiers.createRenderComponentType = { - name: 'createRenderComponentType', - moduleUrl: VIEW_UTILS_MODULE_URL, - runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].createRenderComponentType - }; - Identifiers.noop = { name: 'noop', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: __WEBPACK_IMPORTED_MODULE_1__private_import_core__["d" /* view_utils */].noop }; - return Identifiers; -}()); -function Identifiers_tsickle_Closure_declarations() { - /** @type {?} */ - Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS; - /** @type {?} */ - Identifiers.ViewUtils; - /** @type {?} */ - Identifiers.AppView; - /** @type {?} */ - Identifiers.DebugAppView; - /** @type {?} */ - Identifiers.ViewContainer; - /** @type {?} */ - Identifiers.ElementRef; - /** @type {?} */ - Identifiers.ViewContainerRef; - /** @type {?} */ - Identifiers.ChangeDetectorRef; - /** @type {?} */ - Identifiers.RenderComponentType; - /** @type {?} */ - Identifiers.QueryList; - /** @type {?} */ - Identifiers.TemplateRef; - /** @type {?} */ - Identifiers.TemplateRef_; - /** @type {?} */ - Identifiers.CodegenComponentFactoryResolver; - /** @type {?} */ - Identifiers.ComponentFactoryResolver; - /** @type {?} */ - Identifiers.ComponentFactory; - /** @type {?} */ - Identifiers.ComponentRef_; - /** @type {?} */ - Identifiers.ComponentRef; - /** @type {?} */ - Identifiers.NgModuleFactory; - /** @type {?} */ - Identifiers.NgModuleInjector; - /** @type {?} */ - Identifiers.RegisterModuleFactoryFn; - /** @type {?} */ - Identifiers.ValueUnwrapper; - /** @type {?} */ - Identifiers.Injector; - /** @type {?} */ - Identifiers.ViewEncapsulation; - /** @type {?} */ - Identifiers.ViewType; - /** @type {?} */ - Identifiers.ChangeDetectionStrategy; - /** @type {?} */ - Identifiers.StaticNodeDebugInfo; - /** @type {?} */ - Identifiers.DebugContext; - /** @type {?} */ - Identifiers.Renderer; - /** @type {?} */ - Identifiers.SimpleChange; - /** @type {?} */ - Identifiers.UNINITIALIZED; - /** @type {?} */ - Identifiers.ChangeDetectorStatus; - /** @type {?} */ - Identifiers.checkBinding; - /** @type {?} */ - Identifiers.devModeEqual; - /** @type {?} */ - Identifiers.inlineInterpolate; - /** @type {?} */ - Identifiers.interpolate; - /** @type {?} */ - Identifiers.castByValue; - /** @type {?} */ - Identifiers.EMPTY_ARRAY; - /** @type {?} */ - Identifiers.EMPTY_MAP; - /** @type {?} */ - Identifiers.createRenderElement; - /** @type {?} */ - Identifiers.selectOrCreateRenderHostElement; - /** @type {?} */ - Identifiers.pureProxies; - /** @type {?} */ - Identifiers.SecurityContext; - /** @type {?} */ - Identifiers.AnimationKeyframe; - /** @type {?} */ - Identifiers.AnimationStyles; - /** @type {?} */ - Identifiers.NoOpAnimationPlayer; - /** @type {?} */ - Identifiers.AnimationGroupPlayer; - /** @type {?} */ - Identifiers.AnimationSequencePlayer; - /** @type {?} */ - Identifiers.prepareFinalAnimationStyles; - /** @type {?} */ - Identifiers.balanceAnimationKeyframes; - /** @type {?} */ - Identifiers.clearStyles; - /** @type {?} */ - Identifiers.renderStyles; - /** @type {?} */ - Identifiers.collectAndResolveStyles; - /** @type {?} */ - Identifiers.LOCALE_ID; - /** @type {?} */ - Identifiers.TRANSLATIONS_FORMAT; - /** @type {?} */ - Identifiers.setBindingDebugInfo; - /** @type {?} */ - Identifiers.setBindingDebugInfoForChanges; - /** @type {?} */ - Identifiers.AnimationTransition; - /** @type {?} */ - Identifiers.InlineArray; - /** @type {?} */ - Identifiers.inlineArrays; - /** @type {?} */ - Identifiers.EMPTY_INLINE_ARRAY; - /** @type {?} */ - Identifiers.InlineArrayDynamic; - /** @type {?} */ - Identifiers.subscribeToRenderElement; - /** @type {?} */ - Identifiers.createRenderComponentType; - /** @type {?} */ - Identifiers.noop; -} -/** - * @param {?} pkg - * @param {?=} path - * @param {?=} type - * @return {?} - */ -function assetUrl(pkg, path, type) { - if (path === void 0) { path = null; } - if (type === void 0) { type = 'src'; } - if (path == null) { - return "@angular/" + pkg + "/index"; - } - else { - return "@angular/" + pkg + "/" + type + "/" + path; - } -} -/** - * @param {?} identifier - * @return {?} - */ -function resolveIdentifier(identifier) { - return __WEBPACK_IMPORTED_MODULE_1__private_import_core__["c" /* reflector */].resolveIdentifier(identifier.name, identifier.moduleUrl, identifier.runtime); -} -/** - * @param {?} identifier - * @return {?} - */ -function createIdentifier(identifier) { - var /** @type {?} */ reference = __WEBPACK_IMPORTED_MODULE_1__private_import_core__["c" /* reflector */].resolveIdentifier(identifier.name, identifier.moduleUrl, identifier.runtime); - return { reference: reference }; -} -/** - * @param {?} identifier - * @return {?} - */ -function identifierToken(identifier) { - return { identifier: identifier }; -} -/** - * @param {?} identifier - * @return {?} - */ -function createIdentifierToken(identifier) { - return identifierToken(createIdentifier(identifier)); -} -/** - * @param {?} enumType - * @param {?} name - * @return {?} - */ -function createEnumIdentifier(enumType, name) { - var /** @type {?} */ resolvedEnum = __WEBPACK_IMPORTED_MODULE_1__private_import_core__["c" /* reflector */].resolveEnum(resolveIdentifier(enumType), name); - return { reference: resolvedEnum }; -} -//# sourceMappingURL=identifiers.js.map - -/***/ }), -/* 13 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["a"] = CompilerInjectable; -/** - * A replacement for \@Injectable to be used in the compiler, so that - * we don't try to evaluate the metadata in the compiler during AoT. - * This decorator is enough to make the compiler work with the ReflectiveInjector though. - * @return {?} - */ -function CompilerInjectable() { - return function (x) { return x; }; -} -//# sourceMappingURL=injectable.js.map - -/***/ }), -/* 14 */ +/* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isArray_1 = __webpack_require__(52); -var isObject_1 = __webpack_require__(439); -var isFunction_1 = __webpack_require__(189); -var tryCatch_1 = __webpack_require__(21); -var errorObject_1 = __webpack_require__(19); -var UnsubscriptionError_1 = __webpack_require__(436); +var isArray_1 = __webpack_require__(30); +var isObject_1 = __webpack_require__(162); +var isFunction_1 = __webpack_require__(85); +var tryCatch_1 = __webpack_require__(12); +var errorObject_1 = __webpack_require__(10); +var UnsubscriptionError_1 = __webpack_require__(163); /** * Represents a disposable resource, such as the execution of an Observable. A * Subscription has one important method, `unsubscribe`, that takes no argument @@ -5165,840 +16005,15 @@ function flattenUnsubscriptionErrors(errors) { //# sourceMappingURL=Subscription.js.map /***/ }), -/* 15 */, -/* 16 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["b"] = getDOM; -/* unused harmony export setDOM */ -/* harmony export (immutable) */ __webpack_exports__["c"] = setRootDomAdapter; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DomAdapter; }); -/** - * @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 /** @type {?} */ _DOM = null; -/** - * @return {?} - */ -function getDOM() { - return _DOM; -} -/** - * @param {?} adapter - * @return {?} - */ -function setDOM(adapter) { - _DOM = adapter; -} -/** - * @param {?} adapter - * @return {?} - */ -function setRootDomAdapter(adapter) { - if (!_DOM) { - _DOM = adapter; - } -} -/** - * Provides DOM operations in an environment-agnostic way. - * - * \@security Tread carefully! Interacting with the DOM directly is dangerous and - * can introduce XSS risks. - * @abstract - */ -var DomAdapter = (function () { - function DomAdapter() { - this.resourceLoaderType = null; - } - /** - * @abstract - * @param {?} element - * @param {?} name - * @return {?} - */ - DomAdapter.prototype.hasProperty = function (element /** TODO #9100 */, name) { }; - /** - * @abstract - * @param {?} el - * @param {?} name - * @param {?} value - * @return {?} - */ - DomAdapter.prototype.setProperty = function (el, name, value) { }; - /** - * @abstract - * @param {?} el - * @param {?} name - * @return {?} - */ - DomAdapter.prototype.getProperty = function (el, name) { }; - /** - * @abstract - * @param {?} el - * @param {?} methodName - * @param {?} args - * @return {?} - */ - DomAdapter.prototype.invoke = function (el, methodName, args) { }; - /** - * @abstract - * @param {?} error - * @return {?} - */ - DomAdapter.prototype.logError = function (error) { }; - /** - * @abstract - * @param {?} error - * @return {?} - */ - DomAdapter.prototype.log = function (error) { }; - /** - * @abstract - * @param {?} error - * @return {?} - */ - DomAdapter.prototype.logGroup = function (error) { }; - /** - * @abstract - * @return {?} - */ - DomAdapter.prototype.logGroupEnd = function () { }; - Object.defineProperty(DomAdapter.prototype, "attrToPropMap", { - /** - * Maps attribute names to their corresponding property names for cases - * where attribute name doesn't match property name. - * @return {?} - */ - get: function () { return this._attrToPropMap; }, - /** - * @param {?} value - * @return {?} - */ - set: function (value) { this._attrToPropMap = value; }, - enumerable: true, - configurable: true - }); - ; - ; - /** - * @abstract - * @param {?} templateHtml - * @return {?} - */ - DomAdapter.prototype.parse = function (templateHtml) { }; - /** - * @abstract - * @param {?} selector - * @return {?} - */ - DomAdapter.prototype.query = function (selector) { }; - /** - * @abstract - * @param {?} el - * @param {?} selector - * @return {?} - */ - DomAdapter.prototype.querySelector = function (el /** TODO #9100 */, selector) { }; - /** - * @abstract - * @param {?} el - * @param {?} selector - * @return {?} - */ - DomAdapter.prototype.querySelectorAll = function (el /** TODO #9100 */, selector) { }; - /** - * @abstract - * @param {?} el - * @param {?} evt - * @param {?} listener - * @return {?} - */ - DomAdapter.prototype.on = function (el /** TODO #9100 */, evt /** TODO #9100 */, listener) { }; - /** - * @abstract - * @param {?} el - * @param {?} evt - * @param {?} listener - * @return {?} - */ - DomAdapter.prototype.onAndCancel = function (el /** TODO #9100 */, evt /** TODO #9100 */, listener) { }; - /** - * @abstract - * @param {?} el - * @param {?} evt - * @return {?} - */ - DomAdapter.prototype.dispatchEvent = function (el /** TODO #9100 */, evt) { }; - /** - * @abstract - * @param {?} eventType - * @return {?} - */ - DomAdapter.prototype.createMouseEvent = function (eventType) { }; - /** - * @abstract - * @param {?} eventType - * @return {?} - */ - DomAdapter.prototype.createEvent = function (eventType) { }; - /** - * @abstract - * @param {?} evt - * @return {?} - */ - DomAdapter.prototype.preventDefault = function (evt) { }; - /** - * @abstract - * @param {?} evt - * @return {?} - */ - DomAdapter.prototype.isPrevented = function (evt) { }; - /** - * @abstract - * @param {?} el - * @return {?} - */ - DomAdapter.prototype.getInnerHTML = function (el) { }; - /** - * Returns content if el is a