diff --git a/app.uhk.js b/app.uhk.js deleted file mode 100644 index 076fa191..00000000 --- a/app.uhk.js +++ /dev/null @@ -1,30073 +0,0 @@ -webpackJsonp([1],[ -/* 0 */, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */, -/* 5 */, -/* 6 */, -/* 7 */, -/* 8 */, -/* 9 */, -/* 10 */, -/* 11 */, -/* 12 */, -/* 13 */, -/* 14 */ -/***/ (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__(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)); - - -/***/ }), -/* 15 */, -/* 16 */, -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -function assertUInt8(target, key) { - return assertInteger(target, key, 0, 0xFF); -} -exports.assertUInt8 = assertUInt8; -function assertInt8(target, key) { - return assertInteger(target, key, -0x80, 0x7F); -} -exports.assertInt8 = assertInt8; -function assertUInt16(target, key) { - return assertInteger(target, key, 0, 0xFFFF); -} -exports.assertUInt16 = assertUInt16; -function assertInt16(target, key) { - return assertInteger(target, key, -0x8000, 0x7FFF); -} -exports.assertInt16 = assertInt16; -function assertUInt32(target, key) { - return assertInteger(target, key, 0, 0xFFFFFFFF); -} -exports.assertUInt32 = assertUInt32; -function assertInt32(target, key) { - return assertInteger(target, key, -0x80000000, 0x7FFFFFFF); -} -exports.assertInt32 = assertInt32; -function assertCompactLength(target, key) { - return assertUInt16(target, key); -} -exports.assertCompactLength = assertCompactLength; -function assertInteger(target, key, min, max) { - var priv = '_' + key; - function getter() { - return this[priv]; - } - function setter(newVal) { - if (this[priv] !== newVal) { - if (newVal < min || newVal > max) { - throw target.constructor.name + "." + key + ": " + - ("Integer " + newVal + " is outside the valid [" + min + ", " + max + "] interval"); - } - this[priv] = newVal; - } - } - Object.defineProperty(target, key, { - get: getter, - set: setter, - enumerable: true, - configurable: true - }); -} -function assertEnum(enumerated) { - return function (target, key) { - var priv = '_' + key; - function getter() { - return this[priv]; - } - function setter(newVal) { - if (this[priv] !== newVal) { - if (enumerated[newVal] === undefined) { - throw target.constructor.name + "." + key + ": " + newVal + " is not enum"; - } - this[priv] = newVal; - } - } - Object.defineProperty(target, key, { - get: getter, - set: setter, - enumerable: true, - configurable: true - }); - }; -} -exports.assertEnum = assertEnum; - - -/***/ }), -/* 18 */, -/* 19 */, -/* 20 */, -/* 21 */, -/* 22 */ -/***/ (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 }); -/* tslint:disable:variable-name */ -var __svg__ = { filename: __webpack_require__.p +"assets/compiled_sprite.svg" }; -/* tslint:enable:variable-name */ -var core_1 = __webpack_require__(1); -var keystroke_type_1 = __webpack_require__(98); -var MapperService = (function () { - function MapperService() { - this.initScanCodeTextMap(); - this.initScancodeIcons(); - this.initNameToFileNames(); - } - 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 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); - }; - MapperService.prototype.modifierMapper = function (x) { - if (x < 8) { - return Math.floor(x / 2) * 4 + 1 - x; // 1, 0, 3, 2, 5, 4, 7, 6 - } - else { - return x; - } - }; - // TODO: read the mapping from JSON - MapperService.prototype.initScanCodeTextMap = function () { - 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.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(); - this.nameToFileName.set('toggle', 'icon-kbd__fn--toggle'); - this.nameToFileName.set('switch-keymap', 'icon-kbd__mod--switch-keymap'); - this.nameToFileName.set('macro', 'icon-icon__macro'); - this.nameToFileName.set('shift', 'icon-kbd__default--modifier-shift'); - this.nameToFileName.set('option', 'icon-kbd__default--modifier-option'); - this.nameToFileName.set('command', 'icon-kbd__default--modifier-command'); - this.nameToFileName.set('mouse', 'icon-kbd__mouse'); - this.nameToFileName.set('left-arrow', 'icon-kbd__mod--arrow-left'); - this.nameToFileName.set('right-arrow', 'icon-kbd__mod--arrow-right'); - this.nameToFileName.set('down-arrow', 'icon-kbd__mod--arrow-down'); - this.nameToFileName.set('up-arrow', 'icon-kbd__mod--arrow-up'); - this.nameToFileName.set('scroll-left', 'icon-kbd__mouse--scroll-left'); - this.nameToFileName.set('scroll-right', 'icon-kbd__mouse--scroll-right'); - this.nameToFileName.set('scroll-down', 'icon-kbd__mouse--scroll-down'); - this.nameToFileName.set('scroll-up', 'icon-kbd__mouse--scroll-up'); - }; - return MapperService; -}()); -MapperService = __decorate([ - core_1.Injectable(), - __metadata("design:paramtypes", []) -], MapperService); -exports.MapperService = MapperService; - - -/***/ }), -/* 23 */, -/* 24 */, -/* 25 */, -/* 26 */, -/* 27 */, -/* 28 */, -/* 29 */, -/* 30 */, -/* 31 */, -/* 32 */, -/* 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"; - -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__(136)); -__export(__webpack_require__(232)); - - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -__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 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); - newKeymap.abbreviation = generateAbbr(state.keymaps, newKeymap.abbreviation); - newKeymap.name = generateName(state.keymaps, newKeymap.name); - newKeymap.isDefault = (state.keymaps.length === 0); - changedUserConfiguration.keymaps = state.keymaps.concat(newKeymap); - break; - } - case actions_1.KeymapActions.EDIT_NAME: - { - 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.name = name_1; - } - return keymap; - }); - break; - } - case actions_1.KeymapActions.EDIT_ABBR: - 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.abbreviation = abbr_1; - } - else { - keymap = keymap.renameKeymap(action.payload.abbr, action.payload.newAbbr); - } - return keymap; - }); - break; - 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.isDefault = keymap.abbreviation === action.payload; - } - return keymap; - }); - break; - case actions_1.KeymapActions.REMOVE: - var isDefault_1; - var filtered = state.keymaps.filter(function (keymap) { - if (keymap.abbreviation === action.payload) { - isDefault_1 = keymap.isDefault; - return false; - } - return true; - }); - // If deleted one is default set default keymap to the first on the list of keymaps - if (isDefault_1 && filtered.length > 0) { - filtered[0].isDefault = true; - } - // Check for the deleted keymap in other keymaps - changedUserConfiguration.keymaps = filtered.map(function (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); - newKeymap_1.layers = newKeymap_1.layers.slice(); - var layerIndex = action.payload.layer; - 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]); - newLayer.modules = newLayer.modules.slice(); - newLayer.modules[moduleIndex] = newModule; - var keyIndex = action.payload.key; - newModule.keyActions = newModule.keyActions.slice(); - newModule.keyActions[keyIndex] = key_action_1.Helper.createKeyAction(action.payload.keyAction); - changedUserConfiguration.keymaps = state.keymaps.map(function (keymap) { - if (keymap.abbreviation === newKeymap_1.abbreviation) { - keymap = newKeymap_1; - } - return keymap; - }); - break; - } - case actions_1.KeymapActions.CHECK_MACRO: - changedUserConfiguration.keymaps = state.keymaps.map(function (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(); - newMacro.id = generateMacroId(state.macros); - newMacro.name = generateName(state.macros, 'New macro'); - newMacro.isLooped = false; - newMacro.isPrivate = true; - newMacro.macroActions = []; - changedUserConfiguration.macros = state.macros.concat(newMacro); - break; - } - case actions_1.MacroActions.DUPLICATE: - { - 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); - break; - } - case actions_1.MacroActions.EDIT_NAME: - { - var name_2 = generateName(state.macros, action.payload.name); - changedUserConfiguration.macros = state.macros.map(function (macro) { - if (macro.id === action.payload.id) { - macro.name = name_2; - } - return macro; - }); - break; - } - case actions_1.MacroActions.REMOVE: - changedUserConfiguration.macros = state.macros.filter(function (macro) { return macro.id !== action.payload; }); - break; - 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.macroActions.push(action.payload.action); - } - return macro; - }); - break; - 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.macroActions[action.payload.index] = action.payload.action; - } - return macro; - }); - break; - 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.macroActions.splice(action.payload.index, 1); - } - return macro; - }); - break; - case actions_1.MacroActions.REORDER_ACTION: - changedUserConfiguration.macros = state.macros.map(function (macro) { - if (macro.id === action.payload.id) { - var newIndex = action.payload.newIndex; - // We need to reduce the new index for one when we are moving action down - if (newIndex > action.payload.oldIndex) { - --newIndex; - } - macro = new macro_1.Macro(macro); - macro.macroActions.splice(newIndex, 0, macro.macroActions.splice(action.payload.oldIndex, 1)[0]); - } - return macro; - }); - break; - default: - break; - } - return changedUserConfiguration; -} -exports.default = default_1; -function getUserConfiguration() { - return function (state$) { return state$ - .select(function (state) { return state.userConfiguration; }); }; -} -exports.getUserConfiguration = getUserConfiguration; -function getKeymaps() { - return function (state$) { return state$ - .select(function (state) { return state.userConfiguration.keymaps; }); }; -} -exports.getKeymaps = getKeymaps; -function getKeymap(abbr) { - if (abbr === undefined) { - return getDefaultKeymap(); - } - return function (state$) { return getKeymaps()(state$) - .map(function (keymaps) { - return keymaps.find(function (keymap) { return keymap.abbreviation === abbr; }); - }); }; -} -exports.getKeymap = getKeymap; -function getDefaultKeymap() { - return function (state$) { return getKeymaps()(state$) - .map(function (keymaps) { - return keymaps.find(function (keymap) { return keymap.isDefault; }); - }); }; -} -exports.getDefaultKeymap = getDefaultKeymap; -function getMacros() { - return function (state$) { return state$ - .select(function (state) { return state.userConfiguration.macros; }); }; -} -exports.getMacros = getMacros; -function getMacro(id) { - if (isNaN(id)) { - return function () { return Observable_1.Observable.of(undefined); }; - } - else { - return function (state$) { return getMacros()(state$) - .map(function (macros) { return macros.find(function (macro) { return macro.id === id; }); }); }; - } -} -exports.getMacro = getMacro; -function generateAbbr(keymaps, abbr) { - var chars = '23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); - var position = 0; - while (keymaps.some(function (keymap) { return keymap.abbreviation === abbr; })) { - abbr = abbr.substring(0, abbr.length - 1) + chars[position]; - ++position; - } - return abbr; -} -function generateName(items, name) { - var suffix = 2; - var oldName = name; - while (items.some(function (item) { return item.name === name; })) { - name = oldName + (" (" + suffix + ")"); - ++suffix; - } - return name; -} -function generateMacroId(macros) { - var newId = 0; - macros.forEach(function (macro) { - if (macro.id > newId) { - newId = macro.id; - } - }); - return newId + 1; -} -function checkExistence(layers, property, value) { - 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) { - keyActionsToClear.push({ - layerIdx: layerIdx, - moduleIdx: moduleIdx, - keyActionIdx: keyActionIdx - }); - } - } - } - } - 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; -} - - -/***/ }), -/* 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"; - -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 Tab = (function () { - function Tab() { - this.validAction = new core_1.EventEmitter(); - } - return Tab; -}()); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], Tab.prototype, "validAction", void 0); -exports.Tab = Tab; - - -/***/ }), -/* 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"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var MacroActionId; -(function (MacroActionId) { - MacroActionId[MacroActionId["KeyMacroAction"] = 0] = "KeyMacroAction"; - /* - 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"] = 63] = "LastKeyMacroAction"; - MacroActionId[MacroActionId["MouseButtonMacroAction"] = 64] = "MouseButtonMacroAction"; - /* - 64 - 66 are reserved for MouseButtonMacroAction - PressMouseButtonsMacroAction = 64, - HoldMouseButtonsMacroAction = 65, - ReleaseMouseButtonsMacroAction = 66, - */ - 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) { - MacroSubAction[MacroSubAction["press"] = 0] = "press"; - MacroSubAction[MacroSubAction["hold"] = 1] = "hold"; - MacroSubAction[MacroSubAction["release"] = 2] = "release"; -})(MacroSubAction = exports.MacroSubAction || (exports.MacroSubAction = {})); -exports.macroActionType = { - KeyMacroAction: 'key', - MouseButtonMacroAction: 'mouseButton', - MoveMouseMacroAction: 'moveMouse', - ScrollMouseMacroAction: 'scrollMouse', - DelayMacroAction: 'delay', - TextMacroAction: 'text' -}; -var MacroAction = (function () { - function MacroAction() { - } - MacroAction.prototype.assertMacroActionType = function (jsObject) { - var macroActionClassname = this.constructor.name; - var macroActionTypeString = exports.macroActionType[macroActionClassname]; - if (jsObject.macroActionType !== macroActionTypeString) { - throw "Invalid " + macroActionClassname + ".macroActionType: " + jsObject.macroActionType; - } - }; - MacroAction.prototype.readAndAssertMacroActionId = function (buffer) { - var classname = this.constructor.name; - var readMacroActionId = buffer.readUInt8(); - var macroActionId = MacroActionId[classname]; - if (macroActionId === MacroActionId.KeyMacroAction) { - if (readMacroActionId < MacroActionId.KeyMacroAction || readMacroActionId > MacroActionId.LastKeyMacroAction) { - throw "Invalid " + classname + " first byte: " + readMacroActionId; - } - } - else if (macroActionId === MacroActionId.MouseButtonMacroAction) { - if (readMacroActionId < MacroActionId.MouseButtonMacroAction || - readMacroActionId > MacroActionId.LastMouseButtonMacroAction) { - throw "Invalid " + classname + " first byte: " + readMacroActionId; - } - } - else if (readMacroActionId !== macroActionId) { - throw "Invalid " + classname + " first byte: " + readMacroActionId; - } - return readMacroActionId; - }; - return MacroAction; -}()); -exports.MacroAction = MacroAction; - - -/***/ }), -/* 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. - -// 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 -// Writable. - - - -/**/ - -var processNextTick = __webpack_require__(101); -/**/ - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var util = __webpack_require__(76); -util.inherits = __webpack_require__(58); -/**/ - -var Readable = __webpack_require__(251); -var Writable = __webpack_require__(150); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -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); - } -} - -/***/ }), -/* 51 */, -/* 52 */, -/* 53 */, -/* 54 */, -/* 55 */, -/* 56 */, -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -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\""); - } - 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; - - -/***/ }), -/* 58 */ -/***/ (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 - } -} - - -/***/ }), -/* 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. -// -// 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. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -/* 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 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 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. -// -// 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 EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - } else if (isObject(handler)) { - args = Array.prototype.slice.call(arguments, 1); - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.prototype.listenerCount = function(type) { - if (this._events) { - var evlistener = this._events[type]; - - if (isFunction(evlistener)) - return 1; - else if (evlistener) - return evlistener.length; - } - return 0; -}; - -EventEmitter.listenerCount = function(emitter, type) { - return emitter.listenerCount(type); -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - - -/***/ }), -/* 148 */ -/***/ (function(module, exports, __webpack_require__) { - -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 -// "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 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; - -/* */ -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; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = __webpack_require__(76); -util.inherits = __webpack_require__(58); -/**/ - -/**/ -var internalUtil = { - deprecate: __webpack_require__(836) -}; -/**/ - -/**/ -var Stream = __webpack_require__(252); -/**/ - -/**/ -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 WritableState(options, stream) { - Duplex = Duplex || __webpack_require__(50); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // 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. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // 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'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // 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. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || __webpack_require__(50); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (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); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// 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; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -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 (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - 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); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -// 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, 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; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - - 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) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - 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); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -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) { - state.finished = true; - stream.emit('finish'); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -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; - } -} - -Object.defineProperty(Writable.prototype, 'destroyed', { - get: function () { - if (this._writableState === undefined) { - return false; - } - 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(); - }; - /** - * Continue with the next action (called when the current action is finished) - * @return {?} - */ - NotifierQueueService.prototype.continue = function () { - this.isActionInProgress = false; - this.tryToRunNextAction(); - }; - /** - * 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 { - 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 - } - }; - }; - 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; - return new Promise(function (resolve, reject) { - // For the first run ... - _this.remaining = duration; - // Setup, then start the timer - _this.finishPromiseResolver = resolve; - _this.continue(); - }); - }; - /** - * Pause the timer - * @return {?} - */ - NotifierTimerService.prototype.pause = function () { - clearTimeout(this.timerId); - this.remaining -= new Date().getTime() - this.now; - }; - /** - * Continue the timer - * @return {?} - */ - NotifierTimerService.prototype.continue = function () { - var _this = this; - this.now = new Date().getTime(); - this.timerId = setTimeout(function () { - _this.finish(); - }, this.remaining); - }; - /** - * Stop the timer - * @return {?} - */ - NotifierTimerService.prototype.stop = function () { - clearTimeout(this.timerId); - this.remaining = 0; - }; - /** - * Finish up the timeout by resolving the timer promise - * @return {?} - */ - NotifierTimerService.prototype.finish = function () { - this.finishPromiseResolver(); - }; - return NotifierTimerService; -}()); -NotifierTimerService.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, -]; -/** - * @nocollapse - */ -NotifierTimerService.ctorParameters = function () { return []; }; - -/** - * 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; - } - /** - * 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); - }; - /** - * Get the notifier config - * - * @return {?} - */ - NotifierNotificationComponent.prototype.getConfig = function () { - return this.config; - }; - /** - * Get notification element height (in px) - * - * @return {?} - */ - NotifierNotificationComponent.prototype.getHeight = function () { - return this.elementHeight; - }; - /** - * Get notification element width (in px) - * - * @return {?} - */ - NotifierNotificationComponent.prototype.getWidth = function () { - return this.elementWidth; - }; - /** - * Get notification shift offset (in px) - * - * @return {?} - */ - NotifierNotificationComponent.prototype.getShift = function () { - return this.elementShift; - }; - /** - * 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 - } - }); - }; - /** - * 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 - } - }); - }; - /** - * 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; -}()); -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 __()); - }; -})(); - - - - - - - - - - - - - - - -var DevtoolsDispatcher = (function (_super) { - __extends(DevtoolsDispatcher, _super); - function DevtoolsDispatcher() { - return _super !== null && _super.apply(this, arguments) || this; - } - 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_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_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__["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_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]; - var nextState = reducer(liftedState, action); - extension.notify(action, nextState); - return nextState; - }, liftedInitialState] - ]).subscribe(liftedStateSubject); - var liftedState$ = liftedStateSubject.asObservable(); - 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$; - this.state = state$; - } - StoreDevtools.prototype.dispatch = function (action) { - this.dispatcher.dispatch(action); - }; - StoreDevtools.prototype.next = function (action) { - this.dispatcher.dispatch(action); - }; - StoreDevtools.prototype.error = function (error) { }; - StoreDevtools.prototype.complete = function () { }; - StoreDevtools.prototype.performAction = function (action) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].performAction(action)); - }; - StoreDevtools.prototype.reset = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].reset()); - }; - StoreDevtools.prototype.rollback = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].rollback()); - }; - StoreDevtools.prototype.commit = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].commit()); - }; - StoreDevtools.prototype.sweep = function () { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].sweep()); - }; - StoreDevtools.prototype.toggleAction = function (id) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].toggleAction(id)); - }; - StoreDevtools.prototype.jumpToState = function (index) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].jumpToState(index)); - }; - StoreDevtools.prototype.importState = function (nextLiftedState) { - this.dispatch(__WEBPACK_IMPORTED_MODULE_13__actions__["b" /* StoreDevtoolActions */].importState(nextLiftedState)); - }; - 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 - -/***/ }), -/* 223 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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); - - - - - - - - - -var ExtensionActionTypes = { - START: 'START', - DISPATCH: 'DISPATCH', - STOP: 'STOP', - ACTION: 'ACTION' -}; -var REDUX_DEVTOOLS_EXTENSION = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["OpaqueToken"]('Redux Devtools Extension'); -var DevtoolsExtension = (function () { - function DevtoolsExtension(devtoolsExtension) { - this.instanceId = "ngrx-store-" + Date.now(); - this.devtoolsExtension = devtoolsExtension; - this.createActionStreams(); - } - DevtoolsExtension.prototype.notify = function (action, state) { - if (!this.devtoolsExtension) { - return; - } - this.devtoolsExtension.send(null, state, false, this.instanceId); - }; - DevtoolsExtension.prototype.createChangesObservable = function () { - var _this = this; - if (!this.devtoolsExtension) { - 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 }); - connection.subscribe(function (change) { return subscriber.next(change); }); - return connection.unsubscribe; - }); - }; - DevtoolsExtension.prototype.createActionStreams = function () { - var _this = this; - // Listens to all changes based on our instanceId - var changes$ = __WEBPACK_IMPORTED_MODULE_5_rxjs_operator_share__["share"].call(this.createChangesObservable()); - // Listen for the start action - var start$ = __WEBPACK_IMPORTED_MODULE_3_rxjs_operator_filter__["filter"].call(changes$, function (change) { return change.type === ExtensionActionTypes.START; }); - // 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_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_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); }] - ]); - var actionsUntilStop$ = __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil__["takeUntil"].call(actions$, stop$); - var liftedUntilStop$ = __WEBPACK_IMPORTED_MODULE_7_rxjs_operator_takeUntil__["takeUntil"].call(liftedActions$, stop$); - // Only take the action sources between the start/stop events - this.actions$ = __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap__["switchMap"].call(start$, function () { return actionsUntilStop$; }); - this.liftedActions$ = __WEBPACK_IMPORTED_MODULE_6_rxjs_operator_switchMap__["switchMap"].call(start$, function () { return liftedUntilStop$; }); - }; - DevtoolsExtension.prototype.unwrapAction = function (action) { - return typeof action === 'string' ? eval("(" + action + ")") : action; - }; - 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 - -/***/ }), -/* 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 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"]; }); - - - - - - -var DockMonitorModule = (function () { - function DockMonitorModule() { - } - DockMonitorModule.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ - imports: [ - __WEBPACK_IMPORTED_MODULE_1__angular_common__["CommonModule"] - ], - declarations: [ - __WEBPACK_IMPORTED_MODULE_2__commander__["a" /* CommanderComponent */], - __WEBPACK_IMPORTED_MODULE_3__dock__["a" /* DockComponent */], - __WEBPACK_IMPORTED_MODULE_4__dock_monitor__["a" /* DockMonitorComponent */] - ], - providers: [ - __WEBPACK_IMPORTED_MODULE_5__actions__["a" /* DockActions */] - ], - exports: [ - __WEBPACK_IMPORTED_MODULE_4__dock_monitor__["a" /* DockMonitorComponent */] - ] - },] }, - ]; - /** @nocollapse */ - DockMonitorModule.ctorParameters = []; - return DockMonitorModule; -}()); - -//# sourceMappingURL=index.js.map - -/***/ }), -/* 226 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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__); - -var KNOWN = { - Array: 'array', - Object: 'object', - Null: 'null', - Undefined: 'undefined', - Boolean: 'boolean', - Number: 'number', - String: 'string', - Symbol: 'symbol', - Function: 'function', - Iterable: 'iterable' -}; -function getTypeOf(object) { - var literalType = typeof object; - if (literalType === 'object') { - if (Array.isArray(object)) { - return KNOWN.Array; - } - if (object === null) { - return KNOWN.Null; - } - if (typeof object[Symbol.iterator] === 'function') { - return KNOWN.Iterable; - } - } - return literalType; -} -var arrayLength = function (value) { return value.length; }; -var lengthLabel = function (single, plural) { return function (length) { return (length + " " + (length === 1 ? single : plural)); }; }; -var typeIndicator = function (typeIndicator) { return function (input) { return (typeIndicator + " " + input); }; }; -var typeIdentity = function (type) { return function () { return type; }; }; -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_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_IMPORTED_MODULE_0__ngrx_core_compose__["compose"](withQuotes, toString), - _a[KNOWN.Function] = typeIdentity(KNOWN.Function), - _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]; }; -var getLabelFor = function (object) { return labelFactoriesForTypes[getTypeOf(object)](object); }; -function getChildrenFor(object) { - var literalType = getTypeOf(object); - if (literalType === KNOWN.Object) { - return Object.getOwnPropertyNames(object).map(function (name) { - return { key: name, value: object[name] }; - }); - } - else if (literalType === KNOWN.Array) { - return object.map(function (value, index) { - return { key: index, value: value }; - }); - } - else if (literalType === KNOWN.Iterable) { - return Array.from(object).map(function (value, index) { - return { key: index, value: value }; - }); - } - throw new TypeError("Tried to get children for non-enumerable type \"" + literalType + "\""); -} -var _a; -//# sourceMappingURL=types.js.map - -/***/ }), -/* 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"; - -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__(230)); -__export(__webpack_require__(617)); - - -/***/ }), -/* 230 */ -/***/ (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 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. - - - -/**/ - -var processNextTick = __webpack_require__(101); -/**/ - -module.exports = Readable; - -/**/ -var isArray = __webpack_require__(220); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = __webpack_require__(147).EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = __webpack_require__(252); -/**/ - -// TODO(bmeurer): Change this back to const once hole checks are -// properly optimized away early in Ignition+TurboFan. -/**/ -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__(76); -util.inherits = __webpack_require__(58); -/**/ - -/**/ -var debugUtil = __webpack_require__(834); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -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. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - 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]]; - } -} - -function ReadableState(options, stream) { - Duplex = Duplex || __webpack_require__(50); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - 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 - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // 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 - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - 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'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = __webpack_require__(254).StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || __webpack_require__(50); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - 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) { - 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, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } 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) { - 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 { - addChunk(stream, state, chunk, 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, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -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__(254).StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(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; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this, unpipeInfo); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - 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. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - 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); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13), __webpack_require__(38))) - -/***/ }), -/* 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. -// -// 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. - -var Buffer = __webpack_require__(75).Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - 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; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} - - -/***/ }), -/* 255 */ -/***/ (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. - -// 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; -} - -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); - } -} - -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 */, -/* 469 */, -/* 470 */, -/* 471 */, -/* 472 */, -/* 473 */, -/* 474 */, -/* 475 */, -/* 476 */, -/* 477 */, -/* 478 */, -/* 479 */, -/* 480 */, -/* 481 */, -/* 482 */, -/* 483 */, -/* 484 */, -/* 485 */, -/* 486 */, -/* 487 */, -/* 488 */, -/* 489 */, -/* 490 */, -/* 491 */, -/* 492 */, -/* 493 */, -/* 494 */, -/* 495 */, -/* 496 */, -/* 497 */, -/* 498 */, -/* 499 */, -/* 500 */, -/* 501 */, -/* 502 */, -/* 503 */, -/* 504 */, -/* 505 */, -/* 506 */, -/* 507 */, -/* 508 */, -/* 509 */, -/* 510 */, -/* 511 */, -/* 512 */, -/* 513 */, -/* 514 */, -/* 515 */, -/* 516 */, -/* 517 */, -/* 518 */, -/* 519 */, -/* 520 */, -/* 521 */, -/* 522 */, -/* 523 */, -/* 524 */, -/* 525 */, -/* 526 */, -/* 527 */, -/* 528 */, -/* 529 */, -/* 530 */, -/* 531 */, -/* 532 */, -/* 533 */, -/* 534 */, -/* 535 */, -/* 536 */, -/* 537 */, -/* 538 */, -/* 539 */, -/* 540 */, -/* 541 */, -/* 542 */, -/* 543 */, -/* 544 */, -/* 545 */, -/* 546 */, -/* 547 */, -/* 548 */, -/* 549 */, -/* 550 */, -/* 551 */, -/* 552 */, -/* 553 */, -/* 554 */, -/* 555 */, -/* 556 */, -/* 557 */, -/* 558 */, -/* 559 */, -/* 560 */, -/* 561 */, -/* 562 */, -/* 563 */, -/* 564 */, -/* 565 */, -/* 566 */, -/* 567 */, -/* 568 */, -/* 569 */, -/* 570 */, -/* 571 */, -/* 572 */, -/* 573 */, -/* 574 */, -/* 575 */, -/* 576 */, -/* 577 */, -/* 578 */, -/* 579 */, -/* 580 */, -/* 581 */, -/* 582 */, -/* 583 */, -/* 584 */, -/* 585 */, -/* 586 */, -/* 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"; -/* unused harmony export _createReduxDevtoolsExtension */ -/* unused harmony export _createState */ -/* unused harmony export _createReducer */ -/* unused harmony export _createStateIfExtension */ -/* unused harmony export _createReducerIfExtension */ -/* 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); - - - - - -function _createReduxDevtoolsExtension() { - var legacyExtensionKey = 'devToolsExtension'; - var extensionKey = '__REDUX_DEVTOOLS_EXTENSION__'; - if (typeof window === 'object' && typeof window[legacyExtensionKey] !== 'undefined') { - return window[legacyExtensionKey]; - } - else if (typeof window === 'object' && typeof window[extensionKey] !== 'undefined') { - return window[extensionKey]; - } - else { - return null; - } -} -function _createState(devtools) { - return devtools.state; -} -function _createReducer(dispatcher, reducer) { - return new __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"](dispatcher, reducer); -} -function _createStateIfExtension(extension, injector, initialState) { - if (!!extension) { - var devtools = injector.get(__WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* StoreDevtools */]); - return _createState(devtools); - } - else { - 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, reducer) { - if (!!extension) { - 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"]); - return new __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["Reducer"](dispatcher, reducer); - } -} -function noMonitor() { - return null; -} -function _createOptions(_options) { - var DEFAULT_OPTIONS = { monitor: noMonitor }; - var options = typeof _options === 'function' ? _options() : _options; - options = Object.assign({}, DEFAULT_OPTIONS, options); - if (options.maxAge && options.maxAge < 2) { - throw new Error("Devtools 'maxAge' cannot be less than 2, got " + options.maxAge); - } - return options; -} -var StoreDevtoolsModule = (function () { - function StoreDevtoolsModule() { - } - StoreDevtoolsModule.instrumentStore = function (_options) { - if (_options === void 0) { _options = {}; } - return { - ngModule: StoreDevtoolsModule, - providers: [ - { - provide: __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["State"], - deps: [__WEBPACK_IMPORTED_MODULE_2__devtools__["b" /* StoreDevtools */]], - useFactory: _createState - }, - { - 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__["a" /* DevtoolsDispatcher */], __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]], - useFactory: _createReducer - }, - { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["b" /* STORE_DEVTOOLS_CONFIG */], - deps: [__WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */]], - useFactory: _createOptions - } - ] - }; - }; - StoreDevtoolsModule.instrumentOnlyWithExtension = function (_options) { - if (_options === void 0) { _options = {}; } - return { - ngModule: StoreDevtoolsModule, - 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"], __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"], __WEBPACK_IMPORTED_MODULE_1__ngrx_store__["INITIAL_REDUCER"]], - useFactory: _createReducerIfExtension - }, - { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */], - useValue: _options - }, - { - provide: __WEBPACK_IMPORTED_MODULE_3__config__["b" /* STORE_DEVTOOLS_CONFIG */], - deps: [__WEBPACK_IMPORTED_MODULE_3__config__["a" /* INITIAL_OPTIONS */]], - useFactory: _createOptions - } - ] - }; - }; - 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 - -/***/ }), -/* 596 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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); - - - -var INIT_ACTION = { type: __WEBPACK_IMPORTED_MODULE_0__ngrx_store__["Dispatcher"].INIT }; -/** -* Computes the next entry in the log by applying an action. -*/ -function computeNextEntry(reducer, action, state, error) { - if (error) { - return { - state: state, - error: 'Interrupted by an error up the chain' - }; - } - var nextState = state; - var nextError; - try { - nextState = reducer(state, action); - } - catch (err) { - nextError = err.toString(); - console.error(err.stack || err); - } - return { - state: nextState, - error: nextError - }; -} -/** -* Runs the reducer on invalidated actions to get a fresh computation log. -*/ -function recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds) { - // Optimization: exit early and return the same reference - // if we know nothing could have changed. - if (minInvalidatedStateIndex >= computedStates.length && - computedStates.length === stagedActionIds.length) { - return computedStates; - } - var nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex); - for (var i = minInvalidatedStateIndex; i < stagedActionIds.length; i++) { - var actionId = stagedActionIds[i]; - var action = actionsById[actionId].action; - var previousEntry = nextComputedStates[i - 1]; - var previousState = previousEntry ? previousEntry.state : committedState; - var previousError = previousEntry ? previousEntry.error : undefined; - var shouldSkip = skippedActionIds.indexOf(actionId) > -1; - var entry = shouldSkip ? - previousEntry : - computeNextEntry(reducer, action, previousState, previousError); - nextComputedStates.push(entry); - } - return nextComputedStates; -} -function liftInitialState(initialCommittedState, monitorReducer) { - return { - monitorState: monitorReducer(undefined, {}), - nextActionId: 1, - actionsById: { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }, - stagedActionIds: [0], - skippedActionIds: [], - committedState: initialCommittedState, - currentStateIndex: 0, - computedStates: [] - }; -} -/** -* Creates a history state reducer from an app's reducer. -*/ -function liftReducerWith(initialCommittedState, initialLiftedState, monitorReducer, options) { - if (options === void 0) { options = {}; } - /** - * Manages how the history actions modify the history state. - */ - return function (reducer) { return function (liftedState, liftedAction) { - 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; - if (!liftedState) { - // Prevent mutating initialLiftedState - actionsById = Object.create(actionsById); - } - function commitExcessActions(n) { - // Auto-commits n-number of excess actions. - var excess = n; - var idsToDelete = stagedActionIds.slice(1, excess + 1); - for (var i = 0; i < idsToDelete.length; i++) { - if (computedStates[i + 1].error) { - // Stop if error is found. Commit actions up to error. - excess = i; - idsToDelete = stagedActionIds.slice(1, excess + 1); - break; - } - else { - delete actionsById[idsToDelete[i]]; - } - } - skippedActionIds = skippedActionIds.filter(function (id) { return idsToDelete.indexOf(id) === -1; }); - stagedActionIds = [0].concat(stagedActionIds.slice(excess + 1)); - committedState = computedStates[excess].state; - computedStates = computedStates.slice(excess); - currentStateIndex = currentStateIndex > excess - ? currentStateIndex - excess - : 0; - } - // By default, agressively recompute every state whatever happens. - // This has O(n) performance, so we'll override this to a sensible - // 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__["a" /* ActionTypes */].RESET: { - // Get back to the state the store was created with. - actionsById = { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }; - nextActionId = 1; - stagedActionIds = [0]; - skippedActionIds = []; - committedState = initialCommittedState; - currentStateIndex = 0; - computedStates = []; - break; - } - 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_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }; - nextActionId = 1; - stagedActionIds = [0]; - skippedActionIds = []; - committedState = computedStates[currentStateIndex].state; - currentStateIndex = 0; - computedStates = []; - break; - } - case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].ROLLBACK: { - // Forget about any staged actions. - // Start again from the last committed state. - actionsById = { 0: __WEBPACK_IMPORTED_MODULE_1__utils__["c" /* liftAction */](INIT_ACTION) }; - nextActionId = 1; - stagedActionIds = [0]; - skippedActionIds = []; - currentStateIndex = 0; - computedStates = []; - break; - } - 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; - var index = skippedActionIds.indexOf(actionId_1); - if (index === -1) { - skippedActionIds = [actionId_1].concat(skippedActionIds); - } - else { - skippedActionIds = skippedActionIds.filter(function (id) { return id !== actionId_1; }); - } - // Optimization: we know history before this action hasn't changed - minInvalidatedStateIndex = stagedActionIds.indexOf(actionId_1); - break; - } - 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; - var actionIds = []; - for (var i = start; i < end; i++) - actionIds.push(i); - if (active) { - skippedActionIds = __WEBPACK_IMPORTED_MODULE_1__utils__["b" /* difference */](skippedActionIds, actionIds); - } - else { - skippedActionIds = skippedActionIds.concat(actionIds); - } - // Optimization: we know history before this action hasn't changed - minInvalidatedStateIndex = stagedActionIds.indexOf(start); - break; - } - 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; - // Optimization: we know the history has not changed. - minInvalidatedStateIndex = Infinity; - break; - } - case __WEBPACK_IMPORTED_MODULE_2__actions__["a" /* ActionTypes */].SWEEP: { - // Forget any actions that are currently being skipped. - 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__["a" /* ActionTypes */].PERFORM_ACTION: { - // Auto-commit as new actions come in. - if (options.maxAge && stagedActionIds.length === options.maxAge) { - commitExcessActions(1); - } - if (currentStateIndex === stagedActionIds.length - 1) { - currentStateIndex++; - } - var actionId = nextActionId++; - // Mutation! This is the hottest path, and we optimize on purpose. - // It is safe because we set a new key in a cache dictionary. - actionsById[actionId] = liftedAction; - stagedActionIds = stagedActionIds.concat([actionId]); - // Optimization: we know that only the new action needs computing. - minInvalidatedStateIndex = stagedActionIds.length - 1; - break; - } - 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); - break; - } - case __WEBPACK_IMPORTED_MODULE_0__ngrx_store__["Reducer"].REPLACE: - case __WEBPACK_IMPORTED_MODULE_0__ngrx_store__["Dispatcher"].INIT: { - // Always recompute states on hot reload and init. - minInvalidatedStateIndex = 0; - if (options.maxAge && stagedActionIds.length > options.maxAge) { - // States must be recomputed before committing excess. - computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds); - commitExcessActions(stagedActionIds.length - options.maxAge); - // Avoid double computation. - minInvalidatedStateIndex = Infinity; - } - break; - } - default: { - // If the action is not recognized, it's a monitor action. - // Optimization: a monitor action can't change history. - minInvalidatedStateIndex = Infinity; - break; - } - } - computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds); - monitorState = monitorReducer(monitorState, liftedAction); - return { - monitorState: monitorState, - actionsById: actionsById, - nextActionId: nextActionId, - stagedActionIds: stagedActionIds, - skippedActionIds: skippedActionIds, - committedState: committedState, - currentStateIndex: currentStateIndex, - computedStates: computedStates - }; - var _b; - }; }; -} -//# sourceMappingURL=reducer.js.map - -/***/ }), -/* 597 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* 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"]; }); - - - - - -var StoreLogMonitorModule = (function () { - function StoreLogMonitorModule() { - } - StoreLogMonitorModule.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ - imports: [ - __WEBPACK_IMPORTED_MODULE_1__angular_common__["CommonModule"], - __WEBPACK_IMPORTED_MODULE_2__src_dock_monitor_index__["a" /* DockMonitorModule */], - __WEBPACK_IMPORTED_MODULE_3__src_log_monitor_index__["a" /* LogMonitorModule */] - ], - declarations: [ - __WEBPACK_IMPORTED_MODULE_4__src_store_log_monitor__["a" /* StoreLogMonitorComponent */] - ], - exports: [ - __WEBPACK_IMPORTED_MODULE_4__src_store_log_monitor__["a" /* StoreLogMonitorComponent */] - ] - },] }, - ]; - /** @nocollapse */ - StoreLogMonitorModule.ctorParameters = []; - return StoreLogMonitorModule; -}()); - -//# sourceMappingURL=index.js.map - -/***/ }), -/* 598 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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); - - - - -var CommanderComponent = (function () { - function CommanderComponent() { - var _this = this; - this.keydown$ = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); - this._ignoreTags = ['INPUT', 'SELECT', 'TEXTAREA']; - this.keydown$ = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); - var filtered$ = __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_filter__["filter"].call(this.keydown$, function (e) { - if (_this._ignoreTags.indexOf(e.target.tagName) !== -1) { - return false; - } - if (e.target.isContentEditable) { - return false; - } - var command = _this.parseCommand(_this.shortcut); - if (!command) { - return false; - } - var charCode = e.keyCode || e.which; - var char = String.fromCharCode(charCode); - return command.name.toUpperCase() === char.toUpperCase() && - command.alt === e.altKey && - command.ctrl === e.ctrlKey && - command.meta === e.metaKey && - command.shift === e.shiftKey; - }); - this.command = __WEBPACK_IMPORTED_MODULE_2_rxjs_operator_map__["map"].call(filtered$, function (e) { - e.preventDefault(); - return { command: _this.shortcut }; - }); - } - CommanderComponent.prototype.parseCommand = function (s) { - var keyString = s.trim().toLowerCase(); - if (!/^(ctrl-|shift-|alt-|meta-){0,4}\w+$/.test(keyString)) { - throw new Error('The string to parse needs to be of the format "c", "ctrl-c", "shift-ctrl-c".'); - } - var parts = keyString.split('-'); - var key = { - ctrl: false, - meta: false, - shift: false, - alt: false - }; - var c; - key.name = parts.pop(); - while ((c = parts.pop())) { - key[c] = true; - } - if (key.ctrl) { - key.sequence = __WEBPACK_IMPORTED_MODULE_3__keycodes__["a" /* KEYCODES */].ctrl[key.name] || key.name; - } - else { - key.sequence = __WEBPACK_IMPORTED_MODULE_3__keycodes__["a" /* KEYCODES */].nomod[key.name] || key.name; - } - if (key.shift && key.sequence && key.sequence.length === 1) { - key.sequence = key.sequence.toUpperCase(); - } - return key; - }; - CommanderComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'ngrx-commander', - template: '', - styles: [':host{ display: none }'], - host: { - '(document:keydown)': 'keydown$.emit($event)' - } - },] }, - ]; - /** @nocollapse */ - CommanderComponent.ctorParameters = []; - CommanderComponent.propDecorators = { - 'shortcut': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'command': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Output"] },], - }; - return CommanderComponent; -}()); -//# sourceMappingURL=commander.js.map - -/***/ }), -/* 599 */ -/***/ (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' - } -}; -//# sourceMappingURL=keycodes.js.map - -/***/ }), -/* 600 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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() { - this.position = 'right'; - this.size = 0.3; - this.visible = true; - } - Object.defineProperty(DockComponent.prototype, "absoluteSize", { - get: function () { - return 100 * this.size + "%"; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DockComponent.prototype, "restSize", { - get: function () { - return (100 - (100 * this.size)) + "%"; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DockComponent.prototype, "leftPosition", { - get: function () { - return this.calculatePosition('left', 'right'); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DockComponent.prototype, "rightPosition", { - get: function () { - return this.calculatePosition('right', 'left'); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DockComponent.prototype, "topPosition", { - get: function () { - return this.calculatePosition('top', 'bottom'); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DockComponent.prototype, "bottomPosition", { - get: function () { - return this.calculatePosition('bottom', 'top'); - }, - enumerable: true, - configurable: true - }); - DockComponent.prototype.calculatePosition = function (primary, secondary) { - if (this.visible) { - switch (this.position) { - case secondary: - return this.restSize; - default: - return '0%'; - } - } - else { - switch (this.position) { - case primary: - return "-" + this.absoluteSize; - case secondary: - return '100%'; - default: - return '0%'; - } - } - }; - DockComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'ngrx-dock', - template: "\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 "] - },] }, - ]; - /** @nocollapse */ - DockComponent.ctorParameters = []; - DockComponent.propDecorators = { - 'position': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'size': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'visible': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'leftPosition': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostBinding"], args: ['style.left',] },], - 'rightPosition': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostBinding"], args: ['style.right',] },], - 'topPosition': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostBinding"], args: ['style.top',] },], - 'bottomPosition': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["HostBinding"], args: ['style.bottom',] },], - }; - return DockComponent; -}()); -//# sourceMappingURL=dock.js.map - -/***/ }), -/* 601 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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); - } - 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 - -/***/ }), -/* 602 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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']; -function useDockMonitor(_options) { - if (_options === void 0) { _options = {}; } - var options = Object.assign({ - position: 'right', - visible: true, - size: 0.3 - }, _options); - function position(state, action) { - if (state === void 0) { state = options.position; } - return (action.type === __WEBPACK_IMPORTED_MODULE_1__actions__["a" /* DockActions */].CHANGE_POSITION) ? - POSITIONS[(POSITIONS.indexOf(state) + 1) % POSITIONS.length] : - state; - } - function size(state, action) { - if (state === void 0) { state = options.size; } - return (action.type === __WEBPACK_IMPORTED_MODULE_1__actions__["a" /* DockActions */].CHANGE_SIZE) ? - action.size : - state; - } - function visible(state, action) { - if (state === void 0) { state = options.visible; } - return (action.type === __WEBPACK_IMPORTED_MODULE_1__actions__["a" /* DockActions */].TOGGLE_VISIBILITY) ? - !state : - state; - } - return __WEBPACK_IMPORTED_MODULE_0__ngrx_store__["combineReducers"]({ - position: position, - visible: visible, - size: size - }); -} -//# sourceMappingURL=reducer.js.map - -/***/ }), -/* 603 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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); - - - - - - -var LogMonitorModule = (function () { - function LogMonitorModule() { - } - LogMonitorModule.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ - imports: [ - __WEBPACK_IMPORTED_MODULE_1__angular_common__["CommonModule"], - __WEBPACK_IMPORTED_MODULE_2__json_tree_index__["a" /* JsonTreeModule */] - ], - declarations: [ - __WEBPACK_IMPORTED_MODULE_3__log_monitor__["a" /* LogMonitorComponent */], - __WEBPACK_IMPORTED_MODULE_4__log_monitor_button__["a" /* LogMonitorButtonComponent */], - __WEBPACK_IMPORTED_MODULE_5__log_monitor_entry__["a" /* LogMonitorEntryComponent */] - ], - exports: [ - __WEBPACK_IMPORTED_MODULE_3__log_monitor__["a" /* LogMonitorComponent */] - ] - },] }, - ]; - /** @nocollapse */ - LogMonitorModule.ctorParameters = []; - return LogMonitorModule; -}()); -//# sourceMappingURL=index.js.map - -/***/ }), -/* 604 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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 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 - -/***/ }), -/* 605 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* 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 JsonNodeComponent = (function () { - function JsonNodeComponent() { - this.expanded = false; - } - Object.defineProperty(JsonNodeComponent.prototype, "value", { - set: function (value) { - 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 - }); - 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 - -/***/ }), -/* 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 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__); - - - - -var LogMonitorComponent = (function () { - function LogMonitorComponent(devtools) { - this.devtools = devtools; - this.expandEntries = true; - this.canRevert$ = __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__["select"].call(devtools.liftedState, function (s) { return !(s.computedStates.length > 1); }); - this.canSweep$ = __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__["select"].call(devtools.liftedState, function (s) { return !(s.skippedActionIds.length > 0); }); - this.canCommit$ = __WEBPACK_IMPORTED_MODULE_3__ngrx_core_operator_select__["select"].call(devtools.liftedState, function (s) { return !(s.computedStates.length > 1); }); - this.items$ = __WEBPACK_IMPORTED_MODULE_1_rxjs_operator_map__["map"].call(devtools.liftedState, function (_a) { - var actionsById = _a.actionsById, skippedActionIds = _a.skippedActionIds, stagedActionIds = _a.stagedActionIds, computedStates = _a.computedStates; - var actions = []; - for (var i = 0; i < stagedActionIds.length; i++) { - var actionId = stagedActionIds[i]; - var action = actionsById[actionId].action; - var _b = computedStates[i], state = _b.state, error = _b.error; - var previousState = void 0; - if (i > 0) { - previousState = computedStates[i - 1].state; - } - actions.push({ - key: actionId, - collapsed: skippedActionIds.indexOf(actionId) > -1, - action: action, - actionId: actionId, - state: state, - previousState: previousState, - error: error - }); - } - return actions; - }); - } - LogMonitorComponent.prototype.handleToggle = function (id) { - this.devtools.toggleAction(id); - }; - LogMonitorComponent.prototype.handleReset = function () { - this.devtools.reset(); - }; - LogMonitorComponent.prototype.handleRollback = function () { - this.devtools.rollback(); - }; - LogMonitorComponent.prototype.handleSweep = function () { - this.devtools.sweep(); - }; - LogMonitorComponent.prototype.handleCommit = function () { - this.devtools.commit(); - }; - LogMonitorComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'log-monitor', - 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 "], - 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 " - },] }, - ]; - /** @nocollapse */ - LogMonitorComponent.ctorParameters = [ - { type: __WEBPACK_IMPORTED_MODULE_2__ngrx_store_devtools__["StoreDevtools"], }, - ]; - LogMonitorComponent.propDecorators = { - 'expandEntries': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - }; - return LogMonitorComponent; -}()); -//# sourceMappingURL=log-monitor.js.map - -/***/ }), -/* 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 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() { - this.toggleCommand = 'ctrl-h'; - this.positionCommand = 'ctrl-m'; - this.expandEntries = false; - } - StoreLogMonitorComponent.decorators = [ - { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Component"], args: [{ - selector: 'ngrx-store-log-monitor', - template: "\n \n \n \n " - },] }, - ]; - /** @nocollapse */ - StoreLogMonitorComponent.ctorParameters = []; - StoreLogMonitorComponent.propDecorators = { - 'toggleCommand': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'positionCommand': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - 'expandEntries': [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Input"] },], - }; - return StoreLogMonitorComponent; -}()); -//# sourceMappingURL=store-log-monitor.js.map - -/***/ }), -/* 612 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"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 - -/***/ }), -/* 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..."; - -/***/ }), -/* 616 */ -/***/ (function(module, exports) { - -module.exports = ":host {\n width: 100%;\n height: 100%;\n display: block; }\n" - -/***/ }), -/* 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
"; - -/***/ }), -/* 624 */ -/***/ (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" - -/***/ }), -/* 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 = function() { - throw new Error("define cannot be used indirect"); -}; - - -/***/ }), -/* 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\r\n
\r\n Sorry, there is no keymap with this abbreviation.\r\n
\r\n"; - -/***/ }), -/* 645 */ -/***/ (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" - -/***/ }), -/* 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 keymap\r\n ()\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n"; - -/***/ }), -/* 648 */ -/***/ (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.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" - -/***/ }), -/* 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
"; - -/***/ }), -/* 652 */ -/***/ (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\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" - -/***/ }), -/* 653 */ -/***/ (function(module, exports) { - -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
"; - -/***/ }), -/* 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
"; - -/***/ }), -/* 660 */ -/***/ (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" - -/***/ }), -/* 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 - } -]; - - -/***/ }), -/* 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
"; - -/***/ }), -/* 664 */ -/***/ (function(module, exports) { - -module.exports = ".not-found {\n margin-top: 30px;\n font-size: 16px;\n text-align: center; }\n" - -/***/ }), -/* 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
{{ title }}
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
"; - -/***/ }), -/* 669 */ -/***/ (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" - -/***/ }), -/* 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
\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"; - -/***/ }), -/* 675 */ -/***/ (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" - -/***/ }), -/* 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 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
"; - -/***/ }), -/* 681 */ -/***/ (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" - -/***/ }), -/* 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)); - - -/***/ }), -/* 683 */ -/***/ (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__(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))) - -/***/ }), -/* 684 */ -/***/ (function(module, exports) { - -module.exports = [ - { - "text": "Letter", - "children": [ - { - "id": "4", - "text": "A" - }, - { - "id": "5", - "text": "B" - }, - { - "id": "6", - "text": "C" - }, - { - "id": "7", - "text": "D" - }, - { - "id": "8", - "text": "E" - }, - { - "id": "9", - "text": "F" - }, - { - "id": "10", - "text": "G" - }, - { - "id": "11", - "text": "H" - }, - { - "id": "12", - "text": "I" - }, - { - "id": "13", - "text": "J" - }, - { - "id": "14", - "text": "K" - }, - { - "id": "15", - "text": "L" - }, - { - "id": "16", - "text": "M" - }, - { - "id": "17", - "text": "N" - }, - { - "id": "18", - "text": "O" - }, - { - "id": "19", - "text": "P" - }, - { - "id": "20", - "text": "Q" - }, - { - "id": "21", - "text": "R" - }, - { - "id": "22", - "text": "S" - }, - { - "id": "23", - "text": "T" - }, - { - "id": "24", - "text": "U" - }, - { - "id": "25", - "text": "V" - }, - { - "id": "26", - "text": "W" - }, - { - "id": "27", - "text": "X" - }, - { - "id": "28", - "text": "Y" - }, - { - "id": "29", - "text": "Z" - } - ] - }, - { - "text": "Number", - "children": [ - { - "id": "39", - "text": "0 )" - }, - { - "id": "30", - "text": "1 !" - }, - { - "id": "31", - "text": "2 @" - }, - { - "id": "32", - "text": "3 #" - }, - { - "id": "33", - "text": "4 $" - }, - { - "id": "34", - "text": "5 %" - }, - { - "id": "35", - "text": "6 ^" - }, - { - "id": "36", - "text": "7 &" - }, - { - "id": "37", - "text": "8 *" - }, - { - "id": "38", - "text": "9 (" - } - ] - }, - { - "text": "Punctuation", - "children": [ - { - "id": "45", - "text": "- _" - }, - { - "id": "46", - "text": "= +" - }, - { - "id": "47", - "text": "[ {" - }, - { - "id": "48", - "text": "] }" - }, - { - "id": "49", - "text": "\\ |" - }, - { - "id": "51", - "text": "; :" - }, - { - "id": "52", - "text": "' \"" - }, - { - "id": "53", - "text": "` ~" - }, - { - "id": "54", - "text": ", <" - }, - { - "id": "55", - "text": ". >" - }, - { - "id": "56", - "text": "/ ?" - } - ] - }, - { - "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", - "text": "F1" - }, - { - "id": "59", - "text": "F2" - }, - { - "id": "60", - "text": "F3" - }, - { - "id": "61", - "text": "F4" - }, - { - "id": "62", - "text": "F5" - }, - { - "id": "63", - "text": "F6" - }, - { - "id": "64", - "text": "F7" - }, - { - "id": "65", - "text": "F8" - }, - { - "id": "66", - "text": "F9" - }, - { - "id": "67", - "text": "F10" - }, - { - "id": "68", - "text": "F11" - }, - { - "id": "69", - "text": "F12" - }, - { - "id": "104", - "text": "F13" - }, - { - "id": "105", - "text": "F14" - }, - { - "id": "106", - "text": "F15" - }, - { - "id": "107", - "text": "F16" - }, - { - "id": "108", - "text": "F17" - }, - { - "id": "109", - "text": "F18" - }, - { - "id": "110", - "text": "F19" - }, - { - "id": "111", - "text": "F20" - }, - { - "id": "112", - "text": "F21" - }, - { - "id": "113", - "text": "F22" - }, - { - "id": "114", - "text": "F23" - }, - { - "id": "115", - "text": "F24" - } - ] - }, - { - "text": "Navigation", - "children": [ - { - "id": "75", - "additional": { - "explanation": "PgUp" - }, - "text": "Page Up" - }, - { - "id": "78", - "additional": { - "explanation": "PgDn" - }, - "text": "Page Down" - }, - { - "id": "74", - "text": "Home" - }, - { - "id": "77", - "text": "End" - }, - { - "id": "80", - "text": "Left Arrow" - }, - { - "id": "79", - "text": "Right Arrow" - }, - { - "id": "82", - "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 - } - } - ] - }, - { - "text": "Numpad", - "children": [ - { - "id": "83", - "text": "NumLock" - }, - { - "id": "84", - "additional": { - "explanation": "slash" - }, - "text": "/" - }, - { - "id": "85", - "additional": { - "explanation": "asterisk" - }, - "text": "*" - }, - { - "id": "86", - "additional": { - "explanation": "minus" - }, - "text": "-" - }, - { - "id": "87", - "additional": { - "explanation": "plus" - }, - "text": "+" - }, - { - "id": "88", - "text": "Enter" - }, - { - "id": "89", - "additional": { - "explanation": "one" - }, - "text": "1" - }, - { - "id": "90", - "additional": { - "explanation": "two" - }, - "text": "2" - }, - { - "id": "91", - "additional": { - "explanation": "three" - }, - "text": "3" - }, - { - "id": "92", - "additional": { - "explanation": "four" - }, - "text": "4" - }, - { - "id": "93", - "additional": { - "explanation": "five" - }, - "text": "5" - }, - { - "id": "94", - "additional": { - "explanation": "six" - }, - "text": "6" - }, - { - "id": "95", - "additional": { - "explanation": "seven" - }, - "text": "7" - }, - { - "id": "96", - "additional": { - "explanation": "eight" - }, - "text": "8" - }, - { - "id": "97", - "additional": { - "explanation": "nine" - }, - "text": "9" - }, - { - "id": "98", - "additional": { - "explanation": "zero" - }, - "text": "0" - }, - { - "id": "99", - "additional": { - "explanation": "period" - }, - "text": "." - } - ] - } -]; - -/***/ }), -/* 685 */ -/***/ (function(module, exports) { - -module.exports = [ - { - "id": "-1", - "text": "None" - }, - { - "text": "Modifier", - "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" - } - ] - } -]; - -/***/ }), -/* 686 */ -/***/ (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
\r\n"; - -/***/ }), -/* 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" - -/***/ }), -/* 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" - -/***/ }), -/* 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" - -/***/ }), -/* 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" - -/***/ }), -/* 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" - -/***/ }), -/* 704 */ -/***/ (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
"; - -/***/ }), -/* 705 */ -/***/ (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" - -/***/ }), -/* 706 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var macro_mouse_component_1 = __webpack_require__(707); -exports.MacroMouseTabComponent = macro_mouse_component_1.MacroMouseTabComponent; - - -/***/ }), -/* 707 */ -/***/ (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__(100); -var TabName; -(function (TabName) { - TabName[TabName["Move"] = 0] = "Move"; - TabName[TabName["Scroll"] = 1] = "Scroll"; - TabName[TabName["Click"] = 2] = "Click"; - TabName[TabName["Hold"] = 3] = "Hold"; - TabName[TabName["Release"] = 4] = "Release"; -})(TabName || (TabName = {})); -var MacroMouseTabComponent = (function () { - function MacroMouseTabComponent() { - /* tslint:disable:variable-name: It is an enum type. So it can start with uppercase. */ - 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]; - if (buttonActions.includes(this.activeTab)) { - this.selectedButtons = this.macroAction.getMouseButtons(); - } - }; - MacroMouseTabComponent.prototype.ngOnChanges = function () { - this.ngOnInit(); - }; - MacroMouseTabComponent.prototype.selectTab = function (tab) { - this.activeTab = 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) { - this.selectedButtons[index] = !this.selectedButtons[index]; - this.macroAction.setMouseButtons(this.selectedButtons); - }; - MacroMouseTabComponent.prototype.hasButton = function (index) { - return this.selectedButtons[index]; - }; - MacroMouseTabComponent.prototype.getAction = function (tab) { - switch (tab) { - case TabName.Click: - 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 name: " + TabName[tab]); - } - }; - MacroMouseTabComponent.prototype.getTabName = function (action) { - if (action instanceof macro_action_1.MouseButtonMacroAction) { - if (!action.action || action.isOnlyPressAction()) { - return TabName.Click; - } - else if (action.isOnlyHoldAction()) { - return TabName.Hold; - } - else if (action.isOnlyReleaseAction()) { - return TabName.Release; - } - } - else if (action instanceof macro_action_1.MoveMouseMacroAction) { - return TabName.Move; - } - else if (action instanceof macro_action_1.ScrollMouseMacroAction) { - return TabName.Scroll; - } - return TabName.Move; - }; - return MacroMouseTabComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], MacroMouseTabComponent.prototype, "macroAction", void 0); -__decorate([ - core_1.ViewChild('tab'), - __metadata("design:type", tab_1.Tab) -], MacroMouseTabComponent.prototype, "selectedTab", void 0); -MacroMouseTabComponent = __decorate([ - core_1.Component({ - selector: 'macro-mouse-tab', - template: __webpack_require__(708), - styles: [ - __webpack_require__(141), - __webpack_require__(709) - ], - host: { 'class': 'macro__mouse' } - }), - __metadata("design:paramtypes", []) -], MacroMouseTabComponent); -exports.MacroMouseTabComponent = MacroMouseTabComponent; - - -/***/ }), -/* 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__(711); -exports.MacroTextTabComponent = macro_text_component_1.MacroTextTabComponent; - - -/***/ }), -/* 711 */ -/***/ (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 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'); - }; - MacroTextTabComponent.prototype.onTextChange = function () { - this.macroAction.text = this.input.nativeElement.value; - }; - return MacroTextTabComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", macro_action_1.TextMacroAction) -], MacroTextTabComponent.prototype, "macroAction", void 0); -__decorate([ - core_1.ViewChild('macroTextInput'), - __metadata("design:type", core_1.ElementRef) -], MacroTextTabComponent.prototype, "input", void 0); -MacroTextTabComponent = __decorate([ - core_1.Component({ - selector: 'macro-text-tab', - template: __webpack_require__(712), - styles: [__webpack_require__(713)], - host: { 'class': 'macro__text' } - }), - __metadata("design:paramtypes", [core_1.Renderer]) -], MacroTextTabComponent); -exports.MacroTextTabComponent = MacroTextTabComponent; - - -/***/ }), -/* 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
"; - -/***/ }), -/* 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" - -/***/ }), -/* 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
"; - -/***/ }), -/* 715 */ -/***/ (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__(716)); - - -/***/ }), -/* 716 */ -/***/ (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 NotificationComponent = (function () { - function NotificationComponent() { - } - return NotificationComponent; -}()); -NotificationComponent = __decorate([ - core_1.Component({ - selector: 'notification', - template: __webpack_require__(717), - styles: [__webpack_require__(718)] - }), - __metadata("design:paramtypes", []) -], NotificationComponent); -exports.NotificationComponent = NotificationComponent; - - -/***/ }), -/* 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"; - -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 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"; - TabName[TabName["Layer"] = 1] = "Layer"; - TabName[TabName["Mouse"] = 2] = "Mouse"; - TabName[TabName["Macro"] = 3] = "Macro"; - TabName[TabName["Keymap"] = 4] = "Keymap"; - TabName[TabName["None"] = 5] = "None"; -})(TabName || (TabName = {})); -var PopoverComponent = (function () { - function PopoverComponent(store) { - var _this = this; - this.cancel = new core_1.EventEmitter(); - this.remap = new core_1.EventEmitter(); - this.tabName = TabName; - this.leftArrow = false; - this.rightArrow = false; - this.topPosition = 0; - this.leftPosition = 0; - this.animationState = 'closed'; - this.keymaps$ = store.let(user_configuration_1.getKeymaps()) - .map(function (keymaps) { - return keymaps.filter(function (keymap) { return _this.currentKeymap.abbreviation !== keymap.abbreviation; }); - }); - } - PopoverComponent.prototype.ngOnChanges = function (change) { - if (this.keyPosition && this.wrapPosition && (change['keyPosition'] || change['wrapPosition'])) { - this.calculatePosition(); - } - if (change['defaultKeyAction']) { - var tab = void 0; - if (this.defaultKeyAction instanceof key_action_1.KeystrokeAction) { - tab = TabName.Keypress; - } - else if (this.defaultKeyAction instanceof key_action_1.SwitchLayerAction) { - tab = TabName.Layer; - } - else if (this.defaultKeyAction instanceof key_action_1.MouseAction) { - tab = TabName.Mouse; - } - else if (this.defaultKeyAction instanceof key_action_1.PlayMacroAction) { - tab = TabName.Macro; - } - else if (this.defaultKeyAction instanceof key_action_1.SwitchKeymapAction) { - tab = TabName.Keymap; - } - else { - tab = TabName.None; - } - this.selectTab(tab); - } - if (change['visible']) { - if (change['visible'].currentValue) { - this.animationState = 'opened'; - } - else { - this.animationState = 'closed'; - } - } - }; - PopoverComponent.prototype.onCancelClick = function () { - this.cancel.emit(undefined); - }; - PopoverComponent.prototype.onRemapKey = function () { - if (this.keyActionValid) { - try { - var keyAction = this.selectedTab.toKeyAction(); - this.remap.emit(keyAction); - } - catch (e) { - // TODO: show error dialog - console.error(e); - } - } - }; - PopoverComponent.prototype.onEscape = function () { - this.cancel.emit(); - }; - PopoverComponent.prototype.selectTab = function (tab) { - this.activeTab = tab; - }; - PopoverComponent.prototype.onOverlay = function () { - this.cancel.emit(undefined); - }; - PopoverComponent.prototype.calculatePosition = function () { - var offsetLeft = this.wrapPosition.left + 265; // 265 is a width of the side menu with a margin - var popover = this.popoverHost.nativeElement; - var newLeft = this.keyPosition.left + (this.keyPosition.width / 2); - this.leftArrow = newLeft < offsetLeft; - this.rightArrow = (newLeft + popover.offsetWidth) > offsetLeft + this.wrapPosition.width; - if (this.leftArrow) { - newLeft = this.keyPosition.left; - } - else if (this.rightArrow) { - newLeft = this.keyPosition.left - popover.offsetWidth + this.keyPosition.width; - } - else { - newLeft -= popover.offsetWidth / 2; - } - // 7 is a space between a bottom key position and a popover - this.topPosition = this.keyPosition.top + this.keyPosition.height + 7 + window.scrollY; - this.leftPosition = newLeft; - }; - return PopoverComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], PopoverComponent.prototype, "defaultKeyAction", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", keymap_1.Keymap) -], PopoverComponent.prototype, "currentKeymap", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], PopoverComponent.prototype, "currentLayer", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], PopoverComponent.prototype, "keyPosition", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Object) -], PopoverComponent.prototype, "wrapPosition", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], PopoverComponent.prototype, "visible", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], PopoverComponent.prototype, "cancel", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], PopoverComponent.prototype, "remap", void 0); -__decorate([ - core_1.ViewChild('tab'), - __metadata("design:type", tab_1.Tab) -], PopoverComponent.prototype, "selectedTab", void 0); -__decorate([ - core_1.ViewChild('popover'), - __metadata("design:type", core_1.ElementRef) -], PopoverComponent.prototype, "popoverHost", void 0); -__decorate([ - core_1.HostListener('keydown.escape'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], PopoverComponent.prototype, "onEscape", null); -PopoverComponent = __decorate([ - core_1.Component({ - selector: 'popover', - template: __webpack_require__(720), - styles: [__webpack_require__(721)], - animations: [ - animations_1.trigger('popover', [ - animations_1.state('closed', animations_1.style({ - transform: 'translateY(30px)', - visibility: 'hidden', - opacity: 0 - })), - animations_1.state('opened', animations_1.style({ - transform: 'translateY(0)', - visibility: 'visible', - opacity: 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 }) - ])) - ]), - animations_1.transition('closed => opened', [ - animations_1.style({ - visibility: 'visible' - }), - 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 }) - ])) - ]) - ]) - ] - }), - __metadata("design:paramtypes", [store_1.Store]) -], PopoverComponent); -exports.PopoverComponent = PopoverComponent; - - -/***/ }), -/* 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"; - -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__(723)); - - -/***/ }), -/* 723 */ -/***/ (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 capture_service_1 = __webpack_require__(142); -var CaptureKeystrokeButtonComponent = (function () { - function CaptureKeystrokeButtonComponent(captureService) { - this.captureService = captureService; - this.capture = new core_1.EventEmitter(); - this.record = false; - this.captureService.initModifiers(); - this.captureService.populateMapping(); - this.scanCodePressed = false; - } - CaptureKeystrokeButtonComponent.prototype.onKeyUp = function (e) { - if (this.scanCodePressed) { - e.preventDefault(); - this.scanCodePressed = false; - } - else if (this.record && !this.first) { - e.preventDefault(); - this.saveScanCode(); - } - }; - CaptureKeystrokeButtonComponent.prototype.onKeyDown = function (e) { - var code = e.keyCode; - var enter = 13; - if (this.record) { - e.preventDefault(); - e.stopPropagation(); - this.first = false; - if (this.captureService.hasMap(code)) { - this.saveScanCode(this.captureService.getMap(code)); - this.scanCodePressed = true; - } - else { - this.captureService.setModifier((e.location === 1), code); - } - } - else if (code === enter) { - this.record = true; - this.first = true; - } - }; - CaptureKeystrokeButtonComponent.prototype.onFocusOut = function () { - this.record = false; - this.reset(); - }; - CaptureKeystrokeButtonComponent.prototype.start = function () { - this.record = true; - }; - CaptureKeystrokeButtonComponent.prototype.saveScanCode = function (code) { - this.record = false; - var left = this.captureService.getModifiers(true); - var right = this.captureService.getModifiers(false); - this.capture.emit({ - code: code, - left: left, - right: right - }); - this.reset(); - }; - CaptureKeystrokeButtonComponent.prototype.reset = function () { - this.first = false; - this.captureService.initModifiers(); - }; - return CaptureKeystrokeButtonComponent; -}()); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], CaptureKeystrokeButtonComponent.prototype, "capture", void 0); -__decorate([ - core_1.HostListener('keyup', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [KeyboardEvent]), - __metadata("design:returntype", void 0) -], CaptureKeystrokeButtonComponent.prototype, "onKeyUp", null); -__decorate([ - core_1.HostListener('keydown', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [KeyboardEvent]), - __metadata("design:returntype", void 0) -], CaptureKeystrokeButtonComponent.prototype, "onKeyDown", null); -__decorate([ - core_1.HostListener('focusout'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], CaptureKeystrokeButtonComponent.prototype, "onFocusOut", null); -CaptureKeystrokeButtonComponent = __decorate([ - core_1.Component({ - selector: 'capture-keystroke-button', - template: __webpack_require__(724), - styles: [__webpack_require__(725)] - }), - __metadata("design:paramtypes", [capture_service_1.CaptureService]) -], CaptureKeystrokeButtonComponent); -exports.CaptureKeystrokeButtonComponent = CaptureKeystrokeButtonComponent; - - -/***/ }), -/* 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"; - -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__(727)); - - -/***/ }), -/* 727 */ -/***/ (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 IconComponent = (function () { - function IconComponent() { - } - IconComponent.prototype.ngOnInit = function () { }; - return IconComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], IconComponent.prototype, "name", void 0); -IconComponent = __decorate([ - core_1.Component({ - selector: 'icon', - template: __webpack_require__(728), - styles: [__webpack_require__(729)] - }), - __metadata("design:paramtypes", []) -], IconComponent); -exports.IconComponent = IconComponent; - - -/***/ }), -/* 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"; - - -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 }); -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; - - -/***/ }), -/* 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__(244); -exports.settingsRoutes = [ - { - path: 'settings', - component: settings_component_1.SettingsComponent - } -]; - - -/***/ }), -/* 735 */ -/***/ (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__(736)); - - -/***/ }), -/* 736 */ -/***/ (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 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; - this.renderer = renderer; - this.animation = { - keymap: 'active', - macro: 'active', - addon: 'active' - }; - this.keymaps$ = store.let(user_configuration_1.getKeymaps()) - .map(function (keymaps) { return keymaps.slice(); }) // Creating a new array reference, because the sort is working in place - .do(function (keymaps) { - keymaps.sort(function (first, second) { return first.name.localeCompare(second.name); }); - }); - this.macros$ = store.let(user_configuration_1.getMacros()) - .map(function (macros) { return macros.slice(); }) // Creating a new array reference, because the sort is working in place - .do(function (macros) { - macros.sort(function (first, second) { return first.name.localeCompare(second.name); }); - }); - } - SideMenuComponent.prototype.toggleHide = function (event, type) { - var header = event.target.classList; - var show = false; - if (header.contains('fa-chevron-down')) { - show = true; - this.animation[type] = 'active'; - } - else { - this.animation[type] = 'inactive'; - } - this.renderer.setElementClass(event.target, 'fa-chevron-up', show); - this.renderer.setElementClass(event.target, 'fa-chevron-down', !show); - }; - SideMenuComponent.prototype.addMacro = function () { - this.store.dispatch(actions_1.MacroActions.addMacro()); - }; - return SideMenuComponent; -}()); -SideMenuComponent = __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: 'side-menu', - template: __webpack_require__(737), - styles: [__webpack_require__(738)] - }), - __metadata("design:paramtypes", [store_1.Store, core_1.Renderer]) -], SideMenuComponent); -exports.SideMenuComponent = SideMenuComponent; - - -/***/ }), -/* 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"; - -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__(740)); - - -/***/ }), -/* 740 */ -/***/ (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 svg_module_provider_service_1 = __webpack_require__(245); -var SvgKeyboardComponent = (function () { - 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.viewBox = '-520 582 1100 470'; - this.halvesSplit = false; - this.moduleAnimationStates = []; - } - SvgKeyboardComponent.prototype.ngOnInit = function () { - 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({ - moduleId: moduleId, - keyId: keyId, - keyTarget: keyTarget - }); - }; - SvgKeyboardComponent.prototype.onCapture = function (moduleId, keyId, captured) { - this.capture.emit({ - moduleId: moduleId, - keyId: keyId, - captured: captured - }); - }; - SvgKeyboardComponent.prototype.onKeyHover = function (keyId, event, over, moduleId) { - this.keyHover.emit({ - moduleId: moduleId, - event: event, - over: over, - keyId: keyId - }); - }; - SvgKeyboardComponent.prototype.updateModuleAnimationStates = function () { - if (this.halvesSplit) { - this.moduleAnimationStates = ['rotateRight', 'rotateLeft']; - } - else { - this.moduleAnimationStates = []; - } - }; - return SvgKeyboardComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], SvgKeyboardComponent.prototype, "moduleConfig", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], SvgKeyboardComponent.prototype, "keybindAnimationEnabled", void 0); -__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) -], SvgKeyboardComponent.prototype, "keyClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], SvgKeyboardComponent.prototype, "keyHover", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], SvgKeyboardComponent.prototype, "capture", void 0); -SvgKeyboardComponent = __decorate([ - core_1.Component({ - selector: 'svg-keyboard', - 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", [svg_module_provider_service_1.SvgModuleProviderService]) -], SvgKeyboardComponent); -exports.SvgKeyboardComponent = SvgKeyboardComponent; - - -/***/ }), -/* 741 */ -/***/ (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 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() { - } - SvgIconTextKeyComponent.prototype.ngOnInit = function () { - this.useWidth = this.width / 3; - this.useHeight = this.height / 3; - this.useX = (this.width > 2 * this.height) ? 0 : this.width / 3; - this.useY = (this.width > 2 * this.height) ? this.height / 3 : this.height / 10; - this.textY = (this.width > 2 * this.height) ? this.height / 2 : this.height * 0.6; - this.spanX = (this.width > 2 * this.height) ? this.width * 0.6 : this.width / 2; - }; - return SvgIconTextKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgIconTextKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgIconTextKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgIconTextKeyComponent.prototype, "icon", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgIconTextKeyComponent.prototype, "text", void 0); -SvgIconTextKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-icon-text-key]', - template: __webpack_require__(754), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgIconTextKeyComponent); -exports.SvgIconTextKeyComponent = SvgIconTextKeyComponent; - - -/***/ }), -/* 754 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n {{ text }}\r\n"; - -/***/ }), -/* 755 */ -/***/ (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__(756)); - - -/***/ }), -/* 756 */ -/***/ (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 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"; - LabelTypes[LabelTypes["MouseKey"] = 1] = "MouseKey"; - LabelTypes[LabelTypes["OneLineText"] = 2] = "OneLineText"; - LabelTypes[LabelTypes["TwoLineText"] = 3] = "TwoLineText"; - LabelTypes[LabelTypes["TextIcon"] = 4] = "TextIcon"; - LabelTypes[LabelTypes["SingleIcon"] = 5] = "SingleIcon"; - LabelTypes[LabelTypes["SwitchKeymap"] = 6] = "SwitchKeymap"; - LabelTypes[LabelTypes["IconText"] = 7] = "IconText"; -})(LabelTypes || (LabelTypes = {})); -var SvgKeyboardKeyComponent = (function () { - function SvgKeyboardKeyComponent(mapper, store, element, captureService, renderer) { - var _this = this; - this.mapper = mapper; - this.element = element; - this.captureService = captureService; - this.renderer = renderer; - this.keyClick = new core_1.EventEmitter(); - this.capture = new core_1.EventEmitter(); - this.enumLabelTypes = LabelTypes; - this.changeAnimation = 'inactive'; - this.subscription = store.let(user_configuration_1.getMacros()) - .subscribe(function (macros) { return _this.macros = macros; }); - this.reset(); - this.captureService.populateMapping(); - this.scanCodePressed = false; - } - SvgKeyboardKeyComponent.prototype.onClick = function () { - this.reset(); - this.keyClick.emit(this.element.nativeElement); - }; - SvgKeyboardKeyComponent.prototype.onMouseDown = function (e) { - if ((e.which === 2 || e.button === 1) && this.capturingEnabled) { - e.preventDefault(); - this.renderer.invokeElementMethod(this.element.nativeElement, 'focus'); - if (this.recording) { - this.reset(); - } - else { - this.recording = true; - this.recordAnimation = 'active'; - } - } - }; - SvgKeyboardKeyComponent.prototype.onKeyUpe = function (e) { - if (this.scanCodePressed) { - e.preventDefault(); - this.scanCodePressed = false; - } - else if (this.recording) { - e.preventDefault(); - this.saveScanCode(); - } - }; - SvgKeyboardKeyComponent.prototype.onKeyDown = function (e) { - var code = e.keyCode; - if (this.recording) { - e.preventDefault(); - if (this.captureService.hasMap(code)) { - this.saveScanCode(this.captureService.getMap(code)); - this.scanCodePressed = true; - } - else { - this.captureService.setModifier((e.location === 1), code); - } - } - }; - SvgKeyboardKeyComponent.prototype.onFocusOut = function () { - this.reset(); - }; - SvgKeyboardKeyComponent.prototype.ngOnInit = function () { - this.setLabels(); - }; - SvgKeyboardKeyComponent.prototype.ngOnChanges = function (changes) { - if (changes['keyAction']) { - this.setLabels(); - if (this.keybindAnimationEnabled) { - this.changeAnimation = 'active'; - } - } - }; - SvgKeyboardKeyComponent.prototype.ngOnDestroy = function () { - this.subscription.unsubscribe(); - }; - SvgKeyboardKeyComponent.prototype.onChangeAnimationDone = function () { - this.changeAnimation = 'inactive'; - }; - SvgKeyboardKeyComponent.prototype.onRecordingAnimationDone = function () { - if (this.recording && this.recordAnimation === 'inactive') { - this.recordAnimation = 'active'; - } - else { - this.recordAnimation = 'inactive'; - } - }; - SvgKeyboardKeyComponent.prototype.reset = function () { - this.recording = false; - this.changeAnimation = 'inactive'; - this.captureService.initModifiers(); - }; - SvgKeyboardKeyComponent.prototype.saveScanCode = function (code) { - if (code === void 0) { code = 0; } - this.recording = false; - this.changeAnimation = 'inactive'; - var left = this.captureService.getModifiers(true); - var right = this.captureService.getModifiers(false); - this.capture.emit({ - code: code, - left: left, - right: right - }); - this.captureService.initModifiers(); - }; - SvgKeyboardKeyComponent.prototype.setLabels = function () { - if (!this.keyAction) { - this.labelSource = undefined; - this.labelType = LabelTypes.OneLineText; - return; - } - this.labelType = LabelTypes.OneLineText; - if (this.keyAction instanceof key_action_1.KeystrokeAction) { - var keyAction = this.keyAction; - var newLabelSource = void 0; - if (!keyAction.hasActiveModifier() && keyAction.hasScancode()) { - var scancode = keyAction.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) { - if (newLabelSource.length === 1) { - this.labelSource = newLabelSource[0]; - this.labelType = LabelTypes.OneLineText; - } - else { - this.labelSource = newLabelSource; - this.labelType = LabelTypes.TwoLineText; - } - } - } - else if (keyAction.hasOnlyOneActiveModifier() && !keyAction.hasScancode()) { - newLabelSource = []; - switch (keyAction.modifierMask) { - case key_modifiers_1.KeyModifiers.leftCtrl: - case key_modifiers_1.KeyModifiers.rightCtrl: - newLabelSource.push('Ctrl'); - break; - case key_modifiers_1.KeyModifiers.leftShift: - case key_modifiers_1.KeyModifiers.rightShift: - newLabelSource.push('Shift'); - break; - case key_modifiers_1.KeyModifiers.leftAlt: - case key_modifiers_1.KeyModifiers.rightAlt: - newLabelSource.push('Alt'); - break; - case key_modifiers_1.KeyModifiers.leftGui: - case key_modifiers_1.KeyModifiers.rightGui: - newLabelSource.push('Super'); - break; - default: - newLabelSource.push('Undefined'); - break; - } - this.labelSource = newLabelSource; - } - else { - this.labelType = LabelTypes.KeystrokeKey; - this.labelSource = this.keyAction; - } - } - else if (this.keyAction instanceof key_action_1.SwitchLayerAction) { - var keyAction = this.keyAction; - var newLabelSource = void 0; - switch (keyAction.layer) { - case key_action_1.LayerName.mod: - newLabelSource = 'Mod'; - break; - case key_action_1.LayerName.fn: - newLabelSource = 'Fn'; - break; - case key_action_1.LayerName.mouse: - newLabelSource = 'Mouse'; - break; - default: - break; - } - if (keyAction.isLayerToggleable) { - this.labelType = LabelTypes.TextIcon; - this.labelSource = { - text: newLabelSource, - icon: this.mapper.getIcon('toggle') - }; - } - else { - this.labelType = LabelTypes.OneLineText; - this.labelSource = newLabelSource; - } - } - else if (this.keyAction instanceof key_action_1.SwitchKeymapAction) { - var keyAction = this.keyAction; - this.labelType = LabelTypes.SwitchKeymap; - this.labelSource = keyAction.keymapAbbreviation; - } - else if (this.keyAction instanceof key_action_1.PlayMacroAction) { - var keyAction_1 = this.keyAction; - var macro = this.macros.find(function (_macro) { return _macro.id === keyAction_1.macroId; }); - this.labelType = LabelTypes.IconText; - this.labelSource = { - icon: this.mapper.getIcon('macro'), - text: macro.name - }; - } - else if (this.keyAction instanceof key_action_1.MouseAction) { - this.labelType = LabelTypes.MouseKey; - this.labelSource = this.keyAction; - } - else { - this.labelSource = undefined; - } - }; - return SvgKeyboardKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgKeyboardKeyComponent.prototype, "id", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgKeyboardKeyComponent.prototype, "rx", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgKeyboardKeyComponent.prototype, "ry", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgKeyboardKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgKeyboardKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeyAction) -], SvgKeyboardKeyComponent.prototype, "keyAction", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], SvgKeyboardKeyComponent.prototype, "keybindAnimationEnabled", void 0); -__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) -], SvgKeyboardKeyComponent.prototype, "keyClick", void 0); -__decorate([ - core_1.Output(), - __metadata("design:type", Object) -], SvgKeyboardKeyComponent.prototype, "capture", void 0); -__decorate([ - core_1.HostListener('click'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], SvgKeyboardKeyComponent.prototype, "onClick", null); -__decorate([ - core_1.HostListener('mousedown', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [MouseEvent]), - __metadata("design:returntype", void 0) -], SvgKeyboardKeyComponent.prototype, "onMouseDown", null); -__decorate([ - core_1.HostListener('keyup', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [KeyboardEvent]), - __metadata("design:returntype", void 0) -], SvgKeyboardKeyComponent.prototype, "onKeyUpe", null); -__decorate([ - core_1.HostListener('keydown', ['$event']), - __metadata("design:type", Function), - __metadata("design:paramtypes", [KeyboardEvent]), - __metadata("design:returntype", void 0) -], SvgKeyboardKeyComponent.prototype, "onKeyDown", null); -__decorate([ - core_1.HostListener('focusout'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], SvgKeyboardKeyComponent.prototype, "onFocusOut", null); -SvgKeyboardKeyComponent = __decorate([ - core_1.Component({ - animations: [ - 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' - })) - ]) - ]) - ]), - 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)' - })), - animations_1.state('active', animations_1.style({ - fill: 'rgba(204, 0, 0, 0.6)' - })), - animations_1.transition('inactive <=> active', animations_1.animate('600ms ease-in-out')) - ]) - ], - selector: 'g[svg-keyboard-key]', - template: __webpack_require__(757), - styles: [__webpack_require__(758)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService, - store_1.Store, - core_1.ElementRef, - capture_service_1.CaptureService, - core_1.Renderer]) -], SvgKeyboardKeyComponent); -exports.SvgKeyboardKeyComponent = SvgKeyboardKeyComponent; - - -/***/ }), -/* 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"; - -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__(760)); - - -/***/ }), -/* 760 */ -/***/ (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 key_modifiers_1 = __webpack_require__(140); -var mapper_service_1 = __webpack_require__(22); -var SvgAttributes = (function () { - function SvgAttributes() { - this.width = 0; - this.height = 0; - this.x = 0; - this.y = 0; - this.disabled = true; - } - return SvgAttributes; -}()); -var SvgKeystrokeKeyComponent = (function () { - function SvgKeystrokeKeyComponent(mapper) { - this.mapper = mapper; - this.modifierIconNames = {}; - this.textContainer = new SvgAttributes(); - this.modifierContainer = new SvgAttributes(); - this.shift = new SvgAttributes(); - this.control = new SvgAttributes(); - this.option = new SvgAttributes(); - this.command = new SvgAttributes(); - } - SvgKeystrokeKeyComponent.prototype.ngOnInit = function () { - this.viewBox = [0, 0, this.width, this.height].join(' '); - this.modifierIconNames.shift = this.mapper.getIcon('shift'); - this.modifierIconNames.option = this.mapper.getIcon('option'); - this.modifierIconNames.command = this.mapper.getIcon('command'); - var bottomSideMode = this.width < this.height * 1.8; - var heightWidthRatio = this.height / this.width; - if (bottomSideMode) { - var maxIconWidth = this.width / 4; - var maxIconHeight = this.height; - var iconScalingFactor = 0.8; - var iconWidth = iconScalingFactor * heightWidthRatio * maxIconWidth; - var iconHeight = iconScalingFactor * maxIconHeight; - this.modifierContainer.width = this.width; - this.modifierContainer.height = this.height / 5; - this.modifierContainer.y = this.height - this.modifierContainer.height; - this.shift.width = iconWidth; - this.shift.height = iconHeight; - this.shift.x = (maxIconWidth - iconWidth) / 2; - this.shift.y = (maxIconHeight - iconHeight) / 2; - this.control.width = iconWidth; - this.control.height = iconHeight; - this.control.x = this.shift.x + maxIconWidth; - this.control.y = this.shift.y; - this.option.width = iconWidth; - this.option.height = iconHeight; - this.option.x = this.control.x + maxIconWidth; - this.option.y = this.shift.y; - this.command.width = iconWidth; - this.command.height = iconHeight; - this.command.x = this.option.x + maxIconWidth; - this.command.y = this.shift.y; - this.textContainer.y = -this.modifierContainer.height / 2; - } - else { - this.modifierContainer.width = this.width / 4; - this.modifierContainer.height = this.height; - this.modifierContainer.x = this.width - this.modifierContainer.width; - var length_1 = Math.min(this.modifierContainer.width / 2, this.modifierContainer.height / 2); - var iconScalingFactor = 0.8; - var iconWidth = iconScalingFactor * this.width * (length_1 / this.modifierContainer.width); - var iconHeight = iconScalingFactor * this.height * (length_1 / this.modifierContainer.height); - this.shift.width = iconWidth; - this.shift.height = iconHeight; - this.shift.x = this.width / 4 - iconWidth / 2; - this.shift.y = this.height / 4 - iconHeight / 2; - this.control.width = iconWidth; - this.control.height = iconHeight; - this.control.x = this.shift.x + this.width / 2; - this.control.y = this.shift.y; - this.option.width = iconWidth; - this.option.height = iconHeight; - this.option.x = this.shift.x; - this.option.y = this.shift.y + this.height / 2; - this.command.width = iconWidth; - this.command.height = iconHeight; - this.command.x = this.option.x + this.width / 2; - this.command.y = this.option.y; - this.textContainer.x = -this.modifierContainer.width / 2; - } - this.textContainer.width = this.width; - this.textContainer.height = this.height; - }; - SvgKeystrokeKeyComponent.prototype.ngOnChanges = function () { - var newLabelSource; - if (this.keystrokeAction.hasScancode()) { - var scancode = this.keystrokeAction.scancode; - newLabelSource = this.mapper.scanCodeToText(scancode, this.keystrokeAction.type); - if (newLabelSource) { - if (newLabelSource.length === 1) { - this.labelSource = newLabelSource[0]; - this.labelType = 'one-line'; - } - else { - this.labelSource = newLabelSource; - this.labelType = 'two-line'; - } - } - else { - this.labelSource = this.mapper.scanCodeToSvgImagePath(scancode, this.keystrokeAction.type); - this.labelType = 'icon'; - } - } - else { - this.labelType = 'empty'; - } - 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; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgKeystrokeKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgKeystrokeKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.KeystrokeAction) -], SvgKeystrokeKeyComponent.prototype, "keystrokeAction", void 0); -SvgKeystrokeKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-keystroke-key]', - template: __webpack_require__(761), - styles: [__webpack_require__(762)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], SvgKeystrokeKeyComponent); -exports.SvgKeystrokeKeyComponent = SvgKeystrokeKeyComponent; - - -/***/ }), -/* 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"; - -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__(764)); - - -/***/ }), -/* 764 */ -/***/ (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 SvgMouseKeyComponent = (function () { - function SvgMouseKeyComponent() { - } - SvgMouseKeyComponent.prototype.ngOnChanges = function () { - switch (this.mouseAction.mouseAction) { - case key_action_1.MouseActionParam.leftClick: - this.type = 'click'; - this.param = 'Left'; - break; - case key_action_1.MouseActionParam.rightClick: - this.type = 'click'; - this.param = 'Right'; - break; - case key_action_1.MouseActionParam.middleClick: - this.type = 'click'; - this.param = 'Middle'; - break; - case key_action_1.MouseActionParam.scrollDown: - this.type = 'scroll'; - this.param = 'down'; - break; - case key_action_1.MouseActionParam.scrollLeft: - this.type = 'scroll'; - this.param = 'left'; - break; - case key_action_1.MouseActionParam.scrollRight: - this.type = 'scroll'; - this.param = 'right'; - break; - case key_action_1.MouseActionParam.scrollUp: - this.type = 'scroll'; - this.param = 'up'; - break; - case key_action_1.MouseActionParam.moveDown: - this.type = 'move'; - this.param = 'down'; - break; - case key_action_1.MouseActionParam.moveLeft: - this.type = 'move'; - this.param = 'left'; - break; - case key_action_1.MouseActionParam.moveRight: - this.type = 'move'; - this.param = 'right'; - break; - case key_action_1.MouseActionParam.moveUp: - this.type = 'move'; - this.param = 'up'; - break; - case key_action_1.MouseActionParam.accelerate: - this.type = 'speed'; - this.param = true; - break; - case key_action_1.MouseActionParam.decelerate: - this.type = 'speed'; - this.param = false; - break; - default: - break; - } - }; - return SvgMouseKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", key_action_1.MouseAction) -], SvgMouseKeyComponent.prototype, "mouseAction", void 0); -SvgMouseKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-mouse-key]', - template: __webpack_require__(765), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgMouseKeyComponent); -exports.SvgMouseKeyComponent = SvgMouseKeyComponent; - - -/***/ }), -/* 765 */ -/***/ (function(module, exports) { - -module.exports = "\r\n \r\n \r\n \r\n \r\n"; - -/***/ }), -/* 766 */ -/***/ (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__(767)); - - -/***/ }), -/* 767 */ -/***/ (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 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; - } - SvgMouseMoveKeyComponent.prototype.ngOnChanges = function () { - this.mouseIcon = this.mapper.getIcon('mouse'); - this.directionIcon = this.mapper.getIcon(this.direction + "-arrow"); - }; - return SvgMouseMoveKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgMouseMoveKeyComponent.prototype, "direction", void 0); -SvgMouseMoveKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-mouse-move-key]', - template: __webpack_require__(771), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], SvgMouseMoveKeyComponent); -exports.SvgMouseMoveKeyComponent = SvgMouseMoveKeyComponent; - - -/***/ }), -/* 771 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n Move \r\n\r\n"; - -/***/ }), -/* 772 */ -/***/ (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__(773)); - - -/***/ }), -/* 773 */ -/***/ (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 SvgMouseSpeedKeyComponent = (function () { - function SvgMouseSpeedKeyComponent(mapper) { - this.mapper = mapper; - this.icon = this.mapper.getIcon('mouse'); - } - SvgMouseSpeedKeyComponent.prototype.ngOnChanges = function () { - this.sign = this.plus ? '+' : '-'; - }; - return SvgMouseSpeedKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], SvgMouseSpeedKeyComponent.prototype, "plus", void 0); -SvgMouseSpeedKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-mouse-speed-key]', - template: __webpack_require__(774), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], SvgMouseSpeedKeyComponent); -exports.SvgMouseSpeedKeyComponent = SvgMouseSpeedKeyComponent; - - -/***/ }), -/* 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"; - -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__(776)); - - -/***/ }), -/* 776 */ -/***/ (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 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() { - } - SvgOneLineTextKeyComponent.prototype.ngOnInit = function () { - this.textY = this.height / 2; - this.spanX = this.width / 2; - }; - return SvgOneLineTextKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgOneLineTextKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgOneLineTextKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgOneLineTextKeyComponent.prototype, "text", void 0); -SvgOneLineTextKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-one-line-text-key]', - template: __webpack_require__(780), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgOneLineTextKeyComponent); -exports.SvgOneLineTextKeyComponent = SvgOneLineTextKeyComponent; - - -/***/ }), -/* 780 */ -/***/ (function(module, exports) { - -module.exports = " \r\n {{ text }}\r\n "; - -/***/ }), -/* 781 */ -/***/ (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__(782)); - - -/***/ }), -/* 782 */ -/***/ (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 SvgSingleIconKeyComponent = (function () { - function SvgSingleIconKeyComponent() { - } - SvgSingleIconKeyComponent.prototype.ngOnInit = function () { - this.svgWidth = this.width / 3; - this.svgHeight = this.height / 3; - }; - return SvgSingleIconKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgSingleIconKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgSingleIconKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgSingleIconKeyComponent.prototype, "icon", void 0); -SvgSingleIconKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-single-icon-key]', - template: __webpack_require__(783), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgSingleIconKeyComponent); -exports.SvgSingleIconKeyComponent = SvgSingleIconKeyComponent; - - -/***/ }), -/* 783 */ -/***/ (function(module, exports) { - -module.exports = "\r\n"; - -/***/ }), -/* 784 */ -/***/ (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__(785)); - - -/***/ }), -/* 785 */ -/***/ (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 SvgSwitchKeymapKeyComponent = (function () { - function SvgSwitchKeymapKeyComponent(mapperService) { - this.mapperService = mapperService; - } - SvgSwitchKeymapKeyComponent.prototype.ngOnInit = function () { - this.icon = this.mapperService.getIcon('switch-keymap'); - this.useWidth = this.width / 4; - this.useHeight = this.height / 4; - this.useX = this.width * 3 / 8; - this.useY = this.height / 5; - this.textY = this.height * 2 / 3; - this.spanX = this.width / 2; - }; - return SvgSwitchKeymapKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgSwitchKeymapKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgSwitchKeymapKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgSwitchKeymapKeyComponent.prototype, "abbreviation", void 0); -SvgSwitchKeymapKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-switch-keymap-key]', - template: __webpack_require__(786), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [mapper_service_1.MapperService]) -], SvgSwitchKeymapKeyComponent); -exports.SvgSwitchKeymapKeyComponent = SvgSwitchKeymapKeyComponent; - - -/***/ }), -/* 786 */ -/***/ (function(module, exports) { - -module.exports = "\r\n\r\n\r\n {{ abbreviation }}\r\n"; - -/***/ }), -/* 787 */ -/***/ (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__(788)); - - -/***/ }), -/* 788 */ -/***/ (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 SvgTextIconKeyComponent = (function () { - function SvgTextIconKeyComponent() { - } - SvgTextIconKeyComponent.prototype.ngOnInit = function () { - this.useWidth = this.width / 3; - this.useHeight = this.height / 3; - this.useX = (this.width > 2 * this.height) ? this.width * 0.6 : this.width / 3; - this.useY = (this.width > 2 * this.height) ? this.height / 3 : this.height / 2; - this.textY = (this.width > 2 * this.height) ? this.height / 2 : this.height / 3; - this.textAnchor = (this.width > 2 * this.height) ? 'end' : 'middle'; - this.spanX = (this.width > 2 * this.height) ? 0.6 * this.width : this.width / 2; - }; - return SvgTextIconKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgTextIconKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgTextIconKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgTextIconKeyComponent.prototype, "text", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", String) -], SvgTextIconKeyComponent.prototype, "icon", void 0); -SvgTextIconKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-text-icon-key]', - template: __webpack_require__(789), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgTextIconKeyComponent); -exports.SvgTextIconKeyComponent = SvgTextIconKeyComponent; - - -/***/ }), -/* 789 */ -/***/ (function(module, exports) { - -module.exports = " \r\n {{ text }}\r\n \r\n\r\n"; - -/***/ }), -/* 790 */ -/***/ (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__(791)); - - -/***/ }), -/* 791 */ -/***/ (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 SvgTwoLineTextKeyComponent = (function () { - function SvgTwoLineTextKeyComponent() { - this.spanYs = []; - } - SvgTwoLineTextKeyComponent.prototype.ngOnInit = function () { - this.textY = this.height / 2; - this.spanX = this.width / 2; - for (var i = 0; i < this.texts.length; ++i) { - this.spanYs.push((0.75 - i * 0.5) * this.height); - } - }; - return SvgTwoLineTextKeyComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgTwoLineTextKeyComponent.prototype, "height", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Number) -], SvgTwoLineTextKeyComponent.prototype, "width", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Array) -], SvgTwoLineTextKeyComponent.prototype, "texts", void 0); -SvgTwoLineTextKeyComponent = __decorate([ - core_1.Component({ - selector: 'g[svg-two-line-text-key]', - template: __webpack_require__(792), - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", []) -], SvgTwoLineTextKeyComponent); -exports.SvgTwoLineTextKeyComponent = SvgTwoLineTextKeyComponent; - - -/***/ }), -/* 792 */ -/***/ (function(module, exports) { - -module.exports = "\r\n {{ text }}\r\n "; - -/***/ }), -/* 793 */ -/***/ (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__(794)); - - -/***/ }), -/* 794 */ -/***/ (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 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; - this.mapper = mapper; - this.element = element; - this.renderer = renderer; - this.popoverEnabled = true; - this.tooltipEnabled = false; - this.currentLayer = 0; - this.keyEditConfig = { - moduleId: undefined, - keyId: undefined - }; - this.tooltipData = { - posTop: 0, - posLeft: 0, - content: Observable_1.Observable.of([]), - show: false - }; - } - Object.defineProperty(SvgKeyboardWrapComponent.prototype, "space", { - get: function () { - return this.popoverEnabled; - }, - enumerable: true, - configurable: true - }); - SvgKeyboardWrapComponent.prototype.onResize = function () { - if (this.wrapHost) { - this.wrapPosition = this.wrapHost.getBoundingClientRect(); - } - if (this.keyElement) { - this.keyPosition = this.keyElement.getBoundingClientRect(); - } - }; - SvgKeyboardWrapComponent.prototype.ngOnInit = function () { - this.wrapHost = this.element.nativeElement; - this.wrapPosition = this.wrapHost.getBoundingClientRect(); - }; - SvgKeyboardWrapComponent.prototype.ngOnChanges = function (changes) { - var keymapChanges = changes['keymap']; - if (keymapChanges) { - this.popoverShown = false; - this.layers = this.keymap.layers; - if (keymapChanges.isFirstChange() || - keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) { - this.currentLayer = 0; - this.keybindAnimationEnabled = keymapChanges.isFirstChange(); - } - else { - this.keybindAnimationEnabled = true; - } - } - }; - SvgKeyboardWrapComponent.prototype.onKeyClick = function (moduleId, keyId, keyTarget) { - if (!this.popoverShown && this.popoverEnabled) { - this.keyEditConfig = { - 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); - } - }; - SvgKeyboardWrapComponent.prototype.onKeyHover = function (moduleId, event, over, keyId) { - if (this.tooltipEnabled) { - var keyActionToEdit = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId]; - if (over) { - this.showTooltip(keyActionToEdit, event); - } - else { - this.hideTooltip(); - } - } - }; - SvgKeyboardWrapComponent.prototype.onCapture = function (moduleId, keyId, captured) { - var keystrokeAction = new key_action_1.KeystrokeAction(); - var modifiers = captured.left.concat(captured.right).map(function (x) { return x ? 1 : 0; }); - keystrokeAction.scancode = captured.code; - keystrokeAction.modifierMask = 0; - for (var i = 0; i < modifiers.length; ++i) { - keystrokeAction.modifierMask |= modifiers[i] << this.mapper.modifierMapper(i); - } - this.store.dispatch(actions_1.KeymapActions.saveKey(this.keymap, this.currentLayer, moduleId, keyId, keystrokeAction)); - }; - SvgKeyboardWrapComponent.prototype.onRemap = function (keyAction) { - this.store.dispatch(actions_1.KeymapActions.saveKey(this.keymap, this.currentLayer, this.keyEditConfig.moduleId, this.keyEditConfig.keyId, keyAction)); - this.hidePopover(); - }; - SvgKeyboardWrapComponent.prototype.showPopover = function (keyAction) { - this.keyPosition = this.keyElement.getBoundingClientRect(); - this.popoverInitKeyAction = keyAction; - this.popoverShown = true; - this.renderer.invokeElementMethod(this.popover.nativeElement, 'focus'); - }; - SvgKeyboardWrapComponent.prototype.showTooltip = function (keyAction, event) { - if (keyAction === undefined) { - return; - } - var el = event.target || event.srcElement; - var position = el.getBoundingClientRect(); - var posLeft = this.tooltipData.posLeft; - var posTop = this.tooltipData.posTop; - if (el.tagName === 'g') { - posLeft = position.left + (position.width / 2); - posTop = position.top + position.height; - } - this.tooltipData = { - posLeft: posLeft, - posTop: posTop, - content: this.getKeyActionContent(keyAction), - show: true - }; - }; - SvgKeyboardWrapComponent.prototype.hideTooltip = function () { - this.tooltipData.show = false; - }; - SvgKeyboardWrapComponent.prototype.hidePopover = function () { - this.popoverShown = false; - this.selectedKey = undefined; - }; - SvgKeyboardWrapComponent.prototype.selectLayer = function (index) { - this.currentLayer = index; - }; - SvgKeyboardWrapComponent.prototype.getSelectedLayer = function () { - return this.currentLayer; - }; - SvgKeyboardWrapComponent.prototype.getKeyActionContent = function (keyAction) { - if (keyAction instanceof key_action_1.KeystrokeAction) { - var keystrokeAction = keyAction; - var content = []; - content.push({ - name: 'Action type', - value: 'Keystroke' - }); - if (keystrokeAction.hasScancode()) { - var value = keystrokeAction.scancode.toString(); - var scanCodeTexts = (this.mapper.scanCodeToText(keystrokeAction.scancode, keystrokeAction.type) || []) - .join(', '); - if (scanCodeTexts.length > 0) { - value += ' (' + scanCodeTexts + ')'; - } - content.push({ - name: 'Scancode', - value: value - }); - } - if (keystrokeAction.hasActiveModifier()) { - content.push({ - name: 'Modifiers', - value: keystrokeAction.getModifierList().join(', ') - }); - } - if (keystrokeAction.hasLongPressAction()) { - content.push({ - name: 'Long press', - value: long_press_action_1.LongPressAction[keystrokeAction.longPressAction] - }); - } - return Observable_1.Observable.of(content); - } - else if (keyAction instanceof key_action_1.MouseAction) { - var mouseAction = keyAction; - var content = [ - { - name: 'Action type', - value: 'Mouse' - }, - { - name: 'Action', - value: util_1.camelCaseToSentence(key_action_1.MouseActionParam[mouseAction.mouseAction]) - } - ]; - return Observable_1.Observable.of(content); - } - else if (keyAction instanceof key_action_1.PlayMacroAction) { - var playMacroAction_1 = keyAction; - return this.store - .select(function (appState) { return appState.userConfiguration.macros; }) - .map(function (macroState) { return macroState.find(function (macro) { - return macro.id === playMacroAction_1.macroId; - }).name; }) - .map(function (macroName) { - var content = [ - { - name: 'Action type', - value: 'Play macro' - }, - { - name: 'Macro name', - value: macroName - } - ]; - return content; - }); - } - else if (keyAction instanceof key_action_1.SwitchKeymapAction) { - var switchKeymapAction_1 = keyAction; - return this.store - .select(function (appState) { return appState.userConfiguration.keymaps; }) - .map(function (keymaps) { return keymaps.find(function (keymap) { return keymap.abbreviation === switchKeymapAction_1.keymapAbbreviation; }).name; }) - .map(function (keymapName) { - var content = [ - { - name: 'Action type', - value: 'Switch keymap' - }, - { - name: 'Keymap', - value: keymapName - } - ]; - return content; - }); - } - else if (keyAction instanceof key_action_1.SwitchLayerAction) { - var switchLayerAction = keyAction; - var content = [ - { - name: 'Action type', - value: 'Switch layer' - }, - { - name: 'Layer', - value: util_1.capitalizeFirstLetter(key_action_1.LayerName[switchLayerAction.layer]) - }, - { - name: 'Toogle', - value: switchLayerAction.isLayerToggleable ? 'On' : 'Off' - } - ]; - return Observable_1.Observable.of(content); - } - return Observable_1.Observable.of([]); - }; - return SvgKeyboardWrapComponent; -}()); -__decorate([ - core_1.Input(), - __metadata("design:type", keymap_1.Keymap) -], SvgKeyboardWrapComponent.prototype, "keymap", void 0); -__decorate([ - core_1.Input(), - __metadata("design:type", Boolean) -], SvgKeyboardWrapComponent.prototype, "popoverEnabled", void 0); -__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) -], SvgKeyboardWrapComponent.prototype, "popover", void 0); -__decorate([ - core_1.HostBinding('class.space'), - __metadata("design:type", Object), - __metadata("design:paramtypes", []) -], SvgKeyboardWrapComponent.prototype, "space", null); -__decorate([ - core_1.HostListener('window:resize'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], SvgKeyboardWrapComponent.prototype, "onResize", null); -SvgKeyboardWrapComponent = __decorate([ - core_1.Component({ - selector: 'svg-keyboard-wrap', - template: __webpack_require__(795), - styles: [__webpack_require__(796)], - changeDetection: core_1.ChangeDetectionStrategy.OnPush - }), - __metadata("design:paramtypes", [store_1.Store, - mapper_service_1.MapperService, - core_1.ElementRef, - core_1.Renderer]) -], SvgKeyboardWrapComponent); -exports.SvgKeyboardWrapComponent = SvgKeyboardWrapComponent; - - -/***/ }), -/* 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"; - -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 MainAppComponent = (function () { - function MainAppComponent() { - } - return MainAppComponent; -}()); -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; - - -/***/ }), -/* 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 __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 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; - } - 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; }); - if (defaultKeymap) { - _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; - - -/***/ }), -/* 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 cancelable_directive_1 = __webpack_require__(808); -exports.CancelableDirective = cancelable_directive_1.CancelableDirective; - - -/***/ }), -/* 808 */ -/***/ (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 CancelableDirective = (function () { - function CancelableDirective(elementRef, renderer) { - this.elementRef = elementRef; - this.renderer = renderer; - } - CancelableDirective.prototype.onFocus = function () { - this.originalValue = this.elementRef.nativeElement.value; - }; - CancelableDirective.prototype.onEscape = function () { - this.renderer.setElementProperty(this.elementRef.nativeElement, 'value', this.originalValue); - this.renderer.invokeElementMethod(this.elementRef.nativeElement, 'blur'); - }; - return CancelableDirective; -}()); -__decorate([ - core_1.HostListener('focus'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], CancelableDirective.prototype, "onFocus", null); -__decorate([ - core_1.HostListener('keyup.escape'), - __metadata("design:type", Function), - __metadata("design:paramtypes", []), - __metadata("design:returntype", void 0) -], CancelableDirective.prototype, "onEscape", null); -CancelableDirective = __decorate([ - core_1.Directive({ - selector: '[cancelable]' - }), - __metadata("design:paramtypes", [core_1.ElementRef, core_1.Renderer]) -], CancelableDirective); -exports.CancelableDirective = CancelableDirective; - - -/***/ }), -/* 809 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var tooltip_directive_1 = __webpack_require__(810); -exports.TooltipDirective = tooltip_directive_1.TooltipDirective; - - -/***/ }), -/* 810 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* 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 }); -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))) - -/***/ }), -/* 811 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var safe_style_pipe_1 = __webpack_require__(812); -exports.SafeStylePipe = safe_style_pipe_1.SafeStylePipe; - - -/***/ }), -/* 812 */ -/***/ (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 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) - .map(function (latest) { return latest[1].userConfiguration.keymaps; }) - .do(function (keymaps) { - _this.router.navigate(['/keymap', keymaps[keymaps.length - 1].abbreviation]); - }); - this.remove$ = this.actions$ - .ofType(actions_1.KeymapActions.REMOVE) - .withLatestFrom(this.store) - .map(function (latest) { return latest[1].userConfiguration.keymaps; }) - .do(function (keymaps) { - if (keymaps.length === 0) { - _this.router.navigate(['/keymap/add']); - } - else { - var favourite = keymaps.find(function (keymap) { return keymap.isDefault; }); - _this.router.navigate(['/keymap', favourite.abbreviation]); - } - }); - this.editAbbr$ = this.actions$ - .ofType(actions_1.KeymapActions.EDIT_ABBR) - .map(function (action) { return action.payload.newAbbr; }) - .do(function (newAbbr) { - _this.router.navigate(['/keymap', newAbbr]); - }); - } - 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) -], KeymapEffects.prototype, "addOrDuplicate$", void 0); -__decorate([ - effects_1.Effect({ dispatch: false }), - __metadata("design:type", Object) -], KeymapEffects.prototype, "remove$", void 0); -__decorate([ - effects_1.Effect({ dispatch: false }), - __metadata("design:type", Object) -], KeymapEffects.prototype, "editAbbr$", void 0); -KeymapEffects = __decorate([ - core_1.Injectable(), - __metadata("design:paramtypes", [effects_1.Actions, router_1.Router, store_1.Store]) -], KeymapEffects); -exports.KeymapEffects = KeymapEffects; - - -/***/ }), -/* 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"; - -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); -__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; - this.actions$ = actions$; - this.router = router; - this.store = store; - this.remove$ = this.actions$ - .ofType(actions_1.MacroActions.REMOVE) - .map(function (action) { return _this.store.dispatch(actions_1.KeymapActions.checkMacro(action.payload)); }) - .withLatestFrom(this.store) - .map(function (latest) { return latest[1].userConfiguration.macros; }) - .do(function (macros) { - if (macros.length === 0) { - _this.router.navigate(['/macro']); - } - else { - _this.router.navigate(['/macro', macros[0].id]); - } - }); - this.add$ = this.actions$ - .ofType(actions_1.MacroActions.ADD) - .withLatestFrom(this.store) - .map(function (latest) { return latest[1].userConfiguration.macros; }) - .map(function (macros) { return macros[macros.length - 1]; }) - .do(function (lastMacro) { - _this.router.navigate(['/macro', lastMacro.id, 'new']); - }); - } - return MacroEffects; -}()); -__decorate([ - effects_1.Effect({ dispatch: false }), - __metadata("design:type", Object) -], MacroEffects.prototype, "remove$", void 0); -__decorate([ - effects_1.Effect({ dispatch: false }), - __metadata("design:type", Object) -], MacroEffects.prototype, "add$", void 0); -MacroEffects = __decorate([ - core_1.Injectable(), - __metadata("design:paramtypes", [effects_1.Actions, router_1.Router, store_1.Store]) -], MacroEffects); -exports.MacroEffects = MacroEffects; - - -/***/ }), -/* 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 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(); - }); - } - return UserConfigEffects; -}()); -__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; - - -/***/ }), -/* 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"; - -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 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; - 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 ApplicationEffects; -}()); -__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", [effects_1.Actions, - angular_notifier_1.NotifierService]) -], ApplicationEffects); -exports.ApplicationEffects = ApplicationEffects; -var ApplicationEffects_1; - - -/***/ }), -/* 825 */ -/***/ (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 LocalDataStorageRepositoryService = (function () { - function LocalDataStorageRepositoryService() { - } - 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; -}()); -LocalDataStorageRepositoryService = __decorate([ - core_1.Injectable() -], LocalDataStorageRepositoryService); -exports.LocalDataStorageRepositoryService = LocalDataStorageRepositoryService; - - -/***/ }), -/* 826 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: 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 -}; - - -/***/ }), -/* 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) { -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13))) - -/***/ }), -/* 837 */ -/***/ (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. - -// 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); -}; - -/***/ }), -/* 838 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(150); - - -/***/ }), -/* 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. -// -// 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. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = __webpack_require__(843); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = __webpack_require__(844); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13), __webpack_require__(38))) - -/***/ }), -/* 843 */ -/***/ (function(module, exports) { - -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 - } -} - - -/***/ }) -],[591]); -//# sourceMappingURL=app.uhk.js.map \ No newline at end of file diff --git a/app.uhk.js.map b/app.uhk.js.map deleted file mode 100644 index b7b430ae..00000000 --- a/app.uhk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"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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Aa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AACf;AACQ;AACR;AACA,+C;;;;;;;;;;;;;;;;;;;;;AC5CwB;AACP;AACH;AACW;AACR;AAC0B;AAC3C;AACA,mGAA6C,sGAAoD,EAAE;AACnG;AACA,oHAAoH;AACpH;AACA;AACA;AACA,0DAA0D,WAAW,2BAA2B;AAChG;AACA;AACA,0DAA0D,WAAW,6CAA6C;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,WAAW,qDAAqD;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4FAAgD,qBAAqB,EAAE;AACvE;AACA;AACA,4HAAsE,wFAAuC,EAAE;AAC/G,iHAAqE,mBAAmB,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,kGAAgD,aAAa;AAC7E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,uCAAuC,kCAAkC,EAAE;AAC3E;AACA,mC;;;;;;ACnEA,2LAA2L,iBAAiB,iD;;;;;;ACA5M,yBAAyB,gBAAgB,iBAAiB,mBAAmB,EAAE,G;;;;;;;;;ACE/E,kDAAoD;AAEvC,mBAAW,GAAW;IAC/B;QACI,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,iCAAc;KAC5B;CACJ,CAAC;;;;;;;;;;ACTF,2DAAsE;AAA7D,qFAAuB;;;;;;;;;;;;;;;;;;;ACAhC,oCAEuB;AACvB,2CAA4F;AA+D5F,IAAa,uBAAuB;IArDpC;QA4Dc,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;AAvCY;IAAR,YAAK,EAAE;;uDAAiB;AAChB;IAAR,YAAK,EAAE;;6DAAsB;AACrB;IAAR,YAAK,EAAE;;wEAAkC;AACjC;IAAR,YAAK,EAAE;;iEAA2B;AAC1B;IAAR,YAAK,EAAE;;4DAAsB;AACrB;IAAR,YAAK,EAAE;;4DAAmE;AACjE;IAAT,aAAM,EAAE;;yDAA+B;AAC9B;IAAT,aAAM,EAAE;;yDAA+B;AAC9B;IAAT,aAAM,EAAE;;wDAA8B;AAT9B,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,oBAAO,CAAC,YAAY,EAAE;gBAClB,kBAAK,CAAC,iBAAiB,EAAE,kBAAK,CAAC;oBAC3B,SAAS,EAAE,kBAAkB;oBAC7B,IAAI,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,kBAAK,CAAC,SAAS,EAAE,kBAAK,CAAC;oBACnB,SAAS,EAAE,mBAAmB;oBAC9B,IAAI,EAAE,GAAG;iBACZ,CAAC,CAAC;gBACH,kBAAK,CAAC,UAAU,EAAE,kBAAK,CAAC;oBACpB,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,MAAM;iBACf,CAAC,CAAC;gBACH,uBAAU,CAAC,uCAAuC,EAAE;oBAChD,oBAAO,CAAC,gBAAgB,EAAE,sBAAS,CAAC;wBAChC,kBAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAC/D,kBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnE,CAAC,CAAC;iBACN,CAAC;gBACF,uBAAU,CAAC,uCAAuC,EAAE;oBAChD,oBAAO,CAAC,gBAAgB,EAAE,sBAAS,CAAC;wBAChC,kBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,kBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnE,CAAC,CAAC;iBACN,CAAC;gBACF,uBAAU,CAAC,cAAc,EAAE;oBACvB,oBAAO,CAAC,gBAAgB,EAAE,sBAAS,CAAC;wBAChC,kBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,kBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnE,CAAC,CAAC;iBACN,CAAC;gBACF,uBAAU,CAAC,eAAe,EAAE;oBACxB,oBAAO,CAAC,gBAAgB,EAAE,sBAAS,CAAC;wBAChC,kBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChE,kBAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBAClE,CAAC,CAAC;iBACN,CAAC;gBACF,uBAAU,CAAC,QAAQ,EAAE;oBACjB,oBAAO,CAAC,iBAAiB,EAAE,sBAAS,CAAC;wBACjC,kBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChC,kBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACnC,CAAC,CAAC;iBACN,CAAC;aACL,CAAC;SACL;KACJ,CAAC;GACW,uBAAuB,CAwCnC;AAxCY,0DAAuB;;;;;;;AClEpC,6DAA6D,mBAAmB,ggB;;;;;;ACAhF,gCAAgC,eAAe,sBAAsB,uBAAuB,YAAY,iCAAiC,sBAAsB,EAAE,G;;;;;;;;;;;;ACAjK,mCAA2C;AAC3C,mCAA6C;AAC7C,mCAAiD;;;;;;;ACFjD,2gBAA2gB,6BAA6B,KAAK,gCAAgC,qLAAqL,eAAe,oEAAoE,sBAAsB,ohB;;;;;;ACA32B,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;AACA,+BAA+B,aAAa,6EAA6E,8BAA8B,6BAA6B,wFAAwF,8BAA8B,mBAAmB,4FAA4F,0CAA0C,QAAQ,IAAI,sDAAsD,iBAAiB,sDAAsD,6BAA6B,mBAAmB,eAAe,mBAAmB,IAAI,EAAE,mBAAmB,4BAA4B,eAAe,SAAS,OAAO,eAAe,2DAA2D,uDAAuD,YAAY,IAAI,mBAAmB,YAAY,4CAA4C,qDAAqD,cAAc,2DAA2D,KAAK,yBAAyB,2DAA2D,6BAA6B,eAAe,kBAAkB,6DAA6D,IAAI,wBAAwB,0HAA0H,kCAAkC,qLAAqL,4CAA4C,iBAAiB,4BAA4B,6BAA6B,yBAAyB,qEAAqE,sBAAsB,cAAc,0BAA0B,kEAAkE,oBAAoB,gCAAgC,8BAA8B,wBAAwB,KAAK,MAAM,aAAa,UAAU,eAAe,eAAe,gBAAgB,iCAAiC,GAAG,KAAK,gBAAgB,iCAAiC,qBAAqB,gFAAgF,+DAA+D,qBAAqB,WAAW,iCAAiC,oIAAoI,mFAAmF,kPAA0J,cAAc;AAAA,qG;;;;;;ACDz1F;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA,uCAAuD;AAGvD,mDAAuD;AACvD,2CAAqE;AACrE,+CAAiD;AAEjD,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,qEAAiB;IACjB,6EAAqB;IACrB,mFAAwB;AAC5B,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AAED,IAAM,4BAA4B,GAAG,CAAC,CAAC;AAUvC,IAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7F;IAAqC,mCAAS;IAoC1C,yBAAY,KAAuB;QAAnC,YACI,iBAAO,SAQV;QAPG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACvC,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;;IACjD,CAAC;IA3CD,sBAAI,qCAAQ;aAQZ;YACI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAVD,UAAa,QAAgB;YACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClF,MAAM,CAAC;YACX,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,8BAAa,CAAC,UAAU,GAAG,8BAAa,CAAC,SAAS,CAAC;QACpF,CAAC;;;OAAA;IAYD,sBAAI,iCAAI;aAOR;YACI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;aATD,UAAS,IAAmB;YACxB,EAAE,CAAC,CAAC,IAAI,KAAK,8BAAa,CAAC,UAAU,IAAI,IAAI,KAAK,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxE,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,8BAAa,CAAC,UAAU,GAAG,8BAAa,CAAC,SAAS,CAAC;YACpF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;;;OAAA;IAsBD,wCAAc,GAAd,UAAe,UAAqC;QAChD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,8BAAa,CAAC,UAAU,GAAG,8BAAa,CAAC,SAAS,CAAC;QAC/F,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,8BAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,mCAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAiB;QACxB,IAAM,WAAW,GAAgB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACvE,IAAM,KAAK,GAAW,WAAW,GAAG,wBAAW,CAAC,UAAU,CAAC,CAAC,sDAAsD;QAClH,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAI,CAAC;QAChC,EAAE,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtG,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,IAAM,UAAU,GAA8B;YAC1C,aAAa,EAAE,0BAAa,CAAC,eAAe;SAC/C,CAAC;QAEF,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAClF,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC9B,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,UAAU,CAAC,IAAI,GAAG,8BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QACzC,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,mCAAe,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,IAAM,OAAO,GAGP,EAAE,CAAC;QAET,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,KAAK,IAAI,mBAAmB,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,SAAS,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,mBAAmB,CAAC,YAAY,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,IAAI,mBAAmB,CAAC,eAAe,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAM,WAAW,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,4BAA4B,CAAC,CAAC;QAExE,MAAM,CAAC,UAAU,CAAC,wBAAW,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,sDAAsD;QAE/G,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;IAEL,CAAC;IAED,kCAAQ,GAAR;QACI,IAAM,UAAU,GAAa,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,YAAS,8BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAG,CAAC,CAAC;QAEtD,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,gBAAa,IAAI,CAAC,SAAS,OAAG,CAAC,CAAC;QACpD,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,SAAS,CAAC;IAC5B,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,IAAM,YAAY,GAAa,EAAE,CAAC;QAClC,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,CAzLoC,sBAAS,GAyL7C;AA1KG;IADC,oBAAW;;qDACS;AAGrB;IADC,mBAAU,CAAC,mCAAe,CAAC;;wDACK;AAgBjC;IADC,mBAAU,CAAC,8BAAa,CAAC;;8CACG;AAlCpB,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB5B,uCAA0C;AAE1C,2CAAqE;AAErE,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,0BAAa,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,wBAAW,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,sBAAS,GAwCzC;AArCG;IADC,mBAAU,CAAC,gBAAgB,CAAC;;gDACC;AAHrB,kCAAW;;;;;;;;;;;;;;;;;;;;ACnBxB,2CAAqE;AAErE;;;;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,0BAAa,CAAC,UAAU;SAC1C,CAAC;IACN,CAAC;IAED,6BAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,wBAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,6BAAQ,GAAR;QACI,MAAM,CAAC,cAAc,CAAC;IAC1B,CAAC;IACL,iBAAC;AAAD,CAAC,CAzB+B,sBAAS,GAyBxC;AAzBY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTvB,uCAA2C;AAG3C,2CAAqE;AAErE;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,0BAAa,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,wBAAW,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,sBAAS,GA6C7C;AA1CG;IADC,oBAAW;;gDACI;AAHP,0CAAe;;;;;;;;;;;;;;;;;;;;ACJ5B,uCAAmC;AACnC,2CAAqE;AAErE;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,0BAAa,CAAC,kBAAkB;YAC/C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC;IACN,CAAC;IAED,qCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,wBAAW,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,sBAAS,GAoDhD;AApDY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJ/B,uCAA0C;AAE1C,2CAAqE;AAErE,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,0BAAa,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,wBAAW,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,sBAAS,GAgD/C;AA3CG;IADC,mBAAU,CAAC,SAAS,CAAC;;gDACL;AALR,8CAAiB;;;;;;;;;;ACV9B,4CAA6C;AAC7C,sCASiB;AAIjB;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,sBAAS,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,IAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9C,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdnB,uCAA4C;AAE5C,6CAA6E;AAE7E;IAAsC,oCAAW;IAK7C,0BAAY,KAAwB;QAApC,YACI,iBAAO,SAKV;QAJG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;;IAC7B,CAAC;IAED,yCAAc,GAAd,UAAe,QAAa;QACxB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,qCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,uCAAY,GAAZ;QACI,MAAM,CAAC;YACH,eAAe,EAAE,8BAAe,CAAC,gBAAgB;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;IACN,CAAC;IAED,mCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,4BAAa,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,mCAAQ,GAAR;QACI,MAAM,CAAC,+BAA4B,IAAI,CAAC,KAAK,QAAI,CAAC;IACtD,CAAC;IACL,uBAAC;AAAD,CAAC,CAxCqC,0BAAW,GAwChD;AArCG;IADC,qBAAY;;+CACC;AAHL,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJ7B,uCAAuD;AAGvD,6CAA6F;AAC7F,+CAA6D;AAU7D;IAAoC,kCAAW;IAc3C,wBAAY,KAAsB;QAAlC,YACI,iBAAO,SAQV;QAPG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;;IAC3C,CAAC;IAED,uCAAc,GAAd,UAAe,QAAgC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,6BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,GAAG,GAAG,GAAG,8BAAa,CAAC,UAAU,GAAG,8BAAa,CAAC,SAAS,CAAC;QAC7F,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,8BAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,mCAAU,GAAV,UAAW,MAAiB;QACxB,IAAM,aAAa,GAAkB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,YAAY,GAAW,aAAa,GAAG,4BAAa,CAAC,cAAc,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,CAAI,CAAC;QAClC,YAAY,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,CAAI,CAAC;QAChC,YAAY,KAAK,CAAC,CAAC;QACnB,EAAE,CAAC,CAAC,YAAY,GAAG,CAAI,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,EAAE,CAAC,CAAC,YAAY,GAAG,CAAI,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,qCAAY,GAAZ;QACI,IAAM,QAAQ,GAA2B;YACrC,eAAe,EAAE,8BAAe,CAAC,cAAc;YAC/C,MAAM,EAAE,6BAAc,CAAC,IAAI,CAAC,MAAM,CAAC;SACtC,CAAC;QAEF,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClF,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,QAAQ,CAAC,IAAI,GAAG,8BAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACtB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC;IACpB,CAAC;IAED,iCAAQ,GAAR,UAAS,MAAiB;QACtB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3B,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9B,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnF,IAAM,YAAY,GAAW,4BAAa,CAAC,cAAc,GAAG,WAAW,CAAC;QAExE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAChC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAED,iCAAQ,GAAR;QACI,MAAM,CAAC,8BAA2B,IAAI,CAAC,MAAM,sBAAe,IAAI,CAAC,QAAQ,0BAAmB,IAAI,CAAC,YAAY,QAAI,CAAC;IACtH,CAAC;IAED,yCAAgB,GAAhB,UAAiB,QAAsB;QACnC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,oCAAW,GAAX;QACI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,qCAAY,GAAZ;QACI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/B,CAAC;IAED,qCAAY,GAAZ;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAc,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,sCAAa,GAAb;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAc,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,wCAAe,GAAf;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAc,CAAC,OAAO,CAAC;IAClD,CAAC;IACL,qBAAC;AAAD,CAAC,CAxHmC,0BAAW,GAwH9C;AArHG;IADC,mBAAU,CAAC,6BAAc,CAAC;;8CACJ;AAGvB;IADC,mBAAU,CAAC,8BAAa,CAAC;;4CACN;AAGpB;IADC,oBAAW;;gDACK;AAGjB;IADC,oBAAW;;oDACS;AAZZ,wCAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd3B,uCAA2C;AAE3C,6CAA6E;AAE7E;IAA0C,wCAAW;IAQjD,8BAAY,KAA4B;QAAxC,YACI,iBAAO,SAMV;QALG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACjB,KAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;;IACrB,CAAC;IAED,6CAAc,GAAd,UAAe,QAAa;QACxB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,yCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,2CAAY,GAAZ;QACI,MAAM,CAAC;YACH,eAAe,EAAE,8BAAe,CAAC,oBAAoB;YACrD,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ,CAAC;IACN,CAAC;IAED,uCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,4BAAa,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,uCAAQ,GAAR;QACI,MAAM,CAAC,kCAA+B,IAAI,CAAC,CAAC,SAAI,IAAI,CAAC,CAAC,SAAK,CAAC;IAChE,CAAC;IACL,2BAAC;AAAD,CAAC,CAhDyC,0BAAW,GAgDpD;AA7CG;IADC,oBAAW;;+CACF;AAGV;IADC,oBAAW;;+CACF;AAND,oDAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJjC,uCAAuD;AAEvD,6CAA6F;AAE7F,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,+CAAa;IACb,mDAAe;IACf,iDAAc;AAClB,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAQD;IAA4C,0CAAW;IAOnD,gCAAY,KAA8B;QAA1C,YACI,iBAAO,SAMV;QALG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;;IACnD,CAAC;IAED,+CAAc,GAAd,UAAe,QAAwC;QACnD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,6BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,2CAAU,GAAV,UAAW,MAAiB;QACxB,IAAM,aAAa,GAAkB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,4BAAa,CAAC,sBAAsB,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,6CAAY,GAAZ;QACI,MAAM,CAAC;YACH,eAAe,EAAE,8BAAe,CAAC,sBAAsB;YACvD,MAAM,EAAE,6BAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SAC1C,CAAC;IACN,CAAC;IAED,yCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,4BAAa,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;IAED,gDAAe,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,gDAAe,GAAf;QACI,IAAM,mBAAmB,GAAc,EAAE,CAAC;QAC1C,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,yCAAQ,GAAR;QACI,MAAM,CAAC,gDAA6C,IAAI,CAAC,gBAAgB,QAAI,CAAC;IAClF,CAAC;IAED,2CAAU,GAAV;QACI,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,iDAAgB,GAAhB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAc,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,kDAAiB,GAAjB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAc,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,oDAAmB,GAAnB;QACI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,6BAAc,CAAC,OAAO,CAAC;IAClD,CAAC;IACL,6BAAC;AAAD,CAAC,CA9E2C,0BAAW,GA8EtD;AA5EG;IADC,mBAAU,CAAC,6BAAc,CAAC;;sDACJ;AAGvB;IADC,oBAAW;;gEACa;AALhB,wDAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBnC,uCAA2C;AAE3C,6CAA6E;AAE7E;IAA4C,0CAAW;IAQnD,gCAAY,KAA8B;QAA1C,YACI,iBAAO,SAMV;QALG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACjB,KAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;;IACrB,CAAC;IAED,+CAAc,GAAd,UAAe,QAAa;QACxB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,2CAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,6CAAY,GAAZ;QACI,MAAM,CAAC;YACH,eAAe,EAAE,8BAAe,CAAC,sBAAsB;YACvD,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ,CAAC;IACN,CAAC;IAED,yCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,4BAAa,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,yCAAQ,GAAR;QACI,MAAM,CAAC,oCAAiC,IAAI,CAAC,CAAC,SAAI,IAAI,CAAC,CAAC,SAAK,CAAC;IAClE,CAAC;IACL,6BAAC;AAAD,CAAC,CAhD2C,0BAAW,GAgDtD;AA7CG;IADC,oBAAW;;iDACF;AAGV;IADC,oBAAW;;iDACF;AAND,wDAAsB;;;;;;;;;;;;;;;;;;;;ACHnC,6CAA6E;AAE7E;IAAqC,mCAAW;IAI5C,yBAAY,KAAuB;QAAnC,YACI,iBAAO,SAKV;QAJG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;QAEb,CAAC;QACD,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;;IAC3B,CAAC;IAED,wCAAc,GAAd,UAAe,QAAa;QACxB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAiB;QACxB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,sCAAY,GAAZ;QACI,MAAM,CAAC;YACH,eAAe,EAAE,8BAAe,CAAC,eAAe;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC;IACN,CAAC;IAED,kCAAQ,GAAR,UAAS,MAAiB;QACtB,MAAM,CAAC,UAAU,CAAC,4BAAa,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,kCAAQ,GAAR;QACI,MAAM,CAAC,6BAA0B,IAAI,CAAC,IAAI,QAAI,CAAC;IACnD,CAAC;IACL,sBAAC;AAAD,CAAC,CAvCoC,0BAAW,GAuC/C;AAvCY,0CAAe;;;;;;;;;;ACH5B,4CAA6C;AAC7C,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,sBAAS,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,IAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAChD,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,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,IAAiB,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACT,mBAAS,GAAG,MAAM,CAAC;IACnB,oBAAU,GAAG,MAAM,CAAC;IACpB,0BAAgB,GAAG,EAAE,CAAC;AACvC,CAAC,EAJgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIzB;;;;;;;;;;ACJD;IAAA;IAEA,CAAC;IAAD,UAAC;AAAD,CAAC;AAD0B,cAAU,GAAG,aAAa,CAAC;AAGtD;IAAA;IAUA,CAAC;IAAD,iBAAC;AAAD,CAAC;AAT0B,4BAAiB,GAAG,qBAAqB,CAAC;AAC1C,0BAAe,GAAG,kBAAkB,CAAC;AACrC,6BAAkB,GAAG,sBAAsB,CAAC;AAC5C,0BAAe,GAAG,mBAAmB,CAAC;AACtC,+BAAoB,GAAG,mBAAmB,CAAC;AAC3C,qCAA0B,GAAG,+BAA+B,CAAC;AAC7D,2BAAgB,GAAG,oBAAoB,CAAC;AACxC,yBAAc,GAAG,kBAAkB,CAAC;AACpC,qCAA0B,GAAG,gCAAgC,CAAC;AAGzF;IAAA;IAGA,CAAC;IAAD,gBAAC;AAAD,CAAC;AAF0B,aAAG,GAAG,GAAG,CAAC;AACV,qBAAW,GAAG,UAAU,CAAC;AAFvC,8BAAS;;;;;;;AChBtB,2c;;;;;;ACAA,yBAAyB,gBAAgB,mBAAmB,EAAE,gBAAgB,qBAAqB,oBAAoB,uBAAuB,EAAE,G;;;;;;;;;;;;;;;;;;ACAhJ,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,2RAA2R,eAAe,8SAA8S,uBAAuB,0PAA0P,4DAA4D,61B;;;;;;ACAr6B,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,uBAAuB,cAAc,qBAAqB,uBAAuB,uBAAuB,EAAE,6BAA6B,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;;;;;;;;;;;;ACA7qC,mCAAmC;;;;;;;;;;;;;;;;;;;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,6PAA6P,+HAA+H,UAAU,gD;;;;;;ACAtY,yBAAyB,mBAAmB,EAAE,2BAA2B,sBAAsB,4CAA4C,2BAA2B,EAAE,yCAAyC,4BAA4B,8BAA8B,EAAE,mCAAmC,uBAAuB,wBAAwB,EAAE,0CAA0C,gCAAgC,4BAA4B,yBAAyB,qBAAqB,kBAAkB,sBAAsB,4BAA4B,gBAAgB,EAAE,G;;;;;;ACA3kB,ooBAAooB,qCAAqC,a;;;;;;ACAzqB,yBAAyB,gBAAgB,iBAAiB,mBAAmB,EAAE,gBAAgB,qBAAqB,oBAAoB,uBAAuB,EAAE,G;;;;;;;;;;;;;;;;;;ACAjK,oCAA4G;AAC5G,2CAAiF;AAEjF,6CAAyD;AAEzD,sCAAsE;AAEtE,uCAAgD;AA6BhD,IAAa,kBAAkB;IAc3B,4BAAY,cAA8B;QAA1C,iBAqBC;QA/BS,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,oBAAO,CAAC,SAAS,EAAE;gBACf,kBAAK,CAAC,UAAU,EAAE,kBAAK,CAAC;oBACpB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,kBAAK,CAAC,QAAQ,EAAE,kBAAK,CAAC;oBAClB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,uBAAU,CAAC,qBAAqB,EAAE,oBAAO,CAAC,gBAAgB,CAAC,CAAC;aAC/D,CAAC;YACF,oBAAO,CAAC,YAAY,EAAE;gBAClB,kBAAK,CAAC,MAAM,EAAE,kBAAK,CAAC;oBAChB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,kBAAK,CAAC,QAAQ,EAAE,kBAAK,CAAC;oBAClB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,uBAAU,CAAC,QAAQ,EAAE,oBAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,uBAAU,CAAC,QAAQ,EAAE,oBAAO,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;qCAe8B,4BAAc;GAdjC,kBAAkB,CA8F9B;AA9FY,gDAAkB;;;;;;;ACpC/B,iTAAiT,srD;;;;;;ACAjT,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,oCAGuB;AAEvB,qCAAoC;AAEpC,sCAAsE;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,6QAA6Q,cAAc,yrB;;;;;;ACA3R,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;;;;;;;;;ACE1oB,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,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,yG;;;;;;ACAA,8BAA8B,qBAAqB,oBAAoB,uBAAuB,EAAE,G;;;;;;;;;;;;;;;;;;ACAhG,oCAA2C;AAC3C,uCAAsD;AAItD,wBAA+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,sDAA4D;AAAnD,sEAAkB;;;;;;;;;;;;;;;;;;;ACA3B,oCAAyG;AACzG,2CAAiF;AAEjF,+CAAqF;AACrF,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,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,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,IAAM,MAAM,GAAqB,IAAI,CAAC,WAA+B,CAAC;YACtE,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,IAAM,MAAM,GAAoB,IAAI,CAAC,WAA8B,CAAC;YACpE,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,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7G,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,4BAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,4BAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,4BAAY,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;AA3KY;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,oBAAO,CAAC,SAAS,EAAE;gBACf,kBAAK,CAAC,UAAU,EAAE,kBAAK,CAAC;oBACpB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC;gBACH,kBAAK,CAAC,QAAQ,EAAE,kBAAK,CAAC;oBAClB,MAAM,EAAE,GAAG;iBACd,CAAC,CAAC;gBACH,uBAAU,CAAC,qBAAqB,EAAE,oBAAO,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,CA4K9B;AA5KY,gDAAkB;;;;;;;ACjC/B,+YAA+Y,SAAS,shB;;;;;;ACAxZ,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,+DAA6E;AAApE,+FAA0B;;;;;;;;;;;;;;;;;;;ACAnC,oCAA0F;AAE1F,6CAU8D;AAC9D,qCAAoH;AAGpH,IAAK,OAKJ;AALD,WAAK,OAAO;IACR,6CAAQ;IACR,qCAAI;IACJ,uCAAK;IACL,uCAAK;AACT,CAAC,EALI,OAAO,KAAP,OAAO,QAKX;AAQD,IAAa,0BAA0B;IANvC;QASc,SAAI,GAAG,IAAI,mBAAY,EAAe,CAAC;QACvC,WAAM,GAAG,IAAI,mBAAY,EAAQ,CAAC;QAM5C,uFAAuF;QACvF,YAAO,GAAG,OAAO,CAAC;IA2DtB,CAAC;IA1DG,iCAAiC;IAEjC,6CAAQ,GAAR;QACI,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAM,GAAG,GAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,gDAAW,GAAX;QACI,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,kDAAa,GAAb;QACI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,gDAAW,GAAX;QACI,IAAI,CAAC;YACD,oEAAoE;YACpE,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,YAAY,0BAAoB;gBAC3D,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE;gBACpC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,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,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACrC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACzC,CAAC;IACL,CAAC;IAED,+CAAU,GAAV,UAAW,MAAmB;QAC1B,EAAE,CAAC,CAAC,MAAM,YAAY,+BAAgB,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,YAAY,8BAAe,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,YAAY,6BAAc,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,YAAY,qCAAsB;YAC/C,MAAM,YAAY,mCAAoB;YACtC,MAAM,YAAY,qCAAsB,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IAEO,8DAAyB,GAAjC;QACI,IAAM,WAAW,GAAgB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,8BAAe,EAAE,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,qBAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChF,CAAC;IAEL,iCAAC;AAAD,CAAC;AArEY;IAAR,YAAK,EAAE;8BAAc,0BAAW;+DAAC;AAExB;IAAT,aAAM,EAAE;;wDAAwC;AACvC;IAAT,aAAM,EAAE;;0DAAmC;AAE1B;IAAjB,gBAAS,CAAC,KAAK,CAAC;;+DAA6G;AANrH,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,CAsEtC;AAtEY,gEAA0B;;;;;;;;;;AC7BvC,uDAAiE;AAAxD,+EAAsB;;;;;;;;;;;;;;;;;;;ACA/B,oCAOuB;AAEvB,6CAA8F;AAE9F,IAAM,aAAa,GAAG,GAAG,CAAC,CAAC,aAAa;AASxC,IAAa,sBAAsB;IAO/B;QAFA,YAAO,GAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,CAAC;IAEjB,yCAAQ,GAAR;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,+BAAgB,EAAE,CAAC;QAC9C,CAAC;QACD,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;AAnBY;IAAR,YAAK,EAAE;8BAAc,+BAAgB;2DAAC;AACT;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,CAoBlC;AApBY,wDAAsB;;;;;;;ACpBnC,m3BAAm3B,OAAO,0D;;;;;;ACA13B,yBAAyB,kBAAkB,2BAA2B,uBAAuB,EAAE,2BAA2B,qBAAqB,EAAE,kCAAkC,4BAA4B,6BAA6B,EAAE,G;;;;;;;;;ACA9O,qDAA6D;AAApD,yEAAoB;;;;;;;;;;;;;;;;;;;ACA7B,oCAAoE;AAEpE,2CAAsG;AACtG,6CAA4G;AAC5G,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;QAcI,uFAAuF;QACvF,YAAO,GAAG,OAAO,CAAC;IA8CtB,CAAC;IAzCG,uCAAQ,GAAR;QACI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,6BAAc,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,4BAAe,CAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,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;IACzB,CAAC;IAED,yCAAU,GAAV,UAAW,WAA2B;QAClC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,6BAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,6BAAc,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,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,gDAAiB,GAAjB;QACI,IAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,6BAAc,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3F,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,cAAc,CAAC;IAC1B,CAAC;IAEL,2BAAC;AAAD,CAAC;AAnDY;IAAR,YAAK,EAAE;8BAAc,6BAAc;yDAAC;AACnB;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,CAoDhC;AApDY,oDAAoB;;;;;;;;;;;;;ACtBjC,mCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAvC,oCAA6F;AAI7F,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,o4B;;;;;;ACAA,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,mCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAzC,oCAA4D;AAI5D,2CAAmG;AAEnG,oCAA6B;AAC7B,+CAAoE;AACpE,+CAAqG;AAOrG,IAAa,oBAAoB;IAAS,wCAAG;IAiBzC,8BAAoB,MAAqB;QAAzC,YACI,iBAAO,SAyBV;QA1BmB,YAAM,GAAN,MAAM,CAAe;QAyGzC,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;sBAC3B,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS;sBACjC,sCAAsC;sBACtC,KAAK,CAAC,UAAU,CAAC,WAAW;sBAC5B,SAAS;oBACX,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;QAxHG,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,sBAAsB,GAAG,KAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACrD,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,KAA0D;QACpE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,IAAI,EAAE,8BAAa,CAAC,KAAK,CAAC,CAAC;QACrG,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACzD,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,IAAM,eAAe,GAAqC,SAAS,CAAC;QACpE,iCAAiC;QACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,4BAA4B,CAAC,eAAe,CAAC,QAAQ,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAErH,IAAM,mBAAmB,GAAW,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAE9D,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,IAAM,KAAK,GAAW,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;YAC1E,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,IAAM,eAAe,GAAoB,IAAI,4BAAe,EAAE,CAAC;QAC/D,IAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxE,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,eAAe,CAAC,IAAI,GAAG,8BAAa,CAAC,UAAU,CAAC;QACpD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,eAAe,CAAC,IAAI,GAAG,8BAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;QACjC,IAAM,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;QACjG,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,IAAM,eAAe,GAAc,KAAK,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAChG,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,KAAwB;QACtC,IAAI,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;IAC/C,CAAC;IAED,+CAAgB,GAAhB,UAAiB,KAAwB;QACrC,IAAM,EAAE,GAAW,KAAK,CAAC,KAAK,CAAC;QAE/B,uEAAuE;QACvE,iDAAiD;QACjD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,mDAAoB,GAA5B,UAA6B,SAAiD;QAC1E,IAAI,cAAiC,CAAC;QAEtC,IAAM,cAAc,GAA4B,IAAI,CAAC,cAAc,QAAC,CAAC;QACrE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YAC7C,EAAE,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC3B,cAAc,GAAG,aAAa,CAAC;gBAC/B,KAAK,CAAC;YACV,CAAC;YACD,cAAc,CAAC,IAAI,OAAnB,cAAc,EAAS,aAAa,CAAC,QAAQ,EAAE;QACnD,CAAC;QACD,MAAM,CAAC,cAAc,CAAC;IAC1B,CAAC;IAEO,qDAAsB,GAA9B,UAA+B,EAAU;QACrC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAM,IAAI,aAAM,CAAC,EAAE,KAAK,EAAE,EAAhB,CAAgB,CAAC,CAAC;IACjE,CAAC;IAEO,2DAA4B,GAApC,UAAqC,QAAgB,EAAE,IAAmB;QACtE,IAAM,UAAU,GACZ,CAAC,IAAI,KAAK,8BAAa,CAAC,UAAU,IAAI,IAAI,KAAK,8BAAa,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,8BAAa,CAAC,IAAI,CAAC,CAAC;QAC5G,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAC,MAAyB;YACvD,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACrC,EAAE,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;gBACnF,MAAM,CAAC,IAAI,CAAC;YAChB,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACvF,MAAM,CAAC,IAAI,CAAC;YAChB,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC;YACjB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,iDAAkB,GAA1B,UAA2B,MAAyB;QAChD,IAAI,QAAgB,CAAC;QACrB,IAAI,IAAY,CAAC;QACjB,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACpB,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;YACtC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC;QAC7C,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,GAAG,OAAO,CAAC;QACnB,CAAC;QACD,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;YACzB,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEL,2BAAC;AAAD,CAAC,CApNyC,SAAG,GAoN5C;AAnNY;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,CAoNhC;AApNY,oDAAoB;;;;;;;;ACfjC;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,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 d8b13f01..ea1b83d7 100644 --- a/assets/compiled_sprite.svg +++ b/assets/compiled_sprite.svg @@ -1 +1 @@ - \ No newline at end of file +~ `! 1@ 2# 3$ 4% 5^ 6 Tab Q W E R T Mouse A S D F G Shift Z X C V B Ctrl Super Alt Fn Mod Space & 7* 8( 9) 0_ -+ = Y U I O P { [} ]| \ H J K L : ;" ' Enter N M < ,> .? / Shift Space Fn Alt Super Ctrl Mod ~ `! 1@ 2# 3$ 4% 5^ 6TabQWERTMouseASDFGShiftZXCVBCtrlSuperAltFnModSpace& 7* 8( 9) 0_ -+ =YUIOP{ [} ]| \HJKL: ;" 'EnterNM< ,> .? /ShiftSpaceFnAltSuperCtrlMod \ No newline at end of file diff --git a/images/favicon.ico b/assets/favicon.ico similarity index 100% rename from images/favicon.ico rename to assets/favicon.ico diff --git a/images/agent-icon.png b/assets/images/agent-icon.png similarity index 100% rename from images/agent-icon.png rename to assets/images/agent-icon.png diff --git a/images/agent-logo-with-text.png b/assets/images/agent-logo-with-text.png similarity index 100% rename from images/agent-logo-with-text.png rename to assets/images/agent-logo-with-text.png diff --git a/assets/images/icon-usb-stick.svg b/assets/images/icon-usb-stick.svg new file mode 100644 index 00000000..d0bcdb14 --- /dev/null +++ b/assets/images/icon-usb-stick.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.eot b/fontawesome-webfont.674f50d287a8c48dc19b.eot similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.eot rename to fontawesome-webfont.674f50d287a8c48dc19b.eot diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.svg b/fontawesome-webfont.912ec66d7572ff821749.svg similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.svg rename to fontawesome-webfont.912ec66d7572ff821749.svg diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.woff2 b/fontawesome-webfont.af7ae505a9eed503f8b8.woff2 similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.woff2 rename to fontawesome-webfont.af7ae505a9eed503f8b8.woff2 diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.ttf b/fontawesome-webfont.b06871f281fee6b241d6.ttf similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.ttf rename to fontawesome-webfont.b06871f281fee6b241d6.ttf diff --git a/vendor/font-awesome/fonts/fontawesome-webfont.woff b/fontawesome-webfont.fee66e712a8a08eef580.woff similarity index 100% rename from vendor/font-awesome/fonts/fontawesome-webfont.woff rename to fontawesome-webfont.fee66e712a8a08eef580.woff diff --git a/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/glyphicons-halflings-regular.448c34a56d699c29117a.woff2 similarity index 100% rename from vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to glyphicons-halflings-regular.448c34a56d699c29117a.woff2 diff --git a/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg b/glyphicons-halflings-regular.89889688147bd7575d63.svg similarity index 100% rename from vendor/bootstrap/fonts/glyphicons-halflings-regular.svg rename to glyphicons-halflings-regular.89889688147bd7575d63.svg diff --git a/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf b/glyphicons-halflings-regular.e18bbf611f2a2e43afc0.ttf similarity index 100% rename from vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to glyphicons-halflings-regular.e18bbf611f2a2e43afc0.ttf diff --git a/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot b/glyphicons-halflings-regular.f4769f9bdb7466be6508.eot similarity index 100% rename from vendor/bootstrap/fonts/glyphicons-halflings-regular.eot rename to glyphicons-halflings-regular.f4769f9bdb7466be6508.eot diff --git a/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff b/glyphicons-halflings-regular.fa2772327f55d8198301.woff similarity index 100% rename from vendor/bootstrap/fonts/glyphicons-halflings-regular.woff rename to glyphicons-halflings-regular.fa2772327f55d8198301.woff diff --git a/images/agent-icon.svg b/images/agent-icon.svg deleted file mode 100644 index 68669647..00000000 --- a/images/agent-icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/images/base-layer--blank.svg b/images/base-layer--blank.svg deleted file mode 100644 index 86c2dd70..00000000 --- a/images/base-layer--blank.svg +++ /dev/null @@ -1,647 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/base-layer--dvorak.svg b/images/base-layer--dvorak.svg deleted file mode 100644 index 3fe8cbd0..00000000 --- a/images/base-layer--dvorak.svg +++ /dev/null @@ -1,1404 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~ - ` - - - ! - 1 - - - @ - 2 - - - # - 3 - - - $ - 4 - - - % - 5 - - - ^ - 6 - - - Tab - - - Q - - - W - - - E - - - R - - - T - - - Mouse - - - A - - - S - - - D - - - F - - - G - - - Shift - - - Z - - - X - - - C - - - V - - - B - - - Ctrl - - - Super - - - Alt - - - Fn - - - Mod - - - Space - - - - - & - 7 - - - * - 8 - - - ( - 9 - - - ) - 0 - - - _ - - - - - + - = - - - - - - Y - - - U - - - I - - - O - - - P - - - { - [ - - - } - ] - - - | - \ - - - H - - - J - - - K - - - L - - - : - ; - - - " - ' - - - Enter - - - N - - - M - - - < - , - - - > - . - - - ? - / - - - Shift - - - Space - - - Fn - - - Alt - - - Super - - - Ctrl - - - Mod - - - diff --git a/images/base-layer.svg b/images/base-layer.svg deleted file mode 100644 index bc1cd780..00000000 --- a/images/base-layer.svg +++ /dev/null @@ -1,1621 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~ - ` - - - ! - 1 - - - @ - 2 - - - # - 3 - - - $ - 4 - - - % - 5 - - - ^ - 6 - - - - Tab - - - - - Q - - - - - W - - - - - E - - - - - R - - - - - T - - - - - Mouse - - - - - A - - - - - S - - - - - D - - - - - F - - - - - G - - - - - Shift - - - - - Z - - - - - X - - - - - C - - - - - V - - - - - B - - - - - Ctrl - - - - - Super - - - - - Alt - - - - - Fn - - - - - Mod - - - - - Space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - & - 7 - - - * - 8 - - - ( - 9 - - - ) - 0 - - - _ - - - - - + - = - - - - ← - - - - - Y - - - - - U - - - - - I - - - - - O - - - - - P - - - - { - [ - - - } - ] - - - | - \ - - - - H - - - - - J - - - - - K - - - - - L - - - - : - ; - - - " - ' - - - - Enter - - - - - N - - - - - M - - - - < - , - - - > - . - - - ? - / - - - - Shift - - - - - Space - - - - - Fn - - - - - Alt - - - - - Super - - - - - Ctrl - - - - - Mod - - - - - diff --git a/images/icons/icon__macro.svg b/images/icons/icon__macro.svg deleted file mode 100755 index d3661b68..00000000 --- a/images/icons/icon__macro.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__default--long-press.svg b/images/icons/kbd__default--long-press.svg deleted file mode 100755 index 0407d23d..00000000 --- a/images/icons/kbd__default--long-press.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/images/icons/kbd__default--modifier-command.svg b/images/icons/kbd__default--modifier-command.svg deleted file mode 100644 index b6793eff..00000000 --- a/images/icons/kbd__default--modifier-command.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__default--modifier-option.svg b/images/icons/kbd__default--modifier-option.svg deleted file mode 100644 index 38492c4e..00000000 --- a/images/icons/kbd__default--modifier-option.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__default--modifier-shift.svg b/images/icons/kbd__default--modifier-shift.svg deleted file mode 100644 index cb673fea..00000000 --- a/images/icons/kbd__default--modifier-shift.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__default--modifier-windows.svg b/images/icons/kbd__default--modifier-windows.svg deleted file mode 100755 index 9d8ea5ca..00000000 --- a/images/icons/kbd__default--modifier-windows.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__fn--browser.svg b/images/icons/kbd__fn--browser.svg deleted file mode 100755 index ed8fb75c..00000000 --- a/images/icons/kbd__fn--browser.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__fn--calculator.svg b/images/icons/kbd__fn--calculator.svg deleted file mode 100755 index db142bd1..00000000 --- a/images/icons/kbd__fn--calculator.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__fn--eject.svg b/images/icons/kbd__fn--eject.svg deleted file mode 100755 index 03403ebb..00000000 --- a/images/icons/kbd__fn--eject.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__fn--screen-lock.svg b/images/icons/kbd__fn--screen-lock.svg deleted file mode 100755 index 5d9c1c35..00000000 --- a/images/icons/kbd__fn--screen-lock.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/images/icons/kbd__fn--search.svg b/images/icons/kbd__fn--search.svg deleted file mode 100755 index 6ec04368..00000000 --- a/images/icons/kbd__fn--search.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__fn--sleep.svg b/images/icons/kbd__fn--sleep.svg deleted file mode 100755 index 2eca0c31..00000000 --- a/images/icons/kbd__fn--sleep.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__fn--toggle.svg b/images/icons/kbd__fn--toggle.svg deleted file mode 100644 index 9e46a2d7..00000000 --- a/images/icons/kbd__fn--toggle.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/images/icons/kbd__media--calculator.svg b/images/icons/kbd__media--calculator.svg deleted file mode 100644 index 0548b25b..00000000 --- a/images/icons/kbd__media--calculator.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/images/icons/kbd__media--email-client.svg b/images/icons/kbd__media--email-client.svg deleted file mode 100644 index 0bc1a12a..00000000 --- a/images/icons/kbd__media--email-client.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media--mute.svg b/images/icons/kbd__media--mute.svg deleted file mode 100755 index cdbaecee..00000000 --- a/images/icons/kbd__media--mute.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media--next.svg b/images/icons/kbd__media--next.svg deleted file mode 100755 index b686de64..00000000 --- a/images/icons/kbd__media--next.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media--pause.svg b/images/icons/kbd__media--pause.svg deleted file mode 100755 index 3c2bbb06..00000000 --- a/images/icons/kbd__media--pause.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media--play.svg b/images/icons/kbd__media--play.svg deleted file mode 100755 index 273db2c5..00000000 --- a/images/icons/kbd__media--play.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media--prev.svg b/images/icons/kbd__media--prev.svg deleted file mode 100755 index 01a2f389..00000000 --- a/images/icons/kbd__media--prev.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media--vol-down.svg b/images/icons/kbd__media--vol-down.svg deleted file mode 100755 index 857ca6f4..00000000 --- a/images/icons/kbd__media--vol-down.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/images/icons/kbd__media--vol-up.svg b/images/icons/kbd__media--vol-up.svg deleted file mode 100755 index a8364fd7..00000000 --- a/images/icons/kbd__media--vol-up.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/images/icons/kbd__media--web-browser.svg b/images/icons/kbd__media--web-browser.svg deleted file mode 100644 index ed8fb75c..00000000 --- a/images/icons/kbd__media--web-browser.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__media.svg b/images/icons/kbd__media.svg deleted file mode 100755 index 187e863f..00000000 --- a/images/icons/kbd__media.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__mod--arrow-down.svg b/images/icons/kbd__mod--arrow-down.svg deleted file mode 100644 index 12b4bc67..00000000 --- a/images/icons/kbd__mod--arrow-down.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__mod--arrow-left.svg b/images/icons/kbd__mod--arrow-left.svg deleted file mode 100644 index 45ed6b6c..00000000 --- a/images/icons/kbd__mod--arrow-left.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__mod--arrow-right.svg b/images/icons/kbd__mod--arrow-right.svg deleted file mode 100644 index 93e3875b..00000000 --- a/images/icons/kbd__mod--arrow-right.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__mod--arrow-up.svg b/images/icons/kbd__mod--arrow-up.svg deleted file mode 100644 index f96c3fc8..00000000 --- a/images/icons/kbd__mod--arrow-up.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__mod--menu.svg b/images/icons/kbd__mod--menu.svg deleted file mode 100644 index 59fa9c5d..00000000 --- a/images/icons/kbd__mod--menu.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/icons/kbd__mod--switch-keymap.svg b/images/icons/kbd__mod--switch-keymap.svg deleted file mode 100644 index 049cc301..00000000 --- a/images/icons/kbd__mod--switch-keymap.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__mouse--scroll-down.svg b/images/icons/kbd__mouse--scroll-down.svg deleted file mode 100644 index 788520ca..00000000 --- a/images/icons/kbd__mouse--scroll-down.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/icons/kbd__mouse--scroll-left.svg b/images/icons/kbd__mouse--scroll-left.svg deleted file mode 100644 index 8c6ea0fa..00000000 --- a/images/icons/kbd__mouse--scroll-left.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/icons/kbd__mouse--scroll-right.svg b/images/icons/kbd__mouse--scroll-right.svg deleted file mode 100644 index 5a019e8d..00000000 --- a/images/icons/kbd__mouse--scroll-right.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/icons/kbd__mouse--scroll-up.svg b/images/icons/kbd__mouse--scroll-up.svg deleted file mode 100644 index c0abca8a..00000000 --- a/images/icons/kbd__mouse--scroll-up.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/icons/kbd__mouse.svg b/images/icons/kbd__mouse.svg deleted file mode 100644 index 95a7b57f..00000000 --- a/images/icons/kbd__mouse.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/icons/kbd__system_power_down.svg b/images/icons/kbd__system_power_down.svg deleted file mode 100644 index 8ac0928b..00000000 --- a/images/icons/kbd__system_power_down.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__system_sleep.svg b/images/icons/kbd__system_sleep.svg deleted file mode 100644 index 2eca0c31..00000000 --- a/images/icons/kbd__system_sleep.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/images/icons/kbd__system_wake_up.svg b/images/icons/kbd__system_wake_up.svg deleted file mode 100644 index b6eb4d5a..00000000 --- a/images/icons/kbd__system_wake_up.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/images/segments_dvr.svg b/images/segments_dvr.svg deleted file mode 100644 index 6b3f07b9..00000000 --- a/images/segments_dvr.svg +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/segments_qwe.svg b/images/segments_qwe.svg deleted file mode 100644 index c3cbb880..00000000 --- a/images/segments_qwe.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/segments_template.svg b/images/segments_template.svg deleted file mode 100644 index 797fc953..00000000 --- a/images/segments_template.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/index.html b/index.html index baaf9d8b..87dd2183 100644 --- a/index.html +++ b/index.html @@ -1,31 +1,5 @@ - - - - - - Ultimate Hacking Keyboard Configurator - - - - - - - - - - - - - - - - - +Ultimate Hacking Keyboard Configurator \ No newline at end of file diff --git a/inline.c6663fdbb85a1d17a2e1.bundle.js b/inline.c6663fdbb85a1d17a2e1.bundle.js new file mode 100644 index 00000000..95eaff0c --- /dev/null +++ b/inline.c6663fdbb85a1d17a2e1.bundle.js @@ -0,0 +1 @@ +!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,a,c){for(var u,i,f,l=0,s=[];l"},{id:"56",text:"/ ?"}]},{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",text:"F1"},{id:"59",text:"F2"},{id:"60",text:"F3"},{id:"61",text:"F4"},{id:"62",text:"F5"},{id:"63",text:"F6"},{id:"64",text:"F7"},{id:"65",text:"F8"},{id:"66",text:"F9"},{id:"67",text:"F10"},{id:"68",text:"F11"},{id:"69",text:"F12"},{id:"100",text:"| ISO"},{id:"104",text:"F13"},{id:"105",text:"F14"},{id:"106",text:"F15"},{id:"107",text:"F16"},{id:"108",text:"F17"},{id:"109",text:"F18"},{id:"110",text:"F19"},{id:"111",text:"F20"},{id:"112",text:"F21"},{id:"113",text:"F22"},{id:"114",text:"F23"},{id:"115",text:"F24"}]},{text:"Navigation",children:[{id:"75",additional:{explanation:"PgUp"},text:"Page Up"},{id:"78",additional:{explanation:"PgDn"},text:"Page Down"},{id:"74",text:"Home"},{id:"77",text:"End"},{id:"80",text:"Left Arrow"},{id:"79",text:"Right Arrow"},{id:"82",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}}]},{text:"Numpad",children:[{id:"83",text:"NumLock"},{id:"84",additional:{explanation:"slash"},text:"/"},{id:"85",additional:{explanation:"asterisk"},text:"*"},{id:"86",additional:{explanation:"minus"},text:"-"},{id:"87",additional:{explanation:"plus"},text:"+"},{id:"88",text:"Enter"},{id:"89",additional:{explanation:"one"},text:"1"},{id:"90",additional:{explanation:"two"},text:"2"},{id:"91",additional:{explanation:"three"},text:"3"},{id:"92",additional:{explanation:"four"},text:"4"},{id:"93",additional:{explanation:"five"},text:"5"},{id:"94",additional:{explanation:"six"},text:"6"},{id:"95",additional:{explanation:"seven"},text:"7"},{id:"96",additional:{explanation:"eight"},text:"8"},{id:"97",additional:{explanation:"nine"},text:"9"},{id:"98",additional:{explanation:"zero"},text:"0"},{id:"99",additional:{explanation:"period"},text:"."}]}]},"3J1y":function(e,n,t){"use strict";function l(e){return e.replace(/^[a-z]|[A-Z]/g,function(e,n){return 0===n?e.toUpperCase():" "+e.toLowerCase()})}function o(e){return e.charAt(0).toUpperCase()+e.slice(1)}function i(e){if(u[e])throw new Error('Action type "'+e+'" is not unique"');return u[e]=!0,e}function a(){return window&&window.process&&window.process.type}Object.defineProperty(n,"__esModule",{value:!0});var c=t("APjS");n.IpcEvents=c.IpcEvents,function(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}(t("v4Uh")),n.camelCaseToSentence=l,n.capitalizeFirstLetter=o;var u={};n.type=i,n.runInElectron=a},"3XxM":function(e,n,t){"use strict";function l(e,n){void 0===e&&(e=T);var t=Object.assign(new g.UserConfiguration,e);switch(n.type){case v.a.APPLY_USER_CONFIGURATION_FROM_FILE:case v.a.LOAD_RESET_USER_CONFIGURATION:case v.a.LOAD_USER_CONFIG_SUCCESS:return Object.assign(t,n.payload);case b.a.ADD:case b.a.DUPLICATE:var l=new g.Keymap(n.payload);l.abbreviation=s(e.keymaps,l.abbreviation),l.name=d(e.keymaps,l.name),l.isDefault=0===e.keymaps.length,t.keymaps=e.keymaps.concat(l);break;case b.a.EDIT_NAME:if(!Object(A.b)(n.payload.name))break;var o=n.payload.name.trim(),i=e.keymaps.some(function(e){return e.name===o&&e.abbreviation!==n.payload.abbr});t.keymaps=e.keymaps.map(function(e){return e=Object.assign(new g.Keymap,e),i||e.abbreviation!==n.payload.abbr||(e.name=o),e});break;case b.a.EDIT_ABBR:var a=n.payload.newAbbr.toUpperCase(),c=e.keymaps.some(function(e){return e.name!==n.payload.name&&e.abbreviation===a});t.keymaps=e.keymaps.map(function(e){return e=Object.assign(new g.Keymap,e),c||e.abbreviation!==n.payload.abbr?e=e.renameKeymap(n.payload.abbr,n.payload.newAbbr):e.abbreviation=a,e});break;case b.a.SET_DEFAULT:t.keymaps=e.keymaps.map(function(e){return(e.abbreviation===n.payload||e.isDefault)&&(e=Object.assign(new g.Keymap,e),e.isDefault=e.abbreviation===n.payload),e});break;case b.a.REMOVE:var u,r=e.keymaps.filter(function(e){return e.abbreviation!==n.payload||(u=e.isDefault,!1)});u&&r.length>0&&(r[0]=Object.assign(new g.Keymap,r[0],{isDefault:!0})),t.keymaps=r.map(function(e){return e=Object.assign(new g.Keymap,e),e.layers=y(e.layers,"keymapAbbreviation",n.payload),e});break;case b.a.SAVE_KEY:var m=n.payload.key,k=n.payload.layer,h=n.payload.module,M=g.KeyActionHelper.createKeyAction(n.payload.keyAction),C=Object.assign(new g.Keymap,n.payload.keymap);C.layers=C.layers.slice(),C.layers=C.layers.map(function(e,t){var l=Object.assign(new g.Layer,e);if(t===k)f(l,h,m,M);else if(M instanceof g.SwitchLayerAction)if(t-1===M.layer){var o=g.KeyActionHelper.createKeyAction(n.payload.keyAction);f(l,h,m,o)}else f(l,h,m,null);return l}),t.keymaps=e.keymaps.map(function(e){return e.abbreviation===C.abbreviation&&(e=C),e});break;case b.a.CHECK_MACRO:t.keymaps=e.keymaps.map(function(e){return e=Object.assign(new g.Keymap,e),e.layers=y(e.layers,"_macroId",n.payload),e});break;case b.b.ADD:var w=new g.Macro;w.id=p(e.macros),w.name=d(e.macros,"New macro"),w.isLooped=!1,w.isPrivate=!0,w.macroActions=[],t.macros=e.macros.concat(w);break;case b.b.DUPLICATE:var w=new g.Macro(n.payload);w.name=d(e.macros,w.name),w.id=p(e.macros),t.macros=e.macros.concat(w);break;case b.b.EDIT_NAME:if(!Object(A.b)(n.payload.name))break;var _=n.payload.name.trim(),O=e.macros.some(function(e){return e.id!==n.payload.id&&e.name===_});t.macros=e.macros.map(function(e){return e=Object.assign(new g.Macro,e),O||e.id!==n.payload.id||(e.name=_),e});break;case b.b.REMOVE:t.macros=e.macros.filter(function(e){return e.id!==n.payload});break;case b.b.ADD_ACTION:t.macros=e.macros.map(function(e){return e.id===n.payload.id&&(e=new g.Macro(e),e.macroActions.push(n.payload.action)),e});break;case b.b.SAVE_ACTION:t.macros=e.macros.map(function(e){return e.id===n.payload.id&&(e=new g.Macro(e),e.macroActions[n.payload.index]=n.payload.action),e});break;case b.b.DELETE_ACTION:t.macros=e.macros.map(function(e){return e.id===n.payload.id&&(e=new g.Macro(e),e.macroActions.splice(n.payload.index,1)),e});break;case b.b.REORDER_ACTION:t.macros=e.macros.map(function(e){if(e.id===n.payload.id){var t=n.payload.newIndex;t>n.payload.oldIndex&&--t,e=new g.Macro(e),e.macroActions.splice(t,0,e.macroActions.splice(n.payload.oldIndex,1)[0])}return e});break;case v.a.RENAME_USER_CONFIGURATION:Object(A.b)(n.payload)&&(t.deviceName=n.payload.trim());break;case v.a.SET_USER_CONFIGURATION_VALUE:t[n.payload.propertyName]=n.payload.value}return t}function o(){return function(e){return e.map(function(e){return e.userConfiguration})}}function i(){return function(e){return e.map(function(e){return e.userConfiguration.keymaps})}}function a(e){return void 0===e?c():function(n){return i()(n).map(function(n){return n.find(function(n){return n.abbreviation===e})})}}function c(){return function(e){return i()(e).map(function(e){return e.find(function(e){return e.isDefault})})}}function u(){return function(e){return e.map(function(e){return e.userConfiguration.macros})}}function r(e){return isNaN(e)?function(){return m.Observable.of(void 0)}:function(n){return u()(n).map(function(n){return n.find(function(n){return n.id===e})})}}function s(e,n){for(var t="23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),l=0;e.some(function(e){return e.abbreviation===n});)if(n=n.substring(0,n.length-1)+t[l],++l>t.length){l=0;var o=t.indexOf(n.substr(0,1)),i=t.indexOf(n.substr(1,1));i++,i>t.length&&(i=0,o++),n=t[o]+t[i]+t[l]}return n}function d(e,n){var t=1,l=/ \(\d+\)$/g,o=n.replace(l,"");return e.forEach(function(e){e.name.replace(l,"")===o&&t++}),o+" ("+t+")"}function p(e){var n=0;return e.forEach(function(e){e.id>n&&(n=e.id)}),n+1}function y(e,n,t){for(var l=[],o=0;o=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},o=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("eEV6"),a=t("kPGt"),c=function(){function e(e){e&&(this.id=e.id,this.isLooped=e.isLooped,this.isPrivate=e.isPrivate,this.name=e.name,this.macroActions=e.macroActions.map(function(e){return a.Helper.createMacroAction(e)}))}return e.prototype.fromJsonObject=function(e){return this.isLooped=e.isLooped,this.isPrivate=e.isPrivate,this.name=e.name,this.macroActions=e.macroActions.map(function(e){return a.Helper.createMacroAction(e)}),this},e.prototype.fromBinary=function(e){this.isLooped=e.readBoolean(),this.isPrivate=e.readBoolean(),this.name=e.readString();var n=e.readCompactLength();this.macroActions=[];for(var t=0;t'},l([i.assertUInt8,o("design:type",Number)],e.prototype,"id",void 0),e}();n.Macro=c},"7qCM":function(e,n,t){"use strict";var l=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},o=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("eEV6"),a=t("ct+e"),c=t("PsbM"),u=t("6bQ0"),r=t("SGBA"),s=t("nAMu"),d=function(){function e(){this.moduleConfigurations=[],this.keymaps=[],this.macros=[],this.setDefaultDeviceName()}return e.prototype.fromJsonObject=function(e){var n=this;return this.userConfigMajorVersion=e.userConfigMajorVersion,this.userConfigMinorVersion=e.userConfigMinorVersion,this.userConfigPatchVersion=e.userConfigPatchVersion,this.deviceName=e.deviceName,this.setDefaultDeviceName(),this.doubleTapSwitchLayerTimeout=e.doubleTapSwitchLayerTimeout,this.iconsAndLayerTextsBrightness=e.iconsAndLayerTextsBrightness,this.alphanumericSegmentsBrightness=e.alphanumericSegmentsBrightness,this.keyBacklightBrightness=e.keyBacklightBrightness,this.mouseMoveInitialSpeed=e.mouseMoveInitialSpeed,this.mouseMoveAcceleration=e.mouseMoveAcceleration,this.mouseMoveDeceleratedSpeed=e.mouseMoveDeceleratedSpeed,this.mouseMoveBaseSpeed=e.mouseMoveBaseSpeed,this.mouseMoveAcceleratedSpeed=e.mouseMoveAcceleratedSpeed,this.mouseScrollInitialSpeed=e.mouseScrollInitialSpeed,this.mouseScrollAcceleration=e.mouseScrollAcceleration,this.mouseScrollDeceleratedSpeed=e.mouseScrollAcceleration,this.mouseScrollBaseSpeed=e.mouseScrollBaseSpeed,this.mouseScrollAcceleratedSpeed=e.mouseScrollAcceleratedSpeed,this.moduleConfigurations=e.moduleConfigurations.map(function(e){return(new r.ModuleConfiguration).fromJsonObject(e)}),this.macros=e.macros.map(function(e,n){var t=(new u.Macro).fromJsonObject(e);return t.id=n,t}),this.keymaps=e.keymaps.map(function(e){return(new c.Keymap).fromJsonObject(e,n.macros)}),this.recalculateConfigurationLength(),this},e.prototype.fromBinary=function(e){var n=this;return this.userConfigMajorVersion=e.readUInt16(),this.userConfigMinorVersion=e.readUInt16(),this.userConfigPatchVersion=e.readUInt16(),this.userConfigurationLength=e.readUInt16(),this.deviceName=e.readString(),this.setDefaultDeviceName(),this.doubleTapSwitchLayerTimeout=e.readUInt16(),this.iconsAndLayerTextsBrightness=e.readUInt8(),this.alphanumericSegmentsBrightness=e.readUInt8(),this.keyBacklightBrightness=e.readUInt8(),this.mouseMoveInitialSpeed=e.readUInt8(),this.mouseMoveAcceleration=e.readUInt8(),this.mouseMoveDeceleratedSpeed=e.readUInt8(),this.mouseMoveBaseSpeed=e.readUInt8(),this.mouseMoveAcceleratedSpeed=e.readUInt8(),this.mouseScrollInitialSpeed=e.readUInt8(),this.mouseScrollAcceleration=e.readUInt8(),this.mouseScrollDeceleratedSpeed=e.readUInt8(),this.mouseScrollBaseSpeed=e.readUInt8(),this.mouseScrollAcceleratedSpeed=e.readUInt8(),this.moduleConfigurations=e.readArray(function(e){return(new r.ModuleConfiguration).fromBinary(e)}),this.macros=e.readArray(function(e,n){var t=(new u.Macro).fromBinary(e);return t.id=n,t}),this.keymaps=e.readArray(function(e){return(new c.Keymap).fromBinary(e,n.macros)}),s.ConfigSerializer.resolveSwitchKeymapActions(this.keymaps),0===this.userConfigurationLength&&this.recalculateConfigurationLength(),this},e.prototype.toJsonObject=function(){var e=this;return{userConfigMajorVersion:this.userConfigMajorVersion,userConfigMinorVersion:this.userConfigMinorVersion,userConfigPatchVersion:this.userConfigPatchVersion,deviceName:this.deviceName,doubleTapSwitchLayerTimeout:this.doubleTapSwitchLayerTimeout,iconsAndLayerTextsBrightness:this.iconsAndLayerTextsBrightness,alphanumericSegmentsBrightness:this.alphanumericSegmentsBrightness,keyBacklightBrightness:this.keyBacklightBrightness,mouseMoveInitialSpeed:this.mouseMoveInitialSpeed,mouseMoveAcceleration:this.mouseMoveAcceleration,mouseMoveDeceleratedSpeed:this.mouseMoveDeceleratedSpeed,mouseMoveBaseSpeed:this.mouseMoveBaseSpeed,mouseMoveAcceleratedSpeed:this.mouseMoveAcceleratedSpeed,mouseScrollInitialSpeed:this.mouseScrollInitialSpeed,mouseScrollAcceleration:this.mouseScrollAcceleration,mouseScrollDeceleratedSpeed:this.mouseScrollDeceleratedSpeed,mouseScrollBaseSpeed:this.mouseScrollBaseSpeed,mouseScrollAcceleratedSpeed:this.mouseScrollAcceleratedSpeed,moduleConfigurations:this.moduleConfigurations.map(function(e){return e.toJsonObject()}),keymaps:this.keymaps.map(function(n){return n.toJsonObject(e.macros)}),macros:this.macros.map(function(e){return e.toJsonObject()})}},e.prototype.toBinary=function(e){var n=this;e.writeUInt16(this.userConfigMajorVersion),e.writeUInt16(this.userConfigMinorVersion),e.writeUInt16(this.userConfigPatchVersion),e.writeUInt16(this.userConfigurationLength),e.writeString(this.deviceName),e.writeUInt16(this.doubleTapSwitchLayerTimeout),e.writeUInt8(this.iconsAndLayerTextsBrightness),e.writeUInt8(this.alphanumericSegmentsBrightness),e.writeUInt8(this.keyBacklightBrightness),e.writeUInt8(this.mouseMoveInitialSpeed),e.writeUInt8(this.mouseMoveAcceleration),e.writeUInt8(this.mouseMoveDeceleratedSpeed),e.writeUInt8(this.mouseMoveBaseSpeed),e.writeUInt8(this.mouseMoveAcceleratedSpeed),e.writeUInt8(this.mouseScrollInitialSpeed),e.writeUInt8(this.mouseScrollAcceleration),e.writeUInt8(this.mouseScrollDeceleratedSpeed),e.writeUInt8(this.mouseScrollBaseSpeed),e.writeUInt8(this.mouseScrollAcceleratedSpeed),e.writeArray(this.moduleConfigurations),e.writeArray(this.macros),e.writeArray(this.keymaps,function(e,t){t.toBinary(e,n)})},e.prototype.toString=function(){return''},e.prototype.getKeymap=function(e){return this.keymaps.find(function(n){return e===n.abbreviation})},e.prototype.getMacro=function(e){return this.macros.find(function(n){return e===n.id})},e.prototype.recalculateConfigurationLength=function(){var e=new a.UhkBuffer;this.toBinary(e),this.userConfigurationLength=e.offset},e.prototype.setDefaultDeviceName=function(){this.deviceName&&0!==this.deviceName.trim().length||(this.deviceName="My UHK")},l([i.assertUInt16,o("design:type",Number)],e.prototype,"userConfigMajorVersion",void 0),l([i.assertUInt16,o("design:type",Number)],e.prototype,"userConfigMinorVersion",void 0),l([i.assertUInt16,o("design:type",Number)],e.prototype,"userConfigPatchVersion",void 0),l([i.assertUInt16,o("design:type",Number)],e.prototype,"userConfigurationLength",void 0),l([i.assertUInt16,o("design:type",Number)],e.prototype,"doubleTapSwitchLayerTimeout",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"iconsAndLayerTextsBrightness",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"alphanumericSegmentsBrightness",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"keyBacklightBrightness",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseMoveInitialSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseMoveAcceleration",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseMoveDeceleratedSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseMoveBaseSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseMoveAcceleratedSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseScrollInitialSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseScrollAcceleration",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseScrollDeceleratedSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseScrollBaseSpeed",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseScrollAcceleratedSpeed",void 0),e}();n.UserConfiguration=d},"7wSx":function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=t("B8XE"),o=function(){function e(e){e&&(this.modules=e.modules.map(function(e){return new l.Module(e)}))}return e.prototype.fromJsonObject=function(e,n){return this.modules=e.modules.map(function(e){return(new l.Module).fromJsonObject(e,n)}),this},e.prototype.fromBinary=function(e,n){return this.modules=e.readArray(function(e){return(new l.Module).fromBinary(e,n)}),this},e.prototype.toJsonObject=function(e){return{modules:this.modules.map(function(n){return n.toJsonObject(e)})}},e.prototype.toBinary=function(e,n){e.writeArray(this.modules,function(e,t){t.toBinary(e,n)})},e.prototype.toString=function(){return""},e.prototype.renameKeymap=function(n,t){var l,o=this,i=!1;if(this.modules.forEach(function(e,a){var c=e.renameKeymap(n,t);c!==e&&(i||(l=o.modules.slice(),i=!0),l[a]=c)}),i){var a=Object.assign(new e,this);return a.modules=l,a}return this},e}();n.Layer=o},"9g6q":function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("PsbM"),u=t("N4Uw"),r=function(e){function n(t){var l=e.call(this)||this;return t?(t instanceof n?l.keymapAbbreviation=t.keymapAbbreviation:t instanceof c.Keymap?l.keymapAbbreviation=t.abbreviation:l.keymapAbbreviation=t,l):l}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertKeyActionType(e),this.keymapAbbreviation=e.keymapAbbreviation,this},n.prototype.toJsonObject=function(){return{keyActionType:u.keyActionType.SwitchKeymapAction,keymapAbbreviation:this.keymapAbbreviation}},n.prototype.toBinary=function(e,n){var t=this,l=n.keymaps.findIndex(function(e){return e.abbreviation===t.keymapAbbreviation});e.writeUInt8(u.KeyActionId.SwitchKeymapAction),e.writeUInt8(l)},n.prototype.toString=function(){return''},n.prototype.renameKeymap=function(e,t){return this.keymapAbbreviation!==e?this:new n(t)},n.prototype.getName=function(){return"SwitchKeymapAction"},n}(u.KeyAction);n.SwitchKeymapAction=r;var s=function(e){function n(n){var t=e.call(this)||this;return t.keymapIndex=n,t}return l(n,e),n.prototype.fromBinary=function(e){return e.readUInt8(),this.keymapIndex=e.readUInt8(),this},n.prototype.toBinary=function(e){e.writeUInt8(u.KeyActionId.SwitchKeymapAction),e.writeUInt8(this.keymapIndex)},n.prototype.toJsonObject=function(){throw new Error("UnresolvedSwitchKeymapAction cannot be serialized directly. Convert it to SwitchKeymapAction first.")},n.prototype.resolve=function(e){return new r(e[this.keymapIndex])},n.prototype.getName=function(){return"UnresolvedSwitchKeymapAction"},o([a.assertUInt8,i("design:type",Number)],n.prototype,"keymapIndex",void 0),n}(u.KeyAction);n.UnresolvedSwitchKeymapAction=s},APjS:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=function(){function e(){}return e.appStarted="app-started",e.getAppStartInfo="app-get-start-info",e.getAppStartInfoReply="app-get-start-info-reply",e.exit="app-exit",e}(),o=function(){function e(){}return e.checkingForUpdate="checking-for-update",e.updateAvailable="update-available",e.updateNotAvailable="update-not-available",e.autoUpdateError="auto-update-error",e.autoUpdateDownloaded="update-downloaded",e.autoUpdateDownloadProgress="auto-update-download-progress",e.updateAndRestart="update-and-restart",e.checkForUpdate="check-for-update",e.checkForUpdateNotAvailable="check-for-update-not-available",e}(),i=function(){function e(){}return e.setPrivilegeOnLinux="set-privilege-on-linux",e.setPrivilegeOnLinuxReply="set-privilege-on-linux-reply",e.deviceConnectionStateChanged="device-connection-state-changed",e.saveUserConfiguration="device-save-user-configuration",e.saveUserConfigurationReply="device-save-user-configuration-reply",e.loadConfigurations="device-load-configuration",e.loadConfigurationReply="device-load-configuration-reply",e.updateFirmware="device-update-firmware",e.updateFirmwareReply="device-update-firmware-reply",e.startConnectionPoller="device-start-connection-poller",e}(),a=function(){function e(){}return e.app=l,e.autoUpdater=o,e.device=i,e}();n.IpcEvents=a},B8XE:function(e,n,t){"use strict";var l=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},o=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("eEV6"),a=t("CTXo"),c=function(){function e(e){e&&(this.id=e.id,this.keyActions=e.keyActions.map(function(e){return a.KeyActionHelper.createKeyAction(e)}))}return e.prototype.fromJsonObject=function(e,n){return this.id=e.id,this.keyActions=e.keyActions.map(function(e){return a.KeyActionHelper.createKeyAction(e,n)}),this},e.prototype.fromBinary=function(e,n){this.id=e.readUInt8();var t=e.readCompactLength();this.keyActions=[];for(var l=0;l'},e.prototype.renameKeymap=function(n,t){var l,o=this,i=!1;if(this.keyActions.forEach(function(e,a){if(e){var c=e.renameKeymap(n,t);c!==e&&(i||(l=o.keyActions.slice(),i=!0),l[a]=c)}}),i){var a=Object.assign(new e,this);return a.keyActions=l,a}return this},l([i.assertUInt8,o("design:type",Number)],e.prototype,"id",void 0),e}();n.Module=c},BQhH:function(e,n,t){"use strict";var l=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},o=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("eEV6"),a=function(){function e(){}return e.prototype.fromJsonObject=function(e){return this.signature=e.signature,this.majorVersion=e.majorVersion,this.minorVersion=e.minorVersion,this.patchVersion=e.patchVersion,this.brandId=e.brandId,this.deviceId=e.deviceId,this.uniqueId=e.uniqueId,this.isVendorModeOn=e.isVendorModeOn,this.isIso=e.isIso,this},e.prototype.fromBinary=function(e){return this.signature=e.readString(),this.majorVersion=e.readUInt8(),this.minorVersion=e.readUInt8(),this.patchVersion=e.readUInt8(),this.brandId=e.readUInt8(),this.deviceId=e.readUInt8(),this.uniqueId=e.readUInt32(),this.isVendorModeOn=e.readBoolean(),this.isIso=e.readBoolean(),this},e.prototype.toJsonObject=function(){return{signature:this.signature,majorVersion:this.majorVersion,minorVersion:this.minorVersion,patchVersion:this.patchVersion,brandId:this.brandId,deviceId:this.deviceId,uniqueId:this.uniqueId,isVendorModeOn:this.isVendorModeOn,isIso:this.isIso}},e.prototype.toBinary=function(e){e.writeString(this.signature),e.writeUInt8(this.majorVersion),e.writeUInt8(this.minorVersion),e.writeUInt8(this.patchVersion),e.writeUInt8(this.brandId),e.writeUInt8(this.deviceId),e.writeUInt32(this.uniqueId),e.writeBoolean(this.isVendorModeOn),e.writeBoolean(this.isIso)},e.prototype.toString=function(){return''},l([i.assertUInt8,o("design:type",Number)],e.prototype,"majorVersion",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"minorVersion",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"patchVersion",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"brandId",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"deviceId",void 0),l([i.assertUInt32,o("design:type",Number)],e.prototype,"uniqueId",void 0),e}();n.HardwareConfiguration=a},C4aZ:function(e,n,t){"use strict";function l(e,n){switch(void 0===e&&(e=i),n.type){case o.a.UPDATE_AVAILABLE:var t=Object.assign({},e);return t.updateAvailable=!0,t;case o.a.UPDATE_DOWNLOADED:var t=Object.assign({},e);return t.updateDownloaded=!0,t;case o.a.DO_NOT_UPDATE_APP:var t=Object.assign({},e);return t.doNotUpdateApp=!0,t;default:return e}}n.b=l,t.d(n,"a",function(){return a});var o=t("vBds"),i={updateAvailable:!1,updateDownloaded:!1,doNotUpdateApp:!1},a=function(e){return e.updateDownloaded&&!e.doNotUpdateApp}},CTXo:function(e,n,t){"use strict";function l(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}Object.defineProperty(n,"__esModule",{value:!0}),l(t("N4Uw")),l(t("ycRK")),l(t("CyG/")),l(t("GflN")),l(t("TMX7")),l(t("NwIl")),l(t("9g6q")),l(t("K7Qy"));var o=t("FOCG");n.KeyActionHelper=o.Helper},CV5A:function(e,n,t){"use strict";t.d(n,"a",function(){return l});var l=function(){function e(){}return e.prototype.getConfig=function(){return JSON.parse(localStorage.getItem("config"))},e.prototype.saveConfig=function(e){localStorage.setItem("config",JSON.stringify(e.toJsonObject()))},e.prototype.getAutoUpdateSettings=function(){return JSON.parse(localStorage.getItem("auto-update-settings"))},e.prototype.saveAutoUpdateSettings=function(e){localStorage.setItem("auto-update-settings",JSON.stringify(e))},e}()},CVbL:function(e,n){e.exports={isDefault:!1,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]}]}]}},"CyG/":function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});!function(e){e[e.basic=0]="basic",e[e.shortMedia=1]="shortMedia",e[e.longMedia=2]="longMedia",e[e.system=3]="system"}(n.KeystrokeType||(n.KeystrokeType={}))},CyOy:function(e,n,t){"use strict";t.d(n,"a",function(){return i}),t.d(n,"j",function(){return a}),t.d(n,"k",function(){return c}),t.d(n,"b",function(){return u}),t.d(n,"f",function(){return r}),t.d(n,"g",function(){return s}),t.d(n,"l",function(){return d}),t.d(n,"h",function(){return p}),t.d(n,"i",function(){return y}),t.d(n,"c",function(){return f}),t.d(n,"e",function(){return m}),t.d(n,"m",function(){return k}),t.d(n,"r",function(){return h}),t.d(n,"p",function(){return g}),t.d(n,"q",function(){return b}),t.d(n,"n",function(){return v}),t.d(n,"o",function(){return A}),t.d(n,"d",function(){return T});var l=t("UCSK"),o=(t.n(l),"[device] "),i={SET_PRIVILEGE_ON_LINUX:Object(l.type)(o+"set privilege on linux"),SET_PRIVILEGE_ON_LINUX_REPLY:Object(l.type)(o+"set privilege on linux reply"),CONNECTION_STATE_CHANGED:Object(l.type)(o+"connection state changed"),SAVE_CONFIGURATION:Object(l.type)(o+"save configuration"),SAVE_CONFIGURATION_REPLY:Object(l.type)(o+"save configuration reply"),SAVING_CONFIGURATION:Object(l.type)(o+"saving configuration"),SHOW_SAVE_TO_KEYBOARD_BUTTON:Object(l.type)(o+"show save to keyboard button"),SAVE_TO_KEYBOARD_SUCCESS:Object(l.type)(o+"save to keyboard success"),SAVE_TO_KEYBOARD_FAILED:Object(l.type)(o+"save to keyboard failed"),HIDE_SAVE_TO_KEYBOARD_BUTTON:Object(l.type)(o+"hide save to keyboard button"),RESET_USER_CONFIGURATION:Object(l.type)(o+"reset user configuration"),RESET_MOUSE_SPEED_SETTINGS:Object(l.type)(o+"reset mouse speed settings"),UPDATE_FIRMWARE:Object(l.type)(o+"update firmware"),UPDATE_FIRMWARE_WITH:Object(l.type)(o+"update firmware with"),UPDATE_FIRMWARE_REPLY:Object(l.type)(o+"update firmware reply"),UPDATE_FIRMWARE_SUCCESS:Object(l.type)(o+"update firmware success"),UPDATE_FIRMWARE_FAILED:Object(l.type)(o+"update firmware failed"),UPDATE_FIRMWARE_OK_BUTTON:Object(l.type)(o+"update firmware ok button click")},a=function(){function e(){this.type=i.SET_PRIVILEGE_ON_LINUX}return e}(),c=function(){function e(e){this.payload=e,this.type=i.SET_PRIVILEGE_ON_LINUX_REPLY}return e}(),u=function(){function e(e){this.payload=e,this.type=i.CONNECTION_STATE_CHANGED}return e}(),r=function(){function e(){this.type=i.SAVE_CONFIGURATION}return e}(),s=function(){function e(e){this.payload=e,this.type=i.SAVE_CONFIGURATION_REPLY}return e}(),d=function(){function e(){this.type=i.SHOW_SAVE_TO_KEYBOARD_BUTTON}return e}(),p=function(){function e(){this.type=i.SAVE_TO_KEYBOARD_SUCCESS}return e}(),y=function(){function e(){this.type=i.SAVE_TO_KEYBOARD_FAILED}return e}(),f=function(){function e(){this.type=i.HIDE_SAVE_TO_KEYBOARD_BUTTON}return e}(),m=function(){function e(){this.type=i.RESET_USER_CONFIGURATION}return e}(),k=function(){function e(){this.type=i.UPDATE_FIRMWARE}return e}(),h=function(){function e(e){this.payload=e,this.type=i.UPDATE_FIRMWARE_WITH}return e}(),g=function(){function e(e){this.payload=e,this.type=i.UPDATE_FIRMWARE_REPLY}return e}(),b=function(){function e(){this.type=i.UPDATE_FIRMWARE_SUCCESS}return e}(),v=function(){function e(e){this.payload=e,this.type=i.UPDATE_FIRMWARE_FAILED}return e}(),A=function(){function e(){this.type=i.UPDATE_FIRMWARE_OK_BUTTON}return e}(),T=function(){function e(){this.type=i.RESET_MOUSE_SPEED_SETTINGS}return e}()},D4Ey:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("gx91"),u=function(e){function n(n){var t=e.call(this)||this;return n?(t.delay=n.delay,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertMacroActionType(e),this.delay=e.delay,this},n.prototype.fromBinary=function(e){return this.readAndAssertMacroActionId(e),this.delay=e.readUInt16(),this},n.prototype.toJsonObject=function(){return{macroActionType:c.macroActionType.DelayMacroAction,delay:this.delay}},n.prototype.toBinary=function(e){e.writeUInt8(c.MacroActionId.DelayMacroAction),e.writeUInt16(this.delay)},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"DelayMacroAction"},o([a.assertUInt16,i("design:type",Number)],n.prototype,"delay",void 0),n}(c.MacroAction);n.DelayMacroAction=u},DzqK:function(e,n){e.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"}}]}}},EEQ5:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});!function(e){e[e.leftCtrl=0]="leftCtrl",e[e.leftShift=1]="leftShift",e[e.leftAlt=2]="leftAlt",e[e.leftSuper=3]="leftSuper",e[e.rightCtrl=4]="rightCtrl",e[e.rightShift=5]="rightShift",e[e.rightAlt=6]="rightAlt",e[e.rightSuper=7]="rightSuper",e[e.mod=8]="mod",e[e.fn=9]="fn",e[e.mouse=10]="mouse"}(n.SecondaryRoleAction||(n.SecondaryRoleAction={}))},FOCG:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=t("ct+e"),o=t("N4Uw"),i=t("ycRK"),a=t("K7Qy"),c=t("9g6q"),u=t("GflN"),r=t("NwIl"),s=function(){function e(){}return e.createKeyAction=function(n,t){return n instanceof o.KeyAction?e.fromKeyAction(n):n instanceof l.UhkBuffer?e.fromUhkBuffer(n,t):e.fromJSONObject(n,t)},e.fromUhkBuffer=function(e,n){var t=e.readUInt8();if(e.backtrack(),t>=o.KeyActionId.KeystrokeAction&&t=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},_=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},O=function(){function n(t,l,o,c,r,s,d){var p=this;this.actions$=t,this.dataStorageRepository=l,this.store=o,this.defaultUserConfigurationService=c,this.deviceRendererService=r,this.logService=s,this.router=d,this.loadUserConfig$=Object(a.defer)(function(){return i.Observable.of(new h.f(p.getUserConfiguration()))}),this.saveUserConfig$=this.actions$.ofType(A.a.ADD,A.a.DUPLICATE,A.a.EDIT_NAME,A.a.EDIT_ABBR,A.a.SET_DEFAULT,A.a.REMOVE,A.a.SAVE_KEY,A.b.ADD,A.b.DUPLICATE,A.b.EDIT_NAME,A.b.REMOVE,A.b.ADD_ACTION,A.b.SAVE_ACTION,A.b.DELETE_ACTION,A.b.REORDER_ACTION,h.a.RENAME_USER_CONFIGURATION,h.a.SET_USER_CONFIGURATION_VALUE).withLatestFrom(this.store.select(v.n),this.store.select(v.k)).mergeMap(function(e){var n=e[0],t=e[1],l=e[2];if(t.recalculateConfigurationLength(),p.dataStorageRepository.saveConfig(t),n.type===A.a.REMOVE||n.type===A.b.REMOVE){var o=n.type===A.a.REMOVE?"Keymap":"Macro",i=n.type===A.a.REMOVE?"keymap":"macro",a={path:"/"+i+"/"+n.payload,config:l.toJsonObject()};return[new h.k(t),new T.h({type:k.NotificationType.Undoable,message:o+" has been deleted",extra:{payload:a,type:A.a.UNDO_LAST_ACTION}}),new M.l]}return[new h.k(t),new T.d,new M.l]}),this.undoUserConfig$=this.actions$.ofType(A.a.UNDO_LAST_ACTION).map(function(e){return e.payload}).mergeMap(function(e){var n=(new k.UserConfiguration).fromJsonObject(e.config);return p.dataStorageRepository.saveConfig(n),p.router.navigate([e.path]),[new h.f(n)]}),this.loadConfigFromDevice$=this.actions$.ofType(h.a.LOAD_CONFIG_FROM_DEVICE).do(function(){return p.deviceRendererService.loadConfigurationFromKeyboard()}),this.loadConfigFromDeviceReply$=this.actions$.ofType(h.a.LOAD_CONFIG_FROM_DEVICE_REPLY).map(function(e){return e.payload}).mergeMap(function(e){if(!e.success)return[new T.h({type:k.NotificationType.Error,message:e.error})];var t=[];try{var l=n.getUserConfigFromDeviceResponse(e.userConfiguration);t.push(new h.f(l))}catch(e){p.logService.error("Eeprom user-config parse error:",e),t.push(new T.h({type:k.NotificationType.Error,message:e})),t.push(new h.f(p.getUserConfiguration()))}try{var o=n.getHardwareConfigFromDeviceResponse(e.hardwareConfiguration);t.push(new T.f(o))}catch(e){p.logService.error("Eeprom hardware-config parse error:",e),t.push(new T.h({type:k.NotificationType.Error,message:e}))}return p.router.navigate(["/"]),t}),this.saveUserConfigInJsonFile$=this.actions$.ofType(h.a.SAVE_USER_CONFIG_IN_JSON_FILE).withLatestFrom(this.store.select(v.n)).do(function(e){var n=(e[0],e[1]),t=JSON.stringify(n.toJsonObject(),null,2),l=new Blob([t],{type:"text/plain"});Object(u.saveAs)(l,"UserConfiguration.json")}),this.saveUserConfigInBinFile$=this.actions$.ofType(h.a.SAVE_USER_CONFIG_IN_BIN_FILE).withLatestFrom(this.store.select(v.n)).do(function(e){var n=(e[0],e[1]),t=new k.UhkBuffer;n.toBinary(t);var l=new Blob([t.getBufferContent()]);Object(u.saveAs)(l,"UserConfiguration.bin")}),this.loadUserConfigurationSuccess$=this.actions$.ofType(h.a.LOAD_USER_CONFIG_SUCCESS).withLatestFrom(this.store.select(v.a)).switchMap(function(e){var n=(e[0],e[1]);return p.logService.debug("[UserConfigEffect] LOAD_USER_CONFIG_SUCCESS",{autoWriteUserConfig:n}),n?i.Observable.of(new M.f):i.Observable.empty()}),this.loadUserConfigurationFromFile$=this.actions$.ofType(h.a.LOAD_USER_CONFIGURATION_FROM_FILE).map(function(e){return e.payload}).map(function(n){try{var t=new k.UserConfiguration;if(n.filename.endsWith(".bin"))t.fromBinary(k.UhkBuffer.fromArray(n.data));else{var l=new e(n.data),o=l.toString();t.fromJsonObject(JSON.parse(o))}return t.userConfigMajorVersion?new h.b(t):new T.h({type:k.NotificationType.Error,message:"Invalid configuration specified."})}catch(e){return new T.h({type:k.NotificationType.Error,message:"Invalid configuration specified."})}})}return n.getUserConfigFromDeviceResponse=function(e){var n=JSON.parse(e),t=new k.UserConfiguration;return t.fromBinary(k.UhkBuffer.fromArray(n)),t.userConfigMajorVersion>0?t:null},n.getHardwareConfigFromDeviceResponse=function(e){var n=JSON.parse(e),t=new k.HardwareConfiguration;return t.fromBinary(k.UhkBuffer.fromArray(n)),t.uniqueId>0?t:null},n.prototype.getUserConfiguration=function(){var e,n=this.dataStorageRepository.getConfig();return n&&n.userConfigMajorVersion===this.defaultUserConfigurationService.getDefault().userConfigMajorVersion&&(e=(new k.UserConfiguration).fromJsonObject(n)),e||(e=this.defaultUserConfigurationService.getDefault()),e},n.ctorParameters=function(){return[{type:o.a},{type:g.a},{type:c.m},{type:b.a},{type:C.a},{type:k.LogService},{type:l.m}]},w([Object(o.b)(),_("design:type","function"==typeof(t=void 0!==i.Observable&&i.Observable)&&t||Object)],n.prototype,"loadUserConfig$",void 0),w([Object(o.b)(),_("design:type","function"==typeof(r=void 0!==i.Observable&&i.Observable)&&r||Object)],n.prototype,"saveUserConfig$",void 0),w([Object(o.b)(),_("design:type","function"==typeof(s=void 0!==i.Observable&&i.Observable)&&s||Object)],n.prototype,"undoUserConfig$",void 0),w([Object(o.b)({dispatch:!1}),_("design:type",Object)],n.prototype,"loadConfigFromDevice$",void 0),w([Object(o.b)(),_("design:type",Object)],n.prototype,"loadConfigFromDeviceReply$",void 0),w([Object(o.b)({dispatch:!1}),_("design:type",Object)],n.prototype,"saveUserConfigInJsonFile$",void 0),w([Object(o.b)({dispatch:!1}),_("design:type",Object)],n.prototype,"saveUserConfigInBinFile$",void 0),w([Object(o.b)(),_("design:type",Object)],n.prototype,"loadUserConfigurationSuccess$",void 0),w([Object(o.b)(),_("design:type",Object)],n.prototype,"loadUserConfigurationFromFile$",void 0),n;var t,r,s}()}).call(n,t("SxsA").Buffer)},GflN:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a,c=t("eEV6"),u=t("N4Uw");!function(e){e[e.leftClick=0]="leftClick",e[e.middleClick=1]="middleClick",e[e.rightClick=2]="rightClick",e[e.moveUp=3]="moveUp",e[e.moveDown=4]="moveDown",e[e.moveLeft=5]="moveLeft",e[e.moveRight=6]="moveRight",e[e.scrollUp=7]="scrollUp",e[e.scrollDown=8]="scrollDown",e[e.scrollLeft=9]="scrollLeft",e[e.scrollRight=10]="scrollRight",e[e.accelerate=11]="accelerate",e[e.decelerate=12]="decelerate"}(a=n.MouseActionParam||(n.MouseActionParam={}));var r=function(e){function n(n){var t=e.call(this)||this;return n?(t.mouseAction=n.mouseAction,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertKeyActionType(e),this.mouseAction=a[e.mouseAction],this},n.prototype.fromBinary=function(e){return this.readAndAssertKeyActionId(e),this.mouseAction=e.readUInt8(),this},n.prototype.toJsonObject=function(){return{keyActionType:u.keyActionType.MouseAction,mouseAction:a[this.mouseAction]}},n.prototype.toBinary=function(e){e.writeUInt8(u.KeyActionId.MouseAction),e.writeUInt8(this.mouseAction)},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"MouseAction"},o([c.assertEnum(a),i("design:type",Number)],n.prototype,"mouseAction",void 0),n}(u.KeyAction);n.MouseAction=r},IPNF:function(e,n){e.exports={isDefault:!1,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]}]}]}},Ii5C:function(e,n,t){"use strict";t.d(n,"a",function(){return l});var l={showButton:!1,text:null,showProgress:!1}},K7Qy:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a,c=t("eEV6"),u=t("N4Uw");!function(e){e[e.mod=0]="mod",e[e.fn=1]="fn",e[e.mouse=2]="mouse"}(a=n.LayerName||(n.LayerName={}));var r=function(e){function n(n){var t=e.call(this)||this;return n?(t.isLayerToggleable=n.isLayerToggleable,t.layer=n.layer,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertKeyActionType(e),this.layer=a[e.layer],this.isLayerToggleable=e.toggle,this},n.prototype.fromBinary=function(e){return this.readAndAssertKeyActionId(e),this.layer=e.readUInt8(),this.isLayerToggleable=e.readBoolean(),this},n.prototype.toJsonObject=function(){return{keyActionType:u.keyActionType.SwitchLayerAction,layer:a[this.layer],toggle:this.isLayerToggleable}},n.prototype.toBinary=function(e){e.writeUInt8(u.KeyActionId.SwitchLayerAction),e.writeUInt8(this.layer),e.writeBoolean(this.isLayerToggleable)},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"SwitchLayerAction"},o([c.assertEnum(a),i("design:type",Number)],n.prototype,"layer",void 0),n}(u.KeyAction);n.SwitchLayerAction=r},KN1q:function(e,n,t){"use strict";t.d(n,"n",function(){return y}),t.d(n,"i",function(){return f}),t.d(n,"r",function(){return k}),t.d(n,"a",function(){return h}),t.d(n,"m",function(){return g}),t.d(n,"k",function(){return b}),t.d(n,"p",function(){return v}),t.d(n,"j",function(){return A}),t.d(n,"b",function(){return T}),t.d(n,"f",function(){return M}),t.d(n,"l",function(){return w}),t.d(n,"g",function(){return O}),t.d(n,"h",function(){return x}),t.d(n,"c",function(){return R}),t.d(n,"o",function(){return E}),t.d(n,"q",function(){return N}),t.d(n,"s",function(){return L}),t.d(n,"t",function(){return K}),t.d(n,"d",function(){return D}),t.d(n,"e",function(){return j});var l=t("5LV6"),o=(t.n(l),t("Tvzk")),i=(t.n(o),t("3XxM")),a=t("TTza"),c=t("C4aZ"),u=t("cVaD"),r=t("kGlP"),s=t("Xloh"),d=t("Ii5C"),p=t("p5Ee"),y=(i.g,a.a,u.d,r.h,c.b,s.e,p.a.production||o.storeFreeze,function(e){return e.userConfiguration}),f=Object(l.createSelector)(y,i.a),m=function(e){return e.app},k=Object(l.createSelector)(m,r.j),h=Object(l.createSelector)(m,r.a),g=Object(l.createSelector)(m,r.g),b=Object(l.createSelector)(m,r.f),v=Object(l.createSelector)(m,r.i),A=(Object(l.createSelector)(m,r.d),Object(l.createSelector)(m,r.e)),T=Object(l.createSelector)(m,r.b),M=Object(l.createSelector)(m,r.c),C=function(e){return e.appUpdate},w=Object(l.createSelector)(C,c.a),_=function(e){return e.autoUpdateSettings},O=Object(l.createSelector)(_,u.b),x=Object(l.createSelector)(_,u.a),S=function(e){return e.device},P=Object(l.createSelector)(S,s.d),R=Object(l.createSelector)(v,P,function(e,n){return!e||n}),I=Object(l.createSelector)(S,s.c),E=Object(l.createSelector)(v,I,function(e,n){return!e||n}),U=Object(l.createSelector)(S,s.b),N=Object(l.createSelector)(v,U,function(e,n){return e?n:d.a}),L=Object(l.createSelector)(S,s.f),K=Object(l.createSelector)(S,s.g),D=Object(l.createSelector)(S,s.a),j=Object(l.createSelector)(v,S,function(e,n){return!e||n.updatingFirmware})},N4Uw:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l;!function(e){e[e.NoneAction=0]="NoneAction",e[e.KeystrokeAction=1]="KeystrokeAction",e[e.LastKeystrokeAction=31]="LastKeystrokeAction",e[e.SwitchLayerAction=32]="SwitchLayerAction",e[e.SwitchKeymapAction=33]="SwitchKeymapAction",e[e.MouseAction=34]="MouseAction",e[e.PlayMacroAction=35]="PlayMacroAction"}(l=n.KeyActionId||(n.KeyActionId={})),n.keyActionType={NoneAction:"none",KeystrokeAction:"keystroke",SwitchLayerAction:"switchLayer",SwitchKeymapAction:"switchKeymap",MouseAction:"mouse",PlayMacroAction:"playMacro"};var o=function(){function e(){}return e.prototype.assertKeyActionType=function(e){var t=this.getName(),l=n.keyActionType[t];if(e.keyActionType!==l)throw"Invalid "+t+".keyActionType: "+e.keyActionType},e.prototype.readAndAssertKeyActionId=function(e){var n=this.getName(),t=e.readUInt8(),o=l[n];if(o===l.KeystrokeAction){if(tl.LastKeystrokeAction)throw"Invalid "+n+" first byte: "+t}else if(t!==o)throw"Invalid "+n+" first byte: "+t;return t},e.prototype.renameKeymap=function(e,n){return this},e}();n.KeyAction=o},NfUz:function(e,n,t){"use strict";var l;!function(e){function n(){return{type:e.LOAD_KEYMAPS}}function t(n){return{type:e.LOAD_KEYMAPS_SUCCESS,payload:n}}function l(n){return{type:e.ADD,payload:n}}function o(n){return{type:e.SET_DEFAULT,payload:n}}function i(n){return{type:e.REMOVE,payload:n}}function a(n){return{type:e.DUPLICATE,payload:n}}function c(n,t){return{type:e.EDIT_NAME,payload:{abbr:n,name:t}}}function u(n,t,l){return{type:e.EDIT_ABBR,payload:{name:n,abbr:t,newAbbr:l}}}function r(n,t,l,o,i){return{type:e.SAVE_KEY,payload:{keymap:n,layer:t,module:l,key:o,keyAction:i}}}function s(n){return{type:e.CHECK_MACRO,payload:n}}e.ADD="[Keymap] Add keymap",e.DUPLICATE="[Keymap] Duplicate keymap",e.EDIT_ABBR="[Keymap] Edit keymap abbreviation",e.EDIT_NAME="[Keymap] Edit keymap title",e.SAVE_KEY="[Keymap] Save key action",e.SET_DEFAULT="[Keymap] Set default option",e.REMOVE="[Keymap] Remove keymap",e.CHECK_MACRO="[Keymap] Check deleted macro",e.LOAD_KEYMAPS="[Keymap] Load keymaps",e.LOAD_KEYMAPS_SUCCESS="[Keymap] Load keymaps success",e.UNDO_LAST_ACTION="[Keymap] Undo last action",e.loadKeymaps=n,e.loadKeymapsSuccess=t,e.addKeymap=l,e.setDefault=o,e.removeKeymap=i,e.duplicateKeymap=a,e.editKeymapName=c,e.editKeymapAbbr=u,e.saveKey=r,e.checkMacro=s}(l||(l={}));var o;!function(e){function n(){return{type:e.ADD}}function t(n){return{type:e.REMOVE,payload:n}}function l(n){return{type:e.DUPLICATE,payload:n}}function o(n,t){return{type:e.EDIT_NAME,payload:{id:n,name:t}}}function i(n,t){return{type:e.ADD_ACTION,payload:{id:n,action:t}}}function a(n,t,l){return{type:e.SAVE_ACTION,payload:{id:n,index:t,action:l}}}function c(n,t,l){return{type:e.DELETE_ACTION,payload:{id:n,index:t,action:l}}}function u(n,t,l){return{type:e.REORDER_ACTION,payload:{id:n,oldIndex:t,newIndex:l}}}e.PREFIX="[Macro] ",e.DUPLICATE=e.PREFIX+"Duplicate macro",e.EDIT_NAME=e.PREFIX+"Edit macro title",e.REMOVE=e.PREFIX+"Remove macro",e.ADD=e.PREFIX+"Add macro",e.ADD_ACTION=e.PREFIX+"Add macro action",e.SAVE_ACTION=e.PREFIX+"Save macro action",e.DELETE_ACTION=e.PREFIX+"Delete macro action",e.REORDER_ACTION=e.PREFIX+"Reorder macro action",e.addMacro=n,e.removeMacro=t,e.duplicateMacro=l,e.editMacroName=o,e.addMacroAction=i,e.saveMacroAction=a,e.deleteMacroAction=c,e.reorderMacroAction=u}(o||(o={})),t.d(n,"a",function(){return l}),t.d(n,"b",function(){return o})},NwIl:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("N4Uw"),u=function(e){function n(t){var l=e.call(this)||this;return t?(l.macroId=t instanceof n?t.macroId:t.id,l):l}return l(n,e),n.prototype.fromJsonObject=function(e,n){return this.assertKeyActionType(e),this.macroId=n[e.macroIndex].id,this},n.prototype.fromBinary=function(e,n){this.readAndAssertKeyActionId(e);var t=e.readUInt8();return this.macroId=n[t].id,this},n.prototype.toJsonObject=function(e){var n=this;return{keyActionType:c.keyActionType.PlayMacroAction,macroIndex:e.findIndex(function(e){return e.id===n.macroId})}},n.prototype.toBinary=function(e,n){var t=this;e.writeUInt8(c.KeyActionId.PlayMacroAction),e.writeUInt8(n.macros.findIndex(function(e){return e.id===t.macroId}))},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"PlayMacroAction"},o([a.assertUInt8,i("design:type",Number)],n.prototype,"macroId",void 0),n}(c.KeyAction);n.PlayMacroAction=u},"O2S+":function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=function(){function e(){}return e.prototype.error=function(){for(var e=[],n=0;n'},e.prototype.renameKeymap=function(n,t){var l,o=this,i=!1;if(this.layers.forEach(function(e,a){var c=e.renameKeymap(n,t);c!==e&&(i||(l=o.layers.slice(),i=!0),l[a]=c)}),i){var a=Object.assign(new e,this);return a.layers=l,a}return this},e.prototype.normalize=function(){if(!(this.layers.length<1))for(var e=0;e=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},o=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("eEV6"),a=function(){function e(){}return e.prototype.fromJsonObject=function(e){return this.id=e.id,this.pointerMode=e.pointerMode,this.deceleratedPointerSpeedMultiplier=e.deceleratedPointerSpeedMultiplier,this.basePointerSpeedMultiplier=e.basePointerSpeedMultiplier,this.acceleratedPointerSpeedMultiplier=e.acceleratedPointerSpeedMultiplier,this.angularShift=e.angularShift,this.modLayerPointerFunction=e.modLayerPointerFunction,this.fnLayerPointerFunction=e.fnLayerPointerFunction,this.mouseLayerPointerFunction=e.mouseLayerPointerFunction,this},e.prototype.fromBinary=function(e){return this.id=e.readUInt8(),this.pointerMode=e.readInt8(),this.deceleratedPointerSpeedMultiplier=e.readUInt8(),this.basePointerSpeedMultiplier=e.readUInt8(),this.acceleratedPointerSpeedMultiplier=e.readUInt8(),this.angularShift=e.readUInt16(),this.modLayerPointerFunction=e.readUInt8(),this.fnLayerPointerFunction=e.readUInt8(),this.mouseLayerPointerFunction=e.readUInt8(),this},e.prototype.toJsonObject=function(){return{id:this.id,pointerMode:this.pointerMode,deceleratedPointerSpeedMultiplier:this.deceleratedPointerSpeedMultiplier,basePointerSpeedMultiplier:this.basePointerSpeedMultiplier,acceleratedPointerSpeedMultiplier:this.acceleratedPointerSpeedMultiplier,angularShift:this.angularShift,modeLayerPointerFunction:this.modLayerPointerFunction,fnLayerPointerFunction:this.fnLayerPointerFunction,mouseLayerPointerFunction:this.mouseLayerPointerFunction}},e.prototype.toBinary=function(e){e.writeUInt8(this.id),e.writeUInt8(this.pointerMode),e.writeUInt8(this.deceleratedPointerSpeedMultiplier),e.writeUInt8(this.basePointerSpeedMultiplier),e.writeUInt8(this.acceleratedPointerSpeedMultiplier),e.writeUInt16(this.angularShift),e.writeUInt8(this.modLayerPointerFunction),e.writeUInt8(this.fnLayerPointerFunction),e.writeUInt8(this.mouseLayerPointerFunction)},e.prototype.toString=function(){return''},l([i.assertUInt8,o("design:type",Number)],e.prototype,"id",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"pointerMode",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"deceleratedPointerSpeedMultiplier",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"basePointerSpeedMultiplier",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"acceleratedPointerSpeedMultiplier",void 0),l([i.assertUInt16,o("design:type",Number)],e.prototype,"angularShift",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"modLayerPointerFunction",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"fnLayerPointerFunction",void 0),l([i.assertUInt8,o("design:type",Number)],e.prototype,"mouseLayerPointerFunction",void 0),e}();n.ModuleConfiguration=a},TMX7:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}();Object.defineProperty(n,"__esModule",{value:!0});var o=t("N4Uw"),i=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertKeyActionType(e),this},n.prototype.fromBinary=function(e){return this.readAndAssertKeyActionId(e),this},n.prototype.toJsonObject=function(){return{keyActionType:o.keyActionType.NoneAction}},n.prototype.toBinary=function(e){e.writeUInt8(o.KeyActionId.NoneAction)},n.prototype.toString=function(){return""},n.prototype.getName=function(){return"NoneAction"},n}(o.KeyAction);n.NoneAction=i},TTza:function(e,n,t){"use strict";function l(e,n){switch(void 0===e&&(e=i),n.type){case o.a.LOAD_KEYMAPS_SUCCESS:return n.payload;default:return e}}n.a=l;var o=t("NfUz"),i=[]},UCSK:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}(t("f8fa"))},XLpm:function(e,n){e.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"}}]}}},Xloh:function(e,n,t){"use strict";function l(e,n){switch(void 0===e&&(e=r),n.type){case i.a.CONNECTION_STATE_CHANGED:var t=n.payload;return u({},e,{connected:t.connected,hasPermission:t.hasPermission});case i.a.SAVING_CONFIGURATION:return u({},e,{savingToKeyboard:!0});case i.a.SHOW_SAVE_TO_KEYBOARD_BUTTON:return u({},e,{saveToKeyboard:{showButton:!0,text:"Save to keyboard",action:new i.f}});case i.a.SAVE_CONFIGURATION:return u({},e,{saveToKeyboard:{showButton:!0,text:"Saving",showProgress:!0}});case i.a.SAVE_TO_KEYBOARD_SUCCESS:return u({},e,{saveToKeyboard:{showButton:!0,text:"Saved!",action:null}});case i.a.SAVE_TO_KEYBOARD_FAILED:return u({},e,{saveToKeyboard:{showButton:!0,text:"Save to keyboard",action:new i.f}});case i.a.HIDE_SAVE_TO_KEYBOARD_BUTTON:return u({},e,{saveToKeyboard:c.a});case i.a.UPDATE_FIRMWARE_WITH:case i.a.UPDATE_FIRMWARE:return u({},e,{updatingFirmware:!0,firmwareUpdateFinished:!1,log:[{message:"Start flashing firmware",cssClass:o.standard}]});case i.a.UPDATE_FIRMWARE_SUCCESS:return u({},e,{updatingFirmware:!1,firmwareUpdateFinished:!0});case i.a.UPDATE_FIRMWARE_FAILED:var l={message:n.payload.message,cssClass:o.error};return u({},e,{updatingFirmware:!1,firmwareUpdateFinished:!0,log:e.log.concat([l])});case a.a.ELECTRON_MAIN_LOG_RECEIVED:if(!e.updatingFirmware)return e;var s=n.payload;if(s.message.indexOf("UHK Device not found:")>-1)return e;var l={message:s.message,cssClass:"error"===s.level?o.error:o.standard};return u({},e,{log:e.log.concat([l])});default:return e}}var o,i=t("CyOy"),a=t("5II9"),c=t("Ii5C");!function(e){e.standard="xterm-standard",e.error="xterm-error"}(o||(o={})),n.e=l,t.d(n,"f",function(){return s}),t.d(n,"d",function(){return d}),t.d(n,"c",function(){return p}),t.d(n,"b",function(){return y}),t.d(n,"g",function(){return f}),t.d(n,"a",function(){return m});var u=this&&this.__assign||Object.assign||function(e){for(var n,t=1,l=arguments.length;t0)},null)}function at(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-tab",[],null,null,null,it,Cc)),bl["\u0275did"](1,770048,null,0,Tc,[Tl.m],null,null)],function(e,n){e(n,1,0)},null)}function ct(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" No keymaps are available to choose from. Create a keymap first! "])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],null,null)}function ut(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,3,"div",[["class","empty"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,0,"img",[["src","assets/images/base-layer--blank.svg"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "]))],null,null)}function rt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,2,"svg-keyboard",[],null,null,null,Ye,ma)),bl["\u0275did"](1,638976,null,0,ya,[pa],{moduleConfig:[0,"moduleConfig"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "]))],function(e,n){e(n,1,0,n.component.selectedKeymap.layers[0].modules)},null)}function st(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](1,0,null,null,7,"div",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](3,0,null,null,1,"b",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Switch to keymap:"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,1,"select2",[],null,[[null,"valueChanged"]],function(e,n,t){var l=!0,o=e.component;if("valueChanged"===n){l=!1!==o.onChange(t)&&l}return l},Aa.b,Aa.a)),bl["\u0275did"](7,4964352,null,0,Ta.Select2Component,[bl.Renderer],{data:[0,"data"],value:[1,"value"],width:[2,"width"]},{valueChanged:"valueChanged"}),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](10,0,null,null,7,"div",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,ut)),bl["\u0275did"](13,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,rt)),bl["\u0275did"](16,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,7,0,t.keymapOptions,(null==t.selectedKeymap?null:t.selectedKeymap.abbreviation)||-1,"100%"),e(n,13,0,!(null==t.selectedKeymap?null:t.selectedKeymap.abbreviation)),e(n,16,0,null==t.selectedKeymap?null:t.selectedKeymap.abbreviation)},null)}function dt(e){return bl["\u0275vid"](2,[(e()(),bl["\u0275and"](16777216,null,null,1,null,ct)),bl["\u0275did"](1,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275and"](16777216,null,null,1,null,st)),bl["\u0275did"](4,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,1,0,0===t.keymapOptions.length),e(n,4,0,t.keymapOptions.length>0)},null)}function pt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"keymap-tab",[],null,null,null,dt,Sc)),bl["\u0275did"](1,573440,null,0,Oc,[],null,null)],null,null)}function yt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275ted"](-1,null,["This key is unassigned and has no functionality."]))],null,null)}function ft(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"none-tab",[],null,null,null,yt,Uc)),bl["\u0275did"](1,114688,null,0,Ic,[],null,null)],function(e,n){e(n,1,0)},null)}function mt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"keypress-tab",[["class","popover-content"]],null,[[null,"validAction"]],function(e,n,t){var l=!0,o=e.component;if("validAction"===n){l=!1!==(o.keyActionValid=t)&&l}return l},un,Ra)),bl["\u0275did"](1,573440,[[1,4],["tab",4]],0,wa,[wi],{defaultKeyAction:[0,"defaultKeyAction"],secondaryRoleEnabled:[1,"secondaryRoleEnabled"]},{validAction:"validAction"})],function(e,n){e(n,1,0,n.component.defaultKeyAction,!0)},null)}function kt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"layer-tab",[["class","popover-content"]],[[2,"no-base",null]],[[null,"validAction"]],function(e,n,t){var l=!0,o=e.component;if("validAction"===n){l=!1!==(o.keyActionValid=t)&&l}return l},kn,La)),bl["\u0275did"](1,573440,[[1,4],["tab",4]],0,Ua,[],{defaultKeyAction:[0,"defaultKeyAction"],currentLayer:[1,"currentLayer"]},{validAction:"validAction"})],function(e,n){var t=n.component;e(n,1,0,t.defaultKeyAction,t.currentLayer)},function(e,n){e(n,0,0,bl["\u0275nov"](n,1).isNotBase)})}function ht(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"mouse-tab",[["class","popover-content"]],null,[[null,"validAction"]],function(e,n,t){var l=!0,o=e.component;if("validAction"===n){l=!1!==(o.keyActionValid=t)&&l}return l},Cn,Va)),bl["\u0275did"](1,573440,[[1,4],["tab",4]],0,ja,[],{defaultKeyAction:[0,"defaultKeyAction"]},{validAction:"validAction"})],function(e,n){e(n,1,0,n.component.defaultKeyAction)},null)}function gt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-tab",[["class","popover-content"]],null,[[null,"validAction"]],function(e,n,t){var l=!0,o=e.component;if("validAction"===n){l=!1!==(o.keyActionValid=t)&&l}return l},it,Cc)),bl["\u0275did"](1,770048,[[1,4],["tab",4]],0,Tc,[Tl.m],{defaultKeyAction:[0,"defaultKeyAction"]},{validAction:"validAction"})],function(e,n){e(n,1,0,n.component.defaultKeyAction)},null)}function bt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,2,"keymap-tab",[["class","popover-content"]],null,[[null,"validAction"]],function(e,n,t){var l=!0,o=e.component;if("validAction"===n){l=!1!==(o.keyActionValid=t)&&l}return l},dt,Sc)),bl["\u0275did"](1,573440,[[1,4],["tab",4]],0,Oc,[],{defaultKeyAction:[0,"defaultKeyAction"],keymaps:[1,"keymaps"]},{validAction:"validAction"}),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef])],function(e,n){var t=n.component;e(n,1,0,t.defaultKeyAction,bl["\u0275unv"](n,1,1,bl["\u0275nov"](n,2).transform(t.keymaps$)))},null)}function vt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"none-tab",[["class","popover-content"]],null,[[null,"validAction"]],function(e,n,t){var l=!0,o=e.component;if("validAction"===n){l=!1!==(o.keyActionValid=t)&&l}return l},yt,Uc)),bl["\u0275did"](1,114688,[[1,4],["tab",4]],0,Ic,[],null,{validAction:"validAction"})],function(e,n){e(n,1,0)},null)}function At(e){return bl["\u0275vid"](0,[bl["\u0275qud"](671088640,1,{selectedTab:0}),bl["\u0275qud"](402653184,2,{popoverHost:0}),(e()(),bl["\u0275eld"](2,0,[[2,0],["popover",1]],null,108,"div",[["class","popover"]],[[24,"@popover",0],[4,"top","px"],[4,"left","px"]],null,null,null,null)),bl["\u0275did"](3,278528,null,0,xl.i,[bl.IterableDiffers,bl.KeyValueDiffers,bl.ElementRef,bl.Renderer],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),bl["\u0275pod"](4,{leftArrow:0,rightArrow:1}),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,0,"div",[["class","arrowCustom"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,70,"div",[["class","popover-title menu-tabs"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](10,0,null,null,67,"ul",[["class","nav nav-tabs popover-menu"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](12,0,[["keypress",1]],null,9,"li",[],[[2,"active",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.selectTab(o.tabName.Keypress)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](14,0,null,null,6,"a",[["class","menu-tabs--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](16,0,null,null,0,"i",[["class","fa fa-keyboard-o"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](18,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Keypress"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](23,0,[["layer",1]],null,9,"li",[],[[2,"active",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.selectTab(o.tabName.Layer)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](25,0,null,null,6,"a",[["class","menu-tabs--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](27,0,null,null,0,"i",[["class","fa fa-clone"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](29,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Layer"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](34,0,[["mouse",1]],null,9,"li",[],[[2,"active",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.selectTab(o.tabName.Mouse)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](36,0,null,null,6,"a",[["class","menu-tabs--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](38,0,null,null,0,"i",[["class","fa fa-mouse-pointer"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](40,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Mouse"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](45,0,[["macro",1]],null,9,"li",[],[[2,"active",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.selectTab(o.tabName.Macro)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](47,0,null,null,6,"a",[["class","menu-tabs--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](49,0,null,null,0,"i",[["class","fa fa-play"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](51,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Macro"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](56,0,[["keymap",1]],null,9,"li",[],[[2,"active",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.selectTab(o.tabName.Keymap)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](58,0,null,null,6,"a",[["class","menu-tabs--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](60,0,null,null,0,"i",[["class","fa fa-keyboard-o"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](62,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Keymap"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](67,0,[["none",1]],null,9,"li",[],[[2,"active",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.selectTab(o.tabName.None)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](69,0,null,null,6,"a",[["class","menu-tabs--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](71,0,null,null,0,"i",[["class","fa fa-ban"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](73,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["None"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](80,0,null,null,20,"div",[],null,null,null,null,null)),bl["\u0275did"](81,16384,null,0,xl.n,[],{ngSwitch:[0,"ngSwitch"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,mt)),bl["\u0275did"](84,278528,null,0,xl.o,[bl.ViewContainerRef,bl.TemplateRef,xl.n],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,kt)),bl["\u0275did"](87,278528,null,0,xl.o,[bl.ViewContainerRef,bl.TemplateRef,xl.n],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,ht)),bl["\u0275did"](90,278528,null,0,xl.o,[bl.ViewContainerRef,bl.TemplateRef,xl.n],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,gt)),bl["\u0275did"](93,278528,null,0,xl.o,[bl.ViewContainerRef,bl.TemplateRef,xl.n],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,bt)),bl["\u0275did"](96,278528,null,0,xl.o,[bl.ViewContainerRef,bl.TemplateRef,xl.n],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,vt)),bl["\u0275did"](99,278528,null,0,xl.o,[bl.ViewContainerRef,bl.TemplateRef,xl.n],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](102,0,null,null,7,"div",[["class","popover-action"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](104,0,null,null,1,"button",[["class","btn btn-sm btn-default"],["type","button"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.onCancelClick()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,[" Cancel "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](107,0,null,null,1,"button",[["class","btn btn-sm btn-primary"],["type","button"]],[[2,"disabled",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.onRemapKey()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,[" Remap Key "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275eld"](112,0,null,null,0,"div",[["class","popover-overlay"]],[[2,"display",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.onOverlay()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,3,0,"popover",e(n,4,0,t.leftArrow,t.rightArrow)),e(n,81,0,t.activeTab),e(n,84,0,t.tabName.Keypress),e(n,87,0,t.tabName.Layer),e(n,90,0,t.tabName.Mouse),e(n,93,0,t.tabName.Macro),e(n,96,0,t.tabName.Keymap),e(n,99,0,t.tabName.None)},function(e,n){var t=n.component;e(n,2,0,t.animationState,t.topPosition,t.leftPosition),e(n,12,0,t.activeTab===t.tabName.Keypress),e(n,23,0,t.activeTab===t.tabName.Layer),e(n,34,0,t.activeTab===t.tabName.Mouse),e(n,45,0,t.activeTab===t.tabName.Macro),e(n,56,0,t.activeTab===t.tabName.Keymap),e(n,67,0,t.activeTab===t.tabName.None),e(n,107,0,!t.keyActionValid),e(n,112,0,t.visible)})}function Tt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"popover",[],null,[[null,"keydown.escape"]],function(e,n,t){var l=!0;if("keydown.escape"===n){l=!1!==bl["\u0275nov"](e,1).onEscape()&&l}return l},At,Dc)),bl["\u0275did"](1,573440,null,0,Lc,[Tl.m],null,null)],null,null)}function Mt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](1,null,["\n ",": ","\n "]))],null,function(e,n){e(n,1,0,n.context.$implicit.name,n.context.$implicit.value)})}function Ct(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](1,0,null,null,1,"layers",[],[[2,"disabled",null]],[[null,"select"]],function(e,n,t){var l=!0,o=e.component;if("select"===n){l=!1!==o.selectLayer(t.index)&&l}return l},X,ri)),bl["\u0275did"](2,49152,null,0,ci,[],{current:[0,"current"]},{select:"select"}),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,1,"keyboard-slider",[],null,[[null,"keyClick"],[null,"keyHover"],[null,"capture"]],function(e,n,t){var l=!0,o=e.component;if("keyClick"===n){l=!1!==o.onKeyClick(t.moduleId,t.keyId,t.keyTarget)&&l}if("keyHover"===n){l=!1!==o.onKeyHover(t.moduleId,t.event,t.over,t.keyId)&&l}if("capture"===n){l=!1!==o.onCapture(t.moduleId,t.keyId,t.captured)&&l}return l},Qe,ga)),bl["\u0275did"](5,573440,null,0,ka,[],{layers:[0,"layers"],currentLayer:[1,"currentLayer"],keybindAnimationEnabled:[2,"keybindAnimationEnabled"],capturingEnabled:[3,"capturingEnabled"],halvesSplit:[4,"halvesSplit"],selectedKey:[5,"selectedKey"],keyboardLayout:[6,"keyboardLayout"]},{keyClick:"keyClick",keyHover:"keyHover",capture:"capture"}),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](7,0,[[1,0]],null,1,"popover",[["tabindex","0"]],null,[[null,"cancel"],[null,"remap"],[null,"keydown.escape"]],function(e,n,t){var l=!0,o=e.component;if("keydown.escape"===n){l=!1!==bl["\u0275nov"](e,8).onEscape()&&l}if("cancel"===n){l=!1!==o.hidePopover()&&l}if("remap"===n){l=!1!==o.onRemap(t)&&l}return l},At,Dc)),bl["\u0275did"](8,573440,null,0,Lc,[Tl.m],{defaultKeyAction:[0,"defaultKeyAction"],currentKeymap:[1,"currentKeymap"],currentLayer:[2,"currentLayer"],keyPosition:[3,"keyPosition"],wrapPosition:[4,"wrapPosition"],visible:[5,"visible"]},{cancel:"cancel",remap:"remap"}),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](10,0,null,null,10,"div",[["class","tooltip bottom"]],[[2,"in",null],[4,"top","px"],[4,"left","px"]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](12,0,null,null,0,"div",[["class","tooltip-arrow"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](14,0,null,null,5,"div",[["class","tooltip-inner"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,2,null,Mt)),bl["\u0275did"](17,802816,null,0,xl.j,[bl.ViewContainerRef,bl.TemplateRef,bl.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,2,0,t.currentLayer),e(n,5,0,t.layers,t.currentLayer,t.keybindAnimationEnabled,t.popoverEnabled,t.halvesSplit,t.selectedKey,t.keyboardLayout),e(n,8,0,t.popoverInitKeyAction,t.keymap,t.currentLayer,t.keyPosition,t.wrapPosition,t.popoverShown),e(n,17,0,bl["\u0275unv"](n,17,0,bl["\u0275nov"](n,18).transform(t.tooltipData.content)))},function(e,n){var t=n.component;e(n,1,0,t.popoverShown),e(n,10,0,t.tooltipData.show,t.tooltipData.posTop,t.tooltipData.posLeft)})}function wt(e){return bl["\u0275vid"](2,[bl["\u0275qud"](671088640,1,{popover:0}),(e()(),bl["\u0275and"](16777216,null,null,1,null,Ct)),bl["\u0275did"](2,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){e(n,2,0,n.component.layers)},null)}function _t(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"svg-keyboard-wrap",[],[[2,"space",null]],[["window","resize"]],function(e,n,t){var l=!0;if("window:resize"===n){l=!1!==bl["\u0275nov"](e,1).onResize()&&l}return l},wt,Vc)),bl["\u0275did"](1,638976,null,0,jc,[Tl.m,wi,bl.ElementRef,bl.Renderer],null,null)],function(e,n){e(n,1,0)},function(e,n){e(n,0,0,bl["\u0275nov"](n,1).space)})}function Ot(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](1,0,null,null,3,"keymap-header",[],null,[[null,"downloadClick"],["window","resize"]],function(e,n,t){var l=!0,o=e.component;if("window:resize"===n){l=!1!==bl["\u0275nov"](e,2).windowResize()&&l}if("downloadClick"===n){l=!1!==o.downloadKeymap()&&l}return l},q,oi)),bl["\u0275did"](2,573440,null,0,ni,[Tl.m,bl.Renderer2],{keymap:[0,"keymap"],deletable:[1,"deletable"]},{downloadClick:"downloadClick"}),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,3,"svg-keyboard-wrap",[],[[2,"space",null]],[["window","resize"]],function(e,n,t){var l=!0;if("window:resize"===n){l=!1!==bl["\u0275nov"](e,7).onResize()&&l}return l},wt,Vc)),bl["\u0275did"](7,638976,[[1,4]],0,jc,[Tl.m,wi,bl.ElementRef,bl.Renderer],{keymap:[0,"keymap"],halvesSplit:[1,"halvesSplit"],keyboardLayout:[2,"keyboardLayout"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,2,0,bl["\u0275unv"](n,2,0,bl["\u0275nov"](n,3).transform(t.keymap$)),bl["\u0275unv"](n,2,1,bl["\u0275nov"](n,4).transform(t.deletable$))),e(n,7,0,bl["\u0275unv"](n,7,0,bl["\u0275nov"](n,8).transform(t.keymap$)),t.keyboardSplit,bl["\u0275unv"](n,7,2,bl["\u0275nov"](n,9).transform(t.keyboardLayout$)))},function(e,n){e(n,6,0,bl["\u0275nov"](n,7).space)})}function xt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"div",[["class","not-found"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n Sorry, there is no keymap with this abbreviation.\n"]))],null,null)}function St(e){return bl["\u0275vid"](0,[bl["\u0275qud"](671088640,1,{wrap:0}),(e()(),bl["\u0275and"](16777216,null,null,2,null,Ot)),bl["\u0275did"](2,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n\n"])),(e()(),bl["\u0275and"](16777216,null,null,2,null,xt)),bl["\u0275did"](6,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,2,0,bl["\u0275unv"](n,2,0,bl["\u0275nov"](n,3).transform(t.keymap$))),e(n,6,0,!bl["\u0275unv"](n,6,0,bl["\u0275nov"](n,7).transform(t.keymap$)))},null)}function Pt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"keymap-edit",[["class","container-fluid"]],null,[["window","keydown.alt.s"]],function(e,n,t){var l=!0;if("window:keydown.alt.s"===n){l=!1!==bl["\u0275nov"](e,1).toggleKeyboardSplit(t)&&l}return l},St,Gc)),bl["\u0275did"](1,49152,null,0,$c,[Tl.m,zl.a],null,null)],null,null)}function Rt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,[["keyboard",1]],null,17,"div",[["class","keymap__list_item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,1,"h2",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](3,null,["",""])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](5,0,null,null,1,"p",[["class","keymap__description"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](6,null,["\n ","\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,2,"svg-keyboard-wrap",[],[[2,"space",null]],[["window","resize"]],function(e,n,t){var l=!0;if("window:resize"===n){l=!1!==bl["\u0275nov"](e,9).onResize()&&l}return l},wt,Vc)),bl["\u0275did"](9,638976,null,0,jc,[Tl.m,wi,bl.ElementRef,bl.Renderer],{keymap:[0,"keymap"],popoverEnabled:[1,"popoverEnabled"],tooltipEnabled:[2,"tooltipEnabled"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](12,0,null,null,4,"div",[["class","btn-group btn-group-lg"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](14,0,null,null,1,"button",[["class","btn btn-default"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.addKeymap(e.context.$implicit)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["Add keymap"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "]))],function(e,n){e(n,9,0,n.context.$implicit,!1,!0)},function(e,n){e(n,3,0,n.context.$implicit.name),e(n,6,0,n.context.$implicit.description),e(n,8,0,bl["\u0275nov"](n,9).space)})}function It(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n Sorry, no keyboard found under this search query.\n"]))],null,null)}function Et(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,6,"h1",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-keyboard-o"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Add new keymap"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275eld"](8,0,null,null,16,"div",[["class","keymap__search clearfix"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](10,0,null,null,8,"div",[["class","input-group"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](12,0,null,null,3,"span",[["class","input-group-addon"],["id","sizing-addon1"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](14,0,null,null,0,"i",[["class","fa fa-search"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](17,0,null,null,0,"input",[["class","form-control"],["placeholder","Search ..."],["type","text"]],null,[[null,"input"]],function(e,n,t){var l=!0,o=e.component;if("input"===n){l=!1!==o.filterKeyboards(t.target.value)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](20,0,null,null,3,"div",[["class","keymap__search_amount"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](21,null,["\n "," / "," keymaps shown\n "])),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275eld"](26,0,null,null,5,"div",[["class","keymap__list"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,2,null,Rt)),bl["\u0275did"](29,802816,null,0,xl.j,[bl.ViewContainerRef,bl.TemplateRef,bl.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275and"](16777216,null,null,2,null,It)),bl["\u0275did"](34,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef])],function(e,n){var t=n.component;e(n,29,0,bl["\u0275unv"](n,29,0,bl["\u0275nov"](n,30).transform(t.presets$))),e(n,34,0,0===bl["\u0275unv"](n,34,0,bl["\u0275nov"](n,35).transform(t.presets$)).length)},function(e,n){var t=n.component;e(n,21,0,bl["\u0275unv"](n,21,0,bl["\u0275nov"](n,22).transform(t.presets$)).length,bl["\u0275unv"](n,21,1,bl["\u0275nov"](n,23).transform(t.presetsAll$)).length)})}function Ut(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"keymap-add",[["class","container-fluid"]],null,null,null,Et,Jc)),bl["\u0275did"](1,49152,null,0,qc,[Tl.m],null,null)],null,null)}function Nt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,11,"div",[["class","container-fluid"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,5,"uhk-header",[],null,null,null,W,Xo)),bl["\u0275did"](3,49152,null,0,Go,[Tl.m],null,null),(e()(),bl["\u0275ted"](-1,0,["\n "])),(e()(),bl["\u0275eld"](5,0,null,0,1,"h1",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\xa0"])),(e()(),bl["\u0275ted"](-1,0,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](9,0,null,null,1,"div",[["class","not-found"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n You don't have any macros. Try to add one!\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],null,null)}function Lt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-not-found",[],null,null,null,Nt,nu)),bl["\u0275did"](1,49152,null,0,Zc,[],null,null)],null,null)}function Kt(e){return bl["\u0275vid"](2,[bl["\u0275qud"](402653184,1,{macroName:0}),(e()(),bl["\u0275eld"](1,0,null,null,19,"uhk-header",[],null,null,null,W,Xo)),bl["\u0275did"](2,49152,null,0,Go,[Tl.m],null,null),(e()(),bl["\u0275ted"](-1,0,["\n "])),(e()(),bl["\u0275eld"](4,0,null,0,15,"div",[["class","row"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,12,"h1",[["class","col-xs-12 pane-title"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-play"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](10,0,[[1,0],["macroName",1]],null,1,"input",[["cancelable",""],["class","pane-title__name"],["type","text"]],null,[[null,"change"],[null,"keyup.enter"],[null,"keyup"],[null,"focus"],[null,"keyup.escape"]],function(e,n,t){var l=!0,o=e.component;if("focus"===n){l=!1!==bl["\u0275nov"](e,11).onFocus()&&l}if("keyup.escape"===n){l=!1!==bl["\u0275nov"](e,11).onEscape()&&l}if("change"===n){l=!1!==o.editMacroName(t.target.value)&&l}if("keyup.enter"===n){l=!1!==bl["\u0275nov"](e,10).blur()&&l}if("keyup"===n){l=!1!==o.calculateHeaderTextWidth(t.target.value)&&l}return l},null,null)),bl["\u0275did"](11,16384,null,0,ti,[bl.ElementRef,bl.Renderer],null,null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](13,0,null,null,1,"i",[["class","glyphicon glyphicon-trash macro__remove pull-right"],["data-original-title","Delete macro"],["data-placement","bottom"],["data-toggle","tooltip"],["html","true"],["title",""]],[[1,"data-placement",0]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.removeMacro()&&l}return l},null,null)),bl["\u0275did"](14,1589248,null,0,fo,[bl.ElementRef,lo.c],{title:[0,"title"],html:[1,"html"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](16,0,null,null,1,"i",[["class","fa fa-files-o macro__duplicate pull-right"],["data-original-title","Duplicate macro"],["data-placement","bottom"],["data-toggle","tooltip"],["title",""]],[[1,"data-placement",0]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.duplicateMacro()&&l}return l},null,null)),bl["\u0275did"](17,1589248,null,0,fo,[bl.ElementRef,lo.c],{title:[0,"title"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,0,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){e(n,14,0,"","true");e(n,17,0,"")},function(e,n){e(n,13,0,bl["\u0275nov"](n,14).placement),e(n,16,0,bl["\u0275nov"](n,17).placement)})}function Dt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-header",[],null,[["window","resize"]],function(e,n,t){var l=!0;if("window:resize"===n){l=!1!==bl["\u0275nov"](e,1).windowResize()&&l}return l},Kt,cu)),bl["\u0275did"](1,4767744,null,0,iu,[Tl.m,bl.Renderer2],null,null)],null,null)}function jt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-item",[["class","macro-item"]],[[1,"data-index",0]],[[null,"save"],[null,"edit"],[null,"cancel"],[null,"delete"]],function(e,n,t){var l=!0,o=e.component;if("save"===n){l=!1!==o.saveAction(t,e.context.index)&&l}if("edit"===n){l=!1!==o.editAction(e.context.index)&&l}if("cancel"===n){l=!1!==o.cancelAction()&&l}if("delete"===n){l=!1!==o.deleteAction(e.context.$implicit,e.context.index)&&l}return l},et,vc)),bl["\u0275did"](1,638976,[[1,4]],0,Ha,[wi],{macroAction:[0,"macroAction"],editable:[1,"editable"],deletable:[2,"deletable"],movable:[3,"movable"]},{save:"save",cancel:"cancel",edit:"edit",delete:"delete"})],function(e,n){e(n,1,0,n.context.$implicit,!0,!0,!0)},function(e,n){e(n,0,0,n.context.index)})}function Ft(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-item",[["class","macro-item"]],[[24,"@togglerNew",0]],[[null,"save"],[null,"cancel"]],function(e,n,t){var l=!0,o=e.component;if("save"===n){l=!1!==o.addNewAction(t)&&l}if("cancel"===n){l=!1!==o.hideNewAction()&&l}return l},et,vc)),bl["\u0275did"](1,638976,[[1,4]],0,Ha,[wi],{macroAction:[0,"macroAction"],editable:[1,"editable"],deletable:[2,"deletable"],movable:[3,"movable"]},{save:"save",cancel:"cancel"})],function(e,n){e(n,1,0,n.component.newMacro,!0,!1,!1)},function(e,n){e(n,0,0,n.component.showNew?"active":"inactive")})}function Vt(e){return bl["\u0275vid"](0,[bl["\u0275qud"](671088640,1,{macroItems:1}),(e()(),bl["\u0275eld"](1,0,null,null,34,"div",[["class","row list-container"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](3,0,null,null,31,"div",[["class","col-xs-10 col-xs-offset-1 list-group"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](5,0,null,null,8,"div",[["class","macro-actions-container"]],null,null,null,null,null)),bl["\u0275did"](6,606208,null,0,ru.DragulaDirective,[bl.ElementRef,su.DragulaService],{dragula:[0,"dragula"],dragulaModel:[1,"dragulaModel"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,jt)),bl["\u0275did"](9,802816,null,0,xl.j,[bl.ViewContainerRef,bl.TemplateRef,bl.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,Ft)),bl["\u0275did"](12,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](15,0,null,null,18,"div",[["class","list-group add-new__action-container"]],[[24,"@toggler",0]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](17,0,null,null,15,"div",[["class","list-group-item action--item add-new__action-item no-reorder clearfix"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](19,0,null,null,6,"span",[["class","add-new__action-item--link"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.showNewAction()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](21,0,null,null,3,"button",[["class","btn btn-link"],["type","button"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](23,0,null,null,0,"i",[["class","fa fa-plus"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" Add macro action\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](27,0,null,null,4,"span",[["class","add-new__action-item--link"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](29,0,null,null,1,"capture-keystroke-button",[["captureText","Add captured keystroke"],["isLink","true"]],null,[[null,"capture"],[null,"keyup"],[null,"keydown"],[null,"focusout"]],function(e,n,t){var l=!0,o=e.component;if("keyup"===n){l=!1!==bl["\u0275nov"](e,30).onKeyUp(t)&&l}if("keydown"===n){l=!1!==bl["\u0275nov"](e,30).onKeyDown(t)&&l}if("focusout"===n){l=!1!==bl["\u0275nov"](e,30).onFocusOut()&&l}if("capture"===n){l=!1!==o.onKeysCapture(t)&&l}return l},tn,Sa)),bl["\u0275did"](30,49152,null,0,Oa,[ea],{isLink:[0,"isLink"],captureText:[1,"captureText"]},{capture:"capture"}),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,6,0,"macroActions",t.macro.macroActions),e(n,9,0,t.macro.macroActions),e(n,12,0,t.showNew);e(n,30,0,"true","Add captured keystroke")},function(e,n){e(n,15,0,n.component.showNew?"inactive":"active")})}function Bt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,2,"macro-list",[],null,null,null,Vt,fu)),bl["\u0275prd"](8704,null,su.DragulaService,su.DragulaService,[]),bl["\u0275did"](2,49152,null,0,pu,[wi,su.DragulaService],null,null)],null,null)}function $t(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](1,0,null,null,1,"macro-header",[],null,[["window","resize"]],function(e,n,t){var l=!0;if("window:resize"===n){l=!1!==bl["\u0275nov"](e,2).windowResize()&&l}return l},Kt,cu)),bl["\u0275did"](2,4767744,null,0,iu,[Tl.m,bl.Renderer2],{macro:[0,"macro"],isNew:[1,"isNew"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,2,"macro-list",[],null,[[null,"add"],[null,"edit"],[null,"delete"],[null,"reorder"]],function(e,n,t){var l=!0,o=e.component;if("add"===n){l=!1!==o.addAction(t.macroId,t.action)&&l}if("edit"===n){l=!1!==o.editAction(t.macroId,t.index,t.action)&&l}if("delete"===n){l=!1!==o.deleteAction(t.macroId,t.index,t.action)&&l}if("reorder"===n){l=!1!==o.reorderAction(t.macroId,t.oldIndex,t.newIndex)&&l}return l},Vt,fu)),bl["\u0275prd"](8704,null,su.DragulaService,su.DragulaService,[]),bl["\u0275did"](6,49152,null,0,pu,[wi,su.DragulaService],{macro:[0,"macro"]},{add:"add",edit:"edit",delete:"delete",reorder:"reorder"}),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,2,0,t.macro,t.isNew),e(n,6,0,t.macro)},null)}function Ht(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,2,"div",[["class","not-found"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](1,null,["\n There is no macro with id ",".\n"])),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef])],null,function(e,n){var t=n.component;e(n,1,0,bl["\u0275unv"](n,1,0,bl["\u0275nov"](n,2).transform(t.route.params.select("id"))))})}function Gt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275and"](16777216,null,null,1,null,$t)),bl["\u0275did"](1,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n\n"])),(e()(),bl["\u0275and"](16777216,null,null,1,null,Ht)),bl["\u0275did"](4,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,1,0,t.macro),e(n,4,0,!t.macro)},null)}function Wt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"macro-edit",[["class","container-fluid"]],null,null,null,Gt,hu)),bl["\u0275did"](1,180224,null,0,mu,[Tl.m,zl.a],null,null)],null,null)}function zt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,7,"h1",[["class","col-xs-12 pane-title"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,0,"i",[["class","fa fa-puzzle-piece"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,2,"span",[["class","macro__name pane-title__name"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](7,null,["",""])),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\nTo be done..."]))],null,function(e,n){var t=n.component;e(n,7,0,bl["\u0275unv"](n,7,0,bl["\u0275nov"](n,8).transform(t.name$)))})}function qt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"add-on",[["class","container-fluid"]],null,null,null,zt,Tu)),bl["\u0275did"](1,49152,null,0,vu,[zl.a],null,null)],null,null)}function Yt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,0,"span",[["class","fa fa-spinner fa-spin"]],null,null,null,null,null))],null,null)}function Jt(e){return bl["\u0275vid"](2,[(e()(),bl["\u0275eld"](0,0,null,null,38,"div",[["class","row"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,35,"div",[["class","col-xs-12"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,6,"div",[["class","checkbox"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,3,"label",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],function(e,n,t){var l=!0,o=e.component;if("change"===n){l=!1!==o.emitCheckForUpdateOnStartUp(t.target.checked)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,[" Automatically check for update on\n application start\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n\n "])),(e()(),bl["\u0275eld"](12,0,null,null,6,"div",[["class","checkbox"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](14,0,null,null,3,"label",[],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](16,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],function(e,n,t){var l=!0,o=e.component;if("change"===n){l=!1!==o.emitUsePreReleaseUpdate(t.target.checked)&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,[" Allow alpha / pre release\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](20,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](22,0,null,null,1,"label",[["class","col-sm-2 control-label"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Version:"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](25,0,null,null,4,"div",[["class","col-sm-10"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](27,0,null,null,1,"p",[["class","form-control-static"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](28,null,["",""])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n\n "])),(e()(),bl["\u0275eld"](32,0,null,null,4,"button",[["class","btn btn-link"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.emitCheckForUpdate()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n Check for update\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,Yt)),bl["\u0275did"](35,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){e(n,35,0,n.component.checkingForUpdate)},function(e,n){var t=n.component;e(n,8,0,t.settings.checkForUpdateOnStartUp),e(n,16,0,t.settings.usePreReleaseUpdate),e(n,28,0,t.version)})}function Xt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"auto-update-settings",[],null,null,null,Jt,Su)),bl["\u0275did"](1,49152,null,0,Ou,[],null,null)],null,null)}function Qt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,6,"h1",[["class","col-xs-12 pane-title"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,0,"i",[["class","fa fa-gear"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](6,0,null,null,1,"span",[["class","macro__name pane-title__name"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Settings"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275eld"](11,0,null,null,4,"auto-update-settings",[],null,[[null,"toggleCheckForUpdateOnStartUp"],[null,"toggleUsePreReleaseUpdate"],[null,"checkForUpdate"]],function(e,n,t){var l=!0,o=e.component;if("toggleCheckForUpdateOnStartUp"===n){l=!1!==o.toogleCheckForUpdateOnStartUp(t)&&l}if("toggleUsePreReleaseUpdate"===n){l=!1!==o.toogleUsePreReleaseUpdate(t)&&l}if("checkForUpdate"===n){l=!1!==o.checkForUpdate()&&l}return l},Jt,Su)),bl["\u0275did"](12,49152,null,0,Ou,[],{version:[0,"version"],settings:[1,"settings"],checkingForUpdate:[2,"checkingForUpdate"]},{toggleCheckForUpdateOnStartUp:"toggleCheckForUpdateOnStartUp",toggleUsePreReleaseUpdate:"toggleUsePreReleaseUpdate",checkForUpdate:"checkForUpdate"}),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,12,0,t.version,bl["\u0275unv"](n,12,1,bl["\u0275nov"](n,13).transform(t.autoUpdateSettings$)),bl["\u0275unv"](n,12,2,bl["\u0275nov"](n,14).transform(t.checkingForUpdate$)))},null)}function Zt(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"settings",[["class","container-fluid"]],null,null,null,Qt,Ru)),bl["\u0275did"](1,49152,null,0,_u,[Tl.m],null,null)],null,null)}function el(e){return bl["\u0275vid"](2,[(e()(),bl["\u0275eld"](0,0,null,null,7,"div",[["class","app-update-available-wrapper"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n New version available.\n "])),(e()(),bl["\u0275eld"](2,0,null,null,1,"button",[["class","btn btn-primary"],["type","button"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.updateApp.emit()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["Update"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](5,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.doNotUpdateApp.emit()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["Close"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],null,null)}function nl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"app-update-available",[],null,null,null,el,Ku)),bl["\u0275did"](1,49152,null,0,Nu,[],null,null)],null,null)}function tl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"i",[["class","fa fa-star sidebar__fav"],["data-placement","bottom"],["data-toggle","tooltip"],["title","This is the default keymap which gets activated when powering the keyboard."]],[[1,"data-placement",0]],null,null,null,null)),bl["\u0275did"](1,1589248,null,0,fo,[bl.ElementRef,lo.c],{title:[0,"title"]},null)],function(e,n){e(n,1,0,"This is the default keymap which gets activated when powering the keyboard.")},function(e,n){e(n,0,0,bl["\u0275nov"](n,1).placement)})}function ll(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,17,"li",[["class","sidebar__level-2--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,14,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](3,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,10,{links:1}),bl["\u0275qud"](603979776,11,{linksWithHrefs:1}),bl["\u0275pad"](6,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,9).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](9,671744,[[11,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](10,2),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](12,null,["",""])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,tl)),bl["\u0275did"](15,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "]))],function(e,n){e(n,3,0,e(n,6,0,"active")),e(n,9,0,e(n,10,0,"/keymap",n.context.$implicit.abbreviation)),e(n,15,0,n.context.$implicit.isDefault)},function(e,n){var t=n.component;e(n,8,0,bl["\u0275unv"](n,8,0,bl["\u0275nov"](n,11).transform(t.updatingFirmware$)),bl["\u0275nov"](n,9).target,bl["\u0275nov"](n,9).href),e(n,12,0,n.context.$implicit.name)})}function ol(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,14,"li",[["class","sidebar__level-2--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](3,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,12,{links:1}),bl["\u0275qud"](603979776,13,{linksWithHrefs:1}),bl["\u0275pad"](6,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,9).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](9,671744,[[13,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](10,2),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](12,null,["",""])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "]))],function(e,n){e(n,3,0,e(n,6,0,"active")),e(n,9,0,e(n,10,0,"/macro",n.context.$implicit.id))},function(e,n){var t=n.component;e(n,8,0,bl["\u0275unv"](n,8,0,bl["\u0275nov"](n,11).transform(t.updatingFirmware$)),bl["\u0275nov"](n,9).target,bl["\u0275nov"](n,9).href),e(n,12,0,n.context.$implicit.name)})}function il(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,75,"li",[["class","sidebar__level-1--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,5,"div",[["class","sidebar__level-1"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](4,0,null,null,0,"i",[["class","fa fa-puzzle-piece"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" Add-on modules\n "])),(e()(),bl["\u0275eld"](6,0,null,null,0,"i",[["class","fa fa-chevron-up pull-right"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.toggleHide(t,"addon")&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](9,0,null,null,65,"ul",[],[[24,"@toggler",0]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](11,0,null,null,14,"li",[["class","sidebar__level-2--item"],["data-abbrev",""],["data-name","Key cluster"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](13,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](14,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,14,{links:1}),bl["\u0275qud"](603979776,15,{linksWithHrefs:1}),bl["\u0275pad"](17,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](19,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,20).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](20,671744,[[15,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](21,2),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Key cluster"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](27,0,null,null,14,"li",[["class","sidebar__level-2--item"],["data-abbrev",""],["data-name","Trackball"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](29,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](30,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,16,{links:1}),bl["\u0275qud"](603979776,17,{linksWithHrefs:1}),bl["\u0275pad"](33,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](35,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,36).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](36,671744,[[17,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](37,2),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Trackball"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](43,0,null,null,14,"li",[["class","sidebar__level-2--item"],["data-abbrev",""],["data-name","Toucpad"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](45,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](46,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,18,{links:1}),bl["\u0275qud"](603979776,19,{linksWithHrefs:1}),bl["\u0275pad"](49,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](51,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,52).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](52,671744,[[19,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](53,2),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Touchpad"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](59,0,null,null,14,"li",[["class","sidebar__level-2--item"],["data-abbrev",""],["data-name","Trackpoint"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](61,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](62,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,20,{links:1}),bl["\u0275qud"](603979776,21,{linksWithHrefs:1}),bl["\u0275pad"](65,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](67,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,68).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](68,671744,[[21,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](69,2),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Trackpoint"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "]))],function(e,n){e(n,14,0,e(n,17,0,"active")),e(n,20,0,e(n,21,0,"/add-on","Key cluster")),e(n,30,0,e(n,33,0,"active")),e(n,36,0,e(n,37,0,"/add-on","Trackball")),e(n,46,0,e(n,49,0,"active")),e(n,52,0,e(n,53,0,"/add-on","Touchpad")),e(n,62,0,e(n,65,0,"active")),e(n,68,0,e(n,69,0,"/add-on","Trackpoint"))},function(e,n){var t=n.component;e(n,9,0,t.animation.addon),e(n,19,0,bl["\u0275unv"](n,19,0,bl["\u0275nov"](n,22).transform(t.updatingFirmware$)),bl["\u0275nov"](n,20).target,bl["\u0275nov"](n,20).href),e(n,35,0,bl["\u0275unv"](n,35,0,bl["\u0275nov"](n,38).transform(t.updatingFirmware$)),bl["\u0275nov"](n,36).target,bl["\u0275nov"](n,36).href),e(n,51,0,bl["\u0275unv"](n,51,0,bl["\u0275nov"](n,54).transform(t.updatingFirmware$)),bl["\u0275nov"](n,52).target,bl["\u0275nov"](n,52).href),e(n,67,0,bl["\u0275unv"](n,67,0,bl["\u0275nov"](n,70).transform(t.updatingFirmware$)),bl["\u0275nov"](n,68).target,bl["\u0275nov"](n,68).href)})}function al(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,15,"ul",[["class","menu--bottom"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,12,"li",[["class","sidebar__level-1--item"]],null,null,null,null,null)),bl["\u0275did"](3,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,22,{links:1}),bl["\u0275qud"](603979776,23,{linksWithHrefs:1}),bl["\u0275pad"](6,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](8,0,null,null,5,"a",[["class","sidebar__level-1"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,9).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](9,671744,[[23,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](10,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-gear"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" Settings\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){e(n,3,0,e(n,6,0,"active")),e(n,9,0,e(n,10,0,"/settings"))},function(e,n){e(n,8,0,bl["\u0275nov"](n,9).target,bl["\u0275nov"](n,9).href)})}function cl(e){return bl["\u0275vid"](0,[bl["\u0275qud"](402653184,1,{deviceName:0}),(e()(),bl["\u0275eld"](1,0,null,null,139,"ul",[["class","menu--top"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](3,0,null,null,136,"li",[["class","sidebar__level-0--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](5,0,null,null,8,"div",[["class","sidebar__level-0"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](7,0,null,null,0,"i",[["class","uhk-icon uhk-icon-0401-usb-stick rotate-right"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](9,0,[[1,0],["deviceName",1]],null,1,"input",[["cancelable",""],["class","pane-title__name"],["type","text"]],null,[[null,"change"],[null,"keyup.enter"],[null,"keyup"],[null,"focus"],[null,"keyup.escape"]],function(e,n,t){var l=!0,o=e.component;if("focus"===n){l=!1!==bl["\u0275nov"](e,10).onFocus()&&l}if("keyup.escape"===n){l=!1!==bl["\u0275nov"](e,10).onEscape()&&l}if("change"===n){l=!1!==o.editDeviceName(t.target.value)&&l}if("keyup.enter"===n){l=!1!==bl["\u0275nov"](e,9).blur()&&l}if("keyup"===n){l=!1!==o.calculateHeaderTextWidth(t.target.value)&&l}return l},null,null)),bl["\u0275did"](10,16384,null,0,ti,[bl.ElementRef,bl.Renderer],null,null),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-chevron-up pull-right"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.toggleHide(t,"device")&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](15,0,null,null,123,"ul",[],[[24,"@toggler",0]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](17,0,null,null,75,"li",[["class","sidebar__level-1--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](19,0,null,null,5,"div",[["class","sidebar__level-1"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](21,0,null,null,0,"i",[["class","fa fa-sliders"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" Device\n "])),(e()(),bl["\u0275eld"](23,0,null,null,0,"i",[["class","fa fa-chevron-up pull-right"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.toggleHide(t,"configuration")&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](26,0,null,null,65,"ul",[],[[24,"@toggler",0]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](28,0,null,null,14,"li",[["class","sidebar__level-2--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](30,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](31,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,2,{links:1}),bl["\u0275qud"](603979776,3,{linksWithHrefs:1}),bl["\u0275pad"](34,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](36,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,37).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](37,671744,[[3,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](38,1),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Mouse speed"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](44,0,null,null,14,"li",[["class","sidebar__level-2--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](46,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](47,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,4,{links:1}),bl["\u0275qud"](603979776,5,{linksWithHrefs:1}),bl["\u0275pad"](50,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](52,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,53).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](53,671744,[[5,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](54,1),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["LED brightness"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](60,0,null,null,14,"li",[["class","sidebar__level-2--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](62,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](63,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,6,{links:1}),bl["\u0275qud"](603979776,7,{linksWithHrefs:1}),bl["\u0275pad"](66,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](68,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,69).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](69,671744,[[7,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](70,1),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Configuration"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](76,0,null,null,14,"li",[["class","sidebar__level-2--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](78,0,null,null,11,"div",[["class","sidebar__level-2"]],null,null,null,null,null)),bl["\u0275did"](79,1720320,null,2,zl.n,[zl.m,bl.ElementRef,bl.Renderer2,bl.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),bl["\u0275qud"](603979776,8,{links:1}),bl["\u0275qud"](603979776,9,{linksWithHrefs:1}),bl["\u0275pad"](82,1),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](84,0,null,null,4,"a",[],[[2,"disabled",null],[1,"target",0],[8,"href",4]],[[null,"click"]],function(e,n,t){var l=!0;if("click"===n){l=!1!==bl["\u0275nov"](e,85).onClick(t.button,t.ctrlKey,t.metaKey,t.shiftKey)&&l}return l},null,null)),bl["\u0275did"](85,671744,[[9,4]],0,zl.o,[zl.m,zl.a,xl.h],{routerLink:[0,"routerLink"]},null),bl["\u0275pad"](86,1),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["Firmware"])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](94,0,null,null,16,"li",[["class","sidebar__level-1--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](96,0,null,null,6,"div",[["class","sidebar__level-1"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](98,0,null,null,0,"i",[["class","fa fa-keyboard-o"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" Keymaps\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](101,0,null,null,0,"i",[["class","fa fa-chevron-up pull-right"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.toggleHide(t,"keymap")&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](104,0,null,null,5,"ul",[],[[24,"@toggler",0]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,2,null,ll)),bl["\u0275did"](107,802816,null,0,xl.j,[bl.ViewContainerRef,bl.TemplateRef,bl.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](112,0,null,null,21,"li",[["class","sidebar__level-1--item"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](114,0,null,null,11,"div",[["class","sidebar__level-1"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](116,0,null,null,0,"i",[["class","fa fa-play"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,[" Macros\n "])),(e()(),bl["\u0275eld"](118,0,null,null,4,"a",[["class","btn btn-default pull-right btn-sm"]],[[2,"disabled",null]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.addMacro()&&l}return l},null,null)),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](121,0,null,null,0,"i",[["class","fa fa-plus"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](124,0,null,null,0,"i",[["class","fa fa-chevron-up pull-right"]],null,[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.toggleHide(t,"macro")&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](127,0,null,null,5,"ul",[],[[24,"@toggler",0]],null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,2,null,ol)),bl["\u0275did"](130,802816,null,0,xl.j,[bl.ViewContainerRef,bl.TemplateRef,bl.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,2,null,il)),bl["\u0275did"](136,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n\n "])),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275and"](16777216,null,null,2,null,al)),bl["\u0275did"](143,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,31,0,e(n,34,0,"active")),e(n,37,0,e(n,38,0,"/device/mouse-speed")),e(n,47,0,e(n,50,0,"active")),e(n,53,0,e(n,54,0,"/device/led-brightness")),e(n,63,0,e(n,66,0,"active")),e(n,69,0,e(n,70,0,"/device/configuration")),e(n,79,0,e(n,82,0,"active")),e(n,85,0,e(n,86,0,"/device/firmware")),e(n,107,0,bl["\u0275unv"](n,107,0,bl["\u0275nov"](n,108).transform(t.keymaps$))),e(n,130,0,bl["\u0275unv"](n,130,0,bl["\u0275nov"](n,131).transform(t.macros$))),e(n,136,0,bl["\u0275unv"](n,136,0,bl["\u0275nov"](n,137).transform(t.showAddonMenu$))),e(n,143,0,bl["\u0275unv"](n,143,0,bl["\u0275nov"](n,144).transform(t.runInElectron$)))},function(e,n){var t=n.component;e(n,15,0,t.animation.device),e(n,26,0,t.animation.configuration),e(n,36,0,bl["\u0275unv"](n,36,0,bl["\u0275nov"](n,39).transform(t.updatingFirmware$)),bl["\u0275nov"](n,37).target,bl["\u0275nov"](n,37).href),e(n,52,0,bl["\u0275unv"](n,52,0,bl["\u0275nov"](n,55).transform(t.updatingFirmware$)),bl["\u0275nov"](n,53).target,bl["\u0275nov"](n,53).href),e(n,68,0,bl["\u0275unv"](n,68,0,bl["\u0275nov"](n,71).transform(t.updatingFirmware$)),bl["\u0275nov"](n,69).target,bl["\u0275nov"](n,69).href),e(n,84,0,bl["\u0275unv"](n,84,0,bl["\u0275nov"](n,87).transform(t.updatingFirmware$)),bl["\u0275nov"](n,85).target,bl["\u0275nov"](n,85).href),e(n,104,0,t.animation.keymap),e(n,118,0,bl["\u0275unv"](n,118,0,bl["\u0275nov"](n,119).transform(t.updatingFirmware$))),e(n,127,0,t.animation.macro)})}function ul(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"side-menu",[],null,null,null,cl,Vu)),bl["\u0275did"](1,1228800,null,0,ju,[Tl.m,bl.Renderer2],null,null)],null,null)}function rl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,0,"i",[["class","fa fa-spin fa-spinner"]],null,null,null,null,null))],null,null)}function sl(e){return bl["\u0275vid"](2,[(e()(),bl["\u0275eld"](0,0,null,null,4,"button",[["class","btn btn-primary"]],[[8,"disabled",0]],[[null,"click"]],function(e,n,t){var l=!0,o=e.component;if("click"===n){l=!1!==o.onClicked()&&l}return l},null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275and"](16777216,null,null,1,null,rl)),bl["\u0275did"](3,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),bl["\u0275ted"](4,null,[" ","\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){e(n,3,0,n.component.state.showProgress)},function(e,n){var t=n.component;e(n,0,0,t.state.showProgress),e(n,4,0,t.state.text)})}function dl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"progress-button",[],null,null,null,sl,Wu)),bl["\u0275did"](1,49152,null,0,Hu,[],null,null)],null,null)}function pl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,2,"app-update-available",[],null,[[null,"updateApp"],[null,"doNotUpdateApp"]],function(e,n,t){var l=!0,o=e.component;if("updateApp"===n){l=!1!==o.updateApp()&&l}if("doNotUpdateApp"===n){l=!1!==o.doNotUpdateApp()&&l}return l},el,Ku)),bl["\u0275did"](1,49152,null,0,Nu,[],null,{updateApp:"updateApp",doNotUpdateApp:"doNotUpdateApp"}),(e()(),bl["\u0275ted"](-1,null,["\n"]))],null,null)}function yl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"side-menu",[],null,null,null,cl,Vu)),bl["\u0275did"](1,1228800,null,0,ju,[Tl.m,bl.Renderer2],null,null)],null,null)}function fl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,4,"div",[["class","github-fork-ribbon"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](2,0,null,null,1,"a",[["class",""],["href","https://github.com/UltimateHackingKeyboard/agent"],["title","Fork me on GitHub"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["Fork me on GitHub"])),(e()(),bl["\u0275ted"](-1,null,["\n"]))],null,null)}function ml(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,2,"progress-button",[["class","save-to-keyboard-button"]],[[24,"@showSaveToKeyboardButton",0]],[[null,"clicked"]],function(e,n,t){var l=!0,o=e.component;if("clicked"===n){l=!1!==o.clickedOnProgressButton(t)&&l}return l},sl,Wu)),bl["\u0275did"](1,49152,null,0,Hu,[],{state:[0,"state"]},{clicked:"clicked"}),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef])],function(e,n){var t=n.component;e(n,1,0,bl["\u0275unv"](n,1,0,bl["\u0275nov"](n,2).transform(t.saveToKeyboardState$)))},function(e,n){e(n,0,0,void 0)})}function kl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275and"](16777216,null,null,2,null,pl)),bl["\u0275did"](1,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n\n"])),(e()(),bl["\u0275and"](16777216,null,null,2,null,yl)),bl["\u0275did"](5,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275eld"](8,0,null,null,4,"div",[["class","main-content"],["id","main-content"]],null,null,null,null,null)),(e()(),bl["\u0275ted"](-1,null,["\n "])),(e()(),bl["\u0275eld"](10,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),bl["\u0275did"](11,212992,null,0,zl.q,[zl.b,bl.ViewContainerRef,bl.ComponentFactoryResolver,[8,null],bl.ChangeDetectorRef],null,null),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275and"](16777216,null,null,2,null,fl)),bl["\u0275did"](15,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275eld"](18,0,null,null,1,"notifier-container",[["class","notifier__container"]],null,null,null,zu.b,zu.a)),bl["\u0275did"](19,245760,null,0,qu.g,[bl.ChangeDetectorRef,qu.h,qu.b],null,null),(e()(),bl["\u0275ted"](-1,null,["\n"])),(e()(),bl["\u0275and"](16777216,null,null,2,null,ml)),bl["\u0275did"](22,16384,null,0,xl.k,[bl.ViewContainerRef,bl.TemplateRef],{ngIf:[0,"ngIf"]},null),bl["\u0275pid"](131072,xl.b,[bl.ChangeDetectorRef]),(e()(),bl["\u0275ted"](-1,null,["\n"]))],function(e,n){var t=n.component;e(n,1,0,bl["\u0275unv"](n,1,0,bl["\u0275nov"](n,2).transform(t.showUpdateAvailable$))),e(n,5,0,bl["\u0275unv"](n,5,0,bl["\u0275nov"](n,6).transform(t.deviceConfigurationLoaded$))),e(n,11,0),e(n,15,0,!bl["\u0275unv"](n,15,0,bl["\u0275nov"](n,16).transform(t.runningInElectron$))),e(n,19,0),e(n,22,0,bl["\u0275unv"](n,22,0,bl["\u0275nov"](n,23).transform(t.saveToKeyboardState$)).showButton)},null)}function hl(e){return bl["\u0275vid"](0,[(e()(),bl["\u0275eld"](0,0,null,null,1,"main-app",[],null,null,null,kl,Ju)),bl["\u0275did"](1,49152,null,0,wl,[Tl.m],null,null)],null,null)}Object.defineProperty(n,"__esModule",{value:!0});var gl,bl=t("/oeL"),vl=t("p5Ee"),Al=function(){function e(){}return e}(),Tl=t("ADVA"),Ml=(t("dy5W"),t("vBds")),Cl=t("KN1q"),wl=function(){function e(e){this.store=e,this.showUpdateAvailable$=e.select(Cl.l),this.deviceConfigurationLoaded$=e.select(Cl.b),this.runningInElectron$=e.select(Cl.p),this.saveToKeyboardState$=e.select(Cl.q)}return e.prototype.updateApp=function(){this.store.dispatch(new Ml.c)},e.prototype.doNotUpdateApp=function(){this.store.dispatch(new Ml.b)},e.prototype.clickedOnProgressButton=function(e){return this.store.dispatch(e)},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),_l=t("UOfe"),Ol=[".uhk-message-wrapper[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.agent-logo[_ngcontent-%COMP%]{padding:2em}.message[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.message[_ngcontent-%COMP%] > h2[_ngcontent-%COMP%]{margin-top:10px}.spin-logo[_ngcontent-%COMP%]{-webkit-animation:spin 2s ease-in-out infinite;animation:spin 2s ease-in-out infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}"],xl=t("qbdv"),Sl=function(){function e(){this.rotateLogo=!1}return e}(),Pl=[Ol],Rl=bl["\u0275crt"]({encapsulation:0,styles:Pl,data:{}}),Il=(bl["\u0275ccf"]("uhk-message",Sl,o,{header:"header",subtitle:"subtitle",rotateLogo:"rotateLogo"},{},[]),t("MBEm"),t("IpZT"),t("86mp"),function(){function e(){}return e.ctorParameters=function(){return[]},e}()),El=[],Ul=bl["\u0275crt"]({encapsulation:2,styles:El,data:{}}),Nl=bl["\u0275ccf"]("missing-device",Il,a,{},{},[]),Ll=[".privilege-checker-wrapper[_ngcontent-%COMP%]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}uhk-message[_ngcontent-%COMP%]{max-width:50%}"],Kl=(t("/zHi"),t("S7im"),t("CyOy")),Dl=function(){function e(e){this.store=e}return e.prototype.setUpPermissions=function(){this.store.dispatch(new Kl.j)},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),jl=[Ll],Fl=bl["\u0275crt"]({encapsulation:0,styles:jl,data:{}}),Vl=bl["\u0275ccf"]("privilege-checker",Dl,u,{},{},[]),Bl=function(){function e(){}return e.ctorParameters=function(){return[]},e}(),$l=[],Hl=bl["\u0275crt"]({encapsulation:2,styles:$l,data:{}}),Gl=bl["\u0275ccf"]("loading-device",Bl,s,{},{},[]),Wl=function(){function e(){}return e.prototype.onActivate=function(e,n){n.scrollIntoView()},e.ctorParameters=function(){return[]},e}(),zl=t("BkNc"),ql=["[_nghost-%COMP%]{height:100%; width:100%}"],Yl=bl["\u0275crt"]({encapsulation:0,styles:ql,data:{}}),Jl=bl["\u0275ccf"]("main-page",Wl,p,{},{},[]),Xl=["[_nghost-%COMP%]{overflow-y:auto;display:block;height:100%;width:100%}[_nghost-%COMP%] p[_ngcontent-%COMP%]{margin:1.5rem 0}"],Ql=t("pSU5"),Zl=function(){function e(e){this.store=e}return e.prototype.resetUserConfiguration=function(){this.store.dispatch(new Kl.e)},e.prototype.saveConfigurationInJSONFormat=function(){this.store.dispatch(new Ql.j)},e.prototype.saveConfigurationInBINFormat=function(){this.store.dispatch(new Ql.i)},e.prototype.changeFile=function(e){var n=e.srcElement.files,t=new FileReader;t.onloadend=function(){var n=new Uint8Array(t.result);this.store.dispatch(new Ql.g({filename:e.srcElement.value,data:Array.from(n)}))}.bind(this),t.readAsArrayBuffer(n[0])},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),eo=t("KRXn"),no=t("BJSQ"),to=t("7/Pv"),lo=t("fc+i"),oo=[Xl],io=bl["\u0275crt"]({encapsulation:0,styles:oo,data:{}}),ao=bl["\u0275ccf"]("device-settings",Zl,f,{},{},[]),co=["[_nghost-%COMP%]{overflow-y:auto;display:block;height:100%;width:100%}[_nghost-%COMP%] label[_ngcontent-%COMP%]{display:block;font-weight:400}[_nghost-%COMP%] label[_ngcontent-%COMP%] icon[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .mouse-speed-reset-button[_ngcontent-%COMP%]{display:block;margin-bottom:4rem}[_nghost-%COMP%] .mouse-speed-setting[_ngcontent-%COMP%]{margin-bottom:6rem}[_nghost-%COMP%] .mouse-speed-setting[_ngcontent-%COMP%] + h3[_ngcontent-%COMP%]{margin-top:2rem}"],uo=["[_nghost-%COMP%] label[_ngcontent-%COMP%]{display:block;font-weight:400}[_nghost-%COMP%] label[_ngcontent-%COMP%] icon[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .slider-wrapper[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding-left:1.6rem}[_nghost-%COMP%] .slider-container[_ngcontent-%COMP%]{width:80%}[_nghost-%COMP%] .slider-value[_ngcontent-%COMP%]{width:20%}[_nghost-%COMP%] .value-indicator[_ngcontent-%COMP%]{margin:1rem 1rem 1rem 3rem;vertical-align:middle}"],ro=["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.action--edit[_ngcontent-%COMP%]:hover{color:#337ab7;cursor:pointer}.action--trash[_ngcontent-%COMP%]:hover{color:#d9534f;cursor:pointer}"],so=function(){function e(){}return e.prototype.ngOnInit=function(){},e.ctorParameters=function(){return[]},e}(),po=[ro],yo=bl["\u0275crt"]({encapsulation:0,styles:po,data:{}}),fo=(bl["\u0275ccf"]("icon",so,O,{name:"name"},{},[]),function(){function e(e,n){this.elementRef=e,this.sanitizer=n,this.customTooltipTemplate='\n
\n
\n
\n
\n '}return e.prototype.ngAfterContentInit=function(){this.init()},e.prototype.ngOnChanges=function(e){e.title&&this.fixTitle()},e.prototype.init=function(){jQuery(this.elementRef.nativeElement).tooltip({placement:this.placement,html:this.html,template:this.customTooltipTemplate,title:this.title})},e.prototype.fixTitle=function(){jQuery(this.elementRef.nativeElement).tooltip({placement:this.placement,html:this.html,template:this.customTooltipTemplate,title:this.title}),jQuery(this.elementRef.nativeElement).attr("title",this.title).tooltip("fixTitle")},e.ctorParameters=function(){return[{type:bl.ElementRef},{type:lo.c}]},e}()),mo=t("bKpL"),ko=(t("azLz"),function(){function e(){this.onChange=new bl.EventEmitter,this.changeDebounceTime=300,this.propagateChange=function(){}}return e.prototype.ngAfterViewInit=function(){this.pips&&this.slider.slider.pips(this.pips),this.slider.slider.target.querySelector(".noUi-tooltip").style.display="none",this.slider.slider.on("start",function(){this.target.querySelector(".noUi-tooltip").style.display="block"}),this.slider.slider.on("end",function(){this.target.querySelector(".noUi-tooltip").style.display="none"})},e.prototype.ngOnDestroy=function(){this.changeObserver$&&this.changeObserver$.complete()},e.prototype.writeValue=function(e){this.value=e||this.min},e.prototype.registerOnChange=function(e){this.propagateChange=e},e.prototype.registerOnTouched=function(){},e.prototype.onSliderChange=function(e){var n=this;if(!this.changeObserver$)return void mo.Observable.create(function(e){n.changeObserver$=e}).debounceTime(this.changeDebounceTime).distinctUntilChanged().subscribe(this.propagateChange);this.changeObserver$.next(e)},e}()),ho=t("4Id2"),go=t("u+1Z"),bo=t("bm2B"),vo=[uo],Ao=bl["\u0275crt"]({encapsulation:0,styles:vo,data:{}}),To=(bl["\u0275ccf"]("slider-wrapper",ko,R,{label:"label",tooltip:"tooltip",min:"min",max:"max",step:"step",pips:"pips",valueUnit:"valueUnit"},{onChange:"onChange"},[]),t("xDyD")),Mo=25,Co=function(){function e(e,n){this.store=e,this.defaultUserConfigurationService=n,this.moveProps=[{prop:"mouseMoveInitialSpeed",title:"Initial speed",tooltip:"When mouse movement begins, this is the starting speed.",valueUnit:"px/s",value:0},{prop:"mouseMoveBaseSpeed",title:"Base speed",tooltip:"This speed is reached after the initial moving speed sufficiently ramps up.",valueUnit:"px/s",value:0},{prop:"mouseMoveAcceleration",title:"Acceleration",tooltip:"The rate of acceleration from the initial movement speed to the base speed.",valueUnit:"px/s\xb2",value:0},{prop:"mouseMoveDeceleratedSpeed",title:"Decelerated speed",tooltip:"This speed is used while moving with the decelerate key pressed.",valueUnit:"px/s",value:0},{prop:"mouseMoveAcceleratedSpeed",title:"Accelerated speed",tooltip:"This speed is used while moving with the accelerate key pressed.",valueUnit:"px/s",value:0}],this.scrollProps=[{prop:"mouseScrollInitialSpeed",title:"Initial speed",tooltip:"When mouse scrolling begins, this is the starting speed.",valueUnit:"pulse/s",value:0},{prop:"mouseScrollBaseSpeed",title:"Base speed",tooltip:"This speed is reached after the initial scrolling speed sufficiently ramps up.",valueUnit:"pulse/s",value:0},{prop:"mouseScrollAcceleration",title:"Acceleration",tooltip:"The rate of acceleration from the initial scrolling speed to the base speed.",valueUnit:"pulse/s\xb2",value:0},{prop:"mouseScrollDeceleratedSpeed",title:"Decelerated speed",tooltip:"This speed is used while scrolling with the decelerate key pressed.",valueUnit:"pulse/s",value:0},{prop:"mouseScrollAcceleratedSpeed",title:"Accelerated speed",tooltip:"This speed is used while scrolling with the accelerate key pressed.",valueUnit:"pulse/s",value:0}],this.sliderPips={mode:"positions",values:[0,50,100],density:6,stepped:!0},this.moveSettings={min:Mo,max:6375,step:Mo},this.scrollSettings={min:1,max:255,step:1}}return e.prototype.ngOnInit=function(){var e=this;this.userConfig$=this.store.select(Cl.n),this.userConfigSubscription=this.userConfig$.subscribe(function(n){e.moveProps.forEach(function(e){e.value=n[e.prop]*Mo||0}),e.scrollProps.forEach(function(e){e.value=n[e.prop]||0})})},e.prototype.ngOnDestroy=function(){this.userConfigSubscription.unsubscribe()},e.prototype.onSetPropertyValue=function(e,n){this.store.dispatch(new Ql.l({propertyName:e,value:-1!==e.indexOf("mouseMove")?n/Mo:n}))},e.prototype.resetToDefault=function(){this.store.dispatch(new Kl.d)},e.ctorParameters=function(){return[{type:Tl.m},{type:To.a}]},e}(),wo=[co],_o=bl["\u0275crt"]({encapsulation:0,styles:wo,data:{}}),Oo=bl["\u0275ccf"]("device-mouse-speed",Co,N,{},{},[]),xo=["[_nghost-%COMP%]{overflow-y:auto;display:block;height:100%;width:100%}[_nghost-%COMP%] label[_ngcontent-%COMP%]{display:block;font-weight:400}[_nghost-%COMP%] .led-setting[_ngcontent-%COMP%]{margin-bottom:6rem}"],So=function(){function e(e){this.store=e,this.iconsAndLayerTextsBrightness=0,this.alphanumericSegmentsBrightness=0,this.keyBacklightBrightness=0,this.sliderPips={mode:"positions",values:[0,50,100],density:6,stepped:!0}}return e.prototype.ngOnInit=function(){var e=this;this.userConfig$=this.store.select(Cl.n),this.userConfigSubscription=this.userConfig$.subscribe(function(n){e.iconsAndLayerTextsBrightness=n.iconsAndLayerTextsBrightness,e.alphanumericSegmentsBrightness=n.alphanumericSegmentsBrightness,e.keyBacklightBrightness=n.keyBacklightBrightness})},e.prototype.ngOnDestroy=function(){this.userConfigSubscription.unsubscribe()},e.prototype.onSetPropertyValue=function(e,n){this.store.dispatch(new Ql.l({propertyName:e,value:n}))},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),Po=[xo],Ro=bl["\u0275crt"]({encapsulation:0,styles:Po,data:{}}),Io=bl["\u0275ccf"]("device-led-brightness",So,K,{},{},[]),Eo=["[_nghost-%COMP%]{overflow-y:auto;display:block;height:100vh;min-height:100%;width:100%}.flex-container[_ngcontent-%COMP%]{height:100%;max-height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-grow[_ngcontent-%COMP%]{background-color:#000;overflow:auto;-webkit-box-flex:1;-ms-flex:1;flex:1}.footer[_ngcontent-%COMP%]{margin-top:.5em;margin-bottom:.5em}.ok-button[_ngcontent-%COMP%]{min-width:100px}"],Uo=function(){function e(e){var n=this;this.store=e,this.flashFirmwareButtonDisbabled$=e.select(Cl.e),this.xtermLog$=e.select(Cl.t),this.xtermLogSubscription=this.xtermLog$.subscribe(function(){n.divElement&&n.divElement.nativeElement&&setTimeout(function(){n.divElement.nativeElement.scrollTop=n.divElement.nativeElement.scrollHeight})}),this.getAgentVersionInfo$=e.select(Cl.f),this.firmwareOkButtonDisabled$=e.select(Cl.d)}return e.prototype.ngOnDestroy=function(){this.xtermLogSubscription.unsubscribe()},e.prototype.onUpdateFirmware=function(){this.store.dispatch(new Kl.m)},e.prototype.onUpdateFirmwareWithFile=function(){this.arrayBuffer&&this.store.dispatch(new Kl.r(Array.prototype.slice.call(this.arrayBuffer)))},e.prototype.onOkButtonClick=function(){this.store.dispatch(new Kl.o)},e.prototype.changeFile=function(e){var n=e.srcElement.files;if(0===n.length)return void(this.arrayBuffer=null);var t=new FileReader;t.onloadend=function(){this.arrayBuffer=new Uint8Array(t.result)}.bind(this),t.readAsArrayBuffer(n[0])},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),No=['[_nghost-%COMP%]{background-color:#ff0}.wrapper[_ngcontent-%COMP%]{background-color:#000}.xterm-standard[_ngcontent-%COMP%]{color:#fff}.xterm-error[_ngcontent-%COMP%]{color:red}ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding-left:5px}ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:before{content:"$ "}'],Lo=function(){function e(){this.logs=[]}return e}(),Ko=[No],Do=bl["\u0275crt"]({encapsulation:0,styles:Ko,data:{}}),jo=(bl["\u0275ccf"]("xterm",Lo,F,{logs:"logs"},{},[]),[Eo]),Fo=bl["\u0275crt"]({encapsulation:0,styles:jo,data:{}}),Vo=bl["\u0275ccf"]("device-firmware",Uo,B,{},{},[]),Bo=["[_nghost-%COMP%]{width:100%;display:block}.not-found[_ngcontent-%COMP%]{margin-top:30px;font-size:16px;text-align:center}"],$o=["[_nghost-%COMP%]{display:block}.keymap__is-default.fa-star-o[_ngcontent-%COMP%]{cursor:pointer}.keymap__is-default.fa-star-o[_ngcontent-%COMP%]:hover{color:#337ab7}.keymap__remove[_ngcontent-%COMP%]{font-size:.75em;top:8px}.keymap__remove[_ngcontent-%COMP%]:not(.disabled):hover{cursor:pointer;color:#900}.keymap__remove.disabled[_ngcontent-%COMP%]{opacity:.25}.keymap__duplicate[_ngcontent-%COMP%]{font-size:.75em;top:7px;margin-right:15px;position:relative}.keymap__duplicate[_ngcontent-%COMP%]:hover{cursor:pointer;color:#337ab7}.keymap__download[_ngcontent-%COMP%]{top:10px;font-size:.8em;position:relative;margin-right:10px}.keymap__download[_ngcontent-%COMP%]:hover{cursor:pointer;color:#337ab7}.pane-title[_ngcontent-%COMP%]{margin-bottom:1em}.pane-title__abbrev[_ngcontent-%COMP%], .pane-title__name[_ngcontent-%COMP%]{border:none;border-bottom:2px dotted #999;padding:0;margin:0 .25rem}.pane-title__abbrev[_ngcontent-%COMP%]:focus, .pane-title__name[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 1px #ccc,0 0 5px 0 #ccc;border-color:transparent}.pane-title__name[_ngcontent-%COMP%]{width:290px;text-overflow:ellipsis}.pane-title__abbrev[_ngcontent-%COMP%]{width:90px;text-align:center}"],Ho=t("5II9"),Go=function(){function e(e){this.store=e,this.undoableNotification$=this.store.select(Cl.m)}return e.prototype.onUndoLastNotification=function(e){this.store.dispatch(new Ho.i(e))},e.prototype.onDismissLastNotification=function(){this.store.dispatch(new Ho.d)},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),Wo=[".alert[_ngcontent-%COMP%]{padding:5px 10px 5px 5px;margin-bottom:.25em;margin-top:-2em}.alert[_ngcontent-%COMP%] .close[_ngcontent-%COMP%]{right:-5px}.alert[_ngcontent-%COMP%] .undo-button[_ngcontent-%COMP%]{cursor:pointer}"],zo=function(){function e(){this.close=new bl.EventEmitter,this.undo=new bl.EventEmitter}return Object.defineProperty(e.prototype,"slideInOut",{get:function(){return this.notification?"in":"out"},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){if(e.notification){var n=e.notification.currentValue;n&&(this.text=n.message,this.undoable=!!n.extra)}},e.prototype.clickOnClose=function(){this.close.emit()},e.prototype.clickOnUndo=function(){this.undo.emit(this.notification.extra)},e}(),qo=[Wo],Yo=bl["\u0275crt"]({encapsulation:0,styles:qo,data:{animation:[{type:7,name:"slideInOut",definitions:[{type:0,name:"in",styles:{type:6,styles:{transform:"translate3d(0, 0, 0)"},offset:null},options:void 0},{type:0,name:"out",styles:{type:6,styles:{transform:"translate3d(200%, 0, 0)"},offset:null},options:void 0},{type:1,expr:"in => out",animation:{type:4,styles:null,timings:"400ms ease-in-out"},options:null},{type:1,expr:"out => in",animation:{type:4,styles:null,timings:"400ms ease-in-out"},options:null}],options:{}}]}}),Jo=(bl["\u0275ccf"]("undoable-notifier",zo,G,{notification:"notification"},{close:"close",undo:"undo"},[]),[]),Xo=bl["\u0275crt"]({encapsulation:2,styles:Jo,data:{}}),Qo=(bl["\u0275ccf"]("uhk-header",Go,z,{},{},["*"]),t("NfUz")),Zo=t("n4Nn"),ei='Delete keymap',ni=function(){function e(e,n){this.store=e,this.renderer=n,this.downloadClick=new bl.EventEmitter,this.trashTitle=ei}return e.prototype.ngOnChanges=function(e){e.keymap&&(this.setKeymapTitle(),this.setName(),this.setAbbreviation()),e.deletable&&this.setTrashTitle()},e.prototype.windowResize=function(){this.calculateHeaderTextWidth(this.keymap.name)},e.prototype.setDefault=function(){this.keymap.isDefault||this.store.dispatch(Qo.a.setDefault(this.keymap.abbreviation))},e.prototype.removeKeymap=function(){this.deletable&&this.store.dispatch(Qo.a.removeKeymap(this.keymap.abbreviation))},e.prototype.duplicateKeymap=function(){this.store.dispatch(Qo.a.duplicateKeymap(this.keymap))},e.prototype.editKeymapName=function(e){if(!Zo.b(e))return void this.setName();this.store.dispatch(Qo.a.editKeymapName(this.keymap.abbreviation,e))},e.prototype.editKeymapAbbr=function(e){var n=new RegExp(/^[a-zA-Z\d]+$/g);if(e.length<1||e.length>3||!n.test(e))return void this.setAbbreviation();e=e.toUpperCase(),this.store.dispatch(Qo.a.editKeymapAbbr(this.keymap.name,this.keymap.abbreviation,e))},e.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."},e.prototype.setTrashTitle=function(){this.trashTitle=this.deletable?ei:'The last keymap cannot be deleted.'},e.prototype.onDownloadIconClick=function(){this.downloadClick.emit()},e.prototype.calculateHeaderTextWidth=function(e){var n=this.keymapName.nativeElement,t=n.parentElement.offsetWidth-530,l=Zo.a(window.getComputedStyle(n),e);this.renderer.setStyle(n,"width",Math.min(t,l)+"px")},e.prototype.setName=function(){this.renderer.setProperty(this.keymapName.nativeElement,"value",this.keymap.name),this.calculateHeaderTextWidth(this.keymap.name)},e.prototype.setAbbreviation=function(){this.renderer.setProperty(this.keymapAbbr.nativeElement,"value",this.keymap.abbreviation)},e.ctorParameters=function(){return[{type:Tl.m},{type:bl.Renderer2}]},e}(),ti=function(){function e(e,n){this.elementRef=e,this.renderer=n}return e.prototype.onFocus=function(){this.originalValue=this.elementRef.nativeElement.value},e.prototype.onEscape=function(){this.renderer.setElementProperty(this.elementRef.nativeElement,"value",this.originalValue),this.renderer.invokeElementMethod(this.elementRef.nativeElement,"blur")},e.ctorParameters=function(){return[{type:bl.ElementRef},{type:bl.Renderer}]},e}(),li=[$o],oi=bl["\u0275crt"]({encapsulation:0,styles:li,data:{}}),ii=(bl["\u0275ccf"]("keymap-header",ni,Y,{keymap:"keymap",deletable:"deletable"},{downloadClick:"downloadClick"},[]),["[_nghost-%COMP%]{width:100%;display:block}.space[_nghost-%COMP%]{margin-bottom:405px}keyboard-slider[_ngcontent-%COMP%]{display:block;position:relative;height:500px;margin-top:30px}.tooltip[_ngcontent-%COMP%]{position:fixed;-webkit-transform:translate(-50%,-6px);transform:translate(-50%,-6px);display:none}.tooltip-inner[_ngcontent-%COMP%]{background:#fff;color:#000;box-shadow:0 1px 5px #000;text-align:left}.tooltip-inner[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-bottom:2px}.tooltip-inner[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-of-type{margin-bottom:0}.tooltip.bottom[_ngcontent-%COMP%] .tooltip-arrow[_ngcontent-%COMP%]{border-bottom-color:#fff;top:1px}.tooltip.in[_ngcontent-%COMP%]{display:block;opacity:1}"]),ai=["[_nghost-%COMP%]{display:block}.disabled[_nghost-%COMP%] button[_ngcontent-%COMP%]{cursor:no-drop;background:hsla(0,0%,80%,.43);pointer-events:none}.disabled[_nghost-%COMP%] button.btn-primary[_ngcontent-%COMP%]{background:#7c7c7c;border-color:#7c7c7c}.uhk__layer-switcher--wrapper[_ngcontent-%COMP%]{position:relative;margin-bottom:2rem}.uhk__layer-switcher--wrapper[_ngcontent-%COMP%]:before{content:attr(data-title);display:inline-block;position:absolute;bottom:.55em;right:100%;font-size:18px;padding-right:.45em;margin:0}"],ci=function(){function e(){this.select=new bl.EventEmitter,this.buttons=["Base","Mod","Fn","Mouse"],this.current=0}return e.prototype.selectLayer=function(e){this.current!==e&&(this.select.emit({oldIndex:this.current,index:e}),this.current=e)},e.ctorParameters=function(){return[]},e}(),ui=[ai],ri=bl["\u0275crt"]({encapsulation:0,styles:ui,data:{}}),si=(bl["\u0275ccf"]("layers",ci,Q,{current:"current"},{select:"select"},[]),["svg-keyboard[_ngcontent-%COMP%]{width:95%;max-width:1400px;position:absolute;left:0;-webkit-transform:translateX(-101%);transform:translateX(-101%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]),di=["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;position:relative}"],pi=["[_nghost-%COMP%]{position:relative}"],yi=["[_nghost-%COMP%]{cursor:pointer;outline:none}[_nghost-%COMP%] text{dominant-baseline:central}[_nghost-%COMP%]:hover{fill:#494949}"],fi=[".disabled[_ngcontent-%COMP%]{fill:gray}text[_ngcontent-%COMP%]{font-size:100px}"],mi=function(){function e(){}return e.prototype.ngOnInit=function(){this.svgWidth=this.width/3,this.svgHeight=this.height/3},e.ctorParameters=function(){return[]},e}(),ki=[],hi=bl["\u0275crt"]({encapsulation:2,styles:ki,data:{}}),gi=(bl["\u0275ccf"]("g[svg-single-icon-key]",mi,ee,{width:"width",height:"height",icon:"icon"},{},[]),function(){function e(){}return e.prototype.ngOnInit=function(){this.textY=this.height/2,this.spanX=this.width/2},e.ctorParameters=function(){return[]},e}()),bi=[],vi=bl["\u0275crt"]({encapsulation:2,styles:bi,data:{}}),Ai=(bl["\u0275ccf"]("g[svg-one-line-text-key]",gi,te,{height:"height",width:"width",text:"text"},{},[]),function(){function e(){this.spanYs=[]}return e.prototype.ngOnInit=function(){this.textY=this.height/2,this.spanX=this.width/2;for(var e=0;e"]),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(100,["ISO key","|"]),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"])},e.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")},e.prototype.initNameToFileNames=function(){this.nameToFileName=new Map,this.nameToFileName.set("toggle","icon-kbd__fn--toggle"),this.nameToFileName.set("switch-keymap","icon-kbd__mod--switch-keymap"),this.nameToFileName.set("macro","icon-icon__macro"),this.nameToFileName.set("shift","icon-kbd__default--modifier-shift"),this.nameToFileName.set("option","icon-kbd__default--modifier-option"),this.nameToFileName.set("command","icon-kbd__default--modifier-command"),this.nameToFileName.set("mouse","icon-kbd__mouse"),this.nameToFileName.set("left-arrow","icon-kbd__mod--arrow-left"),this.nameToFileName.set("right-arrow","icon-kbd__mod--arrow-right"),this.nameToFileName.set("down-arrow","icon-kbd__mod--arrow-down"),this.nameToFileName.set("up-arrow","icon-kbd__mod--arrow-up"),this.nameToFileName.set("scroll-left","icon-kbd__mouse--scroll-left"),this.nameToFileName.set("scroll-right","icon-kbd__mouse--scroll-right"),this.nameToFileName.set("scroll-down","icon-kbd__mouse--scroll-down"),this.nameToFileName.set("scroll-up","icon-kbd__mouse--scroll-up")},e.ctorParameters=function(){return[]},e}(),_i=function(){function e(){this.width=0,this.height=0,this.x=0,this.y=0,this.disabled=!0}return e}(),Oi=function(){function e(e){this.mapper=e,this.modifierIconNames={},this.textContainer=new _i,this.modifierContainer=new _i,this.shift=new _i,this.control=new _i,this.option=new _i,this.command=new _i}return e.prototype.ngOnInit=function(){this.viewBox=[0,0,this.width,this.height].join(" "),this.modifierIconNames.shift=this.mapper.getIcon("shift"),this.modifierIconNames.option=this.mapper.getIcon("option"),this.modifierIconNames.command=this.mapper.getIcon("command");var e=this.width<1.8*this.height,n=this.height/this.width;if(e){var t=this.width/4,l=this.height,o=.8,i=o*n*t,a=o*l;this.modifierContainer.width=this.width,this.modifierContainer.height=this.height/5,this.modifierContainer.y=this.height-this.modifierContainer.height,this.shift.width=i,this.shift.height=a,this.shift.x=(t-i)/2,this.shift.y=(l-a)/2,this.control.width=i,this.control.height=a,this.control.x=this.shift.x+t,this.control.y=this.shift.y,this.option.width=i,this.option.height=a,this.option.x=this.control.x+t,this.option.y=this.shift.y,this.command.width=i,this.command.height=a,this.command.x=this.option.x+t,this.command.y=this.shift.y,this.textContainer.y=-this.modifierContainer.height/2}else{this.modifierContainer.width=this.width/4,this.modifierContainer.height=this.height,this.modifierContainer.x=this.width-this.modifierContainer.width;var c=Math.min(this.modifierContainer.width/2,this.modifierContainer.height/2),o=.8,i=o*this.width*(c/this.modifierContainer.width),a=o*this.height*(c/this.modifierContainer.height);this.shift.width=i,this.shift.height=a,this.shift.x=this.width/4-i/2,this.shift.y=this.height/4-a/2,this.control.width=i,this.control.height=a,this.control.x=this.shift.x+this.width/2,this.control.y=this.shift.y,this.option.width=i,this.option.height=a,this.option.x=this.shift.x,this.option.y=this.shift.y+this.height/2,this.command.width=i,this.command.height=a,this.command.x=this.option.x+this.width/2,this.command.y=this.option.y,this.textContainer.x=-this.modifierContainer.width/2}this.textContainer.width=this.width,this.textContainer.height=this.height},e.prototype.ngOnChanges=function(){if(this.keystrokeAction.hasScancode()){var e=this.keystrokeAction.scancode;if(this.labelSource=this.mapper.scanCodeToSvgImagePath(e,this.keystrokeAction.type),this.labelSource)this.labelType="icon";else{var n=void 0;n=this.mapper.scanCodeToText(e,this.keystrokeAction.type),n&&(1===n.length?(this.labelSource=n[0],this.labelType="one-line"):(this.labelSource=n,this.labelType="two-line"))}}else this.labelType="empty";this.shift.disabled=!this.keystrokeAction.isActive(Ci.KeyModifiers.leftShift|Ci.KeyModifiers.rightShift),this.control.disabled=!this.keystrokeAction.isActive(Ci.KeyModifiers.leftCtrl|Ci.KeyModifiers.rightCtrl),this.option.disabled=!this.keystrokeAction.isActive(Ci.KeyModifiers.leftAlt|Ci.KeyModifiers.rightAlt),this.command.disabled=!this.keystrokeAction.isActive(Ci.KeyModifiers.leftGui|Ci.KeyModifiers.rightGui)},e.ctorParameters=function(){return[{type:wi}]},e}(),xi=[fi],Si=bl["\u0275crt"]({encapsulation:0,styles:xi,data:{}}),Pi=(bl["\u0275ccf"]("g[svg-keystroke-key]",Oi,se,{height:"height",width:"width",keystrokeAction:"keystrokeAction"},{},[]),function(){function e(){}return e.prototype.ngOnInit=function(){this.useWidth=this.width/3,this.useHeight=this.height/3,this.useX=this.width>2*this.height?.6*this.width:this.width/3,this.useY=this.width>2*this.height?this.height/3:this.height/2,this.textY=this.width>2*this.height?this.height/2:this.height/3,this.textAnchor=this.width>2*this.height?"end":"middle",this.spanX=this.width>2*this.height?.6*this.width:this.width/2},e.ctorParameters=function(){return[]},e}()),Ri=[],Ii=bl["\u0275crt"]({encapsulation:2,styles:Ri,data:{}}),Ei=(bl["\u0275ccf"]("g[svg-text-icon-key]",Pi,pe,{width:"width",height:"height",text:"text",icon:"icon"},{},[]),function(){function e(){}return e.prototype.ngOnInit=function(){this.useWidth=this.width/3,this.useHeight=this.height/3,this.useX=this.width>2*this.height?0:this.width/3,this.useY=this.width>2*this.height?this.height/3:this.height/10,this.textY=this.width>2*this.height?this.height/2:.6*this.height,this.spanX=this.width>2*this.height?.6*this.width:this.width/2},e.ctorParameters=function(){return[]},e}()),Ui=[],Ni=bl["\u0275crt"]({encapsulation:2,styles:Ui,data:{}}),Li=(bl["\u0275ccf"]("g[svg-icon-text-key]",Ei,fe,{width:"width",height:"height",icon:"icon",text:"text"},{},[]),function(){function e(e){this.mapperService=e}return e.prototype.ngOnInit=function(){this.icon=this.mapperService.getIcon("switch-keymap"),this.useWidth=this.width/4,this.useHeight=this.height/4,this.useX=3*this.width/8,this.useY=this.height/5,this.textY=2*this.height/3,this.spanX=this.width/2},e.ctorParameters=function(){return[{type:wi}]},e}()),Ki=[],Di=bl["\u0275crt"]({encapsulation:2,styles:Ki,data:{}}),ji=(bl["\u0275ccf"]("g[svg-switch-keymap-key]",Li,ke,{width:"width",height:"height",abbreviation:"abbreviation"},{},[]),function(){function e(e){this.mapper=e,this.icon=this.mapper.getIcon("mouse")}return e.prototype.ngOnInit=function(){},e.ctorParameters=function(){return[{type:wi}]},e}()),Fi=[],Vi=bl["\u0275crt"]({encapsulation:2,styles:Fi,data:{}}),Bi=(bl["\u0275ccf"]("g[svg-mouse-click-key]",ji,ge,{button:"button"},{},[]),function(){function e(e){this.mapper=e}return e.prototype.ngOnChanges=function(){this.mouseIcon=this.mapper.getIcon("mouse"),this.directionIcon=this.mapper.getIcon(this.direction+"-arrow")},e.ctorParameters=function(){return[{type:wi}]},e}()),$i=[],Hi=bl["\u0275crt"]({encapsulation:2,styles:$i,data:{}}),Gi=(bl["\u0275ccf"]("g[svg-mouse-move-key]",Bi,ve,{direction:"direction"},{},[]),function(){function e(e){this.mapper=e}return e.prototype.ngOnChanges=function(){this.mouseIcon=this.mapper.getIcon("mouse"),this.directionIcon=this.mapper.getIcon("scroll-"+this.direction)},e.ctorParameters=function(){return[{type:wi}]},e}()),Wi=[],zi=bl["\u0275crt"]({encapsulation:2,styles:Wi,data:{}}),qi=(bl["\u0275ccf"]("g[svg-mouse-scroll-key]",Gi,Te,{direction:"direction"},{},[]),function(){function e(e){this.mapper=e,this.icon=this.mapper.getIcon("mouse")}return e.prototype.ngOnChanges=function(){this.sign=this.plus?"+":"-"},e.ctorParameters=function(){return[{type:wi}]},e}()),Yi=[],Ji=bl["\u0275crt"]({encapsulation:2,styles:Yi,data:{}}),Xi=(bl["\u0275ccf"]("g[svg-mouse-speed-key]",qi,Ce,{plus:"plus"},{},[]),function(){function e(){}return e.prototype.ngOnChanges=function(){switch(this.mouseAction.mouseAction){case Ci.MouseActionParam.leftClick:this.type="click",this.param="Left";break;case Ci.MouseActionParam.rightClick:this.type="click",this.param="Right";break;case Ci.MouseActionParam.middleClick:this.type="click",this.param="Middle";break;case Ci.MouseActionParam.scrollDown:this.type="scroll",this.param="down";break;case Ci.MouseActionParam.scrollLeft:this.type="scroll",this.param="left";break;case Ci.MouseActionParam.scrollRight:this.type="scroll",this.param="right";break;case Ci.MouseActionParam.scrollUp:this.type="scroll",this.param="up";break;case Ci.MouseActionParam.moveDown:this.type="move",this.param="down";break;case Ci.MouseActionParam.moveLeft:this.type="move",this.param="left";break;case Ci.MouseActionParam.moveRight:this.type="move",this.param="right";break;case Ci.MouseActionParam.moveUp:this.type="move",this.param="up";break;case Ci.MouseActionParam.accelerate:this.type="speed",this.param=!0;break;case Ci.MouseActionParam.decelerate:this.type="speed",this.param=!1}},e.ctorParameters=function(){return[]},e}()),Qi=[],Zi=bl["\u0275crt"]({encapsulation:2,styles:Qi,data:{}}),ea=(bl["\u0275ccf"]("g[svg-mouse-key]",Xi,Pe,{mouseAction:"mouseAction"},{},[]),function(){function e(){this.leftModifiers=new Map,this.rightModifiers=new Map,this.mapping=new Map}return e.prototype.getMap=function(e){return this.mapping.get(e)},e.prototype.hasMap=function(e){return this.mapping.has(e)},e.prototype.setModifier=function(e,n){return e?this.leftModifiers.set(n,!0):this.rightModifiers.set(n,!0)},e.prototype.getModifiers=function(e){return e?this.reMap(this.leftModifiers):this.reMap(this.rightModifiers)},e.prototype.initModifiers=function(){this.leftModifiers.set(16,!1),this.leftModifiers.set(17,!1),this.leftModifiers.set(18,!1),this.leftModifiers.set(91,!1),this.rightModifiers.set(16,!1),this.rightModifiers.set(17,!1),this.rightModifiers.set(18,!1),this.rightModifiers.set(91,!1)},e.prototype.populateMapping=function(){this.mapping.set(8,42),this.mapping.set(9,43),this.mapping.set(13,40),this.mapping.set(19,72),this.mapping.set(20,57),this.mapping.set(27,41),this.mapping.set(32,44),this.mapping.set(33,75),this.mapping.set(34,78),this.mapping.set(35,77),this.mapping.set(36,74),this.mapping.set(37,80),this.mapping.set(38,82),this.mapping.set(39,79),this.mapping.set(40,81),this.mapping.set(45,73),this.mapping.set(46,76),this.mapping.set(48,39),this.mapping.set(49,30),this.mapping.set(50,31),this.mapping.set(51,32),this.mapping.set(52,33),this.mapping.set(53,34),this.mapping.set(54,35),this.mapping.set(55,36),this.mapping.set(56,37),this.mapping.set(57,38),this.mapping.set(65,4),this.mapping.set(66,5),this.mapping.set(67,6),this.mapping.set(68,7),this.mapping.set(69,8),this.mapping.set(70,9),this.mapping.set(71,10),this.mapping.set(72,11),this.mapping.set(73,12),this.mapping.set(74,13),this.mapping.set(75,14),this.mapping.set(76,15),this.mapping.set(77,16),this.mapping.set(78,17),this.mapping.set(79,18),this.mapping.set(80,19),this.mapping.set(81,20),this.mapping.set(82,21),this.mapping.set(83,22),this.mapping.set(84,23),this.mapping.set(85,24),this.mapping.set(86,25),this.mapping.set(87,26),this.mapping.set(88,27),this.mapping.set(89,28),this.mapping.set(90,29),this.mapping.set(93,118),this.mapping.set(96,98),this.mapping.set(97,89),this.mapping.set(98,90),this.mapping.set(99,91),this.mapping.set(100,92),this.mapping.set(101,93),this.mapping.set(102,94),this.mapping.set(103,95),this.mapping.set(104,96),this.mapping.set(105,97),this.mapping.set(106,85),this.mapping.set(107,87),this.mapping.set(109,86),this.mapping.set(110,99),this.mapping.set(111,84),this.mapping.set(112,58),this.mapping.set(113,59),this.mapping.set(114,60),this.mapping.set(115,61),this.mapping.set(116,62),this.mapping.set(117,63),this.mapping.set(118,64),this.mapping.set(119,65),this.mapping.set(120,66),this.mapping.set(121,67),this.mapping.set(122,68),this.mapping.set(123,69),this.mapping.set(144,83),this.mapping.set(145,71),this.mapping.set(186,51),this.mapping.set(187,46),this.mapping.set(188,54),this.mapping.set(189,45),this.mapping.set(190,55),this.mapping.set(191,56),this.mapping.set(192,53),this.mapping.set(219,47),this.mapping.set(220,49),this.mapping.set(221,48),this.mapping.set(222,52)},e.prototype.reMap=function(e){return[e.get(16),e.get(17),e.get(91),e.get(18)]},e.ctorParameters=function(){return[]},e}()),na=t("3XxM");!function(e){e[e.KeystrokeKey=0]="KeystrokeKey",e[e.MouseKey=1]="MouseKey",e[e.OneLineText=2]="OneLineText",e[e.TwoLineText=3]="TwoLineText",e[e.TextIcon=4]="TextIcon",e[e.SingleIcon=5]="SingleIcon",e[e.SwitchKeymap=6]="SwitchKeymap",e[e.IconText=7]="IconText"}(gl||(gl={}));var ta,la=function(){function e(e,n,t,l,o){var i=this;this.mapper=e,this.element=t,this.captureService=l,this.renderer=o,this.keyClick=new bl.EventEmitter,this.capture=new bl.EventEmitter,this.enumLabelTypes=gl,this.changeAnimation="inactive",this.subscription=n.let(Object(na.e)()).subscribe(function(e){return i.macros=e}),this.reset(),this.captureService.populateMapping(),this.scanCodePressed=!1}return e.prototype.onClick=function(){this.reset(),this.keyClick.emit(this.element.nativeElement)},e.prototype.onMouseDown=function(e){2!==e.which&&1!==e.button||!this.capturingEnabled||(e.preventDefault(),this.renderer.invokeElementMethod(this.element.nativeElement,"focus"),this.recording?this.reset():(this.recording=!0,this.recordAnimation="active"))},e.prototype.onKeyUp=function(e){this.scanCodePressed?(e.preventDefault(),this.scanCodePressed=!1):this.recording&&(e.preventDefault(),this.saveScanCode())},e.prototype.onKeyDown=function(e){var n=e.keyCode;this.recording&&(e.preventDefault(),this.captureService.hasMap(n)?(this.saveScanCode(this.captureService.getMap(n)),this.scanCodePressed=!0):this.captureService.setModifier(1===e.location,n))},e.prototype.onFocusOut=function(){this.reset()},e.prototype.ngOnInit=function(){this.setLabels()},e.prototype.ngOnChanges=function(e){e.keyAction&&(this.setLabels(),this.keybindAnimationEnabled&&(this.changeAnimation="active"))},e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},e.prototype.onChangeAnimationDone=function(){this.changeAnimation="inactive"},e.prototype.onRecordingAnimationDone=function(){this.recording&&"inactive"===this.recordAnimation?this.recordAnimation="active":this.recordAnimation="inactive"},e.prototype.reset=function(){this.recording=!1,this.changeAnimation="inactive",this.captureService.initModifiers()},e.prototype.saveScanCode=function(e){void 0===e&&(e=0),this.recording=!1,this.changeAnimation="inactive";var n=this.captureService.getModifiers(!0),t=this.captureService.getModifiers(!1);this.capture.emit({code:e,left:n,right:t}),this.captureService.initModifiers()},e.prototype.setLabels=function(){if(!this.keyAction)return this.labelSource=void 0,void(this.labelType=gl.OneLineText);if(this.labelType=gl.OneLineText,this.keyAction instanceof Ci.KeystrokeAction){var e=this.keyAction,n=void 0;if(!e.hasActiveModifier()&&e.hasScancode()){var t=e.scancode;n=this.mapper.scanCodeToText(t,e.type),this.mapper.hasScancodeIcon(t,e.type)?(this.labelSource=this.mapper.scanCodeToSvgImagePath(t,e.type),this.labelType=gl.SingleIcon):void 0!==n&&(1===n.length?(this.labelSource=n[0],this.labelType=gl.OneLineText):(this.labelSource=n,this.labelType=gl.TwoLineText))}else if(e.hasOnlyOneActiveModifier()&&!e.hasScancode()){switch(n=[],e.modifierMask){case Ci.KeyModifiers.leftCtrl:case Ci.KeyModifiers.rightCtrl:n.push("Ctrl");break;case Ci.KeyModifiers.leftShift:case Ci.KeyModifiers.rightShift:n.push("Shift");break;case Ci.KeyModifiers.leftAlt:case Ci.KeyModifiers.rightAlt:n.push("Alt");break;case Ci.KeyModifiers.leftGui:case Ci.KeyModifiers.rightGui:n.push("Super");break;default:n.push("Undefined")}this.labelSource=n}else this.labelType=gl.KeystrokeKey,this.labelSource=this.keyAction}else if(this.keyAction instanceof Ci.SwitchLayerAction){var e=this.keyAction,n=void 0;switch(e.layer){case Ci.LayerName.mod:n="Mod";break;case Ci.LayerName.fn:n="Fn";break;case Ci.LayerName.mouse:n="Mouse"}e.isLayerToggleable?(this.labelType=gl.TextIcon,this.labelSource={text:n,icon:this.mapper.getIcon("toggle")}):(this.labelType=gl.OneLineText,this.labelSource=n)}else if(this.keyAction instanceof Ci.SwitchKeymapAction){var e=this.keyAction;this.labelType=gl.SwitchKeymap,this.labelSource=e.keymapAbbreviation}else if(this.keyAction instanceof Ci.PlayMacroAction){var l=this.keyAction,o=this.macros.find(function(e){return e.id===l.macroId});this.labelType=gl.IconText,this.labelSource={icon:this.mapper.getIcon("macro"),text:o.name}}else this.keyAction instanceof Ci.MouseAction?(this.labelType=gl.MouseKey,this.labelSource=this.keyAction):this.labelSource=void 0},e.ctorParameters=function(){return[{type:wi},{type:Tl.m},{type:bl.ElementRef},{type:ea},{type:bl.Renderer}]},e}(),oa=[yi],ia=bl["\u0275crt"]({encapsulation:0,styles:oa,data:{animation:[{type:7,name:"change",definitions:[{type:1,expr:"inactive => active",animation:[{type:6,styles:{fill:"#fff"},offset:null},{type:3,steps:[{type:4,styles:{type:6,styles:{fill:"#333"},offset:null},timings:"1s ease-out"}],options:null}],options:null}],options:{}},{type:7,name:"active",definitions:[{type:0,name:"1",styles:{type:6,styles:{fill:"#4099e5"},offset:null},options:void 0},{type:1,expr:"1 => *",animation:{type:4,styles:null,timings:"200ms"},options:null},{type:1,expr:"* => 1",animation:{type:4,styles:null,timings:"0ms"},options:null}],options:{}},{type:7,name:"recording",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{fill:"rgba(204, 0, 0, 1)"},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{fill:"rgba(204, 0, 0, 0.6)"},offset:null},options:void 0},{type:1,expr:"inactive <=> active",animation:{type:4,styles:null,timings:"600ms ease-in-out"},options:null}],options:{}}]}}),aa=(bl["\u0275ccf"]("g[svg-keyboard-key]",la,Be,{id:"id",rx:"rx",ry:"ry",height:"height",width:"width",keyAction:"keyAction",keybindAnimationEnabled:"keybindAnimationEnabled",capturingEnabled:"capturingEnabled",active:"active"},{keyClick:"keyClick",capture:"capture"},[]),function(){function e(e){this.sanitizer=e}return e.prototype.transform=function(e){return this.sanitizer.bypassSecurityTrustStyle(e)},e.ctorParameters=function(){return[{type:lo.c}]},e}()),ca=function(){function e(){this.keyClick=new bl.EventEmitter,this.keyHover=new bl.EventEmitter,this.capture=new bl.EventEmitter,this.keyboardKeys=[]}return e.prototype.onKeyClick=function(e,n){this.keyClick.emit({index:e,keyTarget:n})},e.prototype.onKeyHover=function(e,n,t){this.keyHover.emit({index:e,event:n,over:t})},e.prototype.onCapture=function(e,n){this.capture.emit({index:e,captured:n})},e.ctorParameters=function(){return[]},e}(),ua=[pi],ra=bl["\u0275crt"]({encapsulation:0,styles:ua,data:{}}),sa=(bl["\u0275ccf"]("g[svg-module]",ca,ze,{coverages:"coverages",keyboardKeys:"keyboardKeys",keyActions:"keyActions",selectedKey:"selectedKey",selected:"selected",keybindAnimationEnabled:"keybindAnimationEnabled",capturingEnabled:"capturingEnabled"},{keyClick:"keyClick",keyHover:"keyHover",capture:"capture"},[]),function(){function e(e){var n,t=e.rect.map(function(e){return e.$});this.keyboardKeys=[];for(var l=0;l *",animation:{type:4,styles:null,timings:500},options:null}],options:{}}]}}),ka=(bl["\u0275ccf"]("svg-keyboard",ya,Je,{moduleConfig:"moduleConfig",keybindAnimationEnabled:"keybindAnimationEnabled",capturingEnabled:"capturingEnabled",selectedKey:"selectedKey",selected:"selected",halvesSplit:"halvesSplit",keyboardLayout:"keyboardLayout"},{keyClick:"keyClick",keyHover:"keyHover",capture:"capture"},[]),function(){function e(){this.keyboardLayout=da.a.ANSI,this.keyClick=new bl.EventEmitter,this.keyHover=new bl.EventEmitter,this.capture=new bl.EventEmitter}return e.prototype.ngOnChanges=function(e){e.layers&&(this.layerAnimationState=this.layers.map(function(){return"initOut"}),this.layerAnimationState[this.currentLayer]="init");var n=e.currentLayer;if(n)if(e.layers);else{var t=n.isFirstChange()?n.currentValue:n.previousValue;this.onLayerChange(t,n.currentValue)}},e.prototype.trackKeyboard=function(e){return e},e.prototype.onLayerChange=function(e,n){n>e?(this.layerAnimationState[e]="leftOut",this.layerAnimationState[n]="leftIn"):(this.layerAnimationState[e]="rightOut",this.layerAnimationState[n]="rightIn")},e}()),ha=[si],ga=bl["\u0275crt"]({encapsulation:0,styles:ha,data:{animation:[{type:7,name:"layerState",definitions:[{type:0,name:"init",styles:{type:6,styles:{transform:"translateX(-50%)",left:"50%"},offset:null},options:void 0},{type:0,name:"initOut",styles:{type:6,styles:{transform:"translateX(0)",left:"101%"},offset:null},options:void 0},{type:0,name:"leftIn, rightIn",styles:{type:6,styles:{transform:"translateX(-50%)",left:"50%"},offset:null},options:void 0},{type:0,name:"leftOut",styles:{type:6,styles:{transform:"translateX(-101%)",left:"0"},offset:null},options:void 0},{type:0,name:"rightOut",styles:{type:6,styles:{transform:"translateX(0)",left:"101%"},offset:null},options:void 0},{type:1,expr:"initOut => leftIn, leftOut => leftIn, rightOut => leftIn",animation:[{type:4,styles:{type:5,steps:[{type:6,styles:{transform:"translateX(0%)",left:"101%",offset:0},offset:null},{type:6,styles:{transform:"translateX(-50%)",left:"50%",offset:1},offset:null}]},timings:"400ms ease-out"}],options:null},{type:1,expr:"init => leftOut, leftIn => leftOut, rightIn => leftOut",animation:[{type:4,styles:{type:5,steps:[{type:6,styles:{transform:"translateX(-50%)",left:"50%",offset:0},offset:null},{type:6,styles:{transform:"translateX(-101%)",left:"0%",offset:1},offset:null}]},timings:"400ms ease-out"}],options:null},{type:1,expr:"* => rightIn",animation:[{type:4,styles:{type:5,steps:[{type:6,styles:{transform:"translateX(-101%)",left:"0%",offset:0},offset:null},{type:6,styles:{transform:"translateX(-50%)",left:"50%",offset:1},offset:null}]},timings:"400ms ease-out"}],options:null},{type:1,expr:"* => rightOut",animation:[{type:4,styles:{type:5,steps:[{type:6,styles:{transform:"translateX(-50%)",left:"50%",offset:0},offset:null},{type:6,styles:{transform:"translateX(0%)",left:"101%",offset:1},offset:null}]},timings:"400ms ease-out"}],options:null},{type:1,expr:":leave",animation:[{type:4,styles:{type:5,steps:[{type:6,styles:{opacity:1,offset:0},offset:null},{type:6,styles:{opacity:0,offset:1},offset:null}]},timings:"2000ms ease-out"}],options:null}],options:{}}]}}),ba=(bl["\u0275ccf"]("keyboard-slider",ka,Ze,{layers:"layers",currentLayer:"currentLayer",keybindAnimationEnabled:"keybindAnimationEnabled",capturingEnabled:"capturingEnabled",halvesSplit:"halvesSplit",selectedKey:"selectedKey",keyboardLayout:"keyboardLayout"},{keyClick:"keyClick",keyHover:"keyHover",capture:"capture"},[]),['.popover[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0;max-width:568px;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popover.leftArrow[_ngcontent-%COMP%] .arrowCustom[_ngcontent-%COMP%]{-webkit-transform:none;transform:none;left:22px}.popover.rightArrow[_ngcontent-%COMP%] .arrowCustom[_ngcontent-%COMP%]{-webkit-transform:none;transform:none;right:22px;left:auto}.nav-tabs[_ngcontent-%COMP%] > li[_ngcontent-%COMP%], .popover[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{overflow:hidden}.arrowCustom[_ngcontent-%COMP%]{position:absolute;top:-16px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:41px;height:16px}.arrowCustom[_ngcontent-%COMP%]:before{border-left:21px solid transparent;border-right:21px solid transparent;border-bottom:17px solid rgba(0,0,0,.2);top:-1px}.arrowCustom[_ngcontent-%COMP%]:after, .arrowCustom[_ngcontent-%COMP%]:before{content:"";width:0;height:0;display:block;position:absolute}.arrowCustom[_ngcontent-%COMP%]:after{border-left:20px solid transparent;border-right:20px solid transparent;border-bottom:16px solid #f7f7f7;top:0}.popover-action[_ngcontent-%COMP%]{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-top:1px solid #ebebeb;border-radius:0 0 5px 5px;text-align:right}.popover-title.menu-tabs[_ngcontent-%COMP%]{padding:.5rem .5rem 0;display:block}.popover-title.menu-tabs[_ngcontent-%COMP%] .nav-tabs[_ngcontent-%COMP%]{position:relative;top:1px;display:-webkit-box;display:-ms-flexbox;display:flex}.popover-title.menu-tabs[_ngcontent-%COMP%] .nav-tabs[_ngcontent-%COMP%] .menu-tabs--item[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer}.popover-title.menu-tabs[_ngcontent-%COMP%] .nav-tabs[_ngcontent-%COMP%] .menu-tabs--item[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-right:.25em}.popover-content[_ngcontent-%COMP%]{padding:10px 24px}.popover-overlay[_ngcontent-%COMP%]{position:fixed;width:100%;height:0;top:0;left:0;z-index:1050;background:transparent;transition:background .2s ease-out,height 0ms linear .2s}.popover-overlay.display[_ngcontent-%COMP%]{height:100%;background:rgba(0,0,0,.2);transition:background .2s ease-out}.select2-item[_ngcontent-%COMP%]{position:relative;font-size:1.5rem}.select2-item.keymap-name--wrapper[_ngcontent-%COMP%]{padding-left:50px}.select2-item[_ngcontent-%COMP%] .layout-segment-code[_ngcontent-%COMP%]{height:2rem;position:absolute;left:0;top:50%;margin-top:-1rem}']),va=["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative}[_nghost-%COMP%] .scancode-options[_ngcontent-%COMP%]{margin-bottom:10px;margin-top:2px}[_nghost-%COMP%] .scancode-options[_ngcontent-%COMP%] > b[_ngcontent-%COMP%]{position:relative;top:2px}[_nghost-%COMP%] .modifier-options[_ngcontent-%COMP%] > b[_ngcontent-%COMP%]{position:relative;top:-9px;margin-right:4px}[_nghost-%COMP%] .modifier-options[_ngcontent-%COMP%] .btn-toolbar[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .long-press-container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:3rem}[_nghost-%COMP%] .long-press-container[_ngcontent-%COMP%] > b[_ngcontent-%COMP%]{margin-right:.6em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}[_nghost-%COMP%] .long-press-container[_ngcontent-%COMP%] .secondary-role[_ngcontent-%COMP%]{width:135px}[_nghost-%COMP%] .long-press-container[_ngcontent-%COMP%] icon[_ngcontent-%COMP%]{margin-left:.6em}[_nghost-%COMP%] .setting-label.disabled[_ngcontent-%COMP%]{color:#999}[_nghost-%COMP%] .disabled-state--text[_ngcontent-%COMP%]{display:none;position:absolute;top:50%;margin-top:-4rem;color:#31708f;padding-right:40px}[_nghost-%COMP%] .disabled-state--text[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{font-size:2.6rem;float:left;padding:1rem 1.5rem 2rem}.disabled[_nghost-%COMP%] .long-press-container[_ngcontent-%COMP%], .disabled[_nghost-%COMP%] .modifier-options[_ngcontent-%COMP%], .disabled[_nghost-%COMP%] .scancode-options[_ngcontent-%COMP%]{visibility:hidden}.disabled[_nghost-%COMP%] .disabled-state--text[_ngcontent-%COMP%]{display:block}"],Aa=t("4D/6"),Ta=t("foYT"),Ma=function(){function e(){this.validAction=new bl.EventEmitter}return e}(),Ca=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),wa=function(e){function n(n){var l=e.call(this)||this;return l.mapper=n,l.scanCodeTemplateResult=function(e){return e.id?e.additional&&e.additional.explanation?jQuery(''+e.text+' '+e.additional.explanation+""):jQuery(''+e.text+""):e.text},l.leftModifiers=["LShift","LCtrl","LSuper","LAlt"],l.rightModifiers=["RShift","RCtrl","RSuper","RAlt"],l.scanCodeGroups=[{id:"0",text:"None"}],l.scanCodeGroups=l.scanCodeGroups.concat(t("1ogb")),l.secondaryRoleGroups=t("0s4M"),l.leftModifierSelects=Array(l.leftModifiers.length).fill(!1),l.rightModifierSelects=Array(l.rightModifiers.length).fill(!1),l.selectedScancodeOption=l.scanCodeGroups[0],l.selectedSecondaryRoleIndex=-1,l.options={templateResult:l.scanCodeTemplateResult,matcher:function(e,n,t){var l=n.toUpperCase().indexOf(e.toUpperCase())>-1;return!l&&t.additional&&t.additional.explanation&&(l=t.additional.explanation.toUpperCase().indexOf(e.toUpperCase())>-1),l}},l}return Ca(n,e),n.prototype.ngOnChanges=function(){this.fromKeyAction(this.defaultKeyAction),this.validAction.emit(this.keyActionValid())},n.prototype.keyActionValid=function(e){return e||(e=this.toKeyAction()),!!e&&(e.scancode>0||e.modifierMask>0)},n.prototype.onKeysCapture=function(e){e.code?this.selectedScancodeOption=this.findScancodeOptionByScancode(e.code,Ci.KeystrokeType.basic):this.selectedScancodeOption=this.scanCodeGroups[0],this.leftModifierSelects=e.left,this.rightModifierSelects=e.right,this.validAction.emit(this.keyActionValid())},n.prototype.fromKeyAction=function(e){if(!(e instanceof Ci.KeystrokeAction))return!1;var n=e;this.selectedScancodeOption=this.findScancodeOptionByScancode(n.scancode||0,n.type);for(var t=this.leftModifiers.length,l=0;l>l&1);for(var l=t;l>l&1)}return void 0!==n.secondaryRoleAction?this.selectedSecondaryRoleIndex=this.mapper.modifierMapper(n.secondaryRoleAction):this.selectedSecondaryRoleIndex=-1,!0},n.prototype.toKeyAction=function(){var e=new Ci.KeystrokeAction,n=this.toScancodeTypePair(this.selectedScancodeOption);e.scancode=n[0],"media"===n[1]?e.type=Ci.KeystrokeType.shortMedia:e.type=Ci.KeystrokeType[n[1]],e.modifierMask=0;for(var t=this.leftModifierSelects.concat(this.rightModifierSelects).map(function(e){return e?1:0}),l=0;l0;){var l=t.shift();if(e(l)){n=l;break}l.children&&t.push.apply(t,l.children)}return n},n.prototype.findScancodeOptionById=function(e){return this.findScancodeOptionBy(function(n){return n.id===e})},n.prototype.findScancodeOptionByScancode=function(e,n){var t=n===Ci.KeystrokeType.shortMedia||n===Ci.KeystrokeType.longMedia?"media":Ci.KeystrokeType[n];return this.findScancodeOptionBy(function(n){var l=n.additional;return!(!l||l.scancode!==e||l.type!==t)||!(l&&void 0!==l.scancode||+n.id!==e)})},n.prototype.toScancodeTypePair=function(e){var n,t;return e.additional?(n=e.additional.scancode,t=e.additional.type||"basic"):t="basic",void 0===n&&(n=+e.id),[n,t]},n.ctorParameters=function(){return[{type:wi}]},n}(Ma),_a=[".link--capture-keystroke[_ngcontent-%COMP%]{padding:7px 0;text-decoration:none;border:0;width:100%}.link--capture-keystroke[_ngcontent-%COMP%]:focus{outline:none}.btn--capture-keystroke[_ngcontent-%COMP%]{display:inline-block;margin:0 0 0 .25rem}.fa-circle[_ngcontent-%COMP%]{color:#c00}"],Oa=function(){function e(e){this.captureService=e,this.isLink=!1,this.captureText="Capture keystroke",this.capture=new bl.EventEmitter,this.record=!1,this.captureService.initModifiers(),this.captureService.populateMapping(),this.scanCodePressed=!1}return e.prototype.onKeyUp=function(e){this.scanCodePressed?(e.preventDefault(),this.scanCodePressed=!1):this.record&&!this.first&&(e.preventDefault(),this.saveScanCode())},e.prototype.onKeyDown=function(e){var n=e.keyCode;this.record?(e.preventDefault(),e.stopPropagation(),this.first=!1,this.captureService.hasMap(n)?(this.saveScanCode(this.captureService.getMap(n)),this.scanCodePressed=!0):this.captureService.setModifier(1===e.location,n)):13===n&&(this.record=!0,this.first=!0)},e.prototype.onFocusOut=function(){this.record=!1,this.reset()},e.prototype.start=function(){this.record=!0},e.prototype.saveScanCode=function(e){this.record=!1;var n=this.captureService.getModifiers(!0),t=this.captureService.getModifiers(!1);this.capture.emit({code:e,left:n,right:t}),this.reset()},e.prototype.reset=function(){this.first=!1,this.captureService.initModifiers()},e.ctorParameters=function(){return[{type:ea}]},e}(),xa=[_a],Sa=bl["\u0275crt"]({encapsulation:0,styles:xa,data:{}}),Pa=(bl["\u0275ccf"]("capture-keystroke-button",Oa,ln,{isLink:"isLink",captureText:"captureText"},{capture:"capture"},[]),[va]),Ra=bl["\u0275crt"]({encapsulation:0,styles:Pa,data:{}}),Ia=(bl["\u0275ccf"]("keypress-tab",wa,rn,{defaultKeyAction:"defaultKeyAction",secondaryRoleEnabled:"secondaryRoleEnabled"},{validAction:"validAction"},[]),["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 -5px}.no-base[_nghost-%COMP%]{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[_nghost-%COMP%] > select[_ngcontent-%COMP%], [_nghost-%COMP%] > span[_ngcontent-%COMP%]{margin:0 5px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}select[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #aaa;border-radius:4px;padding:4px 20px 4px 8px}"]),Ea=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),Ua=function(e){function n(){var n=e.call(this)||this;return n.toggleData=[{id:!1,text:"Activate"},{id:!0,text:"Toggle"}],n.layerData=[{id:0,text:"Mod"},{id:1,text:"Fn"},{id:2,text:"Mouse"}],n.toggle=!1,n.layer=Ci.LayerName.mod,n}return Ea(n,e),n.prototype.ngOnChanges=function(e){e.defaultKeyAction&&this.fromKeyAction(this.defaultKeyAction),e.currentLayer&&(this.isNotBase=this.currentLayer>0),this.validAction.emit(!0)},n.prototype.keyActionValid=function(){return!this.isNotBase},n.prototype.fromKeyAction=function(e){if(!(e instanceof Ci.SwitchLayerAction))return!1;var n=e;return this.toggle=n.isLayerToggleable,this.layer=n.layer,!0},n.prototype.toKeyAction=function(){var e=new Ci.SwitchLayerAction;if(e.isLayerToggleable=this.toggle,e.layer=this.layer,!this.keyActionValid())throw new Error("KeyAction is invalid!");return e},n.prototype.toggleChanged=function(e){this.toggle="true"===e},n.prototype.layerChanged=function(e){this.layer=+e},n.ctorParameters=function(){return[]},n}(Ma),Na=[Ia],La=bl["\u0275crt"]({encapsulation:0,styles:Na,data:{}}),Ka=(bl["\u0275ccf"]("layer-tab",Ua,hn,{defaultKeyAction:"defaultKeyAction",currentLayer:"currentLayer"},{validAction:"validAction"},[]),['[_nghost-%COMP%], .popover-content[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}.popover-content[_nghost-%COMP%]{padding:10px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}[_nghost-%COMP%] .mouse-action[_ngcontent-%COMP%] .nav[_ngcontent-%COMP%]{border-right:1px solid #ccc}[_nghost-%COMP%] .mouse-action[_ngcontent-%COMP%] .nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}[_nghost-%COMP%] .mouse-action[_ngcontent-%COMP%] .nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a.selected[_ngcontent-%COMP%]{font-style:italic}[_nghost-%COMP%] .mouse-action[_ngcontent-%COMP%] .nav[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%] a.selected[_ngcontent-%COMP%]{font-style:normal}[_nghost-%COMP%] .mouse-action[_ngcontent-%COMP%] .nav[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:after{content:"";display:block;position:absolute;width:0;height:0;top:0;right:-4rem;border-color:transparent transparent transparent #337ab7;border-style:solid;border-width:2rem}[_nghost-%COMP%] .help-text--mouse-speed[_ngcontent-%COMP%]{margin-bottom:2rem;font-size:.9em;color:#666}[_nghost-%COMP%] .help-text--mouse-speed[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}[_nghost-%COMP%] .details[_ngcontent-%COMP%] .btn-placeholder[_ngcontent-%COMP%]{visibility:hidden}.mouse__config--speed[_ngcontent-%COMP%] .btn-default[_ngcontent-%COMP%]{font-size:25px;line-height:22px;padding-top:4px;padding-bottom:4px}.mouse__config--speed[_ngcontent-%COMP%] .btn-default[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:13px;display:block;text-align:center}.help-text--mouse-speed.last-help[_ngcontent-%COMP%]{margin-bottom:0;margin-top:2rem}']),Da=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),ja=function(e){function n(){var n=e.call(this)||this;return n.MouseActionParam=Ci.MouseActionParam,n.selectedPageIndex=0,n.pages=["Move","Scroll","Click","Speed"],n}return Da(n,e),n.prototype.ngOnChanges=function(){this.fromKeyAction(this.defaultKeyAction),this.validAction.emit(this.keyActionValid())},n.prototype.keyActionValid=function(){return void 0!==this.mouseActionParam},n.prototype.fromKeyAction=function(e){if(!(e instanceof Ci.MouseAction))return!1;var n=e;switch(this.mouseActionParam=n.mouseAction,n.mouseAction===Ci.MouseActionParam.moveUp&&(this.selectedPageIndex=0),n.mouseAction){case Ci.MouseActionParam.moveDown:case Ci.MouseActionParam.moveUp:case Ci.MouseActionParam.moveLeft:case Ci.MouseActionParam.moveRight:this.selectedPageIndex=0;break;case Ci.MouseActionParam.scrollDown:case Ci.MouseActionParam.scrollUp:case Ci.MouseActionParam.scrollLeft:case Ci.MouseActionParam.scrollRight:this.selectedPageIndex=1;break;case Ci.MouseActionParam.leftClick:case Ci.MouseActionParam.middleClick:case Ci.MouseActionParam.rightClick:this.selectedPageIndex=2;break;case Ci.MouseActionParam.decelerate:case Ci.MouseActionParam.accelerate:this.selectedPageIndex=3;break;default:return!1}return!0},n.prototype.toKeyAction=function(){var e=new Ci.MouseAction;return e.mouseAction=this.mouseActionParam,e},n.prototype.changePage=function(e){if(e<-1||e>3)return void console.error("Invalid index error: "+e);this.selectedPageIndex=e,this.mouseActionParam=void 0,this.validAction.emit(!1)},n.prototype.setMouseActionParam=function(e){this.mouseActionParam=e,this.validAction.emit(!0)},n.ctorParameters=function(){return[]},n}(Ma),Fa=[Ka],Va=bl["\u0275crt"]({encapsulation:0,styles:Fa,data:{}}),Ba=(bl["\u0275ccf"]("mouse-tab",ja,wn,{defaultKeyAction:"defaultKeyAction"},{validAction:"validAction"},[]),["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}[_nghost-%COMP%] > span[_ngcontent-%COMP%]{text-align:center}[_nghost-%COMP%] .macro-selector[_ngcontent-%COMP%]{margin-top:2px}[_nghost-%COMP%] .macro-selector[_ngcontent-%COMP%], [_nghost-%COMP%] .macro-selector[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}[_nghost-%COMP%] .macro-selector[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:7px}[_nghost-%COMP%] .macro-selector[_ngcontent-%COMP%] select2[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1;flex:1}[_nghost-%COMP%] .macro-action-container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:200px;max-height:300px;margin:20px 0;overflow-x:hidden;overflow-y:auto;border-radius:4px;border:1px solid #ddd}[_nghost-%COMP%] .macro-action-container[_ngcontent-%COMP%] .list-group[_ngcontent-%COMP%]{margin-bottom:0;border:0}"]),$a=["[_nghost-%COMP%]{overflow:hidden;display:block}.macro-item[_nghost-%COMP%]:first-of-type .list-group-item[_ngcontent-%COMP%]{border-radius:4px 4px 0 0}.macro-item[_nghost-%COMP%]:last-of-type .list-group-item[_ngcontent-%COMP%]{border-bottom:0}.gu-transit[_nghost-%COMP%]{opacity:.2}.gu-transit[_nghost-%COMP%] .list-group-item[_ngcontent-%COMP%]{background:#f5f5f5}.action--item[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;border:0;border-bottom:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.action--item[_ngcontent-%COMP%] icon[_ngcontent-%COMP%]{margin:0 5px}.action--item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.action--item[_ngcontent-%COMP%]:first-child{border-radius:0}.action--item.is-editing[_ngcontent-%COMP%]{background:#f5f5f5}.action--item--wrap[_ngcontent-%COMP%]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.action--item--wrap.pointer[_ngcontent-%COMP%]:hover{cursor:pointer;color:#337ab7}.action--title[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1}.action--movable[_ngcontent-%COMP%]:hover{cursor:move}.list-group-item[_ngcontent-%COMP%]{margin-bottom:0}.macro-action-editor__container[_ngcontent-%COMP%]{padding-top:0;padding-bottom:0;border-radius:0;border:none;overflow:hidden}"],Ha=function(){function e(e){this.mapper=e,this.save=new bl.EventEmitter,this.cancel=new bl.EventEmitter,this.edit=new bl.EventEmitter,this.delete=new bl.EventEmitter,this.newItem=!1}return e.prototype.ngOnInit=function(){this.updateView(),this.macroAction||(this.editing=!0,this.newItem=!0)},e.prototype.ngOnChanges=function(e){e.macroAction&&this.updateView()},e.prototype.saveEditedAction=function(e){this.macroAction=e,this.editing=!1,this.updateView(),this.save.emit(e)},e.prototype.editAction=function(){if(!this.editable||this.editing)return void this.cancelEdit();this.editing=!0,this.edit.emit()},e.prototype.cancelEdit=function(){this.editing=!1,this.cancel.emit()},e.prototype.deleteAction=function(){this.delete.emit()},e.prototype.updateView=function(){if(this.macroAction)if(this.macroAction instanceof Ci.DelayMacroAction){this.iconName="clock";var e=this.macroAction,n=e.delay>0?e.delay/1e3:0;this.title="Delay of "+n+"s"}else if(this.macroAction instanceof Ci.TextMacroAction){var e=this.macroAction;this.iconName="font",this.title="Write text: "+e.text}else if(this.macroAction instanceof Ci.KeyMacroAction){var e=this.macroAction;this.setKeyActionContent(e)}else if(this.macroAction instanceof Ci.MouseButtonMacroAction){var e=this.macroAction;this.setMouseButtonActionContent(e)}else this.macroAction instanceof Ci.MoveMouseMacroAction||this.macroAction instanceof Ci.ScrollMouseMacroAction?this.setMouseMoveScrollActionContent(this.macroAction):this.title=this.macroAction.constructor.name;else this.title="New macro action"},e.prototype.setKeyActionContent=function(e){if(!e.hasScancode()&&!e.hasModifiers())return void(this.title="Invalid keypress");if(e.isTapAction()?(this.iconName="hand-pointer",this.title="Tap key: "):e.isPressAction()?(this.iconName="hand-rock",this.title="Press key: "):e.isReleaseAction()&&(this.iconName="hand-paper",this.title="Release key: "),e.hasScancode()){var n=(this.mapper.scanCodeToText(e.scancode,e.type)||["Unknown"]).join(" ");n&&(this.title+=n)}if(e.hasModifiers())for(var t=Ci.KeyModifiers.leftCtrl;t<=Ci.KeyModifiers.rightGui;t<<=1)e.isModifierActive(t)&&(this.title+=" "+Ci.KeyModifiers[t])},e.prototype.setMouseMoveScrollActionContent=function(e){var n;e instanceof Ci.MoveMouseMacroAction?(this.iconName="mouse-pointer",this.title="Move pointer",n=this.macroAction):(this.iconName="mouse-pointer",this.title="Scroll",n=this.macroAction);var t;0!==Math.abs(n.x)&&(this.title+=" by "+Math.abs(n.x)+"px "+(n.x>0?"leftward":"rightward"),t=!0),0!==Math.abs(n.y)&&(this.title+=" "+(t?"and":"by")+" "+Math.abs(n.y)+"px "+(n.y>0?"downward":"upward"))},e.prototype.setMouseButtonActionContent=function(e){e.isOnlyClickAction()?(this.iconName="mouse-pointer",this.title="Click mouse button: "):e.isOnlyHoldAction()?(this.iconName="hand-rock",this.title="Hold mouse button: "):e.isOnlyReleaseAction()&&(this.iconName="hand-paper",this.title="Release mouse button: ");var n=["Left","Middle","Right"],t=e.getMouseButtons(),l=[];t.forEach(function(e,t){e&&n[t]&&l.push(n[t])}),this.title+=l.join(", ")},e.ctorParameters=function(){return[{type:wi}]},e}(),Ga=['[_nghost-%COMP%]{display:block;width:100%}.action--editor[_ngcontent-%COMP%]{padding-top:0;padding-bottom:0;border-radius:0;border:0}.nav[_ngcontent-%COMP%]{padding-bottom:1rem}.nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a.selected[_ngcontent-%COMP%]{font-style:italic}.nav[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{cursor:pointer}.nav[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%]{z-index:2}.nav[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%] a.selected[_ngcontent-%COMP%]{font-style:normal}.nav[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:after{content:"";display:block;position:absolute;width:0;height:0;top:0;right:-4rem;border-color:transparent transparent transparent #337ab7;border-style:solid;border-width:2rem}.editor__tab-links[_ngcontent-%COMP%], .editor__tabs[_ngcontent-%COMP%]{padding-top:1rem}.editor__tabs[_ngcontent-%COMP%]{border-left:1px solid #ddd;margin-left:-1.6rem;padding-left:3rem}.editor__actions[_ngcontent-%COMP%]{float:right}.editor__actions-container[_ngcontent-%COMP%]{background:#f5f5f5;border-top:1px solid #ddd;border-bottom:1px solid #ddd;padding:1rem 1.5rem}.flex-button-wrapper[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-button[_ngcontent-%COMP%]{-ms-flex-item-align:end;align-self:flex-end}'],Wa=["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative}.macro__text-input[_ngcontent-%COMP%]{width:100%;min-height:10rem;margin-bottom:1rem}"],za=function(){function e(){var e=this;this.valid=new bl.EventEmitter,this.validate=function(){return e.valid.emit(e.isMacroValid())}}return e}(),qa=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),Ya=function(e){function n(n){var t=e.call(this)||this;return t.renderer=n,t.isMacroValid=function(){return!!t.input.nativeElement.value},t.init=function(){t.macroAction||(t.macroAction=new Ci.TextMacroAction)},t}return qa(n,e),n.prototype.ngOnInit=function(){this.init()},n.prototype.ngAfterViewInit=function(){this.renderer.invokeElementMethod(this.input.nativeElement,"focus")},n.prototype.onTextChange=function(){this.init(),this.macroAction.text=this.input.nativeElement.value},n.ctorParameters=function(){return[{type:bl.Renderer}]},n}(za),Ja=[Wa],Xa=bl["\u0275crt"]({encapsulation:0,styles:Ja,data:{}}),Qa=(bl["\u0275ccf"]("macro-text-tab",Ya,On,{macroAction:"macroAction"},{valid:"valid"},[]),[".macro-key__container[_ngcontent-%COMP%]{padding:0}.macro-key__types[_ngcontent-%COMP%]{margin-left:0;padding:0 0 1rem}.macro-key__action[_ngcontent-%COMP%]{padding-left:3rem;padding-bottom:1rem}.macro-key__action-container[_ngcontent-%COMP%]{margin-top:-1rem;padding-top:1rem;border-left:1px solid #ddd}.fa[_ngcontent-%COMP%]{min-width:14px}"]),Za=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}();!function(e){e[e.Tap=0]="Tap",e[e.Press=1]="Press",e[e.Release=2]="Release"}(ta||(ta={}));var ec,nc=function(e){function n(){var n=null!==e&&e.apply(this,arguments)||this;return n.TabName=ta,n.isMacroValid=function(){var e=n.getKeyMacroAction();return!!e.scancode||!!e.modifierMask},n}return Za(n,e),n.prototype.ngOnInit=function(){this.macroAction||(this.macroAction=new Ci.KeyMacroAction),this.defaultKeyAction=new Ci.KeystrokeAction(this.macroAction),this.selectTab(this.getTabName(this.macroAction))},n.prototype.selectTab=function(e){this.activeTab=e,this.validate()},n.prototype.getTabName=function(e){return e.action?e.action===Ci.MacroKeySubAction.press?ta.Press:e.action===Ci.MacroKeySubAction.release?ta.Release:void 0:ta.Tap},n.prototype.getActionType=function(e){switch(e){case ta.Tap:return Ci.MacroKeySubAction.tap;case ta.Press:return Ci.MacroKeySubAction.press;case ta.Release:return Ci.MacroKeySubAction.release;default:throw new Error("Invalid tab type")}},n.prototype.getKeyMacroAction=function(){var e=Object.assign(new Ci.KeyMacroAction,this.keypressTab.toKeyAction());return e.action=this.getActionType(this.activeTab),e},n}(za),tc=[Ga,Qa],lc=bl["\u0275crt"]({encapsulation:0,styles:tc,data:{}}),oc=(bl["\u0275ccf"]("macro-key-tab",nc,In,{macroAction:"macroAction"},{valid:"valid"},[]),[".macro-mouse__container[_ngcontent-%COMP%]{padding:0}.macro-mouse__types[_ngcontent-%COMP%]{border-right:1px solid #ddd;border-left:0;margin-top:-1rem;margin-left:0;padding:1rem 0}.macro-mouse__actions[_ngcontent-%COMP%]{padding-left:3rem;padding-bottom:1rem}.fa[_ngcontent-%COMP%]{min-width:14px}.form-horizontal[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%]{margin:0 0 .5rem}.form-horizontal[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:inline-block;margin-right:.5rem}.form-horizontal[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]{display:inline-block;width:10ch}"]),ic=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}();!function(e){e[e.Move=0]="Move",e[e.Scroll=1]="Scroll",e[e.Click=2]="Click",e[e.Hold=3]="Hold",e[e.Release=4]="Release"}(ec||(ec={}));var ac,cc=function(e){function n(){var n=e.call(this)||this;return n.TabName=ec,n.isMacroValid=function(){switch(n.macroAction.constructor){case Ci.MoveMouseMacroAction:case Ci.ScrollMouseMacroAction:var e=n.macroAction,t=e.x,l=e.y;return void 0!==t&&null!==t&&void 0!==l&&null!==l&&(0!==t||0!==l)&&t<1e4&&t>-1e4&&l<1e4&&l>-1e4;case Ci.MouseButtonMacroAction:return!!n.macroAction.mouseButtonsMask;default:return!0}},n.buttonLabels=["Left","Middle","Right"],n.selectedButtons=Array(n.buttonLabels.length).fill(!1),n}return ic(n,e),n.prototype.ngOnInit=function(){this.macroAction||(this.macroAction=new Ci.MouseButtonMacroAction,this.macroAction.action=Ci.MacroMouseSubAction.click);var e=this.getTabName(this.macroAction);this.selectTab(e),[ec.Click,ec.Hold,ec.Release].includes(this.activeTab)&&(this.selectedButtons=this.macroAction.getMouseButtons())},n.prototype.ngOnChanges=function(){this.ngOnInit()},n.prototype.selectTab=function(e){if(this.activeTab=e,e!==this.getTabName(this.macroAction)){switch(this.selectedButtons=[],e){case ec.Scroll:this.macroAction=new Ci.ScrollMouseMacroAction;break;case ec.Move:this.macroAction=new Ci.MoveMouseMacroAction;break;default:this.macroAction=new Ci.MouseButtonMacroAction,this.macroAction.action=this.getAction(e)}this.validate()}},n.prototype.setMouseClick=function(e){this.selectedButtons[e]=!this.selectedButtons[e],this.macroAction.setMouseButtons(this.selectedButtons),this.validate()},n.prototype.hasButton=function(e){return this.selectedButtons[e]},n.prototype.getAction=function(e){switch(e){case ec.Click:return Ci.MacroMouseSubAction.click;case ec.Hold:return Ci.MacroMouseSubAction.hold;case ec.Release:return Ci.MacroMouseSubAction.release;default:throw new Error("Invalid tab name: "+ec[e])}},n.prototype.getTabName=function(e){if(e instanceof Ci.MouseButtonMacroAction){if(!e.action||e.isOnlyClickAction())return ec.Click;if(e.isOnlyHoldAction())return ec.Hold;if(e.isOnlyReleaseAction())return ec.Release}else{if(e instanceof Ci.MoveMouseMacroAction)return ec.Move;if(e instanceof Ci.ScrollMouseMacroAction)return ec.Scroll}return ec.Move},n.ctorParameters=function(){return[]},n}(za),uc=[Ga,oc],rc=bl["\u0275crt"]({encapsulation:0,styles:uc,data:{}}),sc=(bl["\u0275ccf"]("macro-mouse-tab",cc,Vn,{macroAction:"macroAction"},{valid:"valid"},[]),["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative}.macro-delay__presets[_ngcontent-%COMP%]{margin-top:1rem}.macro-delay__presets[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:.25rem;margin-bottom:.25rem}.form-group[_ngcontent-%COMP%]{margin-bottom:0}.form-control[_ngcontent-%COMP%]{width:16ch;display:inline-block}"]),dc=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),pc=function(e){function n(){var n=e.call(this)||this;return n.presets=[.1,.5,1,5,10],n.isMacroValid=function(){return 0!==n.macroAction.delay},n}return dc(n,e),Object.defineProperty(n.prototype,"delay",{get:function(){return this._delay},set:function(e){this._delay=e,this.validate()},enumerable:!0,configurable:!0}),n.prototype.ngOnInit=function(){this.macroAction||(this.macroAction=new Ci.DelayMacroAction),this.delay=this.macroAction.delay>0?this.macroAction.delay/1e3:.5},n.prototype.setDelay=function(e){this._delay=e,this.macroAction.delay=1e3*this._delay,this.validate()},n.ctorParameters=function(){return[]},n}(za),yc=[sc],fc=bl["\u0275crt"]({encapsulation:0,styles:yc,data:{}});bl["\u0275ccf"]("macro-delay-tab",pc,Hn,{macroAction:"macroAction"},{valid:"valid"},[]);!function(e){e[e.Keypress=0]="Keypress",e[e.Text=1]="Text",e[e.Mouse=2]="Mouse",e[e.Delay=3]="Delay"}(ac||(ac={}));var mc,kc=function(){function e(){var e=this;this.save=new bl.EventEmitter,this.cancel=new bl.EventEmitter,this.TabName=ac,this.isSelectedMacroValid=!1,this.onValid=function(n){return e.isSelectedMacroValid=n}}return e.prototype.ngOnInit=function(){this.updateEditableMacroAction();var e=this.getTabName(this.editableMacroAction);this.activeTab=e},e.prototype.ngOnChanges=function(){this.ngOnInit()},e.prototype.onCancelClick=function(){this.cancel.emit()},e.prototype.onSaveClick=function(){try{var e=this.selectedTab instanceof nc?this.selectedTab.getKeyMacroAction():this.selectedTab.macroAction;this.save.emit(e)}catch(e){console.error(e)}},e.prototype.selectTab=function(e){this.activeTab=e,e===this.getTabName(this.macroAction)?this.updateEditableMacroAction():(this.editableMacroAction=void 0,this.isSelectedMacroValid=!1)},e.prototype.getTabName=function(e){return e instanceof Ci.DelayMacroAction?ac.Delay:e instanceof Ci.TextMacroAction?ac.Text:e instanceof Ci.KeyMacroAction?ac.Keypress:e instanceof Ci.MouseButtonMacroAction||e instanceof Ci.MoveMouseMacroAction||e instanceof Ci.ScrollMouseMacroAction?ac.Mouse:void 0},e.prototype.updateEditableMacroAction=function(){var e=this.macroAction?this.macroAction:new Ci.TextMacroAction;this.editableMacroAction=Ci.MacroActionHelper.createMacroAction(e)},e}(),hc=[Ga],gc=bl["\u0275crt"]({encapsulation:0,styles:hc,data:{}}),bc=(bl["\u0275ccf"]("macro-action-editor",kc,Jn,{macroAction:"macroAction"},{save:"save",cancel:"cancel"},[]),[$a]),vc=bl["\u0275crt"]({encapsulation:0,styles:bc,data:{animation:[{type:7,name:"toggler",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{height:"0px"},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{height:"*"},offset:null},options:void 0},{type:1,expr:"inactive <=> active",animation:{type:4,styles:null,timings:"500ms ease-out"},options:null}],options:{}}]}}),Ac=(bl["\u0275ccf"]("macro-item",Ha,nt,{macroAction:"macroAction",editable:"editable",deletable:"deletable",movable:"movable"},{save:"save",cancel:"cancel",edit:"edit",delete:"delete"},[]),this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}()),Tc=function(e){function n(n){var t=e.call(this)||this;return t.subscription=n.let(Object(na.e)()).subscribe(function(e){return t.macros=e}),t.macroOptions=[],t.selectedMacroIndex=0,t}return Ac(n,e),n.prototype.ngOnInit=function(){this.macroOptions=this.macros.map(function(e,n){return{id:n.toString(),text:e.name}})},n.prototype.ngOnChanges=function(){this.fromKeyAction(this.defaultKeyAction),this.validAction.emit(!0)},n.prototype.onChange=function(e){this.selectedMacroIndex=+e.value},n.prototype.keyActionValid=function(){return this.selectedMacroIndex>=0},n.prototype.fromKeyAction=function(e){if(!(e instanceof Ci.PlayMacroAction))return!1;var n=e;return this.selectedMacroIndex=this.macros.findIndex(function(e){return n.macroId===e.id}),!0},n.prototype.toKeyAction=function(){if(!this.keyActionValid())throw new Error("KeyAction is not valid. No selected macro!");var e=new Ci.PlayMacroAction;return e.macroId=this.macros[this.selectedMacroIndex].id,e},n.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},n.ctorParameters=function(){return[{type:Tl.m}]},n}(Ma),Mc=[Ba],Cc=bl["\u0275crt"]({encapsulation:0,styles:Mc,data:{}}),wc=(bl["\u0275ccf"]("macro-tab",Tc,at,{defaultKeyAction:"defaultKeyAction"},{validAction:"validAction"},[]),["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}[_nghost-%COMP%] > span[_ngcontent-%COMP%]{text-align:center}[_nghost-%COMP%] > div[_ngcontent-%COMP%]{margin-top:2px}[_nghost-%COMP%] > div[_ngcontent-%COMP%], [_nghost-%COMP%] > div[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}[_nghost-%COMP%] > div[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:7px}[_nghost-%COMP%] > div[_ngcontent-%COMP%] select2[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1;flex:1}[_nghost-%COMP%] > div[_ngcontent-%COMP%]:last-child{margin-top:10px}[_nghost-%COMP%] > div[_ngcontent-%COMP%]:last-child img[_ngcontent-%COMP%]{max-height:100%;max-width:100%}.empty[_ngcontent-%COMP%], .empty[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}.empty[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;position:relative}"]),_c=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),Oc=function(e){function n(){var n=e.call(this)||this;return n.keymapOptions=[],n}return _c(n,e),n.prototype.ngOnChanges=function(e){e.keymaps&&(this.keymapOptions=this.keymaps.map(function(e){return{id:e.abbreviation,text:e.name}}),this.keymaps.length>0&&(this.selectedKeymap=this.keymaps[0])),this.fromKeyAction(this.defaultKeyAction),this.validAction.emit(!0)},n.prototype.onChange=function(e){"-1"===e.value?this.selectedKeymap=void 0:this.selectedKeymap=this.keymaps.find(function(n){return n.abbreviation===e.value})},n.prototype.keyActionValid=function(){return!!this.selectedKeymap},n.prototype.fromKeyAction=function(e){if(!(e instanceof Ci.SwitchKeymapAction))return!1;var n=e;this.selectedKeymap=this.keymaps.find(function(e){return e.abbreviation===n.keymapAbbreviation})},n.prototype.toKeyAction=function(){if(!this.keyActionValid())throw new Error("KeyAction is not valid. No selected keymap!");var e=new Ci.SwitchKeymapAction;return e.keymapAbbreviation=this.selectedKeymap.abbreviation,e},n.ctorParameters=function(){return[]},n}(Ma),xc=[wc],Sc=bl["\u0275crt"]({encapsulation:0,styles:xc,data:{}}),Pc=(bl["\u0275ccf"]("keymap-tab",Oc,pt,{defaultKeyAction:"defaultKeyAction",keymaps:"keymaps"},{validAction:"validAction"},[]),["[_nghost-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:2rem 0}"]),Rc=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),Ic=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return Rc(n,e),n.prototype.ngOnInit=function(){this.validAction.emit(!0)},n.prototype.keyActionValid=function(){return!0},n.prototype.fromKeyAction=function(){return!1},n.prototype.toKeyAction=function(){},n}(Ma),Ec=[Pc],Uc=bl["\u0275crt"]({encapsulation:0,styles:Ec,data:{}}),Nc=(bl["\u0275ccf"]("none-tab",Ic,ft,{},{validAction:"validAction"},[]),t("gvep"));t("6DBm"),t("5v8a");!function(e){e[e.Keypress=0]="Keypress",e[e.Layer=1]="Layer",e[e.Mouse=2]="Mouse",e[e.Macro=3]="Macro",e[e.Keymap=4]="Keymap",e[e.None=5]="None"}(mc||(mc={}));var Lc=function(){function e(e){this.cancel=new bl.EventEmitter,this.remap=new bl.EventEmitter,this.tabName=mc,this.leftArrow=!1,this.rightArrow=!1,this.topPosition=0,this.leftPosition=0,this.currentKeymap$=new Nc.BehaviorSubject(void 0),this.animationState="closed",this.keymaps$=e.let(Object(na.c)()).combineLatest(this.currentKeymap$).map(function(e){var n=e[0],t=e[1];return n.filter(function(e){return t.abbreviation!==e.abbreviation})})}return e.prototype.ngOnChanges=function(e){if(this.keyPosition&&this.wrapPosition&&(e.keyPosition||e.wrapPosition)&&this.calculatePosition(),e.defaultKeyAction){var n=void 0;n=this.defaultKeyAction instanceof Ci.KeystrokeAction?mc.Keypress:this.defaultKeyAction instanceof Ci.SwitchLayerAction?mc.Layer:this.defaultKeyAction instanceof Ci.MouseAction?mc.Mouse:this.defaultKeyAction instanceof Ci.PlayMacroAction?mc.Macro:this.defaultKeyAction instanceof Ci.SwitchKeymapAction?mc.Keymap:mc.None,this.selectTab(n)}e.visible&&(e.visible.currentValue?this.animationState="opened":this.animationState="closed"),e.currentKeymap&&this.currentKeymap$.next(this.currentKeymap)},e.prototype.onCancelClick=function(){this.cancel.emit(void 0)},e.prototype.onRemapKey=function(){if(this.keyActionValid)try{var e=this.selectedTab.toKeyAction();this.remap.emit(e)}catch(e){console.error(e)}},e.prototype.onEscape=function(){this.cancel.emit()},e.prototype.selectTab=function(e){this.activeTab=e},e.prototype.onOverlay=function(){this.cancel.emit(void 0)},e.prototype.calculatePosition=function(){var e=this.wrapPosition.left+265,n=this.popoverHost.nativeElement,t=this.keyPosition.left+this.keyPosition.width/2;this.leftArrow=te+this.wrapPosition.width,this.leftArrow?t=this.keyPosition.left:this.rightArrow?t=this.keyPosition.left-n.offsetWidth+this.keyPosition.width:t-=n.offsetWidth/2,this.topPosition=this.keyPosition.top+this.keyPosition.height+7+window.scrollY,this.leftPosition=t},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),Kc=[ba],Dc=bl["\u0275crt"]({encapsulation:0,styles:Kc,data:{animation:[{type:7,name:"popover",definitions:[{type:0,name:"closed",styles:{type:6,styles:{transform:"translateY(30px)",visibility:"hidden",opacity:0},offset:null},options:void 0},{type:0,name:"opened",styles:{type:6,styles:{transform:"translateY(0)",visibility:"visible",opacity:1},offset:null},options:void 0},{type:1,expr:"opened => closed",animation:[{type:4,styles:{type:5,steps:[{type:6,styles:{transform:"translateY(0)",visibility:"visible",opacity:1,offset:0},offset:null},{type:6,styles:{transform:"translateY(30px)",visibility:"hidden",opacity:0,offset:1},offset:null}]},timings:"200ms ease-out"}],options:null},{type:1,expr:"closed => opened",animation:[{type:6,styles:{visibility:"visible"},offset:null},{type:4,styles:{type:5,steps:[{type:6,styles:{transform:"translateY(30px)",opacity:0,offset:0},offset:null},{type:6,styles:{transform:"translateY(0)",opacity:1,offset:1},offset:null}]},timings:"200ms ease-out"}],options:null}],options:{}}]}}),jc=(bl["\u0275ccf"]("popover",Lc,Tt,{defaultKeyAction:"defaultKeyAction",currentKeymap:"currentKeymap",currentLayer:"currentLayer",keyPosition:"keyPosition",wrapPosition:"wrapPosition",visible:"visible"},{cancel:"cancel",remap:"remap"},[]),function(){function e(e,n,t,l){this.store=e,this.mapper=n,this.element=t,this.renderer=l,this.popoverEnabled=!0,this.tooltipEnabled=!1,this.currentLayer=0,this.keyEditConfig={moduleId:void 0,keyId:void 0},this.tooltipData={posTop:0,posLeft:0,content:mo.Observable.of([]),show:!1}}return Object.defineProperty(e.prototype,"space",{get:function(){return this.popoverEnabled},enumerable:!0,configurable:!0}),e.prototype.onResize=function(){this.wrapHost&&(this.wrapPosition=this.wrapHost.getBoundingClientRect()),this.keyElement&&(this.keyPosition=this.keyElement.getBoundingClientRect())},e.prototype.ngOnInit=function(){this.wrapHost=this.element.nativeElement,this.wrapPosition=this.wrapHost.getBoundingClientRect()},e.prototype.ngOnChanges=function(e){var n=e.keymap;n&&(this.popoverShown=!1,this.layers=this.keymap.layers,n.isFirstChange()||n.previousValue.abbreviation!==n.currentValue.abbreviation?(this.currentLayer=0,this.keybindAnimationEnabled=n.isFirstChange()):this.keybindAnimationEnabled=!0)},e.prototype.onKeyClick=function(e,n,t){if(!this.popoverShown&&this.popoverEnabled){this.keyEditConfig={moduleId:e,keyId:n},this.selectedKey={layerId:this.currentLayer,moduleId:e,keyId:n};var l=this.layers[this.currentLayer].modules[e].keyActions[n];this.keyElement=t,this.showPopover(l)}},e.prototype.onKeyHover=function(e,n,t,l){if(this.tooltipEnabled){var o=this.layers[this.currentLayer].modules[e].keyActions[l];t?this.showTooltip(o,n):this.hideTooltip()}},e.prototype.onCapture=function(e,n,t){var l=new Ci.KeystrokeAction,o=t.left.concat(t.right).map(function(e){return e?1:0});l.scancode=t.code,l.modifierMask=0;for(var i=0;i0&&(l+=" ("+o+")"),t.push({name:"Scancode",value:l})}return n.hasActiveModifier()&&t.push({name:"Modifiers",value:n.getModifierList().join(", ")}),n.hasSecondaryRoleAction()&&t.push({name:"Secondary role",value:Ci.SecondaryRoleAction[n.secondaryRoleAction]}),mo.Observable.of(t)}if(e instanceof Ci.MouseAction){var i=e,t=[{name:"Action type",value:"Mouse"},{name:"Action",value:Object(Ci.camelCaseToSentence)(Ci.MouseActionParam[i.mouseAction])}];return mo.Observable.of(t)}if(e instanceof Ci.PlayMacroAction){var a=e;return this.store.select(function(e){return e.userConfiguration.macros}).map(function(e){return e.find(function(e){return e.id===a.macroId}).name}).map(function(e){return[{name:"Action type",value:"Play macro"},{name:"Macro name",value:e}]})}if(e instanceof Ci.SwitchKeymapAction){var c=e;return this.store.select(function(e){return e.userConfiguration.keymaps}).map(function(e){return e.find(function(e){return e.abbreviation===c.keymapAbbreviation}).name}).map(function(e){return[{name:"Action type",value:"Switch keymap"},{name:"Keymap",value:e}]})}if(e instanceof Ci.SwitchLayerAction){var u=e,t=[{name:"Action type",value:"Switch layer"},{name:"Layer",value:Object(Ci.capitalizeFirstLetter)(Ci.LayerName[u.layer])},{name:"Toogle",value:u.isLayerToggleable?"On":"Off"}];return mo.Observable.of(t)}return mo.Observable.of([])},e.ctorParameters=function(){return[{type:Tl.m},{type:wi},{type:bl.ElementRef},{type:bl.Renderer}]},e}()),Fc=[ii],Vc=bl["\u0275crt"]({encapsulation:0,styles:Fc,data:{}}),Bc=(bl["\u0275ccf"]("svg-keyboard-wrap",jc,_t,{keymap:"keymap",popoverEnabled:"popoverEnabled",tooltipEnabled:"tooltipEnabled",halvesSplit:"halvesSplit",keyboardLayout:"keyboardLayout"},{},[]),t("ZQKz"),t("ykQW"),t("HUu4"),t("Pic8"),t("Ozq5"),t("bbdN")),$c=function(){function e(e,n){this.store=e,this.keymap$=n.params.pluck("abbr").switchMap(function(n){return e.let(Object(na.b)(n))}).publishReplay(1).refCount(),this.deletable$=e.let(Object(na.c)()).map(function(e){return e.length>1}),this.keyboardLayout$=e.select(Cl.j)}return e.prototype.downloadKeymap=function(){var e=this,n=this.keymap$.switchMap(function(n){return e.toExportableJSON(n)}).map(function(e){return JSON.stringify(e)});this.keymap$.combineLatest(n).first().subscribe(function(e){var n=e[0],t=e[1],l=n.name+"_keymap.json";Object(Bc.saveAs)(new Blob([t],{type:"application/json"}),l)})},e.prototype.toggleKeyboardSplit=function(){this.keyboardSplit=!this.keyboardSplit},e.prototype.toExportableJSON=function(e){return this.store.let(Object(na.f)()).first().map(function(n){return{site:"https://ultimatehackingkeyboard.com",description:"Ultimate Hacking Keyboard keymap",keyboardModel:"UHK60",userConfigMajorVersion:n.userConfigMajorVersion,userConfigMinorVersion:n.userConfigMinorVersion,userConfigPatchVersion:n.userConfigPatchVersion,objectType:"keymap",objectValue:e.toJsonObject()}})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.a}]},e}(),Hc=[Bo],Gc=bl["\u0275crt"]({encapsulation:0,styles:Hc,data:{}}),Wc=bl["\u0275ccf"]("keymap-edit",$c,Pt,{},{},[]),zc=["[_nghost-%COMP%]{overflow-y:auto;display:block;height:100%}.uhk__layer-switcher--wrapper[_ngcontent-%COMP%]{position:relative}.uhk__layer-switcher--wrapper[_ngcontent-%COMP%]:before{content:attr(data-title);display:inline-block;position:absolute;bottom:-.3em;right:100%;font-size:2.4rem;padding-right:.25em;margin:0}.keymap__search[_ngcontent-%COMP%]{margin-top:10px}.keymap__search[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]{width:100%;max-width:350px;float:left}.keymap__search_amount[_ngcontent-%COMP%]{float:left;margin:7px 0 0 20px}.keymap__description[_ngcontent-%COMP%]{margin-bottom:20px}.keymap__list[_ngcontent-%COMP%]{margin-top:40px}.keymap__list_item[_ngcontent-%COMP%]{margin-bottom:50px}.keymap__list[_ngcontent-%COMP%] .btn-group-lg[_ngcontent-%COMP%]{margin:30px 0 0;width:100%;text-align:center}.keymap__list[_ngcontent-%COMP%] .btn-group-lg[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{float:none;padding-left:50px;padding-right:50px}"],qc=function(){function e(e){this.store=e,this.presetsAll$=e.select(function(e){return e.presetKeymaps}),this.filterExpression$=new Nc.BehaviorSubject(""),this.presets$=this.presetsAll$.combineLatest(this.filterExpression$,function(e,n){return e.filter(function(e){return e.name.toLocaleLowerCase().includes(n)})}).publishReplay(1).refCount()}return e.prototype.filterKeyboards=function(e){this.filterExpression$.next(e)},e.prototype.addKeymap=function(e){this.store.dispatch(Qo.a.addKeymap(e))},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),Yc=[zc],Jc=bl["\u0275crt"]({encapsulation:0,styles:Yc,data:{}}),Xc=bl["\u0275ccf"]("keymap-add",qc,Ut,{},{},[]),Qc=[".not-found[_ngcontent-%COMP%]{margin-top:30px;font-size:16px;text-align:center}"],Zc=function(){function e(){}return e}(),eu=[Qc],nu=bl["\u0275crt"]({encapsulation:0,styles:eu,data:{}}),tu=bl["\u0275ccf"]("macro-not-found",Zc,Lt,{},{},[]),lu=["[_nghost-%COMP%]{width:100%;height:100%;display:block}.not-found[_ngcontent-%COMP%]{margin-top:30px;font-size:16px;text-align:center}"],ou=[".macro__remove[_ngcontent-%COMP%]{font-size:.75em;top:8px}.macro__remove[_ngcontent-%COMP%]:hover{cursor:pointer;color:#900}.macro__duplicate[_ngcontent-%COMP%]{font-size:.75em;top:7px;margin-right:15px;position:relative}.macro__duplicate[_ngcontent-%COMP%]:hover{cursor:pointer;color:#337ab7}.pane-title[_ngcontent-%COMP%]{margin-bottom:1em}.pane-title__name[_ngcontent-%COMP%]{border:none;border-bottom:2px dotted #999;padding:0;margin:0 .25rem;text-overflow:ellipsis}.pane-title__name[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 1px #ccc,0 0 5px 0 #ccc;border-color:transparent}"],iu=function(){function e(e,n){this.store=e,this.renderer=n}return e.prototype.ngOnChanges=function(e){this.isNew&&this.setFocusOnName(),e.macro&&this.setName()},e.prototype.ngAfterViewInit=function(){this.isNew&&this.setFocusOnName()},e.prototype.windowResize=function(){this.calculateHeaderTextWidth(this.macro.name)},e.prototype.removeMacro=function(){this.store.dispatch(Qo.b.removeMacro(this.macro.id))},e.prototype.duplicateMacro=function(){this.store.dispatch(Qo.b.duplicateMacro(this.macro))},e.prototype.editMacroName=function(e){if(!Zo.b(e))return void this.setName();this.store.dispatch(Qo.b.editMacroName(this.macro.id,e))},e.prototype.calculateHeaderTextWidth=function(e){var n=this.macroName.nativeElement,t=.8*n.parentElement.offsetWidth,l=Zo.a(window.getComputedStyle(n),e);this.renderer.setStyle(n,"width",Math.min(t,l)+"px")},e.prototype.setFocusOnName=function(){this.macroName.nativeElement.select()},e.prototype.setName=function(){this.renderer.setProperty(this.macroName.nativeElement,"value",this.macro.name),this.calculateHeaderTextWidth(this.macro.name)},e.ctorParameters=function(){return[{type:Tl.m},{type:bl.Renderer2}]},e}(),au=[ou],cu=bl["\u0275crt"]({encapsulation:0,styles:au,data:{}}),uu=(bl["\u0275ccf"]("macro-header",iu,Dt,{macro:"macro",isNew:"isNew"},{},[]),[".add-new__action-item--link[_ngcontent-%COMP%] button.btn-link[_ngcontent-%COMP%]{padding:7px 0;text-decoration:none;border:0;width:100%}.add-new__action-item--link[_ngcontent-%COMP%] button.btn-link[_ngcontent-%COMP%]:focus{outline:none}[_nghost-%COMP%]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}[_nghost-%COMP%], [_nghost-%COMP%] .list-container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}[_nghost-%COMP%] .list-container[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1;flex:1}.main-wrapper[_ngcontent-%COMP%]{width:500px}h1[_ngcontent-%COMP%]{margin-bottom:3rem}.action--edit__form[_ngcontent-%COMP%]{background-color:#fff;margin-left:-.5rem;margin-right:-15px;margin-top:15px;padding-top:15px;border-top:1px solid #ddd}.action--item[_ngcontent-%COMP%]{padding-left:8px}.action--item.active[_ngcontent-%COMP%], .action--item.active[_ngcontent-%COMP%]:hover{background-color:#fff;font-weight:700;color:#000;border-color:#000;z-index:10}.list-group[_ngcontent-%COMP%]{overflow:auto}.macro__name[_ngcontent-%COMP%]{border-bottom:2px dotted #999;padding:0 .5rem;margin:0 .25rem}.macro-settings[_ngcontent-%COMP%]{border:1px solid #000;border-top-color:#999;z-index:100}.macro-settings[_ngcontent-%COMP%] .helper[_ngcontent-%COMP%]{position:absolute;display:block;height:13px;background:#fff;width:100%;left:0;top:-14px}.action--item.active.callout[_ngcontent-%COMP%], .macro-settings.callout[_ngcontent-%COMP%]{box-shadow:0 0 20px 0 rgba(0,0,0,.5)}.macro-actions-container[_ngcontent-%COMP%]{margin-bottom:0;border-radius:4px;border:1px solid #ddd;border-bottom:0}.list-group-item[_ngcontent-%COMP%] .move-handle[_ngcontent-%COMP%]:hover{cursor:move}.flex-button-wrapper[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-button[_ngcontent-%COMP%]{-ms-flex-item-align:end;align-self:flex-end}.add-new__action-container[_ngcontent-%COMP%]{overflow:hidden;-ms-flex-negative:0;flex-shrink:0;border-top:1px solid #ddd}.add-new__action-item[_ngcontent-%COMP%]{border-radius:0 0 4px 4px;border-top:0;padding:0}.add-new__action-item[_ngcontent-%COMP%]:hover{cursor:pointer}.add-new__action-item--link[_ngcontent-%COMP%]{width:50%;float:left;text-align:center;color:#337ab7}.add-new__action-item--link[_ngcontent-%COMP%]:first-of-type{border-right:1px solid #ddd}.add-new__action-item--link[_ngcontent-%COMP%]:hover{text-decoration:none;background:#e6e6e6}.add-new__action-item[_ngcontent-%COMP%] .fa-circle[_ngcontent-%COMP%]{color:#c00}.gu-mirror[_ngcontent-%COMP%]{position:fixed;margin:0;z-index:9999;opacity:.8}.gu-hide[_ngcontent-%COMP%]{display:none}.gu-unselectable[_ngcontent-%COMP%]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]),ru=t("Kg3V"),su=t("sY2v"),du=t("YdjH"),pu=function(){function e(e,n){var t=this;this.mapper=e,this.dragulaService=n,this.add=new bl.EventEmitter,this.edit=new bl.EventEmitter,this.delete=new bl.EventEmitter,this.reorder=new bl.EventEmitter,this.newMacro=void 0,this.showNew=!1,this.activeEdit=void 0,n.setOptions("macroActions",{moves:function(e,n,t){return t.className.includes("action--movable")}}),n.drag.subscribe(function(e){t.dragIndex=+e[1].getAttribute("data-index")}),n.drop.subscribe(function(e){e[4]&&t.reorder.emit({macroId:t.macro.id,oldIndex:t.dragIndex,newIndex:+e[4].getAttribute("data-index")})})}return e.prototype.showNewAction=function(){this.hideActiveEditor(),this.newMacro=void 0,this.showNew=!0},e.prototype.hideNewAction=function(){this.showNew=!1},e.prototype.addNewAction=function(e){this.add.emit({macroId:this.macro.id,action:e}),this.newMacro=void 0,this.showNew=!1},e.prototype.editAction=function(e){this.hideActiveEditor(),this.showNew=!1,this.activeEdit=e},e.prototype.cancelAction=function(){this.activeEdit=void 0},e.prototype.saveAction=function(e,n){this.edit.emit({macroId:this.macro.id,index:n,action:e}),this.hideActiveEditor()},e.prototype.deleteAction=function(e,n){this.delete.emit({macroId:this.macro.id,index:n,action:e}),this.hideActiveEditor()},e.prototype.onKeysCapture=function(e){var n=Object.assign(new Ci.KeyMacroAction,this.toKeyAction(e));n.action=Ci.MacroKeySubAction.tap,this.add.emit({macroId:this.macro.id,action:n})},e.prototype.toKeyAction=function(e){var n=new Ci.KeystrokeAction;n.scancode=e.code,n.modifierMask=0;for(var t=e.left.concat(e.right).map(function(e){return e?1:0}),l=0;l active",animation:{type:4,styles:null,timings:"500ms ease-out"},options:null}],options:{}},{type:7,name:"togglerNew",definitions:[{type:0,name:"void",styles:{type:6,styles:{height:"0px"},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{height:"*"},offset:null},options:void 0},{type:1,expr:":enter",animation:{type:4,styles:null,timings:"500ms ease-out"},options:null},{type:1,expr:":leave",animation:{type:4,styles:null,timings:"500ms ease-out"},options:null}],options:{}}]}}),mu=(bl["\u0275ccf"]("macro-list",pu,Bt,{macro:"macro"},{add:"add",edit:"edit",delete:"delete",reorder:"reorder"},[]),function(){function e(e,n){var t=this;this.store=e,this.route=n,this.subscription=n.params.pluck("id").switchMap(function(n){return e.let(Object(na.d)(+n))}).subscribe(function(e){t.macro=e}),this.isNew="new"===this.route.snapshot.params.empty}return e.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},e.prototype.addAction=function(e,n){this.store.dispatch(Qo.b.addMacroAction(e,n))},e.prototype.editAction=function(e,n,t){this.store.dispatch(Qo.b.saveMacroAction(e,n,t))},e.prototype.deleteAction=function(e,n,t){this.store.dispatch(Qo.b.deleteMacroAction(e,n,t))},e.prototype.reorderAction=function(e,n,t){this.store.dispatch(Qo.b.reorderMacroAction(e,n,t))},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.a}]},e}()),ku=[lu],hu=bl["\u0275crt"]({encapsulation:0,styles:ku,data:{}}),gu=bl["\u0275ccf"]("macro-edit",mu,Wt,{},{},[]),bu=["[_nghost-%COMP%]{width:100%;height:100%;display:block}"],vu=function(){function e(e){this.name$=e.params.pluck("name")}return e.ctorParameters=function(){return[{type:zl.a}]},e}(),Au=[bu],Tu=bl["\u0275crt"]({encapsulation:0,styles:Au,data:{}}),Mu=bl["\u0275ccf"]("add-on",vu,qt,{},{},[]),Cu=["[_nghost-%COMP%]{width:100%;height:100%;display:block}"],wu=t("jo2S"),_u=function(){function e(e){this.store=e,this.version="1.0.0",this.autoUpdateSettings$=e.select(Cl.g),this.checkingForUpdate$=e.select(Cl.h)}return e.prototype.toogleCheckForUpdateOnStartUp=function(e){this.store.dispatch(new wu.h(e))},e.prototype.toogleUsePreReleaseUpdate=function(e){this.store.dispatch(new wu.i(e))},e.prototype.checkForUpdate=function(){this.store.dispatch(new wu.c)},e.ctorParameters=function(){return[{type:Tl.m}]},e}(),Ou=function(){function e(){this.toggleCheckForUpdateOnStartUp=new bl.EventEmitter,this.toggleUsePreReleaseUpdate=new bl.EventEmitter,this.checkForUpdate=new bl.EventEmitter}return e.prototype.emitCheckForUpdateOnStartUp=function(e){this.toggleCheckForUpdateOnStartUp.emit(e)},e.prototype.emitUsePreReleaseUpdate=function(e){this.toggleUsePreReleaseUpdate.emit(e)},e.prototype.emitCheckForUpdate=function(){this.checkForUpdate.emit()},e.ctorParameters=function(){return[]},e}(),xu=[],Su=bl["\u0275crt"]({encapsulation:2,styles:xu,data:{}}),Pu=(bl["\u0275ccf"]("auto-update-settings",Ou,Xt,{version:"version",settings:"settings",checkingForUpdate:"checkingForUpdate"},{toggleCheckForUpdateOnStartUp:"toggleCheckForUpdateOnStartUp",toggleUsePreReleaseUpdate:"toggleUsePreReleaseUpdate",checkForUpdate:"checkForUpdate"},[]),[Cu]),Ru=bl["\u0275crt"]({encapsulation:0,styles:Pu,data:{}}),Iu=bl["\u0275ccf"]("settings",_u,Zt,{},{},[]),Eu=[".github-fork-ribbon{background-color:#a00;overflow:hidden;white-space:nowrap;position:fixed;right:-50px;bottom:40px;z-index:2000;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);box-shadow:0 0 10px #888}.github-fork-ribbon a{border:1px solid #faa;color:#fff;display:block;font:700 81.25% Helvetica Neue,Helvetica,Arial,sans-serif;margin:1px 0;padding:10px 50px;text-align:center;text-decoration:none;text-shadow:0 0 5px #444}main-app{min-height:100%;height:100%;width:100%;display:block;position:relative}.save-to-keyboard-button{position:fixed;bottom:15px;right:15px}"],Uu=[".app-update-available-wrapper[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:.5rem}"],Nu=function(){function e(){this.updateApp=new bl.EventEmitter,this.doNotUpdateApp=new bl.EventEmitter}return e}(),Lu=[Uu],Ku=bl["\u0275crt"]({encapsulation:0,styles:Lu,data:{}}),Du=(bl["\u0275ccf"]("app-update-available",Nu,nl,{},{updateApp:"updateApp",doNotUpdateApp:"doNotUpdateApp"},[]),["[_nghost-%COMP%]{background-color:#f5f5f5;border-right:1px solid #ccc;position:fixed;overflow-y:auto;width:250px;height:100%}a[_ngcontent-%COMP%]{color:#333}ul[_ngcontent-%COMP%]{margin:0}ul[_ngcontent-%COMP%], ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding:0}ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{list-style:none}ul[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{overflow:hidden}.sidebar__level-0[_ngcontent-%COMP%]{padding:.5rem 1rem 0}.sidebar__level-1[_ngcontent-%COMP%]{padding:.5rem 1rem .5rem 2rem}.sidebar__level-0[_ngcontent-%COMP%], .sidebar__level-1[_ngcontent-%COMP%]{font-size:2rem;line-height:3rem;cursor:default}.sidebar__level-0[_ngcontent-%COMP%]:hover .fa-chevron-down[_ngcontent-%COMP%], .sidebar__level-0[_ngcontent-%COMP%]:hover .fa-chevron-up[_ngcontent-%COMP%], .sidebar__level-1[_ngcontent-%COMP%]:hover .fa-chevron-down[_ngcontent-%COMP%], .sidebar__level-1[_ngcontent-%COMP%]:hover .fa-chevron-up[_ngcontent-%COMP%]{display:inline-block}.sidebar__level-0--item[_ngcontent-%COMP%], .sidebar__level-1--item[_ngcontent-%COMP%]{margin-top:0}.sidebar__level-0--item[_ngcontent-%COMP%]:first-child, .sidebar__level-1--item[_ngcontent-%COMP%]:first-child{margin:0}.sidebar__level-0[_ngcontent-%COMP%] .fa-chevron-down[_ngcontent-%COMP%], .sidebar__level-0[_ngcontent-%COMP%] .fa-chevron-up[_ngcontent-%COMP%], .sidebar__level-1[_ngcontent-%COMP%] .fa-chevron-down[_ngcontent-%COMP%], .sidebar__level-1[_ngcontent-%COMP%] .fa-chevron-up[_ngcontent-%COMP%]{margin-right:1rem;font-size:1.5rem;position:relative;top:.5rem;display:none;cursor:pointer}.sidebar__level-2--item[_ngcontent-%COMP%]{padding:0 20px 0 0;position:relative}.sidebar__level-2--item.active[_ngcontent-%COMP%]{background-color:#555;color:#fff}.sidebar__level-2--item.active[_ngcontent-%COMP%] .fa-star[_ngcontent-%COMP%]{color:#fff}.sidebar__level-2--item.active[_ngcontent-%COMP%]:hover{background-color:#555}.sidebar__level-2--item[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar__level-2--item[_ngcontent-%COMP%] .fa.pull-right[_ngcontent-%COMP%]{position:relative;top:2px}.sidebar__level-2--item[_ngcontent-%COMP%] .fa-star[_ngcontent-%COMP%]{color:#666}.sidebar__level-2--item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:block;width:100%;padding:0 15px 0 30px}.sidebar__level-2--item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:focus, .sidebar__level-2--item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:none}.sidebar__level-0[_ngcontent-%COMP%]:hover, .sidebar__level-1[_ngcontent-%COMP%]:hover, .sidebar__level-2[_ngcontent-%COMP%]:hover{background-color:rgba(0,0,0,.05)}.sidebar__level-0.active[_ngcontent-%COMP%], .sidebar__level-1.active[_ngcontent-%COMP%], .sidebar__level-2.active[_ngcontent-%COMP%]{background-color:rgba(0,0,0,.18)}.sidebar__fav[_ngcontent-%COMP%]{position:absolute;right:19px;top:3px}.menu--bottom[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;width:100%}.menu--bottom[_ngcontent-%COMP%] .sidebar__level-1[_ngcontent-%COMP%]{display:block;padding:1rem;cursor:pointer}.menu--bottom[_ngcontent-%COMP%] .sidebar__level-1[_ngcontent-%COMP%]:hover{text-decoration:none}.pane-title[_ngcontent-%COMP%]{margin-bottom:1em}.pane-title__name[_ngcontent-%COMP%]{border:none;border-bottom:2px dotted #999;padding:0;margin:0 .25rem;text-overflow:ellipsis;background-color:inherit}.pane-title__name[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 1px #ccc,0 0 5px 0 #ccc;border-color:transparent;background-color:inherit}"]),ju=(t("eqpX"),function(){function e(e,n){var t=this;this.store=e,this.renderer=n,this.updatingFirmware=!1,this.animation={device:"active",configuration:"active",keymap:"active",macro:"active",addon:"active"},this.keymaps$=e.let(Object(na.c)()).map(function(e){return e.slice()}).do(function(e){e.sort(function(e,n){return e.name.localeCompare(n.name)})}),this.macros$=e.let(Object(na.e)()).map(function(e){return e.slice()}).do(function(e){e.sort(function(e,n){return e.name.localeCompare(n.name)})}),this.showAddonMenu$=this.store.select(Cl.r),this.runInElectron$=this.store.select(Cl.p),this.deviceName$=e.select(Cl.i),this.deviceNameSubscription=this.deviceName$.subscribe(function(e){t.deviceNameValue=e,t.setDeviceName()}),this.updatingFirmware$=e.select(Cl.s),this.updatingFirmwareSubscription=this.updatingFirmware$.subscribe(function(e){t.updatingFirmware=e})}return e.prototype.ngAfterContentInit=function(){this.setDeviceName()},e.prototype.ngOnDestroy=function(){this.deviceNameSubscription.unsubscribe(),this.updatingFirmwareSubscription.unsubscribe()},e.prototype.toggleHide=function(e,n){if(!this.updatingFirmware){var t=e.target.classList,l=!1;t.contains("fa-chevron-down")?(l=!0,this.animation[n]="active"):this.animation[n]="inactive",l?(this.renderer.addClass(e.target,"fa-chevron-up"),this.renderer.removeClass(e.target,"fa-chevron-down")):(this.renderer.removeClass(e.target,"fa-chevron-up"),this.renderer.addClass(e.target,"fa-chevron-down"))}},e.prototype.addMacro=function(){this.store.dispatch(Qo.b.addMacro())},e.prototype.editDeviceName=function(e){if(!Zo.b(e)||e.trim()===this.deviceNameValue)return void this.setDeviceName();this.store.dispatch(new Ql.h(e))},e.prototype.calculateHeaderTextWidth=function(e){var n=this.deviceName.nativeElement,t=.66*n.parentElement.offsetWidth,l=Zo.a(window.getComputedStyle(n),e);this.renderer.setStyle(n,"width",Math.min(t,l)+"px")},e.prototype.setDeviceName=function(){this.deviceName&&(this.renderer.setProperty(this.deviceName.nativeElement,"value",this.deviceNameValue),this.calculateHeaderTextWidth(this.deviceName.nativeElement.value))},e.ctorParameters=function(){return[{type:Tl.m},{type:bl.Renderer2}]},e}()),Fu=[Du],Vu=bl["\u0275crt"]({encapsulation:0,styles:Fu,data:{animation:[{type:7,name:"toggler",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{height:"0px"},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{height:"*"},offset:null},options:void 0},{type:1,expr:"inactive <=> active",animation:{type:4,styles:null,timings:"500ms ease-out"},options:null}],options:{}}]}}),Bu=(bl["\u0275ccf"]("side-menu",ju,ul,{},{},[]),["button[_ngcontent-%COMP%]{min-width:150px}"]),$u=t("Ii5C"),Hu=function(){function e(){this.state=$u.a,this.clicked=new bl.EventEmitter}return e.prototype.onClicked=function(){this.clicked.emit(this.state.action)},e}(),Gu=[Bu],Wu=bl["\u0275crt"]({encapsulation:0,styles:Gu,data:{}}),zu=(bl["\u0275ccf"]("progress-button",Hu,dl,{state:"state"},{clicked:"clicked"},[]),t("cykF")),qu=t("lM2z"),Yu=[Eu],Ju=bl["\u0275crt"]({encapsulation:2,styles:Yu,data:{animation:[{type:7,name:"showSaveToKeyboardButton",definitions:[{type:1,expr:":enter",animation:[{type:6,styles:{transform:"translateY(100%)"},offset:null},{type:4,styles:{type:6,styles:{transform:"translateY(0)"},offset:null},timings:"400ms ease-in-out"}],options:null},{type:1,expr:":leave",animation:[{type:6,styles:{transform:"translateY(0)"},offset:null},{type:4,styles:{type:6,styles:{transform:"translateY(100%)"},offset:null},timings:"400ms ease-in-out"}],options:null}],options:{}}]}}),Xu=bl["\u0275ccf"]("main-app",wl,hl,{},{},[]),Qu=t("f9zQ"),Zu=t("fL27"),er=t("EyWH"),nr=t("0Vo6"),tr=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.let(Object(na.c)()).do(function(n){var t=n.find(function(e){return e.isDefault});t&&e.router.navigate(["/keymap",t.abbreviation])}).switchMap(function(){return mo.Observable.of(!1)})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),lr=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.let(Object(na.e)()).map(function(n){var t=n.length>0;return t&&e.router.navigate(["/macro",n[0].id]),!t})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),or=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.select(Cl.c).do(function(n){n&&e.router.navigate(["/"])}).map(function(e){return!e})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),ir=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.select(Cl.c).do(function(n){n||e.router.navigate(["/detection"])})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),ar=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.select(Cl.o).do(function(n){n&&e.router.navigate(["/detection"])}).map(function(e){return!e})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),cr=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.select(Cl.o).do(function(n){n||e.router.navigate(["/privilege"])})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),ur=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.select(Cl.b).do(function(n){n||e.router.navigate(["/loading"])})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),rr=function(){function e(e,n){this.store=e,this.router=n}return e.prototype.canActivate=function(){var e=this;return this.store.select(Cl.b).do(function(n){n&&e.router.navigate(["/"])}).map(function(e){return!e})},e.ctorParameters=function(){return[{type:Tl.m},{type:zl.m}]},e}(),sr=t("uIf7"),dr=t("NijM"),pr=t("XnCX"),yr=function(){function e(){}return e}(),fr=t("TTza"),mr=t("cVaD"),kr=t("kGlP"),hr=t("C4aZ"),gr=t("Xloh"),br=t("2soc"),vr=t("Tl+Y"),Ar=t("lCMY"),Tr=function(){function e(e,n,t){this.store=e,this.zone=n,this.ipcRenderer=t,this.registerEvents()}return e.prototype.sendAppStarted=function(){this.ipcRenderer.send(Ci.IpcEvents.app.appStarted)},e.prototype.sendUpdateAndRestartApp=function(){this.ipcRenderer.send(Ci.IpcEvents.autoUpdater.updateAndRestart)},e.prototype.checkForUpdate=function(){this.ipcRenderer.send(Ci.IpcEvents.autoUpdater.checkForUpdate)},e.prototype.registerEvents=function(){var e=this;this.ipcRenderer.on(Ci.IpcEvents.autoUpdater.updateAvailable,function(n,t){e.writeUpdateState(Ci.IpcEvents.autoUpdater.updateAvailable,t)}),this.ipcRenderer.on(Ci.IpcEvents.autoUpdater.updateNotAvailable,function(){e.writeUpdateState(Ci.IpcEvents.autoUpdater.updateNotAvailable),e.dispachStoreAction(new wu.d("No update available"))}),this.ipcRenderer.on(Ci.IpcEvents.autoUpdater.autoUpdateError,function(n,t){e.writeUpdateState(Ci.IpcEvents.autoUpdater.autoUpdateError,t),e.dispachStoreAction(new Ml.e(t))}),this.ipcRenderer.on(Ci.IpcEvents.autoUpdater.autoUpdateDownloadProgress,function(n,t){e.writeUpdateState(Ci.IpcEvents.autoUpdater.autoUpdateDownloadProgress,t)}),this.ipcRenderer.on(Ci.IpcEvents.autoUpdater.autoUpdateDownloaded,function(n,t){e.writeUpdateState(Ci.IpcEvents.autoUpdater.autoUpdateDownloaded,t),e.dispachStoreAction(new Ml.d)}),this.ipcRenderer.on(Ci.IpcEvents.autoUpdater.checkForUpdateNotAvailable,function(n,t){e.writeUpdateState(Ci.IpcEvents.autoUpdater.checkForUpdateNotAvailable,t),e.dispachStoreAction(new wu.b(t))})},e.prototype.dispachStoreAction=function(e){var n=this;this.zone.run(function(){return n.store.dispatch(e)})},e.prototype.writeUpdateState=function(e,n){console.log({event:e,arg:n})},e.ctorParameters=function(){return[{type:Tl.m},{type:bl.NgZone},{type:Ar.a}]},e}(),Mr=function(){function e(){}return e.prototype.error=function(){for(var e=[],n=0;n=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a}),_r=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},Or=function(){function e(e,n,t,l,o,i){var a=this;this.actions$=e,this.notifierService=n,this.appUpdateRendererService=t,this.appRendererService=l,this.logService=o,this.store=i,this.appStart$=this.actions$.ofType(Ho.a.APP_BOOTSRAPPED).startWith(new Ho.b).do(function(){a.logService.info("Renderer appStart effect start"),a.appUpdateRendererService.sendAppStarted(),a.appRendererService.getAppStartInfo(),a.logService.info("Renderer appStart effect end")}),this.showNotification$=this.actions$.ofType(Ho.a.APP_SHOW_NOTIFICATION).map(function(e){return e.payload}).do(function(e){e.type!==Ci.NotificationType.Undoable&&a.notifierService.notify(e.type,e.message)}),this.processStartInfo$=this.actions$.ofType(Ho.a.APP_PROCESS_START_INFO).map(function(e){return e.payload}).mergeMap(function(e){return a.logService.debug("[AppEffect][processStartInfo] payload:",e),[new Ho.c(e.commandLineArgs),new Kl.b({connected:e.deviceConnected,hasPermission:e.hasPermission}),new Ho.j(e.agentVersionInfo)]}),this.undoLastNotification$=this.actions$.ofType(Ho.a.UNDO_LAST).map(function(e){return e.payload}).mergeMap(function(e){return[e,new Ho.d]}),this.saveToKeyboardSuccess$=this.actions$.ofType(Kl.a.SAVE_TO_KEYBOARD_SUCCESS).withLatestFrom(this.store.select(Cl.a)).do(function(e){e[0];e[1]&&a.appRendererService.exit()})}return e.ctorParameters=function(){return[{type:vr.a},{type:qu.b},{type:Tr},{type:Cr},{type:Ci.LogService},{type:Tl.m}]},wr([Object(vr.b)(),_r("design:type","function"==typeof(n=void 0!==mo.Observable&&mo.Observable)&&n||Object)],e.prototype,"appStart$",void 0),wr([Object(vr.b)({dispatch:!1}),_r("design:type","function"==typeof(t=void 0!==mo.Observable&&mo.Observable)&&t||Object)],e.prototype,"showNotification$",void 0),wr([Object(vr.b)(),_r("design:type","function"==typeof(l=void 0!==mo.Observable&&mo.Observable)&&l||Object)],e.prototype,"processStartInfo$",void 0),wr([Object(vr.b)(),_r("design:type","function"==typeof(o=void 0!==mo.Observable&&mo.Observable)&&o||Object)],e.prototype,"undoLastNotification$",void 0),wr([Object(vr.b)({dispatch:!1}),_r("design:type",Object)],e.prototype,"saveToKeyboardSuccess$",void 0),e;var n,t,l,o}(),xr=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},Sr=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},Pr=function(){function e(e,n,t){var l=this;this.actions$=e,this.appUpdateRendererService=n,this.logService=t,this.appStart$=this.actions$.ofType(Ml.a.UPDATE_APP).first().do(function(){l.appUpdateRendererService.sendUpdateAndRestartApp()}),this.checkForUpdate$=this.actions$.ofType(wu.a.CHECK_FOR_UPDATE_NOW).do(function(){l.logService.debug("[AppUpdateEffect] call checkForUpdate"),l.appUpdateRendererService.checkForUpdate()}),this.handleError$=this.actions$.ofType(Ml.a.UPDATE_ERROR).map(function(e){return e.payload}).map(function(e){return new Ho.h({type:Ci.NotificationType.Error,message:e})})}return e.ctorParameters=function(){return[{type:vr.a},{type:Tr},{type:Ci.LogService}]},xr([Object(vr.b)({dispatch:!1}),Sr("design:type","function"==typeof(n=void 0!==mo.Observable&&mo.Observable)&&n||Object)],e.prototype,"appStart$",void 0),xr([Object(vr.b)({dispatch:!1}),Sr("design:type","function"==typeof(t=void 0!==mo.Observable&&mo.Observable)&&t||Object)],e.prototype,"checkForUpdate$",void 0),xr([Object(vr.b)(),Sr("design:type","function"==typeof(l=void 0!==mo.Observable&&mo.Observable)&&l||Object)],e.prototype,"handleError$",void 0),e;var n,t,l}(),Rr=t("CV5A"),Ir=t("ZRqk"),Er=t("FhXQ"),Ur=(t("9jMf"),t("asHm"),this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a}),Nr=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},Lr=function(){function e(e,n,l){var o=this;this.actions$=e,this.router=n,this.store=l,this.loadKeymaps$=this.actions$.ofType(Qo.a.LOAD_KEYMAPS).startWith(Qo.a.loadKeymaps()).switchMap(function(){var e=t("QCMk"),n=e.keys().map(e).map(function(e){return(new Ci.Keymap).fromJsonObject(e)});return mo.Observable.of(Qo.a.loadKeymapsSuccess(n))}),this.addOrDuplicate$=this.actions$.ofType(Qo.a.ADD,Qo.a.DUPLICATE).withLatestFrom(this.store).map(function(e){return e[1].userConfiguration.keymaps}).do(function(e){o.router.navigate(["/keymap",e[e.length-1].abbreviation])}),this.remove$=this.actions$.ofType(Qo.a.REMOVE).withLatestFrom(this.store).map(function(e){return e[1].userConfiguration.keymaps}).do(function(e){if(0===e.length)o.router.navigate(["/keymap/add"]);else{var n=e.find(function(e){return e.isDefault});o.router.navigate(["/keymap",n.abbreviation])}}),this.editAbbr$=this.actions$.ofType(Qo.a.EDIT_ABBR).withLatestFrom(this.store).do(function(e){for(var n=e[0],t=e[1],l=0,i=t.userConfiguration.keymaps;l=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},Dr=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},jr=function(){function e(e,n,t){var l=this;this.actions$=e,this.router=n,this.store=t,this.remove$=this.actions$.ofType(Qo.b.REMOVE).do(function(e){return l.store.dispatch(Qo.a.checkMacro(e.payload))}).withLatestFrom(this.store).map(function(e){e[0];return e[1].userConfiguration.macros}).do(function(e){0===e.length?l.router.navigate(["/macro"]):l.router.navigate(["/macro",e[0].id])}),this.add$=this.actions$.ofType(Qo.b.ADD).withLatestFrom(this.store).map(function(e){e[0];return e[1].userConfiguration.macros}).map(function(e){return e[e.length-1]}).do(function(e){l.router.navigate(["/macro",e.id,"new"])}),this.duplicate=this.actions$.ofType(Qo.b.DUPLICATE).withLatestFrom(this.store).map(function(e){e[0];return e[1].userConfiguration.macros}).map(function(e){return e[e.length-1]}).do(function(e){l.router.navigate(["/macro",e.id])})}return e.ctorParameters=function(){return[{type:vr.a},{type:zl.m},{type:Tl.m}]},Kr([Object(vr.b)({dispatch:!1}),Dr("design:type",Object)],e.prototype,"remove$",void 0),Kr([Object(vr.b)({dispatch:!1}),Dr("design:type",Object)],e.prototype,"add$",void 0),Kr([Object(vr.b)({dispatch:!1}),Dr("design:type",Object)],e.prototype,"duplicate",void 0),e}(),Fr=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},Vr=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},Br=function(){function e(e,n,t){var l=this;this.actions$=e,this.dataStorageRepository=n,this.store=t,this.loadUserConfig$=this.actions$.ofType(wu.a.LOAD_AUTO_UPDATE_SETTINGS).startWith(new wu.e).switchMap(function(){var e=l.dataStorageRepository.getAutoUpdateSettings();return e||(e=mr.c),mo.Observable.of(new wu.f(e))}),this.saveAutoUpdateConfig$=this.actions$.ofType(wu.a.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP,wu.a.TOGGLE_PRE_RELEASE_FLAG).withLatestFrom(this.store.select(Cl.g)).map(function(e){var n=(e[0],e[1]);return l.dataStorageRepository.saveAutoUpdateSettings(n),new wu.g}),this.sendNotification$=this.actions$.ofType(wu.a.CHECK_FOR_UPDATE_FAILED,wu.a.CHECK_FOR_UPDATE_SUCCESS).map(vr.d).map(function(e){return new Ho.h({type:Ci.NotificationType.Info,message:e})})}return e.ctorParameters=function(){return[{type:vr.a},{type:Rr.a},{type:Tl.m}]},Fr([Object(vr.b)(),Vr("design:type","function"==typeof(n=void 0!==mo.Observable&&mo.Observable)&&n||Object)],e.prototype,"loadUserConfig$",void 0),Fr([Object(vr.b)(),Vr("design:type","function"==typeof(t=void 0!==mo.Observable&&mo.Observable)&&t||Object)],e.prototype,"saveAutoUpdateConfig$",void 0),Fr([Object(vr.b)(),Vr("design:type","function"==typeof(l=void 0!==mo.Observable&&mo.Observable)&&l||Object)],e.prototype,"sendNotification$",void 0),e;var n,t,l}(),$r=(t("hbO+"),t("BdLl"),this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a}),Hr=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)},Gr=function(){function e(e,n,t,l,o){var i=this;this.actions$=e,this.router=n,this.deviceRendererService=t,this.store=l,this.defaultUserConfigurationService=o,this.deviceConnectionStateChange$=this.actions$.ofType(Kl.a.CONNECTION_STATE_CHANGED).map(function(e){return e.payload}).do(function(e){e.hasPermission?e.connected?i.router.navigate(["/"]):i.router.navigate(["/detection"]):i.router.navigate(["/privilege"])}).switchMap(function(e){return e.connected&&e.hasPermission?mo.Observable.of(new Ql.c):mo.Observable.empty()}),this.setPrivilegeOnLinux$=this.actions$.ofType(Kl.a.SET_PRIVILEGE_ON_LINUX).do(function(){i.deviceRendererService.setPrivilegeOnLinux()}),this.setPrivilegeOnLinuxReply$=this.actions$.ofType(Kl.a.SET_PRIVILEGE_ON_LINUX_REPLY).map(function(e){return e.payload}).mergeMap(function(e){return e.success?[new Kl.b({connected:!0,hasPermission:!0})]:[new Ho.h({type:Ci.NotificationType.Error,message:e.error.message||e.error})]}),this.saveConfiguration$=this.actions$.ofType(Kl.a.SAVE_CONFIGURATION).withLatestFrom(this.store).map(function(e){e[0];return e[1].userConfiguration}).do(function(e){setTimeout(function(){return i.sendUserConfigToKeyboard(e)},100)}).switchMap(function(){return mo.Observable.empty()}),this.saveConfigurationReply$=this.actions$.ofType(Kl.a.SAVE_CONFIGURATION_REPLY).map(function(e){return e.payload}).mergeMap(function(e){return e.success?[new Kl.h]:[new Ho.h({type:Ci.NotificationType.Error,message:e.error.message}),new Kl.i]}),this.autoHideSaveToKeyboardButton$=this.actions$.ofType(Kl.a.SAVE_TO_KEYBOARD_SUCCESS).switchMap(function(){return mo.Observable.timer(1e3).switchMap(function(){return mo.Observable.of(new Kl.c)})}),this.resetMouseSpeedSettings$=this.actions$.ofType(Kl.a.RESET_MOUSE_SPEED_SETTINGS).switchMap(function(){var e=i.defaultUserConfigurationService.getDefault(),n={};return["mouseMoveInitialSpeed","mouseMoveAcceleration","mouseMoveDeceleratedSpeed","mouseMoveBaseSpeed","mouseMoveAcceleratedSpeed","mouseScrollInitialSpeed","mouseScrollAcceleration","mouseScrollDeceleratedSpeed","mouseScrollBaseSpeed","mouseScrollAcceleratedSpeed"].forEach(function(t){n[t]=e[t]}),mo.Observable.of(new Ql.e(n))}),this.resetUserConfiguration$=this.actions$.ofType(Kl.a.RESET_USER_CONFIGURATION).switchMap(function(){var e=i.defaultUserConfigurationService.getDefault();return mo.Observable.of(new Ql.e(e))}),this.saveResetUserConfigurationToDevice$=this.actions$.ofType(Ql.a.LOAD_RESET_USER_CONFIGURATION,Ql.a.APPLY_USER_CONFIGURATION_FROM_FILE).switchMap(function(){return mo.Observable.of(new Kl.f)}),this.updateFirmware$=this.actions$.ofType(Kl.a.UPDATE_FIRMWARE).do(function(){return i.deviceRendererService.updateFirmware()}),this.updateFirmwareWith$=this.actions$.ofType(Kl.a.UPDATE_FIRMWARE_WITH).map(function(e){return e.payload}).do(function(e){return i.deviceRendererService.updateFirmware(e)}),this.updateFirmwareReply$=this.actions$.ofType(Kl.a.UPDATE_FIRMWARE_REPLY).map(function(e){return e.payload}).switchMap(function(e){return e.success?mo.Observable.of(new Kl.q):mo.Observable.of(new Kl.n(e.error))}),this.updateFirmwareOkButton$=this.actions$.ofType(Kl.a.UPDATE_FIRMWARE_OK_BUTTON).do(function(){return i.deviceRendererService.startConnectionPoller()})}return e.prototype.sendUserConfigToKeyboard=function(e){var n=new Ci.UhkBuffer;e.toBinary(n),this.deviceRendererService.saveUserConfiguration(n.getBufferContent())},e.ctorParameters=function(){return[{type:vr.a},{type:zl.m},{type:Ir.a},{type:Tl.m},{type:To.a}]},$r([Object(vr.b)(),Hr("design:type","function"==typeof(n=void 0!==mo.Observable&&mo.Observable)&&n||Object)],e.prototype,"deviceConnectionStateChange$",void 0),$r([Object(vr.b)({dispatch:!1}),Hr("design:type","function"==typeof(t=void 0!==mo.Observable&&mo.Observable)&&t||Object)],e.prototype,"setPrivilegeOnLinux$",void 0),$r([Object(vr.b)(),Hr("design:type","function"==typeof(l=void 0!==mo.Observable&&mo.Observable)&&l||Object)],e.prototype,"setPrivilegeOnLinuxReply$",void 0),$r([Object(vr.b)({dispatch:!1}),Hr("design:type","function"==typeof(o=void 0!==mo.Observable&&mo.Observable)&&o||Object)],e.prototype,"saveConfiguration$",void 0),$r([Object(vr.b)(),Hr("design:type","function"==typeof(i=void 0!==mo.Observable&&mo.Observable)&&i||Object)],e.prototype,"saveConfigurationReply$",void 0),$r([Object(vr.b)(),Hr("design:type","function"==typeof(a=void 0!==mo.Observable&&mo.Observable)&&a||Object)],e.prototype,"autoHideSaveToKeyboardButton$",void 0),$r([Object(vr.b)(),Hr("design:type","function"==typeof(c=void 0!==mo.Observable&&mo.Observable)&&c||Object)],e.prototype,"resetMouseSpeedSettings$",void 0),$r([Object(vr.b)(),Hr("design:type","function"==typeof(u=void 0!==mo.Observable&&mo.Observable)&&u||Object)],e.prototype,"resetUserConfiguration$",void 0),$r([Object(vr.b)(),Hr("design:type",Object)],e.prototype,"saveResetUserConfigurationToDevice$",void 0),$r([Object(vr.b)({dispatch:!1}),Hr("design:type",Object)],e.prototype,"updateFirmware$",void 0),$r([Object(vr.b)({dispatch:!1}),Hr("design:type",Object)],e.prototype,"updateFirmwareWith$",void 0),$r([Object(vr.b)(),Hr("design:type",Object)],e.prototype,"updateFirmwareReply$",void 0),$r([Object(vr.b)({dispatch:!1}),Hr("design:type",Object)],e.prototype,"updateFirmwareOkButton$",void 0),e;var n,t,l,o,i,a,c,u}(),Wr=bl["\u0275cmf"](Al,[wl],function(e){return bl["\u0275mod"]([bl["\u0275mpd"](512,bl.ComponentFactoryResolver,bl["\u0275CodegenComponentFactoryResolver"],[[8,[_l.a,Nl,Vl,Gl,Jl,ao,Oo,Io,Vo,Wc,Xc,tu,gu,Mu,Iu,Xu]],[3,bl.ComponentFactoryResolver],bl.NgModuleRef]),bl["\u0275mpd"](5120,bl.LOCALE_ID,bl["\u0275m"],[[3,bl.LOCALE_ID]]),bl["\u0275mpd"](4608,xl.m,xl.l,[bl.LOCALE_ID]),bl["\u0275mpd"](5120,bl.APP_ID,bl["\u0275f"],[]),bl["\u0275mpd"](5120,bl.IterableDiffers,bl["\u0275k"],[]),bl["\u0275mpd"](5120,bl.KeyValueDiffers,bl["\u0275l"],[]),bl["\u0275mpd"](4608,lo.c,lo.t,[xl.d]),bl["\u0275mpd"](6144,bl.Sanitizer,null,[lo.c]),bl["\u0275mpd"](4608,lo.f,lo.g,[]),bl["\u0275mpd"](5120,lo.d,function(e,n,t,l){return[new lo.l(e),new lo.p(n),new lo.o(t,l)]},[xl.d,xl.d,xl.d,lo.f]),bl["\u0275mpd"](4608,lo.e,lo.e,[lo.d,bl.NgZone]),bl["\u0275mpd"](135680,lo.n,lo.n,[xl.d]),bl["\u0275mpd"](4608,lo.m,lo.m,[lo.e,lo.n]),bl["\u0275mpd"](5120,Qu.a,Zu.d,[]),bl["\u0275mpd"](5120,Qu.c,Zu.e,[]),bl["\u0275mpd"](4608,Qu.b,Zu.c,[Qu.a,Qu.c]),bl["\u0275mpd"](5120,bl.RendererFactory2,Zu.f,[lo.m,Qu.b,bl.NgZone]),bl["\u0275mpd"](6144,lo.q,null,[lo.n]),bl["\u0275mpd"](4608,bl.Testability,bl.Testability,[bl.NgZone]),bl["\u0275mpd"](4608,lo.h,lo.h,[xl.d]),bl["\u0275mpd"](4608,lo.j,lo.j,[xl.d]),bl["\u0275mpd"](4608,er.b,Zu.b,[bl.RendererFactory2,lo.b]),bl["\u0275mpd"](4608,bo["\u0275i"],bo["\u0275i"],[]),bl["\u0275mpd"](4608,su.DragulaService,su.DragulaService,[]),bl["\u0275mpd"](4608,qu.k,qu.k,[]),bl["\u0275mpd"](5120,zl.a,zl.A,[zl.m]),bl["\u0275mpd"](4608,zl.f,zl.f,[]),bl["\u0275mpd"](6144,zl.h,null,[zl.f]),bl["\u0275mpd"](135680,zl.r,zl.r,[zl.m,bl.NgModuleFactoryLoader,bl.Compiler,bl.Injector,zl.h]),bl["\u0275mpd"](4608,zl.g,zl.g,[]),bl["\u0275mpd"](5120,zl.j,zl.D,[zl.B]),bl["\u0275mpd"](5120,bl.APP_BOOTSTRAP_LISTENER,function(e){return[e]},[zl.j]),bl["\u0275mpd"](5120,no.a,nr.c,[nr.b]),bl["\u0275mpd"](4608,to.a,to.a,[]),bl["\u0275mpd"](4608,pa,pa,[]),bl["\u0275mpd"](4608,wi,wi,[]),bl["\u0275mpd"](4608,tr,tr,[Tl.m,zl.m]),bl["\u0275mpd"](4608,lr,lr,[Tl.m,zl.m]),bl["\u0275mpd"](4608,ea,ea,[]),bl["\u0275mpd"](4608,or,or,[Tl.m,zl.m]),bl["\u0275mpd"](4608,ir,ir,[Tl.m,zl.m]),bl["\u0275mpd"](4608,ar,ar,[Tl.m,zl.m]),bl["\u0275mpd"](4608,cr,cr,[Tl.m,zl.m]),bl["\u0275mpd"](4608,ur,ur,[Tl.m,zl.m]),bl["\u0275mpd"](4608,rr,rr,[Tl.m,zl.m]),bl["\u0275mpd"](135680,Tl.k,Tl.k,[Tl.a,Tl.i,Tl.j,Tl.d]),bl["\u0275mpd"](5120,sr.c,sr.d,[sr.k,sr.i]),bl["\u0275mpd"](512,xl.c,xl.c,[]),bl["\u0275mpd"](1024,bl.ErrorHandler,lo.r,[]),bl["\u0275mpd"](1024,bl.NgProbeToken,function(){return[zl.w()]},[]),bl["\u0275mpd"](512,zl.B,zl.B,[bl.Injector]),bl["\u0275mpd"](1024,bl.APP_INITIALIZER,function(e,n,t){return[lo.s(e,n),zl.C(t)]},[[2,lo.i],[2,bl.NgProbeToken],zl.B]),bl["\u0275mpd"](512,bl.ApplicationInitStatus,bl.ApplicationInitStatus,[[2,bl.APP_INITIALIZER]]),bl["\u0275mpd"](131584,bl["\u0275e"],bl["\u0275e"],[bl.NgZone,bl["\u0275Console"],bl.Injector,bl.ErrorHandler,bl.ComponentFactoryResolver,bl.ApplicationInitStatus]),bl["\u0275mpd"](2048,bl.ApplicationRef,null,[bl["\u0275e"]]),bl["\u0275mpd"](512,bl.ApplicationModule,bl.ApplicationModule,[bl.ApplicationRef]),bl["\u0275mpd"](512,lo.a,lo.a,[[3,lo.a]]),bl["\u0275mpd"](512,Zu.a,Zu.a,[]),bl["\u0275mpd"](512,bo["\u0275ba"],bo["\u0275ba"],[]),bl["\u0275mpd"](512,bo.FormsModule,bo.FormsModule,[]),bl["\u0275mpd"](512,dr.DragulaModule,dr.DragulaModule,[]),bl["\u0275mpd"](1024,zl.v,zl.y,[[3,zl.m]]),bl["\u0275mpd"](512,zl.u,zl.c,[]),bl["\u0275mpd"](512,zl.b,zl.b,[]),bl["\u0275mpd"](256,zl.i,{useHash:!0},[]),bl["\u0275mpd"](1024,xl.h,zl.x,[xl.s,[2,xl.a],zl.i]),bl["\u0275mpd"](512,xl.g,xl.g,[xl.h]),bl["\u0275mpd"](512,bl.Compiler,bl.Compiler,[]),bl["\u0275mpd"](512,bl.NgModuleFactoryLoader,bl.SystemJsNgModuleLoader,[bl.Compiler,[2,bl.SystemJsNgModuleLoaderConfig]]),bl["\u0275mpd"](1024,zl.k,function(){return[[{path:"detection",component:Il,canActivate:[or,cr]},{path:"privilege",component:Dl,canActivate:[ar]},{path:"loading",component:Bl,canActivate:[rr]},{path:"",component:Wl,canActivate:[ir,ur],children:[{path:"device",children:[{path:"",redirectTo:"configuration",pathMatch:"full"},{path:"configuration",component:Zl},{path:"mouse-speed",component:Co},{path:"led-brightness",component:So},{path:"firmware",component:Uo}]},{path:"",redirectTo:"keymap",pathMatch:"full"},{path:"keymap",component:$c,canActivate:[tr]},{path:"keymap/add",component:qc},{path:"keymap/:abbr",component:$c},{path:"macro",component:Zc,canActivate:[lr]},{path:"macro/:id",component:mu},{path:"macro/:id/:empty",component:mu},{path:"add-on/:name",component:vu},{path:"settings",component:_u}]}]]},[]),bl["\u0275mpd"](1024,zl.m,zl.z,[bl.ApplicationRef,zl.u,zl.b,xl.g,bl.Injector,bl.NgModuleFactoryLoader,bl.Compiler,zl.k,zl.i,[2,zl.t],[2,zl.l]]),bl["\u0275mpd"](512,zl.p,zl.p,[[2,zl.v],[2,zl.m]]),bl["\u0275mpd"](512,pr.Select2Module,pr.Select2Module,[]),bl["\u0275mpd"](512,go.NouisliderModule,go.NouisliderModule,[]),bl["\u0275mpd"](512,qu.a,qu.a,[]),bl["\u0275mpd"](512,nr.a,nr.a,[]),bl["\u0275mpd"](512,yr,yr,[]),bl["\u0275mpd"](131584,Tl.a,Tl.a,[]),bl["\u0275mpd"](131584,sr.h,sr.h,[]),bl["\u0275mpd"](2048,Tl.h,null,[sr.h]),bl["\u0275mpd"](256,Tl.r,void 0,[]),bl["\u0275mpd"](1024,Tl.d,Tl.v,[Tl.r]),bl["\u0275mpd"](256,Tl.q,{userConfiguration:na.g,presetKeymaps:fr.a,autoUpdateSettings:mr.d,app:kr.h,appUpdate:hr.b,device:gr.e},[]),bl["\u0275mpd"](2048,Tl.t,null,[Tl.q]),bl["\u0275mpd"](1024,Tl.c,Tl.u,[bl.Injector,Tl.q,Tl.t]),bl["\u0275mpd"](256,Tl.s,Tl.w,[]),bl["\u0275mpd"](256,Tl.e,[],[]),bl["\u0275mpd"](1024,Tl.f,Tl.y,[Tl.s,Tl.e]),bl["\u0275mpd"](131584,Tl.g,Tl.g,[Tl.h,Tl.d,Tl.c,Tl.f]),bl["\u0275mpd"](2048,Tl.i,null,[Tl.g]),bl["\u0275mpd"](131584,Tl.j,Tl.j,[]),bl["\u0275mpd"](512,Tl.o,Tl.o,[Tl.a,Tl.i,Tl.j]),bl["\u0275mpd"](1024,sr.k,sr.e,[]),bl["\u0275mpd"](512,sr.l,sr.l,[sr.k]),bl["\u0275mpd"](256,sr.j,{maxAge:10},[]),bl["\u0275mpd"](1024,sr.i,sr.g,[sr.j]),bl["\u0275mpd"](512,sr.a,sr.a,[sr.h,Tl.a,Tl.i,sr.l,Tl.j,Tl.d,sr.i]),bl["\u0275mpd"](1024,Tl.l,sr.f,[sr.a]),bl["\u0275mpd"](512,Tl.m,Tl.m,[Tl.l,Tl.a,Tl.g]),bl["\u0275mpd"](512,br.c,br.a,[]),bl["\u0275mpd"](512,br.d,br.d,[Tl.m,zl.m,br.c]),bl["\u0275mpd"](512,sr.b,sr.b,[]),bl["\u0275mpd"](1024,vr.h,vr.f,[]),bl["\u0275mpd"](512,vr.j,vr.j,[vr.h]),bl["\u0275mpd"](512,vr.c,vr.c,[vr.j]),bl["\u0275mpd"](131584,vr.k,vr.k,[vr.c,Tl.m]),bl["\u0275mpd"](512,vr.a,vr.a,[Tl.j]),bl["\u0275mpd"](512,qu.h,qu.h,[]),bl["\u0275mpd"](256,qu.c,{behaviour:{autoHide:!1},position:{horizontal:{position:"right",distance:12},vertical:{position:"top",distance:12,gap:10}}},[]),bl["\u0275mpd"](1024,qu.d,qu.e,[qu.c]),bl["\u0275mpd"](512,qu.b,qu.b,[qu.h,qu.d]),bl["\u0275mpd"](512,Ar.a,Ar.a,[]),bl["\u0275mpd"](512,Tr,Tr,[Tl.m,bl.NgZone,Ar.a]),bl["\u0275mpd"](512,Mr,Mr,[]),bl["\u0275mpd"](512,Cr,Cr,[Tl.m,bl.NgZone,Ar.a,Mr]),bl["\u0275mpd"](512,Or,Or,[vr.a,qu.b,Tr,Cr,Mr,Tl.m]),bl["\u0275mpd"](512,Pr,Pr,[vr.a,Tr,Mr]),bl["\u0275mpd"](512,Rr.a,Rr.a,[]),bl["\u0275mpd"](512,To.a,To.a,[]),bl["\u0275mpd"](512,Ir.a,Ir.a,[Tl.m,bl.NgZone,Ar.a,Mr]),bl["\u0275mpd"](512,Er.a,Er.a,[vr.a,Rr.a,Tl.m,To.a,Ir.a,Mr,zl.m]),bl["\u0275mpd"](512,Lr,Lr,[vr.a,zl.m,Tl.m]),bl["\u0275mpd"](512,jr,jr,[vr.a,zl.m,Tl.m]),bl["\u0275mpd"](512,Br,Br,[vr.a,Rr.a,Tl.m]),bl["\u0275mpd"](512,Gr,Gr,[vr.a,zl.m,Ir.a,Tl.m,To.a]),bl["\u0275mpd"](1024,vr.g,vr.e,[Or,Pr,Er.a,Lr,jr,Br,Gr]),bl["\u0275mpd"](512,vr.i,vr.i,[vr.c,vr.k,vr.g,[2,Tl.n]]),bl["\u0275mpd"](512,Al,Al,[]),bl["\u0275mpd"](256,nr.b,{confirmButtonType:"danger"},[])])});vl.a.production&&Object(bl.enableProdMode)(),Object(lo.k)().bootstrapModuleFactory(Wr)},YojH:function(e,n,t){"use strict";t.d(n,"a",function(){return l});var l;!function(e){e[e.ANSI=0]="ANSI",e[e.ISO=1]="ISO"}(l||(l={}))},ZRqk:function(e,n,t){"use strict";t.d(n,"a",function(){return r});var l=t("/oeL"),o=t("ADVA"),i=t("UCSK"),a=(t.n(i),t("lCMY")),c=t("CyOy"),u=t("pSU5"),r=function(){function e(e,n,t,l){this.store=e,this.zone=n,this.ipcRenderer=t,this.logService=l,this.registerEvents(),this.logService.info("[DeviceRendererService] init success ")}return e.prototype.setPrivilegeOnLinux=function(){this.ipcRenderer.send(i.IpcEvents.device.setPrivilegeOnLinux)},e.prototype.saveUserConfiguration=function(e){this.ipcRenderer.send(i.IpcEvents.device.saveUserConfiguration,JSON.stringify(e))},e.prototype.loadConfigurationFromKeyboard=function(){this.ipcRenderer.send(i.IpcEvents.device.loadConfigurations)},e.prototype.updateFirmware=function(e){e?this.ipcRenderer.send(i.IpcEvents.device.updateFirmware,JSON.stringify(e)):this.ipcRenderer.send(i.IpcEvents.device.updateFirmware)},e.prototype.startConnectionPoller=function(){this.ipcRenderer.send(i.IpcEvents.device.startConnectionPoller)},e.prototype.registerEvents=function(){var e=this;this.ipcRenderer.on(i.IpcEvents.device.deviceConnectionStateChanged,function(n,t){e.dispachStoreAction(new c.b(t))}),this.ipcRenderer.on(i.IpcEvents.device.setPrivilegeOnLinuxReply,function(n,t){e.dispachStoreAction(new c.k(t))}),this.ipcRenderer.on(i.IpcEvents.device.saveUserConfigurationReply,function(n,t){e.dispachStoreAction(new c.g(t))}),this.ipcRenderer.on(i.IpcEvents.device.loadConfigurationReply,function(n,t){e.dispachStoreAction(new u.d(JSON.parse(t)))}),this.ipcRenderer.on(i.IpcEvents.device.updateFirmwareReply,function(n,t){e.dispachStoreAction(new c.p(t))})},e.prototype.dispachStoreAction=function(e){var n=this;this.logService.info("[DeviceRendererService] dispatch action",JSON.stringify(e)),this.zone.run(function(){return n.store.dispatch(e)})},e.ctorParameters=function(){return[{type:o.m},{type:l.NgZone},{type:a.a},{type:i.LogService}]},e}()},cLwE:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("gx91"),u=function(e){function n(n){var t=e.call(this)||this;return n?(t.x=n.x,t.y=n.y,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertMacroActionType(e),this.x=e.x,this.y=e.y,this},n.prototype.fromBinary=function(e){return this.readAndAssertMacroActionId(e),this.x=e.readInt16(),this.y=e.readInt16(),this},n.prototype.toJsonObject=function(){return{macroActionType:c.macroActionType.MoveMouseMacroAction,x:this.x,y:this.y}},n.prototype.toBinary=function(e){e.writeUInt8(c.MacroActionId.MoveMouseMacroAction),e.writeInt16(this.x),e.writeInt16(this.y)},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"MoveMouseMacroAction"},o([a.assertInt16,i("design:type",Number)],n.prototype,"x",void 0),o([a.assertInt16,i("design:type",Number)],n.prototype,"y",void 0),n}(c.MacroAction);n.MoveMouseMacroAction=u},cVaD:function(e,n,t){"use strict";function l(e,n){switch(void 0===e&&(e=a),n.type){case o.a.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP:return Object.assign({},e,{checkForUpdateOnStartUp:n.payload});case o.a.TOGGLE_PRE_RELEASE_FLAG:return Object.assign({},e,{usePreReleaseUpdate:n.payload});case o.a.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS:return Object.assign({},n.payload);case o.a.CHECK_FOR_UPDATE_NOW:return Object.assign({},e,{checkingForUpdate:!0});case i.a.UPDATE_ERROR:case o.a.CHECK_FOR_UPDATE_SUCCESS:case o.a.CHECK_FOR_UPDATE_FAILED:return Object.assign({},e,{checkingForUpdate:!1});default:return e}}t.d(n,"c",function(){return a}),n.d=l,t.d(n,"b",function(){return c}),t.d(n,"a",function(){return u});var o=t("jo2S"),i=t("vBds"),a={checkForUpdateOnStartUp:!1,usePreReleaseUpdate:!1,checkingForUpdate:!1},c=function(e){return{checkForUpdateOnStartUp:e.checkForUpdateOnStartUp,usePreReleaseUpdate:e.usePreReleaseUpdate}},u=function(e){return e.checkingForUpdate}},"ct+e":function(e,n,t){"use strict";(function(e,t){Object.defineProperty(n,"__esModule",{value:!0});var l=function(){function n(){this._enableDump=!1,this.offset=0,this.bytesToBacktrack=0,this.buffer=new e(n.eepromSize),this.buffer.fill(0)}return n.simpleElementWriter=function(e,n){n.toBinary(e)},n.fromArray=function(e){if(e.length<1)return null;for(var t=new n,l=0,o=e;l0&&!0,t.writeUInt8(i)}return t.offset=0,t},n.prototype.readInt8=function(){var e=this.buffer.readInt8(this.offset);return this.dump("i8("+e+")"),this.bytesToBacktrack=1,this.offset+=this.bytesToBacktrack,e},n.prototype.writeInt8=function(e){this.dump("i8("+e+")"),this.buffer.writeInt8(e,this.offset),this.offset+=1},n.prototype.readUInt8=function(){var e=this.buffer.readUInt8(this.offset);return this.dump("u8("+e+")"),this.bytesToBacktrack=1,this.offset+=this.bytesToBacktrack,e},n.prototype.writeUInt8=function(e){this.dump("u8("+e+")"),this.buffer.writeUInt8(e,this.offset),this.offset+=1},n.prototype.readInt16=function(){var e=this.buffer.readInt16LE(this.offset);return this.dump("i16("+e+")"),this.bytesToBacktrack=2,this.offset+=this.bytesToBacktrack,e},n.prototype.writeInt16=function(e){this.dump("i16("+e+")"),this.buffer.writeInt16LE(e,this.offset),this.offset+=2},n.prototype.readUInt16=function(){var e=this.buffer.readUInt16LE(this.offset);return this.dump("u16("+e+")"),this.bytesToBacktrack=2,this.offset+=this.bytesToBacktrack,e},n.prototype.writeUInt16=function(e){this.dump("u16("+e+")"),this.buffer.writeUInt16LE(e,this.offset),this.offset+=2},n.prototype.readInt32=function(){var e=this.buffer.readInt32LE(this.offset);return this.dump("i32("+e+")"),this.bytesToBacktrack=4,this.offset+=this.bytesToBacktrack,e},n.prototype.writeInt32=function(e){this.dump("i32("+e+")"),this.buffer.writeInt32LE(e,this.offset),this.offset+=4},n.prototype.readUInt32=function(){var e=this.buffer.readUInt32LE(this.offset);return this.dump("u32("+e+")"),this.bytesToBacktrack=4,this.offset+=this.bytesToBacktrack,e},n.prototype.writeUInt32=function(e){this.dump("u32("+e+")"),this.buffer.writeUInt32LE(e,this.offset),this.offset+=4},n.prototype.readCompactLength=function(){var e=this.readUInt8();return e===n.longCompactLengthPrefix&&(e=this.readUInt16()),e},n.prototype.writeCompactLength=function(e){e>=n.longCompactLengthPrefix?(this.writeUInt8(n.longCompactLengthPrefix),this.writeUInt16(e)):this.writeUInt8(e)},n.prototype.readString=function(){var e=this.readCompactLength(),t=this.buffer.toString(n.stringEncoding,this.offset,this.offset+e);return this.dump(n.stringEncoding+"("+t+")"),this.bytesToBacktrack=e,this.offset+=e,t},n.prototype.writeString=function(t){var l=e.byteLength(t,n.stringEncoding);if(l>n.maxCompactLength)throw"Cannot serialize string: "+l+" bytes is larger\n than the maximum allowed length of "+n.maxCompactLength+" bytes";this.writeCompactLength(l),this.dump(n.stringEncoding+"("+t+")"),this.buffer.write(t,this.offset,l,n.stringEncoding),this.offset+=l},n.prototype.readBoolean=function(){return 0!==this.readUInt8()},n.prototype.writeBoolean=function(e){this.writeUInt8(e?1:0)},n.prototype.readArray=function(e){for(var n=[],t=this.readCompactLength(),l=0;ll)throw e.constructor.name+"."+n+": Integer "+o+" is outside the valid ["+t+", "+l+"] interval";this[a]=o}}var a="_"+n;Object.defineProperty(e,n,{get:o,set:i,enumerable:!0,configurable:!0})}function d(e){return function(n,t){function l(){return this[i]}function o(l){if(this[i]!==l){if(void 0===e[l])throw n.constructor.name+"."+t+": "+l+" is not enum";this[i]=l}}var i="_"+t;Object.defineProperty(n,t,{get:l,set:o,enumerable:!0,configurable:!0})}}Object.defineProperty(n,"__esModule",{value:!0}),n.assertUInt8=l,n.assertInt8=o,n.assertUInt16=i,n.assertInt16=a,n.assertUInt32=c,n.assertInt32=u,n.assertCompactLength=r,n.assertEnum=d},eJmH:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});!function(e){e[e.leftCtrl=1]="leftCtrl",e[e.leftShift=2]="leftShift",e[e.leftAlt=4]="leftAlt",e[e.leftGui=8]="leftGui",e[e.rightCtrl=16]="rightCtrl",e[e.rightShift=32]="rightShift",e[e.rightAlt=64]="rightAlt",e[e.rightGui=128]="rightGui"}(n.KeyModifiers||(n.KeyModifiers={}))},f8fa:function(e,n,t){"use strict";function l(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}Object.defineProperty(n,"__esModule",{value:!0}),l(t("3J1y")),l(t("iihV")),l(t("Rrx5")),l(t("3vVa"))},fXLr:function(e,n,t){"use strict";function l(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}Object.defineProperty(n,"__esModule",{value:!0}),l(t("D4Ey")),l(t("lITF")),l(t("gx91")),l(t("cLwE")),l(t("s4X1")),l(t("kNso")),l(t("muqS"));var o=t("kPGt");n.MacroActionHelper=o.Helper},frA5:function(e,n,t){"use strict";function l(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}Object.defineProperty(n,"__esModule",{value:!0}),l(t("CTXo")),l(t("fXLr")),l(t("BQhH")),l(t("eJmH")),l(t("PsbM")),l(t("7wSx")),l(t("EEQ5")),l(t("6bQ0")),l(t("B8XE")),l(t("SGBA")),l(t("7qCM"))},gFIY:function(e,n){function t(e){return Promise.resolve().then(function(){throw new Error("Cannot find module '"+e+"'.")})}t.keys=function(){return[]},t.resolve=t,e.exports=t,t.id="gFIY"},gx91:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l;!function(e){e[e.KeyMacroAction=0]="KeyMacroAction",e[e.LastKeyMacroAction=63]="LastKeyMacroAction",e[e.MouseButtonMacroAction=64]="MouseButtonMacroAction",e[e.LastMouseButtonMacroAction=66]="LastMouseButtonMacroAction",e[e.MoveMouseMacroAction=67]="MoveMouseMacroAction",e[e.ScrollMouseMacroAction=68]="ScrollMouseMacroAction",e[e.DelayMacroAction=69]="DelayMacroAction",e[e.TextMacroAction=70]="TextMacroAction"}(l=n.MacroActionId||(n.MacroActionId={}));!function(e){e[e.tap=0]="tap",e[e.press=1]="press",e[e.release=2]="release"}(n.MacroKeySubAction||(n.MacroKeySubAction={}));!function(e){e[e.click=0]="click",e[e.hold=1]="hold",e[e.release=2]="release"}(n.MacroMouseSubAction||(n.MacroMouseSubAction={})),n.macroActionType={KeyMacroAction:"key",MouseButtonMacroAction:"mouseButton",MoveMouseMacroAction:"moveMouse",ScrollMouseMacroAction:"scrollMouse",DelayMacroAction:"delay",TextMacroAction:"text"};var o=function(){function e(){}return e.prototype.assertMacroActionType=function(e){var t=this.getName(),l=n.macroActionType[t];if(e.macroActionType!==l)throw"Invalid "+t+".macroActionType: "+e.macroActionType},e.prototype.readAndAssertMacroActionId=function(e){var n=this.getName(),t=e.readUInt8(),o=l[n];if(o===l.KeyMacroAction){if(tl.LastKeyMacroAction)throw"Invalid "+n+" first byte: "+t}else if(o===l.MouseButtonMacroAction){if(tl.LastMouseButtonMacroAction)throw"Invalid "+n+" first byte: "+t}else if(t!==o)throw"Invalid "+n+" first byte: "+t;return t},e}();n.MacroAction=o},h0vf:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=function(){function e(){}return e}();n.IpcResponse=l},iihV:function(e,n,t){"use strict";function l(e){for(var t in e)n.hasOwnProperty(t)||(n[t]=e[t])}Object.defineProperty(n,"__esModule",{value:!0}),l(t("dB+R")),l(t("h0vf"))},jo2S:function(e,n,t){"use strict";t.d(n,"a",function(){return i}),t.d(n,"h",function(){return a}),t.d(n,"c",function(){return c}),t.d(n,"d",function(){return u}),t.d(n,"b",function(){return r}),t.d(n,"i",function(){return s}),t.d(n,"e",function(){return d}),t.d(n,"f",function(){return p}),t.d(n,"g",function(){return y});var l=t("UCSK"),o=(t.n(l),"[app-update-config] "),i={TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP:Object(l.type)(o+"Check for update on startup"),CHECK_FOR_UPDATE_NOW:Object(l.type)(o+"Check for update now"),CHECK_FOR_UPDATE_SUCCESS:Object(l.type)(o+"Check for update success"),CHECK_FOR_UPDATE_FAILED:Object(l.type)(o+"Check for update faild"),TOGGLE_PRE_RELEASE_FLAG:Object(l.type)(o+"Toggle pre release update flag"),LOAD_AUTO_UPDATE_SETTINGS:Object(l.type)(o+"Load auto update settings"),LOAD_AUTO_UPDATE_SETTINGS_SUCCESS:Object(l.type)(o+"Load auto update settings success"),SAVE_AUTO_UPDATE_SETTINGS_SUCCESS:Object(l.type)(o+"Save auto update settings success")},a=function(){function e(e){this.payload=e,this.type=i.TOGGLE_CHECK_FOR_UPDATE_ON_STARTUP}return e}(),c=function(){function e(){this.type=i.CHECK_FOR_UPDATE_NOW}return e}(),u=function(){function e(e){this.payload=e,this.type=i.CHECK_FOR_UPDATE_SUCCESS}return e}(),r=function(){function e(e){this.payload=e,this.type=i.CHECK_FOR_UPDATE_FAILED}return e}(),s=function(){function e(e){this.payload=e,this.type=i.TOGGLE_PRE_RELEASE_FLAG}return e}(),d=function(){function e(){this.type=i.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS}return e}(),p=function(){function e(e){this.payload=e,this.type=i.LOAD_AUTO_UPDATE_SETTINGS_SUCCESS}return e}(),y=function(){function e(){this.type=i.SAVE_AUTO_UPDATE_SETTINGS_SUCCESS}return e}()},kGlP:function(e,n,t){"use strict";function l(e,n){switch(void 0===e&&(e=d),n.type){case a.a.APP_STARTED:return s({},e,{started:!0});case a.a.APPLY_COMMAND_LINE_ARGS:return s({},e,{showAddonMenu:n.payload.addons,autoWriteUserConfiguration:n.payload.autoWriteConfig});case a.a.APP_SHOW_NOTIFICATION:var t=n;return t.payload.type!==i.NotificationType.Undoable?e:s({},e,{undoableNotification:t.payload,navigationCountAfterNotification:0});case o.b:var l=s({},e);return l.navigationCountAfterNotification++,l.navigationCountAfterNotification>1&&(l.undoableNotification=null),l;case a.a.UNDO_LAST_SUCCESS:case a.a.DISMISS_UNDO_NOTIFICATION:return s({},e,{undoableNotification:null});case c.a.LOAD_USER_CONFIG_SUCCESS:case c.a.SAVE_USER_CONFIG_SUCCESS:return s({},e,{prevUserConfig:n.payload,configLoading:!1});case c.a.LOAD_CONFIG_FROM_DEVICE:case c.a.LOAD_USER_CONFIG:return s({},e,{configLoading:!0});case a.a.LOAD_HARDWARE_CONFIGURATION_SUCCESS:return s({},e,{hardwareConfig:n.payload});case u.a.CONNECTION_STATE_CHANGED:return!0===n.payload?e:s({},e,{hardwareConfig:null});case a.a.UPDATE_AGENT_VERSION_INFORMATION:return s({},e,{agentVersionInfo:n.payload});default:return e}}n.h=l,t.d(n,"j",function(){return p}),t.d(n,"a",function(){return y}),t.d(n,"g",function(){return f}),t.d(n,"f",function(){return m}),t.d(n,"i",function(){return k}),t.d(n,"d",function(){return h}),t.d(n,"e",function(){return g}),t.d(n,"b",function(){return b}),t.d(n,"c",function(){return v});var o=t("2soc"),i=t("UCSK"),a=(t.n(i),t("5II9")),c=t("pSU5"),u=t("CyOy"),r=t("YojH"),s=this&&this.__assign||Object.assign||function(e){for(var n,t=1,l=arguments.length;t=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("gx91"),u=function(e){function n(n){var t=e.call(this)||this;return n?(t.x=n.x,t.y=n.y,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertMacroActionType(e),this.x=e.x,this.y=e.y,this},n.prototype.fromBinary=function(e){return this.readAndAssertMacroActionId(e),this.x=e.readInt16(),this.y=e.readInt16(),this},n.prototype.toJsonObject=function(){return{macroActionType:c.macroActionType.ScrollMouseMacroAction,x:this.x,y:this.y}},n.prototype.toBinary=function(e){e.writeUInt8(c.MacroActionId.ScrollMouseMacroAction),e.writeInt16(this.x),e.writeInt16(this.y)},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"ScrollMouseMacroAction"},o([a.assertInt16,i("design:type",Number)],n.prototype,"x",void 0),o([a.assertInt16,i("design:type",Number)],n.prototype,"y",void 0),n}(c.MacroAction);n.ScrollMouseMacroAction=u},kPGt:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=t("ct+e"),o=t("gx91"),i=t("lITF"),a=t("s4X1"),c=t("cLwE"),u=t("kNso"),r=t("D4Ey"),s=t("muqS"),d=function(){function e(){}return e.createMacroAction=function(n){return n instanceof o.MacroAction?e.fromMacroAction(n):n instanceof l.UhkBuffer?e.fromUhkBuffer(n):e.fromJSONObject(n)},e.fromUhkBuffer=function(e){var n=e.readUInt8();if(e.backtrack(),n>=o.MacroActionId.KeyMacroAction&&n<=o.MacroActionId.LastKeyMacroAction)return(new i.KeyMacroAction).fromBinary(e);if(n>=o.MacroActionId.MouseButtonMacroAction&&n<=o.MacroActionId.LastMouseButtonMacroAction)return(new a.MouseButtonMacroAction).fromBinary(e);switch(n){case o.MacroActionId.MoveMouseMacroAction:return(new c.MoveMouseMacroAction).fromBinary(e);case o.MacroActionId.ScrollMouseMacroAction:return(new u.ScrollMouseMacroAction).fromBinary(e);case o.MacroActionId.DelayMacroAction:return(new r.DelayMacroAction).fromBinary(e);case o.MacroActionId.TextMacroAction:return(new s.TextMacroAction).fromBinary(e);default:throw"Invalid MacroAction first byte: "+n}},e.fromMacroAction=function(e){var n;return e instanceof i.KeyMacroAction?n=new i.KeyMacroAction(e):e instanceof a.MouseButtonMacroAction?n=new a.MouseButtonMacroAction(e):e instanceof c.MoveMouseMacroAction?n=new c.MoveMouseMacroAction(e):e instanceof u.ScrollMouseMacroAction?n=new u.ScrollMouseMacroAction(e):e instanceof r.DelayMacroAction?n=new r.DelayMacroAction(e):e instanceof s.TextMacroAction&&(n=new s.TextMacroAction(e)),n},e.fromJSONObject=function(e){switch(e.macroActionType){case o.macroActionType.KeyMacroAction:return(new i.KeyMacroAction).fromJsonObject(e);case o.macroActionType.MouseButtonMacroAction:return(new a.MouseButtonMacroAction).fromJsonObject(e);case o.macroActionType.MoveMouseMacroAction:return(new c.MoveMouseMacroAction).fromJsonObject(e);case o.macroActionType.ScrollMouseMacroAction:return(new u.ScrollMouseMacroAction).fromJsonObject(e);case o.macroActionType.DelayMacroAction:return(new r.DelayMacroAction).fromJsonObject(e);case o.macroActionType.TextMacroAction:return(new s.TextMacroAction).fromJsonObject(e);default:throw'Invalid MacroAction.macroActionType: "'+e.macroActionType+'"'}},e}();n.Helper=d},lCMY:function(e,n,t){"use strict";t.d(n,"a",function(){return l});var l=function(){function e(){}return e.prototype.send=function(e){for(var n=[],t=1;t=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("gx91"),u=t("CTXo"),r=function(e){function n(n){var t=e.call(this)||this;return n?(t.action=n.action,t.type=n.type,t.scancode=n.scancode,t.modifierMask=n.modifierMask,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertMacroActionType(e),this.action=c.MacroKeySubAction[e.action],"media"===e.type?this.type=e.scancode<256?u.KeystrokeType.shortMedia:u.KeystrokeType.longMedia:this.type=u.KeystrokeType[e.type],this.scancode=e.scancode,this.modifierMask=e.modifierMask,this},n.prototype.fromBinary=function(e){var n=this.readAndAssertMacroActionId(e),t=n-c.MacroActionId.KeyMacroAction;return this.action=3&t,t>>=2,this.type=3&t,t>>=2,2&t&&(this.scancode=e.readUInt8()),1&t&&(this.modifierMask=e.readUInt8()),this},n.prototype.toJsonObject=function(){var e={macroActionType:c.macroActionType.KeyMacroAction,action:c.MacroKeySubAction[this.action]};return this.hasScancode()&&(this.type===u.KeystrokeType.shortMedia||this.type===u.KeystrokeType.longMedia?e.type="media":e.type=u.KeystrokeType[this.type],e.scancode=this.scancode),this.hasModifiers()&&(e.modifierMask=this.modifierMask),e},n.prototype.toBinary=function(e){var n=0;n|=this.action,n|=this.type<<2,n|=(this.hasScancode()?2:0)+(this.hasModifiers()?1:0)<<4;var t=c.MacroActionId.KeyMacroAction+n;e.writeUInt8(t),this.hasScancode()&&e.writeUInt8(this.scancode),this.hasModifiers()&&e.writeUInt8(this.modifierMask)},n.prototype.toString=function(){return''},n.prototype.isModifierActive=function(e){return(this.modifierMask&e)>0},n.prototype.hasScancode=function(){return!!this.scancode},n.prototype.hasModifiers=function(){return!!this.modifierMask},n.prototype.isPressAction=function(){return this.action===c.MacroKeySubAction.press},n.prototype.isTapAction=function(){return this.action===c.MacroKeySubAction.tap},n.prototype.isReleaseAction=function(){return this.action===c.MacroKeySubAction.release},n.prototype.getName=function(){return"KeyMacroAction"},o([a.assertEnum(c.MacroKeySubAction),i("design:type",Number)],n.prototype,"action",void 0),o([a.assertEnum(u.KeystrokeType),i("design:type",Number)],n.prototype,"type",void 0),o([a.assertUInt8,i("design:type",Number)],n.prototype,"scancode",void 0),o([a.assertUInt8,i("design:type",Number)],n.prototype,"modifierMask",void 0),n}(c.MacroAction);n.KeyMacroAction=r},muqS:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}();Object.defineProperty(n,"__esModule",{value:!0});var o=t("gx91"),i=function(e){function n(n){var t=e.call(this)||this;return n?(t.text=n.text,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertMacroActionType(e),this.text=e.text,this},n.prototype.fromBinary=function(e){return this.readAndAssertMacroActionId(e),this.text=e.readString(),this},n.prototype.toJsonObject=function(){return{macroActionType:o.macroActionType.TextMacroAction,text:this.text}},n.prototype.toBinary=function(e){e.writeUInt8(o.MacroActionId.TextMacroAction),e.writeString(this.text)},n.prototype.toString=function(){return''},n.prototype.getName=function(){return"TextMacroAction"},n}(o.MacroAction);n.TextMacroAction=i},n4Nn:function(e,n,t){"use strict";function l(e,n){if(!n)return 0;i||(i=document.createElement("canvas"));var t=i.getContext("2d");return t.font=e.font,t.measureText(n).width}function o(e){return e&&e.trim().length>0}var i;t.d(n,"a",function(){return l}),t.d(n,"b",function(){return o})},nAMu:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var l=t("CTXo");!function(e){function n(e){for(var n=0,t=e;n=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a=t("eEV6"),c=t("gx91");!function(e){e[e.Left=1]="Left",e[e.Middle=2]="Middle",e[e.Right=4]="Right"}(n.MouseButtons||(n.MouseButtons={}));var u=function(e){function n(n){var t=e.call(this)||this;return n?(t.action=n.action,t.mouseButtonsMask=n.mouseButtonsMask,t):t}return l(n,e),n.prototype.fromJsonObject=function(e){return this.assertMacroActionType(e),this.action=c.MacroMouseSubAction[e.action],this.mouseButtonsMask=e.mouseButtonsMask,this},n.prototype.fromBinary=function(e){var n=this.readAndAssertMacroActionId(e);return this.action=n-c.MacroActionId.MouseButtonMacroAction,this.mouseButtonsMask=e.readUInt8(),this},n.prototype.toJsonObject=function(){return{macroActionType:c.macroActionType.MouseButtonMacroAction,action:c.MacroMouseSubAction[this.action],mouseButtonsMask:this.mouseButtonsMask}},n.prototype.toBinary=function(e){e.writeUInt8(c.MacroActionId.MouseButtonMacroAction+this.action),e.writeUInt8(this.mouseButtonsMask)},n.prototype.setMouseButtons=function(e){for(var n=0,t=0;t>>=1)e.push(Boolean(1&n));return e},n.prototype.toString=function(){return''},n.prototype.hasButtons=function(){return 0!==this.mouseButtonsMask},n.prototype.isOnlyClickAction=function(){return this.action===c.MacroMouseSubAction.click},n.prototype.isOnlyHoldAction=function(){return this.action===c.MacroMouseSubAction.hold},n.prototype.isOnlyReleaseAction=function(){return this.action===c.MacroMouseSubAction.release},n.prototype.getName=function(){return"MouseButtonMacroAction"},o([a.assertEnum(c.MacroMouseSubAction),i("design:type",Number)],n.prototype,"action",void 0),o([a.assertUInt8,i("design:type",Number)],n.prototype,"mouseButtonsMask",void 0),n}(c.MacroAction);n.MouseButtonMacroAction=u},v4Uh:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});!function(e){e.transferRegExp=/USB\[T]:/,e.writeRegExp=/USB\[W]:/,e.readRegExp=/USB\[R]: 00/,e.errorRegExp=/(?:(USB\[R]: ([^0]|0[^0])))/}(n.LogRegExps||(n.LogRegExps={}))},vBds:function(e,n,t){"use strict";t.d(n,"a",function(){return i}),t.d(n,"c",function(){return a}),t.d(n,"b",function(){return c}),t.d(n,"d",function(){return u}),t.d(n,"e",function(){return r});var l=t("UCSK"),o=(t.n(l),"[app-update] "),i={UPDATE_AVAILABLE:Object(l.type)(o+"update available"),UPDATE_APP:Object(l.type)(o+"update app"),DO_NOT_UPDATE_APP:Object(l.type)(o+"do not update app"),UPDATE_DOWNLOADED:Object(l.type)(o+"update downloaded"),UPDATING:Object(l.type)(o+"updating"),UPDATE_ERROR:Object(l.type)(o+"error")},a=(function(){function e(){this.type=i.UPDATE_AVAILABLE}}(),function(){function e(){this.type=i.UPDATE_APP}return e}()),c=function(){function e(){this.type=i.DO_NOT_UPDATE_APP}return e}(),u=function(){function e(){this.type=i.UPDATE_DOWNLOADED}return e}(),r=(function(){function e(){this.type=i.UPDATING}}(),function(){function e(e){this.payload=e,this.type=i.UPDATE_ERROR}return e}())},xDyD:function(e,n,t){"use strict";t.d(n,"a",function(){return o});var l=t("UCSK"),o=(t.n(l),function(){function e(){this._defaultConfig=(new l.UserConfiguration).fromJsonObject(t("yEWy"))}return e.prototype.getDefault=function(){return this._defaultConfig},e.ctorParameters=function(){return[]},e}())},yEWy:function(e,n){e.exports={userConfigMajorVersion:4,userConfigMinorVersion:0,userConfigPatchVersion:0,deviceName:"My UHK",doubleTapSwitchLayerTimeout:250,iconsAndLayerTextsBrightness:255,alphanumericSegmentsBrightness:255,keyBacklightBrightness:255,mouseMoveInitialSpeed:5,mouseMoveAcceleration:35,mouseMoveDeceleratedSpeed:10,mouseMoveBaseSpeed:40,mouseMoveAcceleratedSpeed:80,mouseScrollInitialSpeed:20,mouseScrollAcceleration:20,mouseScrollDeceleratedSpeed:20,mouseScrollBaseSpeed:20,mouseScrollAcceleratedSpeed:50,moduleConfigurations:[],keymaps:[{isDefault:!0,abbreviation:"QWR",name:"QWERTY for PC",description:"",layers:[{modules:[{id:0,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:!1},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,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:!1},{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},{keyActionType:"keystroke",type:"basic",scancode:100},{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:!1},{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:1},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:5},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:4},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:5},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:3},{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:3},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"TES"},{keyActionType:"keystroke",type:"media",scancode:176},{keyActionType:"keystroke",type:"media",scancode:233},{keyActionType:"keystroke",type:"media",scancode:183},null,{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,{keyActionType:"keystroke",type:"media",scancode:183},null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"switchLayer",layer:"fn",toggle:!1},null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},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,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"switchLayer",layer:"mouse",toggle:!1},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},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]},{isDefault:!1,abbreviation:"DVO",name:"Dvorak for PC",description:"",layers:[{modules:[{id:0,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:47},{keyActionType:"keystroke",type:"basic",scancode:48},{keyActionType:"keystroke",type:"basic",scancode:42},{keyActionType:"keystroke",type:"basic",scancode:10},{keyActionType:"keystroke",type:"basic",scancode:6},{keyActionType:"keystroke",type:"basic",scancode:21},{keyActionType:"keystroke",type:"basic",scancode:15},{keyActionType:"keystroke",type:"basic",scancode:56},{keyActionType:"keystroke",type:"basic",scancode:46},{keyActionType:"keystroke",type:"basic",scancode:49},{keyActionType:"keystroke",type:"basic",scancode:9},{keyActionType:"keystroke",type:"basic",scancode:11},{keyActionType:"keystroke",type:"basic",scancode:23},{keyActionType:"keystroke",type:"basic",scancode:17},{keyActionType:"keystroke",type:"basic",scancode:22},{keyActionType:"keystroke",type:"basic",scancode:45},{keyActionType:"keystroke",type:"basic",scancode:40},{keyActionType:"keystroke",type:"basic",scancode:7},{keyActionType:"keystroke",type:"basic",scancode:5},{keyActionType:"keystroke",type:"basic",scancode:16},{keyActionType:"keystroke",type:"basic",scancode:26},{keyActionType:"keystroke",type:"basic",scancode:25},{keyActionType:"keystroke",type:"basic",scancode:29},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,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:52},{keyActionType:"keystroke",type:"basic",scancode:54},{keyActionType:"keystroke",type:"basic",scancode:55},{keyActionType:"keystroke",type:"basic",scancode:19},null,{keyActionType:"keystroke",type:"basic",scancode:28},{keyActionType:"switchLayer",layer:"mouse",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:4},{keyActionType:"keystroke",type:"basic",scancode:18},{keyActionType:"keystroke",type:"basic",scancode:8},{keyActionType:"keystroke",type:"basic",scancode:24},null,{keyActionType:"keystroke",type:"basic",scancode:12},{keyActionType:"keystroke",type:"basic",modifierMask:2},{keyActionType:"keystroke",type:"basic",scancode:100},{keyActionType:"keystroke",type:"basic",scancode:51},{keyActionType:"keystroke",type:"basic",scancode:20},{keyActionType:"keystroke",type:"basic",scancode:13},{keyActionType:"keystroke",type:"basic",scancode:14},{keyActionType:"keystroke",type:"basic",scancode:27},{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:1},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:5},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:4},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:5},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:3},{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:3},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"TES"},{keyActionType:"keystroke",type:"media",scancode:176},{keyActionType:"keystroke",type:"media",scancode:233},{keyActionType:"keystroke",type:"media",scancode:183},null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},null,{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,null,null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"switchLayer",layer:"fn",toggle:!1},null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},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,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"switchLayer",layer:"mouse",toggle:!1},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},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]},{isDefault:!1,abbreviation:"COL",name:"Colemak for PC",description:"",layers:[{modules:[{id:0,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:15},{keyActionType:"keystroke",type:"basic",scancode:24},{keyActionType:"keystroke",type:"basic",scancode:28},{keyActionType:"keystroke",type:"basic",scancode:51},{keyActionType:"keystroke",type:"basic",scancode:47},{keyActionType:"keystroke",type:"basic",scancode:48},{keyActionType:"keystroke",type:"basic",scancode:49},{keyActionType:"keystroke",type:"basic",scancode:13},{keyActionType:"keystroke",type:"basic",scancode:17},{keyActionType:"keystroke",type:"basic",scancode:8},{keyActionType:"keystroke",type:"basic",scancode:12},{keyActionType:"keystroke",type:"basic",scancode:18},{keyActionType:"keystroke",type:"basic",scancode:52},{keyActionType:"keystroke",type:"basic",scancode:40},{keyActionType:"keystroke",type:"basic",scancode:11},{keyActionType:"keystroke",type:"basic",scancode:14},{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:!1},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,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:9},{keyActionType:"keystroke",type:"basic",scancode:19},null,{keyActionType:"keystroke",type:"basic",scancode:10},{keyActionType:"switchLayer",layer:"mouse",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:4},{keyActionType:"keystroke",type:"basic",scancode:21},{keyActionType:"keystroke",type:"basic",scancode:22},{keyActionType:"keystroke",type:"basic",scancode:23},null,{keyActionType:"keystroke",type:"basic",scancode:7},{keyActionType:"keystroke",type:"basic",modifierMask:2},{keyActionType:"keystroke",type:"basic",scancode:100},{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:!1},{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:1},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:5},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:4},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:5},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:3},{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:3},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]}]},{modules:[{id:0,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,{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,null,null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"switchLayer",layer:"fn",toggle:!1},null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"TES"},{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},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,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"switchLayer",layer:"mouse",toggle:!1},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},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]},{isDefault:!1,abbreviation:"TES",name:"Test",description:"",layers:[{modules:[{id:0,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:63},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:64,secondaryRoleAction:"fn"},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67}]},{id:1,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:"keystroke",type:"basic",scancode:41},{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},{keyActionType:"keystroke",type:"basic",scancode:100},{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",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61,secondaryRoleAction:"fn"},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:62},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:1},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:5},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:4},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:5},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,{keyActionType:"keystroke",type:"basic",scancode:75,modifierMask:3},{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:78,modifierMask:3},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},null,null,null,null]}]},{modules:[{id:0,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,{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,{keyActionType:"keystroke",type:"media",scancode:183},null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"keystroke",type:"basic",modifierMask:4},null,null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},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,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,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},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]},{isDefault:!1,abbreviation:"COM",name:"Colemak for Mac",description:"",layers:[{modules:[{id:0,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:15},{keyActionType:"keystroke",type:"basic",scancode:24},{keyActionType:"keystroke",type:"basic",scancode:28},{keyActionType:"keystroke",type:"basic",scancode:51},{keyActionType:"keystroke",type:"basic",scancode:47},{keyActionType:"keystroke",type:"basic",scancode:48},{keyActionType:"keystroke",type:"basic",scancode:49},{keyActionType:"keystroke",type:"basic",scancode:13},{keyActionType:"keystroke",type:"basic",scancode:17},{keyActionType:"keystroke",type:"basic",scancode:8},{keyActionType:"keystroke",type:"basic",scancode:12},{keyActionType:"keystroke",type:"basic",scancode:18},{keyActionType:"keystroke",type:"basic",scancode:52},{keyActionType:"keystroke",type:"basic",scancode:40},{keyActionType:"keystroke",type:"basic",scancode:11},{keyActionType:"keystroke",type:"basic",scancode:14},{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:!1},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,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:9},{keyActionType:"keystroke",type:"basic",scancode:19},null,{keyActionType:"keystroke",type:"basic",scancode:10},{keyActionType:"switchLayer",layer:"mouse",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:4},{keyActionType:"keystroke",type:"basic",scancode:21},{keyActionType:"keystroke",type:"basic",scancode:22},{keyActionType:"keystroke",type:"basic",scancode:23},null,{keyActionType:"keystroke",type:"basic",scancode:7},{keyActionType:"keystroke",type:"basic",modifierMask:2},{keyActionType:"keystroke",type:"basic",scancode:100},{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:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null,{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:12},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:8},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:12},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:8},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:1},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:8},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]}]},{modules:[{id:0,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,{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"switchLayer",layer:"fn",toggle:!1},null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"TES"},{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollDown"},{keyActionType:"mouse",mouseAction:"moveLeft"},{keyActionType:"mouse",mouseAction:"moveDown"},{keyActionType:"mouse",mouseAction:"moveRight"},null,null,null,{keyActionType:"mouse",mouseAction:"scrollUp"},null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"switchLayer",layer:"mouse",toggle:!1},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:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]},{isDefault:!1,abbreviation:"DVM",name:"Dvorak for Mac",description:"",layers:[{modules:[{id:0,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:47},{keyActionType:"keystroke",type:"basic",scancode:48},{keyActionType:"keystroke",type:"basic",scancode:42},{keyActionType:"keystroke",type:"basic",scancode:10},{keyActionType:"keystroke",type:"basic",scancode:6},{keyActionType:"keystroke",type:"basic",scancode:21},{keyActionType:"keystroke",type:"basic",scancode:15},{keyActionType:"keystroke",type:"basic",scancode:56},{keyActionType:"keystroke",type:"basic",scancode:46},{keyActionType:"keystroke",type:"basic",scancode:49},{keyActionType:"keystroke",type:"basic",scancode:9},{keyActionType:"keystroke",type:"basic",scancode:11},{keyActionType:"keystroke",type:"basic",scancode:23},{keyActionType:"keystroke",type:"basic",scancode:17},{keyActionType:"keystroke",type:"basic",scancode:22},{keyActionType:"keystroke",type:"basic",scancode:45},{keyActionType:"keystroke",type:"basic",scancode:40},{keyActionType:"keystroke",type:"basic",scancode:7},{keyActionType:"keystroke",type:"basic",scancode:5},{keyActionType:"keystroke",type:"basic",scancode:16},{keyActionType:"keystroke",type:"basic",scancode:26},{keyActionType:"keystroke",type:"basic",scancode:25},{keyActionType:"keystroke",type:"basic",scancode:29},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,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:52},{keyActionType:"keystroke",type:"basic",scancode:54},{keyActionType:"keystroke",type:"basic",scancode:55},{keyActionType:"keystroke",type:"basic",scancode:19},null,{keyActionType:"keystroke",type:"basic",scancode:28},{keyActionType:"switchLayer",layer:"mouse",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:4},{keyActionType:"keystroke",type:"basic",scancode:18},{keyActionType:"keystroke",type:"basic",scancode:8},{keyActionType:"keystroke",type:"basic",scancode:24},null,{keyActionType:"keystroke",type:"basic",scancode:12},{keyActionType:"keystroke",type:"basic",modifierMask:2},{keyActionType:"keystroke",type:"basic",scancode:100},{keyActionType:"keystroke",type:"basic",scancode:51},{keyActionType:"keystroke",type:"basic",scancode:20},{keyActionType:"keystroke",type:"basic",scancode:13},{keyActionType:"keystroke",type:"basic",scancode:14},{keyActionType:"keystroke",type:"basic",scancode:27},{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null,{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:12},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:8},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:12},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:8},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:1},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:8},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"TES"},{keyActionType:"keystroke",type:"media",scancode:176},{keyActionType:"keystroke",type:"media",scancode:233},{keyActionType:"keystroke",type:"media",scancode:183},null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},{keyActionType:"switchKeymap",keymapAbbreviation:"QWM"},null,{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,null,null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"switchLayer",layer:"fn",toggle:!1},null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},null,{keyActionType:"mouse",mouseAction:"scrollDown"},{keyActionType:"mouse",mouseAction:"moveLeft"},{keyActionType:"mouse",mouseAction:"moveDown"},{keyActionType:"mouse",mouseAction:"moveRight"},null,null,null,{keyActionType:"mouse",mouseAction:"scrollUp"},null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"switchLayer",layer:"mouse",toggle:!1},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:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]},{isDefault:!1,abbreviation:"QWM",name:"QWERTY for Mac",description:"",layers:[{modules:[{id:0,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:!1},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,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:!1},{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},{keyActionType:"keystroke",type:"basic",scancode:100},{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:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",scancode:44},{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]},{id:2,keyActions:[]}]},{modules:[{id:0,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:64},{keyActionType:"keystroke",type:"basic",scancode:65},{keyActionType:"keystroke",type:"basic",scancode:66},{keyActionType:"keystroke",type:"basic",scancode:67},{keyActionType:"keystroke",type:"basic",scancode:68},{keyActionType:"keystroke",type:"basic",scancode:69},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:74},{keyActionType:"keystroke",type:"basic",scancode:82},{keyActionType:"keystroke",type:"basic",scancode:77},{keyActionType:"keystroke",type:"basic",scancode:76},{keyActionType:"keystroke",type:"basic",scancode:70},{keyActionType:"keystroke",type:"basic",scancode:71},{keyActionType:"keystroke",type:"basic",scancode:72},{keyActionType:"keystroke",type:"basic",scancode:75},{keyActionType:"keystroke",type:"basic",scancode:80},{keyActionType:"keystroke",type:"basic",scancode:81},{keyActionType:"keystroke",type:"basic",scancode:79},{keyActionType:"keystroke",type:"basic",scancode:73},null,null,{keyActionType:"keystroke",type:"basic",scancode:78},{keyActionType:"keystroke",type:"basic",scancode:41},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:118},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null,{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:58},{keyActionType:"keystroke",type:"basic",scancode:59},{keyActionType:"keystroke",type:"basic",scancode:60},{keyActionType:"keystroke",type:"basic",scancode:61},{keyActionType:"keystroke",type:"basic",scancode:62},{keyActionType:"keystroke",type:"basic",scancode:63},null,{keyActionType:"keystroke",type:"basic",scancode:41},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:12},{keyActionType:"keystroke",type:"basic",scancode:23,modifierMask:8},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:12},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:57,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:80,modifierMask:1},{keyActionType:"keystroke",type:"basic",scancode:43,modifierMask:8},{keyActionType:"keystroke",type:"basic",scancode:79,modifierMask:1},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"basic",scancode:26,modifierMask:8},null,null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},null,null,{keyActionType:"switchLayer",layer:"mod",toggle:!1},null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,{keyActionType:"switchKeymap",keymapAbbreviation:"TES"},{keyActionType:"keystroke",type:"media",scancode:176},{keyActionType:"keystroke",type:"media",scancode:233},{keyActionType:"keystroke",type:"media",scancode:183},null,{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},null,null,{keyActionType:"keystroke",type:"media",scancode:182},{keyActionType:"keystroke",type:"media",scancode:234},{keyActionType:"keystroke",type:"media",scancode:181},null,{keyActionType:"keystroke",type:"system",scancode:131},null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:226},null,{keyActionType:"keystroke",type:"system",scancode:130},{keyActionType:"keystroke",type:"basic",modifierMask:32},null,null,null,{keyActionType:"switchLayer",layer:"fn",toggle:!1},{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,{keyActionType:"switchKeymap",keymapAbbreviation:"QWR"},{keyActionType:"switchKeymap",keymapAbbreviation:"DVO"},{keyActionType:"switchKeymap",keymapAbbreviation:"COL"},null,{keyActionType:"switchKeymap",keymapAbbreviation:"DVM"},{keyActionType:"switchKeymap",keymapAbbreviation:"COM"},null,null,{keyActionType:"keystroke",type:"media",scancode:183},null,null,null,null,null,null,null,{keyActionType:"keystroke",type:"media",scancode:406},null,null,null,{keyActionType:"keystroke",type:"basic",modifierMask:2},null,null,null,{keyActionType:"keystroke",type:"media",scancode:402},{keyActionType:"keystroke",type:"media",scancode:184},null,{keyActionType:"keystroke",type:"basic",modifierMask:1},{keyActionType:"keystroke",type:"basic",modifierMask:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},{keyActionType:"switchLayer",layer:"fn",toggle:!1},null,null,null]}]},{modules:[{id:0,keyActions:[null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollLeft"},{keyActionType:"mouse",mouseAction:"moveUp"},{keyActionType:"mouse",mouseAction:"scrollRight"},null,null,null,null,{keyActionType:"mouse",mouseAction:"scrollDown"},{keyActionType:"mouse",mouseAction:"moveLeft"},{keyActionType:"mouse",mouseAction:"moveDown"},{keyActionType:"mouse",mouseAction:"moveRight"},null,null,null,{keyActionType:"mouse",mouseAction:"scrollUp"},null,null,null,null,null,null,null,{keyActionType:"mouse",mouseAction:"leftClick"},{keyActionType:"mouse",mouseAction:"rightClick"},null,{keyActionType:"keystroke",type:"basic",modifierMask:128},{keyActionType:"keystroke",type:"basic",modifierMask:64},{keyActionType:"keystroke",type:"basic",modifierMask:16}]},{id:1,keyActions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,{keyActionType:"switchLayer",layer:"mouse",toggle:!1},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:4},{keyActionType:"keystroke",type:"basic",modifierMask:8},null,{keyActionType:"mouse",mouseAction:"decelerate"},{keyActionType:"mouse",mouseAction:"accelerate"},null]}]}]}],macros:[{isLooped:!1,isPrivate:!0,name:"Type Silent Bob's address",macroActions:[{macroActionType:"text",text:"Silent Bob\n711-2880 Nulla St.\nMankato Mississippi 96522\n(257) 563-7401"}]},{isLooped:!0,isPrivate:!0,name:"Go to UHK site in browser",macroActions:[{macroActionType:"key",action:"tap",type:"basic",scancode:15,modifierMask:1},{macroActionType:"text",text:"https://ultimatehackingkeyboard.com"},{macroActionType:"key",action:"tap",type:"basic",scancode:40}]},{isLooped:!1,isPrivate:!0,name:"God mode in Doom",macroActions:[{macroActionType:"text",text:"iddqd"}]}]}},ycRK:function(e,n,t){"use strict";var l=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])};return function(n,t){function l(){this.constructor=n}e(n,t),n.prototype=null===t?Object.create(t):(l.prototype=t.prototype,new l)}}(),o=this&&this.__decorate||function(e,n,t,l){var o,i=arguments.length,a=i<3?n:null===l?l=Object.getOwnPropertyDescriptor(n,t):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,l);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(n,t,a):o(n,t))||a);return i>3&&a&&Object.defineProperty(n,t,a),a},i=this&&this.__metadata||function(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)};Object.defineProperty(n,"__esModule",{value:!0});var a,c=t("eEV6"),u=t("EEQ5"),r=t("N4Uw"),s=t("CyG/");!function(e){e[e.scancode=1]="scancode",e[e.modifierMask=2]="modifierMask",e[e.secondaryRoleAction=4]="secondaryRoleAction"}(a=n.KeystrokeActionFlag||(n.KeystrokeActionFlag={}));var d=["LCtrl","LShift","LAlt","LSuper","RCtrl","RShift","RAlt","RSuper"],p=function(e){function n(n){var t=e.call(this)||this;return n?(t.type=n.type,t._scancode=n._scancode,t.modifierMask=n.modifierMask,t.secondaryRoleAction=n.secondaryRoleAction,t):t}return l(n,e),Object.defineProperty(n.prototype,"scancode",{get:function(){return this._scancode},set:function(e){this._scancode=e,this.type!==s.KeystrokeType.shortMedia&&this.type!==s.KeystrokeType.longMedia||(this.type=e<256?s.KeystrokeType.shortMedia:s.KeystrokeType.longMedia)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"type",{get:function(){return this._type},set:function(e){e!==s.KeystrokeType.shortMedia&&e!==s.KeystrokeType.longMedia||(e=this.scancode<256?s.KeystrokeType.shortMedia:s.KeystrokeType.longMedia),this._type=e},enumerable:!0,configurable:!0}),n.prototype.fromJsonObject=function(e){return this.assertKeyActionType(e),"media"===e.type?this.type=e.scancode<256?s.KeystrokeType.shortMedia:s.KeystrokeType.longMedia:this.type=s.KeystrokeType[e.type],this._scancode=e.scancode,this.modifierMask=e.modifierMask,this.secondaryRoleAction=u.SecondaryRoleAction[e.secondaryRoleAction],this},n.prototype.fromBinary=function(e){var n=this.readAndAssertKeyActionId(e),t=n-r.KeyActionId.NoneAction;return this.type=t>>3&3,t&a.scancode&&(this._scancode=this.type===s.KeystrokeType.longMedia?e.readUInt16():e.readUInt8()),t&a.modifierMask&&(this.modifierMask=e.readUInt8()),t&a.secondaryRoleAction&&(this.secondaryRoleAction=e.readUInt8()),this},n.prototype.toJsonObject=function(){var e={keyActionType:r.keyActionType.KeystrokeAction};return this.type===s.KeystrokeType.shortMedia||this.type===s.KeystrokeType.longMedia?e.type="media":e.type=s.KeystrokeType[this.type],this.hasScancode()&&(e.scancode=this._scancode),this.hasActiveModifier()&&(e.modifierMask=this.modifierMask),this.hasSecondaryRoleAction()&&(e.secondaryRoleAction=u.SecondaryRoleAction[this.secondaryRoleAction]),e},n.prototype.toBinary=function(e){var n=0,t=[];this.hasScancode()&&(n|=a.scancode,t.push({data:this._scancode,long:this.type===s.KeystrokeType.longMedia})),this.hasActiveModifier()&&(n|=a.modifierMask,t.push({data:this.modifierMask,long:!1})),this.hasSecondaryRoleAction()&&(n|=a.secondaryRoleAction,t.push({data:this.secondaryRoleAction,long:!1}));var l=n+(this.type<<3);e.writeUInt8(r.KeyActionId.NoneAction+l);for(var o=0;o"},n.prototype.isActive=function(e){return(this.modifierMask&e)>0},n.prototype.hasActiveModifier=function(){return this.modifierMask>0},n.prototype.hasSecondaryRoleAction=function(){return void 0!==this.secondaryRoleAction&&null!==this.secondaryRoleAction},n.prototype.hasScancode=function(){return!!this._scancode},n.prototype.hasOnlyOneActiveModifier=function(){return 0!==this.modifierMask&&!(this.modifierMask&this.modifierMask-1)},n.prototype.getModifierList=function(){for(var e=[],n=this.modifierMask,t=0;0!==n;++t,n>>=1)1&n&&e.push(d[t]);return e},n.prototype.getName=function(){return"KeystrokeAction"},o([c.assertUInt8,i("design:type",Number)],n.prototype,"modifierMask",void 0),o([c.assertEnum(u.SecondaryRoleAction),i("design:type",Number)],n.prototype,"secondaryRoleAction",void 0),o([c.assertEnum(s.KeystrokeType),i("design:type",Number)],n.prototype,"_type",void 0),n}(r.KeyAction);n.KeystrokeAction=p}},[0]); \ No newline at end of file diff --git a/polyfills.3a6a791c86baf9f6a41b.bundle.js b/polyfills.3a6a791c86baf9f6a41b.bundle.js new file mode 100644 index 00000000..b0456071 --- /dev/null +++ b/polyfills.3a6a791c86baf9f6a41b.bundle.js @@ -0,0 +1 @@ +webpackJsonp([0],{"+GRi":function(t,e,n){var r=n("Wo2w"),o=n("Wy9r");t.exports=function(t){return r(o(t))}},"+Q6C":function(t,e,n){var r=n("CDXM"),o=n("6De9").f,i=n("+pQw");r(r.S,"Reflect",{deleteProperty:function(t,e){var n=o(i(t),e);return!(n&&!n.configurable)&&delete t[e]}})},"+aW+":function(t,e,n){"use strict";var r=n("CDXM"),o=n("uNkO"),i=n("RT4T"),a=n("umMR"),u=[].sort,s=[1,2,3];r(r.P+r.F*(a(function(){s.sort(void 0)})||!a(function(){s.sort(null)})||!n("bhtb")(u)),"Array",{sort:function(t){return void 0===t?u.call(i(this)):u.call(i(this),o(t))}})},"+c1l":function(t,e,n){var r=n("CDXM");r(r.S+r.F*!n("V+0c"),"Object",{defineProperty:n("tose").f})},"+iEx":function(t,e,n){n("fHxy"),n("5GJ3"),n("X0O/"),n("HCkn"),n("ncNB"),n("soMw"),n("8sYH"),n("IJ3P"),n("t6ta"),t.exports=n("b4gG").Reflect},"+pQw":function(t,e,n){var r=n("JXkd");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"/JsI":function(t,e,n){var r=n("CDXM");r(r.S+r.F,"Object",{assign:n("rIdM")})},"/Mgt":function(t,e,n){var r=n("CDXM");r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},"/XRd":function(t,e,n){var r=n("tose"),o=n("CDXM"),i=n("+pQw"),a=n("A1WY");o(o.S+o.F*n("umMR")(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){i(t),e=a(e,!0),i(n);try{return r.f(t,e,n),!0}catch(t){return!1}}})},"/wY1":function(t,e,n){n("rMMT"),n("dlwK"),n("/XRd"),n("+Q6C"),n("dBNB"),n("7Fno"),n("gZpL"),n("dSHT"),n("d+61"),n("V2Dj"),n("wJYt"),n("gdNQ"),n("VsLy"),n("wLW2"),t.exports=n("b4gG").Reflect},"0MXQ":function(t,e,n){var r=n("CDXM");r(r.S,"Math",{fround:n("xxX9")})},1:function(t,e,n){t.exports=n("TU+8")},"1zvG":function(t,e,n){"use strict";var r=n("JXkd"),o=n("TJLg"),i=n("3r0D")("hasInstance"),a=Function.prototype;i in a||n("tose").f(a,i,{value:function(t){if("function"!=typeof this||!r(t))return!1;if(!r(this.prototype))return t instanceof this;for(;t=o(t);)if(this.prototype===t)return!0;return!1}})},"2Fuj":function(t,e,n){var r=n("R5c1"),o=n("a/Sk");t.exports=Object.keys||function(t){return r(t,o)}},"3LDD":function(t,e,n){"use strict";var r=n("tose").f,o=n("51pc"),i=n("pBmS"),a=n("pa70"),u=n("Lcie"),s=n("p/bR"),c=n("WsSm"),l=n("w/BM"),f=n("KpXt"),p=n("V+0c"),h=n("xI8H").fastKey,d=n("Y5fy"),v=p?"_s":"size",g=function(t,e){var n,r=h(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,c){var l=t(function(t,r){u(t,l,e,"_i"),t._t=e,t._i=o(null),t._f=void 0,t._l=void 0,t[v]=0,void 0!=r&&s(r,n,t[c],t)});return i(l.prototype,{clear:function(){for(var t=d(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=d(this,e),r=g(n,t);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(t){d(this,e);for(var n,r=a(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!g(d(this,e),t)}}),p&&r(l.prototype,"size",{get:function(){return d(this,e)[v]}}),l},def:function(t,e,n){var r,o,i=g(t,e);return i?i.v=n:(t._l=i={i:o=h(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[v]++,"F"!==o&&(t._i[o]=i)),t},getEntry:g,setStrong:function(t,e,n){c(t,e,function(t,n){this._t=d(t,e),this._k=n,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),f(e)}}},"3MMU":function(t,e,n){"use strict";var r=n("RT4T"),o=n("KM3d"),i=n("rppw");t.exports=[].copyWithin||function(t,e){var n=r(this),a=i(n.length),u=o(t,a),s=o(e,a),c=arguments.length>2?arguments[2]:void 0,l=Math.min((void 0===c?a:o(c,a))-s,a-u),f=1;for(s0;)s in n?n[u]=n[s]:delete n[u],u+=f,s+=f;return n}},"3kLI":function(t,e,n){n("9u0C"),n("nRhc"),n("zRDY"),n("K/pv"),n("bO1C"),n("X1DN"),n("4Ti8"),t.exports=n("b4gG").Object},"3r0D":function(t,e,n){var r=n("Iclu")("wks"),o=n("c09d"),i=n("ptrv").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},"4D9a":function(t,e,n){"use strict";n("RSwQ");var r=n("+pQw"),o=n("8H1R"),i=n("V+0c"),a=/./.toString,u=function(t){n("lfBE")(RegExp.prototype,"toString",t,!0)};n("umMR")(function(){return"/a/b"!=a.call({source:"a",flags:"b"})})?u(function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)}):"toString"!=a.name&&u(function(){return a.call(this)})},"4TT8":function(t,e,n){var r=n("CDXM");r(r.S+r.F*!n("V+0c"),"Object",{defineProperties:n("ewdp")})},"4Ti8":function(t,e,n){"use strict";var r=n("CDXM"),o=n("RT4T"),i=n("A1WY"),a=n("TJLg"),u=n("6De9").f;n("V+0c")&&r(r.P+n("tDA9"),"Object",{__lookupSetter__:function(t){var e,n=o(this),r=i(t,!0);do{if(e=u(n,r))return e.set}while(n=a(n))}})},"51pc":function(t,e,n){var r=n("+pQw"),o=n("ewdp"),i=n("a/Sk"),a=n("yIWP")("IE_PROTO"),u=function(){},s=function(){var t,e=n("BQSv")("iframe"),r=i.length;for(e.style.display="none",n("Ed9o").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("