@tinymce/tinymce-angular 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tinymce-tinymce-angular.umd.js +30 -9
- package/bundles/tinymce-tinymce-angular.umd.js.map +1 -1
- package/bundles/tinymce-tinymce-angular.umd.min.js +1 -1
- package/bundles/tinymce-tinymce-angular.umd.min.js.map +1 -1
- package/editor/editor.component.d.ts +2 -0
- package/esm2015/editor/editor.component.js +7 -3
- package/esm2015/utils/Utils.js +26 -9
- package/esm5/editor/editor.component.js +7 -3
- package/esm5/utils/Utils.js +26 -9
- package/fesm2015/tinymce-tinymce-angular.js +30 -9
- package/fesm2015/tinymce-tinymce-angular.js.map +1 -1
- package/fesm5/tinymce-tinymce-angular.js +30 -9
- package/fesm5/tinymce-tinymce-angular.js.map +1 -1
- package/package.json +1 -1
- package/tinymce-tinymce-angular.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@tinymce/tinymce-angular/TinyMCE.ts","ng://@tinymce/tinymce-angular/editor/Events.ts","ng://@tinymce/tinymce-angular/utils/Utils.ts","ng://@tinymce/tinymce-angular/utils/ScriptLoader.ts","ng://@tinymce/tinymce-angular/editor/editor.component.ts","ng://@tinymce/tinymce-angular/editor/editor.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","getTinymce","w","window","undefined","tinymce","Events","onBeforePaste","EventEmitter","onBlur","onClick","onContextMenu","onCopy","onCut","onDblclick","onDrag","onDragDrop","onDragEnd","onDragGesture","onDragOver","onDrop","onFocus","onFocusIn","onFocusOut","onKeyDown","onKeyPress","onKeyUp","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onPaste","onSelectionChange","onActivate","onAddUndo","onBeforeAddUndo","onBeforeExecCommand","onBeforeGetContent","onBeforeRenderUI","onBeforeSetContent","onChange","onClearUndos","onDeactivate","onDirty","onExecCommand","onGetContent","onHide","onInit","onInitNgModel","onLoadContent","onNodeChange","onPostProcess","onPostRender","onPreInit","onPreProcess","onProgressState","onRedo","onRemove","onReset","onSaveContent","onSetAttrib","onObjectResizeStart","onObjectResized","onObjectSelected","onSetContent","onShow","onSubmit","onUndo","onVisualAid","Output","validEvents","bindHandlers","ctx","editor","forEach","eventName","eventEmitter","on","substring","event","ngZone","run","emit","unique","uuid","prefix","time","Date","getTime","Math","floor","random","String","isTextarea","element","tagName","toLowerCase","normalizePluginArray","plugins","isArray","split","mergePlugins","initPlugins","inputPlugins","concat","noop","isNullOrUndefined","value","createState","listeners","scriptId","scriptLoaded","CreateScriptLoader","state","load","doc","url","callback","push","getElementById","scriptTag","createElement","referrerPolicy","type","id","src","handler","removeEventListener","addEventListener","head","appendChild","injectScriptTag","fn","reinitialize","ScriptLoader","TINYMCE_SCRIPT_SRC","InjectionToken","EDITOR_COMPONENT_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","EditorComponent","multi","elementRef","platformId","tinymceScriptSrc","_this","_super","cloudChannel","apiKey","modelEvents","onTouchedCallback","onChangeCallback","_elementRef","initialise","bind","__","constructor","create","__extends","defineProperty","_disabled","val","_editor","initialized","setMode","writeValue","setContent","initialValue","registerOnChange","registerOnTouched","setDisabledState","isDisabled","init","readonly","ngAfterViewInit","isPlatformBrowser","inline","_element","ownerDocument","getScriptSrc","ngOnDestroy","remove","document","style","visibility","nativeElement","finalInit","target","disabled","toolbar","setup","e","initEditor","runOutsideAngular","getContent","format","outputFormat","ElementRef","NgZone","decorators","Inject","args","PLATFORM_ID","Optional","Component","selector","template","providers","Input","EditorModule","NgModule","imports","CommonModule","FormsModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nconst getTinymce = () => {\n const w = typeof window !== 'undefined' ? (window as any) : undefined;\n return w && w.tinymce ? w.tinymce : null;\n};\n\nexport { getTinymce };\n","import { Output, EventEmitter } from '@angular/core';\n\nexport interface EventObj<T> {\n event: T;\n editor: any;\n}\n\nexport class Events {\n @Output() public onBeforePaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onBlur: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onClick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onContextMenu: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onCopy: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onCut: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onDblclick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onDrag: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragEnd: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragGesture: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragOver: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onFocus: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusIn: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusOut: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onKeyDown: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyPress: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyUp: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onMouseDown: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseEnter: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseLeave: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseMove: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOut: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOver: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseUp: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onPaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onSelectionChange: EventEmitter<EventObj<Event>> = new EventEmitter();\n @Output() public onActivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeRenderUI: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onClearUndos: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDeactivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDirty: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onHide: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInitNgModel: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onLoadContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onNodeChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostRender: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onProgressState: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRedo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRemove: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onReset: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSaveContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetAttrib: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResizeStart: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResized: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectSelected: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onShow: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSubmit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onVisualAid: EventEmitter<EventObj<any>> = new EventEmitter();\n}\n\nexport const validEvents: (keyof Events)[] = [\n 'onActivate',\n 'onAddUndo',\n 'onBeforeAddUndo',\n 'onBeforeExecCommand',\n 'onBeforeGetContent',\n 'onBeforeRenderUI',\n 'onBeforeSetContent',\n 'onBeforePaste',\n 'onBlur',\n 'onChange',\n 'onClearUndos',\n 'onClick',\n 'onContextMenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onDeactivate',\n 'onDirty',\n 'onDrag',\n 'onDragDrop',\n 'onDragEnd',\n 'onDragGesture',\n 'onDragOver',\n 'onDrop',\n 'onExecCommand',\n 'onFocus',\n 'onFocusIn',\n 'onFocusOut',\n 'onGetContent',\n 'onHide',\n 'onInit',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoadContent',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onNodeChange',\n 'onObjectResizeStart',\n 'onObjectResized',\n 'onObjectSelected',\n 'onPaste',\n 'onPostProcess',\n 'onPostRender',\n 'onPreProcess',\n 'onProgressState',\n 'onRedo',\n 'onRemove',\n 'onReset',\n 'onSaveContent',\n 'onSelectionChange',\n 'onSetAttrib',\n 'onSetContent',\n 'onShow',\n 'onSubmit',\n 'onUndo',\n 'onVisualAid'\n];\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { EventEmitter } from '@angular/core';\nimport { EditorComponent } from '../editor/editor.component';\nimport { validEvents } from '../editor/Events';\n\nconst bindHandlers = (ctx: EditorComponent, editor: any): void => {\n validEvents.forEach((eventName) => {\n const eventEmitter: EventEmitter<any> = ctx[eventName];\n editor.on(eventName.substring(2), (event: any) => ctx.ngZone.run(() => eventEmitter.emit({ event, editor })));\n });\n};\n\nlet unique = 0;\n\nconst uuid = (prefix: string): string => {\n const date = new Date();\n const time = date.getTime();\n const random = Math.floor(Math.random() * 1000000000);\n\n unique++;\n\n return prefix + '_' + random + unique + String(time);\n};\n\nconst isTextarea = (element?: Element): element is HTMLTextAreaElement => {\n return typeof element !== 'undefined' && element.tagName.toLowerCase() === 'textarea';\n};\n\nconst normalizePluginArray = (plugins?: string | string[]): string[] => {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n\nconst mergePlugins = (initPlugins: string | string[], inputPlugins?: string | string[]) =>\n normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\n\n// tslint:disable-next-line:no-empty\nconst noop: (...args: any[]) => void = () => { };\n\nconst isNullOrUndefined = (value: any): value is null | undefined => value === null || value === undefined;\n\nexport {\n bindHandlers,\n uuid,\n isTextarea,\n normalizePluginArray,\n mergePlugins,\n noop,\n isNullOrUndefined\n};\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { uuid } from './Utils';\n\nexport type callbackFn = () => void;\nexport interface IStateObj {\n listeners: callbackFn[];\n scriptId: string;\n scriptLoaded: boolean;\n}\n\nconst createState = (): IStateObj => {\n return {\n listeners: [],\n scriptId: uuid('tiny-script'),\n scriptLoaded: false\n };\n};\n\ninterface ScriptLoader {\n load: (doc: Document, url: string, callback: callbackFn) => void;\n reinitialize: () => void;\n}\n\nconst CreateScriptLoader = (): ScriptLoader => {\n let state: IStateObj = createState();\n\n const injectScriptTag = (scriptId: string, doc: Document, url: string, callback: callbackFn) => {\n const scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = scriptId;\n scriptTag.src = url;\n\n const handler = () => {\n scriptTag.removeEventListener('load', handler);\n callback();\n };\n scriptTag.addEventListener('load', handler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n };\n\n const load = (doc: Document, url: string, callback: callbackFn) => {\n if (state.scriptLoaded) {\n callback();\n } else {\n state.listeners.push(callback);\n if (!doc.getElementById(state.scriptId)) {\n injectScriptTag(state.scriptId, doc, url, () => {\n state.listeners.forEach((fn) => fn());\n state.scriptLoaded = true;\n });\n }\n }\n };\n\n // Only to be used by tests.\n const reinitialize = () => {\n state = createState();\n };\n\n return {\n load,\n reinitialize\n };\n};\n\nconst ScriptLoader = CreateScriptLoader();\n\nexport {\n ScriptLoader\n};","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, forwardRef, Inject, Input, NgZone, OnDestroy, PLATFORM_ID, InjectionToken, Optional } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getTinymce } from '../TinyMCE';\nimport { bindHandlers, isTextarea, mergePlugins, uuid, noop, isNullOrUndefined } from '../utils/Utils';\nimport { Events } from './Events';\nimport { ScriptLoader } from '../utils/ScriptLoader';\n\nexport const TINYMCE_SCRIPT_SRC = new InjectionToken<string>('TINYMCE_SCRIPT_SRC');\n\nconst EDITOR_COMPONENT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent),\n multi: true\n};\n\n@Component({\n selector: 'editor',\n template: '<ng-template></ng-template>',\n styles: [':host { display: block; }'],\n providers: [EDITOR_COMPONENT_VALUE_ACCESSOR]\n})\nexport class EditorComponent extends Events implements AfterViewInit, ControlValueAccessor, OnDestroy {\n\n @Input()\n set disabled(val) {\n this._disabled = val;\n if (this._editor && this._editor.initialized) {\n this._editor.setMode(val ? 'readonly' : 'design');\n }\n }\n\n get disabled() {\n return this._disabled;\n }\n\n get editor() {\n return this._editor;\n }\n\n public ngZone: NgZone;\n\n @Input() public cloudChannel = '5';\n @Input() public apiKey = 'no-api-key';\n @Input() public init: Record<string, any> | undefined;\n @Input() public id = '';\n @Input() public initialValue: string | undefined;\n @Input() public outputFormat: 'html' | 'text' | undefined;\n @Input() public inline: boolean | undefined;\n @Input() public tagName: string | undefined;\n @Input() public plugins: string | undefined;\n @Input() public toolbar: string | string[] | undefined;\n @Input() public modelEvents = 'change input undo redo';\n\n private _elementRef: ElementRef;\n private _element: Element | undefined;\n private _disabled: boolean | undefined;\n private _editor: any;\n\n private onTouchedCallback = noop;\n private onChangeCallback = noop;\n\nconstructor(\n elementRef: ElementRef,\n ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId: Object,\n @Optional() @Inject(TINYMCE_SCRIPT_SRC) private tinymceScriptSrc?: string\n ) {\n super();\n this._elementRef = elementRef;\n this.ngZone = ngZone;\n this.initialise = this.initialise.bind(this);\n }\n\n public writeValue(value: string | null): void {\n if (this._editor && this._editor.initialized) {\n this._editor.setContent(isNullOrUndefined(value) ? '' : value);\n } else {\n this.initialValue = value === null ? undefined : value;\n }\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n public setDisabledState(isDisabled: boolean) {\n if (this._editor) {\n this._editor.setMode(isDisabled ? 'readonly' : 'design');\n } else if (isDisabled) {\n this.init = { ...this.init, readonly: true };\n }\n }\n\n public ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.id = this.id || uuid('tiny-angular');\n this.inline =\n typeof this.inline !== 'undefined' ? (typeof this.inline === 'boolean' ? this.inline : true) : this.init && this.init.inline;\n this.createElement();\n if (getTinymce() !== null) {\n this.initialise();\n } else if (this._element && this._element.ownerDocument) {\n ScriptLoader.load(\n this._element.ownerDocument,\n this.getScriptSrc(),\n this.initialise\n );\n }\n }\n }\n\n public ngOnDestroy() {\n if (getTinymce() !== null) {\n getTinymce().remove(this._editor);\n }\n }\n\n public createElement() {\n const tagName = typeof this.tagName === 'string' ? this.tagName : 'div';\n this._element = document.createElement(this.inline ? tagName : 'textarea');\n if (this._element) {\n this._element.id = this.id;\n if (isTextarea(this._element)) {\n this._element.style.visibility = 'hidden';\n }\n this._elementRef.nativeElement.appendChild(this._element);\n }\n }\n\n public initialise() {\n const finalInit = {\n ...this.init,\n target: this._element,\n inline: this.inline,\n readonly: this.disabled,\n plugins: mergePlugins(this.init && this.init.plugins, this.plugins),\n toolbar: this.toolbar || (this.init && this.init.toolbar),\n setup: (editor: any) => {\n this._editor = editor;\n editor.on('init', (e: Event) => {\n this.initEditor(editor);\n });\n bindHandlers(this, editor);\n\n if (this.init && typeof this.init.setup === 'function') {\n this.init.setup(editor);\n }\n }\n };\n\n if (isTextarea(this._element)) {\n this._element.style.visibility = '';\n }\n\n this.ngZone.runOutsideAngular(() => {\n getTinymce().init(finalInit);\n });\n }\n\n private getScriptSrc() {\n return isNullOrUndefined(this.tinymceScriptSrc) ?\n `https://cdn.tiny.cloud/1/${this.apiKey}/tinymce/${this.cloudChannel}/tinymce.min.js` :\n this.tinymceScriptSrc;\n }\n\n private initEditor(editor: any) {\n editor.on('blur', () => this.ngZone.run(() => this.onTouchedCallback()));\n editor.on(this.modelEvents, () => {\n this.ngZone.run(() => this.onChangeCallback(editor.getContent({ format: this.outputFormat })));\n });\n if (typeof this.initialValue === 'string') {\n this.ngZone.run(() => {\n editor.setContent(this.initialValue);\n this.onChangeCallback(editor.getContent({ format: this.outputFormat }));\n if (this.onInitNgModel !== undefined) {\n this.onInitNgModel.emit(editor);\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { EditorComponent } from './editor.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [EditorComponent],\n exports: [EditorComponent]\n})\nexport class EditorModule {}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@tinymce/tinymce-angular/TinyMCE.ts","ng://@tinymce/tinymce-angular/editor/Events.ts","ng://@tinymce/tinymce-angular/utils/Utils.ts","ng://@tinymce/tinymce-angular/utils/ScriptLoader.ts","ng://@tinymce/tinymce-angular/editor/editor.component.ts","ng://@tinymce/tinymce-angular/editor/editor.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__assign","assign","t","s","i","n","arguments","length","prototype","call","apply","this","getTinymce","w","window","undefined","tinymce","Events","onBeforePaste","EventEmitter","onBlur","onClick","onContextMenu","onCopy","onCut","onDblclick","onDrag","onDragDrop","onDragEnd","onDragGesture","onDragOver","onDrop","onFocus","onFocusIn","onFocusOut","onKeyDown","onKeyPress","onKeyUp","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onPaste","onSelectionChange","onActivate","onAddUndo","onBeforeAddUndo","onBeforeExecCommand","onBeforeGetContent","onBeforeRenderUI","onBeforeSetContent","onChange","onClearUndos","onDeactivate","onDirty","onExecCommand","onGetContent","onHide","onInit","onInitNgModel","onLoadContent","onNodeChange","onPostProcess","onPostRender","onPreInit","onPreProcess","onProgressState","onRedo","onRemove","onReset","onSaveContent","onSetAttrib","onObjectResizeStart","onObjectResized","onObjectSelected","onSetContent","onShow","onSubmit","onUndo","onVisualAid","Output","validEvents","bindHandlers","ctx","editor","getValidEvents","forEach","eventName","eventEmitter","on","substring","event","ngZone","run","emit","ignoredEvents","parseStringProperty","ignoreEvents","allowedEvents","filter","includes","property","defaultValue","split","map","value","trim","isArray","unique","uuid","prefix","time","Date","getTime","Math","floor","random","String","isTextarea","element","tagName","toLowerCase","normalizePluginArray","plugins","mergePlugins","initPlugins","inputPlugins","concat","noop","isNullOrUndefined","createState","listeners","scriptId","scriptLoaded","CreateScriptLoader","state","load","doc","url","callback","push","getElementById","scriptTag","createElement","referrerPolicy","type","id","src","handler","removeEventListener","addEventListener","head","appendChild","injectScriptTag","fn","reinitialize","ScriptLoader","TINYMCE_SCRIPT_SRC","InjectionToken","EDITOR_COMPONENT_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","EditorComponent","multi","elementRef","platformId","tinymceScriptSrc","_this","_super","cloudChannel","apiKey","modelEvents","onTouchedCallback","onChangeCallback","_elementRef","initialise","bind","__","constructor","create","__extends","defineProperty","_disabled","val","_editor","initialized","setMode","writeValue","setContent","initialValue","registerOnChange","registerOnTouched","setDisabledState","isDisabled","init","readonly","ngAfterViewInit","isPlatformBrowser","inline","_element","ownerDocument","getScriptSrc","ngOnDestroy","remove","document","style","visibility","nativeElement","finalInit","target","disabled","toolbar","setup","e","initEditor","runOutsideAngular","getContent","format","outputFormat","ElementRef","NgZone","decorators","Inject","args","PLATFORM_ID","Optional","Component","selector","template","providers","Input","EditorModule","NgModule","imports","CommonModule","FormsModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nconst getTinymce = () => {\n const w = typeof window !== 'undefined' ? (window as any) : undefined;\n return w && w.tinymce ? w.tinymce : null;\n};\n\nexport { getTinymce };\n","import { Output, EventEmitter } from '@angular/core';\n\nexport interface EventObj<T> {\n event: T;\n editor: any;\n}\n\nexport class Events {\n @Output() public onBeforePaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onBlur: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onClick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onContextMenu: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onCopy: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onCut: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onDblclick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onDrag: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragEnd: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragGesture: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragOver: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onFocus: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusIn: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusOut: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onKeyDown: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyPress: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyUp: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onMouseDown: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseEnter: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseLeave: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseMove: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOut: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOver: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseUp: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onPaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onSelectionChange: EventEmitter<EventObj<Event>> = new EventEmitter();\n @Output() public onActivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeRenderUI: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onClearUndos: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDeactivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDirty: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onHide: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInitNgModel: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onLoadContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onNodeChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostRender: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onProgressState: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRedo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRemove: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onReset: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSaveContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetAttrib: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResizeStart: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResized: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectSelected: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onShow: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSubmit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onVisualAid: EventEmitter<EventObj<any>> = new EventEmitter();\n}\n\nexport const validEvents: (keyof Events)[] = [\n 'onActivate',\n 'onAddUndo',\n 'onBeforeAddUndo',\n 'onBeforeExecCommand',\n 'onBeforeGetContent',\n 'onBeforeRenderUI',\n 'onBeforeSetContent',\n 'onBeforePaste',\n 'onBlur',\n 'onChange',\n 'onClearUndos',\n 'onClick',\n 'onContextMenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onDeactivate',\n 'onDirty',\n 'onDrag',\n 'onDragDrop',\n 'onDragEnd',\n 'onDragGesture',\n 'onDragOver',\n 'onDrop',\n 'onExecCommand',\n 'onFocus',\n 'onFocusIn',\n 'onFocusOut',\n 'onGetContent',\n 'onHide',\n 'onInit',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoadContent',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onNodeChange',\n 'onObjectResizeStart',\n 'onObjectResized',\n 'onObjectSelected',\n 'onPaste',\n 'onPostProcess',\n 'onPostRender',\n 'onPreProcess',\n 'onProgressState',\n 'onRedo',\n 'onRemove',\n 'onReset',\n 'onSaveContent',\n 'onSelectionChange',\n 'onSetAttrib',\n 'onSetContent',\n 'onShow',\n 'onSubmit',\n 'onUndo',\n 'onVisualAid'\n];\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { EventEmitter } from '@angular/core';\nimport { EditorComponent } from '../editor/editor.component';\nimport { validEvents, Events } from '../editor/Events';\n\nconst bindHandlers = (ctx: EditorComponent, editor: any): void => {\n const allowedEvents = getValidEvents(ctx);\n allowedEvents.forEach((eventName) => {\n const eventEmitter: EventEmitter<any> = ctx[eventName];\n editor.on(eventName.substring(2), (event: any) => ctx.ngZone.run(() => eventEmitter.emit({ event, editor })));\n });\n};\n\nconst getValidEvents = (ctx: EditorComponent): (keyof Events)[] => {\n const ignoredEvents = parseStringProperty(ctx.ignoreEvents, []);\n const allowedEvents = parseStringProperty(ctx.allowedEvents, validEvents).filter(\n (event) => validEvents.includes(event as (keyof Events)) && !ignoredEvents.includes(event)) as (keyof Events)[];\n return allowedEvents;\n}\n\nconst parseStringProperty = (property: string | string[] | undefined, defaultValue: (keyof Events)[]): string[] => {\n if ( typeof property === 'string') {\n return property.split(',').map((value) => value.trim());\n }\n if ( Array.isArray(property)) {\n return property;\n }\n return defaultValue;\n};\n\nlet unique = 0;\n\nconst uuid = (prefix: string): string => {\n const date = new Date();\n const time = date.getTime();\n const random = Math.floor(Math.random() * 1000000000);\n\n unique++;\n\n return prefix + '_' + random + unique + String(time);\n};\n\nconst isTextarea = (element?: Element): element is HTMLTextAreaElement => {\n return typeof element !== 'undefined' && element.tagName.toLowerCase() === 'textarea';\n};\n\nconst normalizePluginArray = (plugins?: string | string[]): string[] => {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n\nconst mergePlugins = (initPlugins: string | string[], inputPlugins?: string | string[]) =>\n normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\n\n// tslint:disable-next-line:no-empty\nconst noop: (...args: any[]) => void = () => { };\n\nconst isNullOrUndefined = (value: any): value is null | undefined => value === null || value === undefined;\n\nexport {\n bindHandlers,\n uuid,\n isTextarea,\n normalizePluginArray,\n mergePlugins,\n noop,\n isNullOrUndefined\n};\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { uuid } from './Utils';\n\nexport type callbackFn = () => void;\nexport interface IStateObj {\n listeners: callbackFn[];\n scriptId: string;\n scriptLoaded: boolean;\n}\n\nconst createState = (): IStateObj => {\n return {\n listeners: [],\n scriptId: uuid('tiny-script'),\n scriptLoaded: false\n };\n};\n\ninterface ScriptLoader {\n load: (doc: Document, url: string, callback: callbackFn) => void;\n reinitialize: () => void;\n}\n\nconst CreateScriptLoader = (): ScriptLoader => {\n let state: IStateObj = createState();\n\n const injectScriptTag = (scriptId: string, doc: Document, url: string, callback: callbackFn) => {\n const scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = scriptId;\n scriptTag.src = url;\n\n const handler = () => {\n scriptTag.removeEventListener('load', handler);\n callback();\n };\n scriptTag.addEventListener('load', handler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n };\n\n const load = (doc: Document, url: string, callback: callbackFn) => {\n if (state.scriptLoaded) {\n callback();\n } else {\n state.listeners.push(callback);\n if (!doc.getElementById(state.scriptId)) {\n injectScriptTag(state.scriptId, doc, url, () => {\n state.listeners.forEach((fn) => fn());\n state.scriptLoaded = true;\n });\n }\n }\n };\n\n // Only to be used by tests.\n const reinitialize = () => {\n state = createState();\n };\n\n return {\n load,\n reinitialize\n };\n};\n\nconst ScriptLoader = CreateScriptLoader();\n\nexport {\n ScriptLoader\n};","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, forwardRef, Inject, Input, NgZone, OnDestroy, PLATFORM_ID, InjectionToken, Optional } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getTinymce } from '../TinyMCE';\nimport { bindHandlers, isTextarea, mergePlugins, uuid, noop, isNullOrUndefined } from '../utils/Utils';\nimport { Events } from './Events';\nimport { ScriptLoader } from '../utils/ScriptLoader';\n\nexport const TINYMCE_SCRIPT_SRC = new InjectionToken<string>('TINYMCE_SCRIPT_SRC');\n\nconst EDITOR_COMPONENT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent),\n multi: true\n};\n\n@Component({\n selector: 'editor',\n template: '<ng-template></ng-template>',\n styles: [':host { display: block; }'],\n providers: [EDITOR_COMPONENT_VALUE_ACCESSOR]\n})\nexport class EditorComponent extends Events implements AfterViewInit, ControlValueAccessor, OnDestroy {\n\n @Input()\n set disabled(val) {\n this._disabled = val;\n if (this._editor && this._editor.initialized) {\n this._editor.setMode(val ? 'readonly' : 'design');\n }\n }\n\n get disabled() {\n return this._disabled;\n }\n\n get editor() {\n return this._editor;\n }\n\n public ngZone: NgZone;\n\n @Input() public cloudChannel = '5';\n @Input() public apiKey = 'no-api-key';\n @Input() public init: Record<string, any> | undefined;\n @Input() public id = '';\n @Input() public initialValue: string | undefined;\n @Input() public outputFormat: 'html' | 'text' | undefined;\n @Input() public inline: boolean | undefined;\n @Input() public tagName: string | undefined;\n @Input() public plugins: string | undefined;\n @Input() public toolbar: string | string[] | undefined;\n @Input() public modelEvents = 'change input undo redo';\n @Input() public allowedEvents: string | string[] | undefined;\n @Input() public ignoreEvents: string | string[] | undefined;\n\n private _elementRef: ElementRef;\n private _element: Element | undefined;\n private _disabled: boolean | undefined;\n private _editor: any;\n\n private onTouchedCallback = noop;\n private onChangeCallback = noop;\n\nconstructor(\n elementRef: ElementRef,\n ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId: Object,\n @Optional() @Inject(TINYMCE_SCRIPT_SRC) private tinymceScriptSrc?: string\n ) {\n super();\n this._elementRef = elementRef;\n this.ngZone = ngZone;\n this.initialise = this.initialise.bind(this);\n }\n\n public writeValue(value: string | null): void {\n if (this._editor && this._editor.initialized) {\n this._editor.setContent(isNullOrUndefined(value) ? '' : value);\n } else {\n this.initialValue = value === null ? undefined : value;\n }\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n public setDisabledState(isDisabled: boolean) {\n if (this._editor) {\n this._editor.setMode(isDisabled ? 'readonly' : 'design');\n } else if (isDisabled) {\n this.init = { ...this.init, readonly: true };\n }\n }\n\n public ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.id = this.id || uuid('tiny-angular');\n this.inline =\n typeof this.inline !== 'undefined' ? (typeof this.inline === 'boolean' ? this.inline : true) : this.init && this.init.inline;\n this.createElement();\n if (getTinymce() !== null) {\n this.initialise();\n } else if (this._element && this._element.ownerDocument) {\n ScriptLoader.load(\n this._element.ownerDocument,\n this.getScriptSrc(),\n this.initialise\n );\n }\n }\n }\n\n public ngOnDestroy() {\n if (getTinymce() !== null) {\n getTinymce().remove(this._editor);\n }\n }\n\n public createElement() {\n const tagName = typeof this.tagName === 'string' ? this.tagName : 'div';\n this._element = document.createElement(this.inline ? tagName : 'textarea');\n if (this._element) {\n this._element.id = this.id;\n if (isTextarea(this._element)) {\n this._element.style.visibility = 'hidden';\n }\n this._elementRef.nativeElement.appendChild(this._element);\n }\n }\n\n public initialise() {\n const finalInit = {\n ...this.init,\n target: this._element,\n inline: this.inline,\n readonly: this.disabled,\n plugins: mergePlugins(this.init && this.init.plugins, this.plugins),\n toolbar: this.toolbar || (this.init && this.init.toolbar),\n setup: (editor: any) => {\n this._editor = editor;\n editor.on('init', (e: Event) => {\n this.initEditor(editor);\n });\n bindHandlers(this, editor);\n\n if (this.init && typeof this.init.setup === 'function') {\n this.init.setup(editor);\n }\n }\n };\n\n if (isTextarea(this._element)) {\n this._element.style.visibility = '';\n }\n\n this.ngZone.runOutsideAngular(() => {\n getTinymce().init(finalInit);\n });\n }\n\n private getScriptSrc() {\n return isNullOrUndefined(this.tinymceScriptSrc) ?\n `https://cdn.tiny.cloud/1/${this.apiKey}/tinymce/${this.cloudChannel}/tinymce.min.js` :\n this.tinymceScriptSrc;\n }\n\n private initEditor(editor: any) {\n editor.on('blur', () => this.ngZone.run(() => this.onTouchedCallback()));\n editor.on(this.modelEvents, () => {\n this.ngZone.run(() => this.onChangeCallback(editor.getContent({ format: this.outputFormat })));\n });\n if (typeof this.initialValue === 'string') {\n this.ngZone.run(() => {\n editor.setContent(this.initialValue);\n if (editor.getContent() !== this.initialValue) {\n this.onChangeCallback(editor.getContent({ format: this.outputFormat }));\n }\n if (this.onInitNgModel !== undefined) {\n this.onInitNgModel.emit(editor);\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { EditorComponent } from './editor.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [EditorComponent],\n exports: [EditorComponent]\n})\nexport class EditorModule {}\n"]}
|
|
@@ -20,6 +20,8 @@ export declare class EditorComponent extends Events implements AfterViewInit, Co
|
|
|
20
20
|
plugins: string | undefined;
|
|
21
21
|
toolbar: string | string[] | undefined;
|
|
22
22
|
modelEvents: string;
|
|
23
|
+
allowedEvents: string | string[] | undefined;
|
|
24
|
+
ignoreEvents: string | string[] | undefined;
|
|
23
25
|
private _elementRef;
|
|
24
26
|
private _element;
|
|
25
27
|
private _disabled;
|
|
@@ -121,7 +121,9 @@ export class EditorComponent extends Events {
|
|
|
121
121
|
if (typeof this.initialValue === 'string') {
|
|
122
122
|
this.ngZone.run(() => {
|
|
123
123
|
editor.setContent(this.initialValue);
|
|
124
|
-
|
|
124
|
+
if (editor.getContent() !== this.initialValue) {
|
|
125
|
+
this.onChangeCallback(editor.getContent({ format: this.outputFormat }));
|
|
126
|
+
}
|
|
125
127
|
if (this.onInitNgModel !== undefined) {
|
|
126
128
|
this.onInitNgModel.emit(editor);
|
|
127
129
|
}
|
|
@@ -161,6 +163,8 @@ EditorComponent.propDecorators = {
|
|
|
161
163
|
tagName: [{ type: Input }],
|
|
162
164
|
plugins: [{ type: Input }],
|
|
163
165
|
toolbar: [{ type: Input }],
|
|
164
|
-
modelEvents: [{ type: Input }]
|
|
166
|
+
modelEvents: [{ type: Input }],
|
|
167
|
+
allowedEvents: [{ type: Input }],
|
|
168
|
+
ignoreEvents: [{ type: Input }]
|
|
165
169
|
};
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci8iLCJzb3VyY2VzIjpbImVkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUVuRixNQUFNLCtCQUErQixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBUUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsTUFBTTtJQXdDM0MsWUFDRSxVQUFzQixFQUN0QixNQUFjLEVBQ2UsVUFBa0IsRUFDQyxnQkFBeUI7UUFFdkUsS0FBSyxFQUFFLENBQUM7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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7O1lBekhXLFVBQVU7WUFDZCxNQUFNO1lBQzJCLE1BQU0sdUJBQTlDLE1BQU0sU0FBQyxXQUFXO3lDQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7O1lBbER2QyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSw2QkFBNkI7Z0JBRXZDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO3lCQURuQywyQkFBMkI7YUFFckM7OztZQXBCa0MsVUFBVTtZQUE2QixNQUFNO1lBZ0VyQyxNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVzt5Q0FDbEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxrQkFBa0I7Ozt1QkExQ3JDLEtBQUs7MkJBa0JMLEtBQUs7cUJBQ0wsS0FBSzttQkFDTCxLQUFLO2lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lELCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldFRpbnltY2UgfSBmcm9tICcuLi9UaW55TUNFJztcbmltcG9ydCB7IGJpbmRIYW5kbGVycywgaXNUZXh0YXJlYSwgbWVyZ2VQbHVnaW5zLCB1dWlkLCBub29wLCBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL1V0aWxzJztcbmltcG9ydCB7IEV2ZW50cyB9IGZyb20gJy4vRXZlbnRzJztcbmltcG9ydCB7IFNjcmlwdExvYWRlciB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdExvYWRlcic7XG5cbmV4cG9ydCBjb25zdCBUSU5ZTUNFX1NDUklQVF9TUkMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignVElOWU1DRV9TQ1JJUFRfU1JDJyk7XG5cbmNvbnN0IEVESVRPUl9DT01QT05FTlRfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWRpdG9yJyxcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT4nLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBwcm92aWRlcnM6IFtFRElUT1JfQ09NUE9ORU5UX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBFdmVudHMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgaWYgKHRoaXMuX2VkaXRvciAmJiB0aGlzLl9lZGl0b3IuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRNb2RlKHZhbCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBlZGl0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZTtcblxuICBASW5wdXQoKSBwdWJsaWMgY2xvdWRDaGFubmVsID0gJzUnO1xuICBASW5wdXQoKSBwdWJsaWMgYXBpS2V5ID0gJ25vLWFwaS1rZXknO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdDogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIGlkID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFsVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIG91dHB1dEZvcm1hdDogJ2h0bWwnIHwgJ3RleHQnIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgaW5saW5lOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgdGFnTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgcGx1Z2luczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgdG9vbGJhcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBtb2RlbEV2ZW50cyA9ICdjaGFuZ2UgaW5wdXQgdW5kbyByZWRvJztcblxuICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZWRpdG9yOiBhbnk7XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjayA9IG5vb3A7XG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjayA9IG5vb3A7XG5cbmNvbnN0cnVjdG9yKFxuICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICBuZ1pvbmU6IE5nWm9uZSxcbiAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gIEBPcHRpb25hbCgpIEBJbmplY3QoVElOWU1DRV9TQ1JJUFRfU1JDKSBwcml2YXRlIHRpbnltY2VTY3JpcHRTcmM/OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLm5nWm9uZSA9IG5nWm9uZTtcbiAgICB0aGlzLmluaXRpYWxpc2UgPSB0aGlzLmluaXRpYWxpc2UuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VkaXRvciAmJiB0aGlzLl9lZGl0b3IuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRDb250ZW50KGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSA/ICcnIDogdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRNb2RlKGlzRGlzYWJsZWQgPyAncmVhZG9ubHknIDogJ2Rlc2lnbicpO1xuICAgIH0gZWxzZSBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbml0ID0geyAuLi50aGlzLmluaXQsIHJlYWRvbmx5OiB0cnVlIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgdXVpZCgndGlueS1hbmd1bGFyJyk7XG4gICAgICB0aGlzLmlubGluZSA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmlubGluZSAhPT0gJ3VuZGVmaW5lZCcgPyAodHlwZW9mIHRoaXMuaW5saW5lID09PSAnYm9vbGVhbicgPyB0aGlzLmlubGluZSA6IHRydWUpIDogdGhpcy5pbml0ICYmIHRoaXMuaW5pdC5pbmxpbmU7XG4gICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcbiAgICAgIGlmIChnZXRUaW55bWNlKCkgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXNlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2VsZW1lbnQgJiYgdGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgIFNjcmlwdExvYWRlci5sb2FkKFxuICAgICAgICAgIHRoaXMuX2VsZW1lbnQub3duZXJEb2N1bWVudCxcbiAgICAgICAgICB0aGlzLmdldFNjcmlwdFNyYygpLFxuICAgICAgICAgIHRoaXMuaW5pdGlhbGlzZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAoZ2V0VGlueW1jZSgpICE9PSBudWxsKSB7XG4gICAgICBnZXRUaW55bWNlKCkucmVtb3ZlKHRoaXMuX2VkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZUVsZW1lbnQoKSB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHR5cGVvZiB0aGlzLnRhZ05hbWUgPT09ICdzdHJpbmcnID8gdGhpcy50YWdOYW1lIDogJ2Rpdic7XG4gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5pbmxpbmUgPyB0YWdOYW1lIDogJ3RleHRhcmVhJyk7XG4gICAgaWYgKHRoaXMuX2VsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuaWQgPSB0aGlzLmlkO1xuICAgICAgaWYgKGlzVGV4dGFyZWEodGhpcy5fZWxlbWVudCkpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICB9XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QgZmluYWxJbml0ID0ge1xuICAgICAgLi4udGhpcy5pbml0LFxuICAgICAgdGFyZ2V0OiB0aGlzLl9lbGVtZW50LFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcbiAgICAgIHJlYWRvbmx5OiB0aGlzLmRpc2FibGVkLFxuICAgICAgcGx1Z2luczogbWVyZ2VQbHVnaW5zKHRoaXMuaW5pdCAmJiB0aGlzLmluaXQucGx1Z2lucywgdGhpcy5wbHVnaW5zKSxcbiAgICAgIHRvb2xiYXI6IHRoaXMudG9vbGJhciB8fCAodGhpcy5pbml0ICYmIHRoaXMuaW5pdC50b29sYmFyKSxcbiAgICAgIHNldHVwOiAoZWRpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5fZWRpdG9yID0gZWRpdG9yO1xuICAgICAgICBlZGl0b3Iub24oJ2luaXQnLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmluaXRFZGl0b3IoZWRpdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJpbmRIYW5kbGVycyh0aGlzLCBlZGl0b3IpO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXQgJiYgdHlwZW9mIHRoaXMuaW5pdC5zZXR1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMuaW5pdC5zZXR1cChlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChpc1RleHRhcmVhKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBnZXRUaW55bWNlKCkuaW5pdChmaW5hbEluaXQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY3JpcHRTcmMoKSB7XG4gICAgcmV0dXJuIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGlueW1jZVNjcmlwdFNyYykgP1xuICAgICAgYGh0dHBzOi8vY2RuLnRpbnkuY2xvdWQvMS8ke3RoaXMuYXBpS2V5fS90aW55bWNlLyR7dGhpcy5jbG91ZENoYW5uZWx9L3RpbnltY2UubWluLmpzYCA6XG4gICAgICB0aGlzLnRpbnltY2VTY3JpcHRTcmM7XG4gIH1cblxuICBwcml2YXRlIGluaXRFZGl0b3IoZWRpdG9yOiBhbnkpIHtcbiAgICBlZGl0b3Iub24oJ2JsdXInLCAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpKSk7XG4gICAgZWRpdG9yLm9uKHRoaXMubW9kZWxFdmVudHMsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2soZWRpdG9yLmdldENvbnRlbnQoeyBmb3JtYXQ6IHRoaXMub3V0cHV0Rm9ybWF0IH0pKSk7XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmluaXRpYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGVkaXRvci5zZXRDb250ZW50KHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKGVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLm91dHB1dEZvcm1hdCB9KSk7XG4gICAgICAgIGlmICh0aGlzLm9uSW5pdE5nTW9kZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMub25Jbml0TmdNb2RlbC5lbWl0KGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci8iLCJzb3VyY2VzIjpbImVkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUVuRixNQUFNLCtCQUErQixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBUUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsTUFBTTtJQTBDM0MsWUFDRSxVQUFzQixFQUN0QixNQUFjLEVBQ2UsVUFBa0IsRUFDQyxnQkFBeUI7UUFFdkUsS0FBSyxFQUFFLENBQUM7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QkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7O1lBM0hXLFVBQVU7WUFDZCxNQUFNO1lBQzJCLE1BQU0sdUJBQTlDLE1BQU0sU0FBQyxXQUFXO3lDQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7O1lBcER2QyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSw2QkFBNkI7Z0JBRXZDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO3lCQURuQywyQkFBMkI7YUFFckM7OztZQXBCa0MsVUFBVTtZQUE2QixNQUFNO1lBa0VyQyxNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVzt5Q0FDbEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxrQkFBa0I7Ozt1QkE1Q3JDLEtBQUs7MkJBa0JMLEtBQUs7cUJBQ0wsS0FBSzttQkFDTCxLQUFLO2lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBQ0wsS0FBSzs0QkFDTCxLQUFLOzJCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBQTEFURk9STV9JRCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXRUaW55bWNlIH0gZnJvbSAnLi4vVGlueU1DRSc7XG5pbXBvcnQgeyBiaW5kSGFuZGxlcnMsIGlzVGV4dGFyZWEsIG1lcmdlUGx1Z2lucywgdXVpZCwgbm9vcCwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICcuLi91dGlscy9VdGlscyc7XG5pbXBvcnQgeyBFdmVudHMgfSBmcm9tICcuL0V2ZW50cyc7XG5pbXBvcnQgeyBTY3JpcHRMb2FkZXIgfSBmcm9tICcuLi91dGlscy9TY3JpcHRMb2FkZXInO1xuXG5leHBvcnQgY29uc3QgVElOWU1DRV9TQ1JJUFRfU1JDID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1RJTllNQ0VfU0NSSVBUX1NSQycpO1xuXG5jb25zdCBFRElUT1JfQ09NUE9ORU5UX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWRpdG9yQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VkaXRvcicsXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+JyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgcHJvdmlkZXJzOiBbRURJVE9SX0NPTVBPTkVOVF9WQUxVRV9BQ0NFU1NPUl1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgRXZlbnRzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkKHZhbCkge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsO1xuICAgIGlmICh0aGlzLl9lZGl0b3IgJiYgdGhpcy5fZWRpdG9yLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0TW9kZSh2YWwgPyAncmVhZG9ubHknIDogJ2Rlc2lnbicpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBnZXQgZWRpdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9lZGl0b3I7XG4gIH1cblxuICBwdWJsaWMgbmdab25lOiBOZ1pvbmU7XG5cbiAgQElucHV0KCkgcHVibGljIGNsb3VkQ2hhbm5lbCA9ICc1JztcbiAgQElucHV0KCkgcHVibGljIGFwaUtleSA9ICduby1hcGkta2V5JztcbiAgQElucHV0KCkgcHVibGljIGluaXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBvdXRwdXRGb3JtYXQ6ICdodG1sJyB8ICd0ZXh0JyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIGlubGluZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIHRhZ05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIHBsdWdpbnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIHRvb2xiYXI6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZWxFdmVudHMgPSAnY2hhbmdlIGlucHV0IHVuZG8gcmVkbyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd2VkRXZlbnRzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIGlnbm9yZUV2ZW50czogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2VkaXRvcjogYW55O1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSBub29wO1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2sgPSBub29wO1xuXG5jb25zdHJ1Y3RvcihcbiAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgbmdab25lOiBOZ1pvbmUsXG4gIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxuICBAT3B0aW9uYWwoKSBASW5qZWN0KFRJTllNQ0VfU0NSSVBUX1NSQykgcHJpdmF0ZSB0aW55bWNlU2NyaXB0U3JjPzogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gICAgdGhpcy5pbml0aWFsaXNlID0gdGhpcy5pbml0aWFsaXNlLmJpbmQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9lZGl0b3IgJiYgdGhpcy5fZWRpdG9yLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0Q29udGVudChpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgPyAnJyA6IHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSB2YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0TW9kZShpc0Rpc2FibGVkID8gJ3JlYWRvbmx5JyA6ICdkZXNpZ24nKTtcbiAgICB9IGVsc2UgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5pdCA9IHsgLi4udGhpcy5pbml0LCByZWFkb25seTogdHJ1ZSB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmlkIHx8IHV1aWQoJ3RpbnktYW5ndWxhcicpO1xuICAgICAgdGhpcy5pbmxpbmUgPVxuICAgICAgICB0eXBlb2YgdGhpcy5pbmxpbmUgIT09ICd1bmRlZmluZWQnID8gKHR5cGVvZiB0aGlzLmlubGluZSA9PT0gJ2Jvb2xlYW4nID8gdGhpcy5pbmxpbmUgOiB0cnVlKSA6IHRoaXMuaW5pdCAmJiB0aGlzLmluaXQuaW5saW5lO1xuICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgICBpZiAoZ2V0VGlueW1jZSgpICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuX2VsZW1lbnQub3duZXJEb2N1bWVudCkge1xuICAgICAgICBTY3JpcHRMb2FkZXIubG9hZChcbiAgICAgICAgICB0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQsXG4gICAgICAgICAgdGhpcy5nZXRTY3JpcHRTcmMoKSxcbiAgICAgICAgICB0aGlzLmluaXRpYWxpc2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKGdldFRpbnltY2UoKSAhPT0gbnVsbCkge1xuICAgICAgZ2V0VGlueW1jZSgpLnJlbW92ZSh0aGlzLl9lZGl0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFbGVtZW50KCkge1xuICAgIGNvbnN0IHRhZ05hbWUgPSB0eXBlb2YgdGhpcy50YWdOYW1lID09PSAnc3RyaW5nJyA/IHRoaXMudGFnTmFtZSA6ICdkaXYnO1xuICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuaW5saW5lID8gdGFnTmFtZSA6ICd0ZXh0YXJlYScpO1xuICAgIGlmICh0aGlzLl9lbGVtZW50KSB7XG4gICAgICB0aGlzLl9lbGVtZW50LmlkID0gdGhpcy5pZDtcbiAgICAgIGlmIChpc1RleHRhcmVhKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgfVxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXNlKCkge1xuICAgIGNvbnN0IGZpbmFsSW5pdCA9IHtcbiAgICAgIC4uLnRoaXMuaW5pdCxcbiAgICAgIHRhcmdldDogdGhpcy5fZWxlbWVudCxcbiAgICAgIGlubGluZTogdGhpcy5pbmxpbmUsXG4gICAgICByZWFkb25seTogdGhpcy5kaXNhYmxlZCxcbiAgICAgIHBsdWdpbnM6IG1lcmdlUGx1Z2lucyh0aGlzLmluaXQgJiYgdGhpcy5pbml0LnBsdWdpbnMsIHRoaXMucGx1Z2lucyksXG4gICAgICB0b29sYmFyOiB0aGlzLnRvb2xiYXIgfHwgKHRoaXMuaW5pdCAmJiB0aGlzLmluaXQudG9vbGJhciksXG4gICAgICBzZXR1cDogKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuX2VkaXRvciA9IGVkaXRvcjtcbiAgICAgICAgZWRpdG9yLm9uKCdpbml0JywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5pbml0RWRpdG9yKGVkaXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBiaW5kSGFuZGxlcnModGhpcywgZWRpdG9yKTtcblxuICAgICAgICBpZiAodGhpcy5pbml0ICYmIHR5cGVvZiB0aGlzLmluaXQuc2V0dXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB0aGlzLmluaXQuc2V0dXAoZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoaXNUZXh0YXJlYSh0aGlzLl9lbGVtZW50KSkge1xuICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZ2V0VGlueW1jZSgpLmluaXQoZmluYWxJbml0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NyaXB0U3JjKCkge1xuICAgIHJldHVybiBpc051bGxPclVuZGVmaW5lZCh0aGlzLnRpbnltY2VTY3JpcHRTcmMpID9cbiAgICAgIGBodHRwczovL2Nkbi50aW55LmNsb3VkLzEvJHt0aGlzLmFwaUtleX0vdGlueW1jZS8ke3RoaXMuY2xvdWRDaGFubmVsfS90aW55bWNlLm1pbi5qc2AgOlxuICAgICAgdGhpcy50aW55bWNlU2NyaXB0U3JjO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RWRpdG9yKGVkaXRvcjogYW55KSB7XG4gICAgZWRpdG9yLm9uKCdibHVyJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKSkpO1xuICAgIGVkaXRvci5vbih0aGlzLm1vZGVsRXZlbnRzLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vbkNoYW5nZUNhbGxiYWNrKGVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLm91dHB1dEZvcm1hdCB9KSkpO1xuICAgIH0pO1xuICAgIGlmICh0eXBlb2YgdGhpcy5pbml0aWFsVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBlZGl0b3Iuc2V0Q29udGVudCh0aGlzLmluaXRpYWxWYWx1ZSk7XG4gICAgICAgIGlmIChlZGl0b3IuZ2V0Q29udGVudCgpICE9PSB0aGlzLmluaXRpYWxWYWx1ZSkge1xuICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayhlZGl0b3IuZ2V0Q29udGVudCh7IGZvcm1hdDogdGhpcy5vdXRwdXRGb3JtYXQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9uSW5pdE5nTW9kZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMub25Jbml0TmdNb2RlbC5lbWl0KGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/esm2015/utils/Utils.js
CHANGED
|
@@ -7,12 +7,29 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { validEvents } from '../editor/Events';
|
|
9
9
|
const bindHandlers = (ctx, editor) => {
|
|
10
|
-
|
|
10
|
+
const allowedEvents = getValidEvents(ctx);
|
|
11
|
+
allowedEvents.forEach((eventName) => {
|
|
11
12
|
const eventEmitter = ctx[eventName];
|
|
12
13
|
editor.on(eventName.substring(2), (event) => ctx.ngZone.run(() => eventEmitter.emit({ event, editor })));
|
|
13
14
|
});
|
|
14
15
|
};
|
|
15
16
|
const ɵ0 = bindHandlers;
|
|
17
|
+
const getValidEvents = (ctx) => {
|
|
18
|
+
const ignoredEvents = parseStringProperty(ctx.ignoreEvents, []);
|
|
19
|
+
const allowedEvents = parseStringProperty(ctx.allowedEvents, validEvents).filter((event) => validEvents.includes(event) && !ignoredEvents.includes(event));
|
|
20
|
+
return allowedEvents;
|
|
21
|
+
};
|
|
22
|
+
const ɵ1 = getValidEvents;
|
|
23
|
+
const parseStringProperty = (property, defaultValue) => {
|
|
24
|
+
if (typeof property === 'string') {
|
|
25
|
+
return property.split(',').map((value) => value.trim());
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(property)) {
|
|
28
|
+
return property;
|
|
29
|
+
}
|
|
30
|
+
return defaultValue;
|
|
31
|
+
};
|
|
32
|
+
const ɵ2 = parseStringProperty;
|
|
16
33
|
let unique = 0;
|
|
17
34
|
const uuid = (prefix) => {
|
|
18
35
|
const date = new Date();
|
|
@@ -21,25 +38,25 @@ const uuid = (prefix) => {
|
|
|
21
38
|
unique++;
|
|
22
39
|
return prefix + '_' + random + unique + String(time);
|
|
23
40
|
};
|
|
24
|
-
const ɵ
|
|
41
|
+
const ɵ3 = uuid;
|
|
25
42
|
const isTextarea = (element) => {
|
|
26
43
|
return typeof element !== 'undefined' && element.tagName.toLowerCase() === 'textarea';
|
|
27
44
|
};
|
|
28
|
-
const ɵ
|
|
45
|
+
const ɵ4 = isTextarea;
|
|
29
46
|
const normalizePluginArray = (plugins) => {
|
|
30
47
|
if (typeof plugins === 'undefined' || plugins === '') {
|
|
31
48
|
return [];
|
|
32
49
|
}
|
|
33
50
|
return Array.isArray(plugins) ? plugins : plugins.split(' ');
|
|
34
51
|
};
|
|
35
|
-
const ɵ
|
|
52
|
+
const ɵ5 = normalizePluginArray;
|
|
36
53
|
const mergePlugins = (initPlugins, inputPlugins) => normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));
|
|
37
|
-
const ɵ
|
|
54
|
+
const ɵ6 = mergePlugins;
|
|
38
55
|
// tslint:disable-next-line:no-empty
|
|
39
56
|
const noop = () => { };
|
|
40
|
-
const ɵ
|
|
57
|
+
const ɵ7 = noop;
|
|
41
58
|
const isNullOrUndefined = (value) => value === null || value === undefined;
|
|
42
|
-
const ɵ
|
|
59
|
+
const ɵ8 = isNullOrUndefined;
|
|
43
60
|
export { bindHandlers, uuid, isTextarea, normalizePluginArray, mergePlugins, noop, isNullOrUndefined };
|
|
44
|
-
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6 };
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8 };
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGlueW1jZS90aW55bWNlLWFuZ3VsYXIvIiwic291cmNlcyI6WyJ1dGlscy9VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxPQUFPLEVBQUUsV0FBVyxFQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFvQixFQUFFLE1BQVcsRUFBUSxFQUFFO0lBQy9ELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxZQUFZLEdBQXNCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7O0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFvQixFQUFvQixFQUFFO0lBQ2hFLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQzlFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQXFCLENBQUM7SUFDbEgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyxDQUFBOztBQUVELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUF1QyxFQUFFLFlBQThCLEVBQVksRUFBRTtJQUNoSCxJQUFLLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUNqQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN6RDtJQUNELElBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUM1QixPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMsQ0FBQzs7QUFFRixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZixNQUFNLElBQUksR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBRXRELE1BQU0sRUFBRSxDQUFDO0lBRVQsT0FBTyxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQzs7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWlCLEVBQWtDLEVBQUU7SUFDdkUsT0FBTyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUM7QUFDeEYsQ0FBQyxDQUFDOztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUEyQixFQUFZLEVBQUU7SUFDckUsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRTtRQUNwRCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDOztBQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsV0FBOEIsRUFBRSxZQUFnQyxFQUFFLEVBQUUsQ0FDeEYsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7O0FBRS9FLG9DQUFvQztBQUNwQyxNQUFNLElBQUksR0FBNkIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDOztBQUVqRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBVSxFQUE2QixFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDOztBQUUzRyxPQUFPLEVBQ0wsWUFBWSxFQUNaLElBQUksRUFDSixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixJQUFJLEVBQ0osaUJBQWlCLEVBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNy1wcmVzZW50LCBFcGhveCwgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgdmFsaWRFdmVudHMsIEV2ZW50cyB9IGZyb20gJy4uL2VkaXRvci9FdmVudHMnO1xuXG5jb25zdCBiaW5kSGFuZGxlcnMgPSAoY3R4OiBFZGl0b3JDb21wb25lbnQsIGVkaXRvcjogYW55KTogdm9pZCA9PiB7XG4gIGNvbnN0IGFsbG93ZWRFdmVudHMgPSBnZXRWYWxpZEV2ZW50cyhjdHgpO1xuICBhbGxvd2VkRXZlbnRzLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xuICAgIGNvbnN0IGV2ZW50RW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBjdHhbZXZlbnROYW1lXTtcbiAgICBlZGl0b3Iub24oZXZlbnROYW1lLnN1YnN0cmluZygyKSwgKGV2ZW50OiBhbnkpID0+IGN0eC5uZ1pvbmUucnVuKCgpID0+IGV2ZW50RW1pdHRlci5lbWl0KHsgZXZlbnQsIGVkaXRvciB9KSkpO1xuICB9KTtcbn07XG5cbmNvbnN0IGdldFZhbGlkRXZlbnRzID0gKGN0eDogRWRpdG9yQ29tcG9uZW50KTogKGtleW9mIEV2ZW50cylbXSA9PiB7XG4gIGNvbnN0IGlnbm9yZWRFdmVudHMgPSBwYXJzZVN0cmluZ1Byb3BlcnR5KGN0eC5pZ25vcmVFdmVudHMsIFtdKTtcbiAgY29uc3QgYWxsb3dlZEV2ZW50cyA9IHBhcnNlU3RyaW5nUHJvcGVydHkoY3R4LmFsbG93ZWRFdmVudHMsIHZhbGlkRXZlbnRzKS5maWx0ZXIoXG4gICAgKGV2ZW50KSA9PiB2YWxpZEV2ZW50cy5pbmNsdWRlcyhldmVudCBhcyAoa2V5b2YgRXZlbnRzKSkgJiYgIWlnbm9yZWRFdmVudHMuaW5jbHVkZXMoZXZlbnQpKSBhcyAoa2V5b2YgRXZlbnRzKVtdO1xuICByZXR1cm4gYWxsb3dlZEV2ZW50cztcbn1cblxuY29uc3QgcGFyc2VTdHJpbmdQcm9wZXJ0eSA9IChwcm9wZXJ0eTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQsIGRlZmF1bHRWYWx1ZTogKGtleW9mIEV2ZW50cylbXSk6IHN0cmluZ1tdID0+IHtcbiAgaWYgKCB0eXBlb2YgcHJvcGVydHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5LnNwbGl0KCcsJykubWFwKCh2YWx1ZSkgPT4gdmFsdWUudHJpbSgpKTtcbiAgfVxuICBpZiAoIEFycmF5LmlzQXJyYXkocHJvcGVydHkpKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5O1xuICB9XG4gIHJldHVybiBkZWZhdWx0VmFsdWU7XG59O1xuXG5sZXQgdW5pcXVlID0gMDtcblxuY29uc3QgdXVpZCA9IChwcmVmaXg6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCB0aW1lID0gZGF0ZS5nZXRUaW1lKCk7XG4gIGNvbnN0IHJhbmRvbSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDApO1xuXG4gIHVuaXF1ZSsrO1xuXG4gIHJldHVybiBwcmVmaXggKyAnXycgKyByYW5kb20gKyB1bmlxdWUgKyBTdHJpbmcodGltZSk7XG59O1xuXG5jb25zdCBpc1RleHRhcmVhID0gKGVsZW1lbnQ/OiBFbGVtZW50KTogZWxlbWVudCBpcyBIVE1MVGV4dEFyZWFFbGVtZW50ID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBlbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RleHRhcmVhJztcbn07XG5cbmNvbnN0IG5vcm1hbGl6ZVBsdWdpbkFycmF5ID0gKHBsdWdpbnM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdID0+IHtcbiAgaWYgKHR5cGVvZiBwbHVnaW5zID09PSAndW5kZWZpbmVkJyB8fCBwbHVnaW5zID09PSAnJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IHBsdWdpbnMuc3BsaXQoJyAnKTtcbn07XG5cbmNvbnN0IG1lcmdlUGx1Z2lucyA9IChpbml0UGx1Z2luczogc3RyaW5nIHwgc3RyaW5nW10sIGlucHV0UGx1Z2lucz86IHN0cmluZyB8IHN0cmluZ1tdKSA9PlxuICBub3JtYWxpemVQbHVnaW5BcnJheShpbml0UGx1Z2lucykuY29uY2F0KG5vcm1hbGl6ZVBsdWdpbkFycmF5KGlucHV0UGx1Z2lucykpO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZW1wdHlcbmNvbnN0IG5vb3A6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCA9ICgpID0+IHsgfTtcblxuY29uc3QgaXNOdWxsT3JVbmRlZmluZWQgPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQgPT4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcblxuZXhwb3J0IHtcbiAgYmluZEhhbmRsZXJzLFxuICB1dWlkLFxuICBpc1RleHRhcmVhLFxuICBub3JtYWxpemVQbHVnaW5BcnJheSxcbiAgbWVyZ2VQbHVnaW5zLFxuICBub29wLFxuICBpc051bGxPclVuZGVmaW5lZFxufTtcbiJdfQ==
|
|
@@ -134,7 +134,9 @@ var EditorComponent = /** @class */ (function (_super) {
|
|
|
134
134
|
if (typeof this.initialValue === 'string') {
|
|
135
135
|
this.ngZone.run(function () {
|
|
136
136
|
editor.setContent(_this.initialValue);
|
|
137
|
-
|
|
137
|
+
if (editor.getContent() !== _this.initialValue) {
|
|
138
|
+
_this.onChangeCallback(editor.getContent({ format: _this.outputFormat }));
|
|
139
|
+
}
|
|
138
140
|
if (_this.onInitNgModel !== undefined) {
|
|
139
141
|
_this.onInitNgModel.emit(editor);
|
|
140
142
|
}
|
|
@@ -173,9 +175,11 @@ var EditorComponent = /** @class */ (function (_super) {
|
|
|
173
175
|
tagName: [{ type: Input }],
|
|
174
176
|
plugins: [{ type: Input }],
|
|
175
177
|
toolbar: [{ type: Input }],
|
|
176
|
-
modelEvents: [{ type: Input }]
|
|
178
|
+
modelEvents: [{ type: Input }],
|
|
179
|
+
allowedEvents: [{ type: Input }],
|
|
180
|
+
ignoreEvents: [{ type: Input }]
|
|
177
181
|
};
|
|
178
182
|
return EditorComponent;
|
|
179
183
|
}(Events));
|
|
180
184
|
export { EditorComponent };
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci8iLCJzb3VyY2VzIjpbImVkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUM7QUFFbkYsSUFBTSwrQkFBK0IsR0FBRztJQUN0QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLGVBQWUsRUFBZixDQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7SUFNcUMsbUNBQU07SUF3QzNDLHlCQUNFLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZSxVQUFrQixFQUNDLGdCQUF5QjtRQUozRSxZQU1JLGlCQUFPLFNBSVI7UUFQNEIs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QUMsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLEtBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO29CQUNwQyxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Z0JBekhXLFVBQVU7Z0JBQ2QsTUFBTTtnQkFDMkIsTUFBTSx1QkFBOUMsTUFBTSxTQUFDLFdBQVc7NkNBQ2xCLFFBQVEsWUFBSSxNQUFNLFNBQUMsa0JBQWtCOzs7Z0JBbER2QyxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFFBQVEsRUFBRSw2QkFBNkI7b0JBRXZDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDOzZCQURuQywyQkFBMkI7aUJBRXJDOzs7Z0JBcEJrQyxVQUFVO2dCQUE2QixNQUFNO2dCQWdFckMsTUFBTSx1QkFBOUMsTUFBTSxTQUFDLFdBQVc7NkNBQ2xCLFFBQVEsWUFBSSxNQUFNLFNBQUMsa0JBQWtCOzs7MkJBMUNyQyxLQUFLOytCQWtCTCxLQUFLO3lCQUNMLEtBQUs7dUJBQ0wsS0FBSztxQkFDTCxLQUFLOytCQUNMLEtBQUs7K0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzhCQUNMLEtBQUs7O0lBcUlSLHNCQUFDO0NBQUEsQUF6S0QsQ0FNcUMsTUFBTSxHQW1LMUM7U0FuS1ksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lELCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldFRpbnltY2UgfSBmcm9tICcuLi9UaW55TUNFJztcbmltcG9ydCB7IGJpbmRIYW5kbGVycywgaXNUZXh0YXJlYSwgbWVyZ2VQbHVnaW5zLCB1dWlkLCBub29wLCBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL1V0aWxzJztcbmltcG9ydCB7IEV2ZW50cyB9IGZyb20gJy4vRXZlbnRzJztcbmltcG9ydCB7IFNjcmlwdExvYWRlciB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdExvYWRlcic7XG5cbmV4cG9ydCBjb25zdCBUSU5ZTUNFX1NDUklQVF9TUkMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignVElOWU1DRV9TQ1JJUFRfU1JDJyk7XG5cbmNvbnN0IEVESVRPUl9DT01QT05FTlRfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWRpdG9yJyxcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT4nLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBwcm92aWRlcnM6IFtFRElUT1JfQ09NUE9ORU5UX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBFdmVudHMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgaWYgKHRoaXMuX2VkaXRvciAmJiB0aGlzLl9lZGl0b3IuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRNb2RlKHZhbCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBlZGl0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZTtcblxuICBASW5wdXQoKSBwdWJsaWMgY2xvdWRDaGFubmVsID0gJzUnO1xuICBASW5wdXQoKSBwdWJsaWMgYXBpS2V5ID0gJ25vLWFwaS1rZXknO1xuICBASW5wdXQoKSBwdWJsaWMgaW5pdDogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIGlkID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFsVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIG91dHB1dEZvcm1hdDogJ2h0bWwnIHwgJ3RleHQnIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgaW5saW5lOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgdGFnTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgcGx1Z2luczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgdG9vbGJhcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBtb2RlbEV2ZW50cyA9ICdjaGFuZ2UgaW5wdXQgdW5kbyByZWRvJztcblxuICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZWRpdG9yOiBhbnk7XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjayA9IG5vb3A7XG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjayA9IG5vb3A7XG5cbmNvbnN0cnVjdG9yKFxuICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICBuZ1pvbmU6IE5nWm9uZSxcbiAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gIEBPcHRpb25hbCgpIEBJbmplY3QoVElOWU1DRV9TQ1JJUFRfU1JDKSBwcml2YXRlIHRpbnltY2VTY3JpcHRTcmM/OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLm5nWm9uZSA9IG5nWm9uZTtcbiAgICB0aGlzLmluaXRpYWxpc2UgPSB0aGlzLmluaXRpYWxpc2UuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VkaXRvciAmJiB0aGlzLl9lZGl0b3IuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRDb250ZW50KGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSA/ICcnIDogdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRNb2RlKGlzRGlzYWJsZWQgPyAncmVhZG9ubHknIDogJ2Rlc2lnbicpO1xuICAgIH0gZWxzZSBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbml0ID0geyAuLi50aGlzLmluaXQsIHJlYWRvbmx5OiB0cnVlIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuaWQgfHwgdXVpZCgndGlueS1hbmd1bGFyJyk7XG4gICAgICB0aGlzLmlubGluZSA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmlubGluZSAhPT0gJ3VuZGVmaW5lZCcgPyAodHlwZW9mIHRoaXMuaW5saW5lID09PSAnYm9vbGVhbicgPyB0aGlzLmlubGluZSA6IHRydWUpIDogdGhpcy5pbml0ICYmIHRoaXMuaW5pdC5pbmxpbmU7XG4gICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcbiAgICAgIGlmIChnZXRUaW55bWNlKCkgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXNlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2VsZW1lbnQgJiYgdGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50KSB7XG4gICAgICAgIFNjcmlwdExvYWRlci5sb2FkKFxuICAgICAgICAgIHRoaXMuX2VsZW1lbnQub3duZXJEb2N1bWVudCxcbiAgICAgICAgICB0aGlzLmdldFNjcmlwdFNyYygpLFxuICAgICAgICAgIHRoaXMuaW5pdGlhbGlzZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAoZ2V0VGlueW1jZSgpICE9PSBudWxsKSB7XG4gICAgICBnZXRUaW55bWNlKCkucmVtb3ZlKHRoaXMuX2VkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZUVsZW1lbnQoKSB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHR5cGVvZiB0aGlzLnRhZ05hbWUgPT09ICdzdHJpbmcnID8gdGhpcy50YWdOYW1lIDogJ2Rpdic7XG4gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5pbmxpbmUgPyB0YWdOYW1lIDogJ3RleHRhcmVhJyk7XG4gICAgaWYgKHRoaXMuX2VsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuaWQgPSB0aGlzLmlkO1xuICAgICAgaWYgKGlzVGV4dGFyZWEodGhpcy5fZWxlbWVudCkpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICB9XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QgZmluYWxJbml0ID0ge1xuICAgICAgLi4udGhpcy5pbml0LFxuICAgICAgdGFyZ2V0OiB0aGlzLl9lbGVtZW50LFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcbiAgICAgIHJlYWRvbmx5OiB0aGlzLmRpc2FibGVkLFxuICAgICAgcGx1Z2luczogbWVyZ2VQbHVnaW5zKHRoaXMuaW5pdCAmJiB0aGlzLmluaXQucGx1Z2lucywgdGhpcy5wbHVnaW5zKSxcbiAgICAgIHRvb2xiYXI6IHRoaXMudG9vbGJhciB8fCAodGhpcy5pbml0ICYmIHRoaXMuaW5pdC50b29sYmFyKSxcbiAgICAgIHNldHVwOiAoZWRpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5fZWRpdG9yID0gZWRpdG9yO1xuICAgICAgICBlZGl0b3Iub24oJ2luaXQnLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmluaXRFZGl0b3IoZWRpdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJpbmRIYW5kbGVycyh0aGlzLCBlZGl0b3IpO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXQgJiYgdHlwZW9mIHRoaXMuaW5pdC5zZXR1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMuaW5pdC5zZXR1cChlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChpc1RleHRhcmVhKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBnZXRUaW55bWNlKCkuaW5pdChmaW5hbEluaXQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY3JpcHRTcmMoKSB7XG4gICAgcmV0dXJuIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMudGlueW1jZVNjcmlwdFNyYykgP1xuICAgICAgYGh0dHBzOi8vY2RuLnRpbnkuY2xvdWQvMS8ke3RoaXMuYXBpS2V5fS90aW55bWNlLyR7dGhpcy5jbG91ZENoYW5uZWx9L3RpbnltY2UubWluLmpzYCA6XG4gICAgICB0aGlzLnRpbnltY2VTY3JpcHRTcmM7XG4gIH1cblxuICBwcml2YXRlIGluaXRFZGl0b3IoZWRpdG9yOiBhbnkpIHtcbiAgICBlZGl0b3Iub24oJ2JsdXInLCAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpKSk7XG4gICAgZWRpdG9yLm9uKHRoaXMubW9kZWxFdmVudHMsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2soZWRpdG9yLmdldENvbnRlbnQoeyBmb3JtYXQ6IHRoaXMub3V0cHV0Rm9ybWF0IH0pKSk7XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmluaXRpYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGVkaXRvci5zZXRDb250ZW50KHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKGVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLm91dHB1dEZvcm1hdCB9KSk7XG4gICAgICAgIGlmICh0aGlzLm9uSW5pdE5nTW9kZWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMub25Jbml0TmdNb2RlbC5lbWl0KGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0aW55bWNlL3RpbnltY2UtYW5ndWxhci8iLCJzb3VyY2VzIjpbImVkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUM7QUFFbkYsSUFBTSwrQkFBK0IsR0FBRztJQUN0QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLGVBQWUsRUFBZixDQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7SUFNcUMsbUNBQU07SUEwQzNDLHlCQUNFLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZSxVQUFrQixFQUNDLGdCQUF5QjtRQUozRSxZQU1JLGlCQUFPLFNBSVI7UUFQNEIs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LE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDekU7Z0JBQ0QsSUFBSSxLQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtvQkFDcEMsS0FBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O2dCQTNIVyxVQUFVO2dCQUNkLE1BQU07Z0JBQzJCLE1BQU0sdUJBQTlDLE1BQU0sU0FBQyxXQUFXOzZDQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7O2dCQXBEdkMsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUUsNkJBQTZCO29CQUV2QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQzs2QkFEbkMsMkJBQTJCO2lCQUVyQzs7O2dCQXBCa0MsVUFBVTtnQkFBNkIsTUFBTTtnQkFrRXJDLE1BQU0sdUJBQTlDLE1BQU0sU0FBQyxXQUFXOzZDQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7OzJCQTVDckMsS0FBSzsrQkFrQkwsS0FBSzt5QkFDTCxLQUFLO3VCQUNMLEtBQUs7cUJBQ0wsS0FBSzsrQkFDTCxLQUFLOytCQUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFDTCxLQUFLO2dDQUNMLEtBQUs7K0JBQ0wsS0FBSzs7SUF1SVIsc0JBQUM7Q0FBQSxBQTdLRCxDQU1xQyxNQUFNLEdBdUsxQztTQXZLWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgUExBVEZPUk1fSUQsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0VGlueW1jZSB9IGZyb20gJy4uL1RpbnlNQ0UnO1xuaW1wb3J0IHsgYmluZEhhbmRsZXJzLCBpc1RleHRhcmVhLCBtZXJnZVBsdWdpbnMsIHV1aWQsIG5vb3AsIGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvVXRpbHMnO1xuaW1wb3J0IHsgRXZlbnRzIH0gZnJvbSAnLi9FdmVudHMnO1xuaW1wb3J0IHsgU2NyaXB0TG9hZGVyIH0gZnJvbSAnLi4vdXRpbHMvU2NyaXB0TG9hZGVyJztcblxuZXhwb3J0IGNvbnN0IFRJTllNQ0VfU0NSSVBUX1NSQyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdUSU5ZTUNFX1NDUklQVF9TUkMnKTtcblxuY29uc3QgRURJVE9SX0NPTVBPTkVOVF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZGl0b3InLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZT48L25nLXRlbXBsYXRlPicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHByb3ZpZGVyczogW0VESVRPUl9DT01QT05FTlRfVkFMVUVfQUNDRVNTT1JdXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEV2ZW50cyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2YWwpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbDtcbiAgICBpZiAodGhpcy5fZWRpdG9yICYmIHRoaXMuX2VkaXRvci5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fZWRpdG9yLnNldE1vZGUodmFsID8gJ3JlYWRvbmx5JyA6ICdkZXNpZ24nKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgZ2V0IGVkaXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yO1xuICB9XG5cbiAgcHVibGljIG5nWm9uZTogTmdab25lO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjbG91ZENoYW5uZWwgPSAnNSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcGlLZXkgPSAnbm8tYXBpLWtleSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgaWQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgb3V0cHV0Rm9ybWF0OiAnaHRtbCcgfCAndGV4dCcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YWdOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbHVnaW5zOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sYmFyOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIG1vZGVsRXZlbnRzID0gJ2NoYW5nZSBpbnB1dCB1bmRvIHJlZG8nO1xuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dlZEV2ZW50czogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZ25vcmVFdmVudHM6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9lZGl0b3I6IGFueTtcblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrID0gbm9vcDtcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrID0gbm9vcDtcblxuY29uc3RydWN0b3IoXG4gIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gIG5nWm9uZTogTmdab25lLFxuICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgQE9wdGlvbmFsKCkgQEluamVjdChUSU5ZTUNFX1NDUklQVF9TUkMpIHByaXZhdGUgdGlueW1jZVNjcmlwdFNyYz86IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMubmdab25lID0gbmdab25lO1xuICAgIHRoaXMuaW5pdGlhbGlzZSA9IHRoaXMuaW5pdGlhbGlzZS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZWRpdG9yICYmIHRoaXMuX2VkaXRvci5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fZWRpdG9yLnNldENvbnRlbnQoaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpID8gJycgOiB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gdmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgdGhpcy5fZWRpdG9yLnNldE1vZGUoaXNEaXNhYmxlZCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgfSBlbHNlIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmluaXQgPSB7IC4uLnRoaXMuaW5pdCwgcmVhZG9ubHk6IHRydWUgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCB1dWlkKCd0aW55LWFuZ3VsYXInKTtcbiAgICAgIHRoaXMuaW5saW5lID1cbiAgICAgICAgdHlwZW9mIHRoaXMuaW5saW5lICE9PSAndW5kZWZpbmVkJyA/ICh0eXBlb2YgdGhpcy5pbmxpbmUgPT09ICdib29sZWFuJyA/IHRoaXMuaW5saW5lIDogdHJ1ZSkgOiB0aGlzLmluaXQgJiYgdGhpcy5pbml0LmlubGluZTtcbiAgICAgIHRoaXMuY3JlYXRlRWxlbWVudCgpO1xuICAgICAgaWYgKGdldFRpbnltY2UoKSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpc2UoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fZWxlbWVudCAmJiB0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQpIHtcbiAgICAgICAgU2NyaXB0TG9hZGVyLmxvYWQoXG4gICAgICAgICAgdGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50LFxuICAgICAgICAgIHRoaXMuZ2V0U2NyaXB0U3JjKCksXG4gICAgICAgICAgdGhpcy5pbml0aWFsaXNlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIGlmIChnZXRUaW55bWNlKCkgIT09IG51bGwpIHtcbiAgICAgIGdldFRpbnltY2UoKS5yZW1vdmUodGhpcy5fZWRpdG9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRWxlbWVudCgpIHtcbiAgICBjb25zdCB0YWdOYW1lID0gdHlwZW9mIHRoaXMudGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0aGlzLnRhZ05hbWUgOiAnZGl2JztcbiAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmlubGluZSA/IHRhZ05hbWUgOiAndGV4dGFyZWEnKTtcbiAgICBpZiAodGhpcy5fZWxlbWVudCkge1xuICAgICAgdGhpcy5fZWxlbWVudC5pZCA9IHRoaXMuaWQ7XG4gICAgICBpZiAoaXNUZXh0YXJlYSh0aGlzLl9lbGVtZW50KSkge1xuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIH1cbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGlzZSgpIHtcbiAgICBjb25zdCBmaW5hbEluaXQgPSB7XG4gICAgICAuLi50aGlzLmluaXQsXG4gICAgICB0YXJnZXQ6IHRoaXMuX2VsZW1lbnQsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxuICAgICAgcmVhZG9ubHk6IHRoaXMuZGlzYWJsZWQsXG4gICAgICBwbHVnaW5zOiBtZXJnZVBsdWdpbnModGhpcy5pbml0ICYmIHRoaXMuaW5pdC5wbHVnaW5zLCB0aGlzLnBsdWdpbnMpLFxuICAgICAgdG9vbGJhcjogdGhpcy50b29sYmFyIHx8ICh0aGlzLmluaXQgJiYgdGhpcy5pbml0LnRvb2xiYXIpLFxuICAgICAgc2V0dXA6IChlZGl0b3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLl9lZGl0b3IgPSBlZGl0b3I7XG4gICAgICAgIGVkaXRvci5vbignaW5pdCcsIChlOiBFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5pdEVkaXRvcihlZGl0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgYmluZEhhbmRsZXJzKHRoaXMsIGVkaXRvcik7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdCAmJiB0eXBlb2YgdGhpcy5pbml0LnNldHVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhpcy5pbml0LnNldHVwKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKGlzVGV4dGFyZWEodGhpcy5fZWxlbWVudCkpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuICAgIH1cblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGdldFRpbnltY2UoKS5pbml0KGZpbmFsSW5pdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNjcmlwdFNyYygpIHtcbiAgICByZXR1cm4gaXNOdWxsT3JVbmRlZmluZWQodGhpcy50aW55bWNlU2NyaXB0U3JjKSA/XG4gICAgICBgaHR0cHM6Ly9jZG4udGlueS5jbG91ZC8xLyR7dGhpcy5hcGlLZXl9L3RpbnltY2UvJHt0aGlzLmNsb3VkQ2hhbm5lbH0vdGlueW1jZS5taW4uanNgIDpcbiAgICAgIHRoaXMudGlueW1jZVNjcmlwdFNyYztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEVkaXRvcihlZGl0b3I6IGFueSkge1xuICAgIGVkaXRvci5vbignYmx1cicsICgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCkpKTtcbiAgICBlZGl0b3Iub24odGhpcy5tb2RlbEV2ZW50cywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25DaGFuZ2VDYWxsYmFjayhlZGl0b3IuZ2V0Q29udGVudCh7IGZvcm1hdDogdGhpcy5vdXRwdXRGb3JtYXQgfSkpKTtcbiAgICB9KTtcbiAgICBpZiAodHlwZW9mIHRoaXMuaW5pdGlhbFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgZWRpdG9yLnNldENvbnRlbnQodGhpcy5pbml0aWFsVmFsdWUpO1xuICAgICAgICBpZiAoZWRpdG9yLmdldENvbnRlbnQoKSAhPT0gdGhpcy5pbml0aWFsVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2soZWRpdG9yLmdldENvbnRlbnQoeyBmb3JtYXQ6IHRoaXMub3V0cHV0Rm9ybWF0IH0pKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vbkluaXROZ01vZGVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLm9uSW5pdE5nTW9kZWwuZW1pdChlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm5/utils/Utils.js
CHANGED
|
@@ -7,12 +7,29 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { validEvents } from '../editor/Events';
|
|
9
9
|
var bindHandlers = function (ctx, editor) {
|
|
10
|
-
|
|
10
|
+
var allowedEvents = getValidEvents(ctx);
|
|
11
|
+
allowedEvents.forEach(function (eventName) {
|
|
11
12
|
var eventEmitter = ctx[eventName];
|
|
12
13
|
editor.on(eventName.substring(2), function (event) { return ctx.ngZone.run(function () { return eventEmitter.emit({ event: event, editor: editor }); }); });
|
|
13
14
|
});
|
|
14
15
|
};
|
|
15
16
|
var ɵ0 = bindHandlers;
|
|
17
|
+
var getValidEvents = function (ctx) {
|
|
18
|
+
var ignoredEvents = parseStringProperty(ctx.ignoreEvents, []);
|
|
19
|
+
var allowedEvents = parseStringProperty(ctx.allowedEvents, validEvents).filter(function (event) { return validEvents.includes(event) && !ignoredEvents.includes(event); });
|
|
20
|
+
return allowedEvents;
|
|
21
|
+
};
|
|
22
|
+
var ɵ1 = getValidEvents;
|
|
23
|
+
var parseStringProperty = function (property, defaultValue) {
|
|
24
|
+
if (typeof property === 'string') {
|
|
25
|
+
return property.split(',').map(function (value) { return value.trim(); });
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(property)) {
|
|
28
|
+
return property;
|
|
29
|
+
}
|
|
30
|
+
return defaultValue;
|
|
31
|
+
};
|
|
32
|
+
var ɵ2 = parseStringProperty;
|
|
16
33
|
var unique = 0;
|
|
17
34
|
var uuid = function (prefix) {
|
|
18
35
|
var date = new Date();
|
|
@@ -21,27 +38,27 @@ var uuid = function (prefix) {
|
|
|
21
38
|
unique++;
|
|
22
39
|
return prefix + '_' + random + unique + String(time);
|
|
23
40
|
};
|
|
24
|
-
var ɵ
|
|
41
|
+
var ɵ3 = uuid;
|
|
25
42
|
var isTextarea = function (element) {
|
|
26
43
|
return typeof element !== 'undefined' && element.tagName.toLowerCase() === 'textarea';
|
|
27
44
|
};
|
|
28
|
-
var ɵ
|
|
45
|
+
var ɵ4 = isTextarea;
|
|
29
46
|
var normalizePluginArray = function (plugins) {
|
|
30
47
|
if (typeof plugins === 'undefined' || plugins === '') {
|
|
31
48
|
return [];
|
|
32
49
|
}
|
|
33
50
|
return Array.isArray(plugins) ? plugins : plugins.split(' ');
|
|
34
51
|
};
|
|
35
|
-
var ɵ
|
|
52
|
+
var ɵ5 = normalizePluginArray;
|
|
36
53
|
var mergePlugins = function (initPlugins, inputPlugins) {
|
|
37
54
|
return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));
|
|
38
55
|
};
|
|
39
|
-
var ɵ
|
|
56
|
+
var ɵ6 = mergePlugins;
|
|
40
57
|
// tslint:disable-next-line:no-empty
|
|
41
58
|
var noop = function () { };
|
|
42
|
-
var ɵ
|
|
59
|
+
var ɵ7 = noop;
|
|
43
60
|
var isNullOrUndefined = function (value) { return value === null || value === undefined; };
|
|
44
|
-
var ɵ
|
|
61
|
+
var ɵ8 = isNullOrUndefined;
|
|
45
62
|
export { bindHandlers, uuid, isTextarea, normalizePluginArray, mergePlugins, noop, isNullOrUndefined };
|
|
46
|
-
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6 };
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8 };
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGlueW1jZS90aW55bWNlLWFuZ3VsYXIvIiwic291cmNlcyI6WyJ1dGlscy9VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxPQUFPLEVBQUUsV0FBVyxFQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsSUFBTSxZQUFZLEdBQUcsVUFBQyxHQUFvQixFQUFFLE1BQVc7SUFDckQsSUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBQyxTQUFTO1FBQzlCLElBQU0sWUFBWSxHQUFzQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQUMsS0FBVSxJQUFLLE9BQUEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBTSxPQUFBLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQUEsRUFBRSxNQUFNLFFBQUEsRUFBRSxDQUFDLEVBQXBDLENBQW9DLENBQUMsRUFBMUQsQ0FBMEQsQ0FBQyxDQUFDO0lBQ2hILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDOztBQUVGLElBQU0sY0FBYyxHQUFHLFVBQUMsR0FBb0I7SUFDMUMsSUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRSxJQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FDOUUsVUFBQyxLQUFLLElBQUssT0FBQSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQS9FLENBQStFLENBQXFCLENBQUM7SUFDbEgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyxDQUFBOztBQUVELElBQU0sbUJBQW1CLEdBQUcsVUFBQyxRQUF1QyxFQUFFLFlBQThCO0lBQ2xHLElBQUssT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO1FBQ2pDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQVosQ0FBWSxDQUFDLENBQUM7S0FDekQ7SUFDRCxJQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDNUIsT0FBTyxRQUFRLENBQUM7S0FDakI7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7O0FBRUYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWYsSUFBTSxJQUFJLEdBQUcsVUFBQyxNQUFjO0lBQzFCLElBQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBRXRELE1BQU0sRUFBRSxDQUFDO0lBRVQsT0FBTyxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQzs7QUFFRixJQUFNLFVBQVUsR0FBRyxVQUFDLE9BQWlCO0lBQ25DLE9BQU8sT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssVUFBVSxDQUFDO0FBQ3hGLENBQUMsQ0FBQzs7QUFFRixJQUFNLG9CQUFvQixHQUFHLFVBQUMsT0FBMkI7SUFDdkQsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRTtRQUNwRCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDOztBQUVGLElBQU0sWUFBWSxHQUFHLFVBQUMsV0FBOEIsRUFBRSxZQUFnQztJQUNwRixPQUFBLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUE1RSxDQUE0RSxDQUFDOztBQUUvRSxvQ0FBb0M7QUFDcEMsSUFBTSxJQUFJLEdBQTZCLGNBQVEsQ0FBQyxDQUFDOztBQUVqRCxJQUFNLGlCQUFpQixHQUFHLFVBQUMsS0FBVSxJQUFnQyxPQUFBLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBckMsQ0FBcUMsQ0FBQzs7QUFFM0csT0FBTyxFQUNMLFlBQVksRUFDWixJQUFJLEVBQ0osVUFBVSxFQUNWLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osSUFBSSxFQUNKLGlCQUFpQixFQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTctcHJlc2VudCwgRXBob3gsIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMiBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2VkaXRvci9lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkRXZlbnRzLCBFdmVudHMgfSBmcm9tICcuLi9lZGl0b3IvRXZlbnRzJztcblxuY29uc3QgYmluZEhhbmRsZXJzID0gKGN0eDogRWRpdG9yQ29tcG9uZW50LCBlZGl0b3I6IGFueSk6IHZvaWQgPT4ge1xuICBjb25zdCBhbGxvd2VkRXZlbnRzID0gZ2V0VmFsaWRFdmVudHMoY3R4KTtcbiAgYWxsb3dlZEV2ZW50cy5mb3JFYWNoKChldmVudE5hbWUpID0+IHtcbiAgICBjb25zdCBldmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gY3R4W2V2ZW50TmFtZV07XG4gICAgZWRpdG9yLm9uKGV2ZW50TmFtZS5zdWJzdHJpbmcoMiksIChldmVudDogYW55KSA9PiBjdHgubmdab25lLnJ1bigoKSA9PiBldmVudEVtaXR0ZXIuZW1pdCh7IGV2ZW50LCBlZGl0b3IgfSkpKTtcbiAgfSk7XG59O1xuXG5jb25zdCBnZXRWYWxpZEV2ZW50cyA9IChjdHg6IEVkaXRvckNvbXBvbmVudCk6IChrZXlvZiBFdmVudHMpW10gPT4ge1xuICBjb25zdCBpZ25vcmVkRXZlbnRzID0gcGFyc2VTdHJpbmdQcm9wZXJ0eShjdHguaWdub3JlRXZlbnRzLCBbXSk7XG4gIGNvbnN0IGFsbG93ZWRFdmVudHMgPSBwYXJzZVN0cmluZ1Byb3BlcnR5KGN0eC5hbGxvd2VkRXZlbnRzLCB2YWxpZEV2ZW50cykuZmlsdGVyKFxuICAgIChldmVudCkgPT4gdmFsaWRFdmVudHMuaW5jbHVkZXMoZXZlbnQgYXMgKGtleW9mIEV2ZW50cykpICYmICFpZ25vcmVkRXZlbnRzLmluY2x1ZGVzKGV2ZW50KSkgYXMgKGtleW9mIEV2ZW50cylbXTtcbiAgcmV0dXJuIGFsbG93ZWRFdmVudHM7XG59XG5cbmNvbnN0IHBhcnNlU3RyaW5nUHJvcGVydHkgPSAocHJvcGVydHk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLCBkZWZhdWx0VmFsdWU6IChrZXlvZiBFdmVudHMpW10pOiBzdHJpbmdbXSA9PiB7XG4gIGlmICggdHlwZW9mIHByb3BlcnR5ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwcm9wZXJ0eS5zcGxpdCgnLCcpLm1hcCgodmFsdWUpID0+IHZhbHVlLnRyaW0oKSk7XG4gIH1cbiAgaWYgKCBBcnJheS5pc0FycmF5KHByb3BlcnR5KSkge1xuICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFZhbHVlO1xufTtcblxubGV0IHVuaXF1ZSA9IDA7XG5cbmNvbnN0IHV1aWQgPSAocHJlZml4OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgY29uc3QgdGltZSA9IGRhdGUuZ2V0VGltZSgpO1xuICBjb25zdCByYW5kb20gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDAwKTtcblxuICB1bmlxdWUrKztcblxuICByZXR1cm4gcHJlZml4ICsgJ18nICsgcmFuZG9tICsgdW5pcXVlICsgU3RyaW5nKHRpbWUpO1xufTtcblxuY29uc3QgaXNUZXh0YXJlYSA9IChlbGVtZW50PzogRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTFRleHRBcmVhRWxlbWVudCA9PiB7XG4gIHJldHVybiB0eXBlb2YgZWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICd0ZXh0YXJlYSc7XG59O1xuXG5jb25zdCBub3JtYWxpemVQbHVnaW5BcnJheSA9IChwbHVnaW5zPzogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSA9PiB7XG4gIGlmICh0eXBlb2YgcGx1Z2lucyA9PT0gJ3VuZGVmaW5lZCcgfHwgcGx1Z2lucyA9PT0gJycpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBwbHVnaW5zLnNwbGl0KCcgJyk7XG59O1xuXG5jb25zdCBtZXJnZVBsdWdpbnMgPSAoaW5pdFBsdWdpbnM6IHN0cmluZyB8IHN0cmluZ1tdLCBpbnB1dFBsdWdpbnM/OiBzdHJpbmcgfCBzdHJpbmdbXSkgPT5cbiAgbm9ybWFsaXplUGx1Z2luQXJyYXkoaW5pdFBsdWdpbnMpLmNvbmNhdChub3JtYWxpemVQbHVnaW5BcnJheShpbnB1dFBsdWdpbnMpKTtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5XG5jb25zdCBub29wOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbmNvbnN0IGlzTnVsbE9yVW5kZWZpbmVkID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkID0+IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCB7XG4gIGJpbmRIYW5kbGVycyxcbiAgdXVpZCxcbiAgaXNUZXh0YXJlYSxcbiAgbm9ybWFsaXplUGx1Z2luQXJyYXksXG4gIG1lcmdlUGx1Z2lucyxcbiAgbm9vcCxcbiAgaXNOdWxsT3JVbmRlZmluZWRcbn07XG4iXX0=
|