@covalent/core
Version:
Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.
1 lines • 61 kB
Source Map (JSON)
{"version":3,"file":"covalent-core-json-formatter.mjs","sources":["../tmp-esm2022/json-formatter/collapse.animation.js","../tmp-esm2022/json-formatter/json-formatter.component.js","../tmp-esm2022/json-formatter/json-formatter.module.js","../tmp-esm2022/json-formatter/covalent-core-json-formatter.js"],"sourcesContent":["import { trigger, state, style, transition, animate, AUTO_STYLE, query, animateChild, group, } from '@angular/animations';\n/**\n * const tdCollapseAnimation\n *\n * Parameter Options:\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\n * * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.\n * * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.\n *\n * Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.\n *\n * usage: [@tdCollapse]=\"{ value: true | false, params: { duration: 500 }}\"\n */\nexport const tdCollapseAnimation = trigger('tdCollapse', [\n state('1', style({\n height: '0',\n overflow: 'hidden',\n })),\n state('0', style({\n height: AUTO_STYLE,\n overflow: AUTO_STYLE,\n })),\n transition('0 => 1', [\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate('{{ duration }}ms {{ delay }}ms {{ ease }}', style({\n height: '0',\n overflow: 'hidden',\n })),\n ]),\n ], { params: { duration: 150, delay: '0', ease: 'ease-in' } }),\n transition('1 => 0', [\n style({\n height: '0',\n overflow: 'hidden',\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate('{{ duration }}ms {{ delay }}ms {{ ease }}', style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n })),\n ]),\n ], { params: { duration: 150, delay: '0', ease: 'ease-out' } }),\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2pzb24tZm9ybWF0dGVyL3NyYy9jb2xsYXBzZS5hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBRVAsVUFBVSxFQUNWLEtBQUssRUFDTCxZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0scUJBQXFCLENBQUM7QUFhN0I7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQTZCLE9BQU8sQ0FDbEUsWUFBWSxFQUNaO0lBQ0UsS0FBSyxDQUNILEdBQUcsRUFDSCxLQUFLLENBQUM7UUFDSixNQUFNLEVBQUUsR0FBRztRQUNYLFFBQVEsRUFBRSxRQUFRO0tBQ25CLENBQUMsQ0FDSDtJQUNELEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO1FBQ0osTUFBTSxFQUFFLFVBQVU7UUFDbEIsUUFBUSxFQUFFLFVBQVU7S0FDckIsQ0FBQyxDQUNIO0lBQ0QsVUFBVSxDQUNSLFFBQVEsRUFDUjtRQUNFLEtBQUssQ0FBQztZQUNKLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxVQUFVO1NBQ25CLENBQUM7UUFDRixLQUFLLENBQUM7WUFDSixLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQy9DLE9BQU8sQ0FDTCwyQ0FBMkMsRUFDM0MsS0FBSyxDQUFDO2dCQUNKLE1BQU0sRUFBRSxHQUFHO2dCQUNYLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FDSDtTQUNGLENBQUM7S0FDSCxFQUNELEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUMzRDtJQUNELFVBQVUsQ0FDUixRQUFRLEVBQ1I7UUFDRSxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsR0FBRztZQUNYLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUM7UUFDRixLQUFLLENBQUM7WUFDSixLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQy9DLE9BQU8sQ0FDTCwyQ0FBMkMsRUFDM0MsS0FBSyxDQUFDO2dCQUNKLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixNQUFNLEVBQUUsVUFBVTthQUNuQixDQUFDLENBQ0g7U0FDRixDQUFDO0tBQ0gsRUFDRCxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDNUQ7Q0FDRixDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0cmlnZ2VyLFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIGFuaW1hdGUsXG4gIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSxcbiAgQVVUT19TVFlMRSxcbiAgcXVlcnksXG4gIGFuaW1hdGVDaGlsZCxcbiAgZ3JvdXAsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBbmltYXRpb25PcHRpb25zIHtcbiAgYW5jaG9yPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZGVsYXk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbGxhcHNlQW5pbWF0aW9uIGV4dGVuZHMgSUFuaW1hdGlvbk9wdGlvbnMge1xuICBlYXNlT25DbG9zZT86IHN0cmluZztcbiAgZWFzZU9uT3Blbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBjb25zdCB0ZENvbGxhcHNlQW5pbWF0aW9uXG4gKlxuICogUGFyYW1ldGVyIE9wdGlvbnM6XG4gKiAqIGR1cmF0aW9uOiBEdXJhdGlvbiB0aGUgYW5pbWF0aW9uIHdpbGwgcnVuIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdHMgdG8gMTUwIG1zLlxuICogKiBkZWxheTogRGVsYXkgYmVmb3JlIHRoZSBhbmltYXRpb24gd2lsbCBydW4gaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0cyB0byAwIG1zLlxuICogKiBlYXNlT25DbG9zZTogQW5pbWF0aW9uIGFjY2VsZXJhdGVzIGFuZCBkZWNlbGVyYXRlcyB3aGVuIGNsb3NpbmcuIERlZmF1bHRzIHRvIGVhc2UtaW4uXG4gKiAqIGVhc2VPbk9wZW46IEFuaW1hdGlvbiBhY2NlbGVyYXRlcyBhbmQgZGVjZWxlcmF0ZXMgd2hlbiBvcGVuaW5nLiBEZWZhdWx0cyB0byBlYXNlLW91dC5cbiAqXG4gKiBSZXR1cm5zIGFuIFtBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGFdIG9iamVjdCB3aXRoIGJvb2xlYW4gc3RhdGVzIGZvciBhIGNvbGxhcHNlL2V4cGFuZCBhbmltYXRpb24uXG4gKlxuICogdXNhZ2U6IFtAdGRDb2xsYXBzZV09XCJ7IHZhbHVlOiB0cnVlIHwgZmFsc2UsIHBhcmFtczogeyBkdXJhdGlvbjogNTAwIH19XCJcbiAqL1xuZXhwb3J0IGNvbnN0IHRkQ29sbGFwc2VBbmltYXRpb246IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9IHRyaWdnZXIoXG4gICd0ZENvbGxhcHNlJyxcbiAgW1xuICAgIHN0YXRlKFxuICAgICAgJzEnLFxuICAgICAgc3R5bGUoe1xuICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgfSlcbiAgICApLFxuICAgIHN0YXRlKFxuICAgICAgJzAnLFxuICAgICAgc3R5bGUoe1xuICAgICAgICBoZWlnaHQ6IEFVVE9fU1RZTEUsXG4gICAgICAgIG92ZXJmbG93OiBBVVRPX1NUWUxFLFxuICAgICAgfSlcbiAgICApLFxuICAgIHRyYW5zaXRpb24oXG4gICAgICAnMCA9PiAxJyxcbiAgICAgIFtcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICBoZWlnaHQ6IEFVVE9fU1RZTEUsXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgcXVlcnkoJ0AqJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICd7eyBkdXJhdGlvbiB9fW1zIHt7IGRlbGF5IH19bXMge3sgZWFzZSB9fScsXG4gICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICksXG4gICAgICAgIF0pLFxuICAgICAgXSxcbiAgICAgIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAxNTAsIGRlbGF5OiAnMCcsIGVhc2U6ICdlYXNlLWluJyB9IH1cbiAgICApLFxuICAgIHRyYW5zaXRpb24oXG4gICAgICAnMSA9PiAwJyxcbiAgICAgIFtcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwKFtcbiAgICAgICAgICBxdWVyeSgnQConLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgJ3t7IGR1cmF0aW9uIH19bXMge3sgZGVsYXkgfX1tcyB7eyBlYXNlIH19JyxcbiAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICBoZWlnaHQ6IEFVVE9fU1RZTEUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICksXG4gICAgICAgIF0pLFxuICAgICAgXSxcbiAgICAgIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAxNTAsIGRlbGF5OiAnMCcsIGVhc2U6ICdlYXNlLW91dCcgfSB9XG4gICAgKSxcbiAgXVxuKTtcbiJdfQ==","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject, } from '@angular/core';\nimport { Dir } from '@angular/cdk/bidi';\nimport { tdCollapseAnimation } from './collapse.animation';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nfunction TdJsonFormatterComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-icon\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.open ? \"keyboard_arrow_down\" : ctx_r0.isRTL ? \"keyboard_arrow_left\" : \"keyboard_arrow_right\", \" \");\n} }\nfunction TdJsonFormatterComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", ctx_r0.key, \":\");\n} }\nfunction TdJsonFormatterComponent_span_5_span_3_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 14);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"[\", ctx_r0.data[\"length\"], \"]\");\n} }\nfunction TdJsonFormatterComponent_span_5_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 11)(1, \"span\", 12);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, TdJsonFormatterComponent_span_5_span_3_Template, 2, 1, \"span\", 13);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"td-empty\", !ctx_r0.hasChildren());\n i0.ɵɵproperty(\"matTooltip\", ctx_r0.getPreview());\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r0.getObjectName());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.isArray());\n} }\nfunction TdJsonFormatterComponent_span_6_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r0.getType(ctx_r0.data));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.getValue(ctx_r0.data));\n} }\nfunction TdJsonFormatterComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelement(0, \"td-json-formatter\", 15);\n} if (rf & 2) {\n const key_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"key\", key_r2)(\"data\", ctx_r0.data[key_r2])(\"levelsOpen\", ctx_r0.levelsOpen - 1);\n} }\nexport class TdJsonFormatterComponent {\n _changeDetectorRef = inject(ChangeDetectorRef);\n _dir = inject(Dir, { optional: true });\n /**\n * Max length for property names. Any names bigger than this get trunctated.\n */\n static KEY_MAX_LENGTH = 30;\n /**\n * Max length for preview string. Any names bigger than this get trunctated.\n */\n static PREVIEW_STRING_MAX_LENGTH = 80;\n /**\n * Max tooltip preview elements.\n */\n static PREVIEW_LIMIT = 5;\n _key;\n _data;\n _children;\n _open = false;\n _levelsOpen = 0;\n /**\n * levelsOpen?: number\n * Levels opened by default when JS object is formatted and rendered.\n */\n set levelsOpen(levelsOpen) {\n if (!Number.isInteger(levelsOpen)) {\n throw new Error('[levelsOpen] needs to be an integer.');\n }\n this._levelsOpen = levelsOpen;\n this._open = levelsOpen > 0;\n }\n get levelsOpen() {\n return this._levelsOpen;\n }\n get open() {\n return this._open;\n }\n /**\n * key?: string\n * Tag to be displayed next to formatted object.\n */\n set key(key) {\n this._key = key;\n }\n get key() {\n const elipsis = this._key && this._key.length > TdJsonFormatterComponent.KEY_MAX_LENGTH\n ? '…'\n : '';\n return this._key\n ? this._key.substring(0, TdJsonFormatterComponent.KEY_MAX_LENGTH) +\n elipsis\n : (this._key ?? '');\n }\n /**\n * data: any\n * JS object to be formatted.\n */\n set data(data) {\n this._data = data;\n this.parseChildren();\n }\n get data() {\n return this._data;\n }\n get children() {\n return this._children ?? [];\n }\n get isRTL() {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n /**\n * Refreshes json-formatter and rerenders [data]\n */\n refresh() {\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Toggles collapse/expanded state of component.\n */\n toggle() {\n this._open = !this._open;\n }\n isObject() {\n return this.getType(this._data) === 'object';\n }\n isArray() {\n return Array.isArray(this._data);\n }\n hasChildren() {\n return (this._children && this._children.length > 0) ?? false;\n }\n /**\n * Gets parsed value depending on value type.\n */\n getValue(value) {\n const type = this.getType(value);\n if (type === 'undefined' || type === 'null') {\n return type;\n }\n else if (type === 'date') {\n value = new Date(value).toString();\n }\n else if (type === 'string') {\n value = '\"' + value + '\"';\n }\n else if (type === 'function') {\n // Remove content of the function\n return (value\n .toString()\n .replace(/[\\r\\n]/g, '')\n .replace(/\\{.*\\}/, '') + '{…}');\n }\n else if (Array.isArray(value)) {\n return this.getObjectName() + ' [' + value.length + ']';\n }\n return value;\n }\n /**\n * Gets type of object.\n * returns 'null' if object is null and 'date' if value is object and can be parsed to a date.\n */\n getType(object) {\n if (typeof object === 'object') {\n if (!object) {\n return 'null';\n }\n if (Array.isArray(object)) {\n return 'object';\n }\n const date = new Date(object);\n if (Object.prototype.toString.call(date) === '[object Date]' &&\n !Number.isNaN(date.getTime())) {\n return 'date';\n }\n }\n return typeof object;\n }\n /**\n * Generates string representation depending if its an object or function.\n * see: http://stackoverflow.com/a/332429\n */\n getObjectName() {\n const object = this._data;\n if (this.isObject() && !object.constructor) {\n return 'Object';\n }\n const funcNameRegex = /function (.{1,})\\(/;\n const results = funcNameRegex.exec(object.constructor.toString());\n if (results && results.length > 1) {\n return results[1];\n }\n else {\n return '';\n }\n }\n /**\n * Creates preview of nodes children to render in tooltip depending if its an array or an object.\n */\n getPreview() {\n let previewData;\n let startChar = '{ ';\n let endChar = ' }';\n if (this.isArray()) {\n const previewArray = Object.entries(this._data).slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];\n previewData = previewArray.map((obj) => {\n return this.getValue(obj);\n });\n startChar = '[';\n endChar = ']';\n }\n else {\n const previewKeys = this._children?.slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];\n previewData = previewKeys.map((key) => {\n return key + ': ' + this.getValue(this._data[key] ?? undefined);\n });\n }\n const previewString = previewData.join(', ');\n const ellipsis = previewData.length >= TdJsonFormatterComponent.PREVIEW_LIMIT ||\n previewString.length > TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ? '…'\n : '';\n return (startChar +\n previewString.substring(0, TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH) +\n ellipsis +\n endChar);\n }\n parseChildren() {\n if (this.isObject()) {\n this._children = Object.keys(this._data ?? {});\n }\n }\n static ɵfac = function TdJsonFormatterComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdJsonFormatterComponent)(); };\n static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdJsonFormatterComponent, selectors: [[\"td-json-formatter\"]], inputs: { levelsOpen: \"levelsOpen\", key: \"key\", data: \"data\" }, decls: 9, vars: 11, consts: [[1, \"td-json-formatter-wrapper\"], [1, \"td-key\", 3, \"keydown.enter\", \"click\", \"tabIndex\"], [\"class\", \"td-node-icon\", 4, \"ngIf\"], [\"class\", \"key\", 4, \"ngIf\"], [1, \"value\"], [\"matTooltipPosition\", \"after\", 3, \"td-empty\", \"matTooltip\", 4, \"ngIf\"], [3, \"class\", 4, \"ngIf\"], [1, \"td-object-children\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"td-node-icon\"], [1, \"key\"], [\"matTooltipPosition\", \"after\", 3, \"matTooltip\"], [1, \"td-object-name\"], [\"class\", \"td-array-length\", 4, \"ngIf\"], [1, \"td-array-length\"], [3, \"key\", \"data\", \"levelsOpen\"]], template: function TdJsonFormatterComponent_Template(rf, ctx) { if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"a\", 1);\n i0.ɵɵlistener(\"keydown.enter\", function TdJsonFormatterComponent_Template_a_keydown_enter_1_listener() { return ctx.toggle(); })(\"click\", function TdJsonFormatterComponent_Template_a_click_1_listener() { return ctx.toggle(); });\n i0.ɵɵtemplate(2, TdJsonFormatterComponent_mat_icon_2_Template, 2, 1, \"mat-icon\", 2)(3, TdJsonFormatterComponent_span_3_Template, 2, 1, \"span\", 3);\n i0.ɵɵelementStart(4, \"span\", 4);\n i0.ɵɵtemplate(5, TdJsonFormatterComponent_span_5_Template, 4, 5, \"span\", 5)(6, TdJsonFormatterComponent_span_6_Template, 2, 3, \"span\", 6);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"div\", 7);\n i0.ɵɵtemplate(8, TdJsonFormatterComponent_ng_template_8_Template, 1, 3, \"ng-template\", 8);\n i0.ɵɵelementEnd()();\n } if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"td-key-node\", ctx.hasChildren())(\"td-key-leaf\", !ctx.hasChildren());\n i0.ɵɵproperty(\"tabIndex\", ctx.isObject() ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasChildren());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.key);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.isObject());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isObject());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@tdCollapse\", !(ctx.hasChildren() && ctx.open));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.children);\n } }, dependencies: [TdJsonFormatterComponent, CommonModule, i1.NgForOf, i1.NgIf, MatIcon, MatTooltip], styles: [\"[_nghost-%COMP%]{display:block}.td-json-formatter-wrapper[_ngcontent-%COMP%]{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-key[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-key.td-key-node[_ngcontent-%COMP%]:hover{cursor:pointer}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children.ng-animating[_ngcontent-%COMP%]{overflow:hidden}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-key[_ngcontent-%COMP%], .td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%]{padding-left:24px} [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key, [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-key.td-key-leaf[_ngcontent-%COMP%], .td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-object-children.td-key-leaf[_ngcontent-%COMP%]{padding-left:48px} [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf, [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{margin-left:5px} [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .td-empty[_ngcontent-%COMP%]{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .string[_ngcontent-%COMP%], .td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .date[_ngcontent-%COMP%]{word-break:break-word}\"], data: { animation: [tdCollapseAnimation] }, changeDetection: 0 });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdJsonFormatterComponent, [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'td-json-formatter', imports: [CommonModule, MatIcon, MatTooltip], animations: [tdCollapseAnimation], template: \"<div class=\\\"td-json-formatter-wrapper\\\">\\n <a\\n class=\\\"td-key\\\"\\n [class.td-key-node]=\\\"hasChildren()\\\"\\n [class.td-key-leaf]=\\\"!hasChildren()\\\"\\n [tabIndex]=\\\"isObject() ? 0 : -1\\\"\\n (keydown.enter)=\\\"toggle()\\\"\\n (click)=\\\"toggle()\\\"\\n >\\n <mat-icon class=\\\"td-node-icon\\\" *ngIf=\\\"hasChildren()\\\">\\n {{\\n open\\n ? 'keyboard_arrow_down'\\n : isRTL\\n ? 'keyboard_arrow_left'\\n : 'keyboard_arrow_right'\\n }}\\n </mat-icon>\\n <span *ngIf=\\\"key\\\" class=\\\"key\\\">{{ key }}:</span>\\n <span class=\\\"value\\\">\\n <span\\n [class.td-empty]=\\\"!hasChildren()\\\"\\n *ngIf=\\\"isObject()\\\"\\n [matTooltip]=\\\"getPreview()\\\"\\n matTooltipPosition=\\\"after\\\"\\n >\\n <span class=\\\"td-object-name\\\">{{ getObjectName() }}</span>\\n <span class=\\\"td-array-length\\\" *ngIf=\\\"isArray()\\\"\\n >[{{ data['length'] }}]</span\\n >\\n </span>\\n <span *ngIf=\\\"!isObject()\\\" [class]=\\\"getType(data)\\\">{{\\n getValue(data)\\n }}</span>\\n </span>\\n </a>\\n <div class=\\\"td-object-children\\\" [@tdCollapse]=\\\"!(hasChildren() && open)\\\">\\n <ng-template let-key ngFor [ngForOf]=\\\"children\\\">\\n <td-json-formatter\\n [key]=\\\"key\\\"\\n [data]=\\\"data[key]\\\"\\n [levelsOpen]=\\\"levelsOpen - 1\\\"\\n ></td-json-formatter>\\n </ng-template>\\n </div>\\n</div>\\n\", styles: [\":host{display:block}.td-json-formatter-wrapper{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper .td-key{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper .td-key.td-key-node:hover{cursor:pointer}.td-json-formatter-wrapper .td-object-children.ng-animating{overflow:hidden}.td-json-formatter-wrapper .td-object-children .td-key,.td-json-formatter-wrapper .td-object-children .td-object-children{padding-left:24px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,.td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-left:48px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper .value{margin-left:5px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper .value .td-empty{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper .value .string,.td-json-formatter-wrapper .value .date{word-break:break-word}\\n\"] }]\n }], null, { levelsOpen: [{\n type: Input\n }], key: [{\n type: Input\n }], data: [{\n type: Input\n }] }); })();\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassDebugInfo(TdJsonFormatterComponent, { className: \"TdJsonFormatterComponent\", filePath: \"json-formatter.component.ts\", lineNumber: 22 }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1mb3JtYXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2pzb24tZm9ybWF0dGVyL3NyYy9qc29uLWZvcm1hdHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvanNvbi1mb3JtYXR0ZXIvc3JjL2pzb24tZm9ybWF0dGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztJQ0ZuRCxtQ0FBcUQ7SUFDbkQsWUFPRjtJQUFBLGlCQUFXOzs7SUFQVCxjQU9GO0lBUEUsb0lBT0Y7OztJQUNBLGdDQUE4QjtJQUFBLFlBQVU7SUFBQSxpQkFBTzs7O0lBQWpCLGNBQVU7SUFBViwwQ0FBVTs7O0lBU3BDLGdDQUNHO0lBQUEsWUFBc0I7SUFBQSxpQkFDeEI7OztJQURFLGNBQXNCO0lBQXRCLHNEQUFzQjs7O0lBRnpCLEFBTkYsZ0NBS0MsZUFDOEI7SUFBQSxZQUFxQjtJQUFBLGlCQUFPO0lBQ3pELG1GQUNHO0lBRUwsaUJBQU87OztJQVRMLGlEQUFpQztJQUVqQyxnREFBMkI7SUFHRSxlQUFxQjtJQUFyQiw0Q0FBcUI7SUFDbkIsY0FBZTtJQUFmLHVDQUFlOzs7SUFJaEQsNEJBQWtEO0lBQUEsWUFFaEQ7SUFBQSxpQkFBTzs7O0lBRmlCLDBDQUF1QjtJQUFDLGNBRWhEO0lBRmdELGtEQUVoRDs7O0lBS0Ysd0NBSXFCOzs7O0lBRG5CLEFBREEsQUFEQSw0QkFBVyw2QkFDTyxxQ0FDVzs7QURwQnJDLE1BQU0sT0FBTyx3QkFBd0I7SUFDM0Isa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0MsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvQzs7T0FFRztJQUNLLE1BQU0sQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRW5DOztPQUVHO0lBQ0ssTUFBTSxDQUFDLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztJQUU5Qzs7T0FFRztJQUNLLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLElBQUksQ0FBVTtJQUNkLEtBQUssQ0FBdUI7SUFDNUIsU0FBUyxDQUFZO0lBQ3JCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBRXhCOzs7T0FHRztJQUNILElBQ0ksVUFBVSxDQUFDLFVBQWtCO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLEdBQUcsQ0FBQyxHQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFDRCxJQUFJLEdBQUc7UUFDTCxNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLHdCQUF3QixDQUFDLGNBQWM7WUFDckUsQ0FBQyxDQUFDLEdBQUc7WUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLENBQUMsY0FBYyxDQUFDO2dCQUM3RCxPQUFPO1lBQ1gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDSSxJQUFJLENBQUMsSUFBeUI7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLEtBQVU7UUFDakIsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQzVCLENBQUM7YUFBTSxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQixpQ0FBaUM7WUFDakMsT0FBTyxDQUNMLEtBQUs7aUJBQ0YsUUFBUSxFQUFFO2lCQUNWLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2lCQUN0QixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FDakMsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxNQUFXO1FBQ2pCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQ0UsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLGVBQWU7Z0JBQ3hELENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFDN0IsQ0FBQztnQkFDRCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxNQUFNLE1BQU0sR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRSxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksV0FBcUIsQ0FBQztRQUMxQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkIsTUFBTSxZQUFZLEdBQ2hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FDOUIsQ0FBQyxFQUNELHdCQUF3QixDQUFDLGFBQWEsQ0FDdkMsSUFBSSxFQUFFLENBQUM7WUFDVixXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUMxQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFDSCxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ2hCLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pFLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7Z0JBQzVDLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQVcsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FDWixXQUFXLENBQUMsTUFBTSxJQUFJLHdCQUF3QixDQUFDLGFBQWE7WUFDNUQsYUFBYSxDQUFDLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyx5QkFBeUI7WUFDdkUsQ0FBQyxDQUFDLEdBQUc7WUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUNMLFNBQVM7WUFDVCxhQUFhLENBQUMsU0FBUyxDQUNyQixDQUFDLEVBQ0Qsd0JBQXdCLENBQUMseUJBQXlCLENBQ25EO1lBQ0QsUUFBUTtZQUNSLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztrSEFsT1Usd0JBQXdCOzZEQUF4Qix3QkFBd0I7WUNwQm5DLEFBREYsOEJBQXVDLFdBUXBDO1lBREMsQUFEQSxnSEFBaUIsWUFBUSxJQUFDLG1GQUNqQixZQUFRLElBQUM7WUFXbEIsQUFUQSxtRkFBcUQsOERBU3ZCO1lBQzlCLCtCQUFvQjtZQVlsQixBQVhBLDJFQUtDLDhEQU1pRDtZQUl0RCxBQURFLGlCQUFPLEVBQ0w7WUFDSiw4QkFBeUU7WUFDdkUseUZBQWdEO1lBUXBELEFBREUsaUJBQU0sRUFDRjs7WUExQ0YsY0FBbUM7WUFDbkMsQUFEQSxnREFBbUMsbUNBQ0M7WUFDcEMsa0RBQWdDO1lBSUEsY0FBbUI7WUFBbkIsd0NBQW1CO1lBUzVDLGNBQVM7WUFBVCw4QkFBUztZQUlYLGVBQWdCO1lBQWhCLHFDQUFnQjtZQVNaLGNBQWlCO1lBQWpCLHNDQUFpQjtZQUtJLGNBQXdDO1lBQXhDLDhEQUF3QztZQUMzQyxjQUFvQjtZQUFwQixzQ0FBb0I7NEJEaEJ0Qyx3QkFBd0IsRUFIekIsWUFBWSx1QkFBRSxPQUFPLEVBQUUsVUFBVSxnaEVBQy9CLENBQUMsbUJBQW1CLENBQUM7O2lGQUV0Qix3QkFBd0I7Y0FScEMsU0FBUztrQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLG1CQUFtQixXQUdwQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLGNBQ2hDLENBQUMsbUJBQW1CLENBQUM7Z0JBZ0M3QixVQUFVO2tCQURiLEtBQUs7WUFxQkYsR0FBRztrQkFETixLQUFLO1lBb0JGLElBQUk7a0JBRFAsS0FBSzs7a0ZBcEVLLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IHRkQ29sbGFwc2VBbmltYXRpb24gfSBmcm9tICcuL2NvbGxhcHNlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHNlbGVjdG9yOiAndGQtanNvbi1mb3JtYXR0ZXInLFxuICBzdHlsZVVybHM6IFsnLi9qc29uLWZvcm1hdHRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vanNvbi1mb3JtYXR0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uLCBNYXRUb29sdGlwXSxcbiAgYW5pbWF0aW9uczogW3RkQ29sbGFwc2VBbmltYXRpb25dLFxufSlcbmV4cG9ydCBjbGFzcyBUZEpzb25Gb3JtYXR0ZXJDb21wb25lbnQge1xuICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX2RpciA9IGluamVjdChEaXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIE1heCBsZW5ndGggZm9yIHByb3BlcnR5IG5hbWVzLiBBbnkgbmFtZXMgYmlnZ2VyIHRoYW4gdGhpcyBnZXQgdHJ1bmN0YXRlZC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIEtFWV9NQVhfTEVOR1RIID0gMzA7XG5cbiAgLyoqXG4gICAqIE1heCBsZW5ndGggZm9yIHByZXZpZXcgc3RyaW5nLiBBbnkgbmFtZXMgYmlnZ2VyIHRoYW4gdGhpcyBnZXQgdHJ1bmN0YXRlZC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIFBSRVZJRVdfU1RSSU5HX01BWF9MRU5HVEggPSA4MDtcblxuICAvKipcbiAgICogTWF4IHRvb2x0aXAgcHJldmlldyBlbGVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIFBSRVZJRVdfTElNSVQgPSA1O1xuXG4gIHByaXZhdGUgX2tleT86IHN0cmluZztcbiAgcHJpdmF0ZSBfZGF0YSE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHByaXZhdGUgX2NoaWxkcmVuPzogc3RyaW5nW107XG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGV2ZWxzT3BlbiA9IDA7XG5cbiAgLyoqXG4gICAqIGxldmVsc09wZW4/OiBudW1iZXJcbiAgICogTGV2ZWxzIG9wZW5lZCBieSBkZWZhdWx0IHdoZW4gSlMgb2JqZWN0IGlzIGZvcm1hdHRlZCBhbmQgcmVuZGVyZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbGV2ZWxzT3BlbihsZXZlbHNPcGVuOiBudW1iZXIpIHtcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIobGV2ZWxzT3BlbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW2xldmVsc09wZW5dIG5lZWRzIHRvIGJlIGFuIGludGVnZXIuJyk7XG4gICAgfVxuICAgIHRoaXMuX2xldmVsc09wZW4gPSBsZXZlbHNPcGVuO1xuICAgIHRoaXMuX29wZW4gPSBsZXZlbHNPcGVuID4gMDtcbiAgfVxuICBnZXQgbGV2ZWxzT3BlbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sZXZlbHNPcGVuO1xuICB9XG5cbiAgZ2V0IG9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW47XG4gIH1cblxuICAvKipcbiAgICoga2V5Pzogc3RyaW5nXG4gICAqIFRhZyB0byBiZSBkaXNwbGF5ZWQgbmV4dCB0byBmb3JtYXR0ZWQgb2JqZWN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGtleShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuX2tleSA9IGtleTtcbiAgfVxuICBnZXQga2V5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgZWxpcHNpczogc3RyaW5nID1cbiAgICAgIHRoaXMuX2tleSAmJiB0aGlzLl9rZXkubGVuZ3RoID4gVGRKc29uRm9ybWF0dGVyQ29tcG9uZW50LktFWV9NQVhfTEVOR1RIXG4gICAgICAgID8gJ+KApidcbiAgICAgICAgOiAnJztcbiAgICByZXR1cm4gdGhpcy5fa2V5XG4gICAgICA/IHRoaXMuX2tleS5zdWJzdHJpbmcoMCwgVGRKc29uRm9ybWF0dGVyQ29tcG9uZW50LktFWV9NQVhfTEVOR1RIKSArXG4gICAgICAgICAgZWxpcHNpc1xuICAgICAgOiAodGhpcy5fa2V5ID8/ICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkYXRhOiBhbnlcbiAgICogSlMgb2JqZWN0IHRvIGJlIGZvcm1hdHRlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgICB0aGlzLnBhcnNlQ2hpbGRyZW4oKTtcbiAgfVxuICBnZXQgZGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIGdldCBjaGlsZHJlbigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuID8/IFtdO1xuICB9XG5cbiAgZ2V0IGlzUlRMKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9kaXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kaXIuZGlyID09PSAncnRsJztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBqc29uLWZvcm1hdHRlciBhbmQgcmVyZW5kZXJzIFtkYXRhXVxuICAgKi9cbiAgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGNvbGxhcHNlL2V4cGFuZGVkIHN0YXRlIG9mIGNvbXBvbmVudC5cbiAgICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuID0gIXRoaXMuX29wZW47XG4gIH1cblxuICBpc09iamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUeXBlKHRoaXMuX2RhdGEpID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzQXJyYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5fZGF0YSk7XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuX2NoaWxkcmVuICYmIHRoaXMuX2NoaWxkcmVuLmxlbmd0aCA+IDApID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgcGFyc2VkIHZhbHVlIGRlcGVuZGluZyBvbiB2YWx1ZSB0eXBlLlxuICAgKi9cbiAgZ2V0VmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZTogc3RyaW5nID0gdGhpcy5nZXRUeXBlKHZhbHVlKTtcbiAgICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ251bGwnKSB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkYXRlJykge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSkudG9TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9ICdcIicgKyB2YWx1ZSArICdcIic7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBSZW1vdmUgY29udGVudCBvZiB0aGUgZnVuY3Rpb25cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHZhbHVlXG4gICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAucmVwbGFjZSgvW1xcclxcbl0vZywgJycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcey4qXFx9LywgJycpICsgJ3vigKZ9J1xuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3ROYW1lKCkgKyAnIFsnICsgdmFsdWUubGVuZ3RoICsgJ10nO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0eXBlIG9mIG9iamVjdC5cbiAgICogcmV0dXJucyAnbnVsbCcgaWYgb2JqZWN0IGlzIG51bGwgYW5kICdkYXRlJyBpZiB2YWx1ZSBpcyBvYmplY3QgYW5kIGNhbiBiZSBwYXJzZWQgdG8gYSBkYXRlLlxuICAgKi9cbiAgZ2V0VHlwZShvYmplY3Q6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIW9iamVjdCkge1xuICAgICAgICByZXR1cm4gJ251bGwnO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gJ29iamVjdCc7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUob2JqZWN0KTtcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGRhdGUpID09PSAnW29iamVjdCBEYXRlXScgJiZcbiAgICAgICAgIU51bWJlci5pc05hTihkYXRlLmdldFRpbWUoKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGRlcGVuZGluZyBpZiBpdHMgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLlxuICAgKiBzZWU6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzMjQyOVxuICAgKi9cbiAgZ2V0T2JqZWN0TmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9iamVjdDogYW55ID0gdGhpcy5fZGF0YTtcbiAgICBpZiAodGhpcy5pc09iamVjdCgpICYmICFvYmplY3QuY29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiAnT2JqZWN0JztcbiAgICB9XG4gICAgY29uc3QgZnVuY05hbWVSZWdleCA9IC9mdW5jdGlvbiAoLnsxLH0pXFwoLztcbiAgICBjb25zdCByZXN1bHRzID0gZnVuY05hbWVSZWdleC5leGVjKG9iamVjdC5jb25zdHJ1Y3Rvci50b1N0cmluZygpKTtcbiAgICBpZiAocmVzdWx0cyAmJiByZXN1bHRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiByZXN1bHRzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgcHJldmlldyBvZiBub2RlcyBjaGlsZHJlbiB0byByZW5kZXIgaW4gdG9vbHRpcCBkZXBlbmRpbmcgaWYgaXRzIGFuIGFycmF5IG9yIGFuIG9iamVjdC5cbiAgICovXG4gIGdldFByZXZpZXcoKTogc3RyaW5nIHtcbiAgICBsZXQgcHJldmlld0RhdGE6IHN0cmluZ1tdO1xuICAgIGxldCBzdGFydENoYXIgPSAneyAnO1xuICAgIGxldCBlbmRDaGFyID0gJyB9JztcbiAgICBpZiAodGhpcy5pc0FycmF5KCkpIHtcbiAgICAgIGNvbnN0IHByZXZpZXdBcnJheTogYW55W10gPVxuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl9kYXRhKS5zbGljZShcbiAgICAgICAgICAwLFxuICAgICAgICAgIFRkSnNvbkZvcm1hdHRlckNvbXBvbmVudC5QUkVWSUVXX0xJTUlULFxuICAgICAgICApID8/IFtdO1xuICAgICAgcHJldmlld0RhdGEgPSBwcmV2aWV3QXJyYXkubWFwKChvYmo6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZShvYmopO1xuICAgICAgfSk7XG4gICAgICBzdGFydENoYXIgPSAnWyc7XG4gICAgICBlbmRDaGFyID0gJ10nO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwcmV2aWV3S2V5czogc3RyaW5nW10gPVxuICAgICAgICB0aGlzLl9jaGlsZHJlbj8uc2xpY2UoMCwgVGRKc29uRm9ybWF0dGVyQ29tcG9uZW50LlBSRVZJRVdfTElNSVQpID8/IFtdO1xuICAgICAgcHJldmlld0RhdGEgPSBwcmV2aWV3S2V5cy5tYXAoKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBrZXkgKyAnOiAnICsgdGhpcy5nZXRWYWx1ZSh0aGlzLl9kYXRhW2tleV0gPz8gdW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBwcmV2aWV3U3RyaW5nOiBzdHJpbmcgPSBwcmV2aWV3RGF0YS5qb2luKCcsICcpO1xuICAgIGNvbnN0IGVsbGlwc2lzOiBzdHJpbmcgPVxuICAgICAgcHJldmlld0RhdGEubGVuZ3RoID49IFRkSnNvbkZvcm1hdHRlckNvbXBvbmVudC5QUkVWSUVXX0xJTUlUIHx8XG4gICAgICBwcmV2aWV3U3RyaW5nLmxlbmd0aCA+IFRkSnNvbkZvcm1hdHRlckNvbXBvbmVudC5QUkVWSUVXX1NUUklOR19NQVhfTEVOR1RIXG4gICAgICAgID8gJ+KApidcbiAgICAgICAgOiAnJztcbiAgICByZXR1cm4gKFxuICAgICAgc3RhcnRDaGFyICtcbiAgICAgIHByZXZpZXdTdHJpbmcuc3Vic3RyaW5nKFxuICAgICAgICAwLFxuICAgICAgICBUZEpzb25Gb3JtYXR0ZXJDb21wb25lbnQuUFJFVklFV19TVFJJTkdfTUFYX0xFTkdUSCxcbiAgICAgICkgK1xuICAgICAgZWxsaXBzaXMgK1xuICAgICAgZW5kQ2hhclxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPYmplY3QoKSkge1xuICAgICAgdGhpcy5fY2hpbGRyZW4gPSBPYmplY3Qua2V5cyh0aGlzLl9kYXRhID8/IHt9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZC1qc29uLWZvcm1hdHRlci13cmFwcGVyXCI+XG4gIDxhXG4gICAgY2xhc3M9XCJ0ZC1rZXlcIlxuICAgIFtjbGFzcy50ZC1rZXktbm9kZV09XCJoYXNDaGlsZHJlbigpXCJcbiAgICBbY2xhc3MudGQta2V5LWxlYWZdPVwiIWhhc0NoaWxkcmVuKClcIlxuICAgIFt0YWJJbmRleF09XCJpc09iamVjdCgpID8gMCA6IC0xXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGUoKVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cInRkLW5vZGUtaWNvblwiICpuZ0lmPVwiaGFzQ2hpbGRyZW4oKVwiPlxuICAgICAge3tcbiAgICAgICAgb3BlblxuICAgICAgICAgID8gJ2tleWJvYXJkX2Fycm93X2Rvd24nXG4gICAgICAgICAgOiBpc1JUTFxuICAgICAgICAgID8gJ2tleWJvYXJkX2Fycm93X2xlZnQnXG4gICAgICAgICAgOiAna2V5Ym9hcmRfYXJyb3dfcmlnaHQnXG4gICAgICB9fVxuICAgIDwvbWF0LWljb24+XG4gICAgPHNwYW4gKm5nSWY9XCJrZXlcIiBjbGFzcz1cImtleVwiPnt7IGtleSB9fTo8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgW2NsYXNzLnRkLWVtcHR5XT1cIiFoYXNDaGlsZHJlbigpXCJcbiAgICAgICAgKm5nSWY9XCJpc09iamVjdCgpXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0UHJldmlldygpXCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWZ0ZXJcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRkLW9iamVjdC1uYW1lXCI+e3sgZ2V0T2JqZWN0TmFtZSgpIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRkLWFycmF5LWxlbmd0aFwiICpuZ0lmPVwiaXNBcnJheSgpXCJcbiAgICAgICAgICA+W3t7IGRhdGFbJ2xlbmd0aCddIH19XTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFpc09iamVjdCgpXCIgW2NsYXNzXT1cImdldFR5cGUoZGF0YSlcIj57e1xuICAgICAgICBnZXRWYWx1ZShkYXRhKVxuICAgICAgfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2E+XG4gIDxkaXYgY2xhc3M9XCJ0ZC1vYmplY3QtY2hpbGRyZW5cIiBbQHRkQ29sbGFwc2VdPVwiIShoYXNDaGlsZHJlbigpICYmIG9wZW4pXCI+XG4gICAgPG5nLXRlbXBsYXRlIGxldC1rZXkgbmdGb3IgW25nRm9yT2ZdPVwiY2hpbGRyZW5cIj5cbiAgICAgIDx0ZC1qc29uLWZvcm1hdHRlclxuICAgICAgICBba2V5XT1cImtleVwiXG4gICAgICAgIFtkYXRhXT1cImRhdGFba2V5XVwiXG4gICAgICAgIFtsZXZlbHNPcGVuXT1cImxldmVsc09wZW4gLSAxXCJcbiAgICAgID48L3RkLWpzb24tZm9ybWF0dGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { TdJsonFormatterComponent } from './json-formatter.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\nexport class CovalentJsonFormatterModule {\n static ɵfac = function CovalentJsonFormatterModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentJsonFormatterModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentJsonFormatterModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TdJsonFormatterComponent] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentJsonFormatterModule, [{\n type: NgModule,\n args: [{\n imports: [TdJsonFormatterComponent],\n exports: [TdJsonFormatterComponent],\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentJsonFormatterModule, { imports: [TdJsonFormatterComponent], exports: [TdJsonFormatterComponent] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1mb3JtYXR0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2pzb24tZm9ybWF0dGVyL3NyYy9qc29uLWZvcm1hdHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFdEU7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDJCQUEyQjtxSEFBM0IsMkJBQTJCOzREQUEzQiwyQkFBMkI7Z0VBSDVCLHdCQUF3Qjs7aUZBR3ZCLDJCQUEyQjtjQUp2QyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2FBQ3BDOzt3RkFDWSwyQkFBMkIsY0FINUIsd0JBQXdCLGFBQ3hCLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZEpzb25Gb3JtYXR0ZXJDb21wb25lbnQgfSBmcm9tICcuL2pzb24tZm9ybWF0dGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBtb2R1bGUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy5cbiAqIFBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nIHN0YW5kYWxvbmUgY29tcG9uZW50cyBhcyBzb29uIGFzIHBvc3NpYmxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbVGRKc29uRm9ybWF0dGVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RkSnNvbkZvcm1hdHRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50SnNvbkZvcm1hdHRlck1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtY29yZS1qc29uLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9qc29uLWZvcm1hdHRlci9zcmMvY292YWxlbnQtY29yZS1qc29uLWZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":[],"mappings":";;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE;AACzD,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;AACrB,QAAQ,MAAM,EAAE,GAAG;AACnB,QAAQ,QAAQ,EAAE,QAAQ;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;AACrB,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,QAAQ,EAAE,UAAU;AAC5B,KAAK,CAAC,CAAC;AACP,IAAI,UAAU,CAAC,QAAQ,EAAE;AACzB,QAAQ,KAAK,CAAC;AACd,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,MAAM,EAAE,UAAU;AAC9B,SAAS,CAAC;AACV,QAAQ,KAAK,CAAC;AACd,YAAY,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3D,YAAY,OAAO,CAAC,2CAA2C,EAAE,KAAK,CAAC;AACvE,gBAAgB,MAAM,EAAE,GAAG;AAC3B,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;AAClE,IAAI,UAAU,CAAC,QAAQ,EAAE;AACzB,QAAQ,KAAK,CAAC;AACd,YAAY,MAAM,EAAE,GAAG;AACvB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,SAAS,CAAC;AACV,QAAQ,KAAK,CAAC;AACd,YAAY,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3D,YAAY,OAAO,CAAC,2CAA2C,EAAE,KAAK,CAAC;AACvE,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,MAAM,EAAE,UAAU;AAClC,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACnE,CAAC,CAAC;;ACzCF,SAAS,4CAA4C,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAC7E,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AACvC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;AACrC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,qBAAqB,GAAG,MAAM,CAAC,KAAK,GAAG,qBAAqB,GAAG,sBAAsB,EAAE,GAAG,CAAC;AACxI,CAAC;AACD,SAAS,wCAAwC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACzE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACpC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;AACrC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9C,CAAC;AACD,SAAS,+CAA+C,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAChF,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACpC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClB,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;AAC1D,CAAC;AACD,SAAS,wCAAwC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACzE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACnD,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChB,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,+CAA+C,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AACvF,IAAI,EAAE,CAAC,YAAY,EAAE;AACrB,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EA