{"version":3,"file":"finastra-angular-components-chart.mjs","sources":["../tmp-esm2022/chart/src/chart.models.js","../tmp-esm2022/chart/src/directives/trace.component.js","../tmp-esm2022/chart/src/directives/groupTrace.component.js","../tmp-esm2022/chart/src/directives/legend.component.js","../tmp-esm2022/chart/src/chart.component.js","../tmp-esm2022/chart/src/chart.module.js","../tmp-esm2022/chart/finastra-angular-components-chart.js"],"sourcesContent":["export const CHART_DEFAULT_PLOTLY_LAYOUT = {\n    autosize: true,\n    margin: {\n        l: 0,\n        r: 0,\n        b: 0,\n        t: 0,\n        pad: 0\n    }\n};\nexport const CHART_DEFAULT_PLOTLY_CONFIG = {\n    displaylogo: false,\n    responsive: true\n};\nexport var ChartType;\n(function (ChartType) {\n    ChartType[\"bar\"] = \"bar\";\n    ChartType[\"stackedBar\"] = \"stackedBar\";\n    ChartType[\"line\"] = \"line\";\n    ChartType[\"scatter\"] = \"scatter\";\n    ChartType[\"scatterLine\"] = \"scatterLine\";\n    ChartType[\"stackedLine\"] = \"stackedLine\";\n    ChartType[\"fullStackedLine\"] = \"fullStackedLine\";\n    ChartType[\"spline\"] = \"spline\";\n    ChartType[\"stackedSpline\"] = \"stackedSpline\";\n    ChartType[\"fullStackedSpline\"] = \"fullStackedSpline\";\n    ChartType[\"stepline\"] = \"stepline\";\n    ChartType[\"steparea\"] = \"steparea\";\n    ChartType[\"area\"] = \"area\";\n    ChartType[\"stackedArea\"] = \"stackedArea\";\n    ChartType[\"fullStackedArea\"] = \"fullStackedArea\";\n    ChartType[\"pie\"] = \"pie\";\n    ChartType[\"donut\"] = \"donut\";\n})(ChartType || (ChartType = {}));\nexport var ChartOrientation;\n(function (ChartOrientation) {\n    ChartOrientation[\"horizontal\"] = \"horizontal\";\n    ChartOrientation[\"vertical\"] = \"vertical\";\n})(ChartOrientation || (ChartOrientation = {}));\nexport const CHART_PLOLTLY_TYPE = {\n    [ChartType.bar]: {\n        name: 'bar',\n        group: 'bar',\n        trace: {\n            type: 'bar'\n        },\n        layout: {\n            barmode: 'group'\n        }\n    },\n    [ChartType.stackedBar]: {\n        name: 'stackedBar',\n        group: 'bar',\n        trace: {\n            type: 'bar'\n        },\n        layout: {\n            barmode: 'relative'\n        }\n    },\n    [ChartType.line]: {\n        name: 'line',\n        group: 'line',\n        trace: {\n            type: 'scatter'\n        }\n    },\n    [ChartType.scatter]: {\n        name: 'scatter',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            mode: 'markers'\n        }\n    },\n    [ChartType.scatterLine]: {\n        name: 'scatter+line',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            mode: 'lines+markers'\n        }\n    },\n    [ChartType.stackedLine]: {\n        name: 'Stacked line',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one',\n            fill: 'none'\n        }\n    },\n    [ChartType.fullStackedLine]: {\n        name: 'Full stacked line',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one',\n            groupnorm: 'percent',\n            fill: 'none'\n        }\n    },\n    [ChartType.spline]: {\n        name: 'Spline',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            line: { shape: 'spline' }\n        }\n    },\n    [ChartType.stackedSpline]: {\n        name: 'Stacked spline',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one',\n            mode: 'lines+markers',\n            fill: 'none',\n            line: { shape: 'spline' }\n        }\n    },\n    [ChartType.fullStackedSpline]: {\n        name: 'Full stacked spline',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one',\n            groupnorm: 'percent',\n            mode: 'lines+markers',\n            fill: 'none',\n            line: { shape: 'spline' }\n        }\n    },\n    [ChartType.stepline]: {\n        name: 'Stepline',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            line: { shape: 'hv' }\n        }\n    },\n    [ChartType.steparea]: {\n        name: 'Step area',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one',\n            line: { shape: 'hv' }\n        }\n    },\n    [ChartType.area]: {\n        name: 'Area',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one'\n        }\n    },\n    [ChartType.stackedArea]: {\n        name: 'Stacked area',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one'\n        }\n    },\n    [ChartType.fullStackedArea]: {\n        name: 'Full stacked area',\n        group: 'line',\n        trace: {\n            type: 'scatter',\n            stackgroup: 'one',\n            groupnorm: 'percent'\n        }\n    },\n    [ChartType.pie]: {\n        name: 'pie',\n        group: 'pie',\n        trace: {\n            type: 'pie'\n        }\n    },\n    [ChartType.donut]: {\n        name: 'donut',\n        group: 'pie',\n        trace: {\n            type: 'pie',\n            hole: 0.5,\n            automargin: true,\n            textposition: 'inside'\n        }\n    }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhcnQvc3JjL2NoYXJ0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRTtRQUNOLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDO1FBQ0osR0FBRyxFQUFFLENBQUM7S0FDUDtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFOLElBQVksU0FrQlg7QUFsQkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCxzQ0FBeUIsQ0FBQTtJQUN6QiwwQkFBYSxDQUFBO0lBQ2IsZ0NBQW1CLENBQUE7SUFDbkIsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0IsZ0RBQW1DLENBQUE7SUFDbkMsOEJBQWlCLENBQUE7SUFDakIsNENBQStCLENBQUE7SUFDL0Isb0RBQXVDLENBQUE7SUFDdkMsa0NBQXFCLENBQUE7SUFDckIsa0NBQXFCLENBQUE7SUFDckIsMEJBQWEsQ0FBQTtJQUNiLHdDQUEyQixDQUFBO0lBQzNCLGdEQUFtQyxDQUFBO0lBQ25DLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFsQlcsU0FBUyxLQUFULFNBQVMsUUFrQnBCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQiw2Q0FBeUIsQ0FBQTtJQUN6Qix5Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcs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RCxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNqQixJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxLQUFLO1FBQ1osS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsR0FBRztZQUNULFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxRQUFRO1NBQ3ZCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENIQVJUX0RFRkFVTFRfUExPVExZX0xBWU9VVCA9IHtcbiAgYXV0b3NpemU6IHRydWUsXG4gIG1hcmdpbjoge1xuICAgIGw6IDAsXG4gICAgcjogMCxcbiAgICBiOiAwLFxuICAgIHQ6IDAsXG4gICAgcGFkOiAwXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBDSEFSVF9ERUZBVUxUX1BMT1RMWV9DT05GSUcgPSB7XG4gIGRpc3BsYXlsb2dvOiBmYWxzZSxcbiAgcmVzcG9uc2l2ZTogdHJ1ZVxufTtcblxuZXhwb3J0IGVudW0gQ2hhcnRUeXBlIHtcbiAgYmFyID0gJ2JhcicsXG4gIHN0YWNrZWRCYXIgPSAnc3RhY2tlZEJhcicsXG4gIGxpbmUgPSAnbGluZScsXG4gIHNjYXR0ZXIgPSAnc2NhdHRlcicsXG4gIHNjYXR0ZXJMaW5lID0gJ3NjYXR0ZXJMaW5lJyxcbiAgc3RhY2tlZExpbmUgPSAnc3RhY2tlZExpbmUnLFxuICBmdWxsU3RhY2tlZExpbmUgPSAnZnVsbFN0YWNrZWRMaW5lJyxcbiAgc3BsaW5lID0gJ3NwbGluZScsXG4gIHN0YWNrZWRTcGxpbmUgPSAnc3RhY2tlZFNwbGluZScsXG4gIGZ1bGxTdGFja2VkU3BsaW5lID0gJ2Z1bGxTdGFja2VkU3BsaW5lJyxcbiAgc3RlcGxpbmUgPSAnc3RlcGxpbmUnLFxuICBzdGVwYXJlYSA9ICdzdGVwYXJlYScsXG4gIGFyZWEgPSAnYXJlYScsXG4gIHN0YWNrZWRBcmVhID0gJ3N0YWNrZWRBcmVhJyxcbiAgZnVsbFN0YWNrZWRBcmVhID0gJ2Z1bGxTdGFja2VkQXJlYScsXG4gIHBpZSA9ICdwaWUnLFxuICBkb251dCA9ICdkb251dCdcbn1cblxuZXhwb3J0IGVudW0gQ2hhcnRPcmllbnRhdGlvbiB7XG4gIGhvcml6b250YWwgPSAnaG9yaXpvbnRhbCcsXG4gIHZlcnRpY2FsID0gJ3ZlcnRpY2FsJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0VHlwZUNvbnZlcnRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGdyb3VwOiBzdHJpbmc7XG4gIHRyYWNlOiBhbnk7XG4gIGxheW91dD86IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IENIQVJUX1BMT0xUTFlfVFlQRTogUmVjb3JkPENoYXJ0VHlwZSwgQ2hhcnRUeXBlQ29udmVydGlvbj4gPSB7XG4gIFtDaGFydFR5cGUuYmFyXToge1xuICAgIG5hbWU6ICdiYXInLFxuICAgIGdyb3VwOiAnYmFyJyxcbiAgICB0cmFjZToge1xuICAgICAgdHlwZTogJ2JhcidcbiAgICB9LFxuICAgIGxheW91dDoge1xuICAgICAgYmFybW9kZTogJ2dyb3VwJ1xuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zdGFja2VkQmFyXToge1xuICAgIG5hbWU6ICdzdGFja2VkQmFyJyxcbiAgICBncm91cDogJ2JhcicsXG4gICAgdHJhY2U6IHtcbiAgICAgIHR5cGU6ICdiYXInXG4gICAgfSxcbiAgICBsYXlvdXQ6IHtcbiAgICAgIGJhcm1vZGU6ICdyZWxhdGl2ZSdcbiAgICB9XG4gIH0sXG4gIFtDaGFydFR5cGUubGluZV06IHtcbiAgICBuYW1lOiAnbGluZScsXG4gICAgZ3JvdXA6ICdsaW5lJyxcbiAgICB0cmFjZToge1xuICAgICAgdHlwZTogJ3NjYXR0ZXInXG4gICAgfVxuICB9LFxuICBbQ2hhcnRUeXBlLnNjYXR0ZXJdOiB7XG4gICAgbmFtZTogJ3NjYXR0ZXInLFxuICAgIGdyb3VwOiAnbGluZScsXG4gICAgdHJhY2U6IHtcbiAgICAgIHR5cGU6ICdzY2F0dGVyJyxcbiAgICAgIG1vZGU6ICdtYXJrZXJzJ1xuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zY2F0dGVyTGluZV06IHtcbiAgICBuYW1lOiAnc2NhdHRlcitsaW5lJyxcbiAgICBncm91cDogJ2xpbmUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAnc2NhdHRlcicsXG4gICAgICBtb2RlOiAnbGluZXMrbWFya2VycydcbiAgICB9XG4gIH0sXG4gIFtDaGFydFR5cGUuc3RhY2tlZExpbmVdOiB7XG4gICAgbmFtZTogJ1N0YWNrZWQgbGluZScsXG4gICAgZ3JvdXA6ICdsaW5lJyxcbiAgICB0cmFjZToge1xuICAgICAgdHlwZTogJ3NjYXR0ZXInLFxuICAgICAgc3RhY2tncm91cDogJ29uZScsXG4gICAgICBmaWxsOiAnbm9uZSdcbiAgICB9XG4gIH0sXG4gIFtDaGFydFR5cGUuZnVsbFN0YWNrZWRMaW5lXToge1xuICAgIG5hbWU6ICdGdWxsIHN0YWNrZWQgbGluZScsXG4gICAgZ3JvdXA6ICdsaW5lJyxcbiAgICB0cmFjZToge1xuICAgICAgdHlwZTogJ3NjYXR0ZXInLFxuICAgICAgc3RhY2tncm91cDogJ29uZScsXG4gICAgICBncm91cG5vcm06ICdwZXJjZW50JyxcbiAgICAgIGZpbGw6ICdub25lJ1xuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zcGxpbmVdOiB7XG4gICAgbmFtZTogJ1NwbGluZScsXG4gICAgZ3JvdXA6ICdsaW5lJyxcbiAgICB0cmFjZToge1xuICAgICAgdHlwZTogJ3NjYXR0ZXInLFxuICAgICAgbGluZTogeyBzaGFwZTogJ3NwbGluZScgfVxuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zdGFja2VkU3BsaW5lXToge1xuICAgIG5hbWU6ICdTdGFja2VkIHNwbGluZScsXG4gICAgZ3JvdXA6ICdsaW5lJyxcbiAgICB0cmFjZToge1xuICAgICAgdHlwZTogJ3NjYXR0ZXInLFxuICAgICAgc3RhY2tncm91cDogJ29uZScsXG4gICAgICBtb2RlOiAnbGluZXMrbWFya2VycycsXG4gICAgICBmaWxsOiAnbm9uZScsXG4gICAgICBsaW5lOiB7IHNoYXBlOiAnc3BsaW5lJyB9XG4gICAgfVxuICB9LFxuICBbQ2hhcnRUeXBlLmZ1bGxTdGFja2VkU3BsaW5lXToge1xuICAgIG5hbWU6ICdGdWxsIHN0YWNrZWQgc3BsaW5lJyxcbiAgICBncm91cDogJ2xpbmUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAnc2NhdHRlcicsXG4gICAgICBzdGFja2dyb3VwOiAnb25lJyxcbiAgICAgIGdyb3Vwbm9ybTogJ3BlcmNlbnQnLFxuICAgICAgbW9kZTogJ2xpbmVzK21hcmtlcnMnLFxuICAgICAgZmlsbDogJ25vbmUnLFxuICAgICAgbGluZTogeyBzaGFwZTogJ3NwbGluZScgfVxuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zdGVwbGluZV06IHtcbiAgICBuYW1lOiAnU3RlcGxpbmUnLFxuICAgIGdyb3VwOiAnbGluZScsXG4gICAgdHJhY2U6IHtcbiAgICAgIHR5cGU6ICdzY2F0dGVyJyxcbiAgICAgIGxpbmU6IHsgc2hhcGU6ICdodicgfVxuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zdGVwYXJlYV06IHtcbiAgICBuYW1lOiAnU3RlcCBhcmVhJyxcbiAgICBncm91cDogJ2xpbmUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAnc2NhdHRlcicsXG4gICAgICBzdGFja2dyb3VwOiAnb25lJyxcbiAgICAgIGxpbmU6IHsgc2hhcGU6ICdodicgfVxuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5hcmVhXToge1xuICAgIG5hbWU6ICdBcmVhJyxcbiAgICBncm91cDogJ2xpbmUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAnc2NhdHRlcicsXG4gICAgICBzdGFja2dyb3VwOiAnb25lJ1xuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5zdGFja2VkQXJlYV06IHtcbiAgICBuYW1lOiAnU3RhY2tlZCBhcmVhJyxcbiAgICBncm91cDogJ2xpbmUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAnc2NhdHRlcicsXG4gICAgICBzdGFja2dyb3VwOiAnb25lJ1xuICAgIH1cbiAgfSxcbiAgW0NoYXJ0VHlwZS5mdWxsU3RhY2tlZEFyZWFdOiB7XG4gICAgbmFtZTogJ0Z1bGwgc3RhY2tlZCBhcmVhJyxcbiAgICBncm91cDogJ2xpbmUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAnc2NhdHRlcicsXG4gICAgICBzdGFja2dyb3VwOiAnb25lJyxcbiAgICAgIGdyb3Vwbm9ybTogJ3BlcmNlbnQnXG4gICAgfVxuICB9LFxuICBbQ2hhcnRUeXBlLnBpZV06IHtcbiAgICBuYW1lOiAncGllJyxcbiAgICBncm91cDogJ3BpZScsXG4gICAgdHJhY2U6IHtcbiAgICAgIHR5cGU6ICdwaWUnXG4gICAgfVxuICB9LFxuICBbQ2hhcnRUeXBlLmRvbnV0XToge1xuICAgIG5hbWU6ICdkb251dCcsXG4gICAgZ3JvdXA6ICdwaWUnLFxuICAgIHRyYWNlOiB7XG4gICAgICB0eXBlOiAncGllJyxcbiAgICAgIGhvbGU6IDAuNSxcbiAgICAgIGF1dG9tYXJnaW46IHRydWUsXG4gICAgICB0ZXh0cG9zaXRpb246ICdpbnNpZGUnXG4gICAgfVxuICB9XG59O1xuIl19","import { Component, Input } from '@angular/core';\nimport { CHART_PLOLTLY_TYPE, ChartOrientation, ChartType } from '../chart.models';\nimport * as i0 from \"@angular/core\";\nexport class TraceComponent {\n    constructor() {\n        this.type = ChartType.bar;\n        this.orientation = ChartOrientation.vertical;\n    }\n    getPlotlyTrace() {\n        const plotlyType = CHART_PLOLTLY_TYPE[this.type];\n        if (plotlyType) {\n            const trace = {\n                dimensionName: this.dimensionName,\n                x: this.orientation === ChartOrientation.vertical ? this.dimension : this.measure,\n                y: this.orientation === ChartOrientation.vertical ? this.measure : this.dimension,\n                labels: this.orientation === ChartOrientation.vertical ? this.dimension : this.measure,\n                values: this.orientation === ChartOrientation.vertical ? this.measure : this.dimension,\n                name: this.measureName,\n                ...(plotlyType ? plotlyType.trace : {}),\n                orientation: this.orientation === ChartOrientation.horizontal ? 'h' : 'v',\n                ...(this.options ? this.options : {})\n            };\n            if (this.selectedPoints) {\n                trace.selectedpoints = Array.from(this.selectedPoints);\n            }\n            return trace;\n        }\n        console.error('Chart type: ' + this.type + \" doesn't exist!\");\n        return {};\n    }\n    getPlotlyTypeLayout() {\n        const plotlyType = CHART_PLOLTLY_TYPE[this.type];\n        return plotlyType && plotlyType.layout ? plotlyType.layout : {};\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TraceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: TraceComponent, isStandalone: true, selector: \"uxg-trace\", inputs: { dimension: \"dimension\", dimensionName: \"dimensionName\", measure: \"measure\", measureName: \"measureName\", selectedPoints: \"selectedPoints\", type: \"type\", orientation: \"orientation\", options: \"options\" }, ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: TraceComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'uxg-trace',\n                    template: '',\n                    standalone: true\n                }]\n        }], ctorParameters: () => [], propDecorators: { dimension: [{\n                type: Input\n            }], dimensionName: [{\n                type: Input\n            }], measure: [{\n                type: Input\n            }], measureName: [{\n                type: Input\n            }], selectedPoints: [{\n                type: Input\n            }], type: [{\n                type: Input\n            }], orientation: [{\n                type: Input\n            }], options: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhcnQvc3JjL2RpcmVjdGl2ZXMvdHJhY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPbEYsTUFBTSxPQUFPLGNBQWM7SUFVekI7UUFKUyxTQUFJLEdBQWMsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUt2QyxJQUFJLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUNqQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUNqRixDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUNqRixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUN0RixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUN0RixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3RCLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEtBQUssZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUc7Z0JBQ3pFLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDdEMsQ0FBQztZQUNGLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLENBQUM7UUFDOUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxPQUFPLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEUsQ0FBQzs4R0F4Q1UsY0FBYztrR0FBZCxjQUFjLHlSQUhmLEVBQUU7OzJGQUdELGNBQWM7a0JBTDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3REFFVSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDSEFSVF9QTE9MVExZX1RZUEUsIENoYXJ0T3JpZW50YXRpb24sIENoYXJ0VHlwZSB9IGZyb20gJy4uL2NoYXJ0Lm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3V4Zy10cmFjZScsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUcmFjZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpbWVuc2lvbiE6IEFycmF5PHN0cmluZyB8IG51bWJlcj47XG4gIEBJbnB1dCgpIGRpbWVuc2lvbk5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1lYXN1cmUhOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xuICBASW5wdXQoKSBtZWFzdXJlTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWRQb2ludHM/OiBBcnJheTxudW1iZXI+O1xuICBASW5wdXQoKSB0eXBlOiBDaGFydFR5cGUgPSBDaGFydFR5cGUuYmFyO1xuICBASW5wdXQoKSBvcmllbnRhdGlvbjogQ2hhcnRPcmllbnRhdGlvbjtcbiAgQElucHV0KCkgb3B0aW9ucz86IE9iamVjdDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm9yaWVudGF0aW9uID0gQ2hhcnRPcmllbnRhdGlvbi52ZXJ0aWNhbDtcbiAgfVxuXG4gIGdldFBsb3RseVRyYWNlKCk6IGFueSB7XG4gICAgY29uc3QgcGxvdGx5VHlwZSA9IENIQVJUX1BMT0xUTFlfVFlQRVt0aGlzLnR5cGVdO1xuICAgIGlmIChwbG90bHlUeXBlKSB7XG4gICAgICBjb25zdCB0cmFjZSA9IHtcbiAgICAgICAgZGltZW5zaW9uTmFtZTogdGhpcy5kaW1lbnNpb25OYW1lLFxuICAgICAgICB4OiB0aGlzLm9yaWVudGF0aW9uID09PSBDaGFydE9yaWVudGF0aW9uLnZlcnRpY2FsID8gdGhpcy5kaW1lbnNpb24gOiB0aGlzLm1lYXN1cmUsXG4gICAgICAgIHk6IHRoaXMub3JpZW50YXRpb24gPT09IENoYXJ0T3JpZW50YXRpb24udmVydGljYWwgPyB0aGlzLm1lYXN1cmUgOiB0aGlzLmRpbWVuc2lvbixcbiAgICAgICAgbGFiZWxzOiB0aGlzLm9yaWVudGF0aW9uID09PSBDaGFydE9yaWVudGF0aW9uLnZlcnRpY2FsID8gdGhpcy5kaW1lbnNpb24gOiB0aGlzLm1lYXN1cmUsXG4gICAgICAgIHZhbHVlczogdGhpcy5vcmllbnRhdGlvbiA9PT0gQ2hhcnRPcmllbnRhdGlvbi52ZXJ0aWNhbCA/IHRoaXMubWVhc3VyZSA6IHRoaXMuZGltZW5zaW9uLFxuICAgICAgICBuYW1lOiB0aGlzLm1lYXN1cmVOYW1lLFxuICAgICAgICAuLi4ocGxvdGx5VHlwZSA/IHBsb3RseVR5cGUudHJhY2UgOiB7fSksXG4gICAgICAgIG9yaWVudGF0aW9uOiB0aGlzLm9yaWVudGF0aW9uID09PSBDaGFydE9yaWVudGF0aW9uLmhvcml6b250YWwgPyAnaCcgOiAndicsXG4gICAgICAgIC4uLih0aGlzLm9wdGlvbnMgPyB0aGlzLm9wdGlvbnMgOiB7fSlcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFBvaW50cykge1xuICAgICAgICB0cmFjZS5zZWxlY3RlZHBvaW50cyA9IEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFBvaW50cyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJhY2U7XG4gICAgfVxuICAgIGNvbnNvbGUuZXJyb3IoJ0NoYXJ0IHR5cGU6ICcgKyB0aGlzLnR5cGUgKyBcIiBkb2Vzbid0IGV4aXN0IVwiKTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRQbG90bHlUeXBlTGF5b3V0KCk6IGFueSB7XG4gICAgY29uc3QgcGxvdGx5VHlwZSA9IENIQVJUX1BMT0xUTFlfVFlQRVt0aGlzLnR5cGVdO1xuICAgIHJldHVybiBwbG90bHlUeXBlICYmIHBsb3RseVR5cGUubGF5b3V0ID8gcGxvdGx5VHlwZS5sYXlvdXQgOiB7fTtcbiAgfVxufVxuIl19","import { Input, ContentChildren, Component } from '@angular/core';\nimport { TraceComponent } from './trace.component';\nimport * as i0 from \"@angular/core\";\nexport class GroupTracesComponent {\n    getTraces() {\n        return this.traces\n            .map((trace) => {\n            const t = trace.getPlotlyTrace();\n            if (t && (this.columnPosition !== undefined || this.columnPosition !== undefined))\n                t.domain = this.domain;\n            return t;\n        })\n            .filter((trace) => !!trace);\n    }\n    get domain() {\n        const domain = {};\n        if (this.columnPosition !== undefined) {\n            domain.column = this.columnPosition;\n        }\n        if (this.rowPosition !== undefined) {\n            domain.row = this.rowPosition;\n        }\n        return domain;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: GroupTracesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: GroupTracesComponent, isStandalone: true, selector: \"uxg-group-traces\", inputs: { columnPosition: \"columnPosition\", rowPosition: \"rowPosition\" }, queries: [{ propertyName: \"traces\", predicate: TraceComponent }], ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: GroupTracesComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'uxg-group-traces',\n                    template: '',\n                    standalone: true\n                }]\n        }], propDecorators: { columnPosition: [{\n                type: Input\n            }], rowPosition: [{\n                type: Input\n            }], traces: [{\n                type: ContentChildren,\n                args: [TraceComponent]\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBUcmFjZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9jaGFydC9zcmMvZGlyZWN0aXZlcy9ncm91cFRyYWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU9uRCxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDYixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQztnQkFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUcsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2hCLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzhHQXpCVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw2S0FJZCxjQUFjLDZCQVByQixFQUFFOzsyRkFHRCxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUVVLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFMkIsTUFBTTtzQkFBdEMsZUFBZTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYWNlQ29tcG9uZW50IH0gZnJvbSAnLi90cmFjZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1eGctZ3JvdXAtdHJhY2VzJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwVHJhY2VzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sdW1uUG9zaXRpb24/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJvd1Bvc2l0aW9uPzogbnVtYmVyO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVHJhY2VDb21wb25lbnQpIHRyYWNlcyE6IFF1ZXJ5TGlzdDxUcmFjZUNvbXBvbmVudD47XG5cbiAgZ2V0VHJhY2VzKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy50cmFjZXNcbiAgICAgIC5tYXAoKHRyYWNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHQgPSB0cmFjZS5nZXRQbG90bHlUcmFjZSgpO1xuICAgICAgICBpZiAodCAmJiAodGhpcy5jb2x1bW5Qb3NpdGlvbiAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuY29sdW1uUG9zaXRpb24gIT09IHVuZGVmaW5lZCkpIHQuZG9tYWluID0gdGhpcy5kb21haW47XG4gICAgICAgIHJldHVybiB0O1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKHRyYWNlKSA9PiAhIXRyYWNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRvbWFpbigpIHtcbiAgICBjb25zdCBkb21haW46IGFueSA9IHt9O1xuICAgIGlmICh0aGlzLmNvbHVtblBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRvbWFpbi5jb2x1bW4gPSB0aGlzLmNvbHVtblBvc2l0aW9uO1xuICAgIH1cbiAgICBpZiAodGhpcy5yb3dQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkb21haW4ucm93ID0gdGhpcy5yb3dQb3NpdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIGRvbWFpbjtcbiAgfVxufVxuIl19","import { Input, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class LegendComponent {\n    constructor() {\n        this.position = LegendPosition.verticalRightTop;\n    }\n    getLegendPlotly() {\n        return LegendPositionConvertion[this.position] ? LegendPositionConvertion[this.position] : {};\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: LegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: LegendComponent, isStandalone: true, selector: \"uxg-legend\", inputs: { position: \"position\" }, ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: LegendComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'uxg-legend',\n                    template: '',\n                    standalone: true\n                }]\n        }], ctorParameters: () => [], propDecorators: { position: [{\n                type: Input\n            }] } });\nexport var LegendPosition;\n(function (LegendPosition) {\n    LegendPosition[\"verticalLeftCenter\"] = \"verticalLeftCenter\";\n    LegendPosition[\"verticalLeftTop\"] = \"verticalLeftTop\";\n    LegendPosition[\"verticalLeftBottom\"] = \"verticalLeftBottom\";\n    LegendPosition[\"verticalRightCenter\"] = \"verticalRightCenter\";\n    LegendPosition[\"verticalRightTop\"] = \"verticalRightTop\";\n    LegendPosition[\"verticalRightBottom\"] = \"verticalRightBottom\";\n    LegendPosition[\"horizontalTopCenter\"] = \"horizontalTopCenter\";\n    LegendPosition[\"horizontalTopLeft\"] = \"horizontalTopLeft\";\n    LegendPosition[\"horizontalTopRight\"] = \"horizontalTopRight\";\n    LegendPosition[\"horizontalBottomCenter\"] = \"horizontalBottomCenter\";\n    LegendPosition[\"horizontalBottomLeft\"] = \"horizontalBottomLeft\";\n    LegendPosition[\"horizontalBottomRight\"] = \"horizontalBottomRight\";\n})(LegendPosition || (LegendPosition = {}));\nexport const LegendPositionConvertion = {\n    [LegendPosition.verticalLeftTop]: {\n        label: 'Vertical left top',\n        orientation: 'v',\n        x: -0.1,\n        y: 1\n    },\n    [LegendPosition.verticalLeftCenter]: {\n        label: 'Vertical left center',\n        orientation: 'v',\n        x: -0.1,\n        y: 0.5\n    },\n    [LegendPosition.verticalLeftBottom]: {\n        label: 'Vertical left bottom',\n        orientation: 'v',\n        x: -0.1,\n        y: 0\n    },\n    [LegendPosition.verticalRightTop]: {\n        label: 'Vertical right top',\n        orientation: 'v'\n    },\n    [LegendPosition.verticalRightCenter]: {\n        label: 'Vertical right center',\n        orientation: 'v',\n        x: 1,\n        y: 0.5\n    },\n    [LegendPosition.verticalRightBottom]: {\n        label: 'Vertical right bottom',\n        orientation: 'v',\n        x: 1,\n        y: 0\n    },\n    [LegendPosition.horizontalBottomLeft]: {\n        label: 'Horizontal bottom left',\n        orientation: 'h',\n        x: 0,\n        y: -0.1,\n        xanchor: 'left'\n    },\n    [LegendPosition.horizontalBottomCenter]: {\n        label: 'Horizontal bottom center',\n        orientation: 'h',\n        x: 0.5,\n        y: -0.1,\n        xanchor: 'center'\n    },\n    [LegendPosition.horizontalBottomRight]: {\n        label: 'Horizontal bottom right',\n        orientation: 'h',\n        x: 1,\n        y: -0.1,\n        xanchor: 'right'\n    },\n    [LegendPosition.horizontalTopLeft]: {\n        label: 'Horizontal top left',\n        orientation: 'h',\n        x: 0,\n        y: 1.1,\n        xanchor: 'left'\n    },\n    [LegendPosition.horizontalTopCenter]: {\n        label: 'Horizontal top center',\n        orientation: 'h',\n        x: 0.5,\n        y: 1.1,\n        xanchor: 'center'\n    },\n    [LegendPosition.horizontalTopRight]: {\n        label: 'Horizontal top right',\n        orientation: 'h',\n        x: 1.02,\n        y: 1.1,\n        xanchor: 'right'\n    }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL2NoYXJ0L3NyYy9kaXJlY3RpdmVzL2xlZ2VuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT2pELE1BQU0sT0FBTyxlQUFlO0lBRzFCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7SUFDbEQsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEcsQ0FBQzs4R0FUVSxlQUFlO2tHQUFmLGVBQWUsd0dBSGhCLEVBQUU7OzJGQUdELGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3REFFVSxRQUFRO3NCQUFoQixLQUFLOztBQVdSLE1BQU0sQ0FBTixJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEIsMkRBQXlDLENBQUE7SUFDekMscURBQW1DLENBQUE7SUFDbkMsMkRBQXlDLENBQUE7SUFDekMsNkRBQTJDLENBQUE7SUFDM0MsdURBQXFDLENBQUE7SUFDckMsNkRBQTJDLENBQUE7SUFDM0MsNkRBQTJDLENBQUE7SUFDM0MseURBQXVDLENBQUE7SUFDdkMsMkRBQXlDLENBQUE7SUFDekMsbUVBQWlELENBQUE7SUFDakQsK0RBQTZDLENBQUE7SUFDN0MsaUVBQStDLENBQUE7QUFDakQsQ0FBQyxFQWJXLGNBQWMsS0FBZCxjQUFjLFFBYXpCO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQStCO0lBQ2xFLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2hDLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsV0FBVyxFQUFFLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLENBQUMsR0FBRztRQUNQLENBQUMsRUFBRSxDQUFDO0tBQ0w7SUFDRCxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQ25DLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsV0FBVyxFQUFFLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLENBQUMsR0FBRztRQUNQLENBQUMsRUFBRSxHQUFHO0tBQ1A7SUFDRCxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQ25DLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsV0FBVyxFQUFFLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLENBQUMsR0FBRztRQUNQLENBQUMsRUFBRSxDQUFDO0tBQ0w7SUFDRCxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ2pDLEtBQUssRUFBRSxvQkFBb0I7UUFDM0IsV0FBVyxFQUFFLEdBQUc7S0FDakI7SUFDRCxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1FBQ3BDLEtBQUssRUFBRSx1QkFBdUI7UUFDOUIsV0FBVyxFQUFFLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsR0FBRztLQUNQO0lBQ0QsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsRUFBRTtRQUNwQyxLQUFLLEVBQUUsdUJBQXVCO1FBQzlCLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDTDtJQUNELENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7UUFDckMsS0FBSyxFQUFFLHdCQUF3QjtRQUMvQixXQUFXLEVBQUUsR0FBRztRQUNoQixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDLEdBQUc7UUFDUCxPQUFPLEVBQUUsTUFBTTtLQUNoQjtJQUNELENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEVBQUU7UUFDdkMsS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxXQUFXLEVBQUUsR0FBRztRQUNoQixDQUFDLEVBQUUsR0FBRztRQUNOLENBQUMsRUFBRSxDQUFDLEdBQUc7UUFDUCxPQUFPLEVBQUUsUUFBUTtLQUNsQjtJQUNELENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7UUFDdEMsS0FBSyxFQUFFLHlCQUF5QjtRQUNoQyxXQUFXLEVBQUUsR0FBRztRQUNoQixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDLEdBQUc7UUFDUCxPQUFPLEVBQUUsT0FBTztLQUNqQjtJQUNELENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDbEMsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsR0FBRztRQUNoQixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxHQUFHO1FBQ04sT0FBTyxFQUFFLE1BQU07S0FDaEI7SUFDRCxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1FBQ3BDLEtBQUssRUFBRSx1QkFBdUI7UUFDOUIsV0FBVyxFQUFFLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLEdBQUc7UUFDTixDQUFDLEVBQUUsR0FBRztRQUNOLE9BQU8sRUFBRSxRQUFRO0tBQ2xCO0lBQ0QsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUNuQyxLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLENBQUMsRUFBRSxJQUFJO1FBQ1AsQ0FBQyxFQUFFLEdBQUc7UUFDTixPQUFPLEVBQUUsT0FBTztLQUNqQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3V4Zy1sZWdlbmQnLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTGVnZW5kQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcG9zaXRpb246IExlZ2VuZFBvc2l0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucG9zaXRpb24gPSBMZWdlbmRQb3NpdGlvbi52ZXJ0aWNhbFJpZ2h0VG9wO1xuICB9XG5cbiAgZ2V0TGVnZW5kUGxvdGx5KCkge1xuICAgIHJldHVybiBMZWdlbmRQb3NpdGlvbkNvbnZlcnRpb25bdGhpcy5wb3NpdGlvbl0gPyBMZWdlbmRQb3NpdGlvbkNvbnZlcnRpb25bdGhpcy5wb3NpdGlvbl0gOiB7fTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBMZWdlbmRQb3NpdGlvbiB7XG4gIHZlcnRpY2FsTGVmdENlbnRlciA9ICd2ZXJ0aWNhbExlZnRDZW50ZXInLFxuICB2ZXJ0aWNhbExlZnRUb3AgPSAndmVydGljYWxMZWZ0VG9wJyxcbiAgdmVydGljYWxMZWZ0Qm90dG9tID0gJ3ZlcnRpY2FsTGVmdEJvdHRvbScsXG4gIHZlcnRpY2FsUmlnaHRDZW50ZXIgPSAndmVydGljYWxSaWdodENlbnRlcicsXG4gIHZlcnRpY2FsUmlnaHRUb3AgPSAndmVydGljYWxSaWdodFRvcCcsXG4gIHZlcnRpY2FsUmlnaHRCb3R0b20gPSAndmVydGljYWxSaWdodEJvdHRvbScsXG4gIGhvcml6b250YWxUb3BDZW50ZXIgPSAnaG9yaXpvbnRhbFRvcENlbnRlcicsXG4gIGhvcml6b250YWxUb3BMZWZ0ID0gJ2hvcml6b250YWxUb3BMZWZ0JyxcbiAgaG9yaXpvbnRhbFRvcFJpZ2h0ID0gJ2hvcml6b250YWxUb3BSaWdodCcsXG4gIGhvcml6b250YWxCb3R0b21DZW50ZXIgPSAnaG9yaXpvbnRhbEJvdHRvbUNlbnRlcicsXG4gIGhvcml6b250YWxCb3R0b21MZWZ0ID0gJ2hvcml6b250YWxCb3R0b21MZWZ0JyxcbiAgaG9yaXpvbnRhbEJvdHRvbVJpZ2h0ID0gJ2hvcml6b250YWxCb3R0b21SaWdodCdcbn1cblxuZXhwb3J0IGNvbnN0IExlZ2VuZFBvc2l0aW9uQ29udmVydGlvbjogUmVjb3JkPExlZ2VuZFBvc2l0aW9uLCB7fT4gPSB7XG4gIFtMZWdlbmRQb3NpdGlvbi52ZXJ0aWNhbExlZnRUb3BdOiB7XG4gICAgbGFiZWw6ICdWZXJ0aWNhbCBsZWZ0IHRvcCcsXG4gICAgb3JpZW50YXRpb246ICd2JyxcbiAgICB4OiAtMC4xLFxuICAgIHk6IDFcbiAgfSxcbiAgW0xlZ2VuZFBvc2l0aW9uLnZlcnRpY2FsTGVmdENlbnRlcl06IHtcbiAgICBsYWJlbDogJ1ZlcnRpY2FsIGxlZnQgY2VudGVyJyxcbiAgICBvcmllbnRhdGlvbjogJ3YnLFxuICAgIHg6IC0wLjEsXG4gICAgeTogMC41XG4gIH0sXG4gIFtMZWdlbmRQb3NpdGlvbi52ZXJ0aWNhbExlZnRCb3R0b21dOiB7XG4gICAgbGFiZWw6ICdWZXJ0aWNhbCBsZWZ0IGJvdHRvbScsXG4gICAgb3JpZW50YXRpb246ICd2JyxcbiAgICB4OiAtMC4xLFxuICAgIHk6IDBcbiAgfSxcbiAgW0xlZ2VuZFBvc2l0aW9uLnZlcnRpY2FsUmlnaHRUb3BdOiB7XG4gICAgbGFiZWw6ICdWZXJ0aWNhbCByaWdodCB0b3AnLFxuICAgIG9yaWVudGF0aW9uOiAndidcbiAgfSxcbiAgW0xlZ2VuZFBvc2l0aW9uLnZlcnRpY2FsUmlnaHRDZW50ZXJdOiB7XG4gICAgbGFiZWw6ICdWZXJ0aWNhbCByaWdodCBjZW50ZXInLFxuICAgIG9yaWVudGF0aW9uOiAndicsXG4gICAgeDogMSxcbiAgICB5OiAwLjVcbiAgfSxcbiAgW0xlZ2VuZFBvc2l0aW9uLnZlcnRpY2FsUmlnaHRCb3R0b21dOiB7XG4gICAgbGFiZWw6ICdWZXJ0aWNhbCByaWdodCBib3R0b20nLFxuICAgIG9yaWVudGF0aW9uOiAndicsXG4gICAgeDogMSxcbiAgICB5OiAwXG4gIH0sXG4gIFtMZWdlbmRQb3NpdGlvbi5ob3Jpem9udGFsQm90dG9tTGVmdF06IHtcbiAgICBsYWJlbDogJ0hvcml6b250YWwgYm90dG9tIGxlZnQnLFxuICAgIG9yaWVudGF0aW9uOiAnaCcsXG4gICAgeDogMCxcbiAgICB5OiAtMC4xLFxuICAgIHhhbmNob3I6ICdsZWZ0J1xuICB9LFxuICBbTGVnZW5kUG9zaXRpb24uaG9yaXpvbnRhbEJvdHRvbUNlbnRlcl06IHtcbiAgICBsYWJlbDogJ0hvcml6b250YWwgYm90dG9tIGNlbnRlcicsXG4gICAgb3JpZW50YXRpb246ICdoJyxcbiAgICB4OiAwLjUsXG4gICAgeTogLTAuMSxcbiAgICB4YW5jaG9yOiAnY2VudGVyJ1xuICB9LFxuICBbTGVnZW5kUG9zaXRpb24uaG9yaXpvbnRhbEJvdHRvbVJpZ2h0XToge1xuICAgIGxhYmVsOiAnSG9yaXpvbnRhbCBib3R0b20gcmlnaHQnLFxuICAgIG9yaWVudGF0aW9uOiAnaCcsXG4gICAgeDogMSxcbiAgICB5OiAtMC4xLFxuICAgIHhhbmNob3I6ICdyaWdodCdcbiAgfSxcbiAgW0xlZ2VuZFBvc2l0aW9uLmhvcml6b250YWxUb3BMZWZ0XToge1xuICAgIGxhYmVsOiAnSG9yaXpvbnRhbCB0b3AgbGVmdCcsXG4gICAgb3JpZW50YXRpb246ICdoJyxcbiAgICB4OiAwLFxuICAgIHk6IDEuMSxcbiAgICB4YW5jaG9yOiAnbGVmdCdcbiAgfSxcbiAgW0xlZ2VuZFBvc2l0aW9uLmhvcml6b250YWxUb3BDZW50ZXJdOiB7XG4gICAgbGFiZWw6ICdIb3Jpem9udGFsIHRvcCBjZW50ZXInLFxuICAgIG9yaWVudGF0aW9uOiAnaCcsXG4gICAgeDogMC41LFxuICAgIHk6IDEuMSxcbiAgICB4YW5jaG9yOiAnY2VudGVyJ1xuICB9LFxuICBbTGVnZW5kUG9zaXRpb24uaG9yaXpvbnRhbFRvcFJpZ2h0XToge1xuICAgIGxhYmVsOiAnSG9yaXpvbnRhbCB0b3AgcmlnaHQnLFxuICAgIG9yaWVudGF0aW9uOiAnaCcsXG4gICAgeDogMS4wMixcbiAgICB5OiAxLjEsXG4gICAgeGFuY2hvcjogJ3JpZ2h0J1xuICB9XG59O1xuIl19","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, Inject, Input, Output, ViewChild, ViewEncapsulation, DOCUMENT } from '@angular/core';\nimport { PlotlyComponent, PlotlySharedModule } from 'angular-plotly.js';\nimport { merge } from 'rxjs';\nimport { CHART_DEFAULT_PLOTLY_CONFIG } from './chart.models';\nimport { GroupTracesComponent } from './directives/groupTrace.component';\nimport { LegendComponent } from './directives/legend.component';\nimport { TraceComponent } from './directives/trace.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@finastra/angular-components/core\";\nimport * as i2 from \"angular-plotly.js\";\nexport class ChartComponent {\n    get config() {\n        return !this._config ? CHART_DEFAULT_PLOTLY_CONFIG : this._config;\n    }\n    set config(value) {\n        this._config = this.merge_options(CHART_DEFAULT_PLOTLY_CONFIG, value);\n    }\n    get layout() {\n        return this._layout ? this._layout : {};\n    }\n    set layout(value) {\n        if (!this._defaultLayout)\n            this.setDefautLayout();\n        this._layout = this.merge_options(this.merge_options(this._defaultLayout, this._layout), value);\n    }\n    get revision() {\n        return this.plot.revision;\n    }\n    set revision(value) {\n        if (this.plot) {\n            this.refresh();\n            this.plot.revision = value;\n            this.cd.markForCheck();\n            this.plot.updatePlot();\n        }\n    }\n    constructor(document, paletteService, cd, lazyLoadScriptService) {\n        this.document = document;\n        this.paletteService = paletteService;\n        this.cd = cd;\n        this.lazyLoadScriptService = lazyLoadScriptService;\n        this.data = [];\n        this.subscriptions = [];\n        this.multiSelect = false;\n        this.lastClick = {\n            time: 0,\n            item: { selectedItems: [], clickedItems: [] }\n        };\n        this.onClick = new EventEmitter();\n        this.onSelected = new EventEmitter();\n        this.onDoubleClick = new EventEmitter();\n        this.plotlyReady$ = lazyLoadScriptService.load('plotly.js', 'Plotly');\n    }\n    ngOnInit() {\n        this.setDefautLayout();\n        this.subscriptions.push(this.paletteService.paletteChange$.subscribe((config) => {\n            this.paletteConfig = config;\n        }));\n    }\n    ngAfterContentInit() {\n        this.refresh();\n        if (this.groupTraces && this.traces) {\n            merge(this.groupTraces.changes, this.traces.changes).subscribe(() => {\n                this.refresh();\n            });\n        }\n        else if (this.traces) {\n            merge(this.traces.changes).subscribe(() => {\n                this.refresh();\n            });\n        }\n        else if (this.groupTraces) {\n            merge(this.groupTraces.changes).subscribe(() => {\n                this.refresh();\n            });\n        }\n    }\n    ngOnDestroy() {\n        this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n    }\n    // @ts-expect-error: Argument is not used\n    ngOnChanges(changes) {\n        this.setData();\n        this.setLayout();\n    }\n    onSelect(event) {\n        const points = event.points;\n        const items = { selectedItems: new Array(), clickedItems: new Array() };\n        let trace;\n        points.forEach((item) => {\n            if (this.traces) {\n                trace = this.traces.find((t) => {\n                    return t.dimensionName === item.data.dimensionName && t.measureName === item.data.name;\n                });\n            }\n            else if (this.groupTraces) {\n                this.groupTraces.forEach((g) => {\n                    trace = g.traces.find((t) => {\n                        return t.dimensionName === item.data.dimensionName && t.measureName === item.data.name;\n                    });\n                });\n            }\n            if (trace) {\n                if (item.pointIndex !== undefined) {\n                    let dimension = item.data.orientation === 'v' ? item.data.x[item.pointIndex] : item.data.y[item.pointIndex];\n                    let measure = item.data.orientation === 'v' ? item.data.y[item.pointIndex] : item.data.x[item.pointIndex];\n                    // Get item clicked\n                    items.clickedItems.push({\n                        [item.data.dimensionName]: dimension,\n                        [item.data.name]: measure\n                    });\n                    // Update selectedpoints\n                    if (trace.selectedPoints && trace.selectedPoints.indexOf(item.pointIndex) !== -1) {\n                        if (!this.multiSelect) {\n                            // Set other trace selection to null\n                            this.groupTraces?.forEach((g) => {\n                                g.traces?.forEach((t) => delete t.selectedPoints);\n                            });\n                            this.traces?.forEach((t) => delete t.selectedPoints);\n                        }\n                        else {\n                            let someSelected = false;\n                            this.groupTraces?.forEach((g) => {\n                                g.traces?.forEach((t) => {\n                                    if ((t.dimensionName !== trace?.dimensionName || t.measureName !== trace?.measureName) &&\n                                        t.selectedPoints?.length &&\n                                        t.selectedPoints?.length > 0)\n                                        someSelected = true;\n                                });\n                            });\n                            this.traces?.forEach((t) => {\n                                if ((t.dimensionName !== trace?.dimensionName || t.measureName !== trace?.measureName) &&\n                                    t.selectedPoints?.length &&\n                                    t.selectedPoints?.length > 0)\n                                    someSelected = true;\n                            });\n                            if (trace.selectedPoints.length === 1 && !someSelected) {\n                                delete trace.selectedPoints;\n                            }\n                            else {\n                                trace.selectedPoints.splice(trace.selectedPoints.indexOf(item.pointIndex), 1);\n                            }\n                            if (!someSelected) {\n                                this.groupTraces?.forEach((g) => {\n                                    g.traces?.forEach((t) => {\n                                        if ((t.dimensionName !== trace?.dimensionName || t.measureName !== trace?.measureName) &&\n                                            t.selectedPoints?.length === 0)\n                                            delete t.selectedPoints;\n                                    });\n                                });\n                                this.traces?.forEach((t) => {\n                                    if ((t.dimensionName !== trace?.dimensionName || t.measureName !== trace?.measureName) && t.selectedPoints?.length === 0)\n                                        delete t.selectedPoints;\n                                });\n                            }\n                        }\n                    }\n                    else {\n                        if (trace.selectedPoints && this.multiSelect) {\n                            trace.selectedPoints.push(item.pointIndex);\n                        }\n                        else {\n                            // Set other trace selection to empty\n                            this.groupTraces?.forEach((g) => {\n                                g.traces?.forEach((t) => (t.selectedPoints = []));\n                            });\n                            this.traces?.forEach((t) => (t.selectedPoints = []));\n                            trace.selectedPoints = [item.pointIndex];\n                        }\n                    }\n                    // Get items selected\n                    if (trace.selectedPoints) {\n                        trace.selectedPoints.forEach((index) => {\n                            dimension = item.data.orientation === 'v' ? item.data.x[index] : item.data.y[index];\n                            measure = item.data.orientation === 'v' ? item.data.y[index] : item.data.x[index];\n                            items.selectedItems.push({\n                                [item.data.dimensionName]: dimension,\n                                [item.data.name]: measure\n                            });\n                        });\n                    }\n                }\n                else if (item.pointNumber !== undefined) {\n                    items.selectedItems.push({\n                        [item.data.dimensionName]: item.data.labels[item.pointNumber],\n                        [item.data.name]: item.data.values[item.pointNumber]\n                    });\n                    items.clickedItems = items.selectedItems;\n                }\n            }\n        });\n        this.onEventClick(items);\n    }\n    onEventClick(items) {\n        const clickTime = Date.now();\n        if (clickTime - this.lastClick.time < 250 &&\n            this.lastClick.item &&\n            this.lastClick.item.clickedItems &&\n            this.lastClick.item.clickedItems.length) {\n            clearTimeout(this.clickTimer);\n            this.clickTimer = null;\n            this.onDoubleClick.emit(this.lastClick.item.clickedItems);\n        }\n        else {\n            this.lastClick.time = clickTime;\n            this.lastClick.item = items;\n            this.clickTimer = setTimeout(() => {\n                this.lastClick.item = { selectedItems: [], clickedItems: [] };\n                this.onClick.emit(items.selectedItems.length ? items.clickedItems : []);\n                this.onSelected.emit(items.selectedItems);\n                clearTimeout(this.clickTimer);\n                this.revision++;\n            }, 300);\n        }\n    }\n    refresh() {\n        this.setLayout();\n        this.setData();\n        this.cd.markForCheck();\n    }\n    merge_options(obj1, obj2) {\n        const obj3 = {};\n        if (typeof obj2 === 'undefined') {\n            return obj1;\n        }\n        if (typeof obj1 === 'undefined') {\n            return obj2;\n        }\n        for (const attrname in obj1) {\n            if (obj1.hasOwnProperty(attrname))\n                obj3[attrname] =\n                    typeof obj1[attrname] === 'object' && !Array.isArray(obj1[attrname])\n                        ? this.merge_options(obj1[attrname], obj2[attrname])\n                        : obj1[attrname];\n        }\n        for (const attrname in obj2) {\n            if (obj2.hasOwnProperty(attrname))\n                obj3[attrname] =\n                    typeof obj2[attrname] === 'object' && !Array.isArray(obj2[attrname])\n                        ? this.merge_options(obj1[attrname], obj2[attrname])\n                        : obj2[attrname];\n        }\n        return obj3;\n    }\n    setDefautLayout() {\n        const themeContent = this.document.body;\n        const tmpContent = document.createElement('chart-font');\n        tmpContent.className = 'chart-font';\n        tmpContent.style.display = 'none';\n        themeContent.appendChild(tmpContent);\n        const globalStyled = window.getComputedStyle(this.document.body.getElementsByTagName('chart-font')[0]);\n        tmpContent.className = 'chart-font-legend';\n        const legendStyled = window.getComputedStyle(this.document.body.getElementsByTagName('chart-font')[0]);\n        tmpContent.className = 'chart-font-axis';\n        const axisStyled = window.getComputedStyle(this.document.body.getElementsByTagName('chart-font')[0]);\n        this._defaultLayout = {\n            hovermode: 'closest',\n            clickmode: 'event',\n            margin: {\n                t: 20,\n                l: 20,\n                r: 20,\n                b: 20\n            },\n            paper_bgcolor: 'transparent',\n            plot_bgcolor: 'transparent',\n            legend: {\n                font: {\n                    family: legendStyled.fontFamily,\n                    size: legendStyled.fontSize,\n                    color: legendStyled.color\n                }\n            },\n            xaxis: {\n                automargin: true,\n                tickfont: {\n                    family: axisStyled.fontFamily,\n                    size: axisStyled.fontSize,\n                    color: axisStyled.color\n                },\n                title: {\n                    font: {\n                        family: axisStyled.fontFamily,\n                        size: axisStyled.fontSize,\n                        color: axisStyled.color\n                    }\n                }\n            },\n            yaxis: {\n                automargin: true,\n                tickfont: {\n                    family: axisStyled.fontFamily,\n                    size: axisStyled.fontSize,\n                    color: axisStyled.color\n                },\n                title: {\n                    font: {\n                        family: axisStyled.fontFamily,\n                        size: axisStyled.fontSize,\n                        color: axisStyled.color\n                    }\n                }\n            },\n            font: {\n                family: globalStyled.fontFamily,\n                size: globalStyled.fontSize,\n                color: globalStyled.color\n            },\n            bargap: parseFloat(axisStyled.margin ? axisStyled.margin.replace('px', '') : '10') / 100,\n            bargroupgap: parseFloat(axisStyled.padding ? axisStyled.padding.replace('px', '') : '10') / 100\n        };\n        themeContent.removeChild(tmpContent);\n    }\n    setLayout(layout) {\n        if (!this._layout)\n            this._layout = this._defaultLayout;\n        if (this._layout) {\n            if (this.groupTraces && !this._layout.grid) {\n                let row = 0, column = 0;\n                this.groupTraces.forEach((grpTraces) => {\n                    row = row < grpTraces.rowPosition ? grpTraces.rowPosition : row;\n                    column = column < grpTraces.columnPosition ? grpTraces.columnPosition : column;\n                });\n                this._layout.grid = { rows: Number(row) + 1, columns: Number(column) + 1, pattern: 'independent' };\n            }\n            this._layout.legend = !!this.legend;\n            if (this.legend) {\n                this._layout.legend = { ...this._layout.legend, ...this.legend.getLegendPlotly() };\n            }\n            if (this.paletteConfig && this.paletteConfig.colorWay) {\n                this._layout.colorway = this.paletteConfig.colorWay;\n            }\n        }\n        if (layout) {\n            this.merge_options(this._layout, layout);\n        }\n    }\n    setData() {\n        if (this.traces && this.traces.length) {\n            this.data = this.traces\n                .map((trace) => {\n                return trace.getPlotlyTrace();\n            })\n                .filter((trace) => !!trace);\n        }\n        else if (this.groupTraces && this.groupTraces.length) {\n            let datas = [];\n            let nbGrp = 1;\n            this.groupTraces.forEach((grpTrace) => {\n                datas = [\n                    ...datas,\n                    ...grpTrace.getTraces().map((tr) => {\n                        tr.xaxis = 'x' + nbGrp;\n                        tr.yaxis = 'y' + nbGrp;\n                        tr.legendgroup = 'group' + nbGrp;\n                        return tr;\n                    })\n                ];\n                nbGrp++;\n            });\n            this.data = datas;\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ChartComponent, deps: [{ token: DOCUMENT }, { token: i1.PaletteService }, { token: i0.ChangeDetectorRef }, { token: i1.LazyloadScriptService }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: ChartComponent, isStandalone: true, selector: \"uxg-chart\", inputs: { multiSelect: \"multiSelect\", config: \"config\", layout: \"layout\", revision: \"revision\" }, outputs: { onClick: \"onClick\", onSelected: \"onSelected\", onDoubleClick: \"onDoubleClick\" }, queries: [{ propertyName: \"legend\", first: true, predicate: LegendComponent, descendants: true }, { propertyName: \"traces\", predicate: TraceComponent }, { propertyName: \"groupTraces\", predicate: GroupTracesComponent }], viewQueries: [{ propertyName: \"plot\", first: true, predicate: PlotlyComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"@if (plotlyReady$ | async) {\\n  <plotly-plot #plot [data]=\\\"data\\\" [layout]=\\\"layout\\\" [config]=\\\"config\\\" [useResizeHandler]=\\\"true\\\" (plotlyClick)=\\\"onSelect($event)\\\">\\n  </plotly-plot>\\n}\\n\", styles: [\".mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:800 1rem/1.375rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:800 .8125rem/1.125rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:500 1rem/1.5rem Roboto;letter-spacing:.15px;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:300 1rem/1.5rem Roboto;letter-spacing:.5px;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:300 .72625rem/1.3125rem Roboto;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:300 .58625rem/1.3125rem Roboto;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 .875rem/1.3125rem Roboto;letter-spacing:.1px}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:300 .875rem/1.3125rem Roboto;letter-spacing:.25px}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 .75rem/1.125rem Roboto;letter-spacing:.4px}.mat-headline-1,.mat-typography .mat-headline-1{font:800 3.1875rem/4.4375rem Spartan;letter-spacing:0;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:800 2.5625rem/3.5625rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:800 1.75rem/2.4375rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:800 1.3125rem/1.8125rem Spartan;letter-spacing:0;margin:0 0 64px}.flex{display:flex;box-sizing:border-box}.inline-flex{display:inline-flex;box-sizing:border-box}.flex-row{display:flex;flex-direction:row;box-sizing:border-box}.flex-col{display:flex;flex-direction:column;box-sizing:border-box}.flex-wrap{flex-wrap:wrap}@media screen and (max-width: 599px){.flex-col-xs{flex-direction:column}}@media screen and (max-width: 959px){.flex-col-lt-md{flex-direction:column}}@media screen and (max-width: 1279px){.flex-col-lt-lg{flex-direction:column}}@media screen and (max-width: 599px){.flex-row-xs{flex-direction:row}}@media screen and (max-width: 959px){.flex-row-lt-md{flex-direction:row}}@media screen and (max-width: 1279px){.flex-row-lt-lg{flex-direction:row}}.flex-row-gt-xs{display:flex}@media screen and (min-width: 600px){.flex-row-gt-xs{flex-direction:row}}.flex-initial{flex:initial}.flex-auto{flex:auto}.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-15{flex:0 0 15%}.flex-20{flex:0 0 20%}.flex-25{flex:0 0 25%}.flex-30{flex:0 0 30%}.flex-35{flex:0 0 35%}.flex-40{flex:0 0 40%}.flex-45{flex:0 0 45%}.flex-50{flex:0 0 50%}.flex-55{flex:0 0 55%}.flex-60{flex:0 0 60%}.flex-80{flex:0 0 80%}.flex-none{flex:none}.flex-nogrow{flex:0 1 auto}.flex-noshrink{flex:1 0 auto}.flex-grow{flex:1 1 100%}.flex-grow25{flex:0 1 25%}.flex-grow50{flex:0 1 50%}.flex-grow60{flex:0 1 60%}.flex-grow75{flex:0 1 75%}.gap-10>*{margin-right:10px}.gap-10>*:last-child{margin-right:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.center-center{justify-content:center;align-items:center}.item-start{align-self:flex-start}.item-end{align-self:flex-end}.item-center{align-self:center}.item-stretch{align-self:stretch}.item-baseline{align-self:baseline}.center{display:block;margin-left:auto;margin-right:auto}.fill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}.fill-remaining-space{flex:1 1 auto}.center-text{text-align:center}.hide{display:none!important}@media screen and (max-width: 599px){.hide-xs{display:none!important}}@media screen and (min-width: 600px){.hide-gt-xs{display:none!important}}@media screen and (max-width: 959px){.hide-lt-md{display:none!important}}@media screen and (min-width: 960px){.hide-gt-sm{display:none!important}}@media screen and (min-width: 1280px){.hide-gt-md{display:none!important}}@media screen and (max-width: 1279px){.hide-lt-lg{display:none!important}}@media screen and (max-width: 599px){.hide-lt-sm{display:none!important}}uxg-chart{flex:auto;display:flex;flex-direction:column}uxg-chart plotly-plot,uxg-chart .js-plotly-plot{display:flex;flex-direction:column;flex:auto}.chart-font-axis{padding:24px;margin:48px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: PlotlySharedModule }, { kind: \"component\", type: i2.PlotlyComponent, selector: \"plotly-plot\", inputs: [\"data\", \"layout\", \"config\", \"frames\", \"style\", \"theme\", \"divId\", \"revision\", \"className\", \"debug\", \"useResizeHandler\", \"updateOnLayoutChange\", \"updateOnDataChange\", \"updateOnlyWithRevision\"], outputs: [\"initialized\", \"update\", \"purge\", \"error\", \"afterExport\", \"afterPlot\", \"animated\", \"animatingFrame\", \"animationInterrupted\", \"autoSize\", \"beforeExport\", \"beforeHover\", \"buttonClicked\", \"click\", \"plotlyClick\", \"clickAnnotation\", \"deselect\", \"doubleClick\", \"framework\", \"hover\", \"legendClick\", \"legendDoubleClick\", \"react\", \"relayout\", \"relayouting\", \"restyle\", \"redraw\", \"selected\", \"selecting\", \"sliderChange\", \"sliderEnd\", \"sliderStart\", \"sunburstclick\", \"transitioning\", \"transitionInterrupted\", \"unhover\", \"treemapclick\", \"webglcontextlost\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ChartComponent, decorators: [{\n            type: Component,\n            args: [{ selector: 'uxg-chart', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [PlotlySharedModule, AsyncPipe], template: \"@if (plotlyReady$ | async) {\\n  <plotly-plot #plot [data]=\\\"data\\\" [layout]=\\\"layout\\\" [config]=\\\"config\\\" [useResizeHandler]=\\\"true\\\" (plotlyClick)=\\\"onSelect($event)\\\">\\n  </plotly-plot>\\n}\\n\", styles: [\".mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:800 1rem/1.375rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:800 .8125rem/1.125rem Spartan;letter-spacing:0;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:500 1rem/1.5rem Roboto;letter-spacing:.15px;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:300 1rem/1.5rem Roboto;letter-spacing:.5px;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:300 .72625rem/1.3125rem Roboto;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:300 .58625rem/1.3125rem Roboto;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 .875rem/1.3125rem Roboto;letter-spacing:.1px}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:300 .875rem/1.3125rem Roboto;letter-spacing:.25px}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 .75rem/1.125rem Roboto;letter-spacing:.4px}.mat-headline-1,.mat-typography .mat-headline-1{font:800 3.1875rem/4.4375rem Spartan;letter-spacing:0;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:800 2.5625rem/3.5625rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:800 1.75rem/2.4375rem Spartan;letter-spacing:0;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:800 1.3125rem/1.8125rem Spartan;letter-spacing:0;margin:0 0 64px}.flex{display:flex;box-sizing:border-box}.inline-flex{display:inline-flex;box-sizing:border-box}.flex-row{display:flex;flex-direction:row;box-sizing:border-box}.flex-col{display:flex;flex-direction:column;box-sizing:border-box}.flex-wrap{flex-wrap:wrap}@media screen and (max-width: 599px){.flex-col-xs{flex-direction:column}}@media screen and (max-width: 959px){.flex-col-lt-md{flex-direction:column}}@media screen and (max-width: 1279px){.flex-col-lt-lg{flex-direction:column}}@media screen and (max-width: 599px){.flex-row-xs{flex-direction:row}}@media screen and (max-width: 959px){.flex-row-lt-md{flex-direction:row}}@media screen and (max-width: 1279px){.flex-row-lt-lg{flex-direction:row}}.flex-row-gt-xs{display:flex}@media screen and (min-width: 600px){.flex-row-gt-xs{flex-direction:row}}.flex-initial{flex:initial}.flex-auto{flex:auto}.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-15{flex:0 0 15%}.flex-20{flex:0 0 20%}.flex-25{flex:0 0 25%}.flex-30{flex:0 0 30%}.flex-35{flex:0 0 35%}.flex-40{flex:0 0 40%}.flex-45{flex:0 0 45%}.flex-50{flex:0 0 50%}.flex-55{flex:0 0 55%}.flex-60{flex:0 0 60%}.flex-80{flex:0 0 80%}.flex-none{flex:none}.flex-nogrow{flex:0 1 auto}.flex-noshrink{flex:1 0 auto}.flex-grow{flex:1 1 100%}.flex-grow25{flex:0 1 25%}.flex-grow50{flex:0 1 50%}.flex-grow60{flex:0 1 60%}.flex-grow75{flex:0 1 75%}.gap-10>*{margin-right:10px}.gap-10>*:last-child{margin-right:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-stretch{align-items:stretch}.align-baseline{align-items:baseline}.center-center{justify-content:center;align-items:center}.item-start{align-self:flex-start}.item-end{align-self:flex-end}.item-center{align-self:center}.item-stretch{align-self:stretch}.item-baseline{align-self:baseline}.center{display:block;margin-left:auto;margin-right:auto}.fill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}.fill-remaining-space{flex:1 1 auto}.center-text{text-align:center}.hide{display:none!important}@media screen and (max-width: 599px){.hide-xs{display:none!important}}@media screen and (min-width: 600px){.hide-gt-xs{display:none!important}}@media screen and (max-width: 959px){.hide-lt-md{display:none!important}}@media screen and (min-width: 960px){.hide-gt-sm{display:none!important}}@media screen and (min-width: 1280px){.hide-gt-md{display:none!important}}@media screen and (max-width: 1279px){.hide-lt-lg{display:none!important}}@media screen and (max-width: 599px){.hide-lt-sm{display:none!important}}uxg-chart{flex:auto;display:flex;flex-direction:column}uxg-chart plotly-plot,uxg-chart .js-plotly-plot{display:flex;flex-direction:column;flex:auto}.chart-font-axis{padding:24px;margin:48px}\\n\"] }]\n        }], ctorParameters: () => [{ type: undefined, decorators: [{\n                    type: Inject,\n                    args: [DOCUMENT]\n                }] }, { type: i1.PaletteService }, { type: i0.ChangeDetectorRef }, { type: i1.LazyloadScriptService }], propDecorators: { plot: [{\n                type: ViewChild,\n                args: [PlotlyComponent, { static: false }]\n            }], traces: [{\n                type: ContentChildren,\n                args: [TraceComponent]\n            }], legend: [{\n                type: ContentChild,\n                args: [LegendComponent, { static: false }]\n            }], groupTraces: [{\n                type: ContentChildren,\n                args: [GroupTracesComponent]\n            }], multiSelect: [{\n                type: Input\n            }], config: [{\n                type: Input\n            }], layout: [{\n                type: Input\n            }], revision: [{\n                type: Input\n            }], onClick: [{\n                type: Output\n            }], onSelected: [{\n                type: Output\n            }], onDoubleClick: [{\n                type: Output\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhcnQvc3JjL2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL2NoYXJ0L3NyYy9jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hFLE9BQU8sRUFBNEIsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFXOUQsTUFBTSxPQUFPLGNBQWM7SUFpQnpCLElBQ0ksTUFBTTtRQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNwRSxDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FB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QUFjLGtCQThEZixRQUFRO2tHQTlEUCxjQUFjLHNTQUlYLGVBQWUsNERBRFosY0FBYyw4Q0FFZCxvQkFBb0IsbUVBSjFCLGVBQWUscUVDdkM1QixtTUFJQSxvbUtEZ0NZLGtCQUFrQix5MUJBQUUsU0FBUzs7MkZBRTVCLGNBQWM7a0JBVDFCLFNBQVM7K0JBQ0UsV0FBVyxpQkFHTixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQzs7MEJBZ0VyQyxNQUFNOzJCQUFDLFFBQVE7MElBN0Q2QixJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRVosTUFBTTtzQkFBdEMsZUFBZTt1QkFBQyxjQUFjO2dCQUNtQixNQUFNO3NCQUF2RCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ1QsV0FBVztzQkFBakQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBVTVCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0YsTUFBTTtzQkFEVCxLQUFLO2dCQVNGLE1BQU07c0JBRFQsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBYUksT0FBTztzQkFBaEIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBET0NVTUVOVFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhenlsb2FkU2NyaXB0U2VydmljZSwgUGFsZXR0ZUNvbmZpZywgUGFsZXR0ZVNlcnZpY2UgfSBmcm9tICdAZmluYXN0cmEvYW5ndWxhci1jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgUGxvdGx5Q29tcG9uZW50LCBQbG90bHlTaGFyZWRNb2R1bGUgfSBmcm9tICdhbmd1bGFyLXBsb3RseS5qcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDSEFSVF9ERUZBVUxUX1BMT1RMWV9DT05GSUcgfSBmcm9tICcuL2NoYXJ0Lm1vZGVscyc7XG5pbXBvcnQgeyBHcm91cFRyYWNlc0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aXZlcy9ncm91cFRyYWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFjZUNvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aXZlcy90cmFjZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1eGctY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1Bsb3RseVNoYXJlZE1vZHVsZSwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQge1xuICBAVmlld0NoaWxkKFBsb3RseUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHBsb3QhOiBQbG90bHlDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUcmFjZUNvbXBvbmVudCkgdHJhY2VzPzogUXVlcnlMaXN0PFRyYWNlQ29tcG9uZW50PjtcbiAgQENvbnRlbnRDaGlsZChMZWdlbmRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBsZWdlbmQ/OiBMZWdlbmRDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oR3JvdXBUcmFjZXNDb21wb25lbnQpIGdyb3VwVHJhY2VzPzogUXVlcnlMaXN0PEdyb3VwVHJhY2VzQ29tcG9uZW50PjtcblxuICBkYXRhOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgX2NvbmZpZz86IGFueTtcbiAgcHJpdmF0ZSBfbGF5b3V0PzogYW55O1xuICBwcml2YXRlIF9kZWZhdWx0TGF5b3V0PzogYW55O1xuICBwcml2YXRlIHBhbGV0dGVDb25maWc/OiBQYWxldHRlQ29uZmlnO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgQElucHV0KCkgbXVsdGlTZWxlY3QgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgY29uZmlnKCk6IGFueSB7XG4gICAgcmV0dXJuICF0aGlzLl9jb25maWcgPyBDSEFSVF9ERUZBVUxUX1BMT1RMWV9DT05GSUcgOiB0aGlzLl9jb25maWc7XG4gIH1cbiAgc2V0IGNvbmZpZyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5tZXJnZV9vcHRpb25zKENIQVJUX0RFRkFVTFRfUExPVExZX0NPTkZJRywgdmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxheW91dCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXQgPyB0aGlzLl9sYXlvdXQgOiB7fTtcbiAgfVxuICBzZXQgbGF5b3V0KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuX2RlZmF1bHRMYXlvdXQpIHRoaXMuc2V0RGVmYXV0TGF5b3V0KCk7XG4gICAgdGhpcy5fbGF5b3V0ID0gdGhpcy5tZXJnZV9vcHRpb25zKHRoaXMubWVyZ2Vfb3B0aW9ucyh0aGlzLl9kZWZhdWx0TGF5b3V0LCB0aGlzLl9sYXlvdXQpLCB2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcmV2aXNpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wbG90LnJldmlzaW9uO1xuICB9XG4gIHNldCByZXZpc2lvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMucGxvdCkge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB0aGlzLnBsb3QucmV2aXNpb24gPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLnBsb3QudXBkYXRlUGxvdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QXJyYXk8T2JqZWN0Pj47XG5cbiAgQE91dHB1dCgpIG9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxBcnJheTxPYmplY3Q+PjtcblxuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljazogRXZlbnRFbWl0dGVyPEFycmF5PE9iamVjdD4+O1xuXG4gIHByaXZhdGUgbGFzdENsaWNrID0ge1xuICAgIHRpbWU6IDAsXG4gICAgaXRlbTogeyBzZWxlY3RlZEl0ZW1zOiBbXSBhcyBBcnJheTxPYmplY3Q+LCBjbGlja2VkSXRlbXM6IFtdIGFzIEFycmF5PE9iamVjdD4gfVxuICB9O1xuICBwcml2YXRlIGNsaWNrVGltZXI6IGFueTtcblxuICBwbG90bHlSZWFkeSQ6IE9ic2VydmFibGU8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSBwYWxldHRlU2VydmljZTogUGFsZXR0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGxhenlMb2FkU2NyaXB0U2VydmljZTogTGF6eWxvYWRTY3JpcHRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMub25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8T2JqZWN0Pj4oKTtcbiAgICB0aGlzLm9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PE9iamVjdD4+KCk7XG4gICAgdGhpcy5vbkRvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxPYmplY3Q+PigpO1xuICAgIHRoaXMucGxvdGx5UmVhZHkkID0gbGF6eUxvYWRTY3JpcHRTZXJ2aWNlLmxvYWQoJ3Bsb3RseS5qcycsICdQbG90bHknKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGVmYXV0TGF5b3V0KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnBhbGV0dGVTZXJ2aWNlLnBhbGV0dGVDaGFuZ2UkLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XG4gICAgICAgIHRoaXMucGFsZXR0ZUNvbmZpZyA9IGNvbmZpZztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICBpZiAodGhpcy5ncm91cFRyYWNlcyAmJiB0aGlzLnRyYWNlcykge1xuICAgICAgbWVyZ2UodGhpcy5ncm91cFRyYWNlcy5jaGFuZ2VzLCB0aGlzLnRyYWNlcy5jaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cmFjZXMpIHtcbiAgICAgIG1lcmdlKHRoaXMudHJhY2VzLmNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmdyb3VwVHJhY2VzKSB7XG4gICAgICBtZXJnZSh0aGlzLmdyb3VwVHJhY2VzLmNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IEFyZ3VtZW50IGlzIG5vdCB1c2VkXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnNldERhdGEoKTtcbiAgICB0aGlzLnNldExheW91dCgpO1xuICB9XG5cbiAgb25TZWxlY3QoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHBvaW50czogYW55ID0gZXZlbnQucG9pbnRzO1xuICAgIGNvbnN0IGl0ZW1zID0geyBzZWxlY3RlZEl0ZW1zOiBuZXcgQXJyYXk8b2JqZWN0PigpLCBjbGlja2VkSXRlbXM6IG5ldyBBcnJheTxvYmplY3Q+KCkgfTtcbiAgICBsZXQgdHJhY2U6IFRyYWNlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAgIHBvaW50cy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLnRyYWNlcykge1xuICAgICAgICB0cmFjZSA9IHRoaXMudHJhY2VzLmZpbmQoKHQ6IFRyYWNlQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHQuZGltZW5zaW9uTmFtZSA9PT0gaXRlbS5kYXRhLmRpbWVuc2lvbk5hbWUgJiYgdC5tZWFzdXJlTmFtZSA9PT0gaXRlbS5kYXRhLm5hbWU7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmdyb3VwVHJhY2VzKSB7XG4gICAgICAgIHRoaXMuZ3JvdXBUcmFjZXMuZm9yRWFjaCgoZzogR3JvdXBUcmFjZXNDb21wb25lbnQpID0+IHtcbiAgICAgICAgICB0cmFjZSA9IGcudHJhY2VzLmZpbmQoKHQ6IFRyYWNlQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdC5kaW1lbnNpb25OYW1lID09PSBpdGVtLmRhdGEuZGltZW5zaW9uTmFtZSAmJiB0Lm1lYXN1cmVOYW1lID09PSBpdGVtLmRhdGEubmFtZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0cmFjZSkge1xuICAgICAgICBpZiAoaXRlbS5wb2ludEluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsZXQgZGltZW5zaW9uID0gaXRlbS5kYXRhLm9yaWVudGF0aW9uID09PSAndicgPyBpdGVtLmRhdGEueFtpdGVtLnBvaW50SW5kZXhdIDogaXRlbS5kYXRhLnlbaXRlbS5wb2ludEluZGV4XTtcbiAgICAgICAgICBsZXQgbWVhc3VyZSA9IGl0ZW0uZGF0YS5vcmllbnRhdGlvbiA9PT0gJ3YnID8gaXRlbS5kYXRhLnlbaXRlbS5wb2ludEluZGV4XSA6IGl0ZW0uZGF0YS54W2l0ZW0ucG9pbnRJbmRleF07XG5cbiAgICAgICAgICAvLyBHZXQgaXRlbSBjbGlja2VkXG4gICAgICAgICAgaXRlbXMuY2xpY2tlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgW2l0ZW0uZGF0YS5kaW1lbnNpb25OYW1lXTogZGltZW5zaW9uLFxuICAgICAgICAgICAgW2l0ZW0uZGF0YS5uYW1lXTogbWVhc3VyZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gVXBkYXRlIHNlbGVjdGVkcG9pbnRzXG4gICAgICAgICAgaWYgKHRyYWNlLnNlbGVjdGVkUG9pbnRzICYmIHRyYWNlLnNlbGVjdGVkUG9pbnRzLmluZGV4T2YoaXRlbS5wb2ludEluZGV4KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgICAgICAgICAvLyBTZXQgb3RoZXIgdHJhY2Ugc2VsZWN0aW9uIHRvIG51bGxcbiAgICAgICAgICAgICAgdGhpcy5ncm91cFRyYWNlcz8uZm9yRWFjaCgoZzogR3JvdXBUcmFjZXNDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBnLnRyYWNlcz8uZm9yRWFjaCgodCkgPT4gZGVsZXRlIHQuc2VsZWN0ZWRQb2ludHMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy50cmFjZXM/LmZvckVhY2goKHQpID0+IGRlbGV0ZSB0LnNlbGVjdGVkUG9pbnRzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxldCBzb21lU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5ncm91cFRyYWNlcz8uZm9yRWFjaCgoZzogR3JvdXBUcmFjZXNDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBnLnRyYWNlcz8uZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAodC5kaW1lbnNpb25OYW1lICE9PSB0cmFjZT8uZGltZW5zaW9uTmFtZSB8fCB0Lm1lYXN1cmVOYW1lICE9PSB0cmFjZT8ubWVhc3VyZU5hbWUpICYmXG4gICAgICAgICAgICAgICAgICAgIHQuc2VsZWN0ZWRQb2ludHM/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICB0LnNlbGVjdGVkUG9pbnRzPy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIHNvbWVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLnRyYWNlcz8uZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICh0LmRpbWVuc2lvbk5hbWUgIT09IHRyYWNlPy5kaW1lbnNpb25OYW1lIHx8IHQubWVhc3VyZU5hbWUgIT09IHRyYWNlPy5tZWFzdXJlTmFtZSkgJiZcbiAgICAgICAgICAgICAgICAgIHQuc2VsZWN0ZWRQb2ludHM/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgdC5zZWxlY3RlZFBvaW50cz8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHNvbWVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAodHJhY2Uuc2VsZWN0ZWRQb2ludHMubGVuZ3RoID09PSAxICYmICFzb21lU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdHJhY2Uuc2VsZWN0ZWRQb2ludHM7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJhY2Uuc2VsZWN0ZWRQb2ludHMuc3BsaWNlKHRyYWNlLnNlbGVjdGVkUG9pbnRzLmluZGV4T2YoaXRlbS5wb2ludEluZGV4KSwgMSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKCFzb21lU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwVHJhY2VzPy5mb3JFYWNoKChnOiBHcm91cFRyYWNlc0NvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgZy50cmFjZXM/LmZvckVhY2goKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICh0LmRpbWVuc2lvbk5hbWUgIT09IHRyYWNlPy5kaW1lbnNpb25OYW1lIHx8IHQubWVhc3VyZU5hbWUgIT09IHRyYWNlPy5tZWFzdXJlTmFtZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICB0LnNlbGVjdGVkUG9pbnRzPy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0LnNlbGVjdGVkUG9pbnRzO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFjZXM/LmZvckVhY2goKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICgodC5kaW1lbnNpb25OYW1lICE9PSB0cmFjZT8uZGltZW5zaW9uTmFtZSB8fCB0Lm1lYXN1cmVOYW1lICE9PSB0cmFjZT8ubWVhc3VyZU5hbWUpICYmIHQuc2VsZWN0ZWRQb2ludHM/Lmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHQuc2VsZWN0ZWRQb2ludHM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRyYWNlLnNlbGVjdGVkUG9pbnRzICYmIHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgICAgICAgICAgdHJhY2Uuc2VsZWN0ZWRQb2ludHMucHVzaChpdGVtLnBvaW50SW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2V0IG90aGVyIHRyYWNlIHNlbGVjdGlvbiB0byBlbXB0eVxuICAgICAgICAgICAgICB0aGlzLmdyb3VwVHJhY2VzPy5mb3JFYWNoKChnOiBHcm91cFRyYWNlc0NvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGcudHJhY2VzPy5mb3JFYWNoKCh0KSA9PiAodC5zZWxlY3RlZFBvaW50cyA9IFtdKSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLnRyYWNlcz8uZm9yRWFjaCgodCkgPT4gKHQuc2VsZWN0ZWRQb2ludHMgPSBbXSkpO1xuXG4gICAgICAgICAgICAgIHRyYWNlLnNlbGVjdGVkUG9pbnRzID0gW2l0ZW0ucG9pbnRJbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gR2V0IGl0ZW1zIHNlbGVjdGVkXG4gICAgICAgICAgaWYgKHRyYWNlLnNlbGVjdGVkUG9pbnRzKSB7XG4gICAgICAgICAgICB0cmFjZS5zZWxlY3RlZFBvaW50cy5mb3JFYWNoKChpbmRleDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGRpbWVuc2lvbiA9IGl0ZW0uZGF0YS5vcmllbnRhdGlvbiA9PT0gJ3YnID8gaXRlbS5kYXRhLnhbaW5kZXhdIDogaXRlbS5kYXRhLnlbaW5kZXhdO1xuICAgICAgICAgICAgICBtZWFzdXJlID0gaXRlbS5kYXRhLm9yaWVudGF0aW9uID09PSAndicgPyBpdGVtLmRhdGEueVtpbmRleF0gOiBpdGVtLmRhdGEueFtpbmRleF07XG4gICAgICAgICAgICAgIGl0ZW1zLnNlbGVjdGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgW2l0ZW0uZGF0YS5kaW1lbnNpb25OYW1lXTogZGltZW5zaW9uLFxuICAgICAgICAgICAgICAgIFtpdGVtLmRhdGEubmFtZV06IG1lYXN1cmVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5wb2ludE51bWJlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaXRlbXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIFtpdGVtLmRhdGEuZGltZW5zaW9uTmFtZV06IGl0ZW0uZGF0YS5sYWJlbHNbaXRlbS5wb2ludE51bWJlcl0sXG4gICAgICAgICAgICBbaXRlbS5kYXRhLm5hbWVdOiBpdGVtLmRhdGEudmFsdWVzW2l0ZW0ucG9pbnROdW1iZXJdXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaXRlbXMuY2xpY2tlZEl0ZW1zID0gaXRlbXMuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub25FdmVudENsaWNrKGl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgb25FdmVudENsaWNrKGl0ZW1zOiB7IHNlbGVjdGVkSXRlbXM6IG9iamVjdFtdOyBjbGlja2VkSXRlbXM6IG9iamVjdFtdIH0pIHtcbiAgICBjb25zdCBjbGlja1RpbWUgPSBEYXRlLm5vdygpO1xuICAgIGlmIChcbiAgICAgIGNsaWNrVGltZSAtIHRoaXMubGFzdENsaWNrLnRpbWUgPCAyNTAgJiZcbiAgICAgIHRoaXMubGFzdENsaWNrLml0ZW0gJiZcbiAgICAgIHRoaXMubGFzdENsaWNrLml0ZW0uY2xpY2tlZEl0ZW1zICYmXG4gICAgICB0aGlzLmxhc3RDbGljay5pdGVtLmNsaWNrZWRJdGVtcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsaWNrVGltZXIpO1xuICAgICAgdGhpcy5jbGlja1RpbWVyID0gbnVsbDtcbiAgICAgIHRoaXMub25Eb3VibGVDbGljay5lbWl0KHRoaXMubGFzdENsaWNrLml0ZW0uY2xpY2tlZEl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYXN0Q2xpY2sudGltZSA9IGNsaWNrVGltZTtcbiAgICAgIHRoaXMubGFzdENsaWNrLml0ZW0gPSBpdGVtcztcbiAgICAgIHRoaXMuY2xpY2tUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RDbGljay5pdGVtID0geyBzZWxlY3RlZEl0ZW1zOiBbXSwgY2xpY2tlZEl0ZW1zOiBbXSB9O1xuICAgICAgICB0aGlzLm9uQ2xpY2suZW1pdChpdGVtcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA/IGl0ZW1zLmNsaWNrZWRJdGVtcyA6IFtdKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdGVkLmVtaXQoaXRlbXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsaWNrVGltZXIpO1xuICAgICAgICB0aGlzLnJldmlzaW9uKys7XG4gICAgICB9LCAzMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnNldExheW91dCgpO1xuICAgIHRoaXMuc2V0RGF0YSgpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlX29wdGlvbnMob2JqMTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IGFueSwgb2JqMjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IGFueSk6IG9iamVjdCB7XG4gICAgY29uc3Qgb2JqMzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGlmICh0eXBlb2Ygb2JqMiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBvYmoxO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9iajEgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gb2JqMjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGF0dHJuYW1lIGluIG9iajEpIHtcbiAgICAgIGlmIChvYmoxLmhhc093blByb3BlcnR5KGF0dHJuYW1lKSlcbiAgICAgICAgb2JqM1thdHRybmFtZV0gPVxuICAgICAgICAgIHR5cGVvZiBvYmoxW2F0dHJuYW1lXSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkob2JqMVthdHRybmFtZV0pXG4gICAgICAgICAgICA/IHRoaXMubWVyZ2Vfb3B0aW9ucyhvYmoxW2F0dHJuYW1lXSwgb2JqMlthdHRybmFtZV0pXG4gICAgICAgICAgICA6IG9iajFbYXR0cm5hbWVdO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dHJuYW1lIGluIG9iajIpIHtcbiAgICAgIGlmIChvYmoyLmhhc093blByb3BlcnR5KGF0dHJuYW1lKSlcbiAgICAgICAgb2JqM1thdHRybmFtZV0gPVxuICAgICAgICAgIHR5cGVvZiBvYmoyW2F0dHJuYW1lXSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkob2JqMlthdHRybmFtZV0pXG4gICAgICAgICAgICA/IHRoaXMubWVyZ2Vfb3B0aW9ucyhvYmoxW2F0dHJuYW1lXSwgb2JqMlthdHRybmFtZV0pXG4gICAgICAgICAgICA6IG9iajJbYXR0cm5hbWVdO1xuICAgIH1cbiAgICByZXR1cm4gb2JqMztcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXV0TGF5b3V0KCk6IHZvaWQge1xuICAgIGNvbnN0IHRoZW1lQ29udGVudCA9IHRoaXMuZG9jdW1lbnQuYm9keTtcbiAgICBjb25zdCB0bXBDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2hhcnQtZm9udCcpO1xuICAgIHRtcENvbnRlbnQuY2xhc3NOYW1lID0gJ2NoYXJ0LWZvbnQnO1xuICAgIHRtcENvbnRlbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0aGVtZUNvbnRlbnQuYXBwZW5kQ2hpbGQodG1wQ29udGVudCk7XG5cbiAgICBjb25zdCBnbG9iYWxTdHlsZWQ6IENTU1N0eWxlRGVjbGFyYXRpb24gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NoYXJ0LWZvbnQnKVswXSk7XG4gICAgdG1wQ29udGVudC5jbGFzc05hbWUgPSAnY2hhcnQtZm9udC1sZWdlbmQnO1xuICAgIGNvbnN0IGxlZ2VuZFN0eWxlZDogQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2hhcnQtZm9udCcpWzBdKTtcbiAgICB0bXBDb250ZW50LmNsYXNzTmFtZSA9ICdjaGFydC1mb250LWF4aXMnO1xuICAgIGNvbnN0IGF4aXNTdHlsZWQ6IENTU1N0eWxlRGVjbGFyYXRpb24gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NoYXJ0LWZvbnQnKVswXSk7XG4gICAgdGhpcy5fZGVmYXVsdExheW91dCA9IHtcbiAgICAgIGhvdmVybW9kZTogJ2Nsb3Nlc3QnLFxuICAgICAgY2xpY2ttb2RlOiAnZXZlbnQnLFxuICAgICAgbWFyZ2luOiB7XG4gICAgICAgIHQ6IDIwLFxuICAgICAgICBsOiAyMCxcbiAgICAgICAgcjogMjAsXG4gICAgICAgIGI6IDIwXG4gICAgICB9LFxuICAgICAgcGFwZXJfYmdjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgIHBsb3RfYmdjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgIGxlZ2VuZDoge1xuICAgICAgICBmb250OiB7XG4gICAgICAgICAgZmFtaWx5OiBsZWdlbmRTdHlsZWQuZm9udEZhbWlseSxcbiAgICAgICAgICBzaXplOiBsZWdlbmRTdHlsZWQuZm9udFNpemUsXG4gICAgICAgICAgY29sb3I6IGxlZ2VuZFN0eWxlZC5jb2xvclxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeGF4aXM6IHtcbiAgICAgICAgYXV0b21hcmdpbjogdHJ1ZSxcbiAgICAgICAgdGlja2ZvbnQ6IHtcbiAgICAgICAgICBmYW1pbHk6IGF4aXNTdHlsZWQuZm9udEZhbWlseSxcbiAgICAgICAgICBzaXplOiBheGlzU3R5bGVkLmZvbnRTaXplLFxuICAgICAgICAgIGNvbG9yOiBheGlzU3R5bGVkLmNvbG9yXG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgZm9udDoge1xuICAgICAgICAgICAgZmFtaWx5OiBheGlzU3R5bGVkLmZvbnRGYW1pbHksXG4gICAgICAgICAgICBzaXplOiBheGlzU3R5bGVkLmZvbnRTaXplLFxuICAgICAgICAgICAgY29sb3I6IGF4aXNTdHlsZWQuY29sb3JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB5YXhpczoge1xuICAgICAgICBhdXRvbWFyZ2luOiB0cnVlLFxuICAgICAgICB0aWNrZm9udDoge1xuICAgICAgICAgIGZhbWlseTogYXhpc1N0eWxlZC5mb250RmFtaWx5LFxuICAgICAgICAgIHNpemU6IGF4aXNTdHlsZWQuZm9udFNpemUsXG4gICAgICAgICAgY29sb3I6IGF4aXNTdHlsZWQuY29sb3JcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBmb250OiB7XG4gICAgICAgICAgICBmYW1pbHk6IGF4aXNTdHlsZWQuZm9udEZhbWlseSxcbiAgICAgICAgICAgIHNpemU6IGF4aXNTdHlsZWQuZm9udFNpemUsXG4gICAgICAgICAgICBjb2xvcjogYXhpc1N0eWxlZC5jb2xvclxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZvbnQ6IHtcbiAgICAgICAgZmFtaWx5OiBnbG9iYWxTdHlsZWQuZm9udEZhbWlseSxcbiAgICAgICAgc2l6ZTogZ2xvYmFsU3R5bGVkLmZvbnRTaXplLFxuICAgICAgICBjb2xvcjogZ2xvYmFsU3R5bGVkLmNvbG9yXG4gICAgICB9LFxuICAgICAgYmFyZ2FwOiBwYXJzZUZsb2F0KGF4aXNTdHlsZWQubWFyZ2luID8gYXhpc1N0eWxlZC5tYXJnaW4ucmVwbGFjZSgncHgnLCAnJykgOiAnMTAnKSAvIDEwMCxcbiAgICAgIGJhcmdyb3VwZ2FwOiBwYXJzZUZsb2F0KGF4aXNTdHlsZWQucGFkZGluZyA/IGF4aXNTdHlsZWQucGFkZGluZy5yZXBsYWNlKCdweCcsICcnKSA6ICcxMCcpIC8gMTAwXG4gICAgfTtcbiAgICB0aGVtZUNvbnRlbnQucmVtb3ZlQ2hpbGQodG1wQ29udGVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldExheW91dChsYXlvdXQ/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2xheW91dCkgdGhpcy5fbGF5b3V0ID0gdGhpcy5fZGVmYXVsdExheW91dDtcbiAgICBpZiAodGhpcy5fbGF5b3V0KSB7XG4gICAgICBpZiAodGhpcy5ncm91cFRyYWNlcyAmJiAhdGhpcy5fbGF5b3V0LmdyaWQpIHtcbiAgICAgICAgbGV0IHJvdyA9IDAsXG4gICAgICAgICAgY29sdW1uID0gMDtcbiAgICAgICAgdGhpcy5ncm91cFRyYWNlcy5mb3JFYWNoKChncnBUcmFjZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHJvdyA9IHJvdyA8IGdycFRyYWNlcy5yb3dQb3NpdGlvbiA/IGdycFRyYWNlcy5yb3dQb3NpdGlvbiA6IHJvdztcbiAgICAgICAgICBjb2x1bW4gPSBjb2x1bW4gPCBncnBUcmFjZXMuY29sdW1uUG9zaXRpb24gPyBncnBUcmFjZXMuY29sdW1uUG9zaXRpb24gOiBjb2x1bW47XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9sYXlvdXQuZ3JpZCA9IHsgcm93czogTnVtYmVyKHJvdykgKyAxLCBjb2x1bW5zOiBOdW1iZXIoY29sdW1uKSArIDEsIHBhdHRlcm46ICdpbmRlcGVuZGVudCcgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2xheW91dC5sZWdlbmQgPSAhIXRoaXMubGVnZW5kO1xuICAgICAgaWYgKHRoaXMubGVnZW5kKSB7XG4gICAgICAgIHRoaXMuX2xheW91dC5sZWdlbmQgPSB7IC4uLnRoaXMuX2xheW91dC5sZWdlbmQsIC4uLnRoaXMubGVnZW5kLmdldExlZ2VuZFBsb3RseSgpIH07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wYWxldHRlQ29uZmlnICYmIHRoaXMucGFsZXR0ZUNvbmZpZy5jb2xvcldheSkge1xuICAgICAgICB0aGlzLl9sYXlvdXQuY29sb3J3YXkgPSB0aGlzLnBhbGV0dGVDb25maWcuY29sb3JXYXk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxheW91dCkge1xuICAgICAgdGhpcy5tZXJnZV9vcHRpb25zKHRoaXMuX2xheW91dCwgbGF5b3V0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhY2VzICYmIHRoaXMudHJhY2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy50cmFjZXNcbiAgICAgICAgLm1hcCgodHJhY2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gdHJhY2UuZ2V0UGxvdGx5VHJhY2UoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigodHJhY2UpID0+ICEhdHJhY2UpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ncm91cFRyYWNlcyAmJiB0aGlzLmdyb3VwVHJhY2VzLmxlbmd0aCkge1xuICAgICAgbGV0IGRhdGFzOiBBcnJheTxvYmplY3Q+ID0gW107XG4gICAgICBsZXQgbmJHcnAgPSAxO1xuICAgICAgdGhpcy5ncm91cFRyYWNlcy5mb3JFYWNoKChncnBUcmFjZTogR3JvdXBUcmFjZXNDb21wb25lbnQpID0+IHtcbiAgICAgICAgZGF0YXMgPSBbXG4gICAgICAgICAgLi4uZGF0YXMsXG4gICAgICAgICAgLi4uZ3JwVHJhY2UuZ2V0VHJhY2VzKCkubWFwKCh0cikgPT4ge1xuICAgICAgICAgICAgdHIueGF4aXMgPSAneCcgKyBuYkdycDtcbiAgICAgICAgICAgIHRyLnlheGlzID0gJ3knICsgbmJHcnA7XG4gICAgICAgICAgICB0ci5sZWdlbmRncm91cCA9ICdncm91cCcgKyBuYkdycDtcbiAgICAgICAgICAgIHJldHVybiB0cjtcbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgICAgICBuYkdycCsrO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRhdGEgPSBkYXRhcztcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAocGxvdGx5UmVhZHkkIHwgYXN5bmMpIHtcbiAgPHBsb3RseS1wbG90ICNwbG90IFtkYXRhXT1cImRhdGFcIiBbbGF5b3V0XT1cImxheW91dFwiIFtjb25maWddPVwiY29uZmlnXCIgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiIChwbG90bHlDbGljayk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XG4gIDwvcGxvdGx5LXBsb3Q+XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TraceComponent } from './directives/trace.component';\nimport { GroupTracesComponent } from './directives/groupTrace.component';\nimport { LegendComponent } from './directives/legend.component';\nimport { ChartComponent } from './chart.component';\nimport { PlotlyViaCDNModule, PlotlyService } from 'angular-plotly.js';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@finastra/angular-components/core\";\nexport class ChartModule {\n    constructor(lazyLoadScriptService) {\n        lazyLoadScriptService.load('plotly.js', 'Plotly').subscribe((plotly) => {\n            PlotlyService.setPlotly(plotly);\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ChartModule, deps: [{ token: i1.LazyloadScriptService }], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: ChartModule, imports: [CommonModule, PlotlyViaCDNModule, ChartComponent, GroupTracesComponent, LegendComponent, TraceComponent], exports: [ChartComponent, GroupTracesComponent, LegendComponent, TraceComponent] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ChartModule, imports: [CommonModule, PlotlyViaCDNModule, ChartComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ChartModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule, PlotlyViaCDNModule, ChartComponent, GroupTracesComponent, LegendComponent, TraceComponent],\n                    exports: [ChartComponent, GroupTracesComponent, LegendComponent, TraceComponent]\n                }]\n        }], ctorParameters: () => [{ type: i1.LazyloadScriptService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhcnQvc3JjL2NoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQU10RSxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFZLHFCQUE0QztRQUN0RCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3JFLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQUxVLFdBQVc7K0dBQVgsV0FBVyxZQUhaLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGNBQWMsYUFDdkcsY0FBYyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxjQUFjOytHQUVwRSxXQUFXLFlBSFosWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWM7OzJGQUcvQyxXQUFXO2tCQUp2QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQztvQkFDbEgsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFjZUNvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aXZlcy90cmFjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JvdXBUcmFjZXNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZ3JvdXBUcmFjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3RpdmVzL2xlZ2VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbG90bHlWaWFDRE5Nb2R1bGUsIFBsb3RseVNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXBsb3RseS5qcyc7XG5pbXBvcnQgeyBMYXp5bG9hZFNjcmlwdFNlcnZpY2UgfSBmcm9tICdAZmluYXN0cmEvYW5ndWxhci1jb21wb25lbnRzL2NvcmUnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUGxvdGx5VmlhQ0ROTW9kdWxlLCBDaGFydENvbXBvbmVudCwgR3JvdXBUcmFjZXNDb21wb25lbnQsIExlZ2VuZENvbXBvbmVudCwgVHJhY2VDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQ2hhcnRDb21wb25lbnQsIEdyb3VwVHJhY2VzQ29tcG9uZW50LCBMZWdlbmRDb21wb25lbnQsIFRyYWNlQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDaGFydE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKGxhenlMb2FkU2NyaXB0U2VydmljZTogTGF6eWxvYWRTY3JpcHRTZXJ2aWNlKSB7XG4gICAgbGF6eUxvYWRTY3JpcHRTZXJ2aWNlLmxvYWQoJ3Bsb3RseS5qcycsICdQbG90bHknKS5zdWJzY3JpYmUoKHBsb3RseSkgPT4ge1xuICAgICAgUGxvdGx5U2VydmljZS5zZXRQbG90bHkocGxvdGx5KTtcbiAgICB9KTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYXN0cmEtYW5ndWxhci1jb21wb25lbnRzLWNoYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhcnQvZmluYXN0cmEtYW5ndWxhci1jb21wb25lbnRzLWNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}