{"version":3,"file":"inet-visualize.mjs","sources":["../../../projects/visualize-lib/src/lib/chart/model/chart-custom.ts","../../../projects/visualize-lib/src/lib/layout-common/layout-common-constants.ts","../../../projects/visualize-lib/src/lib/layout-common/slickgrid-custom.ts","../../../projects/visualize-lib/src/lib/chart/constants/constants.ts","../../../projects/visualize-lib/src/lib/chart/chart.service.ts","../../../projects/visualize-lib/src/lib/dialog/dialog-action.ts","../../../projects/visualize-lib/src/lib/dialog/modal-content.directive.ts","../../../projects/visualize-lib/src/lib/dialog/modal-action.directive.ts","../../../projects/visualize-lib/src/lib/dialog/modal-header.directive.ts","../../../projects/visualize-lib/src/lib/dialog/confirm-dialog.component.ts","../../../projects/visualize-lib/src/lib/dialog/confirm-dialog.component.html","../../../projects/visualize-lib/src/lib/chart/chart-delete/chart-delete.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-delete/chart-delete.component.html","../../../projects/visualize-lib/src/lib/core/store/actions/navigation.action.ts","../../../projects/visualize-lib/src/lib/chart/chart-publish-dialog/chart-publish-dialog.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-publish-dialog/chart-publish-dialog.component.html","../../../projects/visualize-lib/src/lib/chart/model/chart.ts","../../../projects/visualize-lib/src/lib/dataset/dataset.service.ts","../../../projects/visualize-lib/src/lib/share/share.service.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/toolbar-top-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/btn-top-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/toolbar-bottom-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/btn-bottom-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/right-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/grid-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/pagination-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/bulk-select-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/grid-view-layout/grid-view-layout.component.ts","../../../projects/visualize-lib/src/lib/layout-common/grid-view-layout/grid-view-layout.component.html","../../../projects/visualize-lib/src/lib/layout-common/grid-empty-layout/grid-empty-layout.component.ts","../../../projects/visualize-lib/src/lib/layout-common/grid-empty-layout/grid-empty-layout.component.html","../../../projects/visualize-lib/src/lib/core/store/actions/rightbar.action.ts","../../../projects/visualize-lib/src/lib/core/models/feature.ts","../../../projects/visualize-lib/src/lib/core/store/selectors/template.selector.ts","../../../projects/visualize-lib/src/lib/core/store/actions/chart-bind.action.ts","../../../projects/visualize-lib/src/lib/common/uniqueArray.js","../../../projects/visualize-lib/src/lib/core/utils/get-column-chart.ts","../../../projects/visualize-lib/src/lib/layout-common/right-bar/right-bar.component.ts","../../../projects/visualize-lib/src/lib/layout-common/right-bar/right-bar.component.html","../../../projects/visualize-lib/src/lib/model/chart.ts","../../../projects/visualize-lib/src/lib/chart/pipe/chart-filter-organ.pipe.ts","../../../projects/visualize-lib/src/lib/chart/pipe/get-url-image.pipe.ts","../../../projects/visualize-lib/src/lib/chart/pipe/get-name-share.ts","../../../projects/visualize-lib/src/lib/chart/chart-share-right-bar/chart-share-right-bar.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-share-right-bar/chart-share-right-bar.component.html","../../../projects/visualize-lib/src/lib/chart/right-bar/chart-right-bar.component.ts","../../../projects/visualize-lib/src/lib/chart/right-bar/chart-right-bar.component.html","../../../projects/visualize-lib/src/lib/chart/chart-list/chart-list.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-list/chart-list.component.html","../../../projects/visualize-lib/src/lib/core/store/actions/data-send.action.ts","../../../projects/visualize-lib/src/lib/chart/model/template.ts","../../../projects/visualize-lib/src/lib/chart/delete-dialog/delete-dialog.component.ts","../../../projects/visualize-lib/src/lib/chart/delete-dialog/delete-dialog.component.html","../../../projects/visualize-lib/src/lib/layout-common/directive/content-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/action-view-layout/action-view-layout.component.ts","../../../projects/visualize-lib/src/lib/layout-common/action-view-layout/action-view-layout.component.html","../../../projects/visualize-lib/src/lib/chart/dataset-select/get-name-dataset-display.pipe.ts","../../../projects/visualize-lib/src/lib/chart/dataset-select/dataset-select.component.ts","../../../projects/visualize-lib/src/lib/chart/dataset-select/dataset-select.component.html","../../../projects/visualize-lib/src/lib/chart/chart-add/chart-add.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-add/chart-add.component.html","../../../projects/visualize-lib/src/lib/chart/model/data-language.ts","../../../projects/visualize-lib/src/lib/core/store/actions/error.action.ts","../../../projects/visualize-lib/src/lib/core/store/selectors/rightbar.selector.ts","../../../projects/visualize-lib/src/lib/core/store/selectors/data-send.selector.ts","../../../projects/visualize-lib/src/lib/core/utils/convert-params-submit.ts","../../../projects/visualize-lib/src/lib/core/store/selectors/publish.selector.ts","../../../projects/visualize-lib/src/lib/layout-common/search-string.directive.ts","../../../projects/visualize-lib/src/lib/chart/chart-select/chart-select.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-select/chart-select.component.html","../../../projects/visualize-lib/src/lib/chart/chart-explore/schema-keyvalue.pipe.ts","../../../projects/visualize-lib/src/lib/chart/chart-explore/chart-explore.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-explore/chart-explore.component.html","../../../projects/visualize-lib/src/lib/core/store/actions/publish.action.ts","../../../projects/visualize-lib/src/lib/core/store/selectors/chart-bind.selectors.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/navigation-center-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/directive/toolbar-center-template.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/center-view-layout/center-view-layout.component.ts","../../../projects/visualize-lib/src/lib/layout-common/center-view-layout/center-view-layout.component.html","../../../projects/visualize-lib/src/lib/chart/chart-center/chart-center.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-center/chart-center.component.html","../../../projects/visualize-lib/src/lib/layout-common/view-data-chart/view-data-chart.component.ts","../../../projects/visualize-lib/src/lib/layout-common/view-data-chart/view-data-chart.component.html","../../../projects/visualize-lib/src/lib/chart/chart-html-template/chart-html-template.fuctions.ts","../../../projects/visualize-lib/src/lib/common/index.ts","../../../projects/visualize-lib/src/lib/chart/model/chart-action.ts","../../../projects/visualize-lib/src/lib/chart/pipe/html.pipe.ts","../../../projects/visualize-lib/src/lib/chart/chart-mapping/chart-mapping.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-mapping/chart-mapping.component.html","../../../projects/visualize-lib/src/lib/chart/popover-wrapper/popover-wrapper.component.ts","../../../projects/visualize-lib/src/lib/common/formatDate.js","../../../projects/visualize-lib/src/lib/chart/pipe/filter-format.pipe.ts","../../../projects/visualize-lib/src/lib/chart/pipe/check-type-pipe.pipe.ts","../../../projects/visualize-lib/src/lib/chart/filter-popover/filter-popover.component.ts","../../../projects/visualize-lib/src/lib/chart/filter-popover/filter-popover.component.html","../../../projects/visualize-lib/src/lib/chart/chart-html-template/chart-html-template.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-html-template/chart-html-template.component.html","../../../projects/visualize-lib/src/lib/chart/chart-custom/convert-formdata.ts","../../../projects/visualize-lib/src/lib/chart/chart-custom/chart-custom.functions.ts","../../../projects/visualize-lib/src/lib/chart/model/metric.ts","../../../projects/visualize-lib/src/lib/chart/pipe/metric-format.pipe.ts","../../../projects/visualize-lib/src/lib/chart/metric-popover/metric-popover.component.ts","../../../projects/visualize-lib/src/lib/chart/metric-popover/metric-popover.component.html","../../../projects/visualize-lib/src/lib/chart/chart-custom-bar/chart-custom-bar.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-custom-bar/chart-custom-bar.component.html","../../../projects/visualize-lib/src/lib/chart/alias-popover/alias-popover.component.ts","../../../projects/visualize-lib/src/lib/chart/alias-popover/alias-popover.component.html","../../../projects/visualize-lib/src/lib/chart/chart-custom-table/chart-custom-table.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-custom-table/chart-custom-table.component.html","../../../projects/visualize-lib/src/lib/chart/chart-bar-v2/chart-bar-v2.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-bar-v2/chart-bar-v2.component.html","../../../projects/visualize-lib/src/lib/chart/chart-mixed/chart-mixed.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-mixed/chart-mixed.component.html","../../../projects/visualize-lib/src/lib/chart/enums/chart.enums.ts","../../../projects/visualize-lib/src/lib/chart/chart-candlestick/chart-candlestick.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-candlestick/chart-candlestick.component.html","../../../projects/visualize-lib/src/lib/chart/chart-custom/chart-custom.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-custom/chart-custom.component.html","../../../projects/visualize-lib/src/lib/utils/fullscreen.ts","../../../projects/visualize-lib/src/lib/share/share-right-bar/share-right-bar.component.ts","../../../projects/visualize-lib/src/lib/share/share-right-bar/share-right-bar.component.html","../../../projects/visualize-lib/src/lib/chart/chart-mapping-view/chart-mapping-view.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-mapping-view/chart-mapping-view.component.html","../../../projects/visualize-lib/src/lib/chart/chart-create-template/chart-create-template.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-create-template/chart-create-template.component.html","../../../projects/visualize-lib/src/lib/chart/chart-routing.module.ts","../../../projects/visualize-lib/src/lib/layout-common/time-ago.service.ts","../../../projects/visualize-lib/src/lib/layout-common/time-ago.pipe.ts","../../../projects/visualize-lib/src/lib/layout-common/numberic.directive.ts","../../../projects/visualize-lib/src/lib/layout-common/filter-datatype.pipe.ts","../../../projects/visualize-lib/src/lib/layout-common/name-datatype.pipe.ts","../../../projects/visualize-lib/src/lib/layout-common/layout-common.module.ts","../../../projects/visualize-lib/src/lib/common/dashboard-common.module.ts","../../../projects/visualize-lib/src/lib/dialog/dialog.module.ts","../../../projects/visualize-lib/src/lib/core/store/selectors/error.selector.ts","../../../projects/visualize-lib/src/lib/core/store/actions/schemas.actions.ts","../../../projects/visualize-lib/src/lib/share/iframe-view/iframe-view.component.ts","../../../projects/visualize-lib/src/lib/share/iframe-view/iframe-view.component.html","../../../projects/visualize-lib/src/lib/chart/chart-view/chart-view.component.ts","../../../projects/visualize-lib/src/lib/chart/chart-view/chart-view.component.html","../../../projects/visualize-lib/src/lib/share/list-my-share/list-my-share.component.ts","../../../projects/visualize-lib/src/lib/share/list-my-share/list-my-share.component.html","../../../projects/visualize-lib/src/lib/share/list-share-for-me/list-share-for-me.component.ts","../../../projects/visualize-lib/src/lib/share/list-share-for-me/list-share-for-me.component.html","../../../projects/visualize-lib/src/lib/share/chart-share-delete/chart-share-delete.component.ts","../../../projects/visualize-lib/src/lib/share/chart-share-delete/chart-share-delete.component.html","../../../projects/visualize-lib/src/lib/share/share-list/share-list.component.ts","../../../projects/visualize-lib/src/lib/share/share-list/share-list.component.html","../../../projects/visualize-lib/src/lib/share/view-shared/view-shared.component.ts","../../../projects/visualize-lib/src/lib/share/view-shared/view-shared.component.html","../../../projects/visualize-lib/src/lib/share/view-share-for-me/view-share-for-me.component.ts","../../../projects/visualize-lib/src/lib/share/view-share-for-me/view-share-for-me.component.html","../../../projects/visualize-lib/src/lib/share/shared-center/shared-center.component.ts","../../../projects/visualize-lib/src/lib/share/shared-center/shared-center.component.html","../../../projects/visualize-lib/src/lib/share/share-routing.module.ts","../../../projects/visualize-lib/src/lib/share/svg-icon/svg-icon.component.ts","../../../projects/visualize-lib/src/lib/share/svg-icon/svg-icon.component.html","../../../projects/visualize-lib/src/lib/share/share.module.ts","../../../projects/visualize-lib/src/lib/directive/snake.directive.ts","../../../projects/visualize-lib/src/lib/chart/chart.module.ts","../../../projects/visualize-lib/src/lib/visualize-lib.service.ts","../../../projects/visualize-lib/src/lib/visualize-lib.component.ts","../../../projects/visualize-lib/src/lib/core/store/state/document.state.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/navigation.reducer.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/error.reducer.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/rightbar.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/data-send.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/publish.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/chart-bind.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/schemas.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/actions/template.actions.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/template.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/actions/cart.actions.ts","../../../projects/visualize-lib/src/lib/core/utils/uniqueArray.js","../../../projects/visualize-lib/src/lib/core/store/reducers/cart.reducers.ts","../../../projects/visualize-lib/src/lib/core/store/reducers/app.reducers.ts","../../../projects/visualize-lib/src/lib/visualize-lib.module.ts","../../../projects/visualize-lib/src/public-api.ts","../../../projects/visualize-lib/src/inet-visualize.ts"],"sourcesContent":["export interface IColorScheme {\n  id: string;\n  label: string;\n  colors: string[];\n}\n\nexport const colorSchemes: IColorScheme[] = [\n  {\n    id: \"supersetColors\",\n    label: \"Superset Colors\",\n    colors: [\n      \"#1FA8C9\",\n      \"#454E7C\",\n      \"#666666\",\n      \"#5AC189\",\n      \"#FF7F44\",\n      \"#E04355\",\n      \"#FCC700\",\n      \"#A868B7\",\n      \"#3CCCCB\",\n      \"#A38F79\",\n      \"#8FD3E4\",\n      \"#A1A6BD\",\n      \"#ACE1C4\",\n      \"#FEC0A1\",\n      \"#B2B2B2\",\n      \"#EFA1AA\",\n      \"#FDE380\",\n      \"#D3B3DA\",\n      \"#9EE5E5\",\n      \"#D1C6BC\",\n    ],\n  },\n  {\n    id: \"presetColors\",\n    label: \"Preset Colors\",\n    colors: [\n      \"#6BD3B3\",\n      \"#FCC550\",\n      \"#408184\",\n      \"#66CBE2\",\n      \"#EE5960\",\n      \"#484E5A\",\n      \"#FF874E\",\n      \"#03748E\",\n      \"#C9BBAB\",\n      \"#B17BAA\",\n      // Pastels\n      \"#B5E9D9\",\n      \"#FDE2A7\",\n      \"#9FC0C1\",\n      \"#B2E5F0\",\n      \"#F6ACAF\",\n      \"#A4A6AC\",\n      \"#FFC3A6\",\n      \"#81B9C6\",\n      \"#E4DDD5\",\n      \"#D9BDD5\",\n    ],\n  },\n  {\n    id: \"lyftColors\",\n    label: \"Lyft Colors\",\n    colors: [\n      \"#EA0B8C\",\n      \"#6C838E\",\n      \"#29ABE2\",\n      \"#33D9C1\",\n      \"#9DACB9\",\n      \"#7560AA\",\n      \"#2D5584\",\n      \"#831C4A\",\n      \"#333D47\",\n      \"#AC2077\",\n    ],\n  },\n  {\n    id: \"googleCategory10c\",\n    label: \"Google Category 10c\",\n    colors: [\n      \"#3366cc\",\n      \"#dc3912\",\n      \"#ff9900\",\n      \"#109618\",\n      \"#990099\",\n      \"#0099c6\",\n      \"#dd4477\",\n      \"#66aa00\",\n      \"#b82e2e\",\n      \"#316395\",\n    ],\n  },\n  {\n    id: \"googleCategory20c\",\n    label: \"Google Category 20c\",\n    colors: [\n      \"#3366cc\",\n      \"#dc3912\",\n      \"#ff9900\",\n      \"#109618\",\n      \"#990099\",\n      \"#0099c6\",\n      \"#dd4477\",\n      \"#66aa00\",\n      \"#b82e2e\",\n      \"#316395\",\n      \"#994499\",\n      \"#22aa99\",\n      \"#aaaa11\",\n      \"#6633cc\",\n      \"#e67300\",\n      \"#8b0707\",\n      \"#651067\",\n      \"#329262\",\n      \"#5574a6\",\n      \"#3b3eac\",\n    ],\n  },\n  {\n    id: \"echarts4Colors\",\n    label: \"ECharts v4.x Colors\",\n    colors: [\n      \"#c23531\",\n      \"#2f4554\",\n      \"#61a0a8\",\n      \"#d48265\",\n      \"#91c7ae\",\n      \"#749f83\",\n      \"#ca8622\",\n      \"#bda29a\",\n      \"#6e7074\",\n      \"#546570\",\n      \"#c4ccd3\",\n    ],\n  },\n  {\n    id: \"echarts5Colors\",\n    label: \"ECharts v5.x Colors\",\n    colors: [\n      \"#5470C6\",\n      \"#91CC75\",\n      \"#FAC858\",\n      \"#EE6666\",\n      \"#73C0DE\",\n      \"#3BA272\",\n      \"#FC8452\",\n      \"#9A60B4\",\n      \"#EA7CCC\",\n    ],\n  },\n  {\n    id: \"d3Category10\",\n    label: \"D3 Category 10\",\n    colors: [\n      \"#1f77b4\",\n      \"#ff7f0e\",\n      \"#2ca02c\",\n      \"#d62728\",\n      \"#9467bd\",\n      \"#8c564b\",\n      \"#e377c2\",\n      \"#7f7f7f\",\n      \"#bcbd22\",\n      \"#17becf\",\n    ],\n  },\n  {\n    id: \"d3Category20\",\n    label: \"D3 Category 20\",\n    colors: [\n      \"#1f77b4\",\n      \"#aec7e8\",\n      \"#ff7f0e\",\n      \"#ffbb78\",\n      \"#2ca02c\",\n      \"#98df8a\",\n      \"#d62728\",\n      \"#ff9896\",\n      \"#9467bd\",\n      \"#c5b0d5\",\n      \"#8c564b\",\n      \"#c49c94\",\n      \"#e377c2\",\n      \"#f7b6d2\",\n      \"#7f7f7f\",\n      \"#c7c7c7\",\n      \"#bcbd22\",\n      \"#dbdb8d\",\n      \"#17becf\",\n      \"#9edae5\",\n    ],\n  },\n  {\n    id: \"d3Category20b\",\n    label: \"D3 Category 20b\",\n    colors: [\n      \"#393b79\",\n      \"#5254a3\",\n      \"#6b6ecf\",\n      \"#9c9ede\",\n      \"#637939\",\n      \"#8ca252\",\n      \"#b5cf6b\",\n      \"#cedb9c\",\n      \"#8c6d31\",\n      \"#bd9e39\",\n      \"#e7ba52\",\n      \"#e7cb94\",\n      \"#843c39\",\n      \"#ad494a\",\n      \"#d6616b\",\n      \"#e7969c\",\n      \"#7b4173\",\n      \"#a55194\",\n      \"#ce6dbd\",\n      \"#de9ed6\",\n    ],\n  },\n  {\n    id: \"d3Category20c\",\n    label: \"D3 Category 20c\",\n    colors: [\n      \"#3182bd\",\n      \"#6baed6\",\n      \"#9ecae1\",\n      \"#c6dbef\",\n      \"#e6550d\",\n      \"#fd8d3c\",\n      \"#fdae6b\",\n      \"#fdd0a2\",\n      \"#31a354\",\n      \"#74c476\",\n      \"#a1d99b\",\n      \"#c7e9c0\",\n      \"#756bb1\",\n      \"#9e9ac8\",\n      \"#bcbddc\",\n      \"#dadaeb\",\n      \"#636363\",\n      \"#969696\",\n      \"#bdbdbd\",\n      \"#d9d9d9\",\n    ],\n  },\n  {\n    id: \"bnbColors\",\n    label: \"Airbnb Colors\",\n    colors: [\n      \"#ff5a5f\",\n      \"#7b0051\",\n      \"#007A87\",\n      \"#00d1c1\",\n      \"#8ce071\",\n      \"#ffb400\",\n      \"#b4a76c\",\n      \"#ff8083\",\n      \"#cc0086\",\n      \"#00a1b3\",\n      \"#00ffeb\",\n      \"#bbedab\",\n      \"#ffd266\",\n      \"#cbc29a\",\n      \"#ff3339\",\n      \"#ff1ab1\",\n      \"#005c66\",\n      \"#00b3a5\",\n      \"#55d12e\",\n      \"#b37e00\",\n      \"#988b4e\",\n    ],\n  },\n];\n\nexport enum Operators {\n  EQUALS = \"EQUALS\",\n  NOT_EQUALS = \"NOT_EQUALS\",\n  LESS_THAN = \"LESS_THAN\",\n  LESS_THAN_OR_EQUAL = \"LESS_THAN_OR_EQUAL\",\n  GREATER_THAN = \"GREATER_THAN\",\n  GREATER_THAN_OR_EQUAL = \"GREATER_THAN_OR_EQUAL\",\n  IN = \"IN\",\n  NOT_IN = \"NOT_IN\",\n  LIKE = \"LIKE\",\n  IS_NOT_NULL = \"IS_NOT_NULL\",\n  IS_NULL = \"IS_NULL\",\n  TIME_RANGE = \"TIME_RANGE\",\n}\n\nexport const operatorsArray = [\n  { value: Operators.EQUALS, name: \"Equal to (=)\", operation: \"==\" },\n  { value: Operators.NOT_EQUALS, name: \"Not equal to (≠)\", operation: \"<>\" },\n  { value: Operators.LESS_THAN, name: \"Less than (<)\", operation: \"<\" },\n  {\n    value: Operators.LESS_THAN_OR_EQUAL,\n    name: \"Less or equal (<=)\",\n    operation: \"<=\",\n  },\n  { value: Operators.GREATER_THAN, name: \"Greater than (>)\", operation: \">\" },\n  {\n    value: Operators.GREATER_THAN_OR_EQUAL,\n    name: \"Greater or equal (>=)\",\n    operation: \">=\",\n  },\n  { value: Operators.IN, name: \"In\", operation: \"IN\" },\n  { value: Operators.NOT_IN, name: \"Not in\", operation: \"NOT IN\" },\n  { value: Operators.LIKE, name: \"Like\", operation: \"LIKE\" },\n  {\n    value: Operators.IS_NOT_NULL,\n    name: \"Is not null\",\n    operation: \"IS NOT NULL\",\n  },\n  { value: Operators.IS_NULL, name: \"Is null\", operation: \"IS NULL\" },\n];\n\nexport const operatorsArrayTime = [\n  { value: Operators.EQUALS, name: \"Equal to (=)\", operation: \"==\" },\n  { value: Operators.LESS_THAN, name: \"Less than (<)\", operation: \"<\" },\n  {\n    value: Operators.LESS_THAN_OR_EQUAL,\n    name: \"Less or equal (<=)\",\n    operation: \"<=\",\n  },\n  { value: Operators.GREATER_THAN, name: \"Greater than (>)\", operation: \">\" },\n  {\n    value: Operators.GREATER_THAN_OR_EQUAL,\n    name: \"Greater or equal (>=)\",\n    operation: \">=\",\n  },\n  {\n    value: Operators.IS_NOT_NULL,\n    name: \"Is not null\",\n    operation: \"IS NOT NULL\",\n  },\n  { value: Operators.IS_NULL, name: \"Is null\", operation: \"IS NULL\" },\n  { value: Operators.TIME_RANGE, name: \"Time range\", operation: \"\" },\n];\n\nexport interface FilterColumn {\n  uuid?: string;\n  column: string;\n  columnType: string;\n  operator: string;\n  operatorid: string;\n  comparator: any;\n  fromDate?: number;\n  toDate?: number;\n  valueDate?: number;\n  name?: string;\n}\n\nexport interface ISelectMetadata {\n  value: string;\n  name: string;\n  type: string;\n}\n\nexport enum ColumnDataType {\n  NUMBER = \"NUMBER\",\n  INT = \"INT\",\n  DATE = \"DATE\",\n  LONG = \"LONG\",\n  DOUBLE = \"DOUBLE\",\n  FLOAT = \"FLOAT\",\n  STRING = \"STRING\",\n  CHAR = \"CHAR\",\n  VARCHAR = \"VARCHAR\",\n  BOOLEAN = \"BOOLEAN\",\n  INT64 = \"INT64\",\n}\n\nexport interface IOperator {\n  value: string;\n  name: string;\n  operation: string;\n}\n\nexport interface IEvaluateFactor {\n  title?: string;\n  revenue: string;\n  revenueUnit?: string;\n  plan?: string;\n  planTitle?: string;\n  planUnit?: string;\n  achieve?: string;\n  achieveTitle?: string;\n  compare?: string;\n  compareTitle?: string;\n  organization?: string;\n  date?: any;\n  filters?: FilterColumn[];\n  row_limit?: number;\n}\n\nexport interface IEvaluateCustomize {\n  fontsizeTitle: number;\n  fontsizeRevenue: number;\n  fontsizePlan: number;\n  fontsizeTitlePlan: number;\n  fontsizeText: number;\n  colorAchieve: string;\n  colorPlan: string;\n  colorCompare: string;\n  colorText: string;\n}\n\nexport interface ITargetsFactor {\n  title?: string;\n  imgUri?: string;\n  unit?: string;\n  organization?: string;\n  titleAchieve?: string;\n  achieve: number;\n}\nexport const dataDefault: ITargetsFactor = {\n  title: \"GRDP bình quân đầu người\",\n  imgUri: \"\",\n  unit: \"USD/người\",\n  organization: \"Cục thống kê\",\n  titleAchieve: \"Kế hoạch: 8.500\",\n  achieve: 6.769,\n};\n\nexport interface ITargetsCustomize {\n  viz_type: string;\n  colorScheme: string | string[];\n  fontsizeTitle: number;\n  fontsizeAchieve: number;\n  fontsizeText: number;\n  widthImg: number;\n  heightImg: number;\n}\n\nexport enum EVizType {\n  HTML_TEMPLATE = \"chart_html_template\",\n  BAR_COMPARE = \"echarts_timeseries_bar_compare\",\n  TABLE_CUSTOM = \"table_custom\",\n  BAR_V2 = \"dist_bar_v2\",\n  MIXED = \"mixed\",\n  CANDLESTICK= 'candlestick'\n}\n\nexport const dataEC = {\n  title: \"Tổng thu ngành du lịch\",\n  achieve: {\n    metric: 125.29,\n    text: \"nghìn tỉ\",\n  },\n  plan: {\n    metric: 120,\n    text: \"nghìn tỉ\",\n  },\n  planTitle: \"Kế hoạch\",\n  achievePercent: {\n    metric: 139.21,\n    text: \"kế hoạch lũy kế tháng\",\n  },\n  compareToTSPOLY: {\n    metric: 39.9,\n    text: \"So với cùng kỳ năm trước\",\n  },\n  organization: \"Sở du lịch\",\n  date: \"9-2023\",\n};\n\nexport interface IInfoFactor {\n  title?: string;\n  titleTarget?: string;\n  numberTotal?: number;\n  numberTarget?: number;\n}\n\nexport interface IInfoCustomize {\n  viz_type: string;\n  colorScheme: string[] | string;\n  fontsizeNumber: number;\n  fontsizeTitle: number;\n}\n\nexport const dataInfo: IInfoFactor = {\n  title: \"Exceeded plan\",\n  titleTarget: \"EXECUTIVE SUPERVISION TARGETS IN 2023\",\n  numberTarget: 18,\n  numberTotal: 24,\n};\n\nexport interface IDataSource {\n  table: string;\n  type: string;\n  category: string;\n}\n\nexport interface IFormDataSubmit {\n  form_data?: string;\n  formData?: string;\n  queries?: string;\n  datasource?: IDataSource | string;\n  result_format?: string;\n  result_type?: string;\n  force?: string;\n}\n\nexport type KeyValue = { [k: string]: string | any };\n\nexport interface IResEvaluate {\n  elements: KeyValue[];\n}\n\nexport interface IResolve {\n  queriesData: KeyValue | any;\n  formData: KeyValue | any;\n  type?: string;\n}\n\nexport interface IParamsSaveChart {\n  name: string;\n  title: string;\n  desc: string;\n  dsType: string;\n  dsCategory: string;\n  dsTable: string;\n  type: string;\n  typeName: string;\n  thumbnailUri: string;\n  attribute: string;\n  fields?: string;\n  queryContext: string;\n  uuid?: string;\n}\n\nexport interface ISelect {\n  value: string;\n  name: string;\n}\n\nexport const timeGrain: ISelect[] = [\n  { value: \"\", name: \"Original value\" },\n  { value: \"PT1S\", name: \"Second\" },\n  { value: \"PT1M\", name: \"Minute\" },\n  { value: \"PT1H\", name: \"Hour\" },\n  { value: \"P1D\", name: \"Day\" },\n  { value: \"P1W\", name: \"Week\" },\n  { value: \"P1M\", name: \"Month\" },\n  { value: \"P3M\", name: \"Quarter\" },\n  { value: \"P1Y\", name: \"Year\" },\n];\n\nexport interface IColumn {\n  filterable: boolean;\n  groupby: boolean;\n  is_certified: boolean;\n  column_name: string;\n  type: string;\n  id: number;\n  type_generic: number;\n  is_dttm: boolean;\n}\n\nexport interface IMetric {\n  expressionType: string;\n  column: IColumn;\n  aggregate: string;\n  sqlExpression: null;\n  isNew: boolean;\n  datasourceWarning: boolean;\n  hasCustomLabel: boolean;\n  label: string;\n}\n\nexport interface IFilter {\n  col: string;\n  colType: string;\n  op: string;\n  val: any;\n  fromDate?: number;\n  toDate?: number;\n}\n\nexport interface ICustomBarFactor {\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  row_limit: string;\n}\n\nexport interface ICustomBarCustomize {\n  colorScheme: string;\n  show_legend: boolean;\n  dataZoom: boolean;\n}\n\nexport interface IBarV2Factor {\n  group_by: string[];\n  row_limit: string;\n  compare: boolean;\n}\n\nexport interface IBarV2Customize {\n  colorScheme: string;\n  show_legend: boolean;\n  dataZoom: boolean;\n  x_ticks_layout: string;\n  orientation: string;\n}\n\nexport interface IMixedFactor {\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  left_axis: string;\n}\n\nexport interface IMixedCustomize {\n  colorScheme: string;\n  show_legend: boolean;\n  dataZoom: boolean;\n  left_y_axis_title: string;\n  right_y_axis_title: string;\n  top_x_axis_title: string;\n  bottom_x_axis_title: string;\n}\n\nexport interface IQuery {\n  groupby: string[];\n  row_limit: number;\n}\nexport interface IQueryB {\n  groupby_b: string[];\n  row_limit_b: number;\n}\n\nexport interface IAliasColumn {\n  column: string;\n  alias: string;\n  uuid: string;\n  type: string;\n}\n\nexport interface ITableCustomCustomize {\n  background_head: string;\n  color_head: string;\n  pagination: boolean;\n  page_size: number | string;\n}\n\nexport interface IFormDataTableCustom {\n  columns: IAliasColumn[];\n  background_head: string;\n  color_head: string;\n  pagination: boolean;\n  page_size: number | string;\n  filters: FilterColumn[];\n}\n\nexport interface IQueriesTableCustom {\n  columns: string[];\n  row_limit: number;\n  filter: IFilter[];\n}\n","import {GridOption} from \"angular-slickgrid\";\r\nimport { EVizType } from \"../chart/model/chart-custom\";\r\nimport {Router} from \"@angular/router\";\r\n\r\nexport const ACCEPT_FILE = ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-excel', 'application/json', 'text/csv']\r\nexport const ALL = 'Tất cả';\r\nexport const STORAGE = 'storage';\r\nexport const SQL_LAB = 'slqlab';\r\nexport const LAKE = 'virt_lake';\r\nexport const FILE = 'file';\r\nexport const TYPE_DATASET = [{name: 'Storage', value: STORAGE}, {\r\n  name: 'SQL Lab',\r\n  value: SQL_LAB\r\n}, {name: 'Virtual Lake', value: LAKE}];\r\nexport const TYPE_DATASET_SEARCH = [{name: ALL, value: ''}].concat(TYPE_DATASET);\r\nexport const LIST_CATEGORY = [\r\n  {\r\n    industry: \"Công nghệ\",\r\n    industryImage: \"congnghe\"\r\n  },\r\n  {\r\n    industry: \"Giáo dục\",\r\n    industryImage: \"giaoduc\"\r\n  },\r\n  {\r\n    industry: \"Cơ sở hạ tầng\",\r\n    industryImage: \"cosohatang\"\r\n  },\r\n  {\r\n    industry: \"Kinh tế thương mại\",\r\n    industryImage: \"kinhtethuongmai\"\r\n  },\r\n  {\r\n    industry: \"Môi trường\",\r\n    industryImage: \"moitruong\"\r\n  },\r\n  {\r\n    industry: \"Năng lượng\",\r\n    industryImage: \"nangluong\"\r\n  },\r\n  {\r\n    industry: \"Nông nghiệp\",\r\n    industryImage: \"nongnghiep\"\r\n  },\r\n  {\r\n    industry: \"Lao động\",\r\n    industryImage: \"laodong\"\r\n  },\r\n  {\r\n    industry: \"Tài chính\",\r\n    industryImage: \"taichinh\"\r\n  },\r\n  {\r\n    industry: \"Xã hội\",\r\n    industryImage: \"xahoi\"\r\n  },\r\n  {\r\n    industry: \"Y tế\",\r\n    industryImage: \"yte\",\r\n  },\r\n  {\r\n    industry: \"Địa phương\",\r\n    industryImage: \"diaphuong\"\r\n  }\r\n]\r\n\r\nexport interface ColumnsData {\r\n  uuid?: string;\r\n  name?: string;\r\n  datatype?: string;\r\n  valTemp?: string\r\n}\r\n\r\nexport interface DashBoardSuperset {\r\n  uuid?: string,\r\n  check?: boolean,\r\n  name?: string,\r\n  designContent?: string,\r\n  creatorUname?: string,\r\n  creatorName?: string,\r\n  createdDate?: string | number,\r\n  lastModifiedDate?: number | string,\r\n  lastModifierName?: string,\r\n  lastModifierUname?: string,\r\n  published?: boolean,\r\n  organId?: string,\r\n  owners?: string,\r\n  statusCus?: string,\r\n  avatarLink?: string,\r\n}\r\n\r\nexport interface DatasetSuperset {\r\n  uuid?: string,\r\n  check?: boolean,\r\n  name?: string,\r\n  type?: string,\r\n  sourceType?: string,\r\n  sourceUuid?: string,\r\n  creatorUname?: string,\r\n  creatorName?: string,\r\n  createdDate?: string | number,\r\n  lastModifiedDate?: number | string,\r\n  lastModifierName?: string,\r\n  lastModifierUname?: string,\r\n  organId?: string,\r\n}\r\n\r\nexport interface QueryData {\r\n  uuid: string,\r\n  brief: string,\r\n  compile: string,\r\n  created: number | string,\r\n  creator: string,\r\n  design: string,\r\n  expired: number,\r\n  grantt: any[],\r\n  hashtag: any[],\r\n  hubUUID: string,\r\n  hubname: string,\r\n  hubtype: string,\r\n  lastUpdate: number | string,\r\n  modifier: string,\r\n  name: string,\r\n  organId: string,\r\n  params: any[],\r\n  published: boolean\r\n  recordNo: number\r\n  schema: any\r\n  type: string,\r\n}\r\n\r\nexport interface StorageData {\r\n  brief: string,\r\n  collection: CollectionData[] | any[],\r\n  created: number,\r\n  creator: string,\r\n  lastUpdate: number,\r\n  name: string,\r\n  organId: string,\r\n  recordNo: number,\r\n  uuid: string,\r\n  industry: string,\r\n}\r\n\r\nexport interface CollectionData {\r\n  attribute: CollectionAttribute[] | any[],\r\n  analytics: string,\r\n  brief: string,\r\n  created: number,\r\n  creator: string,\r\n  lastUpdate: number,\r\n  name: string,\r\n  organId: string,\r\n  record: number,\r\n  storageID: string,\r\n  opendataID: string,\r\n  uuid: string,\r\n  backupID: string,\r\n  backupRecord: number,\r\n  type: string,\r\n  commitor: string,\r\n  committed: number,\r\n  contentID: string,\r\n  count: number,\r\n  published: boolean,\r\n  community: boolean,\r\n  expired: number,\r\n  mergeprocess: boolean,\r\n  warehouse: boolean,\r\n}\r\n\r\nexport interface CollectionAttribute {\r\n  description: string,\r\n  in: string,\r\n  name: string,\r\n  required: boolean,\r\n  type: string,\r\n}\r\n\r\nexport interface HubData {\r\n  attrRefID: string,\r\n  attributes: any[]\r\n  brief: string,\r\n  created: number | string,\r\n  creator: string,\r\n  lastUpdate: number | string,\r\n  modifier: string,\r\n  name: string,\r\n  organId: string,\r\n  published: boolean\r\n  type: string,\r\n  uuid: string,\r\n}\r\n\r\nexport interface HubDatasource {\r\n  brief: string,\r\n  compile: string,\r\n  contentID: string,\r\n  created: number | string,\r\n  creator: string,\r\n  design: string,\r\n  expired: number | string,\r\n  grantt: any[]\r\n  hashtag: any[]\r\n  hubUUID: string,\r\n  hubname: string,\r\n  hubtype: string,\r\n  lastUpdate: number | string,\r\n  modifier: string,\r\n  name: string,\r\n  organId: string,\r\n  params: []\r\n  published: true\r\n  recordNo: 180\r\n  schema: any\r\n  type: string,\r\n  uuid: string,\r\n}\r\n\r\nexport interface DashboardData {\r\n  chartUuids: string[];\r\n  chartUuidsStr: string;\r\n  createdDate: number;\r\n  creatorName: string;\r\n  creatorUname: string;\r\n  designContent: string;\r\n  lastModifiedDate: number;\r\n  lastModifierName: string;\r\n  lastModifierUname: string;\r\n  name: string;\r\n  organId: string;\r\n  published: boolean;\r\n  uuid: string;\r\n}\r\n\r\nexport interface DatasetData {\r\n  aggregateFuncs: string[];\r\n  dataset: DatasetDetail;\r\n  schema: any;\r\n}\r\n\r\nexport interface DatasetDetail {\r\n  cacheTimeout?: number;\r\n  category?: string;\r\n  collUuid?: string;\r\n  contentID?: string;\r\n  createdDate?: number;\r\n  creatorName?: string;\r\n  creatorUname?: string;\r\n  desc?: string;\r\n  lastModifiedDate?: number;\r\n  lastModifierName?: string;\r\n  lastModifierUname?: string;\r\n  name?: string;\r\n  organId?: string;\r\n  sourceType?: string;\r\n  sourceUuid?: string;\r\n  uuid?: string;\r\n  sourceTypeName?: string;\r\n  sourceUuidName?: string;\r\n  collUuidName?: string;\r\n}\r\n\r\nexport const GridOptionConstant = ((containerId: string, idProperty?: string, message?: string): GridOption => {\r\n  return {\r\n    headerRowHeight: 0,\r\n    rowHeight: 37,\r\n    autoResize: {\r\n      containerId: containerId || 'container-id',\r\n      bottomPadding: 7\r\n    },\r\n    datasetIdPropertyName: idProperty || 'uuid',\r\n    enableAutoResize: true,\r\n    enableSorting: true,\r\n    enableFiltering: true,\r\n    enableAutoSizeColumns: true,\r\n    enableGridMenu: false,\r\n    enableHeaderMenu: false,\r\n    enableContextMenu: false,\r\n    enableColumnPicker: false,\r\n    enableCellNavigation: true,\r\n    emptyDataWarning: {\r\n      message: message || 'Không có dữ liệu để hiển thị',\r\n      messageKey: 'VISUALIZE.CHART.FIELD.NO_DATA_DISPLAY',\r\n      className: 'message-empty',\r\n      leftViewportMarginLeft: 0,\r\n      rightViewportMarginLeft: 0,\r\n    },\r\n    enableHeaderButton: true,\r\n  }\r\n})\r\n\r\n\r\nexport const OnTemplate = (chartItem: any, router: Router, arr: any[]) => {\r\n  switch (chartItem.type) {\r\n    case EVizType.HTML_TEMPLATE:\r\n    case EVizType.BAR_COMPARE:\r\n    case EVizType.TABLE_CUSTOM:\r\n    case EVizType.BAR_V2: \r\n    case EVizType.MIXED:  \r\n    case EVizType.CANDLESTICK: \r\n    router.navigate(arr[0], {\r\n    queryParams: {\r\n    uuid: chartItem.uuid\r\n    },\r\n    });\r\n    break;\r\n    default:\r\n      router.navigate(arr[1])\r\n      break;\r\n  }\r\n}\r\n","import {TranslateService} from \"@ngx-translate/core\";\r\nimport {SlickGrid} from \"angular-slickgrid\";\r\n\r\nexport class SlickgridCustom {\r\n  component: any;\r\n  tooltipGrid: any;\r\n\r\n  constructor(component) {\r\n    this.component = component;\r\n    // this.onResizeHideTooltip();\r\n  }\r\n\r\n  onResizeHideTooltip() {\r\n    window.addEventListener('resize', function (event) {\r\n      $('.ui-tooltip').remove();\r\n      $('.ui-helper-hidden-accessible').remove()\r\n    }, true)\r\n  }\r\n\r\n  renderRowGrid(isSelect: boolean) {\r\n    let domSelect = $('.grid-canvas .ui-widget-content.slick-row').children()\r\n    isSelect ? domSelect.addClass('selected') : domSelect.removeClass('selected');\r\n  }\r\n\r\n  slickRowGrid() {\r\n    $('.slick-viewport').scroll(() => {\r\n      this.setClass();\r\n    });\r\n    this.setClass();\r\n  }\r\n\r\n  setClass() {\r\n    let domSelect = $('.grid-canvas .slick-row-button');\r\n    Array.from(domSelect).forEach((__select) => {\r\n      let __domSelect = $(__select);\r\n      let __domRow = __domSelect.closest('.ui-widget-content.slick-row').children();\r\n      __domSelect.hasClass('selected-all-grid-svg') ? __domRow.addClass('selected') : ''\r\n    })\r\n  }\r\n\r\n  renderHeaderGrid(classIconHeader: string) {\r\n    let domHeader = $('.icon-btn-header .slick-header-button');\r\n    domHeader.hasClass('select-grid-svg') ? domHeader.removeClass('select-grid-svg').addClass(classIconHeader) : ''\r\n    domHeader.hasClass('selected-all-grid-svg') ? domHeader.removeClass('selected-all-grid-svg').addClass(classIconHeader) : ''\r\n    domHeader.hasClass('selected-grid-svg') ? domHeader.removeClass('selected-grid-svg').addClass(classIconHeader) : ''\r\n  }\r\n\r\n  getParentRow(target: any) {\r\n    return $(target).closest('.ui-widget-content.slick-row').children()\r\n  }\r\n\r\n  autoResize(idGrid: string) {\r\n    let __grid = $('#' + idGrid)\r\n    let __heightDefault = $('.gridPane').height();\r\n    let __heightHeader = __grid.find('.gridPane .slick-pane.slick-pane-header.slick-pane-left').height() - 1;\r\n    let __heightPane = __grid.parent().height() || __heightDefault;\r\n    let __heightScroll = __heightPane - __heightHeader;\r\n    __grid.find('.gridPane').css({'height': __heightPane});\r\n    __grid.find('.gridPane .slickgrid-container.ui-widget').css({'height': __heightPane});\r\n    __grid.find('.gridPane .slick-pane.slick-pane-top.slick-pane-left').css({'height': __heightScroll});\r\n    __grid.find('.gridPane .slick-pane .slick-viewport.slick-viewport-top.slick-viewport-left').css({'height': __heightScroll});\r\n    __grid.find('.gridPane .slick-pane .slick-viewport .grid-canvas.grid-canvas-top.grid-canvas-left').css({'height': __heightScroll});\r\n  }\r\n\r\n  getNameAction(target: any): string {\r\n    let __target = $(target);\r\n    let __btnCurrent: any;\r\n    if (__target.is('button.slick-button') || __target.is('span') || __target.is('i.fa') || __target.is('span.fa')) {\r\n      __btnCurrent = __target.closest('button.slick-button')\r\n      return __btnCurrent.attr('data-action')\r\n    }\r\n  }\r\n\r\n  resetSelectGrid() {\r\n    let domHeader = $('.slick-pane .slick-header-button');\r\n    domHeader.hasClass('selected-all-grid-svg') ? domHeader.removeClass('selected-all-grid-svg').addClass('select-grid-svg') : ''\r\n    domHeader.hasClass('selected-grid-svg') ? domHeader.removeClass('selected-grid-svg').addClass('select-grid-svg') : ''\r\n  }\r\n\r\n  tooltipAction(delay: number = 100) {\r\n    setTimeout(() => {\r\n      const tooltip = $('[data-toggle=tooltip]');\r\n      // @ts-ignore\r\n      tooltip.tooltip();\r\n      tooltip.on('click', () => {\r\n        $('.ui-tooltip').remove();\r\n      })\r\n      tooltip.hover((e) => {\r\n        this.actionTooltip(e.target);\r\n      }, () => {\r\n        $('.ui-tooltip').remove();\r\n      })\r\n      $('.ui-helper-hidden-accessible').remove()\r\n    }, delay);\r\n  };\r\n\r\n  scrollTooltip(delay: number = 100) {\r\n    let slickViewport;\r\n    let slickViewContent;\r\n    let intervalTooltip;\r\n    let count: number = 0;\r\n    const stopInterval = () => {\r\n      clearInterval(intervalTooltip);\r\n      count = 0;\r\n      this.tooltipAction(delay);\r\n    }\r\n    const setViewport = () => {\r\n      slickViewport = $('.slick-viewport');\r\n      slickViewContent = slickViewport.find('.ui-widget-content.slick-row');\r\n      count++;\r\n      if (count > 5 || slickViewport.length > 0) {\r\n        stopInterval()\r\n      }\r\n      if (count <= 2 && slickViewport.length > 0) {\r\n        slickViewport.on('scroll', () => {\r\n          if (slickViewContent.length > 20) {\r\n            this.tooltipAction(delay * 2);\r\n          }\r\n        });\r\n      }\r\n    }\r\n    intervalTooltip = setInterval(setViewport, 200);\r\n    this.translateMessageEmpty(delay);\r\n  }\r\n\r\n  translateMessageEmpty(delay: number = 100) {\r\n    if (!!this.component.grid) {\r\n      const grid: SlickGrid = this.component.grid;\r\n      let translate: TranslateService = grid?.getOptions()?.i18n;\r\n      if (!translate) return;\r\n      let messageKey = translate.instant(grid.getOptions().emptyDataWarning.messageKey)\r\n      const idGrid = grid.getOptions().autoResize.containerId;\r\n      setTimeout(() => {\r\n        let gridDom = document.getElementById(idGrid);\r\n        if (!!gridDom) {\r\n          gridDom.querySelectorAll('.message-empty').forEach(_item => {\r\n            _item.innerHTML = messageKey;\r\n          })\r\n        }\r\n      }, delay)\r\n    }\r\n  }\r\n\r\n  checkDomNoButton(domEle: any) {\r\n    const __arrTagName: string[] = ['i', 'span', 'div', 'p'];\r\n    return __arrTagName.includes(domEle.prop(\"tagName\").toLowerCase());\r\n  }\r\n\r\n  actionTooltip(ele: any) {\r\n    const domEle = $(ele);\r\n    const __tooltip = $('.ui-tooltip');\r\n    let __domEle: any = this.checkDomNoButton(domEle) ? domEle.closest('[data-toggle=tooltip]') : domEle;\r\n    let __position: DOMRect = __domEle.length > 0 ? __domEle.get(0).getBoundingClientRect() : {};\r\n    let __placement: string = __domEle.length > 0 ? __domEle.get(0).getAttribute('data-placement') : '';\r\n    let __content = __tooltip.find('.ui-tooltip-content') || null;\r\n    let __posContent = __content.get(__content.length - 1).getBoundingClientRect() || null;\r\n    let __paddingContent: number = (__posContent.height - __content.height()) / 2;\r\n    let __leftArrow: string = 'left: 3px'\r\n    /*set tooltip position, class*/\r\n    switch (__placement) {\r\n      case 'bottom':\r\n        __tooltip.addClass('tooltip fade bs-tooltip-bottom show');\r\n        break;\r\n      case 'top':\r\n      default:\r\n        let __top: number = __position.y - (__position.height + __content.height() + __paddingContent) - 2;\r\n        if (this.checkDomNoButton(__domEle)) {\r\n          __top -= 3;\r\n          __leftArrow = 'left: -1px'\r\n        }\r\n        __tooltip.css({'top': __top})\r\n        __tooltip.addClass('tooltip fade bs-tooltip-top show');\r\n        break;\r\n    }\r\n    __content.addClass('tooltip-inner');\r\n    /*set tooltip position arrow*/\r\n    let __check: boolean = (__posContent.width + __position.left - window.innerWidth) > 0;\r\n    __tooltip.prepend(`<div class=\"arrow\" style=\"${__check ? 'right: 19px' : __leftArrow} \"></div>`);\r\n  }\r\n}\r\n","export const SEND_LOAD_DONE: string = 'send_load_done';\nexport const SEND_DATASOURCE: string = 'send_datasource';\nexport const SEND_SERVICE_LOAD_DONE: string = 'send_service_load_done';\nexport const SEND_PARAMS_CHART: string = 'send_params_chart';\nexport const SEND_QUERIES: string = 'send_queries';\nexport const SEND_DATA_RENDER_CHART = 'send_data_render_chart';\nexport const SEND_LOAD_DONE_DATA_EIDIT: string = 'send_load_done_data_edit';\nexport const SEND_DATA_QUERIES_EDIT: string = 'send_data_queries_edit';\nexport const SEND_PARAMS_LOAD_DATA_COL: string = 'send_params_load_data_col';\nexport const SEND_CHARTS_LINE: string = 'send_charts_line';\nexport const SEND_CHARTS_DECKGL: string = 'send_charts_deckgl';\nexport const SEND_CHARTS_MULTI: string = 'send_charts_multi';\nexport const SEND_DATA_COL: string = 'send_data_col';\nexport const SEND_DATA_SAMPLES: string = 'send_date_samples';\nexport const SEND_CHANGE_PAGE_NUMBER: string = 'send_change_page_number';\nexport const VIEW_ALL_CHARTS: string = 'view_all_charts';\nexport const ANALYTICS_APP: string = 'analytics_app';\nexport const SEND_PARAMS_SAVE: string = 'send_params_save';\nexport const SEND_LANGUAGE: string = 'send_language';\nexport const SEND_DATA_TO_VISUAL_CHART: string = 'send_data_to_chart_visual';\nexport const URL_SUPERSET: string = 'https://analytics-dev.inetcloud.vn';\nexport const CHART: string = 'chart';\nexport const MAPPING: string = 'mapping';\nexport const CUSTOM: string = 'custom';\nexport const LIST: string = 'list';\nexport const CHART_PLUGIN: string = 'chart-plugin';\nexport const VIEW: string = 'view';\nexport const TEMPLATE: string = 'template';\nexport const EXPLORE: string = 'explore';\nexport const ADD: string = 'add';\nexport const EXPLORE_JSON: string = 'explore_json';\nexport const DATA: string = 'data';\nexport const PUBLISH: string = 'publish';\nexport const VIEW_PUBLISH: string = 'view_publish';\nexport const INET_CHART_TEMPLATE_HTML: string = 'inet-chart-template-html'\nexport const CHART_HTML_TEMPLATE:string = 'chart_html_template'\n\n","import { Injectable } from \"@angular/core\";\nimport { CoreService, HttpClientService, iNet } from \"inet-core\";\nimport { map, Observable } from \"rxjs\";\nimport { IParamsCategories, ISearchParamTemplate } from \"./model/template\";\nimport { IFormDataSubmit } from \"./model/chart-custom\";\nimport { IParamsGraphDesign } from \"./model/html-template\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class ChartService {\n  url = {\n    chartsList: iNet.getPUrl(\"graph/element/list\"),\n    loadChart: iNet.getPUrl(\"analytics/dashboard/charts/load\"),\n    getOneDataset: iNet.getPUrl(\"opendataset/metadata\"),\n    deleteChart: iNet.getPUrl(\"analytics/dashboard/charts/delete\"),\n    updateChart: iNet.getPUrl(\"analytics/dashboard/charts/update\"),\n    addChart: iNet.getPUrl(\"analytics/dashboard/charts/add\"),\n    searchChart: iNet.getPUrl(\"analytics/dashboard/charts/search\"),\n    dataVisualize: iNet.getPUrl(\"analytics/dashboard/chartvizs/dataviz\"),\n    expVisualize: iNet.getPUrl(\"analytics/dashboard/chartvizs/expdataviz\"),\n    loadDataset: iNet.getPUrl(\"opendataset/list\"),\n    types: iNet.getPUrl(\"opendataset/types\"),\n    list_category: iNet.getPUrl(\"opendataset/category\"),\n    sourceView: iNet.getPUrl(\"opendataset/sourceview\"),\n    update_fieldID: iNet.getPUrl(\"analytics/dashboard/charts/updateinfo\"),\n    publish_chart: iNet.getPUrl(\"analytics/dashboard/charts/publish\"),\n    un_publish_chart: iNet.getPUrl(\"analytics/dashboard/charts/unpublish\"),\n\n    //share chart\n    list_share_organ: iNet.getPUrl(\n      \"analytics/dashboard/chartshared/fbychartuuid\"\n    ),\n    publish_organ: iNet.getPUrl(\"analytics/dashboard/chartshared/add\"),\n    un_publish_organ: iNet.getPUrl(\"analytics/dashboard/chartshared/delete\"),\n    account_exist: iNet.getPUrl(\"calista/account/exist\"),\n    organ_load_search: iNet.getPUrl(\"plugin/organization/search\"),\n\n    //publish template\n    addNewTemplate: iNet.getPUrl(\"analytics/dashboard/templates/add\"),\n    updateTemplate: iNet.getPUrl(\"analytics/dashboard/templates/update\"),\n    searchTemplate: iNet.getPUrl(\"analytics/dashboard/templates/search\"),\n    fCategories: iNet.getPUrl(\"analytics/dashboard/templates/fcategory\"),\n    loadTemplate: iNet.getPUrl(\"analytics/dashboard/templates/load\"),\n\n    //custom chart\n    customdataviz: iNet.getPUrl(\"analytics/dashboard/chartvizs/customdataviz\"),\n\n    //graph design\n    graphDesignAdd: iNet.getPUrl(\"analytics/cgraphelems/add\"),\n    graphDesignCustomLoad: iNet.getPUrl(\"analytics/cgraphelems/load\"),\n    graphDesignLoad: iNet.getPUrl(\"analytics/cgraphelems/loadbyuuid\"),\n    graphDesignUpdate: iNet.getPUrl(\"analytics/cgraphelems/updateattr\"),\n    graphDesignDelete: iNet.getPUrl(\"analytics/cgraphelems/delete\"),\n  };\n\n  constructor(private http: HttpClientService, private coreService: CoreService) {}\n\n  getChartsList(): Observable<any> {\n    return this.http.postJSON(this.url.chartsList, { element: \"CHART\" });\n  }\n\n  loadChart(param: any): Observable<any> {\n    return this.http.postJSON(this.url.loadChart, param);\n  }\n\n  getOneDataset(param: any): Observable<any> {\n    return this.http.postJSON(this.url.getOneDataset, param);\n  }\n\n  deleteChart(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.deleteChart, params);\n  }\n\n  chartUpdate(params: any): Observable<any> {\n    return this.http.postJSON(this.url.updateChart, params);\n  }\n\n  getDataVisualize(params: any): Observable<any> {\n    return this.http.postJSON(this.url.dataVisualize, params);\n  }\n\n  getExpVisualize(params: any): Observable<any> {\n    return this.http.postJSON(this.url.expVisualize, params);\n  }\n\n  addChart(params: any): Observable<any> {\n    return this.http.postJSON(this.url.addChart, params);\n  }\n\n  searchChart(params?: any): Observable<any> {\n    return this.http.getJSON(this.url.searchChart, params);\n  }\n\n  typesDataset(): Observable<any> {\n    return this.http.postJSON(this.url.types);\n  }\n\n  getCategories(type: string): Observable<any> {\n    return this.http.postJSON(this.url.list_category, {\n      pageSize: -1,\n      type: type,\n    });\n  }\n\n  getTables(params: any): Observable<any> {\n    const { totalPage, ...searchParams } = params;\n    return this.http.postJSON(this.url.loadDataset, searchParams);\n  }\n\n  getChartsLine(): Observable<any> {\n    return this.http.postJSON(this.url.searchChart, {\n      type: \"line\",\n      pageSize: -1,\n    });\n  }\n\n  getChartsDeckGL(): Observable<any> {\n    return this.http.postJSON(this.url.searchChart, {\n      types:\n        \"deck_polygon;deck_arc;deck_grid;deck_screengrid;deck_path;deck_scatter;deck_hex\",\n      pageSize: -1,\n    });\n  }\n\n  getSourceView(params: any): Observable<any> {\n    return this.http.postJSON(this.url.sourceView, params);\n  }\n\n  updateFieldID(param: any) {\n    return this.http.postJSON(this.url.update_fieldID, param);\n  }\n\n  listShareOrgan(params): Observable<any> {\n    return this.http.postJSON(this.url.list_share_organ, params);\n  }\n\n  publishOrgan(params): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.publish_organ, params);\n  }\n\n  unPublishOrgan(params): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.un_publish_organ, params);\n  }\n\n  checkAccount(params: any): Observable<any> {\n    return this.http.postJSON(this.url.account_exist, params);\n  }\n\n  loadOrganSearch(params: any): Observable<any> {\n    return this.http.postJSON(this.url.organ_load_search, params);\n  }\n\n  publishChart(chartUuid: any): Observable<any> {\n    return this.http.postJSON(this.url.publish_chart, { chartUuid });\n  }\n  unPublishChart(chartUuid: any): Observable<any> {\n    return this.http.postJSON(this.url.un_publish_chart, { chartUuid });\n  }\n\n  //publish template\n  addNewTemplate(params: any): Observable<any> {\n    return this.http.postJSON(this.url.addNewTemplate, params);\n  }\n  updateTemplate(params: any): Observable<any> {\n    return this.http.postJSON(this.url.updateTemplate, params);\n  }\n  searchListTemplate(param: ISearchParamTemplate): Observable<any> {\n    return this.http.postJSON(this.url.searchTemplate, param);\n  }\n  getListCategory(params: IParamsCategories): Observable<any> {\n    return this.http.postJSON(this.url.fCategories, params);\n  }\n  loadTemplate(uuid: string): Observable<any> {\n    return this.http.postJSON(this.url.loadTemplate, { uuid });\n  }\n\n  //custom chart\n  getDataCustom(params: IFormDataSubmit): Observable<any> {\n    return this.http.postJSON(this.url.customdataviz, params);\n  }\n\n  //graph design\n  graphDesignAdd(param: IParamsGraphDesign): Observable<any> {\n    return this.http.postJSON(this.url.graphDesignAdd, param);\n  }\n  graphDesignUpdate(param: IParamsGraphDesign): Observable<any> {\n    return this.http.postJSON(this.url.graphDesignUpdate, param);\n  }\n  graphDesignCustomLoad(uuid: string): Observable<any> {\n    return this.http.postJSON(this.url.graphDesignCustomLoad, { uuid });\n  }\n  graphDesignLoad(uuid: string): Observable<any> {\n    return this.http.postJSON(this.url.graphDesignLoad, { uuid });\n  }\n  graphDesignDelete(uuid: string): Observable<any> {\n    return this.http.postJSON(this.url.graphDesignDelete, { uuid });\n  }\n\n  //check has module\n  hasModule(module: string): Observable<boolean> {\n    return new Observable<boolean>((observer) => {\n      this.coreService.getSystemApplication().subscribe((apps) => {\n        observer.next(\n          apps.some((app) => {\n            return app?.module === module;\n          })\n        );\n      });\n    });\n  }\n}\n","export class DialogAction {\n    title: string;\n    iconCls: string;\n    cls: string;\n    fn?: Function;\n    params?: any;\n\n    constructor(title: string, cls: string, iconCls: string, fn?: Function | undefined, params?: any) {\n        this.title = title;\n        this.cls = cls;\n        this.iconCls = iconCls;\n        if (fn) {\n            this.fn = fn;\n        }\n        if (params) {\n            this.params = params;\n        }\n    }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'ng-template[modalContent]'\n})\nexport class ModalContentDirective {\n\n  constructor(public templateRef: TemplateRef<unknown>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'ng-template[modalAction]'\n})\nexport class ModalActionDirective {\n\n  constructor(public templateRef: TemplateRef<unknown>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'ng-template[modalHeader]'\n})\nexport class ModalHeaderDirective {\n\n  constructor(public templateRef: TemplateRef<unknown>) { }\n\n}\n","import {AfterViewInit, Component, ContentChild, Input, OnInit, TemplateRef, ViewChild} from '@angular/core';\nimport {BsModalService} from 'ngx-bootstrap/modal';\nimport {BsModalRef} from 'ngx-bootstrap/modal/bs-modal-ref.service';\nimport {DialogAction} from \"./dialog-action\";\nimport {Subscription} from \"rxjs\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ModalContentDirective} from \"./modal-content.directive\";\nimport {ModalActionDirective} from \"./modal-action.directive\";\nimport {ModalHeaderDirective} from \"./modal-header.directive\";\nimport {iNet} from \"inet-core\";\n\n@Component({\n    selector: 'app-confirm-dialog',\n    templateUrl: './confirm-dialog.component.html'\n})\nexport class ConfirmDialogComponent implements AfterViewInit {\n    @ViewChild('confirmModal') confirmModal: TemplateRef<any> | undefined;\n    @ContentChild(ModalHeaderDirective) modalHeaderItem!: ModalHeaderDirective;\n    @ContentChild(ModalContentDirective) modalContentItem!: ModalContentDirective;\n    @ContentChild(ModalActionDirective) modalActionItem!: ModalActionDirective;\n\n    @Input() id: string = iNet.generateId();\n    @Input() iconCls: string = '';\n    @Input() title: string = '';\n    @Input() content: string = '';\n    @Input() cls: string = '';\n    @Input() actions: Array<DialogAction> = [];\n    @Input() isNoQuestion: boolean = false;\n    @Input() config: any = {\n        backdrop: true,\n        ignoreBackdropClick: true,\n        class: 'modal-dialog modal-md modal-dialog-centered'\n    };\n    data: any;\n    private modalRef: BsModalRef | undefined;\n    private toolbarTranslations: any;\n    private readonly translateSubscription: Subscription;\n\n\n    constructor(private modalService: BsModalService, private translate: TranslateService) {\n        this.translateSubscription = translate.stream(['TOOLBAR']).subscribe(res => {\n            const {TOOLBAR} = res || {'TOOLBAR': {'CLOSE': 'Close'}};\n            this.toolbarTranslations = TOOLBAR;\n        });\n    }\n\n    ngAfterViewInit() {\n        if (this.getActions().length < 1 && !this.modalActionItem) {\n            const {CLOSE} = this.toolbarTranslations;\n            const closeAction = new DialogAction(CLOSE, 'btn-danger', 'fa fa-check', this.hide);\n            this.setActions([closeAction]);\n        }\n    }\n\n    public hide() {\n        if (!this.modalRef) {\n            return;\n        }\n        this.modalRef.hide();\n    }\n\n    show() {\n        if(this.confirmModal) {\n            this.modalRef = this.modalService.show(this.confirmModal, this.config);\n        }\n    }\n\n    pushAction(action: DialogAction) {\n        this.actions.push(action);\n    }\n\n    setActions(actions: Array<DialogAction>) {\n        this.actions = actions;\n    }\n\n    getActions(): Array<DialogAction> {\n        return this.actions;\n    }\n\n    setData(v: any) {\n        this.data = v;\n    }\n\n    getData(): any {\n        return this.data;\n    }\n\n    getId(): string {\n        return this.id;\n    }\n\n    callFn(fn?: Function, params?: any) {\n        if(fn) {\n            fn.call(this, params);\n        }\n    }\n}\n","<ng-template #confirmModal>\n  <div class=\"p-4\">\n    <div class=\" d-flex flex-column justify-content-center align-items-center text-center position-relative\">\n      <ng-container *ngIf=\"modalHeaderItem; else defaultHeaderBlock\" [ngTemplateOutletContext]=\"{data: data}\"\n                    [ngTemplateOutlet]=\"modalHeaderItem.templateRef\"></ng-container>\n      <ng-template #defaultHeaderBlock>\n        <button (click)=\"hide()\" aria-label=\"Close\" class=\"close pull-right\" style=\"position: absolute;top: 0;right: 0;\"\n                type=\"button\">\n          <span aria-hidden=\"true\">&times;</span>\n        </button>\n        <div class=\"text-muted\" style=\"margin-bottom: 10px;\">\n          <i aria-hidden=\"true\" class=\"{{!!cls ? cls : 'fa fa-trash-o text-danger'}}\" style=\"font-size: 80px;\"></i>\n        </div>\n        <div class=\"lock-warning f-20 font-weight-bold\" style=\"margin-bottom: 10px\">{{title}}</div>\n        <div class=\"lock-brief\">\n          <div [outerHTML]=\"content\"></div>\n          <p *ngIf=\"!isNoQuestion\">{{'VISUALIZE.CHART.FIELD.QUESTION'|translate}}</p>\n        </div>\n      </ng-template>\n    </div>\n    <div class=\" modal-button d-flex w-100 justify-content-end\" style=\"padding: 20px 0px 0 0 ;\">\n      <ng-container *ngIf=\"modalActionItem\" [ngTemplateOutletContext]=\"{data: data}\"\n                    [ngTemplateOutlet]=\"modalActionItem.templateRef\"></ng-container>\n      <button (click)=\"callFn(action?.fn, action?.params)\" *ngFor=\"let action of actions\" class=\"btn btn-sm {{action.cls}}\"\n              type=\"button\"><i class=\"{{action.iconCls}}\"></i> {{action.title}}</button>\n    </div>\n  </div>\n</ng-template>\n\n","import {Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {Subscription} from \"rxjs\";\nimport {ConfirmDialogComponent} from \"inet-ui\";\nimport {ChartItem} from \"../../model/chart\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ErrorMessage, NotificationService} from \"inet-core\";\nimport {ChartService} from \"../chart.service\";\n\n@Component({\n  selector: 'app-chart-delete',\n  templateUrl: './chart-delete.component.html',\n  styleUrls: ['./chart-delete.component.scss']\n})\nexport class ChartDeleteComponent implements OnInit, OnDestroy {\n  @ViewChild(\"deleteModal\", {static: false}) confirmDialog!: ConfirmDialogComponent;\n  @Output() deleteSuccess = new EventEmitter<any>();\n  msgContentDel: string = '';\n\n  private delActionsTranslations: any = {};\n  private translateSubscription: Subscription;\n\n  constructor(private translateService: TranslateService,\n              private notification: NotificationService,\n              private chartService: ChartService) {\n    this.translateSubscription = translateService.stream(['VISUALIZE.CHART.FIELD']).subscribe(data => {\n      this.delActionsTranslations = data['VISUALIZE.CHART.FIELD'];\n    })\n  }\n\n  ngOnInit(): void {\n  }\n\n  ngOnDestroy() {\n    this.translateSubscription.unsubscribe();\n  }\n\n  onShowDialog(item: any) {\n    this.confirmDialog.show();\n    this.confirmDialog.setData(item)\n    this.msgContentDel = `${this.delActionsTranslations['ASK_DELETE']} <b>\\\"${item.title|| item.name}\\\"</b>`;\n  }\n  deleteItem() {\n    if (this.confirmDialog) {\n      let params = {uuid: this.confirmDialog.getData().uuid}\n      this.chartService.deleteChart(params).subscribe((results: any) => {\n          this.confirmDialog.hide();\n          if (results.type !== ErrorMessage.TYPE) {\n            this.deleteSuccess.emit();\n            this.notification.showMessage(this.delActionsTranslations['DELETE_CHART_SUCCESS'], 'success',\n              'Visualize');\n          } else {\n            this.notification.showMessage(this.delActionsTranslations['DELETE_CHART_FAIL'], 'error',\n              'Visualize');\n          }\n        }\n      );\n    }\n  }\n}\n","<app-confirm-dialog #deleteModal\n                    [content]=\"msgContentDel | translate\"\n                    [title]=\"'VISUALIZE.CHART.FIELD.DELETE_CHART' | translate\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n      aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"deleteItem()\" class=\"btn btn-sm mx-1 btn-custom btn-danger\"\n             type=\"submit\"><i aria-hidden=\"true\" class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n","import {ActionType, createAction, props} from \"@ngrx/store\";\n\nexport enum ENavigationActions {\n  NAVIGATOR_PUSH = '[Document] Navigator Push Folder',\n  NAVIGATOR_UPDATE = '[Document] Navigator Update Folder',\n  NAVIGATOR_ROLL_BACK = '[Document] Navigator Roll Back',\n  NAVIGATOR_GO_TO = '[Document] Go To',\n  NAVIGATOR_CLEAR = '[Document] Navigator Clear',\n}\n\nexport const navPushFolder = createAction(ENavigationActions.NAVIGATOR_PUSH, props<{ data : any }>());\nexport const navRollBack = createAction(ENavigationActions.NAVIGATOR_ROLL_BACK, props<{ data: any }>());\nexport const navUpdate = createAction(ENavigationActions.NAVIGATOR_UPDATE, props<{ data: any }>());\nexport const navClear = createAction(ENavigationActions.NAVIGATOR_CLEAR);\nexport const navGoTo = createAction(ENavigationActions.NAVIGATOR_GO_TO, props<{ data:  any }>());\n\n\nexport type NavigationAction =\n  | ActionType<typeof navPushFolder> | ActionType<typeof navRollBack> | ActionType<typeof navClear>\n  | ActionType<typeof navGoTo>| ActionType<typeof navUpdate>\n\n;\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { ConfirmDialogComponent } from 'inet-ui';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ChartService } from '../chart.service';\nimport { ErrorMessage, NotificationService } from 'inet-core';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../core/store/state/app.state';\nimport { schemasSelector } from '../../core/store/selectors/schemas.selector';\nimport { ISchemas } from '../../core/store/state/document.state';\n\n@Component({\n  selector: 'app-chart-publish-dialog',\n  templateUrl: './chart-publish-dialog.component.html',\n  styleUrls: ['./chart-publish-dialog.component.scss'],\n})\nexport class ChartPublishDialogComponent {\n  @Output() reload = new EventEmitter<any>();\n  @ViewChild('confirm') confirmDialog: ConfirmDialogComponent;\n  @Input() isViewCenter: boolean = false;\n  cls: string;\n  messageEdit: string;\n  titleEdit: string;\n  formData: any;\n  touchedSubmit: boolean = false;\n  constructor(\n    private translate: TranslateService,\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private store: Store<IAppState>\n  ) {\n  }\n\n  showDialogChange(dataContext: any) {\n    if (!dataContext.sharedUuid && dataContext.editable === undefined) {\n      this.cls = 'fa fa-globe';\n      this.messageEdit = this.translate?.instant(\n        'VISUALIZE.CHART.FIELD.ASK_PUBLISH',\n        { name: dataContext.name }\n      );\n      this.titleEdit = this.translate?.instant(\n        'VISUALIZE.CHART.FIELD.ACTION_PUBLISH'\n      );\n    } else {\n      this.cls = 'fa fa-link';\n\n      let name =\n        dataContext.editable === undefined\n          ? dataContext.name\n          : dataContext.chartName;\n      this.messageEdit = this.translate?.instant(\n        'VISUALIZE.CHART.FIELD.ASK_UN_PUBLISH',\n        { name: name }\n      );\n      this.titleEdit = this.translate?.instant(\n        'VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'\n      );\n    }\n    this.confirmDialog.setData(dataContext);\n    this.confirmDialog.show();\n  }\n\n  confirmChange() {\n    let { sharedUuid, uuid, editable, chartUuid, attribute } =\n      this.confirmDialog.getData();\n    const publish = !(sharedUuid || editable !== undefined);\n    uuid = editable !== undefined ? chartUuid : uuid;\n    const successMessage = publish\n      ? this.translate.instant('VISUALIZE.CHART.FIELD.PUBLISH_SUCCESS')\n      : this.translate.instant('VISUALIZE.CHART.FIELD.UN_PUBLISH_SUCCESS');\n    const errorMessage = publish\n      ? this.translate.instant('VISUALIZE.CHART.FIELD.PUBLISH_FAILD')\n      : this.translate.instant('VISUALIZE.CHART.FIELD.UN_PUBLISH_FAILD');\n\n    const title = 'Visualize';\n\n    this.chartService[publish ? 'publishChart' : 'unPublishChart'](\n      uuid\n    ).subscribe((value) => {\n      this.confirmDialog.hide();\n      if (value.type !== ErrorMessage.TYPE || value === 'success') {\n        this.notification.showMessage(successMessage, 'success', title);\n        this.reload.emit(value);\n        if (value === 'success' && !this.isViewCenter) {\n          this.reload.emit({ chartUuid: uuid, sharedUuid: undefined });\n        }\n      } else {\n        this.notification.showMessage(errorMessage, 'error', title);\n      }\n    });\n  }\n}\n","<app-confirm-dialog #confirm\n                    [cls]=\"cls\"\n                    [content]=\"messageEdit | translate\"\n                    [isNoQuestion]=\"true\"\n                    [title]=\"titleEdit | translate\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n      aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"confirmChange()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\"\n            type=\"submit\"><i aria-hidden=\"true\"\n                             class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n","import { IColumnParam } from \"../../core/utils/get-column-chart\";\nimport * as e from \"express\";\nimport { FilterColumn, IAliasColumn } from \"./chart-custom\";\nimport { MetricColumn } from \"./metric\";\n\nexport enum EVizType {\n  HANDLEBARS = \"handlebars\",\n  BUBBLE = \"bubble\",\n  CAL_HEATMAP = \"cal_heatmap\",\n  HEATMAP = \"heatmap\",\n  PAIRED_TTEST = \"paired_ttest\",\n  BOX_PLOT = \"box_plot\",\n  HISTOGRAM = \"histogram\",\n  HORIZON = \"horizon\",\n  AREA = \"area\",\n  BAR = \"bar\",\n  COMPARE = \"compare\",\n  DUAL_LINE = \"dual_line\",\n  ECHARTS_AREA = \"echarts_area\",\n  ECHARTS_TIMESERIES = \"echarts_timeseries\",\n  ECHARTS_TIMESERIES_BAR = \"echarts_timeseries_bar\",\n  ECHARTS_TIMESERIES_LINE = \"echarts_timeseries_line\",\n  ECHARTS_TIMESERIES_SCATTER = \"echarts_timeseries_scatter\",\n  ECHARTS_TIMESERIES_SMOOTH = \"echarts_timeseries_smooth\",\n  ECHARTS_TIMESERIES_STEP = \"echarts_timeseries_step\",\n  LINE = \"line\",\n  LINE_MULTI = \"line_multi\",\n  MIXED_TIMESERIES = \"mixed_timeseries\",\n  TIME_PIVOT = \"time_pivot\",\n  CHORD = \"chord\",\n  EVENT_FLOW = \"event_flow\",\n  GRAPH_CHART = \"graph_chart\",\n  SANKEY = \"sankey\",\n  BIG_NUMBER = \"big_number\",\n  BIG_NUMBER_TOTAL = \"big_number_total\",\n  BULLET = \"bullet\",\n  FUNNEL = \"funnel\",\n  GAUGE_CHART = \"gauge_chart\",\n  COUNTRY_MAP = \"country_map\",\n  DECK_ARC = \"deck_arc\",\n  DECK_GEOJSON = \"deck_geojson\",\n  DECK_GRID = \"deck_grid\",\n  DECK_HEX = \"deck_hex\",\n  DECK_MULTI = \"deck_multi\",\n  DECK_PATH = \"deck_path\",\n  DECK_POLYGON = \"deck_polygon\",\n  DECK_SCATTER = \"deck_scatter\",\n  DECK_SCREENGRID = \"deck_screengrid\",\n  MAPBOX = \"mapbox\",\n  WORLD_MAP = \"world_map\",\n  PARTITION = \"partition\",\n  PIE = \"pie\",\n  SUNBURST = \"sunburst\",\n  TREE_CHART = \"tree_chart\",\n  TREEMAP = \"treemap\",\n  TREEMAP_V2 = \"treemap_v2\",\n  DIST_BAR = \"dist_bar\",\n  PARA = \"para\",\n  RADAR = \"radar\",\n  ROSE = \"rose\",\n  WORD_CLOUD = \"word_cloud\",\n  PIVOT_TABLE = \"pivot_table\",\n  PIVOT_TABLE_V2 = \"pivot_table_v2\",\n  TABLE = \"table\",\n  TIME_TABLE = \"time_table\",\n  FILTER_BOX = \"filter_box\",\n  HTML_TEMPLATE = \"chart_html_template\",\n  BAR_COMPARE = \"echarts_timeseries_bar_compare\",\n  TABLE_CUSTOM = \"table_custom\",\n  BAR_V2 = \"dist_bar_v2\",\n  MIXED = 'mixed',\n  CANDLESTICK = 'candlestick'\n}\nexport interface IResponse {\n  attribute: any;\n  createdDate: number;\n  creatorName: string;\n  creatorUname: string;\n  desc: string;\n  dsCategory: string;\n  dsTable: string;\n  dsType: string;\n  lastModifiedDate: number;\n  lastModifierName: string;\n  lastModifierUname: string;\n  name: string;\n  organId: string;\n  queryContext: any;\n  sharedUuid: string;\n  thumbnailUri: string;\n  title: string;\n  type: string;\n  typeName: string;\n  uuid: string;\n}\n\nexport interface IMessage {\n  eventName: string;\n  signFrom: string;\n  result: any;\n}\nexport interface IDataset {\n  type: string;\n  category: string;\n  name: string;\n}\nexport interface IMetric {\n  expressionType: string;\n  column: IColumn;\n  aggregate: string;\n  sqlExpression: any;\n  isNew: boolean;\n  datasourceWarning: boolean;\n  hasCustomLabel: boolean;\n  label: string;\n  optionName: string;\n}\nexport interface IFilter {\n  expressionType: string;\n  subject: string;\n  operator: string;\n  operatorId: string;\n  comparator: any;\n  clauxpression: any;\n  isExse: string;\n  sqlEtra: boolean;\n  isNew: boolean;\n  datasourceWarning: boolean;\n  filterOptionName: string;\n}\nexport interface IColumn {\n  filterable: boolean;\n  groupby: boolean;\n  is_certified: boolean;\n  column_name: string;\n  type: string;\n  id: number;\n  is_dttm: boolean;\n}\n\nexport interface ISpatial {\n  type: string;\n  latCol?: string;\n  lonCol?: string;\n  lonlatCol?: string;\n  geohashCol?: string;\n}\n\nexport enum ESpatial {\n  GEOHASH = \"geohash\",\n  LATLONG = \"latlong\",\n  DELIMITED = \"delimited\",\n}\nexport enum EPoint {\n  METRIC = \"metric\",\n  FIX = \"fix\",\n}\n\nexport interface IPoint {\n  type: string;\n  value: any;\n}\n\nexport interface IParamsTemPlate {\n  sourceUuid: string;\n  name: string;\n  module: string;\n  fields: string;\n  desc: string;\n  uuid?: string;\n  category: string;\n}\n\nexport interface IResTemplate {\n  attribute: string;\n  createdDate: number;\n  creatorName: string;\n  creatorUname: string;\n  desc: string;\n  dsCategory: string;\n  dsTable: string;\n  dsType: string;\n  fields: IColumnParam[];\n  forecast: boolean;\n  module: string;\n  name: string;\n  organId: string;\n  queryContext: string;\n  sourceType: string;\n  sourceTypeName: string;\n  sourceUuid: string;\n  type: string;\n  uuid: string;\n  visualize: boolean;\n  category: string;\n}\n\nexport interface IAdhocFilter {\n  col: string;\n  colType: string;\n  op: string;\n  val: any;\n}\n\nexport interface IFormDataPie {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  sort_by_metric: boolean;\n  color_scheme: string;\n  show_labels_threshold: number;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  legendMargin: any;\n  label_type: string;\n  number_format: string;\n  date_format: string;\n  show_labels: boolean;\n  labels_outside: boolean;\n  label_line: boolean;\n  show_total: boolean;\n  outerRadius: number;\n  donut: boolean;\n  innerRadius: number;\n  extra_form_data: any;\n}\n\nexport interface IFormDataChord {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string;\n  columns: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  y_axis_format: string;\n  color_scheme: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataHeatmap {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  all_columns_x: string;\n  all_columns_y: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  sort_by_metric: boolean;\n  linear_color_scheme: string;\n  xscale_interval: number;\n  yscale_interval: number;\n  canvas_image_rendering: string;\n  normalize_across: string;\n  left_margin: string | number;\n  bottom_margin: string | number;\n  y_axis_bounds: any;\n  y_axis_format: string;\n  sort_x_axis: string;\n  sort_y_axis: string;\n  show_legend: boolean;\n  show_perc: boolean;\n  show_values: boolean;\n  normalized: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataSunburst {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metric: IMetric;\n  secondary_metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  color_scheme: string;\n  linear_color_scheme: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataPartition {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  limit: number;\n  order_desc: boolean;\n  contribution: boolean;\n  row_limit: number;\n  time_series_option: string;\n  color_scheme: string;\n  number_format: string;\n  date_time_format: string;\n  partition_limit: number;\n  partition_threshold: number;\n  equal_date_size: boolean;\n  rich_tooltip: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataParallel {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  series: string;\n  metrics: IMetric[];\n  secondary_metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  timeseries_limit_metric: IMetric;\n  order_desc: boolean;\n  show_datatable: boolean;\n  include_series: boolean;\n  linear_color_scheme: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataGauge {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  start_angle: number;\n  end_angle: number;\n  color_scheme: string;\n  font_size: number;\n  number_format: string;\n  value_formatter: string;\n  show_pointer: boolean;\n  animation: boolean;\n  show_axis_tick: boolean;\n  show_split_line: boolean;\n  split_number: number;\n  show_progress: boolean;\n  overlap: boolean;\n  round_cap: boolean;\n  intervals: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataRadar {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  row_limit: string | number;\n  color_scheme: string;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  show_labels: boolean;\n  label_type: string;\n  label_position: string;\n  number_format: string;\n  date_format: string;\n  is_circle: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataTreemapV2 {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metric: IMetric;\n  row_limit: number;\n  adhoc_filters: IFilter[];\n  color_scheme: string;\n  show_labels: boolean;\n  show_upper_labels: boolean;\n  label_type: string;\n  number_format: string;\n  date_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataTreemap {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  row_limit: number;\n  order_desc: boolean;\n  color_scheme: string;\n  treemap_ratio: never;\n  number_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataGraph {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  source: string;\n  target: string;\n  metric: IMetric;\n  source_category: string;\n  target_category: string;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  color_scheme: number;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  legendMargin: null;\n  layout: string;\n  edgeSymbol: string;\n  draggable: boolean;\n  roam: boolean;\n  selectedMode: string;\n  baseNodeSize: number;\n  baseEdgeWidth: number;\n  edgeLength: number;\n  gravity: number;\n  repulsion: number;\n  friction: number;\n  extra_form_data: any;\n}\n\nexport interface IFormDataBigNumberTrend {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  show_timestamp: boolean;\n  show_trend_line: boolean;\n  start_y_axis_at_zero: boolean;\n  color_picker: any;\n  header_font_size: number;\n  subheader_font_size: number;\n  y_axis_format: string;\n  time_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataSankey {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  color_scheme: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataFunnel {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  groupby: string[];\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  sort_by_metric: boolean;\n  color_scheme: string;\n  show_legend: boolean;\n  legendOrientation: string;\n  number_format: string;\n  show_labels: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataRose {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  order_desc: boolean;\n  row_limit: string | number;\n  color_scheme: string;\n  number_format: string;\n  date_time_format: string;\n  rich_tooltip: boolean;\n  rose_area_proportion: boolean;\n  extra_form_data: {};\n}\n\nexport interface IFormDataHistogram {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  all_columns_x: string[];\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  groupby: string[];\n  color_scheme: string;\n  link_length: string | number;\n  show_legend: boolean;\n  normalized: boolean;\n  cumulative: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataTree {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  id: string;\n  parent: string;\n  name: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  layout: string;\n  orient: string;\n  node_label_position: string;\n  child_label_position: string;\n  emphasis: string;\n  symbol: string;\n  symbolSize: number;\n  roam: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataHorizon {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  order_desc: boolean;\n  contribution: boolean;\n  row_limit: number;\n  series_height: string;\n  horizon_color_scale: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataPivotV2 {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  groupbyColumns: string[];\n  groupbyRows: string[];\n  metrics: IMetric[];\n  metricsLayout: string;\n  adhoc_filters: IFilter[];\n  series_limit: number;\n  row_limit: number;\n  order_desc: boolean;\n  aggregateFunction: string;\n  valueFormat: string;\n  date_format: string;\n  rowOrder: string;\n  colOrder: string;\n  conditional_formatting: any[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataTable {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  query_mode: string;\n  groupby: string[];\n  metrics: IMetric[];\n  all_columns: string[];\n  percent_metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  order_by_cols: string[];\n  row_limit: string | number;\n  server_page_length: number;\n  order_desc: boolean;\n  table_timestamp_format: string;\n  show_cell_bars: boolean;\n  color_pn: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataTimeseries {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  groupby: string[];\n  adhoc_filters: IFilter[];\n  limit: number;\n  timeseries_limit_metric: IMetric[];\n  row_limit: number;\n  orientation: string;\n  x_axis_title_margin: number;\n  y_axis_title_margin: number;\n  y_axis_title_position: string;\n  color_scheme: string;\n  only_total: boolean;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  x_axis_time_format: string;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  rich_tooltip: boolean;\n  tooltipTimeFormat: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataBubble {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  series: string;\n  entity: string;\n  x: IMetric;\n  y: IMetric;\n  adhoc_filters: IFilter[];\n  size: IMetric;\n  max_bubble_size: string;\n  color_scheme: string;\n  show_legend: boolean;\n  left_margin: string;\n  x_axis_format: string;\n  x_ticks_layout: string;\n  bottom_margin: string;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataBigNumber {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  subheader: string;\n  header_font_size: number;\n  subheader_font_size: number;\n  y_axis_format: string;\n  time_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataBullet {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  ranges: string;\n  range_labels: string;\n  markers: string;\n  marker_labels: string;\n  marker_lines: string;\n  marker_line_labels: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataArc {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  start_spatial: ISpatial;\n  end_spatial: ISpatial;\n  row_limit: number;\n  filter_nulls: boolean;\n  adhoc_filters: IFilter[];\n  mapbox_style: string;\n  viewport: any;\n  autozoom: boolean;\n  color_picker: any;\n  target_color_picker: any;\n  color_scheme: string;\n  legend_position: string;\n  legend_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataBoxPlot {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  columns: string[];\n  time_grain_sqla: string;\n  datetime_columns_lookup: any;\n  groupby: string[];\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  whiskerOptions: string;\n  x_axis_title_margin: number;\n  y_axis_title_margin: number;\n  y_axis_title_position: string;\n  color_scheme: string;\n  x_ticks_layout: string;\n  number_format: string;\n  date_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataDualLine {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  color_scheme: string;\n  show_legend: boolean;\n  x_axis_format: string;\n  metric: IMetric;\n  y_axis_format: string;\n  y_axis_showminmax: boolean;\n  y_axis_bounds: any[];\n  metric_2: IMetric;\n  y_axis_2_format: string;\n  y_axis_2_showminmax: boolean;\n  y_axis_2_bounds: any[];\n  adhoc_filters: IFilter[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataLine {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  order_desc: boolean;\n  row_limit: number;\n  color_scheme: string;\n  show_brush: string;\n  show_legend: boolean;\n  rich_tooltip: boolean;\n  line_interpolation: string;\n  bottom_margin: string;\n  x_ticks_layout: string;\n  x_axis_format: string;\n  left_margin: string;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataMixed {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  groupby: string[];\n  adhoc_filters: IFilter[];\n  timeseries_limit_metric: IMetric;\n  order_desc: boolean;\n  row_limit: number;\n  truncate_metric: boolean;\n  metrics_b: IMetric[];\n  groupby_b: string[];\n  adhoc_filters_b: IFilter[];\n  timeseries_limit_metric_b: IMetric;\n  order_desc_b: boolean;\n  row_limit_b: number;\n  truncate_metric_b: boolean;\n  x_axis_title_margin: number;\n  y_axis_title_margin: number;\n  y_axis_title_position: string;\n  color_scheme: string;\n  seriesTypeA: string;\n  stackA: boolean;\n  areaA: boolean;\n  show_valueA: boolean;\n  opacityA: number;\n  markerEnabledA: boolean;\n  markerSizeA: number;\n  seriesTypeB: string;\n  stackB: boolean;\n  areaB: boolean;\n  show_valueB: boolean;\n  opacityB: number;\n  markerEnabledB: boolean;\n  markerSizeB: number;\n  yAxisIndexB: number;\n  zoomable: boolean;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  x_axis_time_format: string;\n  xAxisLabelRotation: number;\n  rich_tooltip: boolean;\n  tooltipSortByMetric: boolean;\n  tooltipTimeFormat: string;\n  y_axis_bounds: any[];\n  y_axis_format: string;\n  y_axis_format_secondary: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataGrid {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  spatial: ISpatial;\n  size: IMetric;\n  row_limit: number;\n  filter_nulls: boolean;\n  adhoc_filters: IFilter[];\n  mapbox_style: string;\n  viewport: any;\n  color_picker: any;\n  autozoom: boolean;\n  grid_size: number;\n  extruded: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataScatterPlot {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  spatial: ISpatial;\n  row_limit: number;\n  filter_nulls: boolean;\n  adhoc_filters: IFilter[];\n  mapbox_style: string;\n  viewport: any;\n  autozoom: boolean;\n  point_radius_fixed: IPoint;\n  point_unit: string;\n  min_radius: number;\n  max_radius: number;\n  multiplier: string;\n  color_picker: any;\n  legend_position: string;\n  legend_format: string;\n  color_scheme: string;\n  time_grain_sqla: null | string;\n  granularity: null | string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataHexagon {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  spatial: ISpatial;\n  size: IMetric;\n  row_limit: number;\n  filter_nulls: boolean;\n  adhoc_filters: IFilter[];\n  mapbox_style: string;\n  viewport: any;\n  color_picker: any;\n  autozoom: boolean;\n  grid_size: number;\n  extruded: boolean;\n  js_agg_function: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataPolygon {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  line_column: string;\n  line_type: string;\n  adhoc_filters: IFilter[];\n  metric: IMetric;\n  point_radius_fixed: IPoint;\n  row_limit: number;\n  filter_nulls: boolean;\n  mapbox_style: string;\n  viewport: any;\n  autozoom: boolean;\n  fill_color_picker: any;\n  stroke_color_picker: any;\n  filled: boolean;\n  extruded: boolean;\n  multiplier: number;\n  line_width: number;\n  linear_color_scheme: string;\n  opacity: number;\n  num_buckets: number;\n  toggle_polygons: boolean;\n  legend_position: string;\n  legend_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataScreenGrid {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  spatial: ISpatial;\n  size: IMetric;\n  row_limit: number;\n  filter_nulls: boolean;\n  adhoc_filters: IFilter[];\n  mapbox_style: string;\n  viewport: any;\n  autozoom: boolean;\n  grid_size: number;\n  color_picker: any;\n  extra_form_data: any;\n}\n\nexport interface IFormDataPath {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  line_column: string;\n  line_type: string;\n  row_limit: number;\n  filter_nulls: boolean;\n  adhoc_filters: IFilter[];\n  mapbox_style: string;\n  viewport: any;\n  color_picker: any;\n  line_width: number;\n  reverse_long_lat: boolean;\n  autozoom: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataWorldMap {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  entity: string;\n  country_fieldtype: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  show_bubbles: boolean;\n  secondary_metric: IMetric;\n  max_bubble_size: string;\n  color_picker: any;\n  color_by: string;\n  linear_color_scheme: string;\n  color_scheme: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataEventFlow {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  entity: string;\n  all_columns_x: string;\n  row_limit: number;\n  order_by_entity: boolean;\n  min_leaf_node_event_count: number;\n  adhoc_filters: IFilter[];\n  all_columns: string[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataMulLine {\n  datasource: string;\n  viz_type: string;\n  time_range: string;\n  color_scheme: string;\n  prefix_metric_with_slice_name: boolean;\n  show_legend: boolean;\n  show_markers: boolean;\n  line_interpolation: string;\n  x_axis_label: string;\n  bottom_margin: string;\n  x_ticks_layout: string;\n  x_axis_format: string;\n  x_axis_showminmax: boolean;\n  line_charts: string[];\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  line_charts_2: string[];\n  y_axis_2_format: string;\n  y_axis_2_showminmax: boolean;\n  y_axis_2_bounds: any[];\n  adhoc_filters: IFilter[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataDistBar {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  columns: string[];\n  row_limit: number;\n  order_desc: boolean;\n  color_scheme: string;\n  show_legend: boolean;\n  show_bar_value: boolean;\n  rich_tooltip: boolean;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  bottom_margin: string;\n  x_ticks_layout: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataArea {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  order_desc: boolean;\n  contribution: boolean;\n  row_limit: number;\n  show_brush: string;\n  show_legend: boolean;\n  line_interpolation: string;\n  stacked_style: string;\n  color_scheme: string;\n  rich_tooltip: boolean;\n  show_controls: boolean;\n  bottom_margin: string;\n  x_ticks_layout: string;\n  x_axis_format: string;\n  x_axis_showminmax: boolean;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  y_log_scale: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataTimePivot {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  freq: string;\n  show_legend: boolean;\n  line_interpolation: string;\n  color_picker: any;\n  bottom_margin: string;\n  x_axis_format: string;\n  left_margin: string;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataDeckMul {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  mapbox_style: string;\n  viewport: any;\n  deck_slices: string[];\n  adhoc_filters: IFilter[];\n  extra_form_data: {};\n}\n\nexport interface IFormDataPivot {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  columns: string[];\n  row_limit: number;\n  order_desc: boolean;\n  pandas_aggfunc: string;\n  pivot_margins: boolean;\n  number_format: string;\n  date_format: string;\n  extra_form_data: any;\n}\n\nexport interface IFormDataCalendar {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  domain_granularity: string;\n  subdomain_granularity: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  linear_color_scheme: string;\n  cell_size: number;\n  cell_padding: number;\n  steps: number;\n  y_axis_format: string;\n  x_axis_time_format: string;\n  show_legend: boolean;\n  show_metric_name: boolean;\n  extra_form_data: any;\n}\n\nexport interface IFormDataBar {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  limit: number;\n  timeseries_limit_metric: IMetric[];\n  contribution: boolean;\n  row_limit: number;\n  color_scheme: string;\n  show_brush: string;\n  show_legend: true;\n  show_bar_value: boolean;\n  rich_tooltip: boolean;\n  bar_stacked: boolean;\n  line_interpolation: string;\n  show_controls: boolean;\n  bottom_margin: string;\n  x_axis_label: string;\n  x_ticks_layout: string;\n  x_axis_format: string;\n  x_axis_showminmax: true;\n  reduce_x_ticks: true;\n  y_axis_label: string;\n  left_margin: string;\n  y_axis_showminmax: boolean;\n  y_log_scale: boolean;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  extra_form_data: any;\n}\n\nexport interface IFormDataWordCloud {\n  datasource: string;\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  series: string;\n  metric: IMetric;\n  adhoc_filters: IFilter[];\n  row_limit: number;\n  size_from: number;\n  size_to: number;\n  rotation: string;\n  color_scheme: string;\n  extra_form_data: any;\n  encoding: any;\n}\n\nexport interface IFormDataBarCompare {\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  metrics: IMetric[];\n  groupby: [];\n  adhoc_filters: IAdhocFilter[];\n  filters: IAdhocFilter[];\n  limit: string;\n  row_limit: number;\n  orientation: string;\n  x_axis_title_margin: number;\n  y_axis_title_margin: number;\n  y_axis_title_position: string;\n  color_scheme: string[];\n  only_total: boolean;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  x_axis_time_format: string;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  rich_tooltip: boolean;\n  tooltipTimeFormat: string;\n  extra_form_data: any;\n  granularity: string;\n  granularityType: string;\n  dataZoom: boolean;\n  color_scheme_name: string;\n}\n\nexport interface IFormDataTableCustom {\n  columns: IAliasColumn[];\n  background_head: string;\n  color_head: string;\n  pagination: boolean;\n  page_size: number | string;\n  filters: FilterColumn[];\n}\n\nexport interface IFormDataBarV2 {\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  columns: string[];\n  row_limit: number | string;\n  order_desc: boolean;\n  color_scheme: string[] | string;\n  color_scheme_name: string;\n  show_legend: boolean;\n  rich_tooltip: boolean;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  bottom_margin: string;\n  x_ticks_layout: string;\n  extra_form_data: any;\n  columnMetrics: MetricColumn[];\n  columnFilters: FilterColumn[];\n  dataZoom: boolean;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClientService} from \"inet-core\";\nimport {BehaviorSubject, Observable} from \"rxjs\";\ndeclare let iNet: any;\n@Injectable({\n  providedIn: 'root'\n})\nexport class DatasetService {\n  constructor(private http: HttpClientService) {\n  }\n\n  private url = {\n    load_storages: iNet.getPUrl('opendatass/storage/list'),\n    load_storage_by_id: iNet.getPUrl('opendatass/storage/load'),\n    load_collections: iNet.getPUrl('opendatass/storage/table'),\n    load_collection_by_id: iNet.getPUrl('opendatass/storetable/load'),\n    load_open_query: iNet.getPUrl('opendatass/openquerycate'),\n    load_query: iNet.getPUrl('opendatass/querylist'),\n    load_query_by_id: iNet.getPUrl('opendatass/queryload'),\n    load_lakes: iNet.getPUrl('opendatass/hubdata'),\n    load_lake_by_id: iNet.getPUrl('opendatass/hubload'),\n    load_datasources: iNet.getPUrl('opendatass/lakesrc/list'),\n    load_datasource_by_id: iNet.getPUrl('opendatass/lakesrc/load'),\n    dataset_list: iNet.getPUrl('analytics/dashboard/datasets/search'),\n    dataset_create: iNet.getPUrl('analytics/dashboard/datasets/add'),\n    dataset_update: iNet.getPUrl('analytics/dashboard/datasets/update'),\n    dataset_load_by_id: iNet.getPUrl('analytics/dashboard/datasets/view'),\n    dataset_delete: iNet.getPUrl('analytics/dashboard/datasets/delete'),\n    upload_file: iNet.getPUrl('opendatass/header/upload'),\n    mapping_data: iNet.getPUrl('opendatass/lakesrc/import'),\n\n    view_data: iNet.getPUrl('opendatass/lakesrc/dataview'),\n    storage_dataview: iNet.getPUrl('opendatass/storetable/dataview'),\n  }\n  messageSource = new BehaviorSubject('');\n  currentMessage = this.messageSource.asObservable();\n\n  changeMessage(message: string, isSession: boolean = false) {\n    if (isSession) {\n      this.changeSession(message)\n    }\n    this.messageSource.next(message);\n  }\n\n  changeSession(dataImport: string) {\n    if (!!window.sessionStorage.getItem('dataImport')) {\n      this.deleteSession();\n    }\n    window.sessionStorage.setItem('dataImport', dataImport);\n  }\n\n  get dataImport() {\n    return window.sessionStorage.getItem('dataImport');\n  }\n\n  deleteSession() {\n    window.sessionStorage.removeItem('dataImport');\n  }\n\n  hideLoading() {\n    this.http.hideLoading();\n  }\n\n  showLoading(msg?: string) {\n    this.http.showLoading(msg);\n  }\n\n  convertColumnSchema(schema: any) {\n    let arrColumn: any[] = [];\n    for (const key in schema) {\n      arrColumn.push({name: key, datatype: schema[key]});\n    }\n    return arrColumn;\n  }\n\n  storageList(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_storages, params)\n  }\n\n  storageLoad(params: any): Observable<any> {\n    //this.http.showLoading();\n    return this.http.postJSON(this.url.load_storage_by_id, params)\n  }\n\n  collectionList(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_collections, params)\n  }\n  collectionLoad(params: any): Observable<any> {\n    //this.http.showLoading();\n    return this.http.postJSON(this.url.load_collection_by_id, params)\n  }\n\n  openQueryList(): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_open_query)\n  }\n\n  queryList(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_query, params);\n  }\n  queryLoad(params: any): Observable<any> {\n    return this.http.postJSON(this.url.load_query_by_id, params);\n  }\n  lakeList(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_lakes, params);\n  }\n  lakeLoad(params: any): Observable<any> {\n    //this.http.showLoading();\n    return this.http.postJSON(this.url.load_lake_by_id, params);\n  }\n  datasourceList(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_datasources, params);\n  }\n  datasourceLoad(params: any): Observable<any> {\n    //this.http.showLoading();\n    return this.http.postJSON(this.url.load_datasource_by_id, params);\n  }\n  uploadFile(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.post(this.url.upload_file, params);\n  }\n\n  mappingImport(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.mapping_data, params);\n  }\n\n  datasetList(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.dataset_list, params);\n  }\n\n  datasetCreate(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.dataset_create, params);\n  }\n\n  datasetUpdate(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.dataset_update, params);\n  }\n\n  datasetFindById(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.dataset_load_by_id, params);\n  }\n\n  datasetDelete(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.dataset_delete, params);\n  }\n\n  viewDataSource(params: any) : Observable<any>{\n    this.http.showLoading();\n    return this.http.postJSON(this.url.view_data, params);\n  }\n\n  loadStoreDataView(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.storage_dataview, params)\n  }\n\n  getHeaderIconByType(type: string) {\n    if(!type) {\n      return '';\n    }\n    switch (type?.toUpperCase()) {\n      case 'DOUBLE':\n      case 'FLOAT':\n      case 'LONG':\n      case 'INT':\n        return 'number';\n      case'BOOLEAN':\n        return 'boolean';\n      case 'DATE':\n        return 'date';\n      case 'CHAR':\n        return 'char';\n      case 'STRING':\n      default:\n        return 'string';\n    }\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ErrorMessage, HttpClientService, iNet } from \"inet-core\";\nimport { catchError, from, map, Observable, of, switchMap } from \"rxjs\";\nimport { Clipboard } from \"@angular/cdk/clipboard\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class ShareService {\n  url = {\n    search_chart_my_share: iNet.getPUrl(\n      \"analytics/dashboard/chartshared/sharedbyme\"\n    ),\n    search_chart_to_share: iNet.getPUrl(\n      \"analytics/dashboard/chartshared/sharedtome\"\n    ),\n    un_publish: iNet.getPUrl(\"analytics/dashboard/chartshared/delete\"),\n    load_chart_my_share: iNet.getPUrl(\"analytics/dashboard/chartshared/load\"),\n    load_chart_share_for_me: iNet.getPUrl(\n      \"analytics/dashboard/chartshared/loadpath\"\n    ),\n    dataVisualize: iNet.getPUrl(\"analytics/dashboard/chartvizs/dataviz\"),\n    organ_load_list: iNet.getPUrl(\"plugin/organization/search\"),\n    allow_edit: iNet.getPUrl(\"analytics/dashboard/chartshared/alloweditable\"),\n  };\n  urlJS: string = \"js/visualcommon/analytics.js\";\n\n  constructor(private http: HttpClientService, private clipboard: Clipboard) {}\n\n  searchMyShareList(params: any) {\n    return this.http.postJSON(this.url.search_chart_my_share, params);\n  }\n\n  searchShareListToMe(params: any) {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.search_chart_to_share, params);\n  }\n\n  unPublish(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.un_publish, params);\n  }\n\n  loadChartMyShare(params: any): Observable<any> {\n    this.http.showLoading();\n    return this.http.postJSON(this.url.load_chart_my_share, params);\n  }\n\n  loadChartShareForMe(params: any): Observable<any> {\n    return this.http.postJSON(this.url.load_chart_share_for_me, params);\n  }\n\n  getDataVisualize(params: any): Observable<any> {\n    return this.http.postJSON(this.url.dataVisualize, params);\n  }\n\n  loadOrganList(): Observable<any> {\n    this.http.showLoading();\n    return this.http.getJSON(this.url.organ_load_list);\n  }\n\n  changStatusEdit(params): Observable<any> {\n    //this.http.showLoading();\n    return this.http.getJSON(this.url.allow_edit, params);\n  }\n\n  getListOrganization(params?: any): Observable<any> {\n    const { totalPage, ...searchParams } = params;\n    return this.http.postJSON(this.url.organ_load_list, searchParams);\n  }\n\n  copyPath(uuid: string): Observable<boolean> {\n    return this.loadChartShareForMe({ uuid }).pipe(\n      switchMap((value) => {\n        if (value.type !== ErrorMessage.TYPE && value?.path) {\n          const url = new URL(iNet.getPUrl(this.urlJS));\n          url.pathname = this.urlJS;\n          const contentCopy = `\n          <div id=\"chart-viewer\" style=\"height: 500px;width: 500px\"></div>\n          <script src=\"${url.href}\"></script>\n          <script>\n            visualize.domReady(() => {\n              visualize.viewChart('${value?.path}', 'chart-viewer', 500, 500);\n            });\n          </script>\n        `;\n          this.clipboard.copy(contentCopy);\n          // return from(navigator.clipboard.writeText(contentCopy)).pipe(\n          //   map(() => true),\n          //   catchError(() => of(false))\n          // );\n          return Promise.resolve(true);\n        } else {\n          return of(false);\n        }\n      })\n    );\n  }\n\n  copyPathCantLoad(path: string): Observable<boolean> {\n    const url = new URL(iNet.getPUrl(this.urlJS));\n    url.pathname = this.urlJS;\n    const contentCopy = `\n          <div id=\"chart-viewer\" style=\"height: 500px;width: 500px\"></div>\n          <script src=\"${url.href}\"></script>\n          <script>\n            visualize.domReady(() => {\n              visualize.viewChart('${path}', 'chart-viewer', 500, 500);\n            });\n          </script>\n        `;\n    this.clipboard.copy(contentCopy);\n    return from(Promise.resolve(true)).pipe(\n      map(() => true),\n      catchError(() => of(false))\n    );\n  }\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[toolbarTopTemplate]'\n})\nexport class ToolbarTopTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[btnTopTemplate]'\n})\nexport class BtnTopTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[toolbarBottomTemplate]'\n})\nexport class ToolbarBottomTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[btnBottomTemplate]'\n})\nexport class BtnBottomTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[rightTemplate]'\n})\nexport class RightTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[gridTemplate]'\n})\nexport class GridTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[paginationTemplate]'\n})\nexport class PaginationTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[bulkSelectTemplate]'\n})\nexport class BulkSelectTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Component, ContentChild, Input, OnInit, TemplateRef, ViewChild} from '@angular/core';\nimport {ToolbarTopTemplateDirective} from \"../directive/toolbar-top-template.directive\";\nimport {BtnTopTemplateDirective} from \"../directive/btn-top-template.directive\";\nimport {ToolbarBottomTemplateDirective} from \"../directive/toolbar-bottom-template.directive\";\nimport {BtnBottomTemplateDirective} from \"../directive/btn-bottom-template.directive\";\nimport {ContentTemplateDirective} from \"../directive/content-template.directive\";\nimport {RightTemplateDirective} from \"../directive/right-template.directive\";\nimport {GridTemplateDirective} from \"../directive/grid-template.directive\";\nimport {PaginationTemplateDirective} from \"../directive/pagination-template.directive\";\nimport {BulkSelectTemplateDirective} from \"../directive/bulk-select-template.directive\";\n\n@Component({\n  selector: 'app-grid-view-layout',\n  templateUrl: './grid-view-layout.component.html',\n  styleUrls: ['./grid-view-layout.component.scss']\n})\nexport class GridViewLayoutComponent implements OnInit {\n  @Input() isChild: boolean = false;\n  @Input() isEdit: boolean = false;\n  @Input() header: string = '';\n  @Input() namePage: string = '';\n\n  @ContentChild(ToolbarTopTemplateDirective) toolbarTopTemplate!: ToolbarTopTemplateDirective;\n  @ContentChild(BtnTopTemplateDirective) btnTopTemplate!: BtnTopTemplateDirective;\n  @ContentChild(ToolbarBottomTemplateDirective) toolbarBottomTemplate!: ToolbarBottomTemplateDirective;\n  @ContentChild(BtnBottomTemplateDirective) btnBottomTemplate!: BtnBottomTemplateDirective;\n  @ContentChild(BulkSelectTemplateDirective) bulkSelectTemplate!: BulkSelectTemplateDirective;\n  @ContentChild(GridTemplateDirective) gridTemplate!: GridTemplateDirective;\n  @ContentChild(RightTemplateDirective) rightTemplate!: RightTemplateDirective;\n  @ContentChild(PaginationTemplateDirective) paginationTemplate!: PaginationTemplateDirective;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div *ngIf=\"!isChild\" class=\"container-layout-grid bg-superset superset-content p-0\" [ngClass]=\"isEdit ? 'spr2': 'spr1'\">\n  <div class=\"middle h-100\">\n    <div class=\"container-fluid row mx-0 justify-content-between align-items-center bg-white p-2\" style=\"height: 55px;\">\n      <div *ngIf=\"!toolbarTopTemplate\" class=\"header\"><span style=\"font-size: 20px; text-transform: uppercase\">{{header}}</span></div>\n      <ng-container *ngIf=\"toolbarTopTemplate\">\n        <ng-container [ngTemplateOutlet]=\"toolbarTopTemplate.templateRef\"></ng-container>\n      </ng-container>\n      <div class=\"d-flex\">\n        <ng-container *ngIf=\"btnTopTemplate\">\n          <ng-container [ngTemplateOutlet]=\"btnTopTemplate.templateRef\"></ng-container>\n        </ng-container>\n      </div>\n    </div>\n    <div *ngIf=\"!!namePage || !!toolbarBottomTemplate || !!btnBottomTemplate\" class=\"container-fluid row mx-0 justify-content-between bg-white p-2\">\n      <div *ngIf=\"!toolbarBottomTemplate\" class=\"header\"><span>{{namePage}}</span></div>\n      <ng-container *ngIf=\"toolbarBottomTemplate\">\n        <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n      </ng-container>\n      <div class=\"d-flex\">\n        <ng-container *ngIf=\"btnBottomTemplate\">\n          <ng-container [ngTemplateOutlet]=\"btnBottomTemplate.templateRef\"></ng-container>\n        </ng-container>\n      </div>\n    </div>\n    <div class=\"bg-superset px-2 h-100\">\n      <ng-container *ngIf=\"paginationTemplate\">\n        <ng-container [ngTemplateOutlet]=\"paginationTemplate.templateRef\"></ng-container>\n      </ng-container>\n      <div class=\"container-fluid px-0 h-100\">\n        <ng-container *ngIf=\"bulkSelectTemplate\">\n          <ng-container [ngTemplateOutlet]=\"bulkSelectTemplate.templateRef\"></ng-container>\n        </ng-container>\n        <ng-container *ngIf=\"gridTemplate\">\n          <ng-container [ngTemplateOutlet]=\"gridTemplate.templateRef\"></ng-container>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n  <div *ngIf=\"isEdit\" class=\"right\" style=\"height: calc(100% - 5px);\">\n    <ng-container *ngIf=\"rightTemplate\">\n      <ng-container [ngTemplateOutlet]=\"rightTemplate.templateRef\"></ng-container>\n    </ng-container>\n  </div>\n</div>\n<div *ngIf=\"isChild\" class=\"container-layout-grid bg-superset p-0\">\n  <div *ngIf=\"!!namePage || !!toolbarBottomTemplate || !!btnBottomTemplate\" class=\"container-fluid row mx-0 justify-content-between bg-white p-2\">\n    <div *ngIf=\"!toolbarBottomTemplate\" class=\"header\"><span>{{namePage}}</span></div>\n    <ng-container *ngIf=\"toolbarBottomTemplate\">\n      <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n    </ng-container>\n    <div class=\"d-flex\">\n      <ng-container *ngIf=\"btnBottomTemplate\">\n        <ng-container [ngTemplateOutlet]=\"btnBottomTemplate.templateRef\"></ng-container>\n      </ng-container>\n    </div>\n  </div>\n  <div class=\"h-100 superset-content \" [ngClass]=\"isEdit ? 'spr2': 'spr1'\">\n    <div class=\"middle h-100 bg-superset px-2 \">\n      <ng-container *ngIf=\"paginationTemplate\">\n        <ng-container [ngTemplateOutlet]=\"paginationTemplate.templateRef\"></ng-container>\n      </ng-container>\n      <div class=\"container-fluid px-0 h-100\">\n        <ng-container *ngIf=\"bulkSelectTemplate\">\n          <ng-container [ngTemplateOutlet]=\"bulkSelectTemplate.templateRef\"></ng-container>\n        </ng-container>\n        <ng-container *ngIf=\"gridTemplate\">\n          <ng-container [ngTemplateOutlet]=\"gridTemplate.templateRef\"></ng-container>\n        </ng-container>\n      </div>\n    </div>\n    <div *ngIf=\"isEdit\" class=\"right h-100\">\n      <ng-container *ngIf=\"rightTemplate\">\n        <ng-container [ngTemplateOutlet]=\"rightTemplate.templateRef\"></ng-container>\n      </ng-container>\n    </div>\n  </div>\n</div>\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\n\n@Component({\n  selector: 'app-grid-empty-layout',\n  templateUrl: './grid-empty-layout.component.html',\n  styleUrls: ['./grid-empty-layout.component.scss']\n})\nexport class GridEmptyLayoutComponent implements OnInit {\n  @Input() titleMessage: string = '';\n  @Input() contentMessage: string = '';\n  @Input() btnAddTemplate: TemplateRef<any>;\n\n  constructor() {\n  }\n\n  ngOnInit(): void {\n  }\n\n\n}\n","<div class=\"empty-data\" [ngClass]=\"btnAddTemplate ? 'have-button' : null \" >\n  <img class=\"no-data\"/>\n  <span *ngIf=\"!!titleMessage\" class=\"mb-1 f-15 font-weight-bold\">{{titleMessage | translate}}</span>\n  <span *ngIf=\"!!contentMessage\" class=\"mb-1 f-13\">{{contentMessage | translate}}</span>\n  <ng-container *ngIf=\"btnAddTemplate\">\n    <ng-container [ngTemplateOutlet]=\"btnAddTemplate\"></ng-container>\n  </ng-container>\n</div>\n","import {ActionType, createAction, props} from \"@ngrx/store\";\n\nexport enum ERightbarActions {\n RIGHT_BAR_DOC = '[document] right bar',\n}\n\nexport const showRightbar = createAction(ERightbarActions.RIGHT_BAR_DOC, props<{isShowRightbar:boolean}>());\n\nexport type RightbarActions = | ActionType<typeof showRightbar>","export const FEATURE_NAME = 'visualize-lib';\r\n","import {createSelector} from '@ngrx/store';\r\nimport { FEATURE_NAME } from '../../models/feature';\r\nimport {IAppState} from \"../state/app.state\";\r\n\r\nconst template = (state: IAppState) => (state as any)[FEATURE_NAME]?.template;\r\n\r\nexport const templateSelector = createSelector(template, state => state);\r\n","import {ActionType, createAction, props} from \"@ngrx/store\";\r\nimport {ChartItem} from \"../../../model/chart\";\r\n\r\nexport enum EChartBind {\r\n  UPDATE_NAV = '[document] update navigate',\r\n}\r\n\r\nexport const updateNavigate = createAction(EChartBind.UPDATE_NAV, props<{data:any}>());\r\n\r\nexport type ChartBindAction = | ActionType<typeof updateNavigate>\r\n","export const uniqueArray = (array) => {\n  return [...new Set(array)];\n};\n\nexport const uniqueArrayObject = (array, key) => {\n  return [...new Map(array.map((item) => [item[key], item])).values()];\n};\n","import { FilterColumn, IAliasColumn } from '../../chart/model/chart-custom';\nimport {\n  EPoint,\n  ESpatial,\n  IAdhocFilter,\n  IFilter,\n  IFormDataArc,\n  IFormDataArea,\n  IFormDataBar,\n  IFormDataBarCompare,\n  IFormDataBigNumber,\n  IFormDataBigNumberTrend,\n  IFormDataBoxPlot,\n  IFormDataBubble,\n  IFormDataBullet,\n  IFormDataCalendar,\n  IFormDataChord,\n  IFormDataDeckMul,\n  IFormDataDistBar,\n  IFormDataDualLine,\n  IFormDataEventFlow,\n  IFormDataFunnel,\n  IFormDataGauge,\n  IFormDataGraph,\n  IFormDataGrid,\n  IFormDataHeatmap,\n  IFormDataHexagon,\n  IFormDataHistogram,\n  IFormDataHorizon,\n  IFormDataLine,\n  IFormDataMixed,\n  IFormDataMulLine,\n  IFormDataParallel,\n  IFormDataPartition,\n  IFormDataPath,\n  IFormDataPie,\n  IFormDataPivot,\n  IFormDataPivotV2,\n  IFormDataPolygon,\n  IFormDataRadar,\n  IFormDataRose,\n  IFormDataSankey,\n  IFormDataScatterPlot,\n  IFormDataScreenGrid,\n  IFormDataSunburst,\n  IFormDataTable,\n  IFormDataTableCustom,\n  IFormDataTimePivot,\n  IFormDataTimeseries,\n  IFormDataTree,\n  IFormDataTreemap,\n  IFormDataTreemapV2,\n  IFormDataWordCloud,\n  IFormDataWorldMap,\n  IMetric,\n  IFormDataBarV2\n} from '../../chart/model/chart';\nimport { uniqueArrayObject } from '../../common/uniqueArray';\nimport { formData } from '../store/actions/schemas.actions';\nimport {IFormDataMixed as IFormDataMixedCustom} from '../../chart/chart-custom/convert-formdata';\n\nexport interface IColumnParam {\n  name: string;\n  type: string;\n  desc?: string;\n}\nexport type Schemas = { [k: string]: string };\n\nexport const getColumnChartPie = (formData: IFormDataPie, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartChord = (\n  formData: IFormDataChord,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby) {\n    columns = [\n      ...columns,\n      { name: formData.groupby, type: schemas[formData.groupby] },\n    ];\n  }\n  if (formData.columns) {\n    columns = [\n      ...columns,\n      { name: formData.columns, type: schemas[formData.columns] },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartHeatmap = (\n  formData: IFormDataHeatmap,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.all_columns_x) {\n    columns = [\n      ...columns,\n      { name: formData.all_columns_x, type: schemas[formData.all_columns_x] },\n    ];\n  }\n  if (formData.all_columns_y) {\n    columns = [\n      ...columns,\n      { name: formData.all_columns_y, type: schemas[formData.all_columns_y] },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartSunburst = (\n  formData: IFormDataSunburst,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData?.secondary_metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.secondary_metric.column.column_name,\n        type: schemas[formData.secondary_metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartPartition = (\n  formData: IFormDataPartition,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartParallel = (\n  formData: IFormDataParallel,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData?.secondary_metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.secondary_metric.column.column_name,\n        type: schemas[formData.secondary_metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.series) {\n    columns = [\n      ...columns,\n      { name: formData.series, type: schemas[formData.series] },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartGauge = (\n  formData: IFormDataGauge,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartRadar = (\n  formData: IFormDataRadar,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTreemapV2 = (\n  formData: IFormDataTreemapV2,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTreemap = (\n  formData: IFormDataTreemap,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartGraph = (\n  formData: IFormDataGraph,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.source) {\n    columns = [\n      ...columns,\n      { name: formData.source, type: schemas[formData.source] },\n    ];\n  }\n  if (formData.source_category) {\n    columns = [\n      ...columns,\n      {\n        name: formData.source_category,\n        type: schemas[formData.source_category],\n      },\n    ];\n  }\n  if (formData.target) {\n    columns = [\n      ...columns,\n      { name: formData.target, type: schemas[formData.target] },\n    ];\n  }\n  if (formData.target_category) {\n    columns = [\n      ...columns,\n      {\n        name: formData.target_category,\n        type: schemas[formData.target_category],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBigNumberTrend = (\n  formData: IFormDataBigNumberTrend,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartSankey = (\n  formData: IFormDataSankey,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartFunnel = (\n  formData: IFormDataFunnel,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartRose = (formData: IFormDataRose, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartHistogram = (\n  formData: IFormDataHistogram,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.all_columns_x.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.all_columns_x.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTree = (formData: IFormDataTree, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.id) {\n    columns = [\n      ...columns,\n      {\n        name: formData.id,\n        type: schemas[formData.id],\n      },\n    ];\n  }\n  if (formData.parent) {\n    columns = [\n      ...columns,\n      {\n        name: formData.parent,\n        type: schemas[formData.parent],\n      },\n    ];\n  }\n  if (formData.name) {\n    columns = [\n      ...columns,\n      {\n        name: formData.name,\n        type: schemas[formData.name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartHorizon = (\n  formData: IFormDataHorizon,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartPivotv2 = (\n  formData: IFormDataPivotV2,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupbyColumns.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupbyColumns.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.groupbyRows.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupbyRows.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTable = (formData: IFormDataTable, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.all_columns.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.all_columns.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.percent_metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.percent_metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.order_by_cols.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.order_by_cols.map((col: string) => {\n        const arrCol = col.split('\"');\n        let obj = {\n          name: arrCol[1],\n          type: schemas[arrCol[1]],\n        };\n        return obj;\n      }),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTimeseries = (\n  formData: IFormDataTimeseries,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBubble = (\n  formData: IFormDataBubble,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.size) {\n    columns = [\n      ...columns,\n      {\n        name: formData.size.column.column_name,\n        type: schemas[formData.size.column.column_name],\n      },\n    ];\n  }\n  if (formData?.x) {\n    columns = [\n      ...columns,\n      {\n        name: formData.x.column.column_name,\n        type: schemas[formData.x.column.column_name],\n      },\n    ];\n  }\n  if (formData?.y) {\n    columns = [\n      ...columns,\n      {\n        name: formData.y.column.column_name,\n        type: schemas[formData.y.column.column_name],\n      },\n    ];\n  }\n  if (formData.entity) {\n    columns = [\n      ...columns,\n      { name: formData.entity, type: schemas[formData.entity] },\n    ];\n  }\n  if (formData.series) {\n    columns = [\n      ...columns,\n      { name: formData.series, type: schemas[formData.series] },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBigNumber = (\n  formData: IFormDataBigNumber,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBullet = (\n  formData: IFormDataBullet,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartArc = (formData: IFormDataArc, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (Object.keys(formData?.start_spatial).length > 0) {\n    switch (formData.start_spatial.type) {\n      case ESpatial.LATLONG:\n        columns = [\n          ...columns,\n          {\n            name: formData.start_spatial.latCol,\n            type: schemas[formData.start_spatial.latCol],\n          },\n          {\n            name: formData.start_spatial.lonCol,\n            type: schemas[formData.start_spatial.lonCol],\n          },\n        ];\n        break;\n      case ESpatial.DELIMITED:\n        columns = [\n          ...columns,\n          {\n            name: formData.start_spatial.lonlatCol,\n            type: schemas[formData.start_spatial.lonlatCol],\n          },\n        ];\n        break;\n      case ESpatial.GEOHASH:\n        columns = [\n          ...columns,\n          {\n            name: formData.start_spatial.geohashCol,\n            type: schemas[formData.start_spatial.geohashCol],\n          },\n        ];\n        break;\n      default:\n        break;\n    }\n  }\n  if (Object.keys(formData?.end_spatial).length > 0) {\n    switch (formData.end_spatial.type) {\n      case ESpatial.LATLONG:\n        columns = [\n          ...columns,\n          {\n            name: formData.end_spatial.latCol,\n            type: schemas[formData.end_spatial.latCol],\n          },\n          {\n            name: formData.end_spatial.lonCol,\n            type: schemas[formData.end_spatial.lonCol],\n          },\n        ];\n        break;\n      case ESpatial.DELIMITED:\n        columns = [\n          ...columns,\n          {\n            name: formData.end_spatial.lonlatCol,\n            type: schemas[formData.end_spatial.lonlatCol],\n          },\n        ];\n        break;\n      case ESpatial.GEOHASH:\n        columns = [\n          ...columns,\n          {\n            name: formData.end_spatial.geohashCol,\n            type: schemas[formData.end_spatial.geohashCol],\n          },\n        ];\n        break;\n      default:\n        break;\n    }\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBoxPlot = (\n  formData: IFormDataBoxPlot,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.columns.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.columns.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartDualLine = (\n  formData: IFormDataDualLine,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData?.metric_2) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartLine = (formData: IFormDataLine, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartMixed = (formData: IFormDataMixed, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n\n  if (formData.adhoc_filters_b.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters_b.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.metrics_b.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics_b.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby_b.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby_b.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartGrid = (formData: IFormDataGrid, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (Object.keys(formData?.spatial).length > 0) {\n    switch (formData.spatial.type) {\n      case ESpatial.LATLONG:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.latCol,\n            type: schemas[formData.spatial.latCol],\n          },\n          {\n            name: formData.spatial.lonCol,\n            type: schemas[formData.spatial.lonCol],\n          },\n        ];\n        break;\n      case ESpatial.DELIMITED:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.lonlatCol,\n            type: schemas[formData.spatial.lonlatCol],\n          },\n        ];\n        break;\n      case ESpatial.GEOHASH:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.geohashCol,\n            type: schemas[formData.spatial.geohashCol],\n          },\n        ];\n        break;\n      default:\n        break;\n    }\n  }\n  if (formData?.size) {\n    columns = [\n      ...columns,\n      {\n        name: formData.size.column.column_name,\n        type: schemas[formData.size.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartScatterPlot = (\n  formData: IFormDataScatterPlot,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (Object.keys(formData?.spatial).length > 0) {\n    switch (formData.spatial.type) {\n      case ESpatial.LATLONG:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.latCol,\n            type: schemas[formData.spatial.latCol],\n          },\n          {\n            name: formData.spatial.lonCol,\n            type: schemas[formData.spatial.lonCol],\n          },\n        ];\n        break;\n      case ESpatial.DELIMITED:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.lonlatCol,\n            type: schemas[formData.spatial.lonlatCol],\n          },\n        ];\n        break;\n      case ESpatial.GEOHASH:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.geohashCol,\n            type: schemas[formData.spatial.geohashCol],\n          },\n        ];\n        break;\n      default:\n        break;\n    }\n  }\n  if (formData?.point_radius_fixed) {\n    if (formData.point_radius_fixed.type === EPoint.METRIC) {\n      columns = [\n        ...columns,\n        {\n          name: formData.point_radius_fixed.value.column.column_name,\n          type: schemas[formData.point_radius_fixed.value.column.column_name],\n        },\n      ];\n    }\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartHexagon = (\n  formData: IFormDataHexagon,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (Object.keys(formData?.spatial).length > 0) {\n    switch (formData.spatial.type) {\n      case ESpatial.LATLONG:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.latCol,\n            type: schemas[formData.spatial.latCol],\n          },\n          {\n            name: formData.spatial.lonCol,\n            type: schemas[formData.spatial.lonCol],\n          },\n        ];\n        break;\n      case ESpatial.DELIMITED:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.lonlatCol,\n            type: schemas[formData.spatial.lonlatCol],\n          },\n        ];\n        break;\n      case ESpatial.GEOHASH:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.geohashCol,\n            type: schemas[formData.spatial.geohashCol],\n          },\n        ];\n        break;\n      default:\n        break;\n    }\n  }\n  if (formData?.size) {\n    columns = [\n      ...columns,\n      {\n        name: formData.size.column.column_name,\n        type: schemas[formData.size.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartPolygon = (\n  formData: IFormDataPolygon,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.point_radius_fixed) {\n    if (formData.point_radius_fixed.type === EPoint.METRIC) {\n      columns = [\n        ...columns,\n        {\n          name: formData.point_radius_fixed.value.column.column_name,\n          type: schemas[formData.point_radius_fixed.value.column.column_name],\n        },\n      ];\n    }\n  }\n\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.line_column) {\n    columns = [\n      ...columns,\n      { name: formData.line_column, type: schemas[formData.line_column] },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartScreenGrid = (\n  formData: IFormDataScreenGrid,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (Object.keys(formData?.spatial).length > 0) {\n    switch (formData.spatial.type) {\n      case ESpatial.LATLONG:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.latCol,\n            type: schemas[formData.spatial.latCol],\n          },\n          {\n            name: formData.spatial.lonCol,\n            type: schemas[formData.spatial.lonCol],\n          },\n        ];\n        break;\n      case ESpatial.DELIMITED:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.lonlatCol,\n            type: schemas[formData.spatial.lonlatCol],\n          },\n        ];\n        break;\n      case ESpatial.GEOHASH:\n        columns = [\n          ...columns,\n          {\n            name: formData.spatial.geohashCol,\n            type: schemas[formData.spatial.geohashCol],\n          },\n        ];\n        break;\n      default:\n        break;\n    }\n  }\n  if (formData?.size) {\n    columns = [\n      ...columns,\n      {\n        name: formData.size.column.column_name,\n        type: schemas[formData.size.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartPath = (formData: IFormDataPath, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.line_column) {\n    columns = [\n      ...columns,\n      { name: formData.line_column, type: schemas[formData.line_column] },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartWorldMap = (\n  formData: IFormDataWorldMap,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.entity) {\n    columns = [\n      ...columns,\n      {\n        name: formData.entity,\n        type: schemas[formData.entity],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData?.secondary_metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartEventFlow = (\n  formData: IFormDataEventFlow,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.all_columns_x) {\n    columns = [\n      ...columns,\n      { name: formData.all_columns_x, type: schemas[formData.all_columns_x] },\n    ];\n  }\n  if (formData.entity) {\n    columns = [\n      ...columns,\n      { name: formData.entity, type: schemas[formData.entity] },\n    ];\n  }\n  if (formData.all_columns.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.all_columns.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartMulLine = (\n  formData: IFormDataMulLine,\n  schemas: Schemas\n) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartDistBar = (formData: IFormDataDistBar, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.columns.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.columns.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartArea = (formData: IFormDataArea, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTimePivot = (formData: IFormDataTimePivot, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartDeckMul = (formData: IFormDataDeckMul, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartPivot = (formData: IFormDataPivot, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  if (formData.columns.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.columns.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartCalendar = (formData: IFormDataCalendar, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBar = (formData: IFormDataBar, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col: string) => ({\n        name: col,\n        type: schemas[col],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartWordCloud = (formData: IFormDataWordCloud, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData?.metric) {\n    columns = [\n      ...columns,\n      {\n        name: formData.metric.column.column_name,\n        type: schemas[formData.metric.column.column_name],\n      },\n    ];\n  }\n  if (formData.series) {\n    columns = [\n      ...columns, {name: formData.series, type: schemas[formData.series]}\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartBarCompare = (formData: IFormDataBarCompare, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IAdhocFilter) => ({\n        name: filter.col,\n        type: schemas[filter.col],\n      })),\n    ];\n  }\n  if (formData.granularity_sqla) {\n    columns = [\n      ...columns,\n      {\n        name: formData.granularity_sqla,\n        type: schemas[formData.granularity_sqla],\n      },\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric: IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartTableCustom = (formData: IFormDataTableCustom, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.filters.map((filter: FilterColumn) => ({\n        name: filter.column,\n        type: schemas[filter.column],\n      })),\n    ];\n  }\n  if(formData.columns.length > 0) {\n    columns = [...columns, ...formData.columns.map((column: IAliasColumn) => ({\n      name: column.column,\n      type: schemas[column.column]\n    }))]\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\n\nexport const getColumnChartBarV2 = (formData: IFormDataBarV2, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter: IFilter) => ({\n        name: filter.subject,\n        type: schemas[filter.subject],\n      })),\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric:IMetric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if(formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col:string) => ({\n        name: col,\n        type: schemas[col]\n      }))\n    ]\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\nexport const getColumnChartMixedCustom = (formData: IFormDataMixedCustom, schemas: Schemas) => {\n  let columns: IColumnParam[] = [];\n  if (formData.adhoc_filters.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters.map((filter) => ({\n        name: filter.col,\n        type: schemas[filter.col],\n      })),\n    ];\n  }\n  if (formData.adhoc_filters_b.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.adhoc_filters_b.map((filter) => ({\n        name: filter.col,\n        type: schemas[filter.col],\n      })),\n    ];\n  }\n  if (formData.metrics.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics.map((metric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if (formData.metrics_b.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.metrics_b.map((metric) => ({\n        name: metric.column.column_name,\n        type: schemas[metric.column.column_name],\n      })),\n    ];\n  }\n  if(formData.groupby.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby.map((col:string) => ({\n        name: col,\n        type: schemas[col]\n      }))\n    ]\n  }\n  if(formData.groupby_b.length > 0) {\n    columns = [\n      ...columns,\n      ...formData.groupby_b.map((col:string) => ({\n        name: col,\n        type: schemas[col]\n      }))\n    ]\n  }\n  return uniqueArrayObject(columns, 'name');\n};\n\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef} from '@angular/core';\n\n@Component({\n  selector: 'app-right-bar',\n  templateUrl: './right-bar.component.html',\n  styleUrls: ['./right-bar.component.scss']\n})\nexport class RightBarComponent implements OnInit, OnChanges {\n  @Input() isFullRight: boolean = false;\n  @Input() isChild: boolean = false;\n  @Input() hideBtnTemplate: boolean = false;\n  @Input() header: string = '';\n  @Input() btnBackTemplate: TemplateRef<any>;\n  @Input() btnTemplate: TemplateRef<any>;\n  @Input() contentTemplate: TemplateRef<any>;\n  @Input() tabTemplate: TemplateRef<any>;\n  @Input() publishTemplate:  TemplateRef<any>;\n  @Input() isPublishTemplate: boolean = false;\n  _header: string;\n  _btnBackTemplate: TemplateRef<any>;\n  _btnTemplate: TemplateRef<any>;\n  _contentTemplate: TemplateRef<any>;\n  _tabTemplate: TemplateRef<any>;\n  _publishTemplate:  TemplateRef<any>;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!!changes) {\n      if (!!changes['header']) {\n        this._header = changes['header'].currentValue\n      }\n      if (!!changes['btnBackTemplate']) {\n        this._btnBackTemplate = changes['btnBackTemplate'].currentValue\n      }\n      if (!!changes['btnTemplate']) {\n        this._btnTemplate = changes['btnTemplate'].currentValue\n      }\n      if (!!changes['contentTemplate']) {\n        this._contentTemplate = changes['contentTemplate'].currentValue\n      }\n      if (!!changes['tabTemplate']) {\n        this._tabTemplate = changes['tabTemplate'].currentValue\n      }\n      if(!!changes['publishTemplate']) {\n        this._publishTemplate = changes['publishTemplate'].currentValue\n      }\n    }\n  }\n}\n","<div class=\"w-full bg-superset h-100\">\n  <div class=\"bg-white\" [ngStyle]=\"{height: !isChild ? 'calc(100%)' : 'calc(100% - 68px)'}\">\n    <div class=\"toolbar-header\">\n      <ng-container *ngIf=\"_btnBackTemplate\">\n        <ng-container [ngTemplateOutlet]=\"_btnBackTemplate\"></ng-container>\n      </ng-container>\n      <div class=\"text-truncate\">{{_header}}</div>\n    </div>\n    <div *ngIf=\"_btnTemplate && !hideBtnTemplate\" class=\"toolbar-btn\">\n      <ng-container *ngIf=\"_btnTemplate\">\n        <ng-container [ngTemplateOutlet]=\"_btnTemplate\"></ng-container>\n      </ng-container>\n    </div>\n    <div class=\"w-100\" [style.height]=\"_btnTemplate && !hideBtnTemplate ? 'calc(100% - 100px)' : 'calc(100% - 48px)'\">\n      <div *ngIf=\"!_tabTemplate\" class=\"height-tab-content f-12\" [ngClass]=\"!_btnTemplate || hideBtnTemplate ? 'create' : 'edit'\">\n        <ng-container *ngIf=\"_contentTemplate\">\n          <ng-container [ngTemplateOutlet]=\"_contentTemplate\"></ng-container>\n        </ng-container>\n      </div>\n      <ng-container *ngIf=\"_tabTemplate\">\n        <ng-container [ngTemplateOutlet]=\"_tabTemplate\"></ng-container>\n      </ng-container>\n      <!-- <ng-container *ngIf=\"_publishTemplate && isPublishTemplate\">\n        <ng-container [ngTemplateOutlet]=\"_publishTemplate\"></ng-container>\n      </ng-container> -->\n    </div>\n  </div>\n</div>\n\n","import { TabsetComponent } from \"ngx-bootstrap/tabs\";\r\nimport { IOrganData } from \"../chart/model/data-interface\";\r\n\r\nexport interface ChartAttr {\r\n    base64?: string,\r\n    _base64?: any,\r\n    formData?: string,\r\n    _formData?: any,\r\n    html?: string,\r\n    typeSubmit?: string,\r\n}\r\n\r\nexport interface ChartData {\r\n    attribute?: ChartAttr,\r\n    element?: string,\r\n    name?: string,\r\n    tags?: string[]\r\n    type?: string,\r\n    uuid?: string,\r\n    nameImage?: string,\r\n    examples?: string[],\r\n    organId?: string,\r\n}\r\n\r\nexport interface ChartItem {\r\n    createdDate: number;\r\n    creatorName: string;\r\n    creatorUname: string;\r\n    datasetUuid: string;\r\n    desc: string;\r\n    lastModifierName: string;\r\n    lastModifierUName: string;\r\n    lastModifiedDate: number\r\n    name: string;\r\n    organId: string;\r\n    published: boolean;\r\n    type: string;\r\n    uuid: string;\r\n    datasetName: string;\r\n    typeName: string;\r\n    dsCategory:string;\r\n    dsType:string;\r\n    dsTable: string,\r\n    thumbnailUri: string;\r\n    title: string;\r\n    sharedUuid?: string;\r\n    chartUuid: string,\r\n    fields?: [],\r\n}\r\n\r\nexport interface ChartAttribute {\r\n    width: number,\r\n    height: number,\r\n    vizType: any,\r\n    formData: any,\r\n    nameChart: string,\r\n    typeSubmit: string,\r\n    dataSource: any,\r\n    queries: any,\r\n}\r\n\r\nexport interface DatasetItem {\r\n    brief?: string\r\n    category?: string\r\n    name?: string\r\n    published?: false\r\n    recordNo?: 4\r\n    schemas?: []\r\n    type?: string\r\n    uuid?: string\r\n}\r\n\r\n\r\n\r\nexport interface OrganShare {\r\n    name?: string;\r\n    organId?: string;\r\n    isOld?: boolean;\r\n}\r\n\r\nexport enum TYPE_SHARE {\r\n    PERSONAL = \"PERSONAL\", ORGANIZATION = \"ORGANIZATION\"\r\n}\r\n\r\nexport enum ACTION_DATASET_RIGHT {\r\n    SELECT = \"SELECT\", EDIT = \"EDIT\", LIST = \"LIST\", UN_PUBLISH = \"UN_PUBLISH\"\r\n}\r\n\r\nexport interface DataHistory {\r\n    item: IOrganData | string,\r\n    message: string,\r\n    started: Date,\r\n    expired: Date,\r\n}\r\n\r\nexport interface ISearchPersonal {\r\n    search?: boolean,\r\n    isLoading?: boolean,\r\n    hideText?: boolean,\r\n    keyword?: string,\r\n    remove?: boolean,\r\n    username?: string\r\n}\r\n\r\nexport interface IChartData {\r\n    chartItem: ChartItem,\r\n    staticTabs: TabsetComponent\r\n}","import {Pipe, PipeTransform} from '@angular/core';\nimport {iNet} from \"inet-core\";\n\n@Pipe({\n  name: 'filterOrgan'\n})\nexport class ChartFilterOrganPipe implements PipeTransform {\n  transform(arrOrgan: any[], args: { arr: any[], prop: string }): any {\n    let orGanResult: any [] = [];\n    if (arrOrgan?.length === 0) return [];\n    arrOrgan?.forEach((organization) => {\n      let selected = false;\n      args.arr?.forEach((organPublish) => {\n        if (organization[args.prop] === organPublish.organId) {\n          selected = true;\n        }\n      })\n      if (!selected) {\n        orGanResult.push(organization)\n      }\n    })\n    return orGanResult.filter(_item => _item[args.prop] !== iNet.getOrganId());\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {iNet} from \"inet-core\";\nimport { TYPE_SHARE } from '../../model/chart';\n@Pipe({\n  name: 'urlImage'\n})\nexport class UrlImagePipe implements PipeTransform {\n\n  transform(code: string, type?: string): string {\n    switch (type) {\n      case TYPE_SHARE.PERSONAL:\n      case TYPE_SHARE.PERSONAL.toLowerCase():\n        return iNet.getPUrl('system/userprofile/photo') + \"?\" + $.param({usercode: code});\n      case TYPE_SHARE.ORGANIZATION:\n      case TYPE_SHARE.ORGANIZATION.toLowerCase():\n      default:\n        return iNet.getPUrl('plugin/firmlogo/view') + \"?\" + $.param({organId: code});\n\n    }\n  }\n\n}\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\nimport {IOrganData, IPersonData} from \"../model/data-interface\";\r\nimport { TYPE_SHARE } from \"../../model/chart\";\r\n\r\n@Pipe({\r\n  name: 'nameShare'\r\n})\r\nexport class GetNameSharePipe implements PipeTransform {\r\n  transform(sharedObject: string, dataFilter: IDataFilterName): any {\r\n    let nameObject: string = '';\r\n    let item: IOrganData | IPersonData;\r\n    switch (dataFilter.type) {\r\n      case TYPE_SHARE.PERSONAL.toLowerCase():\r\n        item = dataFilter.arrPersonal.find(__item => sharedObject == __item.usercode);\r\n        nameObject = !!item ? item.fullname || item.usercode : sharedObject;\r\n        break;\r\n      case TYPE_SHARE.ORGANIZATION.toLowerCase():\r\n        item = dataFilter.arrOrganization.find(__item => sharedObject == __item.organiId);\r\n        nameObject = !!item ? item.name || item.organiId : sharedObject;\r\n        break;\r\n    }\r\n    return nameObject;\r\n  }\r\n}\r\n\r\nexport interface IDataFilterName {\r\n  type: string,\r\n  arrOrganization: IOrganData[]\r\n  arrPersonal: IPersonData[]\r\n}\r\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewChild\n} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from \"@angular/forms\";\nimport {IChartShare, IOrganData} from \"../model/data-interface\";\nimport {NotificationService, iNet} from \"inet-core\";\nimport {ChartService} from \"../chart.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {BsLocaleService} from \"ngx-bootstrap/datepicker\";\nimport {ConfirmDialogComponent} from \"inet-ui\";\nimport {ACTION_DATASET_RIGHT, ChartItem, IChartData, ISearchPersonal, OrganShare, TYPE_SHARE} from \"../../model/chart\";\nimport {NgSelectComponent} from \"@ng-select/ng-select\";\nimport {fromEvent, map, Subject, Subscription} from \"rxjs\";\nimport {debounceTime, distinctUntilChanged, tap} from \"rxjs/operators\";\nimport {ChartFilterOrganPipe} from \"../pipe/chart-filter-organ.pipe\";\nimport {ShareService} from \"../../share/share.service\";\n\n@Component({\n  selector: 'app-chart-share-right-bar',\n  templateUrl: './chart-share-right-bar.component.html',\n  styleUrls: ['./chart-share-right-bar.component.scss']\n})\nexport class ChartShareRightBarComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n  @Input() chartData: IChartData;\n  @Output() organPublishSend = new EventEmitter<OrganShare>();\n  @ViewChild('organSelects', {static: false}) organSelectComponent!: NgSelectComponent;\n  @ViewChild('personSearch', {static: false}) personSearch!: ElementRef;\n  @ViewChild(\"deleteModal\", {static: false}) confirmDialog!: ConfirmDialogComponent;\n  shareForm!: FormGroup;\n  titleAction: string = 'VISUALIZE.CHART.FIELD.SHARE_LIST_TITLE'\n  action = ACTION_DATASET_RIGHT;\n  actionCurrent: string = ACTION_DATASET_RIGHT.LIST;\n  actionHistory: string = ACTION_DATASET_RIGHT.LIST;\n  typeShare = TYPE_SHARE;\n  typeCurrent: string = TYPE_SHARE.PERSONAL;\n  listOrganShare: IChartShare [] = [];\n  listOrgan: IOrganData[] = [];\n  organSelect!: any;\n  isFindPerson: boolean = false;\n  chartItem: ChartItem;\n  msgContentDel: string = '';\n  organEdit: any;\n\n  totalShare: number = 0\n\n  //set datepicker\n  minDay: Date = new Date();\n  startDate: Date = new Date();\n  endDate: Date = null;\n\n  isExist: boolean = false;\n  searchPerson: ISearchPersonal = {\n    search: true, isLoading: false, hideText: false, remove: false, keyword: null, username: null\n  };\n\n  loading: boolean = true;\n  regexEmail: boolean = false;\n  validEmail: RegExp = /^[a-z0-9]{2}[a-z0-9-.]+@([a-z0-9-]+\\.)+[a-z]{2,9}$/;\n  usernamePerson: string = '';\n  indexShowInfo: number = -1;\n  searchInput$ = new Subject<string>();\n  paramsConstant = {keyword: '', pageNumber: 0, pageSize: 20};\n  pageNumberCurrent: number = 0;\n  paramsSearch = {keyword: '', pageNumber: 0, pageSize: 20};\n  totalOrgan: number = 0;\n  loadingOrgan: boolean = false\n  userName: string = iNet.getUserName()\n  owner: boolean = false\n  //change data vs data history\n  private readonly notificationMsg: string = 'Visualize';\n  private personSearch$: Subscription;\n  private readonly translate$: Subscription;\n  private statusMsg: any;\n\n  constructor(private fb: FormBuilder,\n              private filterOrgan: ChartFilterOrganPipe,\n              private chartService: ChartService,\n              private notification: NotificationService,\n              private translate: TranslateService,\n              private renderer2: Renderer2,\n              private localeService: BsLocaleService,\n              private shareService: ShareService) {\n    //this.notificationMsg = this.translate.instant('VISUALIZE.TITLE');\n    this.translate$ = this.translate.stream('VISUALIZE.STATUS').subscribe(data => {\n      this.statusMsg = data;\n      //translate datepicker\n      this.localeService.use(this.translate.currentLang);\n    });\n  }\n\n  get getParams() {\n    let paramForm = this.shareForm.getRawValue()\n    let __params = {};\n    __params['chartUuid'] = this.chartItem.uuid;\n    __params['type'] = this.typeCurrent.toLowerCase();\n    switch (this.typeCurrent) {\n      case TYPE_SHARE.PERSONAL:\n        __params['sharedObject'] = paramForm['personal'];\n        break;\n      case TYPE_SHARE.ORGANIZATION:\n        __params['sharedObject'] = paramForm['organization']\n        break;\n    }\n    __params['started'] = new Date(this.startDate).getTime();\n    __params['expired'] = new Date(this.endDate).getTime();\n    __params['message'] = paramForm['message'] || '';\n    return __params;\n  }\n\n  ngOnDestroy(): void {\n    if (!!this.translate$) {\n      this.translate$.unsubscribe();\n    }\n    if (!!this.personSearch$) {\n      this.personSearch$.unsubscribe();\n    }\n  }\n\n  ngOnInit(): void {\n    this.initForm(this.typeCurrent);\n\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('chartData' in changes) {\n      this.chartItem = this.chartData.chartItem;\n      if (this.chartData.staticTabs.tabs[1].active) {\n        this.loadShareItems();\n      } else {\n        this.loading = true;\n        this.totalShare = 0;\n        this.listOrganShare = [];\n      }\n      if (this.actionCurrent !== ACTION_DATASET_RIGHT.LIST) {\n        this.actionCurrent = ACTION_DATASET_RIGHT.LIST;\n      }\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.personSearch$ = fromEvent(this.personSearch.nativeElement, 'input').pipe(debounceTime(250), map((evt: any) => evt.target.value)).subscribe((keyword: string) => {\n      this.usernamePerson ? this.usernamePerson = undefined : '';\n      this.shareForm.get('personal').patchValue(null);\n      this.isFindPerson = false;\n      this.isExist = false;\n      this.regexEmail = !!keyword ? !this.validEmail.test(keyword) : false;\n      if (!this.regexEmail) {\n        this.searchPersonAction();\n      }\n    });\n    this.searchInput$.pipe(distinctUntilChanged(), debounceTime(400), tap(() => this.loadingOrgan = true),).subscribe((keyword: string) => {\n      let params = {keyword: keyword, pageNumber: 0};\n      if (keyword?.length == 0) {\n        this.pageNumberCurrent = 0;\n        this.listOrgan = [];\n      } else {\n        this.loadOrganSearch(params);\n      }\n\n    });\n  }\n\n  loadOrganSearch(params: any) {\n    this.loadingOrgan = true;\n    params = Object.assign(this.paramsConstant, params)\n    this.loadOrganByService(params, true);\n  }\n\n  onHandelKeyupEnter() {\n    if (this.regexEmail) return;\n    let keyword: string = this.personSearch.nativeElement.value || '';\n    if (!keyword) {\n      return\n    }\n    if (!this.isExist) {\n      this.searchUserExist(keyword, (result) => {\n        if (result === '#') {\n          let isShare: boolean = this.listOrganShare.filter(_organ => _organ.sharedObject === keyword).length > 0;\n          this.usernamePerson = !isShare ? keyword : null;\n          if (!isShare) {\n            this.personSearch.nativeElement.value = null;\n          }\n          this.searchPerson = {\n            search: isShare,\n            username: this.usernamePerson,\n            hideText: isShare,\n            isLoading: false,\n            remove: !isShare,\n            keyword: keyword\n          };\n          this.shareForm.get('personal').patchValue(this.usernamePerson);\n        }\n      })\n    }\n\n  }\n\n  searchPersonAction() {\n    if (this.regexEmail) return;\n    let keyword: string = this.personSearch.nativeElement.value || '';\n    if (!keyword) {\n      //this.owner = false\n      this.searchPerson = {search: true, remove: false}\n      return;\n    }\n    this.searchPerson = {search: false, hideText: true, isLoading: true}\n    this.searchUserExist(keyword, (result) => {\n      if (result !== '#') {\n        this.isFindPerson = true;\n        this.isExist = false;\n        this.searchPerson = {search: true, hideText: true, isLoading: false}\n       // this.owner = false\n      } else {\n        let isShare: boolean = this.listOrganShare.filter(_organ => _organ.sharedObject === keyword).length > 0;\n        this.isExist = this.isFindPerson = isShare;\n        this.searchPerson = {search: true, isLoading: false}\n  /*      this.owner = false\n        if (this.userName === keyword) {\n          this.owner = true\n        }*/\n      }\n    })\n  }\n\n  searchUserExist(username: string, callback: Function) {\n    this.chartService.checkAccount({username: username}).subscribe(result => {\n      if (!!callback && typeof callback === \"function\") {\n        callback(result)\n      }\n    })\n  }\n\n  onSearch($event: any) {\n    let target = $event.target;\n    this.searchPerson.hideText = !!target?.value;\n  }\n\n  onRemovePerson() {\n    this.usernamePerson = null;\n    this.searchPerson = {search: true, isLoading: false, hideText: false, keyword: null, remove: false, username: null};\n    this.personSearch.nativeElement.value = null;\n    this.isFindPerson = false;\n    this.regexEmail = false\n    this.personSearch.nativeElement.focus();\n    this.shareForm.get('personal').patchValue(null);\n  }\n\n  initForm(type?: string) {\n    let __form = {\n      type: [TYPE_SHARE.PERSONAL], sharedObject: [null], message: [null]\n    }\n    switch (type) {\n      case TYPE_SHARE.PERSONAL:\n        __form = {...__form, ...{personal: [null, Validators.required], organization: [null]}}\n        break;\n      case TYPE_SHARE.ORGANIZATION:\n        __form = {...__form, ...{personal: [null], organization: [null, Validators.required]}}\n    }\n    this.shareForm = this.fb.group(__form);\n  }\n\n  onSelectList() {\n    if (!!this.organSelectComponent) {\n      this.organSelectComponent.open();\n    }\n  }\n\n  toggleShare(action: string) {\n    switch (action) {\n      case this.action.LIST:\n        this.actionCurrent = this.action.SELECT;\n        this.actionHistory = action;\n        this.titleAction = 'VISUALIZE.CHART.FIELD.SHARE_CHOOSE_TITLE';\n        this.organSelect = null;\n        this.resetForm()\n        break;\n      case this.action.SELECT:\n        this.actionCurrent = this.actionHistory;\n        if (this.actionCurrent === this.action.LIST) {\n          this.titleAction = 'VISUALIZE.CHART.FIELD.SHARE_LIST_TITLE';\n        } else {\n          this.titleAction = 'VISUALIZE.CHART.FIELD.SHARE_EDIT_TITLE';\n        }\n        break;\n    }\n  }\n\n  resetForm() {\n    this.shareForm.reset()\n    this.startDate = new Date();\n    this.endDate = null;\n    this.searchPerson = {search: true, isLoading: false, hideText: false, keyword: null, remove: false, username: null};\n    this.personSearch.nativeElement.value = null;\n    this.isFindPerson = this.isExist = this.regexEmail = false;\n    this.organSelect = this.usernamePerson = null;\n    this.typeCurrent = TYPE_SHARE.PERSONAL;\n    this.initForm(TYPE_SHARE.PERSONAL);\n  }\n\n  loadShareItems() {\n    if (!this.chartItem) return;\n    this.chartService.listShareOrgan({chartUuid: this.chartItem.uuid, key: '', pageSize: -1}).subscribe(results => {\n      if (results.type !== 'ERROR') {\n        this.listOrganShare = results.items || [];\n        this.listOrganShare = this.listOrganShare.map(_item => {\n          _item.name = _item[_item.sharedObject]\n          _item.organId = _item.sharedObject\n          return _item\n        })\n        this.totalShare = results.total;\n      }\n      this.loading = false;\n    }, () => {\n      this.loading = true;\n    }).add(() => {\n      this.loading = false;\n    });\n  }\n\n  onImgError(event: Event) {\n    this.renderer2.addClass(event.target, 'icon-default')\n  }\n\n  onLoaded(event: Event) {\n    this.renderer2.removeClass(event.target, 'icon-default')\n  }\n\n  selectOrgan(item: IChartShare, action: string) {\n    switch (action) {\n      case this.action.EDIT:\n        this.actionCurrent = this.action.EDIT;\n        this.titleAction = 'VISUALIZE.CHART.FIELD.SHARE_EDIT_TITLE'\n        //this.chooseOrgan(item)\n        break;\n      case this.action.UN_PUBLISH: {\n        this.confirmDialog.setData(item);\n        this.msgContentDel = this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_DEL_MSG', {\n          type: this.transTypeShare(item.type), name: item.name || item[item.sharedObject]\n        });\n        this.confirmDialog.show();\n        break;\n      }\n    }\n  }\n\n  transTypeShare(type: string) {\n    switch (type) {\n      case TYPE_SHARE.PERSONAL.toLowerCase():\n        return this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_PERSONAL').toLowerCase();\n      case TYPE_SHARE.ORGANIZATION.toLowerCase():\n        return this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_ORGANIZATION').toLowerCase();\n    }\n  }\n\n  chooseOrgan(organ: any) {\n    this.organSelect = organ;\n    this.shareForm.get('organization').patchValue(!!organ ? organ.organId : null)\n  }\n\n  onPublishOrgan() {\n    let typeShare: string = '';\n    let nameShare: string = '';\n    switch (this.typeCurrent) {\n      case TYPE_SHARE.PERSONAL:\n        typeShare = this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_PERSONAL');\n        nameShare = !!this.usernamePerson ? this.usernamePerson : '';\n        break;\n      case TYPE_SHARE.ORGANIZATION:\n        typeShare = this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_ORGANIZATION');\n        nameShare = !!this.organSelect.name ? this.organSelect.name : '';\n        break;\n    }\n    const msgSave = (isError: boolean) => {\n      return this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_MSG', {\n        name: this.chartItem.name,\n        type: typeShare.toLowerCase(),\n        nameShare: nameShare,\n        status: !isError ? this.statusMsg['MSG_SUCCESS'] : this.statusMsg['MSG_ERROR'],\n      })\n    }\n    if (this.shareForm.valid) {\n      this.chartService.publishOrgan(this.getParams).subscribe(result => {\n        if (result.type !== 'ERROR') {\n          this.notification.showMessage(msgSave(false), 'success', this.notificationMsg);\n          this.toggleShare(this.actionCurrent);\n          this.loadShareItems();\n        } else {\n          this.notification.showMessage(msgSave(true), 'error', this.notificationMsg);\n        }\n      })\n    }\n  }\n\n  onTypePublish(type: string) {\n    this.listOrgan = []\n    this.pageNumberCurrent = 0\n    if (this.typeCurrent === type) return;\n    this.typeCurrent = type;\n    this.initForm(type);\n    switch (type) {\n      case TYPE_SHARE.PERSONAL:\n        if (!!this.organSelect) {\n          this.organSelect = null;\n        }\n        break;\n      case TYPE_SHARE.ORGANIZATION:\n        if (!!this.usernamePerson) {\n          this.usernamePerson = null;\n        }\n        break;\n    }\n  }\n\n  unPublished() {\n    let item: IChartShare = this.confirmDialog.getData();\n    let typeShare: string = '';\n    switch (item.type.toUpperCase()) {\n      case TYPE_SHARE.PERSONAL:\n        typeShare = this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_PERSONAL');\n        break;\n      case TYPE_SHARE.ORGANIZATION:\n        //this.loadOrganization();\n        typeShare = this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_ORGANIZATION');\n        break;\n    }\n    const transMsg = (isError: boolean) => {\n      return this.translate.instant('VISUALIZE.CHART.FIELD.SHARE_DELETE', {\n        type: typeShare.toLowerCase(),\n        name: item.name || item[item.sharedObject],\n        nameChart: this.chartItem.name,\n        status: !isError ? this.statusMsg['MSG_SUCCESS'] : this.statusMsg['MSG_ERROR'],\n      })\n    }\n    this.chartService.unPublishOrgan({uuid: item.uuid}).subscribe(result => {\n      if (result.type !== 'ERROR') {\n        this.notification.showMessage(transMsg(false), 'success', this.notificationMsg)\n        this.loadShareItems();\n        this.confirmDialog.hide();\n        this.indexShowInfo = undefined;\n      } else {\n        this.notification.showMessage(transMsg(true), 'error', this.notificationMsg)\n      }\n    })\n  }\n\n  showInfo(idx?: any) {\n    if (idx < 0) {\n      return\n    }\n    this.indexShowInfo == idx ? this.indexShowInfo = -1 : this.indexShowInfo = idx\n  }\n\n  loadOrganScroll() {\n    if (this.listOrgan.length < this.totalOrgan) {\n      this.pageNumberCurrent++;\n      let params = Object.assign(this.paramsSearch, {pageNumber: this.pageNumberCurrent});\n      this.loadingOrgan = true;\n      this.loadOrganByService(params);\n    }\n  }\n\n  loadOrganByService(params: any, isFirstLoad: boolean = false) {\n    let listOrgan: any[] = []\n    this.chartService.loadOrganSearch(params).subscribe(results => {\n      this.paramsSearch = Object.assign(this.paramsSearch, params);\n      if (results.type !== 'ERROR') {\n        if (isFirstLoad) {\n          listOrgan = results.items as any[] || [];\n          this.totalOrgan = results.total || 0;\n        } else {\n          listOrgan = [...this.listOrgan, ...results.items as any[] || []]\n        }\n        this.listOrgan = listOrgan.filter(organ => 'organId' in organ && !!organ.organId) || []\n        this.loadingOrgan = false;\n      }\n    })\n  }\n\n  /*clearSelect() {\n    this.loadingOrgan = false\n  }*/\n\n  onCopyPath(uuid) {\n    this.shareService.copyPath(uuid).subscribe(status => {\n      if (status) {\n        this.notification.showMessage(this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS'),\n          'success', 'Visualize')\n      } else {\n        this.notification.showMessage(this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD'),\n          'error', 'Visualize')\n      }\n    })\n  }\n}\n","<div *ngIf=\"totalShare > 0\" class=\"share-container\">\n  <div *ngIf=\"actionCurrent === action.LIST\" class=\"title-share\">{{titleAction | translate}} <span\n    *ngIf=\"totalShare > 0\">({{totalShare || 0}})</span></div>\n  <div *ngIf=\"actionCurrent !== action.LIST\" class=\"title-share\">{{titleAction | translate}}</div>\n  <ng-container *ngIf=\"actionAdd\">\n    <ng-container [ngTemplateOutlet]=\"actionAdd\"></ng-container>\n  </ng-container>\n</div>\n<div *ngIf=\"totalShare === 0\" class=\"share-container\">\n  <div *ngIf=\"actionCurrent !== action.LIST\" class=\"title-share\">{{titleAction | translate}}</div>\n</div>\n\n<div [class.current]=\"actionCurrent === action.LIST\" class=\"container-publish overflow-auto\">\n  <div *ngIf=\"totalShare > 0\">\n    <div (click)=\"showInfo(i)\" *ngFor=\"let itemShare of listOrganShare;let i =index;\"\n         class=\"w-100 d-flex flex-wrap px-2 rowItem\">\n      <div [attr.aria-expanded]=\"!indexShowInfo\"\n           class=\"d-flex w-100 justify-content-between\" style=\"min-height: 37px; cursor: pointer\">\n        <div class=\"d-flex align-items-center\">\n          <img (error)=\"onImgError($event)\" (load)=\"onLoaded($event)\"\n               [src]=\"itemShare.sharedObject | urlImage: itemShare?.type\" alt=\"{{itemShare.name}}\"\n               class=\"icon icon-default\">\n          <div *ngIf=\"!itemShare.name\" class=\"ml-2\">{{itemShare?.sharedObject | nameShare: {\n            type: itemShare.type,\n            arrOrganization: listOrgan,\n            arrPersonal: []\n          } }}</div>\n          <div *ngIf=\"itemShare.name\"\n               class=\"ml-2\">{{itemShare.name || itemShare[itemShare.sharedObject] || itemShare.sharedObject}}</div>\n        </div>\n        <div class=\"d-flex align-items-center\">\n          <button (click)=\"onCopyPath(itemShare.uuid);$event.stopPropagation();\"\n                  class=\"btn-custom btn-custom-icon\"\n                  type=\"button\">\n            <i class=\"fa fa-clipboard f-17\"\n               placement=\"bottom\"\n               tooltip=\"{{'VISUALIZE.CHART.FIELD.COPY_SCR' | translate}}\"></i>\n          </button>\n          <button (click)=\"selectOrgan(itemShare, action.UN_PUBLISH);$event.stopPropagation();\"\n                  class=\"btn btn-custom btn-custom-icon\"\n                  type=\"button\">\n            <i class=\"fa fa-trash-o f-17 pointer text-danger\"\n               placement=\"left\"\n               tooltip=\"{{'VISUALIZE.CHART.FIELD.ACTION_DELETE'|translate}}\"></i>\n          </button>\n        </div>\n      </div>\n      <div [collapse]=\"!(i === indexShowInfo)\" [isAnimated]=\"true\" class=\"w-100\"\n           style=\"margin-left: 30px; margin-top: -10px; padding-bottom: 5px;\">\n        <div class=\"d-flex w-100 mt-1\">\n          <span style=\"width: 40%\">{{'VISUALIZE.CHART.FIELD.SHARE_TIMER' | translate}}:  </span>\n          <span class=\"w-50\">{{itemShare.started | date : 'dd/MM/yyyy'}} - <span\n            *ngIf=\"itemShare.expired > 0\">{{itemShare.expired | date : 'dd/MM/yyyy'}}</span></span>\n        </div>\n        <div class=\"d-flex w-100 mt-1\">\n          <span style=\"width: 40%\">{{'VISUALIZE.CHART.FIELD.TITLE_BRIEF'|translate}}: </span>\n          <span class=\"w-50\">{{itemShare.message}}</span>\n        </div>\n      </div>\n    </div>\n    <tr *ngIf=\"totalShare === 0\">\n      <td class=\"text-center\" colspan=\"2\">{{'VISUALIZE.CHART.FIELD.SHARE_EMPTY'|translate}}</td>\n    </tr>\n  </div>\n  <div *ngIf=\"!loading && totalShare === 0\" class=\"empty-data\">\n    <div class=\"no-data\"></div>\n    <span class=\"mb-1 text-top f-13\">{{'VISUALIZE.CHART.FIELD.SHARE_EMPTY'|translate}}</span>\n    <ng-container *ngIf=\"actionAdd\">\n      <ng-container [ngTemplateOutletContext]=\"{titleBtn: 'VISUALIZE.CHART.FIELD.ADD' | translate}\"\n                    [ngTemplateOutlet]=\"actionAdd\"></ng-container>\n    </ng-container>\n  </div>\n</div>\n\n<div [class.current]=\"actionCurrent === action.SELECT || actionCurrent === action.EDIT\" class=\"container-publish\">\n  <div class=\"content-select\">\n    <div class=\"d-flex w-100 align-items-center justify-content-between\">\n      <label (click)=\"onSelectList()\" class=\"title\" for=\"organList\">{{'VISUALIZE.CHART.FIELD.SHARE_FOR' | translate}}\n        <span class=\"text-danger\">*</span></label>\n      <div class=\"d-flex\">\n        <label (click)=\"onTypePublish(typeShare.PERSONAL)\" class=\"custom-radio px-3 mr-3\">\n          <input [checked]=\"typeCurrent === typeShare.PERSONAL\"\n                 class=\"custom-control-input form-check-input\" id=\"personal\" name=\"type\"\n                 type=\"radio\" value=\"{{typeShare.PERSONAL}}\">\n          <label class=\"custom-control-label border-checkbox\"\n                 for=\"personal\">{{'VISUALIZE.CHART.FIELD.SHARE_PERSONAL' | translate}}</label>\n        </label>\n        <label (click)=\"onTypePublish(typeShare.ORGANIZATION)\" class=\"custom-radio px-3\">\n          <input [checked]=\"typeCurrent === typeShare.ORGANIZATION\"\n                 class=\"custom-control-input form-check-input\" id=\"organization\" name=\"type\"\n                 type=\"radio\" value=\"{{typeShare.ORGANIZATION}}\">\n          <label class=\"custom-control-label border-checkbox\"\n                 for=\"organization\">{{'VISUALIZE.CHART.FIELD.SHARE_ORGANIZATION' | translate}}</label>\n        </label>\n      </div>\n    </div>\n    <div *ngIf=\"typeCurrent === typeShare.ORGANIZATION\" [class.current]=\"typeCurrent === typeShare.ORGANIZATION\"\n         class=\"container-share-search\">\n      <ng-select #organSelects\n                 (change)=\"chooseOrgan($event)\" (scrollToEnd)=\"loadOrganScroll()\"\n                 [clearable]=\"false\"\n                 [items]=\"listOrgan | filterOrgan: {arr: listOrganShare, prop: 'organId'}\"\n                 [typeahead]=\"searchInput$\"\n                 [virtualScroll]=\"true\"\n                 bindLabel=\"orgName\"\n                 bindValue=\"organId\"\n                 id=\"organList\"\n                 notFoundText=\"{{'VISUALIZE.FIELD.TITTLE.NO_DATA_DISPLAY' | translate}}\"\n                 placeholder=\"{{'VISUALIZE.CHART.FIELD.CHOOSE_ITEM_SHARE' | translate}}\">\n        <ng-template ng-label-tmp>\n          <div *ngIf=\"organSelect\" class=\"d-flex align-items-center\">\n            <img (error)=\"onImgError($event)\" (load)=\"onLoaded($event)\" [src]=\"organSelect?.organId | urlImage\"\n                 alt=\"{{organSelect?.orgName}}\" class=\"icon icon-default mr-2\">\n            <div class=\"text-truncate f-12\">{{organSelect?.orgName}}</div>\n          </div>\n          <div *ngIf=\"!organSelect\" class=\"d-flex align-items-center\">\n            <div class=\"text-truncate f-12\">{{'VISUALIZE.CHART.FIELD.CHOOSE_ITEM_SHARE' | translate}}</div>\n          </div>\n        </ng-template>\n        <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-option-tmp>\n          <div class=\"d-flex align-items-center\">\n            <img (error)=\"onImgError($event)\" (load)=\"onLoaded($event)\" [src]=\"item.organId | urlImage\"\n                 alt=\"{{item.name}}\" class=\"icon icon-default mr-2\">\n            <div class=\"text-truncate f-12\">{{item?.orgName}}</div>\n          </div>\n        </ng-template>\n      </ng-select>\n    </div>\n    <div [class.current]=\"typeCurrent === typeShare.PERSONAL\" class=\"container-share-search\">\n      <input #personSearch (keydown)=\"onSearch($event)\"\n             (keydown.enter)=\"onHandelKeyupEnter()\"\n             class=\"form-control form-control-sm\"\n             placeholder=\"{{!personSearch.textContent && !usernamePerson ? ('VISUALIZE.CHART.FIELD.SHARE_PERSON_MSG'|translate) : null}}\"\n             type=\"text\">\n      <div (click)=\"personSearch.focus()\" [class.hide]=\"searchPerson.hideText ||  !usernamePerson\" class=\"result-text\">\n        <div *ngIf=\"!!searchPerson.username\" class=\"d-flex align-items-center\">\n          <img (error)=\"onImgError($event)\" (load)=\"onLoaded($event)\"\n               [src]=\"searchPerson.username | urlImage: typeShare.PERSONAL\" alt=\"{{searchPerson.username}}\"\n               class=\"icon icon-default mr-2\">\n          <div class=\"text-truncate \">{{searchPerson.username}}</div>\n        </div>\n        <!--  <div *ngIf=\"!usernamePerson\"\n               class=\"text-placeholder\">{{'VISUALIZE.CHART.FIELD.SHARE_PERSON_MSG' | translate }}</div>-->\n      </div>\n      <div (click)=\"onHandelKeyupEnter()\" *ngIf=\"searchPerson.search\" class=\"pos-icon pointer\"><i\n        class=\"fa fa-search\"></i></div>\n      <div *ngIf=\"searchPerson.isLoading\" class=\"pos-icon\"><i class=\"fa fa-spinner fa-pulse fa-fw\"></i></div>\n      <div (click)=\"onRemovePerson()\" *ngIf=\"searchPerson.remove\" class=\"pos-icon pointer\"><i class=\"fa fa-times\"></i>\n      </div>\n      <div [class.error]=\"isFindPerson\"\n           class=\"text-danger text-find\">{{(!isExist ? 'VISUALIZE.CHART.FIELD.SHARE_FIND_ERROR' : 'VISUALIZE.CHART.FIELD.SHARE_FIND_EXIST') | translate}}</div>\n      <div [class.error]=\"regexEmail\"\n           class=\"text-danger text-find\">{{'VISUALIZE.CHART.FIELD.SHARE_REGEX_MSG' | translate}}</div>\n<!--      <div [class.error]=\"owner\"\n           class=\"text-warning text-find\">{{'VISUALIZE.CHART.FIELD.UNABLE_SHARE_ONESELF' | translate}}</div>-->\n    </div>\n  </div>\n  <form [formGroup]=\"shareForm\" class=\"publish-content\">\n    <ng-container *ngIf=\"!!organSelect || !!usernamePerson\">\n      <div class=\"my-1\">\n        <div class=\"content-select\">\n          <label class=\"title\">{{'VISUALIZE.CHART.FIELD.SHARE_TIMER' | translate}}</label>\n          <div class=\"d-flex justify-content-between align-items-center\">\n            <div class=\"calendar-group\">\n              <input #started=\"bsDatepicker\" [(bsValue)]=\"startDate\"\n                     [bsConfig]=\"{ dateInputFormat: 'DD/MM/YYYY'}\"\n                     [minDate]=\"minDay\" bsDatepicker class=\"form-control form-control-sm\" id=\"dateStart\"\n                     placeholder=\"{{'VISUALIZE.CHART.FIELD.SHARE_STARTED' | translate}}\" placement=\"left\">\n              <span (click)=\"started.toggle()\" class=\"calendar-icon\"><i class=\"fa fa-calendar\"></i></span>\n            </div>\n            <span class=\"mx-1\">-</span>\n            <div class=\"calendar-group\">\n              <input #expired=\"bsDatepicker\"\n                     [(bsValue)]=\"endDate ? (endDate < startDate ? startDate : endDate) : endDate\"\n                     [bsConfig]=\"{ dateInputFormat: 'DD/MM/YYYY'}\"\n                     [minDate]=\"startDate || minDay\" bsDatepicker class=\"form-control form-control-sm\" id=\"dateEnd\"\n                     placeholder=\"{{'VISUALIZE.CHART.FIELD.SHARE_EXPIRED' | translate}}\" placement=\"left\">\n              <span (click)=\"expired.toggle()\" class=\"calendar-icon\"><i class=\"fa fa-calendar\"></i></span>\n            </div>\n          </div>\n        </div>\n        <div class=\"content-select\">\n          <label class=\"title\" for=\"message\">{{'VISUALIZE.CHART.FIELD.SHARE_MESSAGE' | translate}}</label>\n          <textarea class=\"form-control form-control-sm\" formControlName=\"message\" id=\"message\"\n                    placeholder=\"\"></textarea>\n        </div>\n      </div>\n    </ng-container>\n  </form>\n  <div *ngIf=\"actionCurrent === action.SELECT\" class=\"content-action 1\">\n    <button (click)=\"onPublishOrgan()\" [disabled]=\"shareForm.invalid\"\n            class=\"btn btn-custom btn-custom-primary w-100\">{{'VISUALIZE.CHART.FIELD.ADD' |translate}}</button>\n    <button (click)=\"toggleShare(actionCurrent)\"\n            class=\"btn btn-custom btn-custom-line-primary w-100\">{{'VISUALIZE.FIELD.TITTLE.CANCEL' |translate}}</button>\n  </div>\n  <div *ngIf=\"actionCurrent === action.EDIT\" class=\"content-action\">\n    <button class=\"btn btn-custom btn-custom-primary w-100\">{{'VISUALIZE.CHART.FIELD.UPDATE' |translate}}</button>\n    <button class=\"btn btn-custom btn-custom-line-primary w-100\">{{'VISUALIZE.FIELD.TITTLE.CANCEL' |translate}}</button>\n  </div>\n</div>\n<app-confirm-dialog #deleteModal\n                    [content]=\"msgContentDel | translate\"\n                    [isNoQuestion]=\"true\"\n                    [title]=\"'VISUALIZE.CHART.FIELD.SHARE_DELETE_TITLE' | translate\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n      <i aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"unPublished()\" class=\"btn btn-sm mx-1 btn-custom btn-danger\">\n      <i aria-hidden=\"true\" class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n<ng-template #actionAdd let-hideBtn=\"hideBtn\" let-titleBtn=\"titleBtn\">\n  <button (click)=\"toggleShare(actionCurrent)\" *ngIf=\"actionCurrent !== action.EDIT\"\n          [class.hide]=\"hideBtn\"\n          [ngClass]=\"!!titleBtn ? 'btn-custom' : 'btn-circle-query'\"\n          [tooltip]=\"'VISUALIZE.CHART.FIELD.TITLE_CHOOSE_UNIT' | translate\"\n          class=\" btn-custom-line-primary mr-2\"\n          placement=\"bottom\"><span *ngIf=\"!!titleBtn\" class=\"mr-1\">{{titleBtn}}</span><i class=\"fa fa-plus f-14\"></i>\n  </button>\n</ng-template>\n","import {Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from \"@angular/forms\";\nimport {TabsetComponent} from \"ngx-bootstrap/tabs\";\nimport {CoreService, ErrorMessage, NotificationService} from \"inet-core\";\nimport {Router} from \"@angular/router\";\nimport {CHART, CHART_PLUGIN, EXPLORE, PUBLISH, VIEW, VIEW_PUBLISH, TEMPLATE, MAPPING, CUSTOM} from \"../constants/constants\";\nimport {ChartItem} from \"../../model/chart\";\nimport * as DocumentActions from \"../../core/store/actions/navigation.action\";\nimport {Store} from \"@ngrx/store\";\nimport {IAppState} from \"../../core/store/state/app.state\";\nimport {ChartService} from \"../chart.service\";\nimport * as RightbarActions from '../../core/store/actions/rightbar.action';\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ChartShareRightBarComponent} from \"../chart-share-right-bar/chart-share-right-bar.component\";\nimport {publishSelector} from \"../../core/store/selectors/publish.selector\";\nimport {templateSelector} from \"../../core/store/selectors/template.selector\";\nimport {ChartPublishDialogComponent} from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport {updateNavigate} from \"../../core/store/actions/chart-bind.action\";\nimport {ShareService} from \"../../share/share.service\";\nimport { IResponse } from '../model/chart';\nimport { decode } from 'js-base64';\nimport {\n  EVizType,\n  IFormDataChord,\n  IFormDataGauge,\n  IFormDataHeatmap,\n  IFormDataParallel,\n  IFormDataPartition,\n  IFormDataPie,\n  IFormDataRadar,\n  IFormDataSunburst,\n} from '../model/chart';\nimport {\n  IColumnParam,\n  Schemas,\n  getColumnChartChord,\n  getColumnChartGauge,\n  getColumnChartHeatmap,\n  getColumnChartParallel,\n  getColumnChartPartition,\n  getColumnChartPie,\n  getColumnChartRadar,\n  getColumnChartSunburst,\n} from '../../core/utils/get-column-chart';\nimport { ITemplate } from '../../core/store/state/document.state';\nimport {OnTemplate} from \"../../layout-common/layout-common-constants\";\nimport { EVizType as EVizTypes} from '../model/chart-custom';\n\n@Component({\n  selector: 'app-chart-right-bar',\n  templateUrl: './chart-right-bar.component.html',\n  styleUrls: ['./chart-right-bar.component.scss']\n})\nexport class ChartRightBarComponent implements OnInit, OnChanges, OnDestroy {\n  @ViewChild('chartShare', {static: false}) chartShare?: ChartShareRightBarComponent\n  @Input() chart: any;\n  @Input() view: boolean = false;\n  @Input() isPlugin: boolean = false;\n  @Output() close = new EventEmitter<boolean>();\n  @Output() delete = new EventEmitter<any>();\n  @Output() reloadPage = new EventEmitter<any>()\n  @ViewChild('staticTabs', {static: false}) staticTabs?: TabsetComponent;\n  @Input() isEdit: boolean = false;\n  @ViewChild(ChartPublishDialogComponent) dialogPublish!: ChartPublishDialogComponent;\n  chartEditForm: FormGroup;\n  chartItem: ChartItem;\n  pathModule: string = CHART;\n  tab: string = \"detail\";\n\n  @Input() isChild = true;\n  @Input() columnsParams: IColumnParam[] = [];\n  uuidChart: string;\n  isPublishTemplate: boolean = true;\n\n  schemas: Schemas;\n  formData: any;\n  urlImgLoading: string;\n  param: any;\n  @Output() chartPublish = new EventEmitter<ChartItem>();\n  storeTemplate: any;\n  hasVisualizePlus: boolean = false;\n\n  //@Output() chartCopyItem = new EventEmitter<any>()\n\n  constructor(\n    private fb: FormBuilder,\n    private router: Router,\n    private store: Store<IAppState>,\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private translate: TranslateService,\n    private shareService: ShareService,\n    private coreService: CoreService,) {\n      this.urlImgLoading = this.coreService.getImageUrlFromModule(\n        \"loading.gif\",\n        \"visualcommon\"\n      );\n      this.initForm();\n      this.chartService.hasModule('visualizeplus').subscribe((res:boolean) => {\n        this.hasVisualizePlus = res;\n      })\n  }\n\n  ngOnInit(): void {\n    this.isPlugin ? this.pathModule = CHART_PLUGIN : this.pathModule = CHART;\n    this.storeTemplate = this.store.select(templateSelector).subscribe((res:ITemplate) => {\n      this.isPublishTemplate = res.isTemplatePublish;\n      if(res.isTemplatePublish) {\n        if(res.uuid) {\n          this.getColumnsTemplate(res.uuid);\n        }\n      }\n    })\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!!changes && !!changes['chart'] && !!changes['chart'].currentValue) {\n      let item = changes['chart'].currentValue;\n      this.chartItem = item.design || item;\n      this.onTabChange()\n      this.isEdit = item.isEdit || false;\n      if (!!this.chartItem && !!this.chartEditForm) {\n        this.chartEditForm.patchValue(this.chartItem);\n      }\n    }\n\n    if (changes[\"isEdit\"]) {\n      this.isEdit = changes[\"isEdit\"].currentValue || false;\n      this.onTabChange();\n    }\n\n    if('uuidChart' in changes) {\n      if(this.uuidChart) {\n        this.getColumnsTemplate(this.uuidChart);\n      }\n    }\n  }\n\n  initForm() {\n    this.chartEditForm = this.fb.group({\n      name: [null, Validators.required],\n      title: [null, ''],\n      desc: [null, null],\n\n    });\n  }\n\n  closeRightbar() {\n    this.close.emit(false);\n    this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: false}));\n  }\n\n  clearNavigate() {\n    this.store.dispatch(DocumentActions.navClear());\n  }\n\n  viewChart() {\n    // this.isPublishTemplate = false;\n    /* this.clearNavigate();\n     this.store.dispatch(DocumentActions.navPushFolder({data: {...this.chartItem, ...{router: CHART + '/' + this.chartItem.uuid}}}))*/\n    // this.router.navigate(['/', CHART, this.chartItem.uuid, VIEW])\n    this.store.dispatch(DocumentActions.navPushFolder({data: {...this.chartItem, ...{router: CHART + '/' + this.chartItem.uuid}}}))\n    if ('fields' in this.chartItem) {\n      this.router.navigate(['/', CHART, MAPPING, VIEW], {\n        queryParams: {\n          uuid: this.chartItem.uuid\n        },\n      });\n    } else {\n      switch (this.chartItem.type) {\n        case EVizTypes.HTML_TEMPLATE:\n        case EVizTypes.BAR_COMPARE:\n          this.router.navigate(['/', CHART, CUSTOM, VIEW], {\n            queryParams: {\n              uuid: this.chartItem.uuid\n            },\n          });\n          break;\n        default:\n          this.router.navigate(['/', CHART, this.chartItem.uuid, VIEW]);\n          break;\n      }\n    }\n  }\n\n  onDelete() {\n    this.delete.emit(this.chartItem)\n  }\n\n  nextToEdit() {\n    /* this.clearNavigate();\n     // this.store.dispatch(DocumentActions.navPushFolder({data: {...this.chartItem, ...{router: CHART + '/' + this.chartItem.uuid}}}))*/\n    // this.router.navigate(['/', CHART, this.chartItem.uuid, EXPLORE])\n    // this.isPublishTemplate = false;\n    this.store.dispatch(DocumentActions.navPushFolder({data: {...this.chartItem, ...{router: CHART + '/' + this.chartItem.uuid}}}))\n    if ('fields' in this.chartItem) {\n      this.router.navigate([`/${CHART}/${MAPPING}`], {\n        queryParams: {\n          uuid: this.chartItem.uuid\n        },\n      });\n    } else {\n      /*switch (this.chartItem.type) {\n        case EVizTypes.EVALUATE_COMPARE:\n        case EVizTypes.INFO:\n        case EVizTypes.TARGETS:\n        case EVizTypes.BAR_COMPARE:\n          this.router.navigate([`/${CHART}/${CUSTOM}`], {\n            queryParams: {\n              uuid: this.chartItem.uuid\n            },\n          });\n          break;\n        default:\n          this.router.navigate(['/', CHART, this.chartItem.uuid, EXPLORE]);\n          break;\n      }*/\n      const a = [[`/${CHART}/${CUSTOM}`],[CHART, this.chartItem.uuid, EXPLORE]]\n      OnTemplate(this.chartItem, this.router, a)\n    }\n  }\n\n  onTemplate() {\n    const a = [[CHART, 'create', TEMPLATE],[CHART, this.chartItem.uuid, TEMPLATE]]\n    OnTemplate(this.chartItem, this.router, a)\n  }\n\n  isFormValid() {\n    const name = this.chartEditForm.get('name').value;\n    const title = this.chartEditForm.get('title').value;\n    return name && title;\n  }\n\n  onSave() {\n    const params = {\n      uuid: this.chartItem.uuid,\n      name: this.chartEditForm.get('name').value,\n      title: this.chartEditForm.get('title').value,\n      desc: this.chartEditForm.get('desc').value,\n    };\n    let mess, messFail, noti;\n    this.translate.get(['VISUALIZE.CHART.FIELD.UPDATE_CHART_SUCCESS', 'VISUALIZE.CHART.FIELD.UPDATE_CHART_FAIL', 'VISUALIZE.FIELD.TITTLE.NOTIFICATION'])\n      .subscribe((data) => {\n        mess = data['VISUALIZE.CHART.FIELD.UPDATE_CHART_SUCCESS'];\n        messFail = data['VISUALIZE.CHART.FIELD.UPDATE_CHART_FAIL'];\n        noti = data['VISUALIZE.FIELD.TITTLE.NOTIFICATION'];\n      });\n    this.chartService.updateFieldID(params).subscribe((value) => {\n      const message = value.type !== ErrorMessage.TYPE ? mess :\n        messFail;\n      if (value.type !== ErrorMessage.TYPE) {\n        this.chartItem = value;\n        this.reloadPage.emit(value);\n        this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: false}));\n        this.store.dispatch(updateNavigate({data: value}))\n        this.isEdit = false;\n      } else {\n        this.chartItem = this.chartItem;\n      }\n      this.notification.showMessage(message, value.type !== ErrorMessage.TYPE ? \"success\" : \"error\", noti);\n    });\n  }\n\n  onCancelEdit() {\n    this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: false}));\n    this.isEdit = false\n  }\n\n  onEditTab() {\n    // this.isPublishTemplate = false;\n    this.isEdit = true;\n    if (this.staticTabs?.tabs[0]) {\n      this.staticTabs.tabs[0].active = true;\n    }\n  }\n\n  onTabChange(tab?: number): void {\n    if (tab != undefined) {\n      if (this.staticTabs?.tabs[tab]) {\n        this.staticTabs.tabs[tab].active = true;\n      }\n      if (tab === 1) {\n        this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: false}));\n        this.isEdit = false;\n        // load data chart share\n        this.chartShare.loadShareItems();\n        this.chartShare.actionCurrent = this.chartShare.action.LIST;\n      }\n    } else {\n      if (this.staticTabs?.tabs[0]) {\n        this.staticTabs.tabs[0].active = true;\n      }\n    }\n  }\n\n  onActionPublish() {\n    this.chartPublish.emit(this.chartItem)\n  }\n\n  onCopyPath() {\n    this.shareService.copyPath(this.chartItem.sharedUuid).subscribe(status => {\n      let key = status ? 'VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS' : 'VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD'\n      this.notification.showMessage(this.translate.instant(key), status ? 'success' : 'error', 'Visualize')\n    })\n  }\n\n  onViewPublish() {\n      this.router.navigate(['/', CHART, this.chartItem.sharedUuid, VIEW_PUBLISH], {\n        queryParams: {\n          isViewPublish: true,\n          isCenter: this.isChild\n        }\n      })\n  }\n\n  /*  updateActionPublish($event: any) {\n      this.chartPublish.emit($event);\n      const item = JSON.parse(JSON.stringify(this.chartItem));\n      item.sharedUuid = $event.uuid || undefined;\n      this.chartItem = JSON.parse(JSON.stringify(item));\n    }*/\n  getColumnsTemplate(uuid: string) {\n    this.chartService.loadChart({uuid}).subscribe((res: IResponse) => {\n      if(typeof res.attribute === 'string') {\n        res.attribute = JSON.parse(decode(res.attribute));\n      }\n      this.formData = res.attribute.formData;\n      this.schemas = res.attribute.schemas;\n      switch (this.formData.viz_type) {\n        case EVizType.PIE:\n          const formDataPie = this.formData as IFormDataPie;\n          this.columnsParams = getColumnChartPie(formDataPie, this.schemas);\n          break;\n        case EVizType.CHORD:\n          const formDataChord = this.formData as IFormDataChord;\n          this.columnsParams = getColumnChartChord(formDataChord, this.schemas);\n          break;\n        case EVizType.HEATMAP:\n          const formDataHeatmap = this.formData as IFormDataHeatmap;\n          this.columnsParams = getColumnChartHeatmap(\n            formDataHeatmap,\n            this.schemas\n          );\n          break;\n        case EVizType.SUNBURST:\n          const formDataSunburst = this.formData as IFormDataSunburst;\n          this.columnsParams = getColumnChartSunburst(\n            formDataSunburst,\n            this.schemas\n          );\n          break;\n        case EVizType.PARTITION:\n          const formDataPartition = this.formData as IFormDataPartition;\n          this.columnsParams = getColumnChartPartition(\n            formDataPartition,\n            this.schemas\n          );\n          break;\n        case EVizType.PARA:\n          const formDataPara = this.formData as IFormDataParallel;\n          this.columnsParams = getColumnChartParallel(\n            formDataPara,\n            this.schemas\n          );\n          break;\n        case EVizType.GAUGE_CHART:\n          const formDataGauge = this.formData as IFormDataGauge;\n          this.columnsParams = getColumnChartGauge(\n            formDataGauge,\n            this.schemas\n          );\n          break;\n        case EVizType.RADAR:\n          const formDataRadar = this.formData as IFormDataRadar;\n          this.columnsParams = getColumnChartRadar(\n            formDataRadar,\n            this.schemas\n          );\n          break;\n        default:\n          break;\n      }\n      setTimeout(() => {\n        if(this.columnsParams.length > 0) {\n          const descs = document.querySelectorAll('.desc-column');\n          descs.forEach((des:HTMLInputElement, index) => {\n            if(index === 0) {\n              des.focus();\n            }\n          })\n        }\n      }, 1)\n    })\n  }\n  onChangeDes(event: Event) {\n    const name = (event.target as HTMLInputElement).getAttribute('name');\n    this.columnsParams = this.columnsParams.map((col:IColumnParam) => {\n      if(col.name === name) {\n        col.desc = (event.target as HTMLInputElement).value;\n      }\n      return col;\n    });\n  }\n  onPublishAsTemplate() {\n    this.isPublishTemplate = true;\n    this.isEdit = false;\n    if(this.chartItem) {\n      this.getColumnsTemplate(this.chartItem.uuid);\n    }\n  }\n  ngOnDestroy(): void {\n    this.storeTemplate.unsubscribe();\n  }\n}\n","<app-right-bar [btnBackTemplate]=\"btnBackTemplate\"\n               [btnTemplate]=\"!isChild ? btnTemplate: null\"\n               [header]=\"chartItem?.name\"\n               [title]=\"chartItem?.name\"\n               [isChild]=\"false\"\n               [tabTemplate]=\"tabTemplate\"\n               [isPublishTemplate]=\"isPublishTemplate\"\n               >\n  <ng-template #btnBackTemplate>\n    <button (click)=\"closeRightbar()\" class=\"btn-custom btn-custom-icon\"><i aria-hidden=\"true\"\n                                                                            class=\"fa fa-angle-right f-20\"></i>\n    </button>\n  </ng-template>\n  <ng-template #btnTemplate>\n    <button (click)=\"viewChart()\" *ngIf=\"view\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.CHART.FIELD.VIEW'|translate}}\">\n      <span class=\"fa fa-eye f-20\"></span></button>\n    <button (click)=\"nextToEdit()\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.CHART.FIELD.ACTION_EDIT'|translate}}\">\n      <span class=\"fa fa-pencil f-20\"></span>\n    </button>\n    <button *ngIf=\"!chartItem.fields && hasVisualizePlus\" (click)=\"onTemplate()\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE'|translate}}\">\n      <i class=\"fa fa-object-ungroup f-17\"></i>\n    </button>\n    <button (click)=\"onEditTab()\" [ngClass]=\"isEdit ? 'active': ''\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.FIELD.EDIT_INFO'|translate}}\">\n      <i aria-hidden=\"true\" class=\"fa fa-pencil-square-o f-20\"></i>\n    </button>\n    <button (click)=\"onActionPublish()\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{!chartItem.sharedUuid ? ('VISUALIZE.CHART.FIELD.ACTION_PUBLISH'|translate)\n             : ('VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'|translate)}}\"><i\n      [ngClass]=\"!chartItem.sharedUuid ? 'fa-globe' : 'fa-link'\" class=\"fa  f-20\"></i></button>\n    <button (click)=\"onDelete()\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.CHART.FIELD.ACTION_DELETE'|translate}}\">\n      <span class=\"fa fa-trash-o text-danger f-20\"></span>\n    </button>\n  </ng-template>\n\n  <!-- <ng-template #publishTemplate>\n    <div class=\"publish-template\">\n      <div class=\"title-nav-tab\">{{'VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE' | translate}}</div>\n      <div class=\"template-body\">\n        <img\n          [src]=\"urlImgLoading\"\n          alt=\"img-loading\"\n          [ngStyle]=\"columnsParams.length > 0 ? { display: 'none' } : { display: 'block' }\"\n        />\n        <div class=\"table-template\" *ngIf=\"columnsParams.length > 0\">\n          <div class=\"list-column\">\n            <table>\n              <thead>\n                <tr>\n                  <th>{{'VISUALIZE.CHART.FIELD.NAME' | translate}}</th>\n                  <th>{{'VISUALIZE.CHART.COLUMN.TYPE' | translate}}</th>\n                  <th>{{'VISUALIZE.CHART.FIELD.TITLE_BRIEF' | translate}}</th>\n                </tr>\n              </thead>\n              <tbody>\n                <tr *ngFor=\"let column of columnsParams; let i = index;\">\n                  <td> {{column.name}} </td>\n                  <td> {{column.type}} </td>\n                  <td>\n                    <input type=\"text\" name=\"{{column.name}}\" class=\"desc-column\" placeholder=\"{{'VISUALIZE.CHART.FIELD.ENTER_BRIEF' | translate}}\" (change)=\"onChangeDes($event)\">\n                  </td>\n                </tr>\n              </tbody>\n            </table>\n          </div>\n          <div class=\"action-template\">\n            <button class=\"btn btn-custom btn-custom-primary w-100 mb-2\">{{'VISUALIZE.CHART.FIELD.UPDATE' |translate}}</button>\n              <button class=\"btn btn-custom btn-custom-line-primary w-100 p-3\">{{'VISUALIZE.FIELD.TITTLE.CANCEL' |translate}}</button>\n          </div>\n        </div>\n      </div>\n    </div>\n  </ng-template> -->\n  <ng-template #tabTemplate>\n    <tabset #staticTabs [justified]=\"true\">\n      <tab>\n        <ng-template tabHeading>\n          <div (click)=\"onTabChange(0)\" class=\"title-nav-tab\">{{'VISUALIZE.FIELD.TITTLE.INFO'|translate}}</div>\n        </ng-template>\n        <div *ngIf=\"isEdit===false\" [ngClass]=\"isPlugin  ?'h-100':''\" class=\"height-tab-view\">\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE'|translate}}</div>\n            <div class=\"middle-detail\"\n                 style=\"word-break: break-word\">\n              {{chartItem?.title}}\n            </div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_BRIEF'|translate}}</div>\n            <div class=\"middle-detail\" style=\"word-break: break-word\">{{chartItem?.desc}}</div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_CATEGORY'|translate}}</div>\n            <div class=\"middle-detail\">{{chartItem?.typeName}}</div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_DATASET'|translate}}</div>\n            <div class=\"middle-detail text-lowercase\" style=\"word-break: break-word;\">{{chartItem?.dsType+'.'+chartItem?.dsCategory+'.'+chartItem?.dsTable}}</div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_CREATOR'|translate}}</div>\n            <div class=\"middle-detail\">{{chartItem?.creatorName}}</div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_CREATE_DATE'|translate}}</div>\n            <div class=\"middle-detail\">{{chartItem?.createdDate | date: 'dd/MM/yyyy HH:mm:ss'}}</div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_EDITOR'|translate}}</div>\n            <div *ngIf=\"chartItem?.lastModifierName\" class=\"middle-detail\">{{chartItem?.lastModifierName}}</div>\n          </div>\n          <div class=\"content-detail\">\n            <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_DAY_UPDATE'|translate}}</div>\n            <div *ngIf=\"chartItem?.lastModifiedDate\"\n                 class=\"middle-detail\">{{chartItem?.lastModifiedDate | date: 'dd/MM/yyyy HH:mm:ss'}}</div>\n          </div>\n          <div *ngIf=\"chartItem?.sharedUuid\" class=\"content-detail\">\n            <div\n              class=\"left-detail d-flex align-items-center\">{{'VISUALIZE.CHART.FIELD.ACTION_PUBLISH'|translate}}</div>\n            <div class=\"middle-detail\">{{chartItem?.createdDate | date: 'dd/MM/yyyy HH:mm:ss'}}\n              <button (click)=\"onViewPublish()\"\n                      class=\"btn-custom btn-custom-icon ml-2\"\n                      tooltip=\"{{'VISUALIZE.CHART.FIELD.VIEW_CHART_PUBLISH'|translate}}\">\n                <span class=\"fa fa-desktop f-17\"></span>\n              </button>\n              <button (click)=\"onCopyPath()\"\n                      class=\"btn-custom btn-custom-icon\"\n                      placement=\"left\"\n                      tooltip=\"{{'VISUALIZE.CHART.FIELD.COPY_SCRIPT'|translate}}\">\n                <i class=\"fa fa-clipboard f-17\"></i>\n              </button>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"isEdit===true\" class=\"height-tab-view\">\n          <div class=\"content-edit\">\n            <form [formGroup]=\"chartEditForm\">\n              <div class=\"form-group\">\n                <div class=\"content-select\">\n                  <label class=\"title\" for=\"nameChart\">{{'VISUALIZE.CHART.FIELD.LABEL_NAME' | translate}}:</label>\n                  <div class=\"input-group\">\n                    <textarea class=\"form-control form-control-sm\" formControlName=\"name\" id=\"nameChart\" placeholder=\"\"\n                              required\n                              rows=\"2\"></textarea>\n                  </div>\n                  <div *ngIf=\"chartEditForm.controls['name'].invalid && chartEditForm.controls['name'].touched\"\n                       class=\"text-danger mt-2 text-df\">\n                    <div *ngIf=\"chartEditForm.controls['name'].errors.required\" class=\"position-absolute\">\n                      <i class=\"fa fa-exclamation-triangle mr-1\"></i>{{'VISUALIZE.FIELD.NAME_NOT_NULL' | translate}}\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div class=\"form-group\">\n                <div class=\"content-select\">\n                  <label class=\"title\" for=\"titleChart\">{{'VISUALIZE.CHART.FIELD.TITLE'| translate}}:</label>\n                  <div class=\"input-group\">\n                    <textarea class=\"form-control form-control-sm\" formControlName=\"title\" id=\"titleChart\"\n                              placeholder=\"\" required rows=\"2\">\n                    </textarea>\n                  </div>\n                  <div *ngIf=\"chartEditForm.controls['title'].invalid && chartEditForm.controls['title'].touched\"\n                       class=\"text-danger mt-2 text-df\">\n                    <div *ngIf=\"chartEditForm.controls['title'].errors.required\" class=\"position-absolute\">\n                      <i class=\"fa fa-exclamation-triangle mr-1\"></i>\n                      {{'VISUALIZE.FIELD.TITLE_NOT_NULL' | translate}}\n                    </div>\n                  </div>\n                </div>\n              </div>\n\n              <div class=\"form-group\">\n                <div class=\"content-select\">\n                  <label class=\"title\" for=\"descChart\">{{'VISUALIZE.CHART.FIELD.TITLE_BRIEF' | translate}}:</label>\n                  <div class=\"input-group\">\n                    <textarea class=\"form-control form-control-sm\" formControlName=\"desc\" id=\"descChart\" placeholder=\"\"\n                              rows=\"4\"></textarea>\n                  </div>\n                </div>\n              </div>\n            </form>\n          </div>\n\n          <div class=\"content-select mt-3\">\n            <button (click)=\"onSave()\" [disabled]=\"!isFormValid()\"\n                    class=\"btn btn-custom btn-custom-primary w-100 mb-2\">{{'VISUALIZE.CHART.FIELD.UPDATE' |translate}}</button>\n            <button (click)=\"onCancelEdit()\"\n                    class=\"btn btn-custom btn-custom-line-primary w-100 p-3\">{{'VISUALIZE.FIELD.TITTLE.CANCEL' |translate}}</button>\n          </div>\n        </div>\n      </tab>\n      <tab>\n        <ng-template tabHeading>\n          <div (click)=\"onTabChange(1)\" class=\"title-nav-tab\">{{'VISUALIZE.FIELD.TITTLE.SHARE'|translate}}</div>\n        </ng-template>\n        <div [ngClass]=\"isPlugin  ?'h-100':''\" class=\"height-tab-view\">\n          <app-chart-share-right-bar #chartShare\n                                     [chartData]=\"{chartItem: chartItem, staticTabs: staticTabs}\"></app-chart-share-right-bar>\n        </div>\n      </tab>\n    </tabset>\n  </ng-template>\n</app-right-bar>\n<!--<app-chart-publish-dialog (reload)=\"updateActionPublish($event)\"></app-chart-publish-dialog>-->\n\n","import { Router } from \"@angular/router\";\nimport {\n  AfterViewInit,\n  Component,\n  ContentChild,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from \"@angular/core\";\nimport { CoreService, NotificationService } from \"inet-core\";\nimport { ConfirmDialogComponent, CustomPaginationComponent } from \"inet-ui\";\nimport {\n  AngularGridInstance,\n  AngularSlickgridComponent,\n  Column,\n  GridOption,\n  SlickDataView,\n  OnEventArgs,\n  SlickGrid,\n} from \"angular-slickgrid\";\nimport {\n  GridOptionConstant,\n  OnTemplate,\n} from \"../../layout-common/layout-common-constants\";\nimport { SlickgridCustom } from \"../../layout-common/slickgrid-custom\";\nimport { ChartService } from \"../chart.service\";\nimport { DatePipe } from \"@angular/common\";\nimport { DatasetService } from \"../../dataset/dataset.service\";\nimport {\n  CHART,\n  CHART_HTML_TEMPLATE,\n  CUSTOM,\n  EXPLORE,\n  MAPPING,\n  PUBLISH,\n  TEMPLATE,\n  VIEW,\n} from \"../constants/constants\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subscription } from \"rxjs\";\nimport { ChartItem } from \"../../model/chart\";\nimport { ChartDeleteComponent } from \"../chart-delete/chart-delete.component\";\nimport { IAppState } from \"../../core/store/state/app.state\";\nimport { Store } from \"@ngrx/store\";\nimport * as DocumentActions from \"../../core/store/actions/navigation.action\";\n// import * as TemplateActions from \"../../core/store/actions/template.actions\";\nimport { AbstractReuseComponent } from \"../../model/abstract-reuse-component\";\nimport { ShareService } from \"../../share/share.service\";\nimport { ChartPublishDialogComponent } from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport { EVizType } from \"../model\";\n\n@Component({\n  selector: \"app-chart-list\",\n  templateUrl: \"./chart-list.component.html\",\n  styleUrls: [\"./chart-list.component.scss\"],\n})\nexport class ChartListComponent\n  implements OnInit, AfterViewInit, OnDestroy, AbstractReuseComponent\n{\n  @ViewChild(AngularSlickgridComponent)\n  angularSlickgrid!: AngularSlickgridComponent;\n  @ViewChild(\"paging\") pagination: CustomPaginationComponent;\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild(ChartPublishDialogComponent)\n  dialogPublish!: ChartPublishDialogComponent;\n  columnDefinitions: Column[] = [];\n  gridOptions!: GridOption;\n  grid!: SlickGrid;\n  sourceType: string = \"\";\n  chartLists: ChartItem[] = [];\n  pageNumber: number = 0;\n  pageSize: number = 20;\n  published: number = 0;\n  file: any;\n  isFilterSearch: boolean = false;\n  total: number = 0;\n  uuidSelected: string[] = [];\n  key: string = \"\";\n  msgContentDel: string = \"\";\n  isEdit: boolean = false;\n  designItem: any;\n  chartFilter: ChartItem[] = [];\n  categoryList: any[] = [];\n  type: string = null;\n  translateGrid: TranslateService;\n  paramSearch: {\n    key: string;\n    type: string;\n    pageNumber: number;\n    pageSize: string;\n  };\n  loading: boolean = false;\n  isEditInfo: boolean = false;\n  subscriptionLangChange: Subscription;\n  hasVisualizePlus: boolean = false;\n  private angularGrid!: AngularGridInstance;\n  private dataView!: SlickDataView;\n  private slickgridCustom: SlickgridCustom;\n  private readonly translateSubscription: Subscription;\n  private gridTranslate: any = {};\n  private resizeListener: () => void;\n\n  constructor(\n    private datasetService: DatasetService,\n    private store: Store<IAppState>,\n    private notification: NotificationService,\n    private router: Router,\n    private chartService: ChartService,\n    private coreService: CoreService,\n    private datePipe: DatePipe,\n    private translate: TranslateService,\n    private shareService: ShareService\n  ) {\n    this.slickgridCustom = new SlickgridCustom(this);\n    this.translateSubscription = translate\n      .stream([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.gridTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n        if (!!this.grid) {\n          this.slickgridCustom.scrollTooltip();\n        }\n      });\n  }\n\n  private get classIconHeader() {\n    if (this.uuidSelected.length === 0) {\n      return \"select-grid-svg\";\n    }\n    if (this.uuidSelected.length === this.chartLists.length) {\n      return \"selected-all-grid-svg\";\n    }\n    if (\n      this.uuidSelected.length > 0 &&\n      this.uuidSelected.length < this.chartLists.length\n    ) {\n      return \"selected-grid-svg\";\n    }\n  }\n\n  ngOnInit(): void {\n    this.store.dispatch(DocumentActions.navClear());\n    this.loadCategory();\n    this.iniOption();\n    this.chartService.hasModule(\"visualizeplus\").subscribe((res: boolean) => {\n      this.hasVisualizePlus = res;\n      this.initGridWithTranslation().then((r) => {});\n    });\n    /*   this.resizeListener = this.onResize.bind(this);\n       window.addEventListener('resize', this.resizeListener);*/\n  }\n\n  async initGridWithTranslation() {\n    const translationLoaded = new Promise<void>((resolve) => {\n      if (this.translate.store.translations[this.translate.currentLang]) {\n        resolve();\n      } else {\n        this.subscriptionLangChange = this.translate.onLangChange.subscribe(\n          () => {\n            resolve();\n          }\n        );\n      }\n    });\n    await translationLoaded;\n    this.initGrid();\n  }\n\n  onCopyPath(uuid: string) {\n    this.shareService.copyPath(uuid).subscribe((status) => {\n      let key = status\n        ? \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS\"\n        : \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD\";\n      this.notification.showMessage(\n        this.translate.instant(key),\n        status ? \"success\" : \"error\",\n        \"Visualize\"\n      );\n    });\n  }\n\n  viewOpen(item?: any, isOpen: boolean = true) {\n    if (this.chartLists.length > 0) {\n      if (!item) {\n        this.designItem = { design: this.chartLists[0], isView: true };\n        setTimeout(() => {\n          this.grid.setActiveCell(0, 1);\n        }, 100);\n      } else {\n        this.designItem = item;\n      }\n    }\n    this.backBar(isOpen);\n  }\n\n  viewEdit(item: any, isShowRightBar: boolean = true, isEdit: boolean = false) {\n    this.designItem = { design: item, isEdit: isEdit };\n    this.backBar(isShowRightBar);\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n  }\n\n  ngAfterViewInit(): void {}\n\n  backBar(isEdit: boolean = false) {\n    if (this.isEdit === isEdit) return;\n    this.isEdit = isEdit;\n    this.onResize();\n  }\n\n  angularGridReady(angularGrid: AngularGridInstance) {\n    this.angularGrid = angularGrid;\n    this.dataView = angularGrid.dataView;\n    this.grid = angularGrid.slickGrid;\n    this.translateGrid = this.grid?.getOptions()?.i18n;\n  }\n\n  onResize() {\n    this.angularGrid?.resizerService?.resizeGrid(150).then((r) => {});\n  }\n\n  clearNavigate() {\n    this.store.dispatch(DocumentActions.navClear());\n  }\n\n  getParams(params?: any) {\n    params = !!params ? params : {};\n    let __type: string = this.type === \"\" ? \"\" : this.type;\n    params = Object.assign(params, { type: __type });\n    const props = [\"pageNumber\", \"pageSize\"];\n    let hasAllPage = props.every((prop) => params.hasOwnProperty(prop));\n    let hasPageCustom = props.some((prop) => params.hasOwnProperty(prop));\n    const pageNumber =\n      hasPageCustom && !!params[\"pageNumber\"]\n        ? params[\"pageNumber\"]\n        : this.pageNumber;\n    if (!!this.pagination) {\n      return Object.assign(\n        this.pagination.getParams(),\n        params,\n        !hasAllPage ? { pageNumber: pageNumber } : {}\n      );\n    } else {\n      return Object.assign(\n        { pageNumber: this.pageNumber, pageSize: this.pageSize },\n        params\n      );\n    }\n  }\n\n  loadListAfterEdit() {\n    const pageNumber: number = this.pagination.getParams()[\"pageNumber\"];\n    if (this.chartLists.length === 1) {\n      pageNumber > 0\n        ? this.loadChart({\n            pageNumber: pageNumber - 1 > 0 ? pageNumber - 1 : 0,\n          })\n        : this.reloadPage();\n    }\n    if (this.chartLists.length > 1) {\n      this.loadChart({ pageNumber: pageNumber });\n    }\n  }\n\n  updateGrid(item: any) {\n    if (this.designItem && this.designItem.design.uuid === item.chartUuid) {\n      this.designItem.design.sharedUuid = item.uuid;\n    }\n    this.editRowValue(item);\n  }\n\n  loadGridDel() {\n    this.loadListAfterEdit();\n    this.backBar(false);\n  }\n\n  decodeBase64(str: string) {\n    return decodeURIComponent(escape(window.atob(str)));\n  }\n\n  loadCategory() {\n    this.chartService.getChartsList().subscribe((value) => {\n      this.categoryList = value.items\n        .filter((values) => values.attribute?.html)\n        .map((values) => {\n          const category = JSON.parse(\n            this.decodeBase64(values.attribute.base64)\n          );\n          return { value: values.name, name: category.name };\n        })\n        .sort((a, b) =>\n          a.name.localeCompare(b.name, undefined, { sensitivity: \"accent\" })\n        );\n    });\n  }\n\n  loadChart(params?: any) {\n    this.uuidSelected = [];\n    let __params = this.getParams(params);\n    if (__params.key && !this.key) {\n      __params.key = null;\n    }\n    this.loading = true;\n    this.chartService\n      .searchChart(__params)\n      .subscribe(\n        (results: any) => {\n          if (results.type !== \"ERROR\") {\n            this.total = results.total;\n            this.slickgridCustom.scrollTooltip();\n            this.chartLists = results.items;\n            this.chartFilter = results.items;\n            if (!!this.pagination) {\n              this.pagination.setParams(__params);\n              setTimeout(() => {\n                this.pagination.setParams(__params);\n                this.pagination.pageNumber =\n                  results.items.length > 0\n                    ? Number(this.pagination.getParams()[\"pageNumber\"] + 1)\n                    : 0;\n              }, 100);\n            }\n            this.paramSearch = this.pagination.getParams();\n            this.loading = false;\n          }\n        },\n        () => {\n          this.loading = true;\n        }\n      )\n      .add(() => {\n        this.loading = false;\n      });\n  }\n\n  nextToEdit(value: any) {\n    this.router.navigate([\"/\", CHART, value.uuid, EXPLORE]);\n  }\n\n  nextToTemplate(value: any) {\n    this.router.navigate([`/${CHART}/mapping`], {\n      queryParams: {\n        uuid: value.uuid,\n      },\n    });\n  }\n\n  nextToChartCustom(value: any) {\n    this.router.navigate([`/${CHART}/${CUSTOM}`], {\n      queryParams: {\n        uuid: value.uuid,\n      },\n    });\n  }\n\n  getImageByName(name: string) {\n    let img = name.split(\"/\").pop();\n    return this.coreService.getImageUrlFromModule(img, \"visualcommon\");\n  }\n\n  viewChart(item: any) {\n    this.router.navigate([\"/\", CHART, item.uuid, VIEW]);\n  }\n\n  onTemplate(chart: any) {\n    this.router.navigate([\"/\", CHART, chart.uuid, TEMPLATE]);\n  }\n\n  deleteChart(item: ChartItem) {\n    this.chartDelete.onShowDialog(item);\n  }\n\n  reloadPage() {\n    if (!!this.pagination) {\n      this.pagination.reload();\n    }\n  }\n\n  reload(): void {\n    this.loadChart(this.pagination.getParams());\n    this.backBar(false);\n  }\n\n  onPublishAction(chart: ChartItem) {\n    this.dialogPublish.showDialogChange(chart);\n  }\n\n  editRowValue(chart: any, isEditSuccess: boolean = false) {\n    const uuid = isEditSuccess ? chart.uuid : chart.chartUuid;\n    const updatedRow = this.chartLists.find((item) => item.uuid === uuid);\n    if (updatedRow) {\n      if (isEditSuccess) {\n        updatedRow.name = chart.name;\n        updatedRow.desc = chart.desc;\n        updatedRow.title = chart.title;\n      } else {\n        updatedRow.sharedUuid = chart.uuid;\n      }\n      const rowIndex = this.chartLists.indexOf(updatedRow);\n      if (rowIndex !== -1) {\n        this.angularGrid.slickGrid.invalidateRow(rowIndex);\n        this.angularGrid.slickGrid.render();\n        this.slickgridCustom.scrollTooltip();\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.translateSubscription.unsubscribe();\n    //window.removeEventListener('resize', this.resizeListener);\n    if (this.subscriptionLangChange) {\n      this.subscriptionLangChange.unsubscribe();\n    }\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n  }\n\n  private initGrid(isSelect: boolean = false) {\n    this.columnDefinitions = [\n      {\n        headerCssClass: \"d-flex\",\n        cssClass: \"d-flex align-items-center\",\n        id: \"icon\",\n        field: \"icon\",\n        minWidth: 40,\n        maxWidth: 40,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          let __srcImg = dataContext.thumbnailUri;\n          let __img: string;\n          if (dataContext.type === CHART_HTML_TEMPLATE) {\n            __img = dataContext.thumbnailUri;\n          } else {\n            __img = this.getImageByName(__srcImg);\n          }\n          return !!dataContext.thumbnailUri\n            ? ` <img class=\"icon\" src=\"${__img}\">`\n            : `<i class=\"fa fa-area-chart\"></i>`;\n        },\n      },\n      {\n        headerCssClass: \"d-flex font-weight-bold\",\n        cssClass: \"d-flex align-items-center\",\n        id: \"name\",\n        field: \"name\", //name: this.gridTranslate['LABEL_NAME'],\n        nameKey: \"VISUALIZE.CHART.FIELD.NAME\",\n        sortable: true,\n        minWidth: 80,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          return `<span  class=\"text-truncate\">${dataContext?.name}</span>`;\n        },\n        onCellClick: (e: any, args: OnEventArgs) => {\n          this.viewEdit(args.dataContext);\n        },\n      },\n      {\n        headerCssClass: \"d-flex font-weight-bold\",\n        cssClass: \"d-flex align-items-center\",\n        id: \"typeName\",\n        field: \"typeName\", //name: this.gridTranslate['TITLE_CATEGORY'],\n        nameKey: \"VISUALIZE.CHART.FIELD.TITLE_CATEGORY\",\n        sortable: true,\n        minWidth: 80,\n        maxWidth: 180,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          return `<span  class=\"text-truncate\">${dataContext?.typeName}</span>`;\n        },\n        onCellClick: (e: any, args) => {\n          this.viewEdit(args.dataContext);\n        },\n      },\n      {\n        headerCssClass: \"d-flex font-weight-bold\",\n        cssClass: \"d-flex align-items-center\",\n        id: \"desc\",\n        field: \"desc\", //name: this.gridTranslate['TITLE_BRIEF'],\n        nameKey: \"VISUALIZE.CHART.FIELD.TITLE_BRIEF\",\n        sortable: true,\n        minWidth: 80,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          return dataContext?.desc\n            ? `<span  class=\"text-truncate\">${dataContext?.desc}</span>`\n            : `<span  class=\"text-truncate\"></span>`;\n        },\n        onCellClick: (e: any, args) => {\n          this.viewEdit(args.dataContext);\n        },\n      },\n      {\n        headerCssClass: \"d-flex font-weight-bold\",\n        cssClass: \"d-flex align-items-center\",\n        id: \"lastModifiedDate\",\n        field: \"lastModifiedDate\", //name: this.gridTranslate['TITLE_DAY_UPDATE'],\n        nameKey: \"VISUALIZE.CHART.FIELD.TITLE_DAY_UPDATE\",\n        sortable: true,\n        minWidth: 170,\n        maxWidth: 170,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          return value > 0\n            ? `<span class=\"text-truncate\">${this.datePipe.transform(\n                value,\n                \"dd/MM/yyyy HH:mm:ss\"\n              )}</span>`\n            : `<span class=\"f-10 text-muted\"></span>`;\n        },\n        onCellClick: (e: any, args) => {\n          this.viewEdit(args.dataContext);\n        },\n      },\n      {\n        id: \"action\",\n        field: \"action\",\n        nameKey: \"VISUALIZE.CHART.FIELD.TITLE_ACTION\",\n        headerCssClass: \"d-flex font-weight-bold\",\n        cssClass: \"d-flex align-items-center\",\n        sortable: false,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          let __fake = `<button style=\"cursor: default\" class=\"slick-button\"><i style=\"color: transparent;\" class=\"fa fa-clipboard f-17\"></i></button>`;\n          let __fake2 = `<button style=\"cursor: default\" class=\"slick-button\"><i style=\"color: transparent;\" class=\"fa fa-object-ungroup f-17\"></i></button>`;\n          let __publish = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.CHART.FIELD.ACTION_PUBLISH\"\n          )}\" data-toggle=\"tooltip\" data-action=\"publish\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-globe f-20\"></i></button>`;\n          let __un_publish = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH\"\n          )}\" data-toggle=\"tooltip\" data-action=\"unpublish\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-link f-20\"></i></button>`;\n          let __edit = `<button  title=\"${this.translateGrid.instant(\n            \"VISUALIZE.CHART.FIELD.ACTION_EDIT\"\n          )}\" data-toggle=\"tooltip\" data-action=\"edit\"  class=\"slick-button\" type=\"button\"><i class=\"fa fa-pencil f-20\"></i></button>`;\n          let __delete = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.CHART.FIELD.ACTION_DELETE\"\n          )}\" data-toggle=\"tooltip\" data-action=\"delete\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-trash-o text-danger f-20\"></i></button>`;\n          let __view = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.CHART.FIELD.VIEW\"\n          )}\" data-toggle=\"tooltip\" data-action=\"view\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-eye f-20\"></i></button>`;\n          let __editInfo = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.FIELD.EDIT_INFO\"\n          )}\" data-toggle=\"tooltip\" data-action=\"editInfo\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-pencil-square-o f-20\"></i></button>`;\n          let __copy = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.CHART.FIELD.COPY_SCRIPT\"\n          )}\" data-toggle=\"tooltip\" data-action=\"copy\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-clipboard f-17\"></i></button>`;\n          let __template = `<button title=\"${this.translateGrid.instant(\n            \"VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE\"\n          )}\" data-toggle=\"tooltip\" data-action=\"template\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-object-ungroup f-17\"></i></button>`;\n\n          if (!dataContext.sharedUuid) {\n            if (this.hasVisualizePlus) {\n              if (\"fields\" in dataContext || dataContext.type === EVizType.LINE_MULTI || dataContext.type === EVizType.DECK_MULTI || dataContext.type === EVizType.MIXED_TIMESERIES) {\n                return `${\n                  __view +\n                  __edit +\n                  __fake2 +\n                  __editInfo +\n                  __publish +\n                  __fake +\n                  __delete\n                }`;\n              }\n              return `${\n                __view +\n                __edit +\n                __template +\n                __editInfo +\n                __publish +\n                __fake +\n                __delete\n              }`;\n            } else {\n              return `${\n                __view + __edit + __editInfo + __publish + __fake + __delete\n              }`;\n            }\n          } else {\n            if (this.hasVisualizePlus) {\n              if (\"fields\" in dataContext || dataContext.type === EVizType.LINE_MULTI || dataContext.type === EVizType.DECK_MULTI || dataContext.type === EVizType.MIXED_TIMESERIES) {\n                return `${\n                  __view +\n                  __edit +\n                  __fake2 +\n                  __editInfo +\n                  __un_publish +\n                  __copy +\n                  __delete\n                }`;\n              }\n              return `${\n                __view +\n                __edit +\n                __template +\n                __editInfo +\n                __un_publish +\n                __copy +\n                __delete\n              }`;\n            } else {\n              return `${\n                __view + __edit + __editInfo + __un_publish + __copy + __delete\n              }`;\n            }\n          }\n        },\n        maxWidth: 220,\n        minWidth: 220,\n        onCellClick: (e: Event, args: OnEventArgs) => {\n          this.viewEdit(args.dataContext, this.isEdit, false);\n          let __action: any = this.slickgridCustom.getNameAction(e.target);\n          switch (__action) {\n            case \"edit\":\n              this.clearNavigate();\n              this.store.dispatch(\n                DocumentActions.navPushFolder({\n                  data: {\n                    ...args.dataContext,\n                    ...{ router: CHART + \"/\" + args.dataContext.uuid },\n                  },\n                })\n              );\n              if (\"fields\" in args.dataContext) {\n                this.nextToTemplate(args.dataContext);\n              } else {\n                const a = [\n                  [`/${CHART}/${CUSTOM}`],\n                  [\"/\", CHART, args.dataContext.uuid, EXPLORE],\n                ];\n                OnTemplate(args.dataContext, this.router, a);\n              }\n              break;\n            case \"delete\":\n              this.chartDelete.onShowDialog(args.dataContext);\n              break;\n            case \"view\":\n              this.clearNavigate();\n              this.store.dispatch(\n                DocumentActions.navPushFolder({\n                  data: {\n                    ...args.dataContext,\n                    ...{ router: CHART + \"/\" + args.dataContext.uuid },\n                  },\n                })\n              );\n              if (\"fields\" in args.dataContext) {\n                this.router.navigate([\"/\", CHART, MAPPING, VIEW], {\n                  queryParams: {\n                    uuid: args.dataContext.uuid,\n                  },\n                });\n              } else {\n                const a = [\n                  [\"/\", CHART, CUSTOM, VIEW],\n                  [\"/\", CHART, args.dataContext.uuid, VIEW],\n                ];\n                OnTemplate(args.dataContext, this.router, a);\n              }\n              break;\n            case \"template\":\n              const a = [\n                [\"/\", CHART, \"create\", TEMPLATE],\n                [\"/\", CHART, args.dataContext.uuid, TEMPLATE],\n              ];\n              OnTemplate(args.dataContext, this.router, a);\n              break;\n            case \"publish\":\n            case \"unpublish\":\n              this.onPublishAction(args.dataContext);\n              break;\n            case \"editInfo\":\n              this.viewEdit(args.dataContext, true, true);\n              this.isEditInfo = true;\n              break;\n            case \"copy\":\n              this.onCopyPath(args.dataContext.sharedUuid);\n              break;\n          }\n        },\n      },\n    ];\n  }\n\n  private iniOption() {\n    let gridOptionConstant: GridOption = GridOptionConstant(\n      \"grid-container-chart\",\n      \"uuid\",\n      this.gridTranslate[\"NO_DATA_DISPLAY\"]\n    );\n    let gridOption: GridOption = {\n      i18n: this.translate,\n      enableTranslate: true,\n      headerButton: {\n        onCommand: (_e, args) => this.handleOnCommand(_e, args),\n      },\n    };\n    this.gridOptions = Object.assign(gridOptionConstant, gridOption);\n  }\n\n  // publishAsTemplate(chart: any) {\n  //   this.backBar(true);\n  //   this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: true}));\n  //   this.store.dispatch(TemplateActions.setUuid({uuid: chart.uuid}));\n  // }\n\n  private handleOnCommand(_e: Event, args: any) {\n    const button = args.button;\n    const command = args.command;\n    let isSelect: boolean = false;\n    if (command === \"bulk-select\") {\n      button.cssClass = this.classIconHeader;\n      this.angularGrid.slickGrid.invalidate();\n      isSelect = this.classIconHeader === \"selected-all-grid-svg\";\n      this.slickgridCustom.renderRowGrid(isSelect);\n    }\n  }\n}\n","<app-grid-view-layout\n  [header]=\"'VISUALIZE.CHART.FIELD_TITLE' | translate\"\n  [isEdit]=\"isEdit\"\n>\n  <ng-template btnTopTemplate>\n    <button\n      [hidden]=\"\n        !(\n          total > 0 ||\n          (total === 0 && (!!paramSearch?.type || !!paramSearch?.key))\n        )\n      \"\n      *ngIf=\"hasVisualizePlus\"\n      class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\"\n      routerLink=\"/chart/template\"\n      type=\"button\"\n    >\n      <span\n        ><i aria-hidden=\"true\" class=\"fa fa-plus mr-2\"></i\n        >{{ \"VISUALIZE.CREATE_TEMPLATE\" | translate }}</span\n      >\n    </button>\n    <button\n      [hidden]=\"\n        !(\n          total > 0 ||\n          (total === 0 && (!!paramSearch?.type || !!paramSearch?.key))\n        )\n      \"\n      class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\"\n      routerLink=\"/chart/add\"\n      type=\"button\"\n    >\n      <span\n        ><i aria-hidden=\"true\" class=\"fa fa-plus mr-2\"></i\n        >{{ \"VISUALIZE.CHART.FIELD.ADD_NEW_CHART\" | translate }}</span\n      >\n    </button>\n    <button\n      (click)=\"viewOpen(designItem, !isEdit)\"\n      *ngIf=\"total > 0\"\n      [ngClass]=\"isEdit ? 'opened' : ''\"\n      class=\"btn-custom btn-custom-icon px-1\"\n    >\n      <i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i>\n    </button>\n  </ng-template>\n  <ng-template paginationTemplate>\n    <app-custom-pagination\n      #paging\n      (onLoad)=\"loadChart($event)\"\n      [hidden]=\"\n        !(\n          total > 0 ||\n          (total === 0 && (!!paramSearch?.type || !!paramSearch?.key))\n        )\n      \"\n      [pageNumber]=\"pageNumber\"\n      [pageSize]=\"pageSize\"\n      [params]=\"{}\"\n      [totalItems]=\"total\"\n    >\n      <ng-template #basicSearch>\n        <!--        <button class=\"mx-1 btn-circle-query btn-custom-primary\"\n                        tooltip=\"{{isFilterSearch ?  'Filter basic' : 'Filter advance'}}\"\n                        type=\"button\">\n                  <i aria-hidden=\"true\" class=\"fa fa-filter icon-mode\"></i>\n                </button>-->\n        <div *ngIf=\"!isFilterSearch\" style=\"flex-grow: 2\">\n          <div class=\"row mx-0\">\n            <div\n              *ngIf=\"categoryList.length > 0\"\n              class=\"col-lg-4 col-12 px-1\"\n              style=\"padding-left: 0 !important\"\n            >\n              <ng-select\n                (change)=\"loadChart()\"\n                [(ngModel)]=\"type\"\n                [items]=\"categoryList\"\n                bindLabel=\"name\"\n                bindValue=\"value\"\n                placeholder=\"{{\n                  'VISUALIZE.CHART.FIELD.ADD_CATE_CHART' | translate\n                }}\"\n                style=\"\n                  font-size: 14px;\n                  font-weight: 400;\n                  color: #495057 !important;\n                \"\n              >\n              </ng-select>\n            </div>\n            <div class=\"col-lg-3 col-12 px-1\" style=\"min-width: 250px\">\n              <div class=\"container-search\">\n                <input\n                  (keydown.enter)=\"loadChart({ key: key })\"\n                  [(ngModel)]=\"key\"\n                  class=\"form-control form-control-sm\"\n                  placeholder=\"{{\n                    'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND' | translate\n                  }}\"\n                />\n                <i\n                  (click)=\"loadChart({ key: key })\"\n                  aria-hidden=\"true\"\n                  class=\"fa fa-search text-muted icon-search-grid\"\n                  tooltip=\"{{ 'VISUALIZE.CHART.FIELD.SEARCH' | translate }}\"\n                ></i>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"isFilterSearch\">\n          <button\n            class=\"btn btn-sm btn-custom-primary border-0 mx-2 rounded-pill text-white\"\n          >\n            <i aria-hidden=\"true\" class=\"fa fa-search\"></i\n            >{{ \"VISUALIZE.CHART.FIELD.SEARCH\" | translate }}\n          </button>\n        </div>\n      </ng-template>\n    </app-custom-pagination>\n  </ng-template>\n  <ng-template gridTemplate>\n    <div class=\"h-100\">\n      <div\n        [hidden]=\"\n          !(\n            total > 0 ||\n            (total === 0 && (!!paramSearch?.type || !!paramSearch?.key))\n          )\n        \"\n        class=\"container-fluid px-0 h-100\"\n        id=\"grid-container-chart\"\n      >\n        <angular-slickgrid\n          (onAngularGridCreated)=\"angularGridReady($event)\"\n          [columnDefinitions]=\"columnDefinitions\"\n          [dataset]=\"chartLists\"\n          [gridOptions]=\"gridOptions\"\n          class=\"angular-slickgrid-container\"\n          gridId=\"grid-chart-list\"\n        >\n        </angular-slickgrid>\n      </div>\n      <app-grid-empty-layout\n        [btnAddTemplate]=\"btnCreate\"\n        [contentMessage]=\"\n          'VISUALIZE.VIEW.GRID_CONTENT_EMPTY_IMPORT'\n            | translate\n              : { nameBtn: 'VISUALIZE.CHART.FIELD.ADD_NEW_CHART' | translate }\n        \"\n        [hidden]=\"\n          !(\n            !loading &&\n            !(\n              total > 0 ||\n              (total === 0 && (!!paramSearch?.type || !!paramSearch?.key))\n            )\n          )\n        \"\n        [titleMessage]=\"'VISUALIZE.VIEW.GRID_TITLE_EMPTY' | translate\"\n      >\n      </app-grid-empty-layout>\n    </div>\n  </ng-template>\n  <ng-template rightTemplate>\n    <app-chart-right-bar\n      (chartPublish)=\"onPublishAction($event)\"\n      (close)=\"backBar()\"\n      (delete)=\"deleteChart($event)\"\n      (reloadPage)=\"editRowValue($event, true)\"\n      [chart]=\"designItem\"\n      [isChild]=\"false\"\n      [isEdit]=\"isEditInfo\"\n      [view]=\"true\"\n    >\n    </app-chart-right-bar>\n  </ng-template>\n</app-grid-view-layout>\n<app-chart-delete (deleteSuccess)=\"loadGridDel()\"></app-chart-delete>\n<app-chart-publish-dialog\n  (reload)=\"updateGrid($event)\"\n></app-chart-publish-dialog>\n<ng-template #btnCreate>\n  <button\n    class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\"\n    routerLink=\"/chart/add\"\n    style=\"min-height: 32px\"\n    type=\"button\"\n  >\n    <span\n      ><i aria-hidden=\"true\" class=\"fa fa-plus mr-2\"></i\n      >{{ \"VISUALIZE.CHART.FIELD.ADD_NEW_CHART\" | translate }}</span\n    >\n  </button>\n</ng-template>\n","import {ActionType, createAction, props} from \"@ngrx/store\";\n\nexport interface IDataSend {\n  dataSource: any,\n  htmlTag: string,\n  vizType: string,\n  nameChart: string,\n  typeSubmit: string,\n  url: string,\n}\nexport enum EDataSend {\n DATA_SEND = 'data send',\n}\n\nexport const dataSend = createAction(EDataSend.DATA_SEND, props<{dataSend: IDataSend}>());\n\nexport type DataSendActions = | ActionType<typeof dataSend>\n","import { IColumnParam } from '../../core/utils/get-column-chart';\nimport { ISelectMetadata } from './chart-custom';\n\nexport interface ISearchParamTemplate {\n  module: string;\n  key?: string;\n  type?: string;\n  pageSize?: number;\n  pageNumber?: number;\n  category?: string;\n}\nexport interface IResSearchTemplateItem {\n  attribute?: string;\n  queryContext?: string;\n  createdDate: number;\n  creatorName: string;\n  creatorUname: string;\n  desc: string;\n  dsCategory: string;\n  dsTable: string;\n  dsType: string;\n  fields: IColumnParam[];\n  forecast: boolean;\n  module: string;\n  html?: string,\n  name: string;\n  organId: string;\n  sourceType: string;\n  sourceTypeName: string;\n  sourceUuid: string;\n  type: string;\n  uuid: string;\n  visualize: boolean;\n  publishContent?: string,\n  category: string;\n  thumbnail: string;\n  publish: boolean;\n}\nexport interface IResSearchTemplate {\n  items: IResSearchTemplateItem[];\n  total: number;\n  type?: string;\n}\n\nexport interface IParamsCategories {\n  module: string;\n  type: string;\n  key: string;\n}\n\nexport interface IResCategories {\n  elements: string[];\n}\n\nexport interface IResQueryParams {\n  category?: string;\n  name?: string;\n  type?: string;\n  uuid_template?: string;\n  uuid?: string;\n  namechart?: string,\n  html?: string,\n  viztype?: string\n  thumbnail?: string,\n  uuid_html?: string,\n  import?: boolean | string\n}\n\nexport interface IParamsMetadata {\n  type: string;\n  category: string;\n  name: string;\n}\n\nexport interface IDataSource {\n  type: string;\n  category: string;\n  table: string;\n}\nexport type SQLSchema = { [k: string]: string };\n\nexport interface IResMetadata {\n  category: string;\n  contentSize: 0;\n  name: string;\n  published: true;\n  schemas: SQLSchema;\n  sourceID: string;\n  type: string;\n  uuid: string;\n}\n\nexport interface IColumnSchema {\n  value: string;\n  type: string;\n}\n\nexport enum EType {\n  INT = 'INT',\n  DOUBLE = 'DOUBLE',\n  LONG = 'LONG',\n  INT64 = 'INT64',\n  FLOAT = 'FLOAT',\n  NUMBER = 'NUMBER',\n  STRING = 'STRING',\n  CHAR = 'CHAR',\n  VARCHAR = 'VARCHAR',\n  DATE = 'DATE',\n}\n\nexport interface IDataMapping {\n  column: IColumnParam;\n  arrMapping: IColumnSchema[] | undefined;\n  valueMapping: string | null;\n}\nexport interface IVizType {\n  name: string;\n  vizType: string;\n  html: string;\n}\n\nexport interface IAttribute {\n  width?: number;\n  height?: number;\n  vizType?: IVizType;\n  formData?: any;\n  nameChart?: string;\n  typeSubmit?: string;\n  queries?: any[] | any;\n  dataSource?: IDataSource;\n  schemas?: SQLSchema;\n  columns?: ISelectMetadata[];\n  uuidHTML?: string;\n  contentHTML?: string;\n}\n\nexport interface IQueryContext {\n  form_data?: any;\n  formData?: any;\n  query?: any;\n  queries?: any[];\n  post_process_param?: any;\n  fields?: any\n}\n\nexport interface IField {\n  name: string;\n  to: string;\n  type: string;\n  column: IColumnParam\n}\n\nexport interface IParamsChart {\n  datasource: IDataSource | string;\n  force?: string;\n  queries?: any;\n  form_data?: any;\n  result_format?: string;\n  result_type?: string;\n  fields?: IField[] | any;\n  formData?: any;\n}\n\nexport enum ETypeSubmit {\n  EXPLORE_JSON = 'explore_json',\n  DATA = 'data',\n  CUSTOM = 'custom'\n}\n\nexport enum EVisualize {\n  ANALYTICS_APP = 'analytics_app',\n  SEND_SCRIPT = 'send_script',\n  SEND_LOAD_JS_DONE = 'send_load_js_done',\n  SEND_DATA_TO_VISUAL_CHART = 'send_data_to_chart_visual',\n  CHART_VISUAL = 'chart_visual',\n}\n\nexport interface IParamsChartTemplate {\n  name: string;\n  title: string;\n  desc: string;\n  dsType: string;\n  dsCategory: string;\n  dsTable: string;\n  type: string;\n  typeName: string;\n  thumbnailUri: string;\n  attribute: string;\n  fields: string;\n  queryContext: string;\n  uuid?: string;\n}\n\nexport interface IResChart {\n  name: string;\n  title: string;\n  desc: string;\n  dsType: string;\n  dsCategory: string;\n  dsTable: string;\n  type: string;\n  typeName: string;\n  thumbnailUri: string;\n  attribute: string;\n  fields: IField[];\n  creatorUname: string;\n  creatorName: string;\n  lastModifierUname: string;\n  lastModifierName: string;\n  createdDate: number;\n  lastModifiedDate: number;\n  queryContext: string;\n  sharedUuid?: string;\n  uuid: string;\n  organId: string;\n}\n","import {Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {Subscription} from \"rxjs\";\nimport {ConfirmDialogComponent} from \"inet-ui\";\nimport {ChartItem} from \"../../model/chart\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ErrorMessage, NotificationService} from \"inet-core\";\nimport {ChartService} from \"../chart.service\";\n\n@Component({\n  selector: 'app-delete-dialog',\n  templateUrl: './delete-dialog.component.html',\n  styleUrls: ['./delete-dialog.component.scss']\n})\nexport class DeleteDialogComponent implements OnInit, OnDestroy {\n  @ViewChild(\"deleteModal\", {static: false}) confirmDialog!: ConfirmDialogComponent;\n  @Output() deleteSuccess = new EventEmitter<any>();\n  uuid: string;\n\n  private delActionsTranslations: any = {};\n  private translateSubscription: Subscription;\n\n  constructor(private translateService: TranslateService,\n              private notification: NotificationService,\n              private chartService: ChartService) {\n    this.translateSubscription = translateService.stream(['VISUALIZE.CHART.FIELD']).subscribe(data => {\n      this.delActionsTranslations = data['VISUALIZE.CHART.FIELD'];\n    })\n  }\n\n  ngOnInit(): void {\n  }\n\n  ngOnDestroy() {\n    this.translateSubscription.unsubscribe();\n  }\n\n  onShowDialog(uuid:string) {\n    this.uuid = uuid;\n    this.confirmDialog.show();\n  }\n  deleteItem() {\n    if (this.confirmDialog) {\n      this.chartService.graphDesignDelete(this.uuid).subscribe((results: any) => {\n          this.confirmDialog.hide();\n          if (results.type !== ErrorMessage.TYPE) {\n            this.deleteSuccess.emit();\n            this.notification.showMessage(this.delActionsTranslations['DELETE_TYPE_OF_CHART_SUCCESS'], 'success',\n              'Visualize');\n          } else {\n            this.notification.showMessage(this.delActionsTranslations['DELETE_TYPE_OF_CHART_FAIL'], 'error',\n              'Visualize');\n          }\n        }\n      );\n    }\n  }\n}\n","<app-confirm-dialog #deleteModal\n                    [content]=\"'Are you sure you want to delete this type of chart?' | translate\"\n                    [title]=\"'Delete type of chart' | translate\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n      aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"deleteItem()\" class=\"btn btn-sm mx-1 btn-custom btn-danger\"\n             type=\"submit\"><i aria-hidden=\"true\" class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[contentTemplate]'\n})\nexport class ContentTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Component, ContentChild, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\nimport {ToolbarTopTemplateDirective} from \"../directive/toolbar-top-template.directive\";\nimport {BtnTopTemplateDirective} from \"../directive/btn-top-template.directive\";\nimport {ContentTemplateDirective} from \"../directive/content-template.directive\";\nimport {BtnBottomTemplateDirective} from \"../directive/btn-bottom-template.directive\";\nimport {ToolbarBottomTemplateDirective} from \"../directive/toolbar-bottom-template.directive\";\nimport {RightTemplateDirective} from \"../directive/right-template.directive\";\n\n@Component({\n  selector: 'app-action-view-layout',\n  templateUrl: './action-view-layout.component.html',\n  styleUrls: ['./action-view-layout.component.scss']\n})\nexport class ActionViewLayoutComponent implements OnInit, OnChanges {\n  @Input() isNoPaddingLayout: boolean = false;\n  @Input() isCustomBottom: boolean = false\n  @Input() isChild: boolean = false;\n  @Input() isPlugin: boolean = false;\n  @Input() isRightBar: boolean = false\n  @Input() isViewFull: boolean = false\n  @Input() isBorderToolbar: boolean = false\n  @Input() header: string = '';\n  @Input() namePage: string = '';\n  @Input() fullHeight: boolean = false;\n  @Input() isAbsolute: boolean = false;\n  @Input() isMarginLayout: boolean = false;\n  @Input() isExploreLayout: boolean = false;\n  @Input() isSelectChartPlugin: boolean = false;\n  @Input() isNoPaddingBottom: boolean = false;\n  @Input() isFullScreen: boolean = false;\n  @ContentChild(ToolbarTopTemplateDirective) toolbarTopTemplate!: ToolbarTopTemplateDirective;\n  @ContentChild(BtnTopTemplateDirective) btnTopTemplate!: BtnTopTemplateDirective;\n  @ContentChild(ToolbarBottomTemplateDirective) toolbarBottomTemplate!: ToolbarBottomTemplateDirective;\n  @ContentChild(BtnBottomTemplateDirective) btnBottomTemplate!: BtnBottomTemplateDirective;\n  @ContentChild(ContentTemplateDirective) contentTemplate!: ContentTemplateDirective;\n  @ContentChild(RightTemplateDirective) rightTemplate!: RightTemplateDirective;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  get bottomTemplate() {\n    return !!this.namePage || !!this.toolbarBottomTemplate || !!this.btnBottomTemplate\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n  }\n}\n","<ng-container *ngIf=\"!isPlugin\">\n  <div *ngIf=\"isChild\" class=\"container-layout-grid bg-superset child\">\n    <div [ngClass]=\"isRightBar ? 'spr2': 'spr1'\" class=\"superset-content h-100\">\n      <div class=\"middle h-100\" [class.fullScreen]=\"isFullScreen\">\n        <div class=\"mx-0 pb-2 h-100 bg-superset\" >\n          <ng-container *ngIf=\"!!toolbarBottomTemplate && isCustomBottom\">\n            <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n          </ng-container>\n          <div *ngIf=\"bottomTemplate && !isCustomBottom\"\n               [ngStyle]=\"{'border-bottom': isBorderToolbar? '1px solid rgb(224, 224, 224)' : ''}\"\n               class=\"container-toolbar mb-0 child justify-content-between\"\n               style=\"margin: auto; width: calc(100% - 16px); \">\n            <div class=\"col-lg-8 px-0\">\n              <div *ngIf=\"!toolbarBottomTemplate\" class=\"header text-truncate\"><span>{{namePage}}</span></div>\n              <ng-container *ngIf=\"toolbarBottomTemplate\">\n                <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n              </ng-container>\n            </div>\n            <div class=\"row mx-0 col-lg-4 col-md-12 px-0 justify-content-end\">\n              <ng-container *ngIf=\"btnBottomTemplate\">\n                <ng-container [ngTemplateOutlet]=\"btnBottomTemplate.templateRef\"></ng-container>\n              </ng-container>\n            </div>\n          </div>\n          <div [class.mx-2]=\"isMarginLayout\"\n               [class.px-0]=\"isNoPaddingLayout\"\n               [ngClass]=\"bottomTemplate ? 'tb2' : 'tb1' +  fullHeight ? 'h-100' : ''\"\n               [ngStyle]=\"{'height': isNoPaddingLayout ? 'calc(100% - 48px)' : '', 'position': isAbsolute ? 'absolute' : ''}\"\n               class=\"container-content child\">\n            <div *ngIf=\"!isViewFull\" class=\"bg-white w-full h-100\">\n              <div class=\"container-view-full overflow-auto\">\n                <div class=\"px-2 w-100 h-100\">s\n                  <ng-container *ngIf=\"contentTemplate\">\n                    <ng-container [ngTemplateOutlet]=\"contentTemplate.templateRef\"></ng-container>\n                  </ng-container>\n                </div>\n              </div>\n            </div>\n            <ng-container *ngIf=\"isViewFull\">\n              <ng-container *ngIf=\"contentTemplate\">\n                <ng-container [ngTemplateOutlet]=\"contentTemplate.templateRef\"></ng-container>\n              </ng-container>\n            </ng-container>\n          </div>\n        </div>\n      </div>\n      <div *ngIf=\"isRightBar\" class=\"right h-100 bg-superset\">\n        <ng-container *ngIf=\"rightTemplate\">\n          <ng-container [ngTemplateOutlet]=\"rightTemplate.templateRef\"></ng-container>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n  <div *ngIf=\"!isChild\" [ngClass]=\"(isRightBar ? 'spr2 ': 'spr1 ') + (fullHeight ? 'h-100' : '')\"\n       class=\"container-layout-grid bg-superset superset-content\">\n    <div class=\"middle h-100\">\n      <div class=\"mx-0 h-100 bg-superset\" [ngClass]=\"isNoPaddingBottom ? 'pb-0' : 'pb-2'\">\n        <div *ngIf=\"btnTopTemplate || (toolbarTopTemplate || header)\"\n             class=\"container-toolbar py-2 justify-content-between flex-nowrap\">\n          <div class=\"px-0\">\n            <div *ngIf=\"!toolbarTopTemplate\" class=\"header text-truncate\"><span>{{header}}</span></div>\n            <ng-container *ngIf=\"toolbarTopTemplate\">\n              <ng-container [ngTemplateOutlet]=\"toolbarTopTemplate.templateRef\"></ng-container>\n            </ng-container>\n          </div>\n          <div class=\"row mx-0 px-0 justify-content-end\">\n            <ng-container *ngIf=\"btnTopTemplate\">\n              <ng-container [ngTemplateOutlet]=\"btnTopTemplate.templateRef\"></ng-container>\n            </ng-container>\n          </div>\n        </div>\n        <ng-container *ngIf=\"!!toolbarBottomTemplate && isCustomBottom\">\n          <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n        </ng-container>\n        <div *ngIf=\"bottomTemplate && !isCustomBottom\"\n             class=\"container-toolbar mb-0 bg-superset justify-content-between\">\n          <div class=\"col-lg-8 px-0\">\n            <div *ngIf=\"!toolbarBottomTemplate\" class=\"header text-truncate\"><span>{{namePage}}</span></div>\n            <ng-container *ngIf=\"toolbarBottomTemplate\">\n              <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n            </ng-container>\n          </div>\n          <div class=\"row mx-0 col-lg-4 col-md-12 px-0 justify-content-end\">\n            <ng-container *ngIf=\"btnBottomTemplate\">\n              <ng-container [ngTemplateOutlet]=\"btnBottomTemplate.templateRef\"></ng-container>\n            </ng-container>\n          </div>\n        </div>\n        <div [ngClass]=\"bottomTemplate ? 'tb2' : 'tb1'\" class=\"container-content\"\n             [class.px-0]=\"isNoPaddingLayout\">\n          <div *ngIf=\"!isViewFull\" class=\"bg-white w-full h-100\">\n            <div class=\"container-view-full overflow-auto\">\n              <div class=\"px-2 w-100 h-100\">\n                <ng-container *ngIf=\"contentTemplate\">\n                  <ng-container [ngTemplateOutlet]=\"contentTemplate.templateRef\"></ng-container>\n                </ng-container>\n              </div>\n            </div>\n          </div>\n          <ng-container *ngIf=\"isViewFull\">\n            <ng-container *ngIf=\"contentTemplate\">\n              <ng-container [ngTemplateOutlet]=\"contentTemplate.templateRef\"></ng-container>\n            </ng-container>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n    <div *ngIf=\"isRightBar\" class=\"right h-100 bg-superset\">\n      <ng-container *ngIf=\"rightTemplate\">\n        <ng-container [ngTemplateOutlet]=\"rightTemplate.templateRef\"></ng-container>\n      </ng-container>\n    </div>\n  </div>\n</ng-container>\n<ng-container *ngIf=\"isPlugin\">\n  <div [ngClass]=\"(isRightBar ? 'spr2 ': 'spr1 ') + (fullHeight ? 'h-100' : '') + (isSelectChartPlugin? 'h-100' : '')\"\n       class=\"container-layout-grid bg-superset superset-content\">\n    <div class=\"middle h-100\">\n      <ng-container *ngIf=\"!!toolbarBottomTemplate\">\n        <ng-container [ngTemplateOutlet]=\"toolbarBottomTemplate.templateRef\"></ng-container>\n      </ng-container>\n      <div [ngClass]=\"isSelectChartPlugin? 'pb1' : ''\" class=\"mx-0 pb-2 h-100 bg-superset\">\n        <div *ngIf=\"!isViewFull\" class=\"bg-white w-full h-100\">\n          <div class=\"container-view-full overflow-auto\">\n            <div class=\"px-2 w-100 h-100\">\n              <ng-container *ngIf=\"contentTemplate\">\n                <ng-container [ngTemplateOutlet]=\"contentTemplate.templateRef\"></ng-container>\n              </ng-container>\n            </div>\n          </div>\n        </div>\n        <ng-container *ngIf=\"isViewFull\">\n          <ng-container *ngIf=\"contentTemplate\">\n            <ng-container [ngTemplateOutlet]=\"contentTemplate.templateRef\"></ng-container>\n          </ng-container>\n        </ng-container>\n      </div>\n    </div>\n    <div *ngIf=\"isRightBar\" class=\"right h-100 bg-superset\">\n      <ng-container *ngIf=\"rightTemplate\">\n        <ng-container [ngTemplateOutlet]=\"rightTemplate.templateRef\"></ng-container>\n      </ng-container>\n    </div>\n  </div>\n</ng-container>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {DatasetItem} from \"../../model/chart\";\n\n@Pipe({\n  name: 'getNameDatasetDisplay'\n})\nexport class GetNameDatasetDisplayPipe implements PipeTransform {\n\n  transform(value: DatasetItem): string {\n    return  `${value?.type}.${value?.category}.${value?.name}`;\n  }\n\n}\n","import {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\nimport { Subject, Subscription, switchMap } from 'rxjs';\nimport { ChartService } from '../chart.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { ChartItem, DatasetItem } from '../../model/chart';\nimport { iNet } from 'inet-core';\n\n@Component({\n  selector: 'app-dataset-select',\n  templateUrl: './dataset-select.component.html',\n  styleUrls: ['./dataset-select.component.scss'],\n})\nexport class DatasetSelectComponent implements OnInit, AfterViewInit {\n  @ViewChild('ngDatasetSelect') ngDatasetSelect: NgSelectComponent;\n  datasetInput$ = new Subject<string>();\n  datasetParams = {\n    keyword: '',\n    totalPage: -1,\n    pageSize: 20,\n    pageNumber: 0,\n  };\n  loading: boolean = false;\n  datasetSelect: DatasetItem;\n  @Input() chartItem: ChartItem;\n  datasets: DatasetItem[] = [];\n  @Output() datasetItem = new EventEmitter<DatasetItem>();\n  showTooltip: boolean;\n  searchSub: Subscription;\n  @Input() isAdd: boolean = false;\n\n  constructor(\n    private chartService: ChartService,\n    private router: Router,\n    private route: ActivatedRoute\n  ) {\n    this.route.queryParams.subscribe((value) => {\n      if (value.type && value.category && value.name) {\n        const item: DatasetItem = JSON.parse(\n          JSON.stringify(this.datasetSelect || {})\n        );\n        item.name = value.name;\n        item.category = value.category;\n        item.type = value.type;\n        this.datasetSelect = JSON.parse(JSON.stringify(item));\n      }\n    });\n  }\n\n  ngOnInit() {\n    let datasetEmit: DatasetItem;\n    if (this.chartItem) {\n      datasetEmit = {\n        name: this.chartItem.dsTable,\n        type: this.chartItem.dsType,\n        category: this.chartItem.dsCategory,\n      };\n      this.datasetSelect = datasetEmit;\n    } else {\n      datasetEmit = this.datasetSelect;\n    }\n    if (this.isAdd) {\n      setTimeout(() => {\n        this.datasetItem.emit(datasetEmit);\n      });\n    }\n    // this.searchParam('')\n  }\n\n  ngAfterViewInit() {\n    this.datasetInput$\n      .pipe(debounceTime(200), distinctUntilChanged())\n      .subscribe((key) => this.searchParam(key));\n  }\n\n  searchParam(key: string) {\n    if (this.searchSub) {\n      this.searchSub.unsubscribe();\n    }\n    this.datasetParams.keyword = key;\n    this.searchSub = this.chartService\n      .getTables({\n        keyword: key,\n        totalPage: -1,\n        pageSize: 20,\n        pageNumber: 0,\n      })\n      .subscribe({\n        next: (response) => {\n          if (this.datasetParams.keyword === '') {\n            this.datasetParams.pageNumber = 0;\n            this.datasetParams.totalPage = -1;\n            this.datasets = response.items;\n          } else {\n            this.datasetParams.pageNumber = 1;\n            this.datasetParams.totalPage = Math.ceil(\n              response.total / this.datasetParams.pageSize\n            );\n            this.datasets = response.items;\n          }\n          this.loading = false;\n          this.searchSub = null;\n        },\n        error: () => {\n          this.loading = false;\n          this.searchSub = null;\n        },\n      });\n  }\n\n  loadDataset() {\n    if (!this.loading) {\n      this.loading = true;\n      this.chartService.getTables(this.datasetParams).subscribe({\n        next: (results) => {\n          this.loading = false;\n          this.datasetParams.pageNumber++;\n          this.datasetParams.totalPage = Math.ceil(\n            results.total / this.datasetParams.pageSize\n          );\n          this.datasets = this.datasets.concat(results.items);\n        },\n        error: () => {\n          this.loading = false;\n          this.datasetParams.totalPage = -1;\n          this.datasetParams.pageNumber = 0;\n          this.datasetParams.keyword = '';\n          this.datasets = [];\n        },\n      });\n    }\n  }\n  showDataset() {\n    if (this.datasets?.length === 0) {\n      this.loading = true;\n      this.searchParam(this.datasetSelect?.name);\n    }\n  }\n\n  onClose($event: any) {\n    ///console.log('onClose');\n    this.datasetParams.pageNumber = 0;\n  }\n  chooseDataset($event: DatasetItem) {\n    this.datasetItem.emit($event);\n    if ($event) {\n      this.datasetSelect = $event;\n    }\n  }\n\n  datasetEnter() {\n    if (!this.datasets.length) {\n      this.datasetSelect = undefined;\n    }\n  }\n}\n","<div class=\"select-chart-value\">\n  <div class=\"select-dataset mt-2\">\n    <ng-select\n      #ngDatasetSelect\n      [(ngModel)]=\"datasetSelect\"\n      (change)=\"chooseDataset($event)\"\n      (keydown.enter)=\"datasetEnter()\"\n      (mouseenter)=\"showTooltip = !!datasetSelect\"\n      (scrollToEnd)=\"loadDataset()\"\n      [bindLabel]=\"\n        datasetSelect ? (datasetSelect | getNameDatasetDisplay) : null\n      \"\n      [class.hideEmpty]=\"datasets.length === 0\"\n      [clearable]=\"true\"\n      [editableSearchTerm]=\"true\"\n      [items]=\"datasets\"\n      [loading]=\"loading\"\n      (close)=\"onClose($event)\"\n      (open)=\"showDataset()\"\n      [tooltip]=\"\n        showTooltip && datasetSelect\n          ? (datasetSelect | getNameDatasetDisplay)\n          : null\n      \"\n      [typeahead]=\"datasetInput$\"\n      [virtualScroll]=\"true\"\n      dropdownPosition=\"bottom\"\n      appendTo=\"body\"\n      placement=\"left\"\n      containerClass=\"custom-tooltip\"\n      id=\"datasetList\"\n      placeholder=\"{{ 'VISUALIZE.CHART.FIELD.SELECT_DATASET' | translate }}\"\n    >\n      <ng-template\n        let=\"searchTerm\"\n        let-index=\"index\"\n        let-isearchtem=\"item\"\n        ng-label-tmp\n      >\n        <div class=\"d-flex align-items-center\">\n          <div class=\"text-truncate f-12\">\n            <i class=\"fa fa-th f-12\"></i>\n            {{ datasetSelect | getNameDatasetDisplay }}\n          </div>\n        </div>\n      </ng-template>\n      <ng-template\n        let-index=\"index\"\n        let-item=\"item\"\n        let-search=\"searchTerm\"\n        ng-option-tmp\n      >\n        <div\n          (mouseenter)=\"showTooltip = false\"\n          [tooltip]=\"item | getNameDatasetDisplay\"\n          container=\"body\"\n          placement=\"left\"\n          containerClass=\"custom-tooltip\"\n          class=\"d-flex align-items-center tooltip-parent\"\n        >\n          <div class=\"text-truncate f-12\">\n            {{ item | getNameDatasetDisplay }}\n          </div>\n        </div>\n      </ng-template>\n    </ng-select>\n  </div>\n</div>\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from '@angular/core';\nimport { CoreService, ErrorMessage, iNet } from 'inet-core';\nimport { ChartService } from '../chart.service';\nimport { Subject, Subscription, switchMap } from 'rxjs';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { ChartData, DatasetItem } from '../../model/chart';\nimport {\n  debounceTime,\n  distinctUntilChanged,\n  filter,\n  tap,\n} from 'rxjs/operators';\nimport { CHART, CHART_HTML_TEMPLATE, CHART_PLUGIN, LIST } from '../constants/constants';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../core/store/state/app.state';\nimport * as dataSendActions from '../../core/store/actions/data-send.action';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { ETypeSubmit } from '../model/template';\nimport { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';\n\n@Component({\n  selector: 'app-chart-add',\n  templateUrl: './chart-add.component.html',\n  styleUrls: ['./chart-add.component.scss'],\n})\nexport class ChartAddComponent implements OnInit, AfterViewInit, OnDestroy {\n  @ViewChild('organSelect') ngOrgan: NgSelectComponent;\n  @ViewChild('keyword') keywordInput!: ElementRef;\n  @ViewChild(DeleteDialogComponent) deleteDialogComponent: DeleteDialogComponent;\n  plugin = iNet.getPluginManager();\n  btnClass: string = 'true';\n  formData: any;\n  isTag: boolean = false;\n  isCategory: boolean = false;\n  isTagRecommend: boolean = false;\n  tags: any[] = [];\n  categorys: any[] = [];\n  charts: ChartData[] = [];\n  chartSearch: ChartData[] = [];\n  RECOMMENDED_TAGS = ['Popular', 'ECharts', 'Advanced-Analytics'];\n  select?: any;\n  chartSelect?: ChartData;\n  keyword: string = '';\n  idChart: string | null = '';\n  currentSelect: string = 'Popular';\n  isPlugin: boolean = false;\n  pluginManager = iNet.getPluginManager();\n  urlVisualizeChart: string = iNet.getPUrl('visualcommon/page/visualize-chart');\n  htmlTag: string = '';\n  vizType: string = '';\n  nameChart: string = '';\n  typeSubmit: string = '';\n\n  dataSource: any = {\n    dataset: {\n      datasource_name: '',\n      columns: [],\n      filter_select: true,\n      filter_select_enabled: true,\n      granularity_sqla: [],\n      main_dttm_col: undefined || '',\n      metrics: [],\n      name: '',\n      id: '',\n      order_by_choices: [],\n      table_name: '',\n      time_grain_sqla: [\n        [null, 'Original value'],\n        ['PT1S', 'Second'],\n        ['PT1M', 'Minute'],\n        ['PT1H', 'Hour'],\n        ['P1D', 'Day'],\n        ['P1W', 'Week'],\n        ['P1M', 'Month'],\n        ['P3M', 'Quarter'],\n        ['P1Y', 'Year'],\n      ],\n      type: 'table',\n      uid: '',\n      verbose_map: {},\n    },\n    form_data: {\n      datasource: '',\n      htmlTag: '',\n      nameChart: '',\n      viz_type: '',\n      granularity_sqla: '',\n    },\n    message: null,\n    metadata: null,\n    slice: null,\n  };\n  datasetSelect?: DatasetItem;\n  private subRouter: Subscription;\n  hasVisualizePlus: boolean = false;\n\n  constructor(\n    private chartService: ChartService,\n    private router: Router,\n    private route: ActivatedRoute,\n    private location: Location,\n    private coreService: CoreService,\n    private store: Store<IAppState>\n  ) {\n    this.router.events\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe((e: any) => {\n        this.isPlugin = (e.url as string)?.includes('chart-plugin');\n        console.log(this.isPlugin);\n        \n      });\n    this.chartService.hasModule('visualizeplus').subscribe((res:boolean) => {\n      this.hasVisualizePlus = res;\n    })  \n  }\n\n  ngOnInit(): void {\n    this.getChartsList();\n    this.initSelect();\n    //  this.initType();\n    this.pluginManager.sendMessage({\n      sourceId: 'visualize',\n      eventName: 'loaded',\n      result: JSON.stringify({ handshake: true }),\n    });\n  }\n  ngAfterViewInit(): void {}\n  ngOnDestroy() {\n    this.idChart = '';\n  }\n\n  initSelect() {\n    this.select = this.currentSelect;\n    this.onActive(this.select);\n  }\n\n  encodeBase64(str: string) {\n    return window.btoa(unescape(encodeURIComponent(str)));\n  }\n\n  decodeBase64(str: string) {\n    return decodeURIComponent(escape(window.atob(str)));\n  }\n\n  getChartsList() {\n    this.chartService.getChartsList().subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        this.charts = result.items.filter((value) => {\n          return value.attribute.html;\n        });\n        this.initData();\n      }\n    });\n  }\n\n  initData() {\n    this.charts = this.charts\n      .map((_item) => {\n        let attr = _item?.attribute;\n        attr._base64 = JSON.parse(this.decodeBase64(attr?.base64));\n        if (!!attr.formData) {\n          attr._formData = JSON.parse(this.decodeBase64(attr?.formData));\n        }\n        return _item;\n      })\n      .map((_item) => {\n        if(_item.name === CHART_HTML_TEMPLATE) {\n          _item['nameImage'] = _item.attribute._base64['thumbnail'];\n        }else {\n          let arrName: string[] =\n          _item.attribute._base64['thumbnail'].split('/') || [];\n        _item['nameImage'] = this.getImageByUrl(arrName[arrName.length - 1]);\n        }\n        let examples: string[] = _item.attribute._base64.exampleGallery.map(\n          (value) => {\n            let _url = this.getImageByUrl(\n              value.url.slice(value.url.lastIndexOf(`/`))\n            );\n            return _url;\n          }\n        );\n        _item['examples'] = examples;\n        return _item;\n      });\n\n    this.chartSearch = this.charts;\n    this.tags = Array.from(\n      new Set(\n        this.charts\n          .reduce((tags, chart) => [...tags, ...chart.tags[0].split(',')], [])\n          .filter(\n            (tag) =>\n              tag !== 'Popular' &&\n              tag !== 'ECharts' &&\n              tag !== 'Advanced-Analytics'\n          )\n      )\n    );\n\n    this.categorys = [\n      ...new Set(this.charts.map((_item) => _item.type)),\n    ].filter((type) => type != null);\n\n    this.charts = this.charts.filter((value) => {\n      return value.attribute._base64.tags.includes(`Popular`);\n    });\n  }\n\n  onActive(value?: any) {\n    if (value?.attribute?._base64?.tags) {\n      this.chartSelect = value;\n    } else {\n      this.select = value;\n    }\n    if (this.chartSelect) {\n      this.dataSource.form_data = {\n        ...this.dataSource.form_data,\n        ...this.chartSelect.attribute._formData,\n      };\n      this.htmlTag = this.chartSelect.attribute.html;\n      this.nameChart = this.chartSelect.attribute._base64.name;\n      this.typeSubmit = this.chartSelect.attribute.typeSubmit;\n      this.vizType = this.chartSelect.name;\n      this.updateDataSource();\n      this.store.dispatch(\n        dataSendActions.dataSend({\n          dataSend: {\n            dataSource: JSON.parse(JSON.stringify(this.dataSource)),\n            htmlTag: this.htmlTag,\n            vizType: this.vizType,\n            typeSubmit: this.typeSubmit,\n            nameChart: this.nameChart,\n            url: this.urlVisualizeChart,\n          },\n        })\n      );\n    }\n  }\n\n  search(keyword: string = '') {\n    this.select = undefined;\n    this.chartSelect = undefined;\n    if (keyword.length > 0) {\n      this.charts = this.chartSearch.filter((_item) => {\n        return _item?.attribute._base64?.name\n          .toLowerCase()\n          .includes(this.keyword.trim().toLowerCase());\n      });\n    } else {\n      this.keyword = keyword;\n      this.onSelect(this.currentSelect);\n    }\n  }\n\n  onSelect(value?: any) {\n    this.charts = this.chartSearch;\n    this.currentSelect = value;\n    if (value === 'all') {\n      this.charts = this.chartSearch;\n    } else {\n      this.charts = this.chartSearch.filter((chart) => {\n        return (\n          chart.attribute._base64.tags.includes(value) ||\n          chart.attribute._base64.category === value\n        );\n      });\n    }\n    this.chartSelect = undefined;\n    this.onActive(value);\n  }\n\n  nextToExplore() {\n    if (!this.datasetSelect || !this.chartSelect) {\n      return;\n    }\n    let path: string = CHART;\n    path = this.isPlugin ? CHART_PLUGIN : CHART;\n    if (this.chartSelect.attribute.typeSubmit === ETypeSubmit.CUSTOM) {\n      if(this.chartSelect.name === CHART_HTML_TEMPLATE) {\n        this.router.navigate([`/${path}/${ETypeSubmit.CUSTOM}`], {\n          queryParams: {\n            name: this.datasetSelect.name,\n            category: this.datasetSelect.category,\n            type: this.datasetSelect.type,\n            viztype: this.chartSelect.name,\n            html: this.chartSelect.attribute.html,\n            namechart: this.chartSelect.attribute._base64.name,\n            uuid_html: this.chartSelect.uuid,\n          },\n        });\n      }else {\n        this.router.navigate([`/${path}/${ETypeSubmit.CUSTOM}`], {\n          queryParams: {\n            name: this.datasetSelect.name,\n            viztype: this.chartSelect.name,\n            category: this.datasetSelect.category,\n            type: this.datasetSelect.type,\n            html: this.chartSelect.attribute.html,\n            namechart: this.chartSelect.attribute._base64.name,\n            thumbnail: this.chartSelect.attribute._base64['thumbnail'].split('/').pop(),\n          },\n        });\n      }\n    } else {\n      this.router.navigate([`/${path}/explore`], {\n        queryParams: {\n          name: this.datasetSelect.name,\n          viztype: this.chartSelect.name,\n          category: this.datasetSelect.category,\n          type: this.datasetSelect.type,\n        },\n      });\n    }\n  }\n\n  onSelectTable(table: DatasetItem) {\n    this.datasetSelect = table;\n    if (!table) {\n      return;\n    }\n    let params = {\n      type: table.type,\n      category: table.category,\n      name: table.name,\n    };\n    this.getOneDataset(params);\n  }\n\n  getImageByUrl(__value: any) {\n    let __url;\n    if (__value) {\n      __url = this.coreService.getImageUrlFromModule(__value, 'visualcommon');\n    }\n    return __url;\n  }\n\n  getOneDataset(params: any) {\n    this.chartService.getOneDataset(params).subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        let count = 0;\n        this.dataSource.dataset.datasource_name = result.name;\n        this.dataSource.dataset.name = result.name;\n        this.dataSource.dataset.table_name = result.name;\n        this.dataSource.dataset.id = result.uuid;\n        this.dataSource.dataset.uid = result.uuid;\n        if (result.schemas) {\n          this.dataSource.dataset.columns = [];\n          this.dataSource.dataset.granularity_sqla = [];\n          this.dataSource.dataset.order_by_choices = [];\n          this.dataSource.dataset.verbose_map = {};\n          for (const [key, value] of Object.entries(result.schemas)) {\n            let obj = {\n              filterable: true,\n              groupby: true,\n              is_certified: false,\n              column_name: key,\n              type: value,\n              id: count,\n            };\n            switch (value) {\n              case 'INT':\n              case 'DOUBLE':\n              case 'LONG':\n              case 'INT64':\n              case 'FLOAT':\n              case 'NUMBER':\n                obj['type_generic'] = 0;\n                break;\n              case 'STRING':\n              case 'CHAR':\n                obj['type_generic'] = 1;\n                break;\n              case 'DATE':\n                obj['type_generic'] = 2;\n                break;\n              case 'BOOLEAN':\n                obj['type_generic'] = 3;\n                break;\n              default:\n                break;\n            }\n            this.dataSource.dataset.verbose_map[`${key}`] = key;\n            value === 'DATE'\n              ? (obj['is_dttm'] = true)\n              : (obj['is_dttm'] = false);\n            count += 1;\n            this.dataSource.dataset.columns.push(obj);\n          }\n          this.dataSource.dataset.columns =\n            this.dataSource.dataset.columns.filter((column: any) => {\n              if (column.type !== 'BOOLEAN') {\n                return column;\n              }\n            });\n          for (const i of Object.keys(result.schemas)) {\n            let arr1: any = [],\n              arr2: any = [];\n            arr1 = [`[\"${i}\", true]`, `${i} [asc]`];\n            arr2 = [`[\"${i}\", false]`, `${i} [desc]`];\n            if (result.schemas[`${i}`] === 'DATE') {\n              this.dataSource.dataset.granularity_sqla.push(i);\n              if (!this.dataSource.dataset.main_dttm_col) {\n                this.dataSource.dataset.main_dttm_col = i;\n              }\n            }\n            this.dataSource.dataset.order_by_choices.push(arr1);\n            this.dataSource.dataset.order_by_choices.push(arr2);\n          }\n          this.updateDataSource();\n          this.store.dispatch(\n            dataSendActions.dataSend({\n              dataSend: {\n                dataSource: JSON.parse(JSON.stringify(this.dataSource)),\n                htmlTag: this.htmlTag,\n                vizType: this.vizType,\n                typeSubmit: this.typeSubmit,\n                nameChart: this.nameChart,\n                url: this.urlVisualizeChart,\n              },\n            })\n          );\n        }\n      }\n    });\n  }\n\n  updateDataSource() {\n    if (this.htmlTag) {\n      this.dataSource.form_data.datasource = `${this.dataSource.dataset.id}__${this.dataSource.dataset.datasource_name}`;\n      if (this.dataSource.dataset.granularity_sqla.length > 0) {\n        this.dataSource.form_data.granularity_sqla =\n          this.dataSource.dataset.granularity_sqla[0];\n        this.dataSource.dataset.main_dttm_col =\n          this.dataSource.dataset.granularity_sqla[0];\n        if (this.vizType === 'box_plot') {\n          this.dataSource.form_data['columns'] = [\n            this.dataSource.dataset.granularity_sqla[0],\n          ];\n        }\n      } else {\n        this.dataSource.form_data.granularity_sqla = null;\n        this.dataSource.dataset.main_dttm_col = null;\n        if (this.vizType === 'box_plot') {\n          this.dataSource.form_data['columns'] = [];\n        }\n      }\n    }\n  }\n\n  editTypeOfChart() {\n    if(this.chartSelect) {\n      if(this.chartSelect.organId) {\n        this.router.navigate([`/chart/html`], {\n          queryParams: {\n            uuid: this.chartSelect.uuid,\n            organ_id: this.chartSelect.organId\n          },\n        })\n      }else {\n        this.router.navigate([`/chart/html`], {\n          queryParams: {\n            uuid: this.chartSelect.uuid,\n          },\n        })\n      }\n    }\n  }\n\n  onDeleteTypeOfChart() {\n    if(this.chartSelect) {\n      this.deleteDialogComponent.onShowDialog(this.chartSelect.uuid);\n    }\n  }\n\n  deleteSuccess() {\n    this.vizType = '';\n    this.chartSelect = undefined;\n    this.getChartsList();\n\n  }\n\n  back() {\n    this.router.navigate(['/', CHART, LIST]);\n  }\n}\n","<app-action-view-layout [fullHeight]=\"isPlugin\" [header]=\"''\" [isNoPaddingBottom]=\"true\" [isViewFull]=\"true\">\n  <ng-template toolbarTopTemplate>\n    <ul *ngIf=\"!isPlugin\" class=\"breadcrumb\">\n      <li (click)=\"back()\" class=\"pointer\">{{'VISUALIZE.CHART.FIELD.TITLE_CHART'|translate}}\n      <li class=\"active font-weight-medium\">{{'VISUALIZE.CHART.FIELD.ADD_NEW_CHART'|translate}}</li>\n    </ul>\n  </ng-template>\n  <ng-template btnTopTemplate>\n    <button *ngIf=\"hasVisualizePlus\" class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\" routerLink=\"/chart/html\" type=\"button\">\n      <span><i aria-hidden=\"true\" class=\"fa fa-plus mr-2\"></i>{{'VISUALIZE.CREATE_HTML'|translate}}</span>\n    </button>\n    <button (click)=\"nextToExplore()\" [ngClass]=\"(!chartSelect || !datasetSelect) ? 'disabled': ''\"\n      class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step\"\n      type=\"button\">{{'VISUALIZE.CHART.FIELD.CONTINUE'|translate}}\n      <span style=\"margin-left: 5px;\"><i aria-hidden=\"true\" class=\"fa fa-arrow-right\"></i></span>\n    </button>\n  </ng-template>\n  <ng-template contentTemplate>\n    <div class=\"add-chart-layout\">\n      <div class=\"ant-steps\">\n        <div class=\"ant-steep-item-1\">\n          <div class=\"d-flex align-items-center\">\n            <div *ngIf=\"!datasetSelect\" class=\"badge-custom-primary step-number ml-2\">1</div>\n            <div *ngIf=\"!!datasetSelect\" class=\"icon-s20 icon-primary icon-circle bg-size-auto ml-2\">\n              <div class=\"icon-number\">1</div>\n            </div>\n            <div class=\"header-title\">{{'VISUALIZE.CHART.FIELD.SELECT_DATASET'|translate}}</div>\n          </div>\n          <div class=\"w-100\">\n            <app-dataset-select [isAdd]=\"true\" (datasetItem)=\"onSelectTable($event)\"></app-dataset-select>\n          </div>\n        </div>\n        <div class=\"d-flex align-items-center mt-1\">\n          <div *ngIf=\"!chartSelect\" class=\"badge-custom-primary step-number ml-2\">2</div>\n          <div *ngIf=\"!!chartSelect\" class=\"icon-s20 icon-primary icon-circle bg-size-auto ml-2\">\n            <div class=\"icon-number\">2</div>\n          </div>\n\n          <div class=\"header-title\">{{'VISUALIZE.CHART.FIELD.ADD_CATE_CHART'|translate}}</div>\n        </div>\n        <div class=\"ant-steep-item-2\">\n\n          <div class=\"tags pt-0 pb-0\">\n            <span (click)=\"onSelect('all')\" [ngClass]=\"{'content selected' : select === 'all'}\"\n              class=\"content-title mt-0\"> <span\n                class=\"icon-s20 icon-hover-primary icon-ballot mr-1\"></span>{{'VISUALIZE.CHART.FIELD.ALL_CHART'|translate}}</span>\n          </div>\n          <div class=\"tags\">\n            <span (click)=\"isTagRecommend = !isTagRecommend\" [attr.aria-expanded]=\"!isTagRecommend\" aria-controls=\"\"\n              class=\"content-head\">{{'VISUALIZE.FIELD.TITTLE.RECOMMEND_TAG'|translate}}\n              <i [ngClass]=\"isTagRecommend? 'icon-right': 'icon-right down'\" class=\"custom-icon\"></i>\n            </span>\n            <div *ngFor=\"let re of RECOMMENDED_TAGS;let i = index\" [collapse]=\"isTagRecommend\" [isAnimated]=\"true\">\n              <span (click)=\"onSelect(re)\" [ngClass]=\"{'content selected' : select === re}\" class=\"content-title\">\n                <span class=\"mr-1 icon-s20 icon-tags icon-hover-primary\"></span> {{re}}</span>\n            </div>\n          </div>\n          <div class=\"tags\">\n            <span (click)=\"isCategory = !isCategory\" [attr.aria-expanded]=\"!isCategory\" aria-controls=\"\"\n              class=\"content-head\">{{'VISUALIZE.CHART.FIELD.TITLE_CATEGORY'|translate}}\n              <i [ngClass]=\"isCategory? 'icon-right': 'icon-right down'\" class=\"custom-icon\"></i>\n            </span>\n            <div *ngFor=\"let cat of categorys; let i = index\" [collapse]=\"isCategory\" [isAnimated]=\"true\">\n              <span (click)=\"onSelect(cat)\" *ngIf=\"cat !== '##'\" [ngClass]=\"{'content selected' : select === cat}\"\n                class=\"content-title\"><span class=\"mr-1 icon-s20 icon-open-query icon-hover-primary\"></span> {{cat}}\n              </span>\n            </div>\n          </div>\n          <div class=\"tags\">\n            <span (click)=\"isTag = !isTag\" [attr.aria-expanded]=\"!isTag\" aria-controls=\"\"\n              class=\"content-head\">{{'VISUALIZE.CHART.FIELD.TITLE_TAGS'|translate}}\n              <i [ngClass]=\"isTag? 'icon-right': 'icon-right down'\" class=\"custom-icon\"></i>\n            </span>\n            <div *ngFor=\"let tag of tags; let i = index\" [collapse]=\"isTag\" [isAnimated]=\"true\">\n              <span (click)=\"onSelect(tag)\" [ngClass]=\"{'content selected' : select === tag}\"\n                class=\"content-title\"><span class=\"mr-1 icon-s20 icon-tags icon-hover-primary\"></span> {{tag}}</span>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"chart-container\">\n        <div [ngClass]=\"chartSelect? 'spr2'  : ''\" class=\"chart-view\">\n          <div class=\"container-search\">\n            <span class=\"icon-search-pos\"><i class=\"icon-s17 icon-secondary icon-search\"></i></span>\n            <input (keyup)=\"search(keyword)\" [(ngModel)]=\"keyword\"\n              class=\"form-control-superset input-search col-md-12 col-xs-12\"\n              placeholder=\"{{'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND'|translate}}\" type=\"text\">\n            <span (click)=\"search()\" *ngIf=\"keyword.length > 0\" class=\"icon-close-pos\"><i\n                class=\"icon-s17  icon-secondary icon-close-large\"></i></span>\n          </div>\n          <div class=\"all-chart-view\">\n            <div (click)=\"onActive(chart)\" *ngFor=\"let chart of charts; let i = index\" class=\"chart\">\n              <img [ngClass]=\"{ 'active': chartSelect === chart }\" [src]=\"chart?.nameImage\">\n              <div class=\"chart-name\">{{ chart.attribute._base64?.name }}</div>\n              <div class=\"chart-btns\" *ngIf=\"chart.name === 'chart_html_template' && chartSelect === chart && hasVisualizePlus\">\n                <button class=\"chart-btn-custom edit\"\n                  (click)=\"editTypeOfChart()\" type=\"button\" placement=\"top\" tooltip=\"{{'VISUALIZE.EDIT'|translate}}\">\n                  <i aria-hidden=\"true\" class=\"fa fa-pencil\"></i>\n                </button>\n                <button (click)=\"onDeleteTypeOfChart()\"\n                  class=\"chart-btn-custom delete\" placement=\"top\" tooltip=\"{{'VISUALIZE.DELETE'|translate}}\">\n                  <i class=\"fa fa-trash-o\"></i>\n                </button>\n              </div>\n            </div>\n\n          </div>\n        </div>\n        <div *ngIf=\"chartSelect\" class=\"chart-info\">\n          <div class=\"info\">\n            <div class=\"chart-title\">{{chartSelect?.attribute._base64?.name}} </div>\n            <div class=\"chart-tags\">\n              <span *ngFor=\"let tag of chartSelect.attribute._base64?.tags\" class=\"tag-block mb-2\">{{tag}}</span>\n            </div>\n            <div class=\"description\">{{chartSelect?.attribute._base64?.description}}</div>\n          </div>\n          <div class=\"chart-examples\">\n            <div class=\"chart-title\">{{'VISUALIZE.FIELD.TITTLE.EXAMPLES'|translate}}</div>\n            <div class=\"image-examples\">\n              <img *ngFor=\"let example of chartSelect?.examples\" [src]=\"example\" class=\"mr-2\">\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </ng-template>\n</app-action-view-layout>\n<app-delete-dialog (deleteSuccess)=\"deleteSuccess()\"></app-delete-dialog>\n","export const commonVN = {\n VISUALIZE_SERIES_LIMIT: 'GIỚI HẠN DÒNG',\n VISUALIZE_SERIES_LIMIT_DESCRIPTION: 'Giới hạn số chuỗi được hiển thị. Truy vấn con đã tham gia (hoặc một giai đoạn bổ sung mà truy vấn con không được hỗ trợ) được áp dụng để giới hạn số lượng chuỗi được tìm nạp và hiển thị. Tính năng này hữu ích khi nhóm theo (các) cột có số lượng thẻ cao mặc dù sẽ làm tăng chi phí và độ phức tạp của truy vấn.',\n VISUALIZE_FILTERS: 'FILTERS',\n VISUALIZE_DATA: 'Nhân tố',\n VISUALIZE_DATA_DESCRIPTION: 'Điều khiển được gắn nhãn',\n VISUALIZE_NOT_EMPTY: 'không được để trống',\n VISUALIZE_CUSTOMIZE: 'Tùy chỉnh',\n VISUALIZE_TIME: 'Thời gian',\n VISUALIZE_TIME_DESCRIPTION: 'Thuộc tính biểu mẫu liên quan đến thời gian',\n VISUALIZE_TIME_COLUMN: 'Cột thời gian',\n VISUALIZE_TIME_COLUMN_DESCRIPTION: \"Cột thời gian để trực quan hóa. Lưu ý rằng bạn có thể xác định biểu thức tùy ý trả về cột DATETIME trong bảng. Cũng lưu ý rằng bộ lọc bên dưới được áp dụng cho cột hoặc biểu thức này msgstr \",\n VISUALIZE_TIME_COLUMN_DROP: \"Thả cột thời gian vào đây hoặc nhấp vào\",\n VISUALIZE_TIME_COLUMN_SIMPLE: \"Đơn giản\",\n VISUALIZE_TIME_COLUMN_NOT_FIND: \"Không tìm thấy cột tạm thời\",\n VISUALIZE_TIME_COLUMN_MARK: \"Đánh dấu một cột là tạm thời trong \\\"Chỉnh sửa nguồn dữ liệu\\\" moda\",\n VISUALIZE_CLOSE: \"Đóng\",\n VISUALIZE_SAVE: \"Lưu\",\n VISUALIZE_COLUMN: \"Cột\",\n VISUALIZE_AGGREGATE: \"Tổng hợp\",\n VISUALIZE_CUSTOM: \"Tùy chỉnh\",\n VISUALIZE_NO_FILTER: \"Không có bộ lọc\",\n VISUALIZE_SELECT: \"Chọn ..\",\n VISUALIZE_APPLY: \"Áp dụng\",\n VISUALIZE_CANCEL: \"Hủy\",\n VISUALIZE_CLICK_TO_EDIT: \"Nhấp để chỉnh sửa nhãn\",\n VISUALIZE_TIME_RANGE: \"Phạm vi thời gian\",\n VISUALIZE_TIME_RANGE_TYPE: \"Loại phạm vi\",\n VISUALIZE_TIME_RANGE_EDIT: \"Chỉnh sửa loại phạm vi\",\n VISUALIZE_TIME_RANGE_ACTUAL: \"Phạm vi thời gian thực tế\",\n VISUALIZE_TIME_RANGE_DESCRIPTION: \"Phạm vi thời gian để trực quan hóa. Tất cả thời gian tương đối, ví dụ: \\\"Tháng trước\\\", \\\"7 ngày qua\\\", \\\"bây giờ\\\", v.v. được đánh giá trên máy chủ bằng cách sử dụng giờ địa phương của máy chủ (sans múi giờ). Tất cả chú giải công cụ và thời gian giữ chỗ được thể hiện bằng UTC (không có múi giờ). Dấu thời gian sau đó được cơ sở dữ liệu đánh giá bằng cách sử dụng múi giờ địa phương của công cụ. Lưu ý rằng người ta có thể đặt rõ ràng múi giờ theo định dạng ISO 8601 nếu chỉ định thời điểm bắt đầu và/ hoặc thời gian kết thúc.\",\n VISUALIZE_TIME_GRAIN: \"Hạt thời gian\",\n VISUALIZE_TIME_GRAIN_DESCRIPTION: \"Độ chi tiết về thời gian cho trực quan hóa. Điều này áp dụng chuyển đổi ngày để thay đổi cột thời gian của bạn và xác định độ chi tiết về thời gian mới. Các tùy chọn ở đây được xác định trên cơ sở mỗi công cụ cơ sở dữ liệu trong mã nguồn Superset.\",\n VISUALIZE_QUERY_TITLE: \"Truy vấn\",\n VISUALIZE_QUERY_DESCRIPTION: \"Phần này chứa lỗi xác thực\",\n VISUALIZE_QUERY_METRICS: \"Số liệu\",\n VISUALIZE_QUERY_MY_METRICS: \"Số liệu của tôi\",\n VISUALIZE_QUERY_MY_COLUMNS: \"Cột của tôi\",\n VISUALIZE_QUERY_METRICS_DISPLAY: \"Một hoặc nhiều Chỉ số để hiển thị\",\n VISUALIZE_QUERY_METRICS_DROP: \"Thả cột/chỉ số vào đây hoặc nhấp vào\",\n VISUALIZE_QUERY_METRICS_DROP_OR_CLICK: \"Thả cột vào đây hoặc nhấp vào\",\n VISUALIZE_QUERY_METRICS_DROP_ONE_OR_CLICK: \"Thả cột vào đây hoặc nhấp vào\",\n VISUALIZE_QUERY_DIMENSIONS: \"Kích thước\",\n VISUALIZE_QUERY_DIMENSIONS_DESCRIPTION: \"Một hoặc nhiều cột để nhóm theo. Nhóm cardinality cao nên bao gồm giới hạn chuỗi để giới hạn số lượng chuỗi được tìm nạp và hiển thị.\",\n VISUALIZE_QUERY_UNEXPECTED_ERROR: 'Lỗi không mong muốn',\n VISUALIZE_CONTRIBUTION_MODE: 'Chế độ đóng góp',\n VISUALIZE_CONTRIBUTION_MODE_DESCRIPTION: 'Tính toán đóng góp cho mỗi chuỗi hoặc tổng số',\n VISUALIZE_COPY: 'Sao chép tin nhắn',\n VISUALIZE_CREATE_CHART: 'Áp dụng',\n VISUALIZE_OPERATOR: 'Người điều hành',\n VISUALIZE_NONE: 'Không',\n VISUALIZE_ROW: 'Hàng',\n VISUALIZE_YES: 'Có',\n VISUALIZE_NO: 'Không',\n VISUALIZE_DEFAULT: 'Mặc định',\n VISUALIZE_SERIES: 'Sê-ri',\n VISUALIZE_QUERY_FILTER: 'Bộ lọc',\n VISUALIZE_SORT_BY: 'Sắp xếp theo',\n VISUALIZE_SORT_BY_DESCRIPTION: 'Số liệu được sử dụng để xác định cách sắp xếp chuỗi trên cùng nếu có giới hạn hàng hoặc chuỗi. Nếu không xác định hoàn nguyên về số liệu đầu tiên (nếu thích hợp).',\n VISUALIZE_LIMIT_ROW: 'Giới hạn hàng',\n VISUALIZE_LIMIT_ROW_DESCRIPTION: 'Giới hạn số hàng được hiển thị.',\n VISUALIZE_TRUNCATE_METRIC: 'Cắt bớt chỉ số',\n VISUALIZE_TRUNCATE_METRIC_DESCRIPTION: 'Có cắt bớt số liệu hay không',\n VISUALIZE_SHOW_EMPTY_COL: 'Hiển thị các cột trống',\n VISUALIZE_PREDICTIVE_ANALYTICS: 'Phân tích dự đoán',\n VISUALIZE_PREDICTIVE_ENABLE_FORECAST: 'BẬT DỰ BÁO',\n VISUALIZE_PREDICTIVE_FORECAST_DESCRIPTION: 'Bật dự đoán',\n VISUALIZE_PREDICTIVE_FORECAST_PERIODS: 'GIỜ DỰ BÁO',\n VISUALIZE_PREDICTIVE_FORECAST_PERIODS_DESCRIPTION: 'Chúng tôi muốn dự đoán bao nhiêu giai đoạn trong tương lai',\n VISUALIZE_PREDICTIVE_CONFIDENCE_INTERVAL: 'Khoảng thời gian tin cậy',\n VISUALIZE_PREDICTIVE_CONFIDENCE_INTERVAL_DESCRIPTION: 'Độ rộng của khoảng tin cậy. Nên nằm trong khoảng từ 0 đến 1',\n VISUALIZE_PREDICTIVE_YEARLY_SEASONALITY: 'MÙA HÀNG NĂM',\n VISUALIZE_PREDICTIVE_YEARLY_SEASONALITY_DESCRIPTION: 'Có nên áp dụng tính thời vụ hàng năm. Một giá trị số nguyên sẽ chỉ định thứ tự Fourier của tính thời vụ.',\n VISUALIZE_PREDICTIVE_WEEKLY_SEASONALITY: 'MÙA HÀNG TUẦN',\n VISUALIZE_PREDICTIVE_WEEKLY_SEASONALITY_DESCRIPTION: 'Có nên áp dụng thời vụ hàng tuần không. Một giá trị số nguyên sẽ chỉ định thứ tự thời vụ Fourier',\n VISUALIZE_PREDICTIVE_DAILY_SEASONALITY: 'MÙA HÀNG NGÀY',\n VISUALIZE_PREDICTIVE_DAILY_SEASONALITY_DESCRIPTION: 'Có nên áp dụng thời vụ hàng ngày không. Một giá trị số nguyên sẽ chỉ định thứ tự thời vụ Fourier',\n VISUALIZE_CHART_ORIENTATION: 'Hướng biểu đồ',\n VISUALIZE_BAR_ORIENTATION: 'Định hướng thanh',\n VISUALIZE_BAR_ORIENTATION_DESCRIPTION: 'Hướng của biểu đồ thanh',\n VISUALIZE_NOTIFICATION_CHANGE: 'Thay đổi điều khiển này có hiệu lực ngay lập tức',\n VISUALIZE_VERTICAL: 'Dọc',\n VISUALIZE_HORIZONTAL: 'Ngang',\n VISUALIZE_CHART_TITTLE: 'Tiêu đề biểu đồ',\n VISUALIZE_CHART_OPTION: 'Tùy chọn biểu đồ',\n VISUALIZE_X_AXIS: 'Trục X',\n VISUALIZE_X_AXIS_TITTLE: 'TITLE AXIS',\n VISUALIZE_AXIS_TITTLE_MARGIN: 'BÊN LỀ TIÊU ĐỀ TRỤC',\n VISUALIZE_Y_AXIS: 'Trục Y',\n VISUALIZE_AXIS_TITLE_POSITION: 'VỊ TRÍ TIÊU ĐỀ TRỤC',\n VISUALIZE_LEFT: 'Trái',\n VISUALIZE_TOP: 'Trên cùng',\n VISUALIZE_BOTTOM: 'Dưới cùng',\n VISUALIZE_RIGHT: 'Đúng',\n VISUALIZE_SHOW_VALUE: 'Hiển thị giá trị',\n VISUALIZE_COLOR_BROAD: 'Phối màu',\n VISUALIZE_SHOW_VALUE_DESCRIPTION: 'Hiển thị chuỗi giá trị trên biểu đồ',\n VISUALIZE_STACK_SERIES: 'DÒNG CHÉP',\n VISUALIZE_STACK_SERIES_DESCRIPTION: 'Xếp chồng chuỗi lên nhau',\n VISUALIZE_DATA_ZOOM: 'Thu phóng dữ liệu',\n VISUALIZE_DATA_ZOOM_DESCRIPTION: 'Bật điều khiển thu phóng dữ liệu',\n VISUALIZE_LEGEND: 'Huyền thoại',\n VISUALIZE_SHOW_LEGEND: 'Hiển thị chú thích',\n VISUALIZE_SHOW_LEGEND_DESCRIPTION: 'Có hiển thị chú giải cho biểu đồ hay không',\n VISUALIZE_TYPE: 'Loại',\n VISUALIZE_TYPE_DESCRIPTION: 'Loại chú thích',\n VISUALIZE_SCROLL: 'Cuộn',\n VISUALIZE_PLAIN: 'Đơn giản',\n VISUALIZE_ORIENTATION: 'Định hướng',\n VISUALIZE_LEGEND_ORIENTATION: 'Hướng chú giải',\n VISUALIZE_COLOR_BROAD_DESCRIPTION: 'Bảng phối màu cho biểu đồ hiển thị',\n VISUALIZE_MARGIN: 'MARGIN',\n VISUALIZE_ORIGINAL_VALUE: 'Giá trị ban đầu',\n VISUALIZE_DURATION_IN_MS: 'Thời lượng tính bằng mili giây (66000 => 1 phút 6 giây)',\n VISUALIZE_DURATION_IN_MS_1: 'Thời lượng tính bằng mili giây (1,40008 => 1ms 400µs 80ns)',\n VISUALIZE_MARGIN_DESCRIPTION: 'Phần đệm bổ sung cho chú giải.',\n VISUALIZE_TIME_FORMAT: 'ĐỊNH DẠNG THỜI GIAN',\n VISUALIZE_TIME_FORMAT_DESCRIPTION: 'Cú pháp định dạng thời gian D3: https://github.com/d3/d3-time-format. Khi sử dụng khác với định dạng thích ứng, các nhãn có thể trùng nhau',\n VISUALIZE_ADAPTIVE_FORMATTING: 'Định dạng thích ứng',\n VISUALIZE_ROTATE_AXIS_LABEL: 'XOAY NHÃN TRỤC',\n VISUALIZE_ROTATE_AXIS_LABEL_DESCRIPTION: 'Trường nhập hỗ trợ xoay tùy chỉnh. ví dụ. 30 cho 30°',\n VISUALIZE_TOOLTIP: 'Chú giải công cụ',\n VISUALIZE_TOOLTIP_RICH: 'MIP CÔNG CỤ ĐA DẠNG',\n VISUALIZE_TOOLTIP_RICH_DESCRIPTION: 'Hiển thị danh sách tất cả các bộ có sẵn tại thời điểm đó',\n VISUALIZE_TOOLTIP_SORT_DESCRIPTION: 'Có sắp xếp chú giải công cụ theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_TOOLTIP_SORT: 'TOOLTIP SẮP XẾP THEO SỐ LIỆU',\n VISUALIZE_TOOLTIP_TIME_FORMAT: 'ĐỊNH DẠNG THỜI GIAN CỦA TOOLTIP',\n VISUALIZE_TOOLTIP_TIME_FORMAT_DESCRIPTION: 'Cú pháp định dạng thời gian D3: https://github.com/d3/d3-time-format ',\n VISUALIZE_AXIS_FORMAT: 'ĐỊNH DẠNG TRỤC',\n VISUALIZE_AXIS_FORMAT_DESCRIPTION: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_LOGARITHMIC_AXIS: 'Trục logarit',\n VISUALIZE_MINOR_SPLIT_LINE: 'Đường chia nhỏ',\n VISUALIZE_MINOR_SPLIT_LINE_DESCRIPTION: 'Vẽ các đường phân chia cho các trục phụ',\n VISUALIZE_TRUNCATE_AXIS: 'TRỤC TRUNCATE',\n VISUALIZE_TRUNCATE_AXIS_DESCRIPTION: 'Không nên cắt bớt trục trong Biểu đồ thanh.',\n VISUALIZE_AXIS_BOUNDS: 'RỘNG GIỚI HẠN TRỤC',\n VISUALIZE_AXIS_BOUNDS_DESCRIPTION: 'Các giới hạn của trục. Khi để trống, các giới hạn được xác định động dựa trên mức tối thiểu/tối đa của dữ liệu. Lưu ý rằng tính năng này sẽ chỉ mở rộng phạm vi trục. Nó sẽ không thu hẹp phạm vi của dữ liệu.',\n VISUALIZE_MIN: 'Tối thiểu',\n VISUALIZE_MAX: 'Tối đa',\n VISUALIZE_LABEL_ADD_REQUIRED_CONTROL: 'Thêm các giá trị kiểm soát bắt buộc vào biểu đồ xem trước',\n VISUALIZE_RESULTS: 'Kết quả',\n VISUALIZE_RUN_TO_DISPLAY: 'Chạy truy vấn để hiển thị kết quả',\n /*------------------------------ LỊCH SƠ ĐỒ---------------- ---------------*/\n VISUALIZE_CALENDAR_DOMAIN: 'Miền',\n VISUALIZE_CALENDAR_DESCRIPTION: 'Đơn vị thời gian được sử dụng để nhóm các khối',\n VISUALIZE_CALENDAR_SUBDOMAIN: 'Tên miền phụ',\n VISUALIZE_CALENDAR_SUBDOMAIN_DESC: 'Đơn vị thời gian cho mỗi khối. Phải là một đơn vị nhỏ hơn domain_granularity. Phải lớn hơn hoặc bằng Time Grain',\n VISUALIZE_CALENDAR_CELL_SIZE: 'Kích thước ô',\n VISUALIZE_CALENDAR_CELL_SIZE_DESC: 'Kích thước ô vuông, tính bằng pixel',\n VISUALIZE_CALENDAR_CELL_PADDING: 'Đệm ô',\n VISUALIZE_CALENDAR_CELL_PADDING_DESC: 'Khoảng cách giữa các ô tính bằng pixel',\n VISUALIZE_CALENDAR_CELL_RADIUS: 'Bán kính ô',\n VISUALIZE_CALENDAR_CELL_RADIUS_DESC: 'Bán kính pixel',\n VISUALIZE_CALENDAR_COLOR_STEPS: 'Các bước màu',\n VISUALIZE_CALENDAR_COLOR_STEPS_DESC: 'Số màu \"bước\"',\n VISUALIZE_CALENDAR_LEGEND: 'Huyền thoại',\n VISUALIZE_CALENDAR_LEGEND_DESC: 'Có hiển thị chú giải (bật/tắt)',\n VISUALIZE_CALENDAR_SHOW_VALUES: 'Hiển thị giá trị',\n VISUALIZE_CALENDAR_SHOW_VALUES_DESC: 'Có hiển thị các giá trị số trong các ô hay không',\n VISUALIZE_CALENDAR_SHOW_METRIC: 'Hiển thị tên chỉ số',\n VISUALIZE_CALENDAR_SHOW_METRIC_DESC: 'Có hiển thị tên chỉ số dưới dạng tiêu đề hay không',\n VISUALIZE_CALENDAR_NUMBER_FORMAT: 'Định dạng Số',\n /*---------------DÂY NHAU--------------------*/\n VISUALIZE_CHORD_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_CHORD_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_CHORD_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_CHORD_NUMBER_FORMAT_DESC: 'Chọn định dạng số',\n VISUALIZE_CHORD_SOURCE: 'Nguồn',\n VISUALIZE_CHORD_SOURCE_DESC: 'Chọn nguồn',\n VISUALIZE_CHORD_TARGET: 'Mục tiêu',\n VISUALIZE_CHORD_TARGET_DESC: 'Chọn mục tiêu',\n\n /*---------------- COUNTRY_MAP---------------------*/\n\n VISUALIZE_COUNTRY_COUNTRY: 'Quốc gia',\n VISUALIZE_COUNTRY_COUNTRY_DESC: 'Lập bản đồ cho quốc gia nào?',\n VISUALIZE_COUNTRY_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_COUNTRY_NUMBER_FORMAT_DESC: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_COUNTRY_ISO: 'Mã ISO 3166-2',\n VISUALIZE_COUNTRY_ISO_DESC: 'Cột chứa mã ISO 3166-2 của vùng/tỉnh/bộ phận trong bảng của bạn.',\n VISUALIZE_COUNTRY_QUERY_METRIC_DESC: 'Số liệu để hiển thị tiêu đề dưới cùng',\n /*-------------------CHUYỂN SỰ KIỆN---------------------*/\n\n VISUALIZE_EVENT_EVENT_NAME: 'Tên sự kiện',\n VISUALIZE_EVENT_EVENT_NAME_DESC: 'Các cột để hiển thị',\n VISUALIZE_EVENT_ORDER_BY: 'Đặt hàng theo id thực thể',\n VISUALIZE_EVENT_ORDER_BY_DESC: 'Quan trọng! Chọn tùy chọn này nếu bảng chưa được sắp xếp theo id thực thể, nếu không, không có gì đảm bảo rằng tất cả các sự kiện cho từng thực thể đều được trả về.',\n VISUALIZE_EVENT_MINIMUM: 'Số sự kiện nút lá tối thiểu',\n VISUALIZE_EVENT_MINIMUM_DESC: 'Các nút lá biểu thị ít hơn số sự kiện này ban đầu sẽ bị ẩn trong trực quan hóa',\n VISUALIZE_EVENT_META_DATA: 'Siêu dữ liệu',\n VISUALIZE_EVENT_META_DATA_DESC: 'Chọn bất kỳ cột nào để kiểm tra siêu dữ liệu',\n VISUALIZE_EVENT_ENTITY_ID: 'ID đối tượng',\n VISUALIZE_EVENT_ENTITY_ID_DESC: 'ví dụ: cột \"id người dùng\"',\n VISUALIZE_EVENT_MAX: 'Số sự kiện tối đa',\n VISUALIZE_EVENT_MAX_DESC: 'Số sự kiện tối đa cần trả về, tương đương với số hàng',\n /*------------bản đồ trái tim---------*/\n\n VISUALIZE_HEATMAP_AXIS_ASCENDING: 'Trục tăng dần',\n VISUALIZE_HEATMAP_AXIS_DESCENDING: 'Trục giảm dần',\n VISUALIZE_HEATMAP_METRICS_ASCENDING: 'Số liệu tăng dần',\n VISUALIZE_HEATMAP_METRICS_DESCENDING: 'Số liệu giảm dần',\n VISUALIZE_HEATMAP_COLUMNS_DISPLAY: 'Các cột để hiển thị',\n VISUALIZE_HEATMAP_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_HEATMAP_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_HEATMAP_OPTION: 'Tùy chọn bản đồ nhiệt',\n VISUALIZE_HEATMAP_XSCALE_INTERVAL: 'Khoảng XSscale',\n VISUALIZE_HEATMAP_XSCALE_INTERVAL_DESC: 'Số bước cần thực hiện giữa các lần đánh dấu khi hiển thị tỷ lệ X',\n VISUALIZE_HEATMAP_YSCALE_INTERVAL: 'Khoảng thời gian Yscale',\n VISUALIZE_HEATMAP_YSCALE_INTERVAL_DESC: 'Số bước cần thực hiện giữa các lần đánh dấu khi hiển thị thang đo Y',\n VISUALIZE_HEATMAP_RENDERING: 'Đang hiển thị',\n VISUALIZE_HEATMAP_RENDERING_DESC: 'thuộc tính CSS hiển thị hình ảnh của đối tượng canvas xác định cách trình duyệt tăng tỷ lệ hình ảnh',\n VISUALIZE_HEATMAP_NORMALIZE: 'Chuẩn hóa ngang',\n VISUALIZE_HEATMAP_NORMALIZE_DESC: 'Màu sẽ được tô bóng dựa trên giá trị chuẩn hóa (0% đến 100%) của một ô nhất định so với các ô khác trong phạm vi đã chọn: ',\n VISUALIZE_HEATMAP_NORMALIZE_DESC_X: 'x: giá trị được chuẩn hóa trong mỗi cột',\n VISUALIZE_HEATMAP_NORMALIZE_DESC_Y: 'y: các giá trị được chuẩn hóa trong mỗi hàng',\n VISUALIZE_HEATMAP_NORMALIZE_DESC_HEATMAP: 'bản đồ nhiệt: các giá trị được chuẩn hóa trên toàn bộ bản đồ nhiệt',\n VISUALIZE_HEATMAP_LEFT_MARGIN: 'Lề trái',\n VISUALIZE_HEATMAP_LEFT_MARGIN_DESC: 'Lề trái, tính bằng pixel, cho phép có nhiều chỗ hơn cho các nhãn trục',\n VISUALIZE_HEATMAP_BOTTOM_MARGIN: 'Lề dưới',\n VISUALIZE_HEATMAP_BOTTOM_MARGIN_DESC: 'Lề dưới, tính bằng pixel, cho phép có nhiều chỗ hơn cho các nhãn trục',\n VISUALIZE_HEATMAP_VALUE_BOUNDS: 'Giới hạn giá trị',\n VISUALIZE_HEATMAP_VALUE_BOUNDS_DESC: 'Giới hạn giá trị cứng được áp dụng cho mã màu. Chỉ có liên quan và được áp dụng khi chuẩn hóa được áp dụng cho toàn bộ bản đồ nhiệt.',\n VISUALIZE_HEATMAP_SORT_X_AXIS: 'Sắp xếp theo trục X',\n VISUALIZE_HEATMAP_SORT_Y_AXIS: 'Sắp xếp theo trục Y',\n VISUALIZE_HEATMAP_LEGEND_DESC: 'Có hiển thị chú giải (bật/tắt)',\n VISUALIZE_HEATMAP_PERCENTAGE: 'Hiển thị phần trăm',\n VISUALIZE_HEATMAP_PERCENTAGE_DESC: 'Có bao gồm phần trăm trong chú giải công cụ hay không',\n VISUALIZE_HEATMAP_SHOW_VALUES: 'Hiển thị giá trị',\n VISUALIZE_HEATMAP_SHOW_VALUES_DESC: 'Có hiển thị các giá trị số trong các ô hay không',\n VISUALIZE_HEATMAP_NORMALIZED: 'Chuẩn hóa',\n VISUALIZE_HEATMAP_NORMALIZED_DESC: 'Có áp dụng phân phối chuẩn dựa trên thứ hạng trên thang màu hay không',\n VISUALIZE_HEATMAP_VALUE_FORMAT: 'Định dạng giá trị',\n\n /*---------------biểu đồ--------------------*/\n\n VISUALIZE_HISTOGRAM_COLUMNS: 'Cột',\n VISUALIZE_HISTOGRAM_COLUMNS_DESC: 'Chọn các cột số để vẽ biểu đồ',\n VISUALIZE_HISTOGRAM_NO_BINS: 'Số thùng',\n VISUALIZE_HISTOGRAM_NO_BINS_DESC: 'Chọn số lượng ngăn cho biểu đồ',\n VISUALIZE_HISTOGRAM_X_LABEL: 'Nhãn trục X',\n VISUALIZE_HISTOGRAM_Y_LABEL: 'Nhãn trục Y',\n VISUALIZE_HISTOGRAM_LEGEND_DESC: 'Có hiển thị chú giải (bật/tắt)',\n VISUALIZE_HISTOGRAM_NORMALIZED: 'Chuẩn hóa',\n VISUALIZE_HISTOGRAM_NORMALIZED_DESC: 'Có chuẩn hóa biểu đồ hay không',\n VISUALIZE_HISTOGRAM_CUMULATIVE: 'Tích lũy',\n VISUALIZE_HISTOGRAM_CUMULATIVE_DESC: 'Liệu có tích lũy biểu đồ tần số hay không',\n\n /*------------đường chân trời---------*/\n VISUALIZE_HORIZON_CONTRIBUTE: 'Đóng góp',\n VISUALIZE_HORIZON_CONTRIBUTE_DESC: 'Tính toán phần đóng góp vào tổng số',\n VISUALIZE_HORIZON_SERIES_HEIGHT: 'Chiều cao chuỗi',\n VISUALIZE_HORIZON_SERIES_HEIGHT_DESC: 'Chiều cao pixel của mỗi chuỗi',\n VISUALIZE_HORIZON_VALUE_DOMAIN: 'Miền giá trị',\n VISUALIZE_HORIZON_VALUE_DOMAIN_DESC: 'sê-ri: Xử lý độc lập từng sê-ri; tổng thể: Tất cả các sê-ri sử dụng cùng một tỷ lệ; thay đổi: Hiển thị các thay đổi so với điểm dữ liệu đầu tiên trong mỗi chuỗi',\n /*------------map-box---------*/\n\n VISUALIZE_MAP_BOX_LONGITUDE: 'Kinh độ',\n VISUALIZE_MAP_BOX_LONGITUDE_DESC: 'Cột chứa dữ liệu kinh độ',\n VISUALIZE_MAP_BOX_LATITUDE: 'Vĩ độ',\n VISUALIZE_MAP_BOX_LATITUDE_DESC: 'Cột chứa dữ liệu vĩ độ',\n VISUALIZE_MAP_BOX_CLUSTERING: 'Bán kính phân cụm',\n VISUALIZE_MAP_BOX_CLUSTERING_DESC: 'Bán kính (tính bằng pixel) mà thuật toán sử dụng để xác định một cụm. Chọn 0 để tắt phân cụm, nhưng lưu ý rằng số lượng lớn điểm (>1000) sẽ gây ra độ trễ.',\n VISUALIZE_MAP_BOX_POINTS: 'Điểm',\n VISUALIZE_MAP_BOX_POINTS_RADIUS: 'Bán kính điểm',\n VISUALIZE_MAP_BOX_POINTS_RADIUS_DESC: 'Bán kính của các điểm riêng lẻ (những điểm không nằm trong cụm). Cột số hoặc `Tự động`, chia tỷ lệ điểm dựa trên cụm lớn nhất',\n VISUALIZE_MAP_BOX_POINTS_RADIUS_UNIT: 'Đơn vị bán kính điểm',\n VISUALIZE_MAP_BOX_POINTS_RADIUS_UNIT_DESC: 'Đơn vị đo bán kính điểm đã chỉ định',\n VISUALIZE_MAP_BOX_LABELLING: 'Gắn nhãn',\n VISUALIZE_MAP_BOX_LABEL: 'Nhãn',\n VISUALIZE_MAP_BOX_LABEL_DESC: '`count` là COUNT(*) nếu một nhóm theo được sử dụng. Các cột số sẽ được tổng hợp với bộ tổng hợp. Các cột không phải là số sẽ được sử dụng để đánh dấu điểm. Để trống để nhận số điểm trong mỗi cụm.',\n VISUALIZE_MAP_BOX_CLUSTER_LABEL: 'Trình tổng hợp nhãn cụm',\n VISUALIZE_MAP_BOX_CLUSTER_LABEL_DESC: 'Hàm tổng hợp được áp dụng cho danh sách các điểm trong mỗi cụm để tạo nhãn cụm.',\n VISUALIZE_MAP_BOX_VISUAL_TWEAKS: 'Chỉnh sửa hình ảnh',\n VISUALIZE_MAP_BOX_LIVE_RENDER: 'Kết xuất trực tiếp',\n VISUALIZE_MAP_BOX_LIVE_RENDER_DESC: 'Điểm và cụm sẽ cập nhật khi chế độ xem được thay đổi',\n VISUALIZE_MAP_BOX_STYLE: 'Kiểu bản đồ',\n VISUALIZE_MAP_BOX_STYLE_DESC: 'Kiểu bản đồ lớp cơ sở',\n VISUALIZE_MAP_BOX_OPACITY: 'Độ mờ',\n VISUALIZE_MAP_BOX_OPACITY_DESC: 'Độ mờ của tất cả các cụm, điểm và nhãn. Giữa 0 và 1.',\n VISUALIZE_MAP_BOX_RGB: 'Màu RGB',\n VISUALIZE_MAP_BOX_RGB_DESC: 'Màu của điểm và cụm trong RGB',\n VISUALIZE_MAP_BOX_VIEW_PORT: 'Chế độ xem',\n VISUALIZE_MAP_BOX_DEFAULT_LONGITUDE: 'Kinh độ mặc định',\n VISUALIZE_MAP_BOX_DEFAULT_LONGITUDE_DESC: 'Kinh độ của chế độ xem mặc định',\n VISUALIZE_MAP_BOX_DEFAULT_LATITUDE: 'Vĩ độ mặc định',\n VISUALIZE_MAP_BOX_DEFAULT_LATITUDE_DESC: 'Vĩ độ của chế độ xem mặc định',\n VISUALIZE_MAP_BOX_ZOOM: 'Thu phóng',\n VISUALIZE_MAP_BOX_ZOOM_DESC: 'Mức thu phóng của bản đồ',\n VISUALIZE_MAP_BOX_CONTROL_OVERRIDE_DESC: 'Một hoặc nhiều điều khiển để nhóm theo. Nếu phải có các cột kinh độ và vĩ độ trong nhóm.',\n\n /*---------------Kiểm tra--------------------*/\n VISUALIZE_PAIRED_CONTRIBUTION: 'Đóng góp',\n VISUALIZE_PAIRED_CONTRIBUTION_DESC: 'Tính phần đóng góp vào tổng số',\n VISUALIZE_PAIRED_PARAMETERS: 'Tham số',\n VISUALIZE_PAIRED_SIGNIFICANCE_LEVEL: 'Mức Ý nghĩa',\n VISUALIZE_PAIRED_SIGNIFICANCE_LEVEL_DESC: 'Ngưỡng mức alpha để xác định tầm quan trọng',\n VISUALIZE_PAIRED_P_VALUE_PRECISION: 'độ chính xác của giá trị p',\n VISUALIZE_PAIRED_P_VALUE_PRECISION_DESC: 'Số vị trí thập phân để hiển thị giá trị p',\n VISUALIZE_PAIRED_LIFT_PRECISION: 'Tăng độ chính xác phần trăm',\n VISUALIZE_PAIRED_LIFT_PRECISION_DESC: 'Số vị trí thập phân để hiển thị giá trị mức tăng',\n\n /*---------------song song--------------------*/\n\n VISUALIZE_PARALLEL_OPTIONS: 'Tùy chọn',\n VISUALIZE_PARALLEL_DATA_TABLE: 'Bảng dữ liệu',\n VISUALIZE_PARALLEL_DATA_TABLE_DESC: 'Có hiển thị bảng dữ liệu tương tác hay không',\n VISUALIZE_PARALLEL_INCLUDE_SERIES: 'Bao gồm sê-ri',\n VISUALIZE_PARALLEL_INCLUDE_SERIES_DESC: 'Bao gồm tên sê-ri dưới dạng một trục',\n\n /*---------------vách ngăn--------------------*/\n VISUALIZE_PARTITION_CONTRIBUTION: 'Đóng góp',\n VISUALIZE_PARTITION_CONTRIBUTION_DESC: 'Tính toán phần đóng góp vào tổng số',\n VISUALIZE_PARTITION_TIME_SERIES_OPTION: 'Tùy chọn chuỗi thời gian',\n VISUALIZE_PARTITION_OPTION: 'Tùy chọn',\n VISUALIZE_PARTITION_OPTION_NOT_TIME: 'Không phải chuỗi thời gian',\n VISUALIZE_PARTITION_OPTION_NOT_TIME_DESC: 'Bỏ qua thời gian',\n VISUALIZE_PARTITION_OPTION_TIME: 'Chuỗi thời gian',\n VISUALIZE_PARTITION_OPTION_TIME_DESC: 'Chuỗi thời gian chuẩn',\n VISUALIZE_PARTITION_OPTION_AGGREGATE: 'Trung bình Tổng hợp',\n VISUALIZE_PARTITION_OPTION_AGGREGATE_DESC: 'Giá trị trung bình trong khoảng thời gian được chỉ định',\n VISUALIZE_PARTITION_OPTION_AGGREGATE_SUM: 'Tổng hợp',\n VISUALIZE_PARTITION_OPTION_AGGREGATE_SUM_DESC: 'Tổng giá trị trong khoảng thời gian xác định',\n VISUALIZE_PARTITION_OPTION_DIFFERENCE: 'Sự khác biệt',\n VISUALIZE_PARTITION_OPTION_DIFFERENCE_DESC: 'Thay đổi giá trị của chỉ số từ `kể từ` thành `cho đến`',\n VISUALIZE_PARTITION_OPTION_PERCENT_CHANGE: 'Phần trăm thay đổi',\n VISUALIZE_PARTITION_OPTION_PERCENT_CHANGE_DESC: 'Tỷ lệ phần trăm thay đổi về giá trị của số liệu từ `kể từ` thành `cho đến`',\n VISUALIZE_PARTITION_OPTION_FACTOR: 'Yếu tố',\n VISUALIZE_PARTITION_OPTION_FACTOR_DESC: 'Thay đổi hệ số chỉ số từ `since` thành `until`',\n VISUALIZE_PARTITION_SETTING_TIME_SERIES: 'Cài đặt cho chuỗi thời gian',\n VISUALIZE_PARTITION_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_PARTITION_DATE_TIME_FORMAT: 'Định dạng ngày giờ',\n VISUALIZE_PARTITION_PARTITION_LIMIT: 'Giới hạn phân vùng',\n VISUALIZE_PARTITION_PARTITION_LIMIT_DESC: 'Số lượng tối đa các phân mục của mỗi nhóm; các giá trị thấp hơn được cắt tỉa đầu tiên',\n VISUALIZE_PARTITION_PARTITION_THRESHOLD: 'Ngưỡng phân vùng',\n VISUALIZE_PARTITION_PARTITION_THRESHOLD_DESC: 'Các phân vùng có tỷ lệ chiều cao so với chiều cao gốc thấp hơn giá trị này sẽ bị cắt bớt',\n VISUALIZE_PARTITION_LOG_SCALE: 'Tỷ lệ nhật ký',\n VISUALIZE_PARTITION_LOG_SCALE_DESC: 'Sử dụng thang log',\n VISUALIZE_PARTITION_EQUAL_SIZE: 'Kích cỡ ngày bằng nhau',\n VISUALIZE_PARTITION_EQUAL_SIZE_DESC: 'Kiểm tra để buộc phân vùng ngày có cùng chiều cao',\n\n /*---------------trục--------------------*/\n VISUALIZE_PIVOT_AGGREGATION: 'Hàm tổng hợp',\n VISUALIZE_PIVOT_AGGREGATION_DESC: 'Hàm tổng hợp áp dụng khi xoay vòng và tính toán tổng số hàng và cột',\n VISUALIZE_PIVOT_SHOW_TOTALS: 'Hiển thị tổng số',\n VISUALIZE_PIVOT_SHOW_TOTALS_DESC: 'Hiển thị tổng số hàng/cột',\n VISUALIZE_PIVOT_COMBINE_METRICS: 'Số liệu kết hợp',\n VISUALIZE_PIVOT_COMBINE_METRICS_DESC: 'Hiển thị các chỉ số cạnh nhau trong mỗi cột, thay vì mỗi cột được hiển thị cạnh nhau cho mỗi chỉ số.',\n VISUALIZE_PIVOT_TRANSPOSE: 'Chuyển vị trí Pivot',\n VISUALIZE_PIVOT_TRANSPOSE_DESC: 'Hoán đổi nhóm và cột',\n VISUALIZE_PIVOT_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_PIVOT_DATE_FORMAT: 'Định dạng ngày',\n\n /*---------------hoa hồng--------------------*/\n\n VISUALIZE_ROSE_CONTRIBUTION: 'Đóng góp',\n VISUALIZE_ROSE_CONTRIBUTION_DESC: 'Tính phần đóng góp vào tổng số',\n VISUALIZE_ROSE_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ROSE_DATE_TIME_FORMAT: 'Định dạng Ngày Giờ',\n VISUALIZE_ROSE_AREA_PROPORTIONS: 'Sử dụng tỷ lệ diện tích',\n VISUALIZE_ROSE_AREA_PROPORTIONS_DESC: 'Kiểm tra xem Biểu đồ Hoa hồng có nên sử dụng diện tích phân khúc thay vì bán kính phân khúc để cân đối hay không',\n\n /*------------sankey---------*/\n\n VISUALIZE_SANKEY_GROUP_BY: 'Nguồn / Đích',\n VISUALIZE_SANKEY_GROUP_BY_DESC: 'Chọn nguồn và đích',\n VISUALIZE_SANKEY_ROW_LIMIT_DESC: 'Giới hạn hàng có thể dẫn đến dữ liệu không đầy đủ và biểu đồ gây hiểu lầm. Thay vào đó, hãy xem xét lọc hoặc nhóm tên nguồn/đích.',\n VISUALIZE_SANKEY_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_SANKEY_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n\n /*------------ tia nắng---------*/\n VISUALIZE_SUNBURST_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_SUNBURST_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_SUNBURST_PRIMARY_METRIC: 'Số liệu chính',\n VISUALIZE_SUNBURST_PRIMARY_METRIC_DESC: 'Số liệu chính được sử dụng để xác định kích thước đoạn cung',\n VISUALIZE_SUNBURST_SECONDARY_METRIC: 'Số liệu phụ',\n VISUALIZE_SUNBURST_SECONDARY_METRIC_DESC: '[tùy chọn] chỉ số phụ này được sử dụng để xác định màu dưới dạng tỷ lệ so với chỉ số chính. Khi bị bỏ qua, màu được phân loại và dựa trên nhãn',\n VISUALIZE_SUNBURST_COLOR_SCHEMA_DESC: 'Khi chỉ một số liệu chính được cung cấp, thang màu phân loại được sử dụng.',\n VISUALIZE_SUNBURST_LINEAR_COLOR_SCHEMA_DESC: 'Khi số liệu phụ được cung cấp, thang màu tuyến tính được sử dụng.',\n VISUALIZE_SUNBURST_HIERARCHY: 'Cấp bậc',\n VISUALIZE_SUNBURST_HIERARCHY_DESC: 'Điều này xác định mức độ phân cấp',\n\n /*------------------ Sơ đồ cây---------------------*/\n\n VISUALIZE_TREE_MAP_RATIO: 'Tỷ lệ',\n VISUALIZE_TREE_MAP_RATIO_DESC: 'Tỷ lệ khung hình mục tiêu cho các ô bản đồ cây.',\n VISUALIZE_TREE_MAP_NUMBER_FORMAT: 'Định dạng số',\n\n /*---------------Bản đồ thế giới--------------------*/\n VISUALIZE_WORLD_MAP_COUNTRY_FIELD: 'Loại Trường Quốc gia',\n VISUALIZE_WORLD_MAP_COUNTRY_FIELD_DESC: 'Tiêu chuẩn mã quốc gia mà Superset sẽ tìm thấy trong cột [quốc gia]',\n VISUALIZE_WORLD_MAP_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_WORLD_MAP_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_WORLD_MAP_OPTIONS: 'Tùy chọn',\n VISUALIZE_WORLD_MAP_SHOW_BUBBLES: 'Hiển thị bong bóng',\n VISUALIZE_WORLD_MAP_SHOW_BUBBLES_DESC: 'Có hiển thị bong bóng trên đầu các quốc gia hay không',\n VISUALIZE_WORLD_MAP_MAX_BUBBLE: 'Kích thước bong bóng tối đa',\n VISUALIZE_WORLD_MAP_COLOR_BY: 'Tô màu theo',\n VISUALIZE_WORLD_MAP_COLOR_BY_DESC: 'Chọn một quốc gia sẽ được tô bóng theo số liệu hay chỉ định một màu dựa trên bảng màu phân loại',\n VISUALIZE_WORLD_MAP_COUNTRY: 'Quốc gia',\n VISUALIZE_WORLD_MAP_COUNTRY_COLUMN: 'Cột Quốc gia',\n VISUALIZE_WORLD_MAP_COUNTRY_COLUMN_DESC: 'mã 3 chữ cái của quốc gia',\n VISUALIZE_WORLD_MAP_BUBBLE_SIZE: 'Kích thước bong bóng',\n VISUALIZE_WORLD_MAP_BUBBLE_SIZE_DESC: 'Số liệu xác định kích thước của bong bóng',\n VISUALIZE_WORLD_MAP_BUBBLE_COLOR: 'Màu bong bóng',\n VISUALIZE_WORLD_MAP_COLOR_SCHEME: 'Bảng phối màu quốc gia',\n\n /*----------------SÂN GL---------------------*/\n\n VISUALIZE_DECK_MAP: 'Bản đồ',\n VISUALIZE_DECK_ADVANCED: 'Nâng cao',\n VISUALIZE_DECK_GEOJSON_SETTING: 'Cài đặt GeoJson',\n VISUALIZE_DECK_GEOJSON_POINT: 'Tỷ lệ bán kính điểm',\n VISUALIZE_DECK_ARC_START_SPATIAL: 'Kinh độ & Vĩ độ bắt đầu',\n VISUALIZE_DECK_ARC_START_SPATIAL_DESC: 'Trỏ tới các cột không gian của bạn',\n VISUALIZE_DECK_ARC_END_SPATIAL: 'Kinh độ cuối & Vĩ độ',\n VISUALIZE_DECK_ARC_ARC: 'Cung',\n VISUALIZE_DECK_ARC_TARGET_COLOR: 'Màu mục tiêu',\n VISUALIZE_DECK_ARC_TARGET_COLOR_DESC: 'Màu của vị trí mục tiêu',\n VISUALIZE_DECK_ARC_CATEGORICAL_COLOR: 'Màu phân loại',\n VISUALIZE_DECK_ARC_CATEGORICAL_COLOR_DESC: 'Chọn một thứ nguyên từ đó các màu phân loại được xác định',\n VISUALIZE_DECK_ARC_STROKE_WIDTH: 'Độ rộng nét',\n\n\n VISUALIZE_DECK_GRID_HEIGHT: 'Chiều cao',\n VISUALIZE_DECK_GRID_HEIGHT_DESC: 'Số liệu được sử dụng để kiểm soát chiều cao',\n VISUALIZE_DECK_GRID_SELECT_CONTROL: 'Hàm tổng hợp động',\n VISUALIZE_DECK_GRID_SELECT_CONTROL_DESC: 'Hàm sử dụng khi tổng hợp điểm thành nhóm',\n\n VISUALIZE_DECK_POLYGON_COLUMN: 'Cột đa giác',\n VISUALIZE_DECK_POLYGON_ENCODING: 'Mã hóa đa giác',\n VISUALIZE_DECK_POLYGON_ELEVATION: 'Độ cao',\n VISUALIZE_DECK_POLYGON_SETTING: 'Cài đặt đa giác',\n VISUALIZE_DECK_POLYGON_OPACITY: 'Độ mờ',\n VISUALIZE_DECK_POLYGON_OPACITY_DESC: 'Độ mờ, giá trị dự kiến ​​từ 0 đến 100',\n VISUALIZE_DECK_POLYGON_NUM_BUCKETS: 'Số lượng bộ chứa để nhóm dữ liệu',\n VISUALIZE_DECK_POLYGON_NUM_BUCKETS_DESC: 'Dữ liệu nên được nhóm trong bao nhiêu nhóm.',\n VISUALIZE_DECK_POLYGON_BREAK_POINT: 'Điểm phá vỡ nhóm',\n VISUALIZE_DECK_POLYGON_BREAK_POINT_DESC: 'Danh sách n+1 giá trị cho chỉ số nhóm vào n nhóm.',\n VISUALIZE_DECK_POLYGON_TABLE_FILTER: 'Phát ra sự kiện bộ lọc',\n VISUALIZE_DECK_POLYGON_TABLE_FILTER_DESC: 'Có áp dụng bộ lọc khi các mục được nhấp vào hay không',\n VISUALIZE_DECK_POLYGON_MULTIPLE_FILTER_DESC: 'Cho phép gửi nhiều đa giác dưới dạng sự kiện bộ lọc',\n VISUALIZE_DECK_POLYGON_MULTIPLE_FILTER: 'Nhiều bộ lọc',\n\n\n VISUALIZE_DECK_SCATTER_POINT_SIZE: 'Kích thước điểm',\n VISUALIZE_DECK_SCATTER_POINT_UNIT: 'Đơn vị điểm',\n VISUALIZE_DECK_SCATTER_POINT_UNIT_DESC: 'Đơn vị đo bán kính điểm đã chỉ định',\n VISUALIZE_DECK_SCATTER_MINIMUM_RADIUS: 'Bán kính tối thiểu',\n VISUALIZE_DECK_SCATTER_MINIMUM_RADIUS_DESC: 'Kích thước bán kính tối thiểu của hình tròn, tính bằng pixel. Khi mức thu phóng thay đổi, điều này đảm bảo rằng vòng tròn tuân theo bán kính tối thiểu này.',\n VISUALIZE_DECK_SCATTER_MAXIMUM_RADIUS: 'Bán kính tối đa',\n VISUALIZE_DECK_SCATTER_MAXIMUM_RADIUS_DESC: 'Kích thước bán kính tối đa của hình tròn, tính bằng pixel. Khi mức thu phóng thay đổi, điều này đảm bảo rằng vòng tròn tuân theo bán kính tối đa này.',\n VISUALIZE_DECK_SCATTER_POINT_COLOR: 'Màu điểm',\n VISUALIZE_DECK_MULTI_SLICE: 'biểu đồ boong.gl',\n VISUALIZE_DECK_MULTI_SLICE_DESC: 'Chọn một tập hợp các biểu đồ deck.gl để xếp chồng lên nhau',\n VISUALIZE_DECK_MULTI_SLICE_PLACE: 'Chọn biểu đồ',\n VISUALIZE_DECK_MULTI_SLICE_ERR: 'Lỗi khi tìm nạp biểu đồ',\n\n\n VISUALIZE_DECK_SHARE_INFO: 'Để biết thêm thông tin về các đối tượng nằm trong ngữ cảnh trong phạm vi của chức năng này, hãy tham khảo',\n VISUALIZE_DECK_SHARE_INFO_DESC: \" mã nguồn của trình phân tích cú pháp hộp cát của Superset\",\n VISUALIZE_DECK_SHARE_DISABLED_FUNC: 'Chức năng này bị tắt trong môi trường của bạn vì lý do bảo mật.',\n VISUALIZE_DECK_SHARE_FILTER_NULLS: 'Bỏ qua các vị trí rỗng',\n VISUALIZE_DECK_SHARE_FILTER_NULLS_DESC: 'Có nên bỏ qua các vị trí không',\n VISUALIZE_DECK_SHARE_AUTO_ZOOM: 'Tự động thu phóng',\n VISUALIZE_DECK_SHARE_AUTO_ZOOM_DESC: 'Khi được chọn, bản đồ sẽ phóng to dữ liệu của bạn sau mỗi truy vấn',\n VISUALIZE_DECK_SHARE_DIMENSION: 'Thứ nguyên',\n VISUALIZE_DECK_SHARE_DIMENSION_DESC: 'Chọn thứ nguyên',\n VISUALIZE_DECK_SHARE_JS_COLUMN: 'Dữ liệu bổ sung cho JS',\n VISUALIZE_DECK_SHARE_JS_COLUMN_DESC: 'Danh sách các cột bổ sung có sẵn trong hàm Javascript',\n VISUALIZE_DECK_SHARE_JS_DATA: 'Trình chặn dữ liệu Javascript',\n VISUALIZE_DECK_SHARE_JS_DATA_DESC: 'Xác định hàm javascript nhận mảng dữ liệu được sử dụng trong trực quan hóa và dự kiến ​​sẽ trả về phiên bản đã sửa đổi của mảng đó. Điều này có thể được sử dụng để thay đổi các thuộc tính của dữ liệu, bộ lọc hoặc làm phong phú mảng.',\n VISUALIZE_DECK_SHARE_JS_TOOLTIP: 'Trình tạo chú giải công cụ Javascript',\n VISUALIZE_DECK_SHARE_JS_TOOLTIP_DESC: 'Xác định hàm nhận đầu vào và xuất nội dung cho chú giải công cụ',\n VISUALIZE_DECK_SHARE_JS_ONCLICK: 'Javascript onClick href',\n VISUALIZE_DECK_SHARE_JS_ONCLICK_DESC: 'Xác định hàm trả về một URL để điều hướng đến khi người dùng nhấp chuột',\n VISUALIZE_DECK_SHARE_LEGEND: 'Định dạng chú giải',\n VISUALIZE_DECK_SHARE_LEGEND_DESC: 'Chọn định dạng cho các giá trị chú giải',\n VISUALIZE_DECK_SHARE_LEGEND_POSITION: 'Vị trí huyền thoại',\n VISUALIZE_DECK_SHARE_LEGEND_POSITION_DESC: 'Chọn vị trí của chú giải',\n VISUALIZE_DECK_SHARE_LINE_COLUMN: 'Cột dòng',\n VISUALIZE_DECK_SHARE_LINE_COLUMN_DESC: 'Các cột cơ sở dữ liệu chứa thông tin về dòng',\n VISUALIZE_DECK_SHARE_LINE_WIDTH: 'Độ rộng đường kẻ',\n VISUALIZE_DECK_SHARE_LINE_WIDTH_DESC: 'Chiều rộng của đường kẻ',\n VISUALIZE_DECK_SHARE_FILL_COLOR: 'Tô màu',\n VISUALIZE_DECK_SHARE_FILL_COLOR_DESC: ' Đặt độ mờ thành 0 nếu bạn không muốn ghi đè màu được chỉ định trong GeoJSON',\n VISUALIZE_DECK_SHARE_FILLED: 'Đã điền',\n VISUALIZE_DECK_SHARE_FILLED_DESC: 'Có lấp đầy các đối tượng hay không',\n VISUALIZE_DECK_SHARE_STROKE_COLOR: 'Màu nét',\n VISUALIZE_DECK_SHARE_STROKED: 'Được vuốt',\n VISUALIZE_DECK_SHARE_STROKED_DESC: 'Có hiển thị nét hay không',\n VISUALIZE_DECK_SHARE_EXTRUDED: 'Được ép đùn',\n VISUALIZE_DECK_SHARE_EXTRUDED_DESC: 'Có tạo lưới 3D hay không',\n VISUALIZE_DECK_SHARE_GRID_SIZE: 'Kích thước lưới',\n VISUALIZE_DECK_SHARE_GRID_SIZE_DESC: 'Xác định kích thước lưới tính bằng pixel',\n VISUALIZE_DECK_SHARE_VIEW_PORT: 'Chế độ xem',\n VISUALIZE_DECK_SHARE_VIEW_PORT_DESC: 'Các tham số liên quan đến chế độ xem và phối cảnh trên bản đồ',\n VISUALIZE_DECK_SHARE_LONG_LATITUDE: 'Kinh độ & Vĩ độ',\n VISUALIZE_DECK_SHARE_LONG_LATITUDE_DESC: 'Chỉ vào các cột không gian của bạn',\n VISUALIZE_DECK_SHARE_POINT_SIZE: 'Kích thước điểm',\n VISUALIZE_DECK_SHARE_POINT_SIZE_DESC: 'Bán kính điểm cố định',\n VISUALIZE_DECK_SHARE_MULTIPLIER: 'Hệ số nhân',\n VISUALIZE_DECK_SHARE_MULTIPLIER_DESC: 'Hệ số nhân số liệu với',\n VISUALIZE_DECK_SHARE_LINE_ENCODING: 'Mã hóa dòng',\n VISUALIZE_DECK_SHARE_LINE_ENCODING_DESC: 'Định dạng mã hóa của các dòng',\n VISUALIZE_DECK_SHARE_REVERSE: 'Vĩ độ & Dài đảo ngược',\n VISUALIZE_DECK_SHARE_MAP_STYLE: 'Kiểu bản đồ',\n VISUALIZE_DECK_SHARE_MAP_STYLE_DESC: 'Kiểu bản đồ lớp cơ sở',\n VISUALIZE_DECK_SHARE_GEOJSON: 'Cột GeoJson',\n VISUALIZE_DECK_SHARE_GEOJSON_DESC: 'Chọn cột Geojson',\n /*---------------------NVD 3---------*/\n\n VISUALIZE_NVD_AREA_STACKED: 'Kiểu xếp chồng',\n\n VISUALIZE_NVD_BAR_SERIES_SORT_BY: 'Sắp xếp giới hạn sê-ri theo',\n VISUALIZE_NVD_BAR_SERIES_SORT_BY_DESC: 'Số liệu được sử dụng để sắp xếp giới hạn nếu có giới hạn chuỗi. Nếu không xác định hoàn nguyên về số liệu đầu tiên (nếu thích hợp).',\n VISUALIZE_NVD_BAR_SERIES_SORT_DESCENDING: 'Sắp xếp giới hạn sê-ri giảm dần',\n VISUALIZE_NVD_BAR_SERIES_SORT_DESCENDING_DESC: 'Sắp xếp tăng dần hay giảm dần nếu có giới hạn chuỗi',\n\n VISUALIZE_NVD_BUBBLE_MAX_SIZE: 'Kích thước bong bóng tối đa',\n VISUALIZE_NVD_BUBBLE_X_LOG_SCALE: 'Tỷ lệ Nhật ký X',\n VISUALIZE_NVD_BUBBLE_X_LOG_SCALE_DESC: 'Sử dụng thang log cho trục X',\n\n VISUALIZE_NVD_BULLET_RANGES: 'Phạm vi',\n VISUALIZE_NVD_BULLET_RANGES_DESC: 'Phạm vi cần tô sáng bằng bóng',\n VISUALIZE_NVD_BULLET_RANGES_LABEL: 'Nhãn phạm vi',\n VISUALIZE_NVD_BULLET_RANGES_LABEL_DESC: 'Nhãn cho phạm vi',\n VISUALIZE_NVD_BULLET_MARKERS: 'Điểm đánh dấu',\n VISUALIZE_NVD_BULLET_MARKERS_DESC: 'Danh sách các giá trị cần đánh dấu bằng hình tam giác',\n VISUALIZE_NVD_BULLET_MARKER_LABEL: 'Nhãn đánh dấu',\n VISUALIZE_NVD_BULLET_MARKER_LABEL_DESC: 'Nhãn cho điểm đánh dấu',\n VISUALIZE_NVD_BULLET_MARKER_LINE: 'Dòng đánh dấu',\n VISUALIZE_NVD_BULLET_MARKER_LINE_DESC: 'Danh sách các giá trị cần đánh dấu bằng dòng',\n VISUALIZE_NVD_BULLET_MARKER_LINE_LABEL: 'Nhãn đường đánh dấu',\n VISUALIZE_NVD_BULLET_MARKER_LINE_LABEL_DESC: 'Nhãn cho các đường đánh dấu',\n VISUALIZE_NVD_DISTBAR_CONTRIBUTION: 'Đóng góp',\n VISUALIZE_NVD_DISTBAR_CONTRIBUTION_DESC: 'Tính phần đóng góp vào tổng số',\n VISUALIZE_NVD_DISTBAR_SORT_BARS: 'Sắp xếp Thanh',\n VISUALIZE_NVD_DISTBAR_SORT_BARS_DESC: 'Tính phần đóng góp vào tổng số',\n VISUALIZE_NVD_DISTBAR_BREAKXUỐNG: 'Sự cố',\n VISUALIZE_NVD_DISTBAR_BREAKDOWNS_DESC: 'Xác định cách mỗi chuỗi được chia nhỏ',\n\n VISUALIZE_NVD_DUAL_LINE_Y_AXIS_ONE: 'Trục Y 1',\n VISUALIZE_NVD_DUAL_LINE_Y_AXIS_TWO: 'Trục Y 2',\n VISUALIZE_NVD_DUAL_LINE_LEFT_AXIS_METRIC: 'Số liệu trục trái',\n VISUALIZE_NVD_DUAL_LINE_LEFT_AXIS_METRIC_DESC: 'Chọn một số liệu cho trục bên trái',\n VISUALIZE_NVD_DUAL_LINE_LEFT_AXIS_FORMAT: 'Định dạng trục trái',\n\n VISUALIZE_NVD_LINE_PROPAGATE: 'Tuyên truyền',\n VISUALIZE_NVD_LINE_PROPAGATE_DESC: 'Gửi sự kiện bộ lọc phạm vi tới các biểu đồ khác',\n\n\n VISUALIZE_NVD_LINE_MULTI_PREFIX: 'Tiền tố tên chỉ số với tên lát cắt',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_DESC: 'Chọn một hoặc nhiều biểu đồ cho trục bên trái',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS: '(Các) biểu đồ Trục trái',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_FORMAT: 'Định dạng trục trái',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_PLACE: 'Chọn biểu đồ',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_ERR: 'Lỗi khi tìm nạp biểu đồ',\n VISUALIZE_NVD_LINE_MULTI_Y_AXIS_RIGHT: 'Trục Y bên phải',\n VISUALIZE_NVD_LINE_MULTI_RIGHT_AXIS: '(Các) biểu đồ Trục phải',\n VISUALIZE_NVD_LINE_MULTI_RIGHT_AXIS_DESC: 'Chọn một hoặc nhiều biểu đồ cho trục bên phải',\n\n\n VISUALIZE_NVD_PIE_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_NVD_PIE_NUMBER_FORMAT_DESC_ONE: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_NVD_PIE_NUMBER_FORMAT_DESC_TWO: 'Chỉ áp dụng khi \"Loại nhãn\" không được đặt thành phần trăm.',\n VISUALIZE_NVD_PIE_DONUT: 'Bánh rán',\n VISUALIZE_NVD_PIE_DONUT_DESC: 'Bạn muốn bánh rán hay bánh ngọt?',\n VISUALIZE_NVD_PIE_SHOW_LABELS: 'Hiển thị Nhãn',\n VISUALIZE_NVD_PIE_SHOW_LABELS_DESC: 'Có hiển thị nhãn hay không. Lưu ý rằng nhãn chỉ hiển thị khi đạt ngưỡng 5%.',\n VISUALIZE_NVD_PIE_LABELS_OUTSIDE: 'Đặt nhãn bên ngoài',\n VISUALIZE_NVD_PIE_LABELS_OUTSIDE_DESC: 'Đặt nhãn bên ngoài chiếc bánh?',\n VISUALIZE_NVD_TIME_PIVOT_FREQUENCY: 'Tần suất',\n VISUALIZE_NVD_TIME_PIVOT_FREQUENCY_DESC: `Chu kỳ xoay vòng thời gian. Người dùng có thể cung cấp bí danh offset của Pandas. Nhấp vào bong bóng thông tin để biết thêm chi tiết về các biểu thức \"tần số\" được chấp nhận.`,\n\n VISUALIZE_NVD_CONTROLS_RIGHT_AXIS_FORMAT: 'Định dạng trục phải',\n VISUALIZE_NVD_CONTROLS_SHOW_MARKERS: 'Hiển thị điểm đánh dấu',\n VISUALIZE_NVD_CONTROLS_SHOW_MARKERS_DESC: 'Hiển thị các điểm dữ liệu dưới dạng các điểm đánh dấu vòng tròn trên các đường',\n VISUALIZE_NVD_CONTROLS_LEFT_MARGIN: 'Lề trái',\n VISUALIZE_NVD_CONTROLS_LEFT_MARGIN_DESC: 'Lề trái, tính bằng pixel, cho phép có nhiều chỗ hơn cho các nhãn trục',\n VISUALIZE_NVD_CONTROLS_Y_BOUNDS: 'Giới hạn Y',\n VISUALIZE_NVD_CONTROLS_Y_TWO_BOUNDS: 'Y 2 giới hạn',\n VISUALIZE_NVD_CONTROLS_Y_BOUNDS_DESC: 'Có hiển thị giá trị tối thiểu và tối đa của trục Y hay không',\n VISUALIZE_NVD_CONTROLS_LINE_STYLE: 'Kiểu đường kẻ',\n VISUALIZE_NVD_CONTROLS_LINE_STYLE_DESC: 'Nội suy đường được xác định bởi d3.js',\n VISUALIZE_NVD_CONTROLS_SHOW_RANGE: 'Hiển thị bộ lọc phạm vi',\n VISUALIZE_NVD_CONTROLS_SHOW_RANGE_DESC: 'Có hiển thị bộ chọn tương tác phạm vi thời gian hay không',\n VISUALIZE_NVD_CONTROLS_LEGEND: 'Huyền thoại',\n VISUALIZE_NVD_CONTROLS_LEGEND_DESC: 'Có hiển thị chú giải (bật/tắt)',\n VISUALIZE_NVD_CONTROLS_EXTRA: 'Điều khiển bổ sung',\n VISUALIZE_NVD_CONTROLS_EXTRA_DESC: 'Có hiển thị các điều khiển bổ sung hay không. Các điều khiển bổ sung bao gồm những thứ như tạo các biểu đồ mulitBar xếp chồng lên nhau hoặc cạnh nhau.',\n VISUALIZE_NVD_CONTROLS_X_AXIS_LABELS: 'Nhãn trục X',\n VISUALIZE_NVD_CONTROLS_BOTTOM_MARGIN: 'Lề dưới',\n VISUALIZE_NVD_CONTROLS_BOTTOM_MARGIN_DESC: 'Lề dưới, tính bằng pixel, cho phép có nhiều chỗ hơn cho các nhãn trục',\n VISUALIZE_NVD_CONTROLS_X_TICK_LAYOUT: 'Bố cục đánh dấu X',\n VISUALIZE_NVD_CONTROLS_X_TICK_LAYOUT_DESC: 'Cách sắp xếp các dấu tick trên trục X',\n VISUALIZE_NVD_CONTROLS_Y_LOG_SCALE: 'Tỷ lệ nhật ký Y',\n VISUALIZE_NVD_CONTROLS_Y_LOG_SCALE_DESC: 'Sử dụng thang log cho trục Y',\n VISUALIZE_NVD_CONTROLS_X_AXIS_FORMAT: 'Định dạng trục X',\n VISUALIZE_NVD_CONTROLS_Y_AXIS_BOUNDS: 'Giới hạn trục Y',\n VISUALIZE_NVD_CONTROLS_Y_AXIS_BOUNDS_DESC: \"Các giới hạn cho trục Y. Khi để trống, các giới hạn được xác định động dựa trên mức tối thiểu/tối đa của dữ liệu. Lưu ý rằng tính năng này sẽ chỉ mở rộng phạm vi trục. Nó sẽ không thu hẹp phạm vi của dữ liệu.\" ,\n VISUALIZE_NVD_CONTROLS_Y_AXIS_TWO_BOUNDS: 'Giới hạn 2 trục Y',\n VISUALIZE_NVD_CONTROLS_X_BOUNDS: 'giới hạn X',\n VISUALIZE_NVD_CONTROLS_X_BOUNDS_DESC: 'Có hiển thị giá trị tối thiểu và tối đa của trục X hay không',\n VISUALIZE_NVD_CONTROLS_BAR_VALUES: 'Giá trị thanh',\n VISUALIZE_NVD_CONTROLS_BAR_VALUES_DESC: 'Hiển thị giá trị trên đầu thanh',\n VISUALIZE_NVD_CONTROLS_STACKED_BARS: 'Thanh xếp chồng lên nhau',\n VISUALIZE_NVD_CONTROLS_REDUCE_X_TICKS: 'Giảm dấu X',\n VISUALIZE_NVD_CONTROLS_REDUCE_X_TICKS_DESC: 'Giảm số dấu kiểm trục X được hiển thị. Nếu đúng, trục x sẽ không bị tràn và nhãn có thể bị thiếu. Nếu sai, chiều rộng tối thiểu sẽ được áp dụng cho các cột và chiều rộng có thể tràn vào cuộn ngang.',\n VISUALIZE_NVD_CONTROLS_Y_AXIS_LABEL: 'Nhãn trục Y',\n VISUALIZE_NVD_CONTROLS_CONTRIBUTION: 'Đóng góp',\n VISUALIZE_NVD_CONTROLS_CONTRIBUTION_DESC: 'Tính phần đóng góp vào tổng số',\n /*---------------- BIỂU ĐỒ E---------------------*/\n\n\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_DISPLAY_SETTING: 'Cài đặt hiển thị',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_SUBHEADER: 'Tiêu đề phụ',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_SUBHEADER_DESC: 'Văn bản mô tả hiển thị bên dưới Số lớn của bạn',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_FORCE_DATE: 'Định dạng ngày bắt buộc',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_FORCE_DATE_DESC: 'Sử dụng định dạng ngày ngay cả khi giá trị số liệu không phải là dấu thời gian',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_NUMBER_FORMAT: 'Định dạng số',\n\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_OPTIONS: 'Tùy chọn',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_LAG: 'Độ trễ của Khoảng thời gian So sánh',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_LAG_DESC: 'Dựa trên mức độ chi tiết, số khoảng thời gian để so sánh',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_SUFFIX: 'Hậu tố so sánh',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_SUFFIX_DESC: 'Hậu tố áp dụng sau phần hiển thị phần trăm',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TIMESTAMP: 'Hiển thị Dấu thời gian',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TIMESTAMP_DESC: 'Có hiển thị dấu thời gian hay không',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TREND_LINE: 'Hiển thị Đường xu hướng',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TREND_LINE_DESC: 'Có hiển thị đường xu hướng hay không',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_START_Y_AXIS: 'Bắt ​​đầu trục y tại 0',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_START_Y_AXIS_DESC: 'Bắt ​​đầu trục y tại số không. Bỏ chọn để bắt đầu trục y ở giá trị nhỏ nhất trong dữ liệu.',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FIX_SELECT_TIME: 'Sửa phạm vi thời gian đã chọn',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FIX_SELECT_TIME_DESC: 'Sửa đường xu hướng thành phạm vi thời gian đầy đủ được chỉ định trong trường hợp kết quả được lọc không bao gồm ngày bắt đầu hoặc ngày kết thúc',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_DATE_FORMAT: 'Định dạng ngày',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_TEMPORAL: 'TRỤC X TẠM THỜI',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FORCE_DATE_FORMAT: 'Định dạng ngày bắt buộc',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FORCE_DATE_FORMAT_DESC: 'Sử dụng định dạng ngày ngay cả khi giá trị chỉ số không phải là dấu thời gian',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_FONT_SIZE: 'Cỡ chữ số lớn',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_SUBHEADER_FONT_SIZE: 'Cỡ chữ của tiêu đề phụ',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_TINY: 'Nhỏ',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_SMALL: 'Nhỏ',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_NORMAL: 'Bình thường',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_LARGE: 'Lớn',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_HUGE: 'Lớn',\n\n VISUALIZE_ECHARTS_BOXPLOT_WHISKER_OPTIONS: 'Tùy chọn râu ria/ngoại lệ',\n VISUALIZE_ECHARTS_BOXPLOT_WHISKER_OPTIONS_DESC: 'Xác định cách tính toán các râu ria và giá trị ngoại lệ.',\n VISUALIZE_ECHARTS_BOXPLOT_X_TICKS: 'Bố cục dấu X',\n VISUALIZE_ECHARTS_BOXPLOT_X_TICKS_DESC: 'Cách sắp xếp các dấu tick trên trục X',\n VISUALIZE_ECHARTS_BOXPLOT_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ECHARTS_BOXPLOT_NUMBER_FORMAT_DESC_ONE: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_BOXPLOT_NUMBER_FORMAT_DESC_TWO: 'Chỉ áp dụng khi \"Loại nhãn\" được đặt để hiển thị giá trị.',\n VISUALIZE_ECHARTS_BOXPLOT_DATE_FORMAT: 'Định dạng ngày',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS: 'Kích thước',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS_DESC: 'Các danh mục được nhóm theo trục x.',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS_ACROSS: 'Phân phối trên',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS_ACROSS_DESC: 'Các cột để tính toán phân phối trên toàn bộ.',\n VISUALIZE_ECHARTS_FUNNEL_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_ECHARTS_FUNNEL_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_ECHARTS_FUNNEL_LABELS: 'Nhãn',\n VISUALIZE_ECHARTS_FUNNEL_LABELS_TYPE: 'Loại nhãn',\n VISUALIZE_ECHARTS_FUNNEL_LABELS_TYPE_DESC: 'Cái gì nên được hiển thị trên nhãn?',\n VISUALIZE_ECHARTS_FUNNEL_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ECHARTS_FUNNEL_NUMBER_FORMAT_DESC_ONE: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_FUNNEL_NUMBER_FORMAT_DESC_TWO: 'Chỉ áp dụng khi \"Loại nhãn\" được đặt để hiển thị giá trị.',\n VISUALIZE_ECHARTS_FUNNEL_SHOW_LABELS: 'Hiển thị Nhãn',\n VISUALIZE_ECHARTS_FUNNEL_SHOW_LABELS_DESC: 'Có hiển thị nhãn hay không.',\n VISUALIZE_ECHARTS_GAUGE_GROUP_BY_DESC: 'Các cột để nhóm theo',\n VISUALIZE_ECHARTS_GAUGE_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_ECHARTS_GAUGE_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_ECHARTS_GAUGE_GENERAL: 'Chung',\n VISUALIZE_ECHARTS_GAUGE_MIN_DESC: 'Giá trị tối thiểu trên trục đo',\n VISUALIZE_ECHARTS_GAUGE_MAX_DESC: 'Giá trị tối đa trên trục đo',\n VISUALIZE_ECHARTS_GAUGE_STAT_ANGLE: 'Góc bắt đầu',\n VISUALIZE_ECHARTS_GAUGE_STAT_ANGLE_DESC: 'Góc bắt đầu trục tiến trình',\n VISUALIZE_ECHARTS_GAUGE_END_ANGLE: 'Góc cuối',\n VISUALIZE_ECHARTS_GAUGE_END_ANGLE_DESC: 'Góc để kết thúc trục tiến trình',\n VISUALIZE_ECHARTS_GAUGE_FONT_SIZE: 'Cỡ chữ',\n VISUALIZE_ECHARTS_GAUGE_FONT_SIZE_DESC: 'Cỡ chữ cho nhãn trục, giá trị chi tiết và các thành phần văn bản khác',\n VISUALIZE_ECHARTS_GAUGE_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ECHARTS_GAUGE_NUMBER_FORMAT_DESC: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_GAUGE_VALUE_FORMAT: 'Định dạng giá trị',\n VISUALIZE_ECHARTS_GAUGE_VALUE_FORMAT_DESC: 'Văn bản bổ sung cần thêm trước hoặc sau giá trị, ví dụ: đơn vị',\n VISUALIZE_ECHARTS_GAUGE_SHOW_POINTER: 'Hiển thị con trỏ',\n VISUALIZE_ECHARTS_GAUGE_SHOW_POINTER_DESC: 'Có hiển thị con trỏ hay không',\n VISUALIZE_ECHARTS_GAUGE_ANIMATION: 'Hoạt hình',\n VISUALIZE_ECHARTS_GAUGE_ANIMATION_DESC: 'Có tạo hoạt ảnh cho tiến trình và giá trị hay chỉ hiển thị chúng',\n VISUALIZE_ECHARTS_GAUGE_AXIS: 'Trục',\n VISUALIZE_ECHARTS_GAUGE_SHOW_AXIS: 'Hiển thị các dấu tích đường trục',\n VISUALIZE_ECHARTS_GAUGE_SHOW_AXIS_DESC: 'Có hiển thị dấu tích nhỏ trên trục hay không',\n VISUALIZE_ECHARTS_GAUGE_SHOW_SPLIT: 'Hiển thị các đường phân chia',\n VISUALIZE_ECHARTS_GAUGE_SHOW_SPLIT_DESC: 'Có hiển thị các đường phân chia trên trục hay không',\n VISUALIZE_ECHARTS_GAUGE_SHOW_PROGRESS: 'Hiển thị tiến độ',\n VISUALIZE_ECHARTS_GAUGE_SHOW__PROGRESS_DESC: 'Có hiển thị tiến trình của biểu đồ đo hay không',\n VISUALIZE_ECHARTS_GAUGE_SPLIT_NUMBER: 'Số bị chia',\n VISUALIZE_ECHARTS_GAUGE_SPLIT_NUMBER_DESC: 'Số đoạn được chia trên trục',\n VISUALIZE_ECHARTS_GAUGE_OVERLAP: 'Chồng chéo',\n VISUALIZE_ECHARTS_GAUGE_OVERLAP_DESC: 'Thanh tiến trình có trùng lặp khi có nhiều nhóm dữ liệu hay không',\n VISUALIZE_ECHARTS_GAUGE_ROUND_CAP: 'Nắp tròn',\n VISUALIZE_ECHARTS_GAUGE_ROUND_CAP_DESC: 'Tạo kiểu cho phần cuối của thanh tiến trình bằng một đầu tròn',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS: 'Tạo kiểu cho phần cuối của thanh tiến trình bằng một đầu tròn',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_BOUNDS: 'Giới hạn khoảng cách',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_BOUNDS_DESC: 'Giới hạn khoảng cách được phân tách bằng dấu phẩy, ví dụ: 2,4,5 cho các quãng 0-2, 2-4 và 4-5. Số cuối cùng phải khớp với giá trị được cung cấp cho MAX.',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_COLOR: 'Màu cách quãng',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_COLOR_DESC: 'Màu sắc được phân tách bằng dấu phẩy cho các khoảng thời gian, ví dụ: 1,2,4. Số nguyên biểu thị các màu từ bảng màu đã chọn và được lập chỉ mục 1. Độ dài phải khớp với độ dài của giới hạn khoảng.',\n VISUALIZE_ECHARTS_GRAPH_SOURCE: 'Nguồn',\n VISUALIZE_ECHARTS_GRAPH_SOURCE_DESC: 'Tên của các nút nguồn',\n VISUALIZE_ECHARTS_GRAPH_SOURCE_CATE: 'Danh mục nguồn',\n VISUALIZE_ECHARTS_GRAPH_SOURCE_CATE_DESC: 'Loại nút nguồn được sử dụng để gán màu. Nếu một nút được liên kết với nhiều danh mục, thì chỉ danh mục đầu tiên sẽ được sử dụng.',\n VISUALIZE_ECHARTS_GRAPH_TARGET: 'Mục tiêu',\n VISUALIZE_ECHARTS_GRAPH_TARGET_DESC: 'Tên của các nút mục tiêu',\n VISUALIZE_ECHARTS_GRAPH_TARGET_CATE: 'Danh mục mục tiêu',\n VISUALIZE_ECHARTS_GRAPH_TARGET_CATE_DESC: 'Danh mục nút đích',\n VISUALIZE_ECHARTS_GRAPH_LAYOUT: 'Bố cục',\n VISUALIZE_ECHARTS_GRAPH_GRAPH_LAYOUT: 'Bố cục biểu đồ',\n VISUALIZE_ECHARTS_GRAPH_FORCE: 'Bắt ​​buộc',\n VISUALIZE_ECHARTS_GRAPH_CIRCULAR: 'Thông tư',\n VISUALIZE_ECHARTS_GRAPH_LAYOUT_TYPE: 'Kiểu bố cục của biểu đồ',\n VISUALIZE_ECHARTS_GRAPH_EDGE_SYMBOLS: 'Biểu tượng cạnh',\n VISUALIZE_ECHARTS_GRAPH_EDGE_SYMBOLS_DESC: 'Ký hiệu hai đầu của đường biên',\n VISUALIZE_ECHARTS_GRAPH_NONE_TO_NONE: 'Không -> Không',\n VISUALIZE_ECHARTS_GRAPH_NONE_TO_ARROW: 'Không có -> Mũi tên',\n VISUALIZE_ECHARTS_GRAPH_CIRCLE_TO_ARROW: 'Vòng tròn -> Mũi tên',\n VISUALIZE_ECHARTS_GRAPH_CIRCLE_TO_CIRCLE: 'Vòng tròn -> Vòng tròn',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_NODE: 'Cho phép kéo nút',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_NODE_DESC: 'Có bật tính năng kéo nút trong chế độ bố cục cưỡng bức hay không.',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_GRAPH: 'Bật chuyển vùng biểu đồ',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_GRAPH_DESC: 'Có bật thay đổi vị trí và tỷ lệ biểu đồ hay không.',\n VISUALIZE_ECHARTS_GRAPH_DISABLED: 'Đã tắt',\n VISUALIZE_ECHARTS_GRAPH_SINGLE: 'Đơn',\n VISUALIZE_ECHARTS_GRAPH_MULTIPLE: 'Nhiều',\n VISUALIZE_ECHARTS_GRAPH_SCALE_ONLY: 'Chỉ theo tỷ lệ',\n VISUALIZE_ECHARTS_GRAPH_MOVE_ONLY: 'Chỉ di chuyển',\n VISUALIZE_ECHARTS_GRAPH_SCALE_AND_MOVE: 'Chia tỷ lệ và Di chuyển',\n VISUALIZE_ECHARTS_GRAPH_NODE_SELECT: 'Chế độ chọn nút',\n VISUALIZE_ECHARTS_GRAPH_NODE_SELECT_DESC: 'Cho phép lựa chọn nút',\n VISUALIZE_ECHARTS_GRAPH_LABEL_THRESHOLD: 'Ngưỡng nhãn',\n VISUALIZE_ECHARTS_GRAPH_LABEL_THRESHOLD_DESC: 'Giá trị tối thiểu cho nhãn được hiển thị trên biểu đồ.',\n VISUALIZE_ECHARTS_GRAPH_NODE_SIZE: 'Kích thước nút',\n VISUALIZE_ECHARTS_GRAPH_NODE_SIZE_DESC: 'Kích thước nút trung bình, nút lớn nhất sẽ lớn gấp 4 lần nút nhỏ nhất',\n VISUALIZE_ECHARTS_GRAPH_EDGE_WIDTH: 'Độ rộng cạnh',\n VISUALIZE_ECHARTS_GRAPH_EDGE_WIDTH_DESC: 'Chiều rộng cạnh trung bình, cạnh dày nhất sẽ dày gấp 4 lần cạnh mỏng nhất.',\n VISUALIZE_ECHARTS_GRAPH_EDGE_LENGTH: 'Độ dài cạnh',\n VISUALIZE_ECHARTS_GRAPH_EDGE_LENGTH_DESC: 'Độ dài cạnh giữa các nút',\n VISUALIZE_ECHARTS_GRAPH_GRAVITY: 'Trọng lực',\n VISUALIZE_ECHARTS_GRAPH_GRAVITY_DESC: 'Độ mạnh để kéo biểu đồ về phía tâm',\n VISUALIZE_ECHARTS_GRAPH_REPULSION: 'Lực đẩy',\n VISUALIZE_ECHARTS_GRAPH_REPULSION_DESC: 'Cường độ lực đẩy giữa các nút',\n VISUALIZE_ECHARTS_GRAPH_FRICTION: 'Ma sát',\n VISUALIZE_ECHARTS_GRAPH_FRICTION_DESC: 'Ma sát giữa các nút',\n VISUALIZE_ECHARTS_MIXED_SORT_DESCENDING: 'Sắp xếp Giảm dần',\n VISUALIZE_ECHARTS_MIXED_SORT_DESCENDING_DESC: 'Sắp xếp tăng dần hay giảm dần',\n VISUALIZE_ECHARTS_MIXED_SERIES_TYPE: 'Loại sê-ri',\n VISUALIZE_ECHARTS_MIXED_SERIES_TYPE_DESC: 'Loại biểu đồ chuỗi (đường, thanh, v.v.)',\n VISUALIZE_ECHARTS_MIXED_AREA_CHART: 'Biểu đồ vùng',\n VISUALIZE_ECHARTS_MIXED_AREA_CHART_DESC: 'Vẽ vùng dưới các đường cong. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_MIXED_SHOW_VALUES: 'Hiển thị giá trị',\n VISUALIZE_ECHARTS_MIXED_SHOW_VALUES_DESC: 'Có hiển thị các giá trị số trong các ô hay không',\n VISUALIZE_ECHARTS_MIXED_OPACITY: 'Độ mờ',\n VISUALIZE_ECHARTS_MIXED_OPACITY_DESC: 'Độ mờ của biểu đồ vùng.',\n VISUALIZE_ECHARTS_MIXED_MARKER: 'Điểm đánh dấu',\n VISUALIZE_ECHARTS_MIXED_MARKER_DESC: 'Vẽ một điểm đánh dấu trên các điểm dữ liệu. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_MIXED_MARKER_SIZE: 'Kích thước điểm đánh dấu',\n VISUALIZE_ECHARTS_MIXED_MARKER_SIZE_DESC: 'Kích thước của điểm đánh dấu. Cũng áp dụng cho các quan sát dự báo.',\n VISUALIZE_ECHARTS_MIXED_PRIMARY: 'Chính',\n VISUALIZE_ECHARTS_MIXED_SECONDARY: 'Phụ',\n VISUALIZE_ECHARTS_MIXED_SECONDARY_DESC: 'Trục y chính hoặc phụ',\n VISUALIZE_ECHARTS_MIXED_SHARE_FIELDS: 'Trường truy vấn được chia sẻ',\n VISUALIZE_ECHARTS_MIXED_QUERY_A: 'Truy vấn A',\n VISUALIZE_ECHARTS_MIXED_QUERY_B: 'Truy vấn B',\n VISUALIZE_ECHARTS_MIXED_ROTATE_AXIS: 'Xoay nhãn trục x',\n VISUALIZE_ECHARTS_MIXED_MINOR_SPLIT_DESC: 'Vẽ các đường phân chia cho các dấu tick nhỏ trên trục y',\n VISUALIZE_ECHARTS_MIXED_TRUNCATE_Y_AXIS: 'Cắt bớt Trục Y',\n VISUALIZE_ECHARTS_MIXED_TRUNCATE_Y_AXIS_DESC: 'Cắt bớt Trục Y. Có thể bị ghi đè bằng cách chỉ định giới hạn tối thiểu hoặc tối đa.',\n VISUALIZE_ECHARTS_MIXED_Y_AXIS_BOUND: 'Giới hạn trục Y',\n VISUALIZE_ECHARTS_MIXED_Y_AXIS_BOUND_DESC: \"Các giới hạn cho trục Y. Khi để trống, các giới hạn được xác định động dựa trên mức tối thiểu/tối đa của dữ liệu. Lưu ý rằng tính năng này sẽ chỉ mở rộng phạm vi trục. Nó sẽ không thu hẹp phạm vi của dữ liệu.\" ,\n VISUALIZE_ECHARTS_MIXED_PRIMARY_Y_AXIS: 'Định dạng trục y chính',\n VISUALIZE_ECHARTS_MIXED_LOGARITHMIC: 'Trục logarit y',\n VISUALIZE_ECHARTS_MIXED_LOGARITHMIC_DESC: 'Tỷ lệ logarit trên trục y chính',\n VISUALIZE_ECHARTS_MIXED_LOGARITHMIC_SECONDARY_DESC: 'Tỷ lệ logarit trên trục y phụ',\n VISUALIZE_ECHARTS_MIXED_SECONDARY_Y_AXIS: 'Định dạng trục y phụ',\n VISUALIZE_ECHARTS_MIXED_SECONDARY_Y_AXIS_TITLE: 'Tiêu đề trục y phụ',\n VISUALIZE_ECHARTS_PIE_SORT_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_ECHARTS_PIE_SORT_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_ECHARTS_PIE_PERCENTAGE_THRESHOLD: 'Ngưỡng phần trăm',\n VISUALIZE_ECHARTS_PIE_PERCENTAGE_THRESHOLD_DESC: 'Ngưỡng tối thiểu tính theo điểm phần trăm để hiển thị nhãn.',\n VISUALIZE_ECHARTS_PIE_LABELS: 'Nhãn',\n VISUALIZE_ECHARTS_PIE_LABELS_TYPE: 'Loại Nhãn',\n VISUALIZE_ECHARTS_PIE_LABELS_TYPE_DESC: 'Cái gì nên được hiển thị trên nhãn?',\n VISUALIZE_ECHARTS_PIE_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ECHARTS_PIE_NUMBER_FORMAT_DESC_ONE: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_PIE_NUMBER_FORMAT_DESC_TWO: 'Chỉ áp dụng khi \"Loại nhãn\" được đặt để hiển thị giá trị.',\n VISUALIZE_ECHARTS_PIE_DATE_FORMAT: 'Định dạng ngày',\n VISUALIZE_ECHARTS_PIE_SHOW_LABELS: 'Hiển thị Nhãn',\n VISUALIZE_ECHARTS_PIE_SHOW_LABELS_DESC: 'Có hiển thị nhãn hay không.',\n VISUALIZE_ECHARTS_PIE_SHOW_TOTAL: 'Hiển thị Tổng số',\n VISUALIZE_ECHARTS_PIE_SHOW_TOTAL_DESC: 'Có hiển thị tổng số hay không',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_OUTSIDE: 'Đặt nhãn bên ngoài',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_OUTSIDE_DESC: 'Đặt nhãn bên ngoài chiếc bánh?',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_LINE: 'Dòng Nhãn',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_LINE_DESC: 'Vẽ đường từ Hình tròn đến nhãn khi nhãn bên ngoài?',\n VISUALIZE_ECHARTS_PIE_SHAPE: 'Hình bánh',\n VISUALIZE_ECHARTS_PIE_OUTER_RADIUS: 'Bán kính ngoài',\n VISUALIZE_ECHARTS_PIE_OUTER_RADIUS_DESC: 'Cạnh ngoài của Biểu đồ hình tròn',\n VISUALIZE_ECHARTS_PIE_INNER_RADIUS: 'Bán kính trong của lỗ bánh rán',\n VISUALIZE_ECHARTS_PIE_INNER_RADIUS_DESC: 'Cạnh ngoài của Biểu đồ hình tròn',\n VISUALIZE_ECHARTS_PIE_DONUT: 'Bánh rán',\n VISUALIZE_ECHARTS_PIE_DONUT_DESC: 'Bạn muốn bánh rán hay bánh ngọt?',\n\n\n VISUALIZE_ECHARTS_RADAR_MAX_DESC: 'Giá trị tối đa của số liệu. Nó là một cấu hình tùy chọn',\n VISUALIZE_ECHARTS_RADAR_LABELS: 'Nhãn',\n VISUALIZE_ECHARTS_RADAR_LABEL_POSITION: 'Vị trí nhãn',\n VISUALIZE_ECHARTS_RADAR_SHOW_LABELS: 'Hiển thị nhãn',\n VISUALIZE_ECHARTS_RADAR_SHOW_LABELS_DESC: 'Có hiển thị nhãn hay không.',\n VISUALIZE_ECHARTS_RADAR_LABELS_TYPE: 'Loại nhãn',\n VISUALIZE_ECHARTS_RADAR_LABELS_TYPE_DESC: 'Những gì nên được hiển thị trên nhãn?',\n VISUALIZE_ECHARTS_RADAR_RADAR: 'Radar',\n VISUALIZE_ECHARTS_RADAR_COLUMN_CONFIG: 'Tùy chỉnh số liệu',\n VISUALIZE_ECHARTS_RADAR_COLUMN_CONFIG_DESC: 'Tùy chỉnh thêm cách hiển thị mỗi số liệu',\n VISUALIZE_ECHARTS_RADAR_CIRCLE_SHAPE: 'Hình tròn radar',\n VISUALIZE_ECHARTS_RADAR_CIRCLE_SHAPE_DESC: \"Loại hiển thị radar, có hiển thị hình dạng 'vòng tròn' hay không.\",\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SERIES: 'Kiểu chuỗi',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SERIES_DESC: 'Loại biểu đồ chuỗi (đường, thanh, v.v.)',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_OPACITY: 'Độ mờ của biểu đồ vùng',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_OPACITY_DESC: 'Độ mờ của biểu đồ vùng. Cũng áp dụng cho dải tin cậy.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_STACK: 'Kiểu xếp chồng',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_STACK_DESC: 'Xếp chồng chuỗi lên nhau',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SHOW_EXTRA: 'Điều khiển bổ sung',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SHOW_EXTRA_DESC: 'Có hiển thị các điều khiển bổ sung hay không. Các điều khiển bổ sung bao gồm những thứ như tạo các biểu đồ mulitBar xếp chồng lên nhau hoặc cạnh nhau.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET: 'Điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET_DESC: 'Vẽ một điểm đánh dấu trên các điểm dữ liệu. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET_SIZE: 'Kích thước điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET_SIZE_DESC: 'Kích thước của điểm đánh dấu. Cũng áp dụng cho các quan sát dự báo.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_X_AXIS: 'Trục X',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_X_AXIS_DESC: 'Khi sử dụng khác với định dạng thích ứng, các nhãn có thể trùng nhau.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_ROTATE_X_AXIS: 'Xoay nhãn trục x',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_LOGARITHMIC_Y_AXIS: 'Trục y logarit',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_LOGARITHMIC_Y_AXIS_DESC: 'Trục y logarit',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MINOR_SPLIT_DESC: 'Vẽ các đường phân chia cho các dấu tick nhỏ trên trục y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_TRUNCATE_Y_AXIS: 'Cắt bớt Trục Y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_TRUNCATE_Y_AXIS_DESC: 'Cắt bớt Trục Y. Có thể bị ghi đè bằng cách chỉ định giới hạn tối thiểu hoặc tối đa.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_Y_AXIS_BOUNDS: 'Giới hạn trục Y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_Y_AXIS_BOUNDS_DESC: \"Giới hạn cho trục Y. Khi để trống, các giới hạn được xác định động dựa trên mức tối thiểu/tối đa của dữ liệu. Lưu ý rằng tính năng này sẽ chỉ mở rộng phạm vi trục. Nó sẽ không thu hẹp phạm vi của dữ liệu.\" ,\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_X_AXIS_MARGIN: 'LÃNH TIÊU ĐỀ TRỤC',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_AXIS_POSITION: 'VỊ TRÍ TIÊU ĐỀ TRỤC',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_AXIS_TIME_DESC: 'Khi sử dụng khác với định dạng thích ứng, các nhãn có thể trùng nhau.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT: 'Sắp xếp giới hạn sê-ri theo',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT_DESC: 'Số liệu được sử dụng để sắp xếp giới hạn nếu có giới hạn chuỗi. Nếu không xác định hoàn nguyên về số liệu đầu tiên (nếu thích hợp).',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT_DESCENDING: 'Sắp xếp giới hạn sê-ri giảm dần',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT_DESCENDING_DESC: 'Sắp xếp giảm dần hay tăng dần nếu có giới hạn chuỗi',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_SERIES_STYLE: 'Kiểu chuỗi',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_SERIES_STYLE_DESC: 'Loại biểu đồ chuỗi (đường, thanh, v.v.)',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_AREA_CHART: 'Biểu đồ vùng',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_AREA_CHART_DESC: 'Vẽ vùng dưới các đường cong. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_OPACITY: 'Độ mờ của biểu đồ vùng',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_OPACITY_DESC: 'Độ mờ của biểu đồ vùng. Cũng áp dụng cho dải tin cậy.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER: 'Điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER_DESC: 'Vẽ một điểm đánh dấu trên các điểm dữ liệu. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER_SIZE: 'Kích thước điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER_SIZE_DESC: 'Kích thước của điểm đánh dấu. Cũng áp dụng cho các quan sát dự báo.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_DATA_ZOOM: 'Thu phóng dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_DATA_ZOOM_DESC: 'Bật điều khiển thu phóng dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_X_AXIS: 'Trục X',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_X_AXIS_TIME_DESC: 'Khi sử dụng khác với định dạng thích ứng, các nhãn có thể trùng nhau.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_ROTATE_X: 'Xoay nhãn trục x',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_LOGARITHMIC: 'Trục logarit y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MINOR_SPLIT: 'Vẽ các đường phân chia cho các dấu tick nhỏ trên trục y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_TRUNCATE_Y_AXIS: 'Cắt bớt Trục Y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_TRUNCATE_Y_AXIS_DESC: 'Cắt bớt Trục Y. Có thể bị ghi đè bằng cách chỉ định giới hạn tối thiểu hoặc tối đa.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_Y_AXIS_BOUNDS: 'Giới hạn trục Y',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_Y_AXIS_BOUNDS_DESC: \"Giới hạn cho trục Y. Khi để trống, các giới hạn được xác định động dựa trên mức tối thiểu/tối đa của dữ liệu. Lưu ý rằng tính năng này sẽ chỉ mở rộng phạm vi trục. Nó sẽ không thu hẹp phạm vi của dữ liệu.\" ,\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER: 'Điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER_DESC: 'Vẽ một điểm đánh dấu trên các điểm dữ liệu. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER_SIZE: 'Kích thước điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER_SIZE_DESC: 'Kích thước của điểm đánh dấu. Cũng áp dụng cho các quan sát dự báo.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_DATA_ZOOM: 'Thu phóng dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_DATA_ZOOM_DESC: 'Bật điều khiển thu phóng dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_X_AXIS_DESC: 'Khi sử dụng khác với định dạng thích ứng, các nhãn có thể trùng nhau.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_ROTATE: 'Xoay nhãn trục x',\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SMOOTH_LINE_X_AXIS: 'Trục X',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SMOOTH_LINE_X_AXIS_DESC: 'Trục X',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_STEP_STYLE: 'Loại bước',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_STEP_STYLE_DESC: 'Xác định bước sẽ xuất hiện ở đầu, giữa hay cuối giữa hai điểm dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_AREA_CHART: 'Biểu đồ vùng',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_AREA_CHART_DESC: 'Vẽ vùng dưới các đường cong. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_OPACITY: 'Độ mờ của biểu đồ vùng',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_OPACITY_DESC: 'Độ mờ của biểu đồ vùng. Cũng áp dụng cho dải tin cậy.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER: 'Điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER_DESC: 'Vẽ một điểm đánh dấu trên các điểm dữ liệu. Chỉ áp dụng cho các loại đường.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER_SIZE: 'Kích thước điểm đánh dấu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER_SIZE_DESC: 'Kích thước của điểm đánh dấu. Cũng áp dụng cho các quan sát dự báo.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_DATA_ZOOM: 'Thu phóng dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_DATA_ZOOM_DESC: 'Bật điều khiển thu phóng dữ liệu',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_X_AXIS: 'Trục X',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_X_AXIS_DESC: 'Khi sử dụng khác với định dạng thích ứng, các nhãn có thể trùng nhau.',\n\n VISUALIZE_ECHARTS_TREE_ID: 'Id',\n VISUALIZE_ECHARTS_TREE_ID_DESC: 'Id',\n VISUALIZE_ECHARTS_TREE_PARENT: 'Gốc',\n VISUALIZE_ECHARTS_TREE_PARENT_DESC: 'Tên cột chứa id của nút cha',\n VISUALIZE_ECHARTS_TREE_NAME: 'Tên',\n VISUALIZE_ECHARTS_TREE_NAME_DESC: 'Tên tùy chọn của cột dữ liệu.',\n VISUALIZE_ECHARTS_TREE_ROOT_ID: 'Id nút gốc',\n VISUALIZE_ECHARTS_TREE_ROOT_ID_DESC: 'Id của nút gốc của cây.',\n VISUALIZE_ECHARTS_TREE_METRICS_DESC: 'Số liệu cho giá trị nút',\n VISUALIZE_ECHARTS_TREE_LAYOUT: 'Bố cục',\n VISUALIZE_ECHARTS_TREE_TREE_LAYOUT: 'Bố cục cây',\n VISUALIZE_ECHARTS_TREE_TREE_LAYOUT_DESC: 'Kiểu bố cục của cây',\n VISUALIZE_ECHARTS_TREE_TREE_ORTHOGONAL: 'Trực giao',\n VISUALIZE_ECHARTS_TREE_TREE_RADIAL: 'Xuyên tâm',\n VISUALIZE_ECHARTS_TREE_TREE_ORIENTATION: 'Trực giao',\n VISUALIZE_ECHARTS_TREE_LR: 'Từ trái sang phải',\n VISUALIZE_ECHARTS_TREE_RL: 'Phải sang trái',\n VISUALIZE_ECHARTS_TREE_TB: 'Từ trên xuống dưới',\n VISUALIZE_ECHARTS_TREE_BT: 'Từ dưới lên trên',\n VISUALIZE_ECHARTS_TREE_NODE_LABEL: 'Vị trí nhãn nút',\n VISUALIZE_ECHARTS_TREE_NODE_LABEL_DESC: 'Vị trí của nhãn nút trung gian trên cây',\n VISUALIZE_ECHARTS_TREE_CHILD_POSITION: 'Vị trí nhãn con',\n VISUALIZE_ECHARTS_TREE_CHILD_POSITION_DESC: 'Vị trí của nhãn nút con trên cây',\n VISUALIZE_ECHARTS_TREE_EMPHASIS: 'Nhấn mạnh',\n VISUALIZE_ECHARTS_TREE_ANCESTOR: 'tổ tiên',\n VISUALIZE_ECHARTS_TREE_DESCENDANT: 'hậu duệ',\n VISUALIZE_ECHARTS_TREE_EMPHASIS_DESC: 'Những họ hàng cần đánh dấu khi di chuột',\n VISUALIZE_ECHARTS_TREE_SYMBOL: 'Biểu tượng',\n VISUALIZE_ECHARTS_TREE_EMPTY_CIRCLE: 'Vòng tròn trống',\n VISUALIZE_ECHARTS_TREE_CIRCLE: 'Vòng tròn',\n VISUALIZE_ECHARTS_TREE_RECTANGLE: 'Hình chữ nhật',\n VISUALIZE_ECHARTS_TREE_TRIANGLE: 'Hình tam giác',\n VISUALIZE_ECHARTS_TREE_DIAMOND: 'Kim cương',\n VISUALIZE_ECHARTS_TREE_PIN: 'Ghim',\n VISUALIZE_ECHARTS_TREE_ARROW: 'Mũi tên',\n VISUALIZE_ECHARTS_TREE_NONE: 'Không',\n VISUALIZE_ECHARTS_TREE_LAYOUT_TYPE: 'Kiểu bố cục của cây',\n VISUALIZE_ECHARTS_TREE_SYMBOL_SIZE: 'Kích thước biểu tượng',\n VISUALIZE_ECHARTS_TREE_SYMBOL_SIZE_DESC: 'Kích thước của ký hiệu cạnh',\n VISUALIZE_ECHARTS_TREE_ROAM: 'Bật chuyển vùng biểu đồ',\n VISUALIZE_ECHARTS_TREE_ROAM_DESC: 'Có bật thay đổi vị trí và tỷ lệ biểu đồ hay không.',\n VISUALIZE_ECHARTS_TREE_DISABLED: 'Đã tắt',\n VISUALIZE_ECHARTS_TREE_SCALE_ONLY: 'Chỉ theo tỷ lệ',\n VISUALIZE_ECHARTS_TREE_MOVE_ONLY: 'Chỉ di chuyển',\n VISUALIZE_ECHARTS_TREE_SCALE_MOVE: 'Chia tỷ lệ và Di chuyển',\n VISUALIZE_ECHARTS_TREE_MAP_SORT_BY_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_ECHARTS_TREE_MAP_SORT_BY_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_LABELS: 'Hiển thị nhãn',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_LABELS_DESC: 'Có hiển thị nhãn hay không.',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_UPPER_LABELS: 'Hiển thị nhãn phía trên',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_UPPER_LABELS_DESC: 'Hiển thị nhãn khi nút có con.',\n VISUALIZE_ECHARTS_TREE_MAP_LABELS_TYPE: 'Loại Nhãn',\n VISUALIZE_ECHARTS_TREE_MAP_LABELS_TYPE_DESC: 'Những gì nên được hiển thị trên nhãn?',\n VISUALIZE_ECHARTS_TREE_MAP_NUMBER_FORMAT: 'Định dạng số',\n VISUALIZE_ECHARTS_TREE_MAP_DATE_FORMAT: 'Định dạng ngày',\n VISUALIZE_ECHARTS_TREE_MAP_NUMBER_FORMAT_DESC_ONE: 'Cú pháp định dạng D3: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_TREE_MAP_NUMBER_FORMAT_DESC_TWO: 'Chỉ áp dụng khi \"Loại nhãn\" được đặt để hiển thị giá trị.',\n VISUALIZE_ECHARTS_TREE_MAP_CONTROLS_TOTAL: 'Chỉ Tổng số',\n VISUALIZE_ECHARTS_TREE_MAP_CONTROLS_TOTAL_DESC: 'Chỉ hiển thị tổng giá trị trên biểu đồ xếp chồng và không hiển thị trên danh mục đã chọn',\n VISUALIZE_ECHARTS_TREE_MAP_PERCENTAGE: 'Ngưỡng phần trăm',\n VISUALIZE_ECHARTS_TREE_MAP_PERCENTAGE_DESC: 'Ngưỡng tối thiểu tính theo điểm phần trăm để hiển thị nhãn.',\n\n VISUALIZE_PIVOT_TABLE_COLUMN: 'Cột',\n VISUALIZE_PIVOT_TABLE_COLUMN_DESC: 'Các cột được nhóm theo trên các cột',\n VISUALIZE_PIVOT_TABLE_ROWS: 'Hàng',\n VISUALIZE_PIVOT_TABLE_ROWS_DESC: 'Các cột để nhóm theo hàng',\n VISUALIZE_PIVOT_TABLE_APPLY_METRIC: 'Áp dụng số liệu trên',\n VISUALIZE_PIVOT_TABLE_APPLY_METRIC_DESC: 'Sử dụng số liệu làm nhóm cấp cao nhất cho cột hoặc hàng',\n VISUALIZE_PIVOT_TABLE_CELL_LIMIT: 'Giới hạn ô',\n VISUALIZE_PIVOT_TABLE_CELL_LIMIT_DESC: 'Giới hạn số lượng ô được truy xuất.',\n VISUALIZE_PIVOT_TABLE_SERIES_LIMIT_DESC: 'Số liệu được sử dụng để xác định cách sắp xếp chuỗi trên cùng nếu có giới hạn chuỗi hoặc ô. Nếu không xác định hoàn nguyên về số liệu đầu tiên (nếu thích hợp).',\n VISUALIZE_PIVOT_TABLE_SORT_DESCENDING: 'Sắp xếp Giảm dần',\n VISUALIZE_PIVOT_TABLE_SORT_DESCENDING_DESC: 'Sắp xếp tăng dần hay giảm dần',\n VISUALIZE_PIVOT_TABLE_AGGREGATION_FUNCTION: 'Hàm tổng hợp',\n VISUALIZE_PIVOT_TABLE_AGGREGATION_FUNCTION_DESC: 'Hàm tổng hợp áp dụng khi xoay vòng và tính toán tổng số hàng và cột',\n VISUALIZE_PIVOT_TABLE_SHOW_ROW_TOTAL: 'Hiển thị tổng số hàng',\n VISUALIZE_PIVOT_TABLE_SHOW_ROW_TOTAL_DESC: 'Hiển thị tổng mức hàng',\n VISUALIZE_PIVOT_TABLE_SHOW_COLUMNS_TOTAL: 'Hiển thị tổng số cột',\n VISUALIZE_PIVOT_TABLE_SHOW_COLUMNS_TOTAL_DESC: 'Hiển thị tổng mức cột',\n VISUALIZE_PIVOT_TABLE_TRANSPOSE_PIVOT: 'Chuyển vị trí trục',\n VISUALIZE_PIVOT_TABLE_TRANSPOSE_PIVOT_DESC: 'Hoán đổi hàng và cột',\n VISUALIZE_PIVOT_TABLE_COMBINE_METRICS: 'Kết hợp số liệu',\n VISUALIZE_PIVOT_TABLE_COMBINE_METRICS_DESC: 'Hiển thị các chỉ số cạnh nhau trong mỗi cột, thay vì mỗi cột được hiển thị cạnh nhau cho mỗi chỉ số.',\n VISUALIZE_PIVOT_TABLE_OPTIONS: 'Tùy chọn',\n VISUALIZE_PIVOT_TABLE_VALUES: 'Định dạng giá trị',\n VISUALIZE_PIVOT_TABLE_DATE_FORMAT: 'Định dạng ngày',\n VISUALIZE_PIVOT_TABLE_DATE_FORMAT_DESC: 'Định dạng thời gian D3 cho các cột ngày giờ',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS: 'Sắp xếp hàng theo',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_KEY_A_TO_Z: 'phím a-z',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_KEY_Z_TO_A: 'phím z-a',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_VALUE_A_TO_Z: 'giá trị tăng dần',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_VALUE_Z_TO_Z: 'giá trị giảm dần',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_ORDER: 'Thay đổi thứ tự hàng.',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_AVAILABLE: 'Các chế độ sắp xếp khả dụng:',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_BY_KEY: 'Theo khóa: sử dụng tên hàng làm khóa sắp xếp',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_BY_VALUE: 'Theo giá trị: sử dụng các giá trị chỉ số làm khóa sắp xếp',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_BY: 'Sắp xếp cột theo',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_ORDER: 'Thay đổi thứ tự các cột.',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_AVAILABLE: 'Các chế độ sắp xếp khả dụng:',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_BY_KEY: 'Theo khóa: sử dụng tên cột làm khóa sắp xếp',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_BY_VALUE: 'Theo giá trị: sử dụng các giá trị chỉ số làm khóa sắp xếp',\n VISUALIZE_PIVOT_TABLE_ROWS_SUBTOTAL_POSITION: 'Vị trí tổng phụ của hàng',\n VISUALIZE_PIVOT_TABLE_ROWS_SUBTOTAL_POSITION_DESC: 'Vị trí của tổng phụ cấp hàng',\n VISUALIZE_PIVOT_TABLE_COLUMNS_SUBTOTAL_POSITION: 'Vị trí tổng phụ của các cột',\n VISUALIZE_PIVOT_TABLE_COLUMNS_SUBTOTAL_POSITION_DESC: 'Vị trí của tổng phụ cấp cột',\n VISUALIZE_PIVOT_TABLE_CONDITIONAL: 'Định dạng có điều kiện',\n VISUALIZE_PIVOT_TABLE_CONDITIONAL_DESC: 'Áp dụng định dạng màu có điều kiện cho số liệu',\n\n VISUALIZE_TABLE_STATE: 'Nhóm theo số liệu, số liệu hoặc số liệu phần trăm phải có giá trị',\n VISUALIZE_TABLE_MUST_VALUE: 'phải có một giá trị',\n VISUALIZE_TABLE_PERCENTAGE: 'Chỉ số phần trăm',\n VISUALIZE_TABLE_PERCENTAGE_DESC: 'Số liệu về tỷ lệ phần trăm của tổng số sẽ được hiển thị. Chỉ được tính từ dữ liệu trong giới hạn hàng.',\n VISUALIZE_TABLE_ORDERING: 'Đặt hàng',\n VISUALIZE_TABLE_ORDERING_DESC: 'Sắp xếp kết quả theo cột đã chọn',\n VISUALIZE_TABLE_SERVER_PAGINATION: 'Phân trang máy chủ',\n VISUALIZE_TABLE_SERVER_PAGINATION_DESC: 'Bật phân trang kết quả phía máy chủ (tính năng thử nghiệm)',\n VISUALIZE_TABLE_SERVER_PAGE_LENGTH: 'Độ dài trang máy chủ',\n VISUALIZE_TABLE_SERVER_PAGE_LENGTH_DESC: 'Hàng trên mỗi trang, 0 có nghĩa là không phân trang',\n VISUALIZE_TABLE_INCLUDE_TIME: 'Bao gồm thời gian',\n VISUALIZE_TABLE_INCLUDE_TIME_DESC: 'Có bao gồm thời gian chi tiết như được xác định trong phần thời gian hay không',\n VISUALIZE_TABLE_SORT_DESCENDING: 'Sắp xếp giảm dần',\n VISUALIZE_TABLE_SORT_DESCENDING_DESC: 'Sắp xếp tăng dần hay giảm dần',\n VISUALIZE_TABLE_SHOW_TOTAL: 'Hiển thị tổng số',\n VISUALIZE_TABLE_SHOW_TOTAL_DESC: 'Hiển thị tập hợp toàn bộ các chỉ số đã chọn. Lưu ý rằng giới hạn hàng không áp dụng cho kết quả.',\n VISUALIZE_TABLE_TIMESTAMP_FORMAT: 'Định dạng dấu thời gian',\n VISUALIZE_TABLE_TIMESTAMP_DESC: 'Định dạng thời gian D3 cho các cột ngày giờ',\n VISUALIZE_TABLE_PAGE_LENGTH: 'Độ dài trang',\n VISUALIZE_TABLE_PAGE_LENGTH_DESC: 'Hàng trên mỗi trang, 0 có nghĩa là không phân trang',\n VISUALIZE_TABLE_SEARCH_BOX: 'Hộp tìm kiếm',\n VISUALIZE_TABLE_SEARCH_BOX_DESC: 'Có bao gồm hộp tìm kiếm phía máy khách hay không',\n VISUALIZE_TABLE_CELL_BARS: 'Thanh ô',\n VISUALIZE_TABLE_CELL_BARS_DESC: 'Có hiển thị nền biểu đồ thanh trong các cột của bảng hay không',\n VISUALIZE_TABLE_ALIGN: 'Căn chỉnh +/-',\n VISUALIZE_TABLE_ALIGN_DESC: 'Có nên căn chỉnh biểu đồ nền với cả giá trị dương và âm tại 0 hay không',\n VISUALIZE_TABLE_COLOR: 'Màu +/-',\n VISUALIZE_TABLE_COLOR_DESC: 'Có nên tô màu các giá trị số theo giá trị dương hay âm hay không',\n VISUALIZE_TABLE_COLUMNS: 'Cho phép sắp xếp lại các cột',\n VISUALIZE_TABLE_COLUMNS_DESC: \"Cho phép người dùng cuối kéo và thả các tiêu đề cột để sắp xếp lại chúng. Lưu ý rằng các thay đổi của chúng sẽ không tồn tại trong lần tiếp theo khi họ mở biểu đồ.\",\n VISUALIZE_TABLE_COLUMNS_CUSTOMIZE: 'Cột tùy chỉnh',\n VISUALIZE_TABLE_COLUMNS_CUSTOMIZE_DESC: 'Tùy chỉnh thêm cách hiển thị từng cột',\n VISUALIZE_TABLE_CONDITIONAL: 'Định dạng có điều kiện',\n VISUALIZE_TABLE_CONDITIONAL_DESC: 'Áp dụng định dạng màu có điều kiện cho các cột số',\n\n VISUALIZE_WORD_CLOUD_SORT_METRIC: 'Sắp xếp theo số liệu',\n VISUALIZE_WORD_CLOUD_SORT_METRIC_DESC: 'Có sắp xếp kết quả theo số liệu đã chọn theo thứ tự giảm dần hay không.',\n VISUALIZE_WORD_CLOUD_MINIMUM_SIZE: 'Cỡ chữ tối thiểu',\n VISUALIZE_WORD_CLOUD_MINIMUM_SIZE_DESC: 'Cỡ chữ cho giá trị nhỏ nhất trong danh sách',\n VISUALIZE_WORD_CLOUD_MAXIMUM_SIZE: 'Cỡ chữ tối đa',\n VISUALIZE_WORD_CLOUD_MAXIMUM_SIZE_DESC: 'Cỡ chữ cho giá trị lớn nhất trong danh sách',\n VISUALIZE_WORD_CLOUD_WORD_ROTATION: 'Xoay từ',\n VISUALIZE_WORD_CLOUD_WORD_ROTATION_DESC: 'Xoay vòng để áp dụng cho các từ trong đám mây',\n VISUALIZE_LEGEND_NAME: 'LEGEND NAME',\n}\n\nexport const commonEN = {\n VISUALIZE_ENTITY:'ENTITY',\n VISUALIZE_ENTITY_DESC:'This defines the element to be plotted on the chart',\n VISUALIZE_X_AXIS_DESC:'Metric assigned to the [X] axis',\n VISUALIZE_Y_AXIS_DESC:'Metric assigned to the [Y] axis',\n VISUALIZE_Y_AXIS_FORMAT:'Y AXIS FORMAT',\n VISUALIZE_BUBBLE_SIZE:'BUBBLE SIZE',\n VISUALIZE_BUBBLE_SIZE_DESC:'Metric used to calculate bubble size',\n VISUALIZE_LINEAR_COLOR_SCHEME:'LINEAR COLOR SCHEME',\n //\n VISUALIZE_X_AXIS_TITTLE: 'X AXIS TITLE',\n VISUALIZE_X_AXIS_TITTLE_BOTTOM_MARGIN: 'X AXIS TITLE BOTTOM MARGIN',\n VISUALIZE_AXIS_TITTLE_MARGIN: 'AXIS TITLE MARGIN',\n VISUALIZE_Y_AXIS_TITTLE_MARGIN: 'Y AXIS TITLE MARGIN',\n VISUALIZE_Y_AXIS: 'Y Axis',\n VISUALIZE_Y_AXIS_TITTLE: 'Y Axis TITLE',\n VISUALIZE_AXIS_TITLE_POSITION: 'AXIS TITLE POSITION',\n VISUALIZE_Y_AXIS_TITLE_POSITION: 'Y AXIS TITLE POSITION',\n VISUALIZE_RIGHT_AXIS_METRIC: 'RIGHT AXIS METRIC',\n VISUALIZE_RIGHT_AXIS_METRIC_DESC: 'Choose a metric for right axis',\n VISUALIZE_FIXED_COLOR: 'FIXED COLOR',\n VISUALIZE_FIXED_COLOR_DESC: 'Use this to define a static color for all circles',\n VISUALIZE_COLOR_METRIC: 'COLOR METRIC',\n VISUALIZE_COLOR_METRIC_DESC: 'A metric to use for color',\n VISUALIZE_RAW_RECORDS: 'Raw records',\n VISUALIZE_TIME_STAMP_DESC: 'A reference to the [Time] configuration, taking granularity into account',\n VISUALIZE_QUERY_DIMENSIONS_DESC: 'One or many columns to group by. High cardinality groupings should include a series limit to limit the number of fetched and rendered series.',\n VISUALIZE_TIME_FILTER_DESC: 'The time granularity for the visualization. This applies a date transformation to alter your time column and defines a new time granularity. The options here are defined on a per database engine basis in the Superset source code.',\n VISUALIZE_DIMENSIONS:'Dimensions',\n VISUALIZE_DIMENSIONS_DESC:'Defines the grouping of entities. Each series is shown as a specific color on the chart and has a legend toggle',\n VISUALIZE_ERROR_OCCURRED:'An error occurred while starring this chart',\n VISUALIZE_ERROR_OCCURRED_WHILE_RENDERING:'An error occurred while rendering the visualization: %s',\n VISUALIZE_UPDATE_CHART_STOPPED:'Updating chart was stopped',\n VISUALIZE_EMIT_TARGET:'Emit Target',\n VISUALIZE_EMIT_TARGET_DESC:'If you wish to specify a different target column than the original column, it can be entered here',\n VISUALIZE_D_THREE_FORMAT:'D3 format',\n VISUALIZE_FRACTION_DIGITS:'Fraction digits',\n VISUALIZE_FRACTION_DIGITS_DESC:'Number of decimal digits to round numbers to',\n VISUALIZE_MIN_WIDTH:'Min Width',\n VISUALIZE_MIN_WIDTH_DESC:\"Default minimal column width in pixels, actual width may still be larger than this if other columns don't need much space\",\n VISUALIZE_TEXT_ALIGN:'Text align',\n VISUALIZE_TEXT_ALIGN_DESC:'Horizontal alignment',\n VISUALIZE_CENTER:'Center',\n VISUALIZE_SHOW_CELL_BARS:'Show cell bars',\n VISUALIZE_SHOW_CELL_BARS_DESC:'Whether to display a bar chart background in table columns',\n VISUALIZE_ALIGN_DESC:'Whether to align positive and negative values in cell bar chart at 0',\n VISUALIZE_TRUNCATE_CELL:'Truncate Cells',\n VISUALIZE_TRUNCATE_CELL_DESC:'Truncate long cells to the \"min width\" set above',\n VISUALIZE_SMALL_NUMBER_FORMAT:'Small number format',\n VISUALIZE_SMALL_NUMBER_FORMAT_DESC:'D3 number format for numbers between -1.0 and 1.0, useful when you want to have different siginificant digits for small and large numbers',\n VISUALIZE_ENABLE_CROSS:'Enable dashboard cross filters',\n VISUALIZE_ENABLE_CROSS_DESC:'Enable dashboard cross filters',\n VISUALIZE_SORT_BY_DESC:'Whether to sort descending or ascending. Takes effect only when \"Sort by\" is set',\n VISUALIZE_AXIS_Y:'Y-axis',\n VISUALIZE_AXIS_X:'X-axis',\n VISUALIZE_AXIS_X_DESC:'Dimension to use on x-axis.',\n VISUALIZE_AXIS_Y_DESC:'Dimension to use on y-axis.',\n VISUALIZE_ERROR_OCCURRED_SQL:'An error occurred while loading the SQL',\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n VISUALIZE_SERIES_LIMIT: 'SERIES LIMIT',\n VISUALIZE_SERIES_LIMIT_DESCRIPTION: 'Limits the number of series that get displayed. A joined subquery (or an extra phase where subqueries are not supported) is applied to limit the number of series that get fetched and rendered. This feature is useful when grouping by high cardinality column(s) though does increase the query complexity and cost.',\n VISUALIZE_FILTERS: 'FILTERS',\n VISUALIZE_DATA: 'FACTOR',\n VISUALIZE_DATA_DESCRIPTION: 'Control labeled',\n VISUALIZE_NOT_EMPTY: 'cannot be empty',\n VISUALIZE_CUSTOMIZE: 'Customize',\n VISUALIZE_TIME: 'Time',\n VISUALIZE_TIME_DESCRIPTION: 'Time related form attributes',\n VISUALIZE_TIME_COLUMN: 'Time column',\n VISUALIZE_TIME_COLUMN_DESCRIPTION: \"The time column for the visualization. Note that you can define arbitrary expression that return a DATETIME column in the table. Also note that the filter below is applied against this column or expression msgstr \",\n VISUALIZE_TIME_COLUMN_DROP: \"Drop a temporal column here or click\",\n VISUALIZE_TIME_COLUMN_SIMPLE: \"Simple\",\n VISUALIZE_TIME_COLUMN_NOT_FIND: \"No temporal columns found\",\n VISUALIZE_TIME_COLUMN_MARK: \"Mark a column as temporal in \\\"Edit datasource\\\" moda\",\n VISUALIZE_CLOSE: \"Close\",\n VISUALIZE_SAVE: \"Save\",\n VISUALIZE_COLUMN: \"Column\",\n VISUALIZE_AGGREGATE: \"Aggregate\",\n VISUALIZE_CUSTOM: \"Custom\",\n VISUALIZE_NO_FILTER: \"No filter\",\n VISUALIZE_SELECT: \"Select . .\",\n VISUALIZE_APPLY: \"Apply\",\n VISUALIZE_CANCEL: \"Cancel\",\n VISUALIZE_CLICK_TO_EDIT: \"Click to edit label\",\n VISUALIZE_TIME_RANGE: \"Time range\",\n VISUALIZE_TIME_RANGE_TYPE: \"Range type\",\n VISUALIZE_TIME_RANGE_EDIT: \"Edit range type\",\n VISUALIZE_TIME_RANGE_ACTUAL: \"Actual time range\",\n VISUALIZE_TIME_RANGE_DESCRIPTION: \"The time range for the visualization. All relative times, e.g. \\\"Last month\\\", \\\"Last 7 days\\\", \\\"now\\\", etc. are evaluated on the server using the server's local time (sans timezone). All tooltips and placeholder times are expressed in UTC (sans timezone). The timestamps are then evaluated by the database using the engine's local timezone. Note one can explicitly set the timezone per the ISO 8601 format if specifying either the start and/or end time.\",\n VISUALIZE_TIME_GRAIN: \"Time grain\",\n VISUALIZE_TIME_GRAIN_DESCRIPTION: \"The time granularity for the visualization. This applies a date transformation to alter your time column and defines a new time granularity. The options here are defined on a per database engine basis in the Superset source code.\",\n VISUALIZE_QUERY_TITLE: \"Query\",\n VISUALIZE_QUERY_DESCRIPTION: \"This section contains validation errors\",\n VISUALIZE_QUERY_METRICS: \"Metrics\",\n VISUALIZE_QUERY_MY_METRICS: \"My metrics\",\n VISUALIZE_QUERY_MY_COLUMNS: \"My columns\",\n VISUALIZE_QUERY_METRICS_DISPLAY: \"One or many Metrics to display\",\n VISUALIZE_QUERY_METRICS_DROP: \"Drop columns/metrics here or click\",\n VISUALIZE_QUERY_METRICS_DROP_OR_CLICK: \"Drop columns here or click\",\n VISUALIZE_QUERY_METRICS_DROP_ONE_OR_CLICK: \"Drop a columns here or click\",\n VISUALIZE_QUERY_DIMENSIONS: \"Dimensions\",\n VISUALIZE_QUERY_DIMENSIONS_DESCRIPTION: \"One or many columns to group by. High cardinality groupings should include a series limit to limit the number of fetched and rendered series.\",\n VISUALIZE_QUERY_UNEXPECTED_ERROR: 'Unexpected error',\n VISUALIZE_CONTRIBUTION_MODE: 'Contribution mode',\n VISUALIZE_CONTRIBUTION_MODE_DESCRIPTION: 'Calculate contribution per series or total',\n VISUALIZE_COPY: 'Copy message',\n VISUALIZE_CREATE_CHART: 'Apply',\n VISUALIZE_OPERATOR: 'Operator',\n VISUALIZE_NONE: 'None',\n VISUALIZE_ROW: 'Row',\n VISUALIZE_YES: 'Yes',\n VISUALIZE_NO: 'No',\n VISUALIZE_DEFAULT: 'Default',\n VISUALIZE_SERIES: 'Series',\n VISUALIZE_QUERY_FILTER: 'Filter',\n VISUALIZE_SORT_BY: 'Sort by',\n VISUALIZE_SORT_BY_DESCRIPTION: 'Metric used to define how the top series are sorted if a series or row limit is present. If undefined reverts to the first metric (where appropriate).',\n VISUALIZE_LIMIT_ROW: 'Row limit',\n VISUALIZE_LIMIT_ROW_DESCRIPTION: 'Limits the number of rows that get displayed.',\n VISUALIZE_TRUNCATE_METRIC: 'Truncate metric',\n VISUALIZE_TRUNCATE_METRIC_DESCRIPTION: 'Whether to truncate metrics',\n VISUALIZE_SHOW_EMPTY_COL: 'Show empty columns',\n VISUALIZE_PREDICTIVE_ANALYTICS: 'Predictive analytics',\n VISUALIZE_PREDICTIVE_ENABLE_FORECAST: 'ENABLE FORECAST',\n VISUALIZE_PREDICTIVE_FORECAST_DESCRIPTION: 'Enable forecasting',\n VISUALIZE_PREDICTIVE_FORECAST_PERIODS: 'FORECAST PERIODS',\n VISUALIZE_PREDICTIVE_FORECAST_PERIODS_DESCRIPTION: 'How many periods into the future do we want to predict',\n VISUALIZE_PREDICTIVE_CONFIDENCE_INTERVAL: 'CONFIDENCE INTERVAL',\n VISUALIZE_PREDICTIVE_CONFIDENCE_INTERVAL_DESCRIPTION: 'Width of the confidence interval. Should be between 0 and 1',\n VISUALIZE_PREDICTIVE_YEARLY_SEASONALITY: 'YEARLY SEASONALITY',\n VISUALIZE_PREDICTIVE_YEARLY_SEASONALITY_DESCRIPTION: 'Should yearly seasonality be applied. An integer value will specify Fourier order of seasonality.',\n VISUALIZE_PREDICTIVE_WEEKLY_SEASONALITY: 'WEEKLY SEASONALITY',\n VISUALIZE_PREDICTIVE_WEEKLY_SEASONALITY_DESCRIPTION: 'Should weekly seasonality be applied. An integer value will specify Fourier order of seasonality',\n VISUALIZE_PREDICTIVE_DAILY_SEASONALITY: 'DAILY SEASONALITY',\n VISUALIZE_PREDICTIVE_DAILY_SEASONALITY_DESCRIPTION: 'Should daily seasonality be applied. An integer value will specify Fourier order of seasonality',\n VISUALIZE_CHART_ORIENTATION: 'Chart Orientation',\n VISUALIZE_BAR_ORIENTATION: 'Bar Orientation',\n VISUALIZE_BAR_ORIENTATION_DESCRIPTION: 'Orientation of bar chart',\n VISUALIZE_NOTIFICATION_CHANGE: 'Changing this control takes effect instantly',\n VISUALIZE_VERTICAL: 'Vertical',\n VISUALIZE_HORIZONTAL: 'Horizontal',\n VISUALIZE_CHART_TITTLE: 'Chart tittle',\n VISUALIZE_CHART_OPTION: 'Chart options',\n VISUALIZE_X_AXIS: 'X Axis',\n\n VISUALIZE_LEFT: 'Left',\n VISUALIZE_TOP: 'Top',\n VISUALIZE_BOTTOM: 'Bottom',\n VISUALIZE_RIGHT: 'Right',\n VISUALIZE_SHOW_VALUE: 'Show value',\n VISUALIZE_COLOR_BROAD: 'Color scheme',\n VISUALIZE_SHOW_VALUE_DESCRIPTION: 'Show series values on the chart',\n VISUALIZE_STACK_SERIES: 'STACK SERIES',\n VISUALIZE_STACK_SERIES_DESCRIPTION: 'Stack series on top of each other',\n VISUALIZE_DATA_ZOOM: 'Data zoom',\n VISUALIZE_DATA_ZOOM_DESCRIPTION: 'Enable data zooming controls',\n VISUALIZE_LEGEND: 'Legend',\n VISUALIZE_SHOW_LEGEND: 'Show legend',\n VISUALIZE_SHOW_LEGEND_DESCRIPTION: 'Whether to display a legend for the chart',\n VISUALIZE_TYPE: 'Type',\n VISUALIZE_TYPE_DESCRIPTION: 'Legend type',\n VISUALIZE_SCROLL: 'Scroll',\n VISUALIZE_PLAIN: 'Plain',\n VISUALIZE_ORIENTATION: 'Orientation',\n VISUALIZE_LEGEND_ORIENTATION: 'Legend orientation',\n VISUALIZE_COLOR_BROAD_DESCRIPTION: 'The color scheme for rendering chart',\n VISUALIZE_MARGIN: 'MARGIN',\n VISUALIZE_ORIGINAL_VALUE: 'Original value',\n VISUALIZE_DURATION_IN_MS: 'Duration in ms (66000 => 1m 6s)',\n VISUALIZE_DURATION_IN_MS_1: 'Duration in ms (1.40008 => 1ms 400µs 80ns)',\n VISUALIZE_MARGIN_DESCRIPTION: 'Additional padding for legend.',\n VISUALIZE_TIME_FORMAT: 'TIME FORMAT',\n VISUALIZE_TIME_FORMAT_DESCRIPTION: 'D3 time format syntax: https://github.com/d3/d3-time-format. When using other than adaptive formatting, labels may overlap',\n VISUALIZE_ADAPTIVE_FORMATTING: 'Adaptive formatting',\n VISUALIZE_ROTATE_AXIS_LABEL: 'ROTATE AXIS LABEL',\n VISUALIZE_ROTATE_AXIS_LABEL_DESCRIPTION: 'Input field supports custom rotation. e.g. 30 for 30°',\n VISUALIZE_TOOLTIP: 'Tooltip',\n VISUALIZE_TOOLTIP_RICH: 'RICH TOOLTIP',\n VISUALIZE_TOOLTIP_RICH_DESCRIPTION: 'Shows a list of all series available at that point in time',\n VISUALIZE_TOOLTIP_SORT_DESCRIPTION: 'Whether to sort tooltip by the selected metric in descending order.',\n VISUALIZE_TOOLTIP_SORT: 'TOOLTIP SORT BY METRIC',\n VISUALIZE_TOOLTIP_TIME_FORMAT: 'TOOLTIP TIME FORMAT',\n VISUALIZE_TOOLTIP_TIME_FORMAT_DESCRIPTION: 'D3 time format syntax: https://github.com/d3/d3-time-format ',\n VISUALIZE_AXIS_FORMAT: 'AXIS FORMAT',\n VISUALIZE_AXIS_FORMAT_DESCRIPTION: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_LOGARITHMIC_AXIS: 'Logarithmic axis',\n VISUALIZE_MINOR_SPLIT_LINE: 'Minor split line',\n VISUALIZE_MINOR_SPLIT_LINE_DESCRIPTION: 'Draw split lines for minor axis ticks',\n VISUALIZE_TRUNCATE_AXIS: 'TRUNCATE AXIS',\n VISUALIZE_TRUNCATE_AXIS_DESCRIPTION: 'It’s not recommended to truncate axis in Bar chart.',\n VISUALIZE_AXIS_BOUNDS: 'AXIS BOUNDS',\n VISUALIZE_AXIS_BOUNDS_DESCRIPTION: 'Bounds for the axis. When left empty, the bounds are dynamically defined based on the min/max of the data. Note that this feature will only expand the axis range. It won\\'t narrow the data\\'s extent.',\n VISUALIZE_MIN: 'Min',\n VISUALIZE_MAX: 'Max',\n VISUALIZE_LABEL_ADD_REQUIRED_CONTROL: 'Add required control values to preview chart',\n VISUALIZE_RESULTS: 'Results',\n VISUALIZE_RUN_TO_DISPLAY: 'Run a query to display results',\n /*------------------------------CHART CALENDAR-------------------------------*/\n VISUALIZE_CALENDAR_DOMAIN: 'Domain',\n VISUALIZE_CALENDAR_DESCRIPTION: 'The time unit used for the grouping of blocks',\n VISUALIZE_CALENDAR_SUBDOMAIN: 'Subdomain',\n VISUALIZE_CALENDAR_SUBDOMAIN_DESC: 'The time unit for each block. Should be a smaller unit than domain_granularity. Should be larger or equal to Time Grain',\n VISUALIZE_CALENDAR_CELL_SIZE: 'Cell Size',\n VISUALIZE_CALENDAR_CELL_SIZE_DESC: 'The size of the square cell, in pixels',\n VISUALIZE_CALENDAR_CELL_PADDING: 'Cell Padding',\n VISUALIZE_CALENDAR_CELL_PADDING_DESC: 'The distance between cells, in pixels',\n VISUALIZE_CALENDAR_CELL_RADIUS: 'Cell Radius',\n VISUALIZE_CALENDAR_CELL_RADIUS_DESC: 'The pixel radius',\n VISUALIZE_CALENDAR_COLOR_STEPS: 'Color Steps',\n VISUALIZE_CALENDAR_COLOR_STEPS_DESC: 'The number color \"steps\"',\n VISUALIZE_CALENDAR_LEGEND: 'Legend',\n VISUALIZE_CALENDAR_LEGEND_DESC: 'Whether to display the legend (toggles)',\n VISUALIZE_CALENDAR_SHOW_VALUES: 'Show values',\n VISUALIZE_CALENDAR_SHOW_VALUES_DESC: 'Whether to display the numerical values within the cells',\n VISUALIZE_CALENDAR_SHOW_METRIC: 'Show Metric Names',\n VISUALIZE_CALENDAR_SHOW_METRIC_DESC: 'Whether to display the metric name as a title',\n VISUALIZE_CALENDAR_NUMBER_FORMAT: 'Number Format',\n\n /*---------------CHORD--------------------*/\n VISUALIZE_CHORD_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_CHORD_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_CHORD_NUMBER_FORMAT: 'Number format',\n VISUALIZE_CHORD_NUMBER_FORMAT_DESC: 'Choose a number format',\n VISUALIZE_CHORD_SOURCE: 'Source',\n VISUALIZE_CHORD_SOURCE_DESC: 'Choose a source',\n VISUALIZE_CHORD_TARGET: 'Target',\n VISUALIZE_CHORD_TARGET_DESC: 'Choose a target',\n\n /*---------------COUNTRY_MAP--------------------*/\n\n VISUALIZE_COUNTRY_COUNTRY: 'Country',\n VISUALIZE_COUNTRY_COUNTRY_DESC: 'Which country to plot the map for?',\n VISUALIZE_COUNTRY_NUMBER_FORMAT: 'Number format',\n VISUALIZE_COUNTRY_NUMBER_FORMAT_DESC: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_COUNTRY_ISO: 'ISO 3166-2 Codes',\n VISUALIZE_COUNTRY_ISO_DESC: 'Column containing ISO 3166-2 codes of region/province/department in your table.',\n VISUALIZE_COUNTRY_QUERY_METRIC_DESC: 'Metric to display bottom title',\n\n /*---------------EVENT-FLOW--------------------*/\n\n VISUALIZE_EVENT_EVENT_NAME: 'Event Names',\n VISUALIZE_EVENT_EVENT_NAME_DESC: 'Columns to display',\n VISUALIZE_EVENT_ORDER_BY: 'Order by entity id',\n VISUALIZE_EVENT_ORDER_BY_DESC: 'Important! Select this if the table is not already sorted by entity id,else there is no guarantee that all events for each entity are returned.',\n VISUALIZE_EVENT_MINIMUM: 'Minimum leaf node event count',\n VISUALIZE_EVENT_MINIMUM_DESC: 'Leaf nodes that represent fewer than this number of events will be initially hidden in the visualization',\n VISUALIZE_EVENT_META_DATA: 'Metadata',\n VISUALIZE_EVENT_META_DATA_DESC: 'Select any columns for metadata inspection',\n VISUALIZE_EVENT_ENTITY_ID: 'Entity ID',\n VISUALIZE_EVENT_ENTITY_ID_DESC: 'e.g., a \"user id\" column',\n VISUALIZE_EVENT_MAX: 'Max Events',\n VISUALIZE_EVENT_MAX_DESC: 'The maximum number of events to return, equivalent to the number of rows',\n /*---------------heart map--------------------*/\n\n VISUALIZE_HEATMAP_AXIS_ASCENDING: 'Axis ascending',\n VISUALIZE_HEATMAP_AXIS_DESCENDING: 'Axis descending',\n VISUALIZE_HEATMAP_METRICS_ASCENDING: 'Metric ascending',\n VISUALIZE_HEATMAP_METRICS_DESCENDING: 'Metric descending',\n VISUALIZE_HEATMAP_COLUMNS_DISPLAY: 'Columns to display',\n VISUALIZE_HEATMAP_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_HEATMAP_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_HEATMAP_OPTION: 'Heatmap Options',\n VISUALIZE_HEATMAP_XSCALE_INTERVAL: 'XScale Interval',\n VISUALIZE_HEATMAP_XSCALE_INTERVAL_DESC: 'Number of steps to take between ticks when displaying the X scale',\n VISUALIZE_HEATMAP_YSCALE_INTERVAL: 'YScale Interval',\n VISUALIZE_HEATMAP_YSCALE_INTERVAL_DESC: 'Number of steps to take between ticks when displaying the Y scale',\n VISUALIZE_HEATMAP_RENDERING: 'Rendering',\n VISUALIZE_HEATMAP_RENDERING_DESC: 'image-rendering CSS attribute of the canvas object that defines how the browser scales up the image',\n VISUALIZE_HEATMAP_NORMALIZE: 'Normalize Across',\n VISUALIZE_HEATMAP_NORMALIZE_DESC: 'Color will be shaded based the normalized (0% to 100%) value of a given cell against the other cells in the selected range: ',\n VISUALIZE_HEATMAP_NORMALIZE_DESC_X: 'x: values are normalized within each column',\n VISUALIZE_HEATMAP_NORMALIZE_DESC_Y: 'y: values are normalized within each row',\n VISUALIZE_HEATMAP_NORMALIZE_DESC_HEATMAP: 'heatmap: values are normalized across the entire heatmap',\n VISUALIZE_HEATMAP_LEFT_MARGIN: 'Left Margin',\n VISUALIZE_HEATMAP_LEFT_MARGIN_DESC: 'Left margin, in pixels, allowing for more room for axis labels',\n VISUALIZE_HEATMAP_BOTTOM_MARGIN: 'Bottom Margin',\n VISUALIZE_HEATMAP_BOTTOM_MARGIN_DESC: 'Bottom margin, in pixels, allowing for more room for axis labels',\n VISUALIZE_HEATMAP_VALUE_BOUNDS: 'Value bounds',\n VISUALIZE_HEATMAP_VALUE_BOUNDS_DESC: 'Hard value bounds applied for color coding. Is only relevant and applied when the normalization is applied against the whole heatmap.',\n VISUALIZE_HEATMAP_SORT_X_AXIS: 'Sort X Axis',\n VISUALIZE_HEATMAP_SORT_Y_AXIS: 'Sort Y Axis',\n VISUALIZE_HEATMAP_LEGEND_DESC: 'Whether to display the legend (toggles)',\n VISUALIZE_HEATMAP_PERCENTAGE: 'Show percentage',\n VISUALIZE_HEATMAP_PERCENTAGE_DESC: 'Whether to include the percentage in the tooltip',\n VISUALIZE_HEATMAP_SHOW_VALUES: 'Show Values',\n VISUALIZE_HEATMAP_SHOW_VALUES_DESC: 'Whether to display the numerical values within the cells',\n VISUALIZE_HEATMAP_NORMALIZED: 'Normalized',\n VISUALIZE_HEATMAP_NORMALIZED_DESC: 'Whether to apply a normal distribution based on rank on the color scale',\n VISUALIZE_HEATMAP_VALUE_FORMAT: 'Value Format',\n\n /*---------------histogram--------------------*/\n\n VISUALIZE_HISTOGRAM_COLUMNS: 'Columns',\n VISUALIZE_HISTOGRAM_COLUMNS_DESC: 'Select the numeric columns to draw the histogram',\n VISUALIZE_HISTOGRAM_NO_BINS: 'No of Bins',\n VISUALIZE_HISTOGRAM_NO_BINS_DESC: 'Select the number of bins for the histogram',\n VISUALIZE_HISTOGRAM_X_LABEL: 'X Axis Label',\n VISUALIZE_HISTOGRAM_Y_LABEL: 'Y Axis Label',\n VISUALIZE_HISTOGRAM_LEGEND_DESC: 'Whether to display the legend (toggles)',\n VISUALIZE_HISTOGRAM_NORMALIZED: 'Normalized',\n VISUALIZE_HISTOGRAM_NORMALIZED_DESC: 'Whether to normalize the histogram',\n VISUALIZE_HISTOGRAM_CUMULATIVE: 'Cumulative',\n VISUALIZE_HISTOGRAM_CUMULATIVE_DESC: 'Whether to make the histogram cumulative',\n\n /*---------------horizon--------------------*/\n\n VISUALIZE_HORIZON_CONTRIBUTE: 'Contribution',\n VISUALIZE_HORIZON_CONTRIBUTE_DESC: 'Compute the contribution to the total',\n VISUALIZE_HORIZON_SERIES_HEIGHT: 'Series Height',\n VISUALIZE_HORIZON_SERIES_HEIGHT_DESC: 'Pixel height of each series',\n VISUALIZE_HORIZON_VALUE_DOMAIN: 'Value Domain',\n VISUALIZE_HORIZON_VALUE_DOMAIN_DESC: 'series: Treat each series independently; overall: All series use the same scale; change: Show changes compared to the first data point in each series',\n /*---------------map-box--------------------*/\n\n VISUALIZE_MAP_BOX_LONGITUDE: 'Longitude',\n VISUALIZE_MAP_BOX_LONGITUDE_DESC: 'Column containing longitude data',\n VISUALIZE_MAP_BOX_LATITUDE: 'Latitude',\n VISUALIZE_MAP_BOX_LATITUDE_DESC: 'Column containing latitude data',\n VISUALIZE_MAP_BOX_CLUSTERING: 'Clustering Radius',\n VISUALIZE_MAP_BOX_CLUSTERING_DESC: 'The radius (in pixels) the algorithm uses to define a cluster. Choose 0 to turn off clustering, but beware that a large number of points (>1000) will cause lag.',\n VISUALIZE_MAP_BOX_POINTS: 'Points',\n VISUALIZE_MAP_BOX_POINTS_RADIUS: 'Point Radius',\n VISUALIZE_MAP_BOX_POINTS_RADIUS_DESC: 'The radius of individual points (ones that are not in a cluster). Either a numerical column or `Auto`, which scales the point based on the largest cluster',\n VISUALIZE_MAP_BOX_POINTS_RADIUS_UNIT: 'Point Radius Unit',\n VISUALIZE_MAP_BOX_POINTS_RADIUS_UNIT_DESC: 'The unit of measure for the specified point radius',\n VISUALIZE_MAP_BOX_LABELLING: 'Labelling',\n VISUALIZE_MAP_BOX_LABEL: 'Label',\n VISUALIZE_MAP_BOX_LABEL_DESC: '`count` is COUNT(*) if a group by is used. Numerical columns will be aggregated with the aggregator. Non-numerical columns will be used to label points. Leave empty to get a count of points in each cluster.',\n VISUALIZE_MAP_BOX_CLUSTER_LABEL: 'Cluster label aggregator',\n VISUALIZE_MAP_BOX_CLUSTER_LABEL_DESC: 'Aggregate function applied to the list of points in each cluster to produce the cluster label.',\n VISUALIZE_MAP_BOX_VISUAL_TWEAKS: 'Visual Tweaks',\n VISUALIZE_MAP_BOX_LIVE_RENDER: 'Live render',\n VISUALIZE_MAP_BOX_LIVE_RENDER_DESC: 'Points and clusters will update as the viewport is being changed',\n VISUALIZE_MAP_BOX_STYLE: 'Map Style',\n VISUALIZE_MAP_BOX_STYLE_DESC: 'Base layer map style',\n VISUALIZE_MAP_BOX_OPACITY: 'Opacity',\n VISUALIZE_MAP_BOX_OPACITY_DESC: 'Opacity of all clusters, points, and labels. Between 0 and 1.',\n VISUALIZE_MAP_BOX_RGB: 'RGB Color',\n VISUALIZE_MAP_BOX_RGB_DESC: 'The color for points and clusters in RGB',\n VISUALIZE_MAP_BOX_VIEW_PORT: 'Viewport',\n VISUALIZE_MAP_BOX_DEFAULT_LONGITUDE: 'Default longitude',\n VISUALIZE_MAP_BOX_DEFAULT_LONGITUDE_DESC: 'Longitude of default viewport',\n VISUALIZE_MAP_BOX_DEFAULT_LATITUDE: 'Default latitude',\n VISUALIZE_MAP_BOX_DEFAULT_LATITUDE_DESC: 'Latitude of default viewport',\n VISUALIZE_MAP_BOX_ZOOM: 'Zoom',\n VISUALIZE_MAP_BOX_ZOOM_DESC: 'Zoom level of the map',\n VISUALIZE_MAP_BOX_CONTROL_OVERRIDE_DESC: 'One or many controls to group by. If grouping, latitude and longitude columns must be present.',\n\n /*---------------paired-t-test--------------------*/\n\n\n\n VISUALIZE_PAIRED_CONTRIBUTION: 'Contribution',\n VISUALIZE_PAIRED_CONTRIBUTION_DESC: 'Compute the contribution to the total',\n VISUALIZE_PAIRED_PARAMETERS: 'Parameters',\n VISUALIZE_PAIRED_SIGNIFICANCE_LEVEL: 'Significance Level',\n VISUALIZE_PAIRED_SIGNIFICANCE_LEVEL_DESC: 'Threshold alpha level for determining significance',\n VISUALIZE_PAIRED_P_VALUE_PRECISION: 'p-value precision',\n VISUALIZE_PAIRED_P_VALUE_PRECISION_DESC: 'Number of decimal places with which to display p-values',\n VISUALIZE_PAIRED_LIFT_PRECISION: 'Lift percent precision',\n VISUALIZE_PAIRED_LIFT_PRECISION_DESC: 'Number of decimal places with which to display lift values',\n\n /*---------------parallel--------------------*/\n\n VISUALIZE_PARALLEL_OPTIONS: 'Options',\n VISUALIZE_PARALLEL_DATA_TABLE: 'Data Table',\n VISUALIZE_PARALLEL_DATA_TABLE_DESC: 'Whether to display the interactive data table',\n VISUALIZE_PARALLEL_INCLUDE_SERIES: 'Include Series',\n VISUALIZE_PARALLEL_INCLUDE_SERIES_DESC: 'Include series name as an axis',\n\n /*---------------partition--------------------*/\n\n VISUALIZE_PARTITION_CONTRIBUTION: 'Contribution',\n VISUALIZE_PARTITION_CONTRIBUTION_DESC: 'Compute the contribution to the total',\n VISUALIZE_PARTITION_TIME_SERIES_OPTION: 'Time Series Options',\n VISUALIZE_PARTITION_OPTION: 'Options',\n VISUALIZE_PARTITION_OPTION_NOT_TIME: 'Not Time Series',\n VISUALIZE_PARTITION_OPTION_NOT_TIME_DESC: 'Ignore time',\n VISUALIZE_PARTITION_OPTION_TIME: 'Time Series',\n VISUALIZE_PARTITION_OPTION_TIME_DESC: 'Standard time series',\n VISUALIZE_PARTITION_OPTION_AGGREGATE: 'Aggregate Mean',\n VISUALIZE_PARTITION_OPTION_AGGREGATE_DESC: 'Mean of values over specified period',\n VISUALIZE_PARTITION_OPTION_AGGREGATE_SUM: 'Aggregate Sum',\n VISUALIZE_PARTITION_OPTION_AGGREGATE_SUM_DESC: 'Sum of values over specified period',\n VISUALIZE_PARTITION_OPTION_DIFFERENCE: 'Difference',\n VISUALIZE_PARTITION_OPTION_DIFFERENCE_DESC: 'Metric change in value from `since` to `until`',\n VISUALIZE_PARTITION_OPTION_PERCENT_CHANGE: 'Percent Change',\n VISUALIZE_PARTITION_OPTION_PERCENT_CHANGE_DESC: 'Metric percent change in value from `since` to `until`',\n VISUALIZE_PARTITION_OPTION_FACTOR: 'Factor',\n VISUALIZE_PARTITION_OPTION_FACTOR_DESC: 'Metric factor change from `since` to `until`',\n VISUALIZE_PARTITION_SETTING_TIME_SERIES: 'Settings for time series',\n VISUALIZE_PARTITION_NUMBER_FORMAT: 'Number format',\n VISUALIZE_PARTITION_DATE_TIME_FORMAT: 'Date Time Format',\n VISUALIZE_PARTITION_PARTITION_LIMIT: 'Partition Limit',\n VISUALIZE_PARTITION_PARTITION_LIMIT_DESC: 'The maximum number of subdivisions of each group; lower values are pruned first',\n VISUALIZE_PARTITION_PARTITION_THRESHOLD: 'Partition Threshold',\n VISUALIZE_PARTITION_PARTITION_THRESHOLD_DESC: 'Partitions whose height to parent height proportions are below this value are pruned',\n VISUALIZE_PARTITION_LOG_SCALE: 'Log Scale',\n VISUALIZE_PARTITION_LOG_SCALE_DESC: 'Use a log scale',\n VISUALIZE_PARTITION_EQUAL_SIZE: 'Equal Date Sizes',\n VISUALIZE_PARTITION_EQUAL_SIZE_DESC: 'Check to force date partitions to have the same height',\n\n /*---------------pivot--------------------*/\n\n VISUALIZE_PIVOT_AGGREGATION: 'Aggregation function',\n VISUALIZE_PIVOT_AGGREGATION_DESC: 'Aggregate function to apply when pivoting and computing the total rows and columns',\n VISUALIZE_PIVOT_SHOW_TOTALS: 'Show totals',\n VISUALIZE_PIVOT_SHOW_TOTALS_DESC: 'Display total row/column',\n VISUALIZE_PIVOT_COMBINE_METRICS: 'Combine Metrics',\n VISUALIZE_PIVOT_COMBINE_METRICS_DESC: 'Display metrics side by side within each column, as opposed to each column being displayed side by side for each metric.',\n VISUALIZE_PIVOT_TRANSPOSE: 'Transpose Pivot',\n VISUALIZE_PIVOT_TRANSPOSE_DESC: 'Swap Groups and Columns',\n VISUALIZE_PIVOT_NUMBER_FORMAT: 'Number format',\n VISUALIZE_PIVOT_DATE_FORMAT: 'Date format',\n\n /*---------------rose--------------------*/\n\n VISUALIZE_ROSE_CONTRIBUTION: 'Contribution',\n VISUALIZE_ROSE_CONTRIBUTION_DESC: 'Compute the contribution to the total',\n VISUALIZE_ROSE_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ROSE_DATE_TIME_FORMAT: 'Date Time Format',\n VISUALIZE_ROSE_AREA_PROPORTIONS: 'Use Area Proportions',\n VISUALIZE_ROSE_AREA_PROPORTIONS_DESC: 'Check if the Rose Chart should use segment area instead of segment radius for proportioning',\n\n /*---------------sankey--------------------*/\n\n VISUALIZE_SANKEY_GROUP_BY: 'Source / Target',\n VISUALIZE_SANKEY_GROUP_BY_DESC: 'Choose a source and a target',\n VISUALIZE_SANKEY_ROW_LIMIT_DESC: 'Limiting rows may result in incomplete data and misleading charts. Consider filtering or grouping source/target names instead.',\n VISUALIZE_SANKEY_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_SANKEY_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n\n /*---------------sunburst--------------------*/\n\n VISUALIZE_SUNBURST_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_SUNBURST_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_SUNBURST_PRIMARY_METRIC: 'Primary Metric',\n VISUALIZE_SUNBURST_PRIMARY_METRIC_DESC: 'The primary metric is used to define the arc segment sizes',\n VISUALIZE_SUNBURST_SECONDARY_METRIC: 'Secondary Metric',\n VISUALIZE_SUNBURST_SECONDARY_METRIC_DESC: '[optional] this secondary metric is used to define the color as a ratio against the primary metric.When omitted, the color is categorical and based on labels',\n VISUALIZE_SUNBURST_COLOR_SCHEMA_DESC: 'When only a primary metric is provided, a categorical color scale is used.',\n VISUALIZE_SUNBURST_LINEAR_COLOR_SCHEMA_DESC: 'When a secondary metric is provided, a linear color scale is used.',\n VISUALIZE_SUNBURST_HIERARCHY: 'Hierarchy',\n VISUALIZE_SUNBURST_HIERARCHY_DESC: 'This defines the level of the hierarchy',\n\n /*---------------Tree map--------------------*/\n\n VISUALIZE_TREE_MAP_RATIO: 'Ratio',\n VISUALIZE_TREE_MAP_RATIO_DESC: 'Target aspect ratio for treemap tiles.',\n VISUALIZE_TREE_MAP_NUMBER_FORMAT: 'Number format',\n\n /*---------------World map--------------------*/\n\n VISUALIZE_WORLD_MAP_COUNTRY_FIELD: 'Country Field Type',\n VISUALIZE_WORLD_MAP_COUNTRY_FIELD_DESC: 'The country code standard that Superset should expect to find in the [country] column',\n VISUALIZE_WORLD_MAP_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_WORLD_MAP_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_WORLD_MAP_OPTIONS: 'Options',\n VISUALIZE_WORLD_MAP_SHOW_BUBBLES: 'Show Bubbles',\n VISUALIZE_WORLD_MAP_SHOW_BUBBLES_DESC: 'Whether to display bubbles on top of countries',\n VISUALIZE_WORLD_MAP_MAX_BUBBLE: 'Max Bubble Size',\n VISUALIZE_WORLD_MAP_COLOR_BY: 'Color by',\n VISUALIZE_WORLD_MAP_COLOR_BY_DESC: 'Choose whether a country should be shaded by the metric, or assigned a color based on a categorical color palette',\n VISUALIZE_WORLD_MAP_COUNTRY: 'Country',\n VISUALIZE_WORLD_MAP_COUNTRY_COLUMN: 'Country Column',\n VISUALIZE_WORLD_MAP_COUNTRY_COLUMN_DESC: '3 letter code of the country',\n VISUALIZE_WORLD_MAP_BUBBLE_SIZE: 'Bubble Size',\n VISUALIZE_WORLD_MAP_BUBBLE_SIZE_DESC: 'Metric that defines the size of the bubble',\n VISUALIZE_WORLD_MAP_BUBBLE_COLOR: 'Bubble Color',\n VISUALIZE_WORLD_MAP_COLOR_SCHEME: 'Country Color Scheme',\n\n /*---------------DECK GL--------------------*/\n\n VISUALIZE_DECK_MAP: 'Map',\n VISUALIZE_DECK_ADVANCED: 'Advanced',\n VISUALIZE_DECK_GEOJSON_SETTING: 'GeoJson Settings',\n VISUALIZE_DECK_GEOJSON_POINT: 'Point Radius Scale',\n\n\n VISUALIZE_DECK_ARC_START_SPATIAL: 'Start Longitude & Latitude',\n VISUALIZE_DECK_ARC_START_SPATIAL_DESC: 'Point to your spatial columns',\n VISUALIZE_DECK_ARC_END_SPATIAL: 'End Longitude & Latitude',\n VISUALIZE_DECK_ARC_ARC: 'Arc',\n VISUALIZE_DECK_ARC_TARGET_COLOR: 'Target Color',\n VISUALIZE_DECK_ARC_TARGET_COLOR_DESC: 'Color of the target location',\n VISUALIZE_DECK_ARC_CATEGORICAL_COLOR: 'Categorical Color',\n VISUALIZE_DECK_ARC_CATEGORICAL_COLOR_DESC: 'Pick a dimension from which categorical colors are defined',\n VISUALIZE_DECK_ARC_STROKE_WIDTH: 'Stroke Width',\n\n\n VISUALIZE_DECK_GRID_HEIGHT: 'Height',\n VISUALIZE_DECK_GRID_HEIGHT_DESC: 'Metric used to control height',\n VISUALIZE_DECK_GRID_SELECT_CONTROL: 'Dynamic Aggregation Function',\n VISUALIZE_DECK_GRID_SELECT_CONTROL_DESC: 'The function to use when aggregating points into groups',\n\n\n VISUALIZE_DECK_POLYGON_COLUMN: 'Polygon Column',\n VISUALIZE_DECK_POLYGON_ENCODING: 'Polygon Encoding',\n VISUALIZE_DECK_POLYGON_ELEVATION: 'Elevation',\n VISUALIZE_DECK_POLYGON_SETTING: 'Polygon Settings',\n VISUALIZE_DECK_POLYGON_OPACITY: 'Opacity',\n VISUALIZE_DECK_POLYGON_OPACITY_DESC: 'Opacity, expects values between 0 and 100',\n VISUALIZE_DECK_POLYGON_NUM_BUCKETS: 'Number of buckets to group data',\n VISUALIZE_DECK_POLYGON_NUM_BUCKETS_DESC: 'How many buckets should the data be grouped in.',\n VISUALIZE_DECK_POLYGON_BREAK_POINT: 'Bucket break points',\n VISUALIZE_DECK_POLYGON_BREAK_POINT_DESC: 'List of n+1 values for bucketing metric into n buckets.',\n VISUALIZE_DECK_POLYGON_TABLE_FILTER: 'Emit Filter Events',\n VISUALIZE_DECK_POLYGON_TABLE_FILTER_DESC: 'Whether to apply filter when items are clicked',\n VISUALIZE_DECK_POLYGON_MULTIPLE_FILTER_DESC: 'Allow sending multiple polygons as a filter event',\n VISUALIZE_DECK_POLYGON_MULTIPLE_FILTER: 'Multiple filtering',\n\n\n VISUALIZE_DECK_SCATTER_POINT_SIZE: 'Point Size',\n VISUALIZE_DECK_SCATTER_POINT_UNIT: 'Point Unit',\n VISUALIZE_DECK_SCATTER_POINT_UNIT_DESC: 'The unit of measure for the specified point radius',\n VISUALIZE_DECK_SCATTER_MINIMUM_RADIUS: 'Minimum Radius',\n VISUALIZE_DECK_SCATTER_MINIMUM_RADIUS_DESC: 'Minimum radius size of the circle, in pixels. As the zoom level changes, this insures that the circle respects this minimum radius.',\n VISUALIZE_DECK_SCATTER_MAXIMUM_RADIUS: 'Maximum Radius',\n VISUALIZE_DECK_SCATTER_MAXIMUM_RADIUS_DESC: 'Maximum radius size of the circle, in pixels. As the zoom level changes, this insures that the circle respects this maximum radius.',\n VISUALIZE_DECK_SCATTER_POINT_COLOR: 'Point Color',\n\n\n VISUALIZE_DECK_MULTI_SLICE: 'deck.gl charts',\n VISUALIZE_DECK_MULTI_SLICE_DESC: 'Pick a set of deck.gl charts to layer on top of one another',\n VISUALIZE_DECK_MULTI_SLICE_PLACE: 'Select charts',\n VISUALIZE_DECK_MULTI_SLICE_ERR: 'Error while fetching charts',\n\n\n VISUALIZE_DECK_SHARE_INFO: 'For more information about objects are in context in the scope of this function, refer to the',\n VISUALIZE_DECK_SHARE_INFO_DESC: \" source code of Superset's sandboxed parser\",\n VISUALIZE_DECK_SHARE_DISABLED_FUNC: 'This functionality is disabled in your environment for security reasons.',\n VISUALIZE_DECK_SHARE_FILTER_NULLS: 'Ignore null locations',\n VISUALIZE_DECK_SHARE_FILTER_NULLS_DESC: 'Whether to ignore locations that are null',\n VISUALIZE_DECK_SHARE_AUTO_ZOOM: 'Auto Zoom',\n VISUALIZE_DECK_SHARE_AUTO_ZOOM_DESC: 'When checked, the map will zoom to your data after each query',\n VISUALIZE_DECK_SHARE_DIMENSION: 'Dimension',\n VISUALIZE_DECK_SHARE_DIMENSION_DESC: 'Select a dimension',\n VISUALIZE_DECK_SHARE_JS_COLUMN: 'Extra data for JS',\n VISUALIZE_DECK_SHARE_JS_COLUMN_DESC: 'List of extra columns made available in Javascript functions',\n VISUALIZE_DECK_SHARE_JS_DATA: 'Javascript data interceptor',\n VISUALIZE_DECK_SHARE_JS_DATA_DESC: 'Define a javascript function that receives the data array used in the visualization and is expected to return a modified version of that array. This can be used to alter properties of the data, filter, or enrich the array.',\n VISUALIZE_DECK_SHARE_JS_TOOLTIP: 'Javascript tooltip generator',\n VISUALIZE_DECK_SHARE_JS_TOOLTIP_DESC: 'Define a function that receives the input and outputs the content for a tooltip',\n VISUALIZE_DECK_SHARE_JS_ONCLICK: 'Javascript onClick href',\n VISUALIZE_DECK_SHARE_JS_ONCLICK_DESC: 'Define a function that returns a URL to navigate to when user clicks',\n VISUALIZE_DECK_SHARE_LEGEND: 'Legend Format',\n VISUALIZE_DECK_SHARE_LEGEND_DESC: 'Choose the format for legend values',\n VISUALIZE_DECK_SHARE_LEGEND_POSITION: 'Legend Position',\n VISUALIZE_DECK_SHARE_LEGEND_POSITION_DESC: 'Choose the position of the legend',\n VISUALIZE_DECK_SHARE_LINE_COLUMN: 'Lines column',\n VISUALIZE_DECK_SHARE_LINE_COLUMN_DESC: 'The database columns that contains lines information',\n VISUALIZE_DECK_SHARE_LINE_WIDTH: 'Line width',\n VISUALIZE_DECK_SHARE_LINE_WIDTH_DESC: 'The width of the lines',\n VISUALIZE_DECK_SHARE_FILL_COLOR: 'Fill Color',\n VISUALIZE_DECK_SHARE_FILL_COLOR_DESC: ' Set the opacity to 0 if you do not want to override the color specified in the GeoJSON',\n VISUALIZE_DECK_SHARE_FILLED: 'Filled',\n VISUALIZE_DECK_SHARE_FILLED_DESC: 'Whether to fill the objects',\n VISUALIZE_DECK_SHARE_STROKE_COLOR: 'Stroke Color',\n VISUALIZE_DECK_SHARE_STROKED: 'Stroked',\n VISUALIZE_DECK_SHARE_STROKED_DESC: 'Whether to display the stroke',\n VISUALIZE_DECK_SHARE_EXTRUDED: 'Extruded',\n VISUALIZE_DECK_SHARE_EXTRUDED_DESC: 'Whether to make the grid 3D',\n VISUALIZE_DECK_SHARE_GRID_SIZE: 'Grid Size',\n VISUALIZE_DECK_SHARE_GRID_SIZE_DESC: 'Defines the grid size in pixels',\n VISUALIZE_DECK_SHARE_VIEW_PORT: 'Viewport',\n VISUALIZE_DECK_SHARE_VIEW_PORT_DESC: 'Parameters related to the view and perspective on the map',\n VISUALIZE_DECK_SHARE_LONG_LATITUDE: 'Longitude & Latitude',\n VISUALIZE_DECK_SHARE_LONG_LATITUDE_DESC: 'Point to your spatial columns',\n VISUALIZE_DECK_SHARE_POINT_SIZE: 'Point Size',\n VISUALIZE_DECK_SHARE_POINT_SIZE_DESC: 'Fixed point radius',\n VISUALIZE_DECK_SHARE_MULTIPLIER: 'Multiplier',\n VISUALIZE_DECK_SHARE_MULTIPLIER_DESC: 'Factor to multiply the metric by',\n VISUALIZE_DECK_SHARE_LINE_ENCODING: 'Lines encoding',\n VISUALIZE_DECK_SHARE_LINE_ENCODING_DESC: 'The encoding format of the lines',\n VISUALIZE_DECK_SHARE_REVERSE: 'Reverse Lat & Long',\n VISUALIZE_DECK_SHARE_MAP_STYLE: 'Map Style',\n VISUALIZE_DECK_SHARE_MAP_STYLE_DESC: 'Base layer map style',\n VISUALIZE_DECK_SHARE_GEOJSON: 'GeoJson Column',\n VISUALIZE_DECK_SHARE_GEOJSON_DESC: 'Select the geojson column',\n\n\n /*---------------NVD 3--------------------*/\n\n VISUALIZE_NVD_AREA_STACKED: 'Stacked Style',\n\n VISUALIZE_NVD_BAR_SERIES_SORT_BY: 'Series Limit Sort By',\n VISUALIZE_NVD_BAR_SERIES_SORT_BY_DESC: 'Metric used to order the limit if a series limit is present. If undefined reverts to the first metric (where appropriate).',\n VISUALIZE_NVD_BAR_SERIES_SORT_DESCENDING: 'Series Limit Sort Descending',\n VISUALIZE_NVD_BAR_SERIES_SORT_DESCENDING_DESC: 'Whether to sort descending or ascending if a series limit is present',\n\n VISUALIZE_NVD_BUBBLE_MAX_SIZE: 'Max Bubble Size',\n VISUALIZE_NVD_BUBBLE_X_LOG_SCALE: 'X Log Scale',\n VISUALIZE_NVD_BUBBLE_X_LOG_SCALE_DESC: 'Use a log scale for the X-axis',\n\n VISUALIZE_NVD_BULLET_RANGES: 'Ranges',\n VISUALIZE_NVD_BULLET_RANGES_DESC: 'Ranges to highlight with shading',\n VISUALIZE_NVD_BULLET_RANGES_LABEL: 'Range labels',\n VISUALIZE_NVD_BULLET_RANGES_LABEL_DESC: 'Labels for the ranges',\n VISUALIZE_NVD_BULLET_MARKERS: 'Markers',\n VISUALIZE_NVD_BULLET_MARKERS_DESC: 'List of values to mark with triangles',\n VISUALIZE_NVD_BULLET_MARKER_LABEL: 'Marker labels',\n VISUALIZE_NVD_BULLET_MARKER_LABEL_DESC: 'Labels for the markers',\n VISUALIZE_NVD_BULLET_MARKER_LINE: 'Marker lines',\n VISUALIZE_NVD_BULLET_MARKER_LINE_DESC: 'List of values to mark with lines',\n VISUALIZE_NVD_BULLET_MARKER_LINE_LABEL: 'Marker line labels',\n VISUALIZE_NVD_BULLET_MARKER_LINE_LABEL_DESC: 'Labels for the marker lines',\n\n VISUALIZE_NVD_DISTBAR_CONTRIBUTION: 'Contribution',\n VISUALIZE_NVD_DISTBAR_CONTRIBUTION_DESC: 'Compute the contribution to the total',\n VISUALIZE_NVD_DISTBAR_SORT_BARS: 'Sort Bars',\n VISUALIZE_NVD_DISTBAR_SORT_BARS_DESC: 'Compute the contribution to the total',\n VISUALIZE_NVD_DISTBAR_BREAKDOWNS: 'Breakdowns',\n VISUALIZE_NVD_DISTBAR_BREAKDOWNS_DESC: 'Defines how each series is broken down',\n\n VISUALIZE_NVD_DUAL_LINE_Y_AXIS_ONE: 'Y Axis 1',\n VISUALIZE_NVD_DUAL_LINE_Y_AXIS_TWO: 'Y Axis 2',\n VISUALIZE_NVD_DUAL_LINE_LEFT_AXIS_METRIC: 'Left Axis Metric',\n VISUALIZE_NVD_DUAL_LINE_LEFT_AXIS_METRIC_DESC: 'Choose a metric for left axis',\n VISUALIZE_NVD_DUAL_LINE_LEFT_AXIS_FORMAT: 'Left Axis Format',\n\n VISUALIZE_NVD_LINE_PROPAGATE: 'Propagate',\n VISUALIZE_NVD_LINE_PROPAGATE_DESC: 'Send range filter events to other charts',\n\n\n VISUALIZE_NVD_LINE_MULTI_PREFIX: 'Prefix metric name with slice name',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_DESC: 'Choose one or more charts for left axis',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS: 'Left Axis chart(s)',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_FORMAT: 'Left Axis Format',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_PLACE: 'Select charts',\n VISUALIZE_NVD_LINE_MULTI_LEFT_AXIS_ERR: 'Error while fetching charts',\n VISUALIZE_NVD_LINE_MULTI_Y_AXIS_RIGHT: 'Y Axis Right',\n VISUALIZE_NVD_LINE_MULTI_RIGHT_AXIS: 'Right Axis chart(s)',\n VISUALIZE_NVD_LINE_MULTI_RIGHT_AXIS_DESC: 'Choose one or more charts for right axis',\n\n\n VISUALIZE_NVD_PIE_NUMBER_FORMAT: 'Number format',\n VISUALIZE_NVD_PIE_NUMBER_FORMAT_DESC_ONE: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_NVD_PIE_NUMBER_FORMAT_DESC_TWO: 'Only applies when the \"Label Type\" is not set to a percentage.',\n VISUALIZE_NVD_PIE_DONUT: 'Donut',\n VISUALIZE_NVD_PIE_DONUT_DESC: 'Do you want a donut or a pie?',\n VISUALIZE_NVD_PIE_SHOW_LABELS: 'Show Labels',\n VISUALIZE_NVD_PIE_SHOW_LABELS_DESC: 'Whether to display the labels. Note that the label only displays when the the 5% threshold.',\n VISUALIZE_NVD_PIE_LABELS_OUTSIDE: 'Put labels outside',\n VISUALIZE_NVD_PIE_LABELS_OUTSIDE_DESC: 'Put the labels outside the pie?',\n\n VISUALIZE_NVD_TIME_PIVOT_FREQUENCY: 'Frequency',\n VISUALIZE_NVD_TIME_PIVOT_FREQUENCY_DESC: `The periodicity over which to pivot time. Users can provide Pandas\" offset alias. Click on the info bubble for more details on accepted \"freq\" expressions.`,\n\n VISUALIZE_NVD_CONTROLS_RIGHT_AXIS_FORMAT: 'Right Axis Format',\n VISUALIZE_NVD_CONTROLS_SHOW_MARKERS: 'Show Markers',\n VISUALIZE_NVD_CONTROLS_SHOW_MARKERS_DESC: 'Show data points as circle markers on the lines',\n VISUALIZE_NVD_CONTROLS_LEFT_MARGIN: 'Left Margin',\n VISUALIZE_NVD_CONTROLS_LEFT_MARGIN_DESC: 'Left margin, in pixels, allowing for more room for axis labels',\n VISUALIZE_NVD_CONTROLS_Y_BOUNDS: 'Y bounds',\n VISUALIZE_NVD_CONTROLS_Y_TWO_BOUNDS: 'Y 2 bounds',\n VISUALIZE_NVD_CONTROLS_Y_BOUNDS_DESC: 'Whether to display the min and max values of the Y-axis',\n VISUALIZE_NVD_CONTROLS_LINE_STYLE: 'Line Style',\n VISUALIZE_NVD_CONTROLS_LINE_STYLE_DESC: 'Line interpolation as defined by d3.js',\n VISUALIZE_NVD_CONTROLS_SHOW_RANGE: 'Show Range Filter',\n VISUALIZE_NVD_CONTROLS_SHOW_RANGE_DESC: 'Whether to display the time range interactive selector',\n VISUALIZE_NVD_CONTROLS_LEGEND: 'Legend',\n VISUALIZE_NVD_CONTROLS_LEGEND_DESC: 'Whether to display the legend (toggles)',\n VISUALIZE_NVD_CONTROLS_EXTRA: 'Extra Controls',\n VISUALIZE_NVD_CONTROLS_EXTRA_DESC: 'Whether to show extra controls or not. Extra controls include things like making mulitBar charts stacked or side by side.',\n VISUALIZE_NVD_CONTROLS_X_AXIS_LABELS: 'X Axis Label',\n VISUALIZE_NVD_CONTROLS_BOTTOM_MARGIN: 'Bottom Margin',\n VISUALIZE_NVD_CONTROLS_BOTTOM_MARGIN_DESC: 'Bottom margin, in pixels, allowing for more room for axis labels',\n VISUALIZE_NVD_CONTROLS_X_TICK_LAYOUT: 'X Tick Layout',\n VISUALIZE_NVD_CONTROLS_X_TICK_LAYOUT_DESC: 'The way the ticks are laid out on the X-axis',\n VISUALIZE_NVD_CONTROLS_Y_LOG_SCALE: 'Y Log Scale',\n VISUALIZE_NVD_CONTROLS_Y_LOG_SCALE_DESC: 'Use a log scale for the Y-axis',\n VISUALIZE_NVD_CONTROLS_X_AXIS_FORMAT: 'X Axis Format',\n VISUALIZE_NVD_CONTROLS_Y_AXIS_BOUNDS: 'Y Axis Bounds',\n VISUALIZE_NVD_CONTROLS_Y_AXIS_BOUNDS_DESC: \"Bounds for the Y-axis. When left empty, the bounds are dynamically defined based on the min/max of the data. Note that this feature will only expand the axis range. It won't narrow the data's extent.\",\n VISUALIZE_NVD_CONTROLS_Y_AXIS_TWO_BOUNDS: 'Y Axis 2 Bounds',\n VISUALIZE_NVD_CONTROLS_X_BOUNDS: 'X bounds',\n VISUALIZE_NVD_CONTROLS_X_BOUNDS_DESC: 'Whether to display the min and max values of the X-axis',\n VISUALIZE_NVD_CONTROLS_BAR_VALUES: 'Bar Values',\n VISUALIZE_NVD_CONTROLS_BAR_VALUES_DESC: 'Show the value on top of the bar',\n VISUALIZE_NVD_CONTROLS_STACKED_BARS: 'Stacked Bars',\n VISUALIZE_NVD_CONTROLS_REDUCE_X_TICKS: 'Reduce X ticks',\n VISUALIZE_NVD_CONTROLS_REDUCE_X_TICKS_DESC: 'Reduces the number of X-axis ticks to be rendered. If true, the x-axis will not overflow and labels may be missing. If false, a minimum width will be applied to columns and the width may overflow into an horizontal scroll.',\n VISUALIZE_NVD_CONTROLS_Y_AXIS_LABEL: 'Y Axis Label',\n VISUALIZE_NVD_CONTROLS_CONTRIBUTION: 'Contribution',\n VISUALIZE_NVD_CONTROLS_CONTRIBUTION_DESC: 'Compute the contribution to the total',\n\n /*---------------E CHARTS--------------------*/\n\n\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_DISPLAY_SETTING: 'Display settings',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_SUBHEADER: 'Subheader',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_SUBHEADER_DESC: 'Description text that shows up below your Big Number',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_FORCE_DATE: 'Force date format',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_FORCE_DATE_DESC: 'Use date formatting even when metric value is not a timestamp',\n VISUALIZE_ECHARTS_BIGNUMBER_TOTAL_NUMBER_FORMAT: 'Number format',\n\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_OPTIONS: 'Options',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_LAG: 'Comparison Period Lag',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_LAG_DESC: 'Based on granularity, number of time periods to compare against',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_SUFFIX: 'Comparison suffix',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_COMPARE_SUFFIX_DESC: 'Suffix to apply after the percentage display',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TIMESTAMP: 'Show Timestamp',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TIMESTAMP_DESC: 'Whether to display the timestamp',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TREND_LINE: 'Show Trend Line',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_SHOW_TREND_LINE_DESC: 'Whether to display the trend line',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_START_Y_AXIS: 'Start y-axis at 0',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_START_Y_AXIS_DESC: 'Start y-axis at zero. Uncheck to start y-axis at minimum value in the data.',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FIX_SELECT_TIME: 'Fix to selected Time Range',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FIX_SELECT_TIME_DESC: 'Fix the trend line to the full time range specified in case filtered results do not include the start or end dates',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_DATE_FORMAT: 'Date format',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_TEMPORAL: 'TEMPORAL X-AXIS',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FORCE_DATE_FORMAT: 'Force date format',\n VISUALIZE_ECHARTS_BIGNUMBER_TRENDLINE_FORCE_DATE_FORMAT_DESC: 'Use date formatting even when metric value is not a timestamp',\n\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_FONT_SIZE: 'Big Number Font Size',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_SUBHEADER_FONT_SIZE: 'Subheader Font Size',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_TINY: 'Tiny',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_SMALL: 'Small',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_NORMAL: 'Normal',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_LARGE: 'Large',\n VISUALIZE_ECHARTS_BIGNUMBER_CONTROLS_HUGE: 'Huge',\n\n VISUALIZE_ECHARTS_BOXPLOT_WHISKER_OPTIONS: 'Whisker/outlier options',\n VISUALIZE_ECHARTS_BOXPLOT_WHISKER_OPTIONS_DESC: 'Determines how whiskers and outliers are calculated.',\n VISUALIZE_ECHARTS_BOXPLOT_X_TICKS: 'X Tick Layout',\n VISUALIZE_ECHARTS_BOXPLOT_X_TICKS_DESC: 'The way the ticks are laid out on the X-axis',\n VISUALIZE_ECHARTS_BOXPLOT_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ECHARTS_BOXPLOT_NUMBER_FORMAT_DESC_ONE: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_BOXPLOT_NUMBER_FORMAT_DESC_TWO: 'Only applies when \"Label Type\" is set to show values.',\n VISUALIZE_ECHARTS_BOXPLOT_DATE_FORMAT: 'Date format',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS: 'Dimensions',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS_DESC: 'Categories to group by on the x-axis.',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS_ACROSS: 'Distribute across',\n VISUALIZE_ECHARTS_BOXPLOT_DIMENSIONS_ACROSS_DESC: 'Columns to calculate distribution across.',\n\n\n VISUALIZE_ECHARTS_FUNNEL_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_ECHARTS_FUNNEL_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_ECHARTS_FUNNEL_LABELS: 'Labels',\n VISUALIZE_ECHARTS_FUNNEL_LABELS_TYPE: 'Labels type',\n VISUALIZE_ECHARTS_FUNNEL_LABELS_TYPE_DESC: 'What should be shown on the label?',\n VISUALIZE_ECHARTS_FUNNEL_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ECHARTS_FUNNEL_NUMBER_FORMAT_DESC_ONE: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_FUNNEL_NUMBER_FORMAT_DESC_TWO: 'Only applies when \"Label Type\" is set to show values.',\n VISUALIZE_ECHARTS_FUNNEL_SHOW_LABELS: 'Show Labels',\n VISUALIZE_ECHARTS_FUNNEL_SHOW_LABELS_DESC: 'Whether to display the labels.',\n\n VISUALIZE_ECHARTS_GAUGE_GROUP_BY_DESC: 'Columns to group by',\n VISUALIZE_ECHARTS_GAUGE_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_ECHARTS_GAUGE_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_ECHARTS_GAUGE_GENERAL: 'General',\n VISUALIZE_ECHARTS_GAUGE_MIN_DESC: 'Minimum value on the gauge axis',\n VISUALIZE_ECHARTS_GAUGE_MAX_DESC: 'Maximum value on the gauge axis',\n VISUALIZE_ECHARTS_GAUGE_STAT_ANGLE: 'Start angle',\n VISUALIZE_ECHARTS_GAUGE_STAT_ANGLE_DESC: 'Angle at which to start progress axis',\n VISUALIZE_ECHARTS_GAUGE_END_ANGLE: 'End angle',\n VISUALIZE_ECHARTS_GAUGE_END_ANGLE_DESC: 'Angle at which to end progress axis',\n VISUALIZE_ECHARTS_GAUGE_FONT_SIZE: 'Font size',\n VISUALIZE_ECHARTS_GAUGE_FONT_SIZE_DESC: 'Font size for axis labels, detail value and other text elements',\n VISUALIZE_ECHARTS_GAUGE_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ECHARTS_GAUGE_NUMBER_FORMAT_DESC: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_GAUGE_VALUE_FORMAT: 'Value format',\n VISUALIZE_ECHARTS_GAUGE_VALUE_FORMAT_DESC: 'Additional text to add before or after the value, e.g. unit',\n VISUALIZE_ECHARTS_GAUGE_SHOW_POINTER: 'Show pointer',\n VISUALIZE_ECHARTS_GAUGE_SHOW_POINTER_DESC: 'Whether to show the pointer',\n VISUALIZE_ECHARTS_GAUGE_ANIMATION: 'Animation',\n VISUALIZE_ECHARTS_GAUGE_ANIMATION_DESC: 'Whether to animate the progress and the value or just display them',\n VISUALIZE_ECHARTS_GAUGE_AXIS: 'Axis',\n VISUALIZE_ECHARTS_GAUGE_SHOW_AXIS: 'Show axis line ticks',\n VISUALIZE_ECHARTS_GAUGE_SHOW_AXIS_DESC: 'Whether to show minor ticks on the axis',\n VISUALIZE_ECHARTS_GAUGE_SHOW_SPLIT: 'Show split lines',\n VISUALIZE_ECHARTS_GAUGE_SHOW_SPLIT_DESC: 'Whether to show the split lines on the axis',\n VISUALIZE_ECHARTS_GAUGE_SHOW_PROGRESS: 'Show progress',\n VISUALIZE_ECHARTS_GAUGE_SHOW__PROGRESS_DESC: 'Whether to show the progress of gauge chart',\n VISUALIZE_ECHARTS_GAUGE_SPLIT_NUMBER: 'Split number',\n VISUALIZE_ECHARTS_GAUGE_SPLIT_NUMBER_DESC: 'Number of split segments on the axis',\n VISUALIZE_ECHARTS_GAUGE_OVERLAP: 'Overlap',\n VISUALIZE_ECHARTS_GAUGE_OVERLAP_DESC: 'Whether the progress bar overlaps when there are multiple groups of data',\n VISUALIZE_ECHARTS_GAUGE_ROUND_CAP: 'Round cap',\n VISUALIZE_ECHARTS_GAUGE_ROUND_CAP_DESC: 'Style the ends of the progress bar with a round cap',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS: 'Style the ends of the progress bar with a round cap',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_BOUNDS: 'Interval bounds',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_BOUNDS_DESC: 'Comma-separated interval bounds, e.g. 2,4,5 for intervals 0-2, 2-4 and 4-5. Last number should match the value provided for MAX.',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_COLOR: 'Interval colors',\n VISUALIZE_ECHARTS_GAUGE_INTERVALS_COLOR_DESC: 'Comma-separated color picks for the intervals, e.g. 1,2,4. Integers denote colors from the chosen color scheme and are 1-indexed. Length must be matching that of interval bounds.',\n\n VISUALIZE_ECHARTS_GRAPH_SOURCE: 'Source',\n VISUALIZE_ECHARTS_GRAPH_SOURCE_DESC: 'Name of the source nodes',\n VISUALIZE_ECHARTS_GRAPH_SOURCE_CATE: 'Source category',\n VISUALIZE_ECHARTS_GRAPH_SOURCE_CATE_DESC: 'The category of source nodes used to assign colors. If a node is associated with more than one category, only the first will be used.',\n VISUALIZE_ECHARTS_GRAPH_TARGET: 'Target',\n VISUALIZE_ECHARTS_GRAPH_TARGET_DESC: 'Name of the target nodes',\n VISUALIZE_ECHARTS_GRAPH_TARGET_CATE: 'Target category',\n VISUALIZE_ECHARTS_GRAPH_TARGET_CATE_DESC: 'Category of target nodes',\n VISUALIZE_ECHARTS_GRAPH_LAYOUT: 'Layout',\n VISUALIZE_ECHARTS_GRAPH_GRAPH_LAYOUT: 'Graph layout',\n VISUALIZE_ECHARTS_GRAPH_FORCE: 'Force',\n VISUALIZE_ECHARTS_GRAPH_CIRCULAR: 'Circular',\n VISUALIZE_ECHARTS_GRAPH_LAYOUT_TYPE: 'Layout type of graph',\n VISUALIZE_ECHARTS_GRAPH_EDGE_SYMBOLS: 'Edge symbols',\n VISUALIZE_ECHARTS_GRAPH_EDGE_SYMBOLS_DESC: 'Symbol of two ends of edge line',\n VISUALIZE_ECHARTS_GRAPH_NONE_TO_NONE: 'None -> None',\n VISUALIZE_ECHARTS_GRAPH_NONE_TO_ARROW: 'None -> Arrow',\n VISUALIZE_ECHARTS_GRAPH_CIRCLE_TO_ARROW: 'Circle -> Arrow',\n VISUALIZE_ECHARTS_GRAPH_CIRCLE_TO_CIRCLE: 'Circle -> Circle',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_NODE: 'Enable node dragging',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_NODE_DESC: 'Whether to enable node dragging in force layout mode.',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_GRAPH: 'Enable graph roaming',\n VISUALIZE_ECHARTS_GRAPH_ENABLE_GRAPH_DESC: 'Whether to enable changing graph position and scaling.',\n VISUALIZE_ECHARTS_GRAPH_DISABLED: 'Disabled',\n VISUALIZE_ECHARTS_GRAPH_SINGLE: 'Single',\n VISUALIZE_ECHARTS_GRAPH_MULTIPLE: 'Multiple',\n VISUALIZE_ECHARTS_GRAPH_SCALE_ONLY: 'Scale only',\n VISUALIZE_ECHARTS_GRAPH_MOVE_ONLY: 'Move only',\n VISUALIZE_ECHARTS_GRAPH_SCALE_AND_MOVE: 'Scale and Move',\n VISUALIZE_ECHARTS_GRAPH_NODE_SELECT: 'Node select mode',\n VISUALIZE_ECHARTS_GRAPH_NODE_SELECT_DESC: 'Allow node selections',\n VISUALIZE_ECHARTS_GRAPH_LABEL_THRESHOLD: 'Label threshold',\n VISUALIZE_ECHARTS_GRAPH_LABEL_THRESHOLD_DESC: 'Minimum value for label to be displayed on graph.',\n VISUALIZE_ECHARTS_GRAPH_NODE_SIZE: 'Node size',\n VISUALIZE_ECHARTS_GRAPH_NODE_SIZE_DESC: 'Median node size, the largest node will be 4 times larger than the smallest',\n VISUALIZE_ECHARTS_GRAPH_EDGE_WIDTH: 'Edge width',\n VISUALIZE_ECHARTS_GRAPH_EDGE_WIDTH_DESC: 'Median edge width, the thickest edge will be 4 times thicker than the thinnest.',\n VISUALIZE_ECHARTS_GRAPH_EDGE_LENGTH: 'Edge length',\n VISUALIZE_ECHARTS_GRAPH_EDGE_LENGTH_DESC: 'Edge length between nodes',\n VISUALIZE_ECHARTS_GRAPH_GRAVITY: 'Gravity',\n VISUALIZE_ECHARTS_GRAPH_GRAVITY_DESC: 'Strength to pull the graph toward center',\n VISUALIZE_ECHARTS_GRAPH_REPULSION: 'Repulsion',\n VISUALIZE_ECHARTS_GRAPH_REPULSION_DESC: 'Repulsion strength between nodes',\n VISUALIZE_ECHARTS_GRAPH_FRICTION: 'Friction',\n VISUALIZE_ECHARTS_GRAPH_FRICTION_DESC: 'Friction between nodes',\n\n\n VISUALIZE_ECHARTS_MIXED_SORT_DESCENDING: 'Sort Descending',\n VISUALIZE_ECHARTS_MIXED_SORT_DESCENDING_DESC: 'Whether to sort descending or ascending',\n VISUALIZE_ECHARTS_MIXED_SERIES_TYPE: 'Series type',\n VISUALIZE_ECHARTS_MIXED_SERIES_TYPE_DESC: 'Series chart type (line, bar etc)',\n VISUALIZE_ECHARTS_MIXED_AREA_CHART: 'Area chart',\n VISUALIZE_ECHARTS_MIXED_AREA_CHART_DESC: 'Draw area under curves. Only applicable for line types.',\n VISUALIZE_ECHARTS_MIXED_SHOW_VALUES: 'Show Values',\n VISUALIZE_ECHARTS_MIXED_SHOW_VALUES_DESC: 'Whether to display the numerical values within the cells',\n VISUALIZE_ECHARTS_MIXED_OPACITY: 'Opacity',\n VISUALIZE_ECHARTS_MIXED_OPACITY_DESC: 'Opacity of area chart.',\n VISUALIZE_ECHARTS_MIXED_MARKER: 'Marker',\n VISUALIZE_ECHARTS_MIXED_MARKER_DESC: 'Draw a marker on data points. Only applicable for line types.',\n VISUALIZE_ECHARTS_MIXED_MARKER_SIZE: 'Marker size',\n VISUALIZE_ECHARTS_MIXED_MARKER_SIZE_DESC: 'Size of marker. Also applies to forecast observations.',\n VISUALIZE_ECHARTS_MIXED_PRIMARY: 'Primary',\n VISUALIZE_ECHARTS_MIXED_SECONDARY: 'Secondary',\n VISUALIZE_ECHARTS_MIXED_SECONDARY_DESC: 'Primary or secondary y-axis',\n VISUALIZE_ECHARTS_MIXED_SHARE_FIELDS: 'Shared query fields',\n VISUALIZE_ECHARTS_MIXED_QUERY_A: 'Query A',\n VISUALIZE_ECHARTS_MIXED_QUERY_B: 'Query B',\n VISUALIZE_ECHARTS_MIXED_ROTATE_AXIS: 'Rotate x axis label',\n VISUALIZE_ECHARTS_MIXED_MINOR_SPLIT_DESC: 'Draw split lines for minor y-axis ticks',\n VISUALIZE_ECHARTS_MIXED_TRUNCATE_Y_AXIS: 'Truncate Y Axis',\n VISUALIZE_ECHARTS_MIXED_TRUNCATE_Y_AXIS_DESC: 'Truncate Y Axis. Can be overridden by specifying a min or max bound.',\n VISUALIZE_ECHARTS_MIXED_Y_AXIS_BOUND: 'Y Axis Bounds',\n VISUALIZE_ECHARTS_MIXED_Y_AXIS_BOUND_DESC: \"Bounds for the Y-axis. When left empty, the bounds are dynamically defined based on the min/max of the data. Note that this feature will only expand the axis range. It won't   narrow the data's extent.\",\n VISUALIZE_ECHARTS_MIXED_PRIMARY_Y_AXIS: 'Primary y-axis format',\n VISUALIZE_ECHARTS_MIXED_LOGARITHMIC: 'Logarithmic y-axis',\n VISUALIZE_ECHARTS_MIXED_LOGARITHMIC_DESC: 'Logarithmic scale on primary y-axis',\n VISUALIZE_ECHARTS_MIXED_LOGARITHMIC_SECONDARY_DESC: 'Logarithmic scale on secondary y-axis',\n VISUALIZE_ECHARTS_MIXED_SECONDARY_Y_AXIS: 'Secondary y-axis format',\n VISUALIZE_ECHARTS_MIXED_SECONDARY_Y_AXIS_TITLE: 'Secondary y-axis title',\n\n VISUALIZE_ECHARTS_PIE_SORT_METRIC: 'Sort by metric',\n VISUALIZE_ECHARTS_PIE_SORT_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_ECHARTS_PIE_PERCENTAGE_THRESHOLD: 'Percentage threshold',\n VISUALIZE_ECHARTS_PIE_PERCENTAGE_THRESHOLD_DESC: 'Minimum threshold in percentage points for showing labels.',\n VISUALIZE_ECHARTS_PIE_LABELS: 'Labels',\n VISUALIZE_ECHARTS_PIE_LABELS_TYPE: 'Label Type',\n VISUALIZE_ECHARTS_PIE_LABELS_TYPE_DESC: 'What should be shown on the label?',\n VISUALIZE_ECHARTS_PIE_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ECHARTS_PIE_NUMBER_FORMAT_DESC_ONE: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_PIE_NUMBER_FORMAT_DESC_TWO: 'Only applies when \"Label Type\" is set to show values.',\n VISUALIZE_ECHARTS_PIE_DATE_FORMAT: 'Date format',\n VISUALIZE_ECHARTS_PIE_SHOW_LABELS: 'Show Labels',\n VISUALIZE_ECHARTS_PIE_SHOW_LABELS_DESC: 'Whether to display the labels.',\n VISUALIZE_ECHARTS_PIE_SHOW_TOTAL: 'Show Total',\n VISUALIZE_ECHARTS_PIE_SHOW_TOTAL_DESC: 'Whether to display the aggregate count',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_OUTSIDE: 'Put labels outside',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_OUTSIDE_DESC: 'Put the labels outside of the pie?',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_LINE: 'Label Line',\n VISUALIZE_ECHARTS_PIE_PUT_LABELS_LINE_DESC: 'Draw line from Pie to label when labels outside?',\n VISUALIZE_ECHARTS_PIE_SHAPE: 'Pie shape',\n VISUALIZE_ECHARTS_PIE_OUTER_RADIUS: 'Outer Radius',\n VISUALIZE_ECHARTS_PIE_OUTER_RADIUS_DESC: 'Outer edge of Pie chart',\n VISUALIZE_ECHARTS_PIE_INNER_RADIUS: 'Inner radius of donut hole',\n VISUALIZE_ECHARTS_PIE_INNER_RADIUS_DESC: 'Outer edge of Pie chart',\n VISUALIZE_ECHARTS_PIE_DONUT: 'Donut',\n VISUALIZE_ECHARTS_PIE_DONUT_DESC: 'Do you want a donut or a pie?',\n\n VISUALIZE_ECHARTS_RADAR_MAX_DESC: 'The maximum value of metrics. It is an optional configuration',\n VISUALIZE_ECHARTS_RADAR_LABELS: 'Labels',\n VISUALIZE_ECHARTS_RADAR_LABEL_POSITION: 'Label position',\n VISUALIZE_ECHARTS_RADAR_SHOW_LABELS: 'Show Labels',\n VISUALIZE_ECHARTS_RADAR_SHOW_LABELS_DESC: 'Whether to display the labels.',\n VISUALIZE_ECHARTS_RADAR_LABELS_TYPE: 'Label Type',\n VISUALIZE_ECHARTS_RADAR_LABELS_TYPE_DESC: 'What should be shown on the label?',\n VISUALIZE_ECHARTS_RADAR_RADAR: 'Radar',\n VISUALIZE_ECHARTS_RADAR_COLUMN_CONFIG: 'Customize Metrics',\n VISUALIZE_ECHARTS_RADAR_COLUMN_CONFIG_DESC: 'Further customize how to display each metric',\n VISUALIZE_ECHARTS_RADAR_CIRCLE_SHAPE: 'Circle radar shape',\n VISUALIZE_ECHARTS_RADAR_CIRCLE_SHAPE_DESC: \"Radar render type, whether to display 'circle' shape.\",\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SERIES: 'Series Style',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SERIES_DESC: 'Series chart type (line, bar etc)',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_OPACITY: 'Area chart opacity',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_OPACITY_DESC: 'Opacity of Area Chart. Also applies to confidence band.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_STACK: 'Stacked Style',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_STACK_DESC: 'Stack series on top of each other',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SHOW_EXTRA: 'Extra Controls',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_SHOW_EXTRA_DESC: 'Whether to show extra controls or not. Extra controls include things like making mulitBar charts stacked or side by side.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET: 'Marker',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET_DESC: 'Draw a marker on data points. Only applicable for line types.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET_SIZE: 'Marker Size',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MARKET_SIZE_DESC: 'Size of marker. Also applies to forecast observations.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_X_AXIS: 'X Axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_X_AXIS_DESC: 'When using other than adaptive formatting, labels may overlap.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_ROTATE_X_AXIS: 'Rotate x axis label',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_LOGARITHMIC_Y_AXIS: 'Logarithmic y-axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_LOGARITHMIC_Y_AXIS_DESC: 'Logarithmic y-axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_MINOR_SPLIT_DESC: 'Draw split lines for minor y-axis ticks',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_TRUNCATE_Y_AXIS: 'Truncate Y Axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_TRUNCATE_Y_AXIS_DESC: 'Truncate Y Axis. Can be overridden by specifying a min or max bound.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_Y_AXIS_BOUNDS: 'Y Axis Bounds',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_AREA_Y_AXIS_BOUNDS_DESC: \"Bounds for the Y-axis. When left empty, the bounds are dynamically defined based on the min/max of the data. Note that this feature will only expand the axis range. It won't narrow the data's extent.\",\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_X_AXIS_MARGIN: 'AXIS TITLE MARGIN',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_AXIS_POSITION: 'AXIS TITLE POSITION',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_AXIS_TIME_DESC: 'When using other than adaptive formatting, labels may overlap.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT: 'Series Limit Sort By',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT_DESC: 'Metric used to order the limit if a series limit is present. If undefined reverts to the first metric (where appropriate).',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT_DESCENDING: 'Series Limit Sort Descending',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_BAR_SERIES_LIMIT_DESCENDING_DESC: 'Whether to sort descending or ascending if a series limit is present',\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_SERIES_STYLE: 'Series Style',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_SERIES_STYLE_DESC: 'Series chart type (line, bar etc)',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_AREA_CHART: 'Area Chart',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_AREA_CHART_DESC: 'Draw area under curves. Only applicable for line types.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_OPACITY: 'Area chart opacity',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_OPACITY_DESC: 'Opacity of Area Chart. Also applies to confidence band.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER: 'Marker',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER_DESC: 'Draw a marker on data points. Only applicable for line types.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER_SIZE: 'Marker Size',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MARKER_SIZE_DESC: 'Size of marker. Also applies to forecast observations.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_DATA_ZOOM: 'Data Zoom',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_DATA_ZOOM_DESC: 'Enable data zooming controls',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_X_AXIS: 'X Axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_X_AXIS_TIME_DESC: 'When using other than adaptive formatting, labels may overlap.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_ROTATE_X: 'Rotate x axis label',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_LOGARITHMIC: 'Logarithmic y-axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_MINOR_SPLIT: 'Draw split lines for minor y-axis ticks',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_TRUNCATE_Y_AXIS: 'Truncate Y Axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_TRUNCATE_Y_AXIS_DESC: 'Truncate Y Axis. Can be overridden by specifying a min or max bound.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_Y_AXIS_BOUNDS: 'Y Axis Bounds',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_LINE_Y_AXIS_BOUNDS_DESC: \"Bounds for the Y-axis. When left empty, the bounds are dynamically defined based on the min/max of the data. Note that this feature will only expand the axis range. It won't narrow the data's extent.\",\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER: 'Marker',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER_DESC: 'Draw a marker on data points. Only applicable for line types.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER_SIZE: 'Marker Size',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_MARKER_SIZE_DESC: 'Size of marker. Also applies to forecast observations.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_DATA_ZOOM: 'Data Zoom',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_DATA_ZOOM_DESC: 'Enable data zooming controls',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_X_AXIS_DESC: 'When using other than adaptive formatting, labels may overlap.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SCATTER_ROTATE: 'Rotate x axis label',\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SMOOTH_LINE_X_AXIS: 'X Axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_REGULAR_SMOOTH_LINE_X_AXIS_DESC: 'X Axis',\n\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_STEP_STYLE: 'Step type',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_STEP_STYLE_DESC: 'Defines whether the step should appear at the beginning, middle or end between two data points',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_AREA_CHART: 'Area Chart',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_AREA_CHART_DESC: 'Draw area under curves. Only applicable for line types.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_OPACITY: 'Area chart opacity',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_OPACITY_DESC: 'Opacity of Area Chart. Also applies to confidence band.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER: 'Marker',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER_DESC: 'Draw a marker on data points. Only applicable for line types.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER_SIZE: 'Marker Size',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_MARKER_SIZE_DESC: 'Size of marker. Also applies to forecast observations.',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_DATA_ZOOM: 'Data Zoom',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_DATA_ZOOM_DESC: 'Enable data zooming controls',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_X_AXIS: 'X Axis',\n VISUALIZE_ECHARTS_RADAR_TIME_SERIES_STEP_X_AXIS_DESC: 'When using other than adaptive formatting, labels may overlap.',\n\n VISUALIZE_ECHARTS_TREE_ID: 'Id',\n VISUALIZE_ECHARTS_TREE_ID_DESC: 'Id',\n VISUALIZE_ECHARTS_TREE_PARENT: 'Parent',\n VISUALIZE_ECHARTS_TREE_PARENT_DESC: 'Name of the column containing the id of the parent node',\n VISUALIZE_ECHARTS_TREE_NAME: 'Name',\n VISUALIZE_ECHARTS_TREE_NAME_DESC: 'Optional name of the data column.',\n VISUALIZE_ECHARTS_TREE_ROOT_ID: 'Root node id',\n VISUALIZE_ECHARTS_TREE_ROOT_ID_DESC: 'Id of root node of the tree.',\n VISUALIZE_ECHARTS_TREE_METRICS_DESC: 'Metric for node values',\n VISUALIZE_ECHARTS_TREE_LAYOUT: 'Layout',\n VISUALIZE_ECHARTS_TREE_TREE_LAYOUT: 'Tree layout',\n VISUALIZE_ECHARTS_TREE_TREE_LAYOUT_DESC: 'Layout type of tree',\n VISUALIZE_ECHARTS_TREE_TREE_ORTHOGONAL: 'Orthogonal',\n VISUALIZE_ECHARTS_TREE_TREE_RADIAL: 'Radial',\n VISUALIZE_ECHARTS_TREE_TREE_ORIENTATION: 'Orthogonal',\n VISUALIZE_ECHARTS_TREE_LR: 'Left to Right',\n VISUALIZE_ECHARTS_TREE_RL: 'Right to Left',\n VISUALIZE_ECHARTS_TREE_TB: 'Top to Bottom',\n VISUALIZE_ECHARTS_TREE_BT: 'Bottom to Top',\n VISUALIZE_ECHARTS_TREE_NODE_LABEL: 'Node label position',\n VISUALIZE_ECHARTS_TREE_NODE_LABEL_DESC: 'Position of intermidiate node label on tree',\n VISUALIZE_ECHARTS_TREE_CHILD_POSITION: 'Child label position',\n VISUALIZE_ECHARTS_TREE_CHILD_POSITION_DESC: 'Position of child node label on tree',\n VISUALIZE_ECHARTS_TREE_EMPHASIS: 'Emphasis',\n VISUALIZE_ECHARTS_TREE_ANCESTOR: 'ancestor',\n VISUALIZE_ECHARTS_TREE_DESCENDANT: 'descendant',\n VISUALIZE_ECHARTS_TREE_EMPHASIS_DESC: 'Which relatives to highlight on hover',\n VISUALIZE_ECHARTS_TREE_SYMBOL: 'Symbol',\n VISUALIZE_ECHARTS_TREE_EMPTY_CIRCLE: 'Empty circle',\n VISUALIZE_ECHARTS_TREE_CIRCLE: 'Circle',\n VISUALIZE_ECHARTS_TREE_RECTANGLE: 'Rectangle',\n VISUALIZE_ECHARTS_TREE_TRIANGLE: 'Triangle',\n VISUALIZE_ECHARTS_TREE_DIAMOND: 'Diamond',\n VISUALIZE_ECHARTS_TREE_PIN: 'Pin',\n VISUALIZE_ECHARTS_TREE_ARROW: 'Arrow',\n VISUALIZE_ECHARTS_TREE_NONE: 'None',\n VISUALIZE_ECHARTS_TREE_LAYOUT_TYPE: 'Layout type of tree',\n VISUALIZE_ECHARTS_TREE_SYMBOL_SIZE: 'Symbol size',\n VISUALIZE_ECHARTS_TREE_SYMBOL_SIZE_DESC: 'Size of edge symbols',\n VISUALIZE_ECHARTS_TREE_ROAM: 'Enable graph roaming',\n VISUALIZE_ECHARTS_TREE_ROAM_DESC: 'Whether to enable changing graph position and scaling.',\n VISUALIZE_ECHARTS_TREE_DISABLED: 'Disabled',\n VISUALIZE_ECHARTS_TREE_SCALE_ONLY: 'Scale only',\n VISUALIZE_ECHARTS_TREE_MOVE_ONLY: 'Move only',\n VISUALIZE_ECHARTS_TREE_SCALE_MOVE: 'Scale and Move',\n\n\n VISUALIZE_ECHARTS_TREE_MAP_SORT_BY_METRIC: 'Sort by metric',\n VISUALIZE_ECHARTS_TREE_MAP_SORT_BY_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_LABELS: 'Show Labels',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_LABELS_DESC: 'Whether to display the labels.',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_UPPER_LABELS: 'Show Upper Labels',\n VISUALIZE_ECHARTS_TREE_MAP_SHOW_UPPER_LABELS_DESC: 'Show labels when the node has children.',\n VISUALIZE_ECHARTS_TREE_MAP_LABELS_TYPE: 'Label Type',\n VISUALIZE_ECHARTS_TREE_MAP_LABELS_TYPE_DESC: 'What should be shown on the label?',\n VISUALIZE_ECHARTS_TREE_MAP_NUMBER_FORMAT: 'Number format',\n VISUALIZE_ECHARTS_TREE_MAP_DATE_FORMAT: 'Date format',\n VISUALIZE_ECHARTS_TREE_MAP_NUMBER_FORMAT_DESC_ONE: 'D3 format syntax: https://github.com/d3/d3-format',\n VISUALIZE_ECHARTS_TREE_MAP_NUMBER_FORMAT_DESC_TWO: 'Only applies when \"Label Type\" is set to show values.',\n\n VISUALIZE_ECHARTS_TREE_MAP_CONTROLS_TOTAL: 'Only Total',\n VISUALIZE_ECHARTS_TREE_MAP_CONTROLS_TOTAL_DESC: 'Only show the total value on the stacked chart, and not show on the selected category',\n VISUALIZE_ECHARTS_TREE_MAP_PERCENTAGE: 'Percentage threshold',\n VISUALIZE_ECHARTS_TREE_MAP_PERCENTAGE_DESC: 'Minimum threshold in percentage points for showing labels.',\n\n VISUALIZE_PIVOT_TABLE_COLUMN: 'Columns',\n VISUALIZE_PIVOT_TABLE_COLUMN_DESC: 'Columns to group by on the columns',\n VISUALIZE_PIVOT_TABLE_ROWS: 'Rows',\n VISUALIZE_PIVOT_TABLE_ROWS_DESC: 'Columns to group by on the rows',\n VISUALIZE_PIVOT_TABLE_APPLY_METRIC: 'Apply metrics on',\n VISUALIZE_PIVOT_TABLE_APPLY_METRIC_DESC: 'Use metrics as a top level group for columns or for rows',\n VISUALIZE_PIVOT_TABLE_CELL_LIMIT: 'Cell limit',\n VISUALIZE_PIVOT_TABLE_CELL_LIMIT_DESC: 'Limits the number of cells that get retrieved.',\n VISUALIZE_PIVOT_TABLE_SERIES_LIMIT_DESC: 'Metric used to define how the top series are sorted if a series or cell limit is present. If undefined reverts to the first metric (where appropriate).',\n VISUALIZE_PIVOT_TABLE_SORT_DESCENDING: 'Sort Descending',\n VISUALIZE_PIVOT_TABLE_SORT_DESCENDING_DESC: 'Whether to sort descending or ascending',\n VISUALIZE_PIVOT_TABLE_AGGREGATION_FUNCTION: 'Aggregation function',\n VISUALIZE_PIVOT_TABLE_AGGREGATION_FUNCTION_DESC: 'Aggregate function to apply when pivoting and computing the total rows and columns',\n VISUALIZE_PIVOT_TABLE_SHOW_ROW_TOTAL: 'Show rows total',\n VISUALIZE_PIVOT_TABLE_SHOW_ROW_TOTAL_DESC: 'Display row level total',\n VISUALIZE_PIVOT_TABLE_SHOW_COLUMNS_TOTAL: 'Show columns total',\n VISUALIZE_PIVOT_TABLE_SHOW_COLUMNS_TOTAL_DESC: 'Display column level total',\n VISUALIZE_PIVOT_TABLE_TRANSPOSE_PIVOT: 'Transpose pivot',\n VISUALIZE_PIVOT_TABLE_TRANSPOSE_PIVOT_DESC: 'Swap rows and columns',\n VISUALIZE_PIVOT_TABLE_COMBINE_METRICS: 'Combine metrics',\n VISUALIZE_PIVOT_TABLE_COMBINE_METRICS_DESC: 'Display metrics side by side within each column, as opposed to each column being displayed side by side for each metric.',\n VISUALIZE_PIVOT_TABLE_OPTIONS: 'Options',\n VISUALIZE_PIVOT_TABLE_VALUES: 'Value format',\n VISUALIZE_PIVOT_TABLE_DATE_FORMAT: 'Date format',\n VISUALIZE_PIVOT_TABLE_DATE_FORMAT_DESC: 'D3 time format for datetime columns',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS: 'Sort rows by',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_KEY_A_TO_Z: 'key a-z',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_KEY_Z_TO_A: 'key z-a',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_VALUE_A_TO_Z: 'value ascending',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHOICE_VALUE_Z_TO_Z: 'value descending',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_ORDER: 'Change order of rows.',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_AVAILABLE: 'Available sorting modes:',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_BY_KEY: 'By key: use row names as sorting key',\n VISUALIZE_PIVOT_TABLE_SORT_ROWS_CHANGE_BY_VALUE: 'By value: use metric values as sorting key',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_BY: 'Sort columns by',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_ORDER: 'Change order of columns.',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_AVAILABLE: 'Available sorting modes:',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_BY_KEY: 'By key: use column names as sorting key',\n VISUALIZE_PIVOT_TABLE_SORT_COLUMNS_CHANGE_BY_VALUE: 'By value: use metric values as sorting key',\n VISUALIZE_PIVOT_TABLE_ROWS_SUBTOTAL_POSITION: 'Rows subtotal position',\n VISUALIZE_PIVOT_TABLE_ROWS_SUBTOTAL_POSITION_DESC: 'Position of row level subtotal',\n VISUALIZE_PIVOT_TABLE_COLUMNS_SUBTOTAL_POSITION: 'Columns subtotal position',\n VISUALIZE_PIVOT_TABLE_COLUMNS_SUBTOTAL_POSITION_DESC: 'Position of column level subtotal',\n VISUALIZE_PIVOT_TABLE_CONDITIONAL: 'Conditional formatting',\n VISUALIZE_PIVOT_TABLE_CONDITIONAL_DESC: 'Apply conditional color formatting to metrics',\n\n VISUALIZE_TABLE_STATE: 'Group By, Metrics or Percentage Metrics must have a value',\n VISUALIZE_TABLE_MUST_VALUE: 'must have a value',\n VISUALIZE_TABLE_PERCENTAGE: 'Percentage metrics',\n VISUALIZE_TABLE_PERCENTAGE_DESC: 'Metrics for which percentage of total are to be displayed. Calculated from only data within the row limit.',\n VISUALIZE_TABLE_ORDERING: 'Ordering',\n VISUALIZE_TABLE_ORDERING_DESC: 'Order results by selected columns',\n VISUALIZE_TABLE_SERVER_PAGINATION: 'Server pagination',\n VISUALIZE_TABLE_SERVER_PAGINATION_DESC: 'Enable server side pagination of results (experimental feature)',\n VISUALIZE_TABLE_SERVER_PAGE_LENGTH: 'Server Page Length',\n VISUALIZE_TABLE_SERVER_PAGE_LENGTH_DESC: 'Rows per page, 0 means no pagination',\n VISUALIZE_TABLE_INCLUDE_TIME: 'Include time',\n VISUALIZE_TABLE_INCLUDE_TIME_DESC: 'Whether to include the time granularity as defined in the time section',\n VISUALIZE_TABLE_SORT_DESCENDING: 'Sort descending',\n VISUALIZE_TABLE_SORT_DESCENDING_DESC: 'Whether to sort descending or ascending',\n VISUALIZE_TABLE_SHOW_TOTAL: 'Show totals',\n VISUALIZE_TABLE_SHOW_TOTAL_DESC: 'Show total aggregations of selected metrics. Note that row limit does not apply to the result.',\n VISUALIZE_TABLE_TIMESTAMP_FORMAT: 'Timestamp format',\n VISUALIZE_TABLE_TIMESTAMP_DESC: 'D3 time format for datetime columns',\n VISUALIZE_TABLE_PAGE_LENGTH: 'Page length',\n VISUALIZE_TABLE_PAGE_LENGTH_DESC: 'Rows per page, 0 means no pagination',\n VISUALIZE_TABLE_SEARCH_BOX: 'Search box',\n VISUALIZE_TABLE_SEARCH_BOX_DESC: 'Whether to include a client-side search box',\n VISUALIZE_TABLE_CELL_BARS: 'Cell bars',\n VISUALIZE_TABLE_CELL_BARS_DESC: 'Whether to display a bar chart background in table columns',\n VISUALIZE_TABLE_ALIGN: 'Align +/-',\n VISUALIZE_TABLE_ALIGN_DESC: 'Whether to align background charts with both positive and negative values at 0',\n VISUALIZE_TABLE_COLOR: 'Color +/-',\n VISUALIZE_TABLE_COLOR_DESC: 'Whether to colorize numeric values by if they are positive or negative',\n VISUALIZE_TABLE_COLUMNS: 'Allow columns to be rearranged',\n VISUALIZE_TABLE_COLUMNS_DESC: \"Allow end user to drag-and-drop column headers to rearrange them. Note their changes won't persist for the next time they open the chart.\",\n VISUALIZE_TABLE_COLUMNS_CUSTOMIZE: 'Customize columns',\n VISUALIZE_TABLE_COLUMNS_CUSTOMIZE_DESC: 'Further customize how to display each column',\n VISUALIZE_TABLE_CONDITIONAL: 'Conditional formatting',\n VISUALIZE_TABLE_CONDITIONAL_DESC: 'Apply conditional color formatting to numeric columns',\n\n VISUALIZE_WORD_CLOUD_SORT_METRIC: 'Sort by metric',\n VISUALIZE_WORD_CLOUD_SORT_METRIC_DESC: 'Whether to sort results by the selected metric in descending order.',\n VISUALIZE_WORD_CLOUD_MINIMUM_SIZE: 'Minimum Font Size',\n VISUALIZE_WORD_CLOUD_MINIMUM_SIZE_DESC: 'Font size for the smallest value in the list',\n VISUALIZE_WORD_CLOUD_MAXIMUM_SIZE: 'Maximum Font Size',\n VISUALIZE_WORD_CLOUD_MAXIMUM_SIZE_DESC: 'Font size for the biggest value in the list',\n VISUALIZE_WORD_CLOUD_WORD_ROTATION: 'Word Rotation',\n VISUALIZE_WORD_CLOUD_WORD_ROTATION_DESC: 'Rotation to apply to words in the cloud',\n VISUALIZE_LEGEND_NAME: 'LEGEND NAME',\n}\n","import {ActionType, createAction, props} from \"@ngrx/store\";\n\nexport enum EErrorActions {\n GATEWAY_TIMEOUT = '[document] gateway timeout',\n}\n\nexport const gatewayTimeout = createAction(EErrorActions.GATEWAY_TIMEOUT, props<{error:string}>());\n\nexport type ErrorActions = | ActionType<typeof gatewayTimeout>","import {createSelector} from '@ngrx/store';\nimport { FEATURE_NAME } from '../../models/feature';\nimport {IAppState} from \"../state/app.state\";\n\nconst righbarState = (state: IAppState) => (state as any)[FEATURE_NAME]?.isShowRightbar;\n\nexport const rightbarSelector = createSelector(righbarState, state => state?.isShowRightbar);\n","import {createSelector} from '@ngrx/store';\nimport { FEATURE_NAME } from '../../models/feature';\nimport {IAppState} from \"../state/app.state\";\n\nconst dataSendState = (state: IAppState) => (state as any)[FEATURE_NAME]?.dataSend;\n\nexport const dataSendSelector = createSelector(dataSendState, state => state?.dataSend);\n","export const converParamsExplore = (\n  form_data: any,\n  columns: any[],\n  schemas: any[]\n) => {\n  if (form_data.viz_type === 'pivot_table') {\n    let columDate = [];\n    let arrColumns = [...form_data.groupby, ...form_data.columns];\n    for (const iterator of arrColumns) {\n      columDate = [\n        ...columDate,\n        ...columns.filter((column) => column.column_name === iterator),\n      ];\n    }\n    form_data['dateColumns'] = columDate\n      .filter((col) => col.type === 'DATE')\n      .map((col) => col.column_name);\n  }\n  if (form_data.granularity_sqla !== '') {\n    form_data['granularityType'] = schemas[form_data.granularity_sqla];\n  } else {\n    form_data['granularityType'] = '';\n  }\n  if (form_data.time_range !== 'No filter' && form_data.time_range !== '') {\n    let arrayTime = String(form_data.time_range).split(' & ');\n    form_data.from_dttm = arrayTime[0].trim() ? (arrayTime[0].trim() !== '-∞' ? new Date(arrayTime[0].trim()).getTime() : 0) : 0;\n    form_data.to_dttm = arrayTime[1].trim() ? (arrayTime[1].trim() !== '∞' ? new Date(arrayTime[1].trim()).getTime() : 0) : 0;\n  }\n  return form_data;\n};\n\nexport const converParamsData = (\n  queries: any[],\n  schemas: any[],\n  vizType: string\n) => {\n  for (const query of queries) {\n    if (query.granularity === null || query.granularity === undefined) {\n      query.granularity = '';\n    }\n    if (\n      query.granularity_sqla === null ||\n      query.granularity_sqla === undefined\n    ) {\n      query.granularity_sqla = '';\n    }\n    if (query.time_grain_sqla === null || query.time_grain_sqla === undefined) {\n      query.time_grain_sqla = '';\n    }\n    if (query.granularity !== '') {\n      query['granularityType'] = schemas[query.granularity];\n    } else {\n      query['granularityType'] = '';\n    }\n    if (query.time_range !== 'No filter' && query.time_range !== '') {\n      let arrayTime = String(query.time_range).split(' & ');\n      query.from_dttm = arrayTime[0].trim() ? (arrayTime[0].trim() !== '-∞' ? new Date(arrayTime[0].trim()).getTime() : 0) : 0;\n      query.to_dttm = arrayTime[1].trim() ? (arrayTime[1].trim() !== '∞' ? new Date(arrayTime[1].trim()).getTime() : 0) : 0;\n    }\n    if (vizType === 'box_plot') {\n      for (const column of query.columns) {\n        if (typeof column === 'object' && column !== null) {\n          let index = query.columns.indexOf(column);\n          query.columns[index] = column.label;\n        }\n      }\n    }\n  }\n  return queries;\n};\n\nexport const convertParamsCommon = (form_data: any) => {\n  if (form_data.granularity === null || form_data.granularity === undefined) {\n    form_data.granularity = '';\n  }\n  if (\n    form_data.granularity_sqla === null ||\n    form_data.granularity_sqla === undefined\n  ) {\n    form_data.granularity_sqla = '';\n  }\n  if (\n    form_data.time_grain_sqla === null ||\n    form_data.time_grain_sqla === undefined\n  ) {\n    form_data.time_grain_sqla = '';\n  }\n  return form_data;\n};\n\nexport const convertDataRenderDeckGLMultiLayer = (\n  arrLayer: any[],\n  ErrorMessage: any,\n  arrDataQueries: any[]\n) => {\n  arrLayer.forEach((element, index) => {\n    if (element.type !== ErrorMessage.TYPE) {\n      arrDataQueries.push(element);\n    }\n  });\n  arrDataQueries = arrDataQueries.filter((item) => {\n    if (item.data.length !== 0) {\n      return item;\n    }\n  });\n  return arrDataQueries;\n};\n","import {createSelector} from '@ngrx/store';\r\nimport { FEATURE_NAME } from '../../models/feature';\r\nimport {IAppState} from \"../state/app.state\";\r\n\r\nconst publishState = (state: IAppState) => (state as any)[FEATURE_NAME]?.sharedUuid;\r\n\r\nexport const publishSelector = createSelector(publishState, state => state?.sharedUuid);\r\n","import {Directive, ElementRef, HostListener} from '@angular/core';\n\n@Directive({\n  selector: '[searchString]'\n})\nexport class SearchStringDirective {\n  regex: RegExp = /[a-zA-Z0-9_\\s`!@#$%^&*()+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]*$/ig;\n  dataValue: string = '';\n  constructor(private eleRef: ElementRef) { }\n  @HostListener('input', ['$event'])\n  onInput(e) {\n    var value = e.target.value;\n    value = this.removeAccents(value?.trim());\n    if(!!value) {\n      if (this.regex.test(value)) {\n        this.eleRef.nativeElement.value = value || '';\n        this.dataValue = value || '';\n      } else {\n        this.eleRef.nativeElement.value = this.dataValue || '';\n      }\n    } else {\n      this.dataValue = '';\n    }\n  }\n\n  removeAccents(str: any) {\n    return (str as any).removeAccents();\n  }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {CoreService, ErrorMessage, iNet} from \"inet-core\";\nimport {Subscription} from \"rxjs\";\nimport {ChartService} from \"../chart.service\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {Location} from \"@angular/common\";\nimport {ChartData} from \"../../model/chart\";\n\n@Component({\n  selector: 'app-chart-select',\n  templateUrl: './chart-select.component.html',\n  styleUrls: ['./chart-select.component.scss']\n})\nexport class ChartSelectComponent implements OnInit {\n  @Output() itemOut = new EventEmitter<ChartData>();\n  @Output() cancelOut = new EventEmitter<boolean>();\n  @Input() oldChart: string;\n  @Input() isPlugin: boolean = false;\n  @ViewChild('keyword') keywordInput!: ElementRef;\n  plugin = iNet.getPluginManager();\n  btnClass: string = 'true';\n  formData: any;\n  tags: any[] = [];\n  categorys: any[] = [];\n  datasets: any[] = [];\n  charts: ChartData[] = [];\n  chartSearch: ChartData[] = [];\n  select?: any;\n  chartSelect: ChartData;\n  uuidDatasetSelect: string;\n  keyword: string = '';\n  currentSelect: string = 'Popular';\n  private subRouter: Subscription\n\n  constructor(private chartService: ChartService,\n              private router: Router,\n              private route: ActivatedRoute,\n              private location: Location,\n              private coreService: CoreService) {\n    /*    this.subRouter = this.route.paramMap.subscribe(value => {\n          console.log(`value get navigate: `, value);\n          if (value.get(`uuid`) !== '') {\n            this.uuidDatasetSelect = value.get('uuid')\n          }\n          this.idChart = value.get('vizType');\n        })*/\n  }\n\n  ngOnInit(): void {\n    this.getChartsLists();\n    /*this.initSelect();*/\n    this.onSelect();\n  }\n\n  /*  initSelect() {\n      this.select = this.currentSelect;\n      this.onActive(this.select);\n    }*/\n\n  encodeBase64(str: string) {\n    return window.btoa(unescape(encodeURIComponent(str)));\n  }\n\n  decodeBase64(str: string) {\n    return decodeURIComponent(escape(window.atob(str)));\n  }\n\n  getChartsLists() {\n    this.chartService.getChartsList().subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        this.charts = result.items.filter(value => {\n          return value.attribute.html;\n        });\n        this.initData();\n      }\n    })\n  }\n\n  initData() {\n    this.charts = this.charts.map((_item) => {\n      let attr = _item?.attribute;\n      attr._base64 = JSON.parse(this.decodeBase64(attr?.base64));\n      if (!!attr.formData) {\n        attr._formData = JSON.parse(this.decodeBase64(attr?.formData));\n      }\n      return _item;\n    }).map((_item) => {\n      let arrName: string[] = _item.attribute._base64['thumbnail'].split('/') || [];\n      _item['nameImage'] = this.getImageByUrl(arrName[arrName.length - 1]);\n      let examples: string[] = _item.attribute._base64.exampleGallery.map(value => {\n        let _url = this.getImageByUrl(value.url.slice(value.url.lastIndexOf(`/`)));\n        return _url;\n      })\n      _item['examples'] = examples;\n      return _item;\n    });\n\n    this.chartSearch = this.charts;\n\n    this.tags = Array.from(new Set(\n      this.charts.reduce((tags, chart) => [...tags, ...chart.tags[0].split(',')], [])\n        .filter(tag => tag !== 'Popular' && tag !== 'ECharts' && tag !== 'Advanced-Analytics')\n    ))\n    this.categorys = Array.from(new Set(this.charts.map((_item) => _item.type)));\n\n    const oldChart = this.chartSearch.find(item => item.name === this.oldChart)\n    if (oldChart) {\n      const index = this.charts.indexOf(oldChart)\n      if (index > 0) {\n        this.charts.splice(index, 1)\n        this.charts.unshift(oldChart)\n        this.onActive(oldChart)\n      }\n    }\n  }\n\n\n  onActive(value?: any) {\n    // console.log(value)\n    if (value?.attribute?._base64?.tags) {\n      this.chartSelect = value;\n    } else {\n      this.select = value;\n    }\n    this.disableBtnAdd();\n  }\n\n\n  search(keyword: string = '') {\n    this.select = undefined;\n    this.chartSelect = undefined;\n    if (keyword.length > 0) {\n      this.charts = this.chartSearch.filter((_item) => {\n        return _item?.attribute._base64?.name.toLowerCase().includes(this.keyword.trim().toLowerCase());\n      })\n    } else {\n      this.keyword = keyword;\n      this.onActive(this.currentSelect);\n      this.onSelect(this.currentSelect);\n    }\n    this.disableBtnAdd();\n  }\n\n  onSelect(value?: any) {\n    this.charts = this.chartSearch;\n    this.currentSelect = value\n    if (!value) {\n      this.charts = this.chartSearch;\n    } else {\n      this.charts = this.chartSearch.filter(chart => {\n        return (chart.attribute._base64.tags.includes(value) || chart.attribute._base64.category === value)\n      })\n      this.chartSelect = undefined;\n      this.disableBtnAdd();\n    }\n  }\n\n  disableBtnAdd() {\n    if (!!this.chartSelect && !!this.uuidDatasetSelect) {\n      this.btnClass = ''\n    } else {\n      this.btnClass = 'true'\n    }\n  }\n\n  nextToExplore() {\n    if (this.uuidDatasetSelect) {\n      this.router.navigate([`/chart/explore`, this.uuidDatasetSelect, {\n        'viztype': this.chartSelect.name\n      }])\n    }\n  }\n\n  getImageByUrl(__value: any) {\n    let __url;\n    if (__value) {\n      __url = this.coreService.getImageUrlFromModule(__value, 'visualcommon');\n    }\n    return __url\n  }\n\n  reSelect() {\n    this.itemOut.emit(this.chartSelect);\n  }\n\n  cancelReSelect() {\n    this.cancelOut.emit(false);\n  }\n}\n","<app-action-view-layout [header]=\"''\" [isAbsolute]=\"true\"\n                        [isChild]=\"false\" [isNoPaddingLayout]=\"true\"\n                        [isPlugin]=\"isPlugin\"\n                        [isSelectChartPlugin]=\"isPlugin\"\n                        [isViewFull]=\"true\" class=\"add-chart-layout-triangle\">\n  <ng-template contentTemplate>\n    <div [ngClass]=\"isPlugin ? 'plugin' : ''\" class=\"add-chart-layout\">\n      <div class=\"chart-container\">\n        <div [ngClass]=\"chartSelect? 'spr2'  : ''\" class=\"chart-view\">\n          <div class=\"container-search\">\n            <div class=\"col-lg-4 col-8 px-1\">\n              <ng-select (change)=\"onSelect($event)\"\n                         [items]=\"categorys\"\n                         bindLabel=\"name\"\n                         bindValue=\"name\"\n                         placeholder=\"{{'VISUALIZE.CHART.FIELD.ALL_CHART'|translate}}\">\n              </ng-select>\n            </div>\n            <input (keyup)=\"search(keyword)\" [(ngModel)]=\"keyword\"\n                   class=\"form-control-superset input-search col-md-8 col-xs-8\"\n                   placeholder=\"{{'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND'|translate}}\"\n                   type=\"text\">\n            <span (click)=\"search()\" *ngIf=\"keyword.length > 0\" class=\"icon-close-pos\"><i\n              class=\"icon-s17 icon-secondary icon-search\"></i></span>\n          </div>\n          <div class=\"all-chart-view\">\n            <div (click)=\"onActive(chart)\" *ngFor=\"let chart of charts; let i = index\" class=\"chart\">\n              <img [ngClass]=\"{ 'active': chartSelect === chart }\" [src]=\"chart?.nameImage\">\n              <div class=\"chart-name\">{{ chart.attribute._base64?.name }}</div>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"chartSelect\" class=\"chart-info\">\n          <div class=\"info\">\n            <div class=\"chart-title\">{{ chartSelect?.attribute._base64?.name }}</div>\n            <div class=\"chart-tags\">\n      <span *ngFor=\"let tag of chartSelect?.attribute._base64?.tags\" class=\"tag-block mb-2\">\n        {{ tag }}\n      </span>\n            </div>\n            <div class=\"description\">{{ chartSelect?.attribute._base64?.description }}</div>\n          </div>\n          <div class=\"chart-examples\">\n            <div class=\"chart-title\">{{'VISUALIZE.FIELD.TITTLE.EXAMPLES'|translate}}</div>\n            <div class=\"image-examples\">\n              <img *ngFor=\"let example of chartSelect?.examples\" [src]=\"example\" class=\"mr-2\">\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"group-btn d-flex justify-content-sm-end pt-2 align-items-center\"\n         style=\"background: #FFFFFF; height: 60px\">\n      <button (click)=\"cancelReSelect()\" class=\"btn-custom btn-custom-line-primary\"\n              tooltip=\"{{'VISUALIZE.CHART.FIELD.SKIP'|translate}}\"\n              type=\"button\">\n        <i class=\"fa fa-close mr-1\"></i>{{'VISUALIZE.CHART.FIELD.SKIP'|translate}}\n      </button>\n      <button (click)=\"reSelect()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step\"\n              tooltip=\" {{'VISUALIZE.CHART.FIELD.AGREE'|translate}}\"\n              type=\"button\">\n        <i class=\"fa fa-check mr-1\"></i> {{'VISUALIZE.CHART.FIELD.AGREE'|translate}}\n      </button>\n    </div>\n  </ng-template>\n</app-action-view-layout>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n  name: 'schemaKey'\n})\nexport class SchemaKeyvaluePipe implements PipeTransform {\n\n  transform(schemas: any): any {\n    return Object.keys(schemas).map((schema) => {\n      return {key: schema, value: schemas[schema], cls: schemas[schema].toString().toLowerCase()}\n    });\n  }\n}\n","/* eslint-disable @angular-eslint/no-empty-lifecycle-method */\nimport { Component, Input, OnInit, ViewChild, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { ChartService } from '../chart.service';\nimport { Location } from '@angular/common';\nimport {\n  CoreService,\n  ErrorMessage,\n  iNet,\n  NotificationService,\n} from 'inet-core';\nimport * as CONSTANT from '../constants/constants';\nimport {\n  CHART,\n  CHART_PLUGIN,\n  EXPLORE,\n  LIST,\n  PUBLISH,\n  VIEW,\n  TEMPLATE\n} from '../constants/constants';\nimport { decode, encode } from 'js-base64';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { commonEN, commonVN } from '../model/data-language';\nimport { ChartAttribute, ChartItem, DatasetItem } from '../../model/chart';\nimport { filter } from 'rxjs/operators';\nimport { ChartDeleteComponent } from '../chart-delete/chart-delete.component';\nimport * as DocumentActions from '../../core/store/actions/navigation.action';\nimport * as ErrorActions from '../../core/store/actions/error.action';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../core/store/state/app.state';\nimport * as RightbarActions from '../../core/store/actions/rightbar.action';\nimport { rightbarSelector } from '../../core/store/selectors/rightbar.selector';\nimport { dataSendSelector } from '../../core/store/selectors/data-send.selector';\nimport * as dataSendActions from '../../core/store/actions/data-send.action';\n// import * as TemplateActions  from '../../core/store/actions/template.actions';\nimport {\n  converParamsData,\n  converParamsExplore,\n  convertDataRenderDeckGLMultiLayer,\n  convertParamsCommon,\n} from '../../core/utils/convert-params-submit';\nimport { publishSelector } from '../../core/store/selectors/publish.selector';\nimport { updateNavigate } from '../../core/store/actions/chart-bind.action';\nimport { ShareService } from '../../share/share.service';\nimport { ChartPublishDialogComponent } from '../chart-publish-dialog/chart-publish-dialog.component';\nimport { IDataset, IMessage, IResponse } from '../model/chart';\n\n@Component({\n  selector: 'app-chart-explore',\n  templateUrl: './chart-explore.component.html',\n  styleUrls: ['./chart-explore.component.scss'],\n})\nexport class ChartExploreComponent implements OnInit, OnDestroy, AfterViewInit {\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild('iframeVisualize') iframeVisualize:ElementRef;\n  @Input() isChild: boolean = true;\n  @Input() header: string = '';\n  @Input() isNoToolBar: boolean = false;\n  plugin = iNet.getPluginManager();\n  vizType: any;\n  isShowColl: boolean = false;\n  schema: any[] = [];\n  name: string = '';\n  desc: string = '';\n  attribute: ChartAttribute;\n  isDisabled: boolean = true;\n  schemaFilter: any[] = [];\n  datasets: any[] = [];\n  queries: any = null;\n  queriesData: any = null;\n  hideShowDataset: boolean = true;\n  dataSource: any = {\n    dataset: {\n      datasource_name: '',\n      columns: [],\n      filter_select: true,\n      filter_select_enabled: true,\n      granularity_sqla: [],\n      main_dttm_col: undefined || '',\n      metrics: [],\n      name: '',\n      id: '',\n      order_by_choices: [],\n      table_name: '',\n      time_grain_sqla: [\n        [null, 'Original value'],\n        ['PT1S', 'Second'],\n        ['PT1M', 'Minute'],\n        ['PT1H', 'Hour'],\n        ['P1D', 'Day'],\n        ['P1W', 'Week'],\n        ['P1M', 'Month'],\n        ['P3M', 'Quarter'],\n        ['P1Y', 'Year'],\n      ],\n      type: 'table',\n      uid: '',\n      verbose_map: {},\n    },\n    form_data: {\n      datasource: '',\n      htmlTag: '',\n      nameChart: '',\n      viz_type: '',\n      granularity_sqla: '',\n    },\n    message: null,\n    metadata: null,\n    slice: null,\n  };\n  htmlTag: string = '';\n  nameChart: string = '';\n  keyword: string = '';\n  uuidChart: string = '';\n  uuidChartTemp: string = '';\n  dataChart: any = '';\n  valueName: string = '';\n  valueDesc: string = '';\n  isChangeChartVisualize: boolean = false;\n  isShowSelectChartVisualize: boolean = false;\n  nameDatasetSelect: string = '';\n  typesOfDataset: any[] = [];\n  categoryDataset: any[] = [];\n  categorySelect: string = '';\n  typeDataSelect: string = '';\n  datasetFilter: any[] = [];\n  isFrameLoadDone: boolean = false;\n  typeSubmitVisualize: string = '';\n  thumbnailUrl: string = '';\n  loadDataChartDone: boolean = true;\n  isOpenRightBar: boolean = false;\n  isViewAction: boolean = false;\n  chartInfo: ChartItem;\n  getMessageApp: EventListenerOrEventListenerObject;\n  msgContentDel: string = '';\n  visualizeUrl = iNet.getPUrl('visualcommon/page/analytics-chart');\n  urlVisualizeChart: string = iNet.getPUrl('visualcommon/page/visualize-chart');\n  isPlugin: boolean = false;\n  totalSchema: number = 0;\n  nameSelectPrev: string = '';\n  isShowButtonSave: boolean = false;\n  callExplore: any;\n  callData: any;\n  callEachExplore: any;\n  isShowImport: boolean = false;\n  isEditInfo: boolean = false;\n  storeDataSend: any;\n  dataSend: dataSendActions.IDataSend;\n  @ViewChild(ChartPublishDialogComponent)\n  dialogPublish!: ChartPublishDialogComponent;\n  loadingSuccess: boolean = false;\n  private subRouter: Subscription;\n  private isBase64: boolean = false;\n  private readonly translateSubscription: Subscription;\n  private actionTranslate: any = {};\n  private storePublish$: Subscription;\n  hasVisualizePlus: boolean = false;\n\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private chartService: ChartService,\n    private location: Location,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private store: Store<IAppState>,\n    private shareService: ShareService\n  ) {\n    this.chartService.hasModule('visualizeplus').subscribe((res:boolean) => {\n      this.hasVisualizePlus = res;\n    })\n    this.uuidChartTemp = this.uuidChart =\n      this.route.snapshot.parent.params['uuid'];\n    this.subRouter = this.route.queryParams.subscribe((value) => {\n      if('name' in value) {\n        this.nameDatasetSelect = value.name\n      }\n      if('category' in value) {\n        this.categorySelect = value.category\n      }\n      if('type' in value) {\n        this.typeDataSelect = value.type\n      }\n      localStorage.removeItem('dataLanguage');\n      if (value.viztype) {\n        this.vizType = value.viztype;\n      }\n      if (value.uuid) {\n        this.uuidChart = value.uuid;\n      }\n      switch (translate.currentLang) {\n        case 'vi':\n          localStorage.setItem('dataLanguage', JSON.stringify(commonEN));\n          break;\n        case 'en':\n          localStorage.setItem('dataLanguage', JSON.stringify(commonEN));\n          break;\n        default:\n          break;\n      }\n\n      this.store.select(rightbarSelector).subscribe((res) => {\n        res ? (this.isOpenRightBar = true) : null;\n        this.isEditInfo = res;\n      });\n    });\n    this.router.events\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe((e: any) => {\n        this.isPlugin = (e.url as string)?.includes('chart-plugin');\n      });\n    this.translateSubscription = translate\n      .get(['VISUALIZE.CHART.FIELD'])\n      .subscribe((data) => {\n        this.actionTranslate = data['VISUALIZE.CHART.FIELD'];\n      });\n    let isHideShowDataset = JSON.parse(localStorage.getItem('hideShowDataset'));\n    if (isHideShowDataset !== null) {\n      this.hideShowDataset = isHideShowDataset;\n    }\n    this.storeDataSend = this.store\n      .select(dataSendSelector)\n      .subscribe((res: dataSendActions.IDataSend) => {\n        console.log(res);\n        \n        this.dataSend = res;\n        if (!this.uuidChart && !this.dataSend?.htmlTag) {\n          this.dataSend = JSON.parse(localStorage.getItem('dataSend'));\n        }\n      });\n    this.storePublish$ = this.store.select(publishSelector).subscribe((res) => {\n      if (this.chartInfo) {\n        const item = JSON.parse(JSON.stringify(this.chartInfo));\n        item.sharedUuid = res || undefined;\n        this.chartInfo = JSON.parse(JSON.stringify(item));\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    //when change language\n    if (this.vizType && !this.uuidChart) {\n      this.getChartsList(this.vizType);\n    }\n    if (this.typeDataSelect && this.nameDatasetSelect && this.categorySelect && !this.uuidChart) {\n      this.getSchema(false);\n    }\n\n    this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\n      localStorage.removeItem('dataLanguage');\n      switch (event.lang) {\n        case 'vi':\n          localStorage.setItem('dataLanguage', JSON.stringify(commonEN));\n          break;\n        case 'en':\n          localStorage.setItem('dataLanguage', JSON.stringify(commonEN));\n          break;\n        default:\n          break;\n      }\n      this.loadDataChartDone = true;\n      const iframe: any = document.getElementById('iframe-visualize');\n\n      iframe.contentWindow.location.reload();\n    });\n    this.getMessageApp = this.getMessageExploreApp.bind(this);\n    window.addEventListener('message', this.getMessageApp, false);\n    if (!this.uuidChart) {\n      this.loadingSuccess = true;\n    }\n  }\n\n  // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n  ngAfterViewInit(): void {\n    const iFrame: HTMLIFrameElement = this.iframeVisualize.nativeElement;\n    iFrame.onload = () => {\n      this.iframeLoadDone();\n    }\n  }\n\n  //get message and send message with explore app\n  getMessageExploreApp(event: any) {\n    const data:IMessage = event.data;\n    if (data.signFrom !== 'superset_app') {\n      return;\n    }\n    let result: any;\n    if (typeof data.result === 'string') {\n      result = JSON.parse(data.result);\n    } else {\n      result = data.result;\n    }\n    switch (data.eventName) {\n      case CONSTANT.SEND_SERVICE_LOAD_DONE:\n        // console.log(`${CONSTANT.SEND_SERVICE_LOAD_DONE} in analytics:`, result);\n        this.loadDataChartDone = false;\n        if (result.serviceLoadDone) {\n          if (this.dataChart) {\n            let dataSend: IMessage;\n            dataSend = {\n              eventName: CONSTANT.SEND_DATASOURCE,\n              signFrom: CONSTANT.ANALYTICS_APP,\n              result: JSON.stringify({\n                htmlTag: this.dataChart.attribute.vizType.html,\n                dataSource: this.dataChart.attribute.dataSource,\n                vizType: this.dataChart.type,\n                nameChart: this.dataChart.typeName,\n                isEdit: true,\n                typeSubmit: this.typeSubmitVisualize,\n                url: this.urlVisualizeChart,\n              }),\n            };\n            if (this.dataChart.attribute.formData.viz_type === this.vizType) {\n              this.sendMessage(dataSend);\n            }\n          }\n        }\n        break;\n      case CONSTANT.SEND_QUERIES:\n        if (result.paramsChart) {\n          const obj = {};\n          result.paramsChart.datasource = {\n            table: this.nameDatasetSelect,\n            type: this.typeDataSelect,\n            category: this.categorySelect,\n          };\n\n          result.paramsChart.form_data = convertParamsCommon(\n            result.paramsChart.form_data\n          );\n\n          if (this.typeSubmitVisualize === result.typeSubmit) {\n            if (result.typeSubmit === CONSTANT.DATA) {\n              result.paramsChart.queries = converParamsData(\n                result.paramsChart.queries,\n                this.schema,\n                this.vizType\n              );\n\n              for (const [key, value] of Object.entries(result.paramsChart)) {\n                obj[`${key}`] = JSON.stringify(value);\n              }\n            }\n            this.queries = result.paramsChart.queries;\n          }\n        }\n        break;\n      case CONSTANT.SEND_PARAMS_CHART:\n        if (result.paramsChart) {\n          const obj = {};\n          // console.log('result.paramsChart:', result.paramsChart);\n\n          result.paramsChart.datasource = {\n            table: this.nameDatasetSelect,\n            type: this.typeDataSelect,\n            category: this.categorySelect,\n          };\n\n          result.paramsChart.form_data = convertParamsCommon(\n            result.paramsChart.form_data\n          );\n\n          if (this.typeSubmitVisualize === result.typeSubmit) {\n            if (result.typeSubmit === CONSTANT.EXPLORE_JSON) {\n              result.paramsChart.form_data = converParamsExplore(\n                result.paramsChart.form_data,\n                this.dataSource.dataset.columns,\n                this.schema\n              );\n\n              for (const [key, value] of Object.entries(result.paramsChart)) {\n                obj[`${key}`] = JSON.stringify(value);\n              }\n              this.getExpVisualize(obj);\n            }\n\n            if (result.typeSubmit === CONSTANT.DATA) {\n              result.paramsChart.queries = converParamsData(\n                result.paramsChart.queries,\n                this.schema,\n                this.vizType\n              );\n\n              for (const [key, value] of Object.entries(result.paramsChart)) {\n                obj[`${key}`] = JSON.stringify(value);\n              }\n              this.getDataVisualize(obj);\n            }\n            this.queries = result.paramsChart.queries;\n          }\n        }\n        break;\n      case CONSTANT.SEND_CHARTS_LINE:\n        if (result.multi) {\n          this.getChartsLine();\n        }\n        break;\n      case CONSTANT.SEND_CHARTS_DECKGL:\n        if (result.multi) {\n          this.getChartsDeckGL();\n        }\n        break;\n      case CONSTANT.SEND_DATA_SAMPLES:\n        if (result.samples) {\n          this.getSourceView(0, 100);\n        }\n      case CONSTANT.SEND_CHANGE_PAGE_NUMBER:\n        if (result.pageNumber) {\n          this.getSourceView(result.pageNumber - 1, 100);\n        }\n        break;\n      case CONSTANT.VIEW_ALL_CHARTS:\n        if (result.viewAllCharts) {\n          this.isShowSelectChartVisualize = true;\n        }\n        break;\n      case CONSTANT.SEND_PARAMS_SAVE:\n        // console.log(`${CONSTANT.SEND_PARAMS_SAVE}:`, result);\n        result.formData = convertParamsCommon(result.formData);\n        result.formData = converParamsExplore(\n          result.formData,\n          this.dataSource.dataset.columns,\n          this.schema\n        );\n        this.queriesData = result.queriesData;\n        this.attribute = {\n          width: result.width,\n          height: result.height,\n          vizType: result.vizType,\n          formData: result.formData,\n          nameChart: result.vizType.name,\n          typeSubmit: this.typeSubmitVisualize,\n          queries: this.queries,\n          dataSource: {\n            dataset: result.datasource,\n            form_data: result.formData,\n            message: null,\n            metadata: null,\n            slice: null,\n          },\n        };\n        if (\n          this.name !== '' &&\n          this.attribute &&\n          this.vizType === result.vizType.vizType\n        ) {\n          this.isDisabled = false;\n        }\n        break;\n      case CONSTANT.SEND_LOAD_DONE_DATA_EIDIT:\n        {\n          if (result.loadDoneDataEdit && this.dataChart) {\n            this.getChartsList(this.vizType);\n          }\n        }\n        break;\n      default:\n        break;\n    }\n  }\n\n  //when iframe load done call service\n  iframeLoadDone() {\n    if (this.dataSend && !this.uuidChart) {\n      let dataSend: IMessage;\n      dataSend = {\n        eventName: CONSTANT.SEND_DATASOURCE,\n        signFrom: CONSTANT.ANALYTICS_APP,\n        result: JSON.stringify(this.dataSend),\n      };\n      if (this.dataSend.htmlTag) {\n        this.sendMessage(dataSend);\n        localStorage.setItem('dataSend', JSON.stringify(this.dataSend));\n      }\n    }\n    if (this.uuidChart) {\n      this.loadChart({ uuid: this.uuidChart });\n      setTimeout(() => {\n        this.isViewAction = true;\n      });\n    }\n    this.isFrameLoadDone = true;\n  }\n  /*  initType() {\n        this.chartService.typesDataset().subscribe((data) => {\n          this.typesOfDataset = data;\n          !this.typeDataSelect\n            ? (this.typeDataSelect = this.typesOfDataset[0])\n            : (this.typeDataSelect = this.typeDataSelect);\n          this.onSelectTypeData(this.typeDataSelect);\n        });\n      }*/\n\n  /*\n      onSelectTypeData(type?: any) {\n        if (!type) {\n          this.typeDataSelect = type;\n          this.categoryDataset = [];\n          this.datasets = [];\n          return;\n        }\n        this.typeDataSelect = type;\n        this.chartService.getCategories(type).subscribe((items) => {\n          this.categoryDataset = items.filter((item) => item !== null);\n          const index = this.categoryDataset.findIndex(\n            (item) => item === this.categorySelect\n          );\n          this.categorySelect = this.categoryDataset[index === -1 ? 0 : index];\n          this.onSelectCategoryData(this.categorySelect);\n        });\n      }\n    */\n\n  /*onSelectCategoryData(name?: any) {\n      this.categorySelect = name;\n      if (!name) {\n        this.datasets = [];\n        this.nameDatasetSelect = null;\n        return;\n      }\n      this.chartService\n        .getTables(name, this.typeDataSelect)\n        .subscribe((tables) => {\n          this.datasets = tables.items.filter(\n            (table) => table?.type === this.typeDataSelect\n          );\n          const index = tables.items.findIndex(\n            (dataset) => dataset.name === this.nameDatasetSelect\n          );\n          this.nameDatasetSelect = tables.items[index === -1 ? 0 : index].name;\n\n          if (this.nameSelectPrev) {\n            if (this.nameSelectPrev !== this.nameDatasetSelect) {\n              this.getSchema(true);\n            }\n          } else {\n            this.getSchema(false);\n          }\n        });\n    }*/\n\n  getNameChart(event: any) {\n    this.name = event.target.value;\n    if (\n      this.name !== '' &&\n      this.attribute &&\n      this.vizType === this.attribute.vizType.vizType\n    ) {\n      this.isDisabled = false;\n    } else {\n      this.isDisabled = true;\n    }\n  }\n\n  getDescChart(event: any) {\n    this.desc = event.target.value;\n  }\n\n  //save chart was visualize\n  onSaveChart(event: any) {\n    event.preventDefault();\n    let params = {\n      dsType: this.typeDataSelect,\n      dsCategory: this.categorySelect,\n      dsTable: this.nameDatasetSelect,\n      thumbnailUri: this.thumbnailUrl,\n      name: this.name,\n      desc: this.desc,\n      type: this.vizType,\n      typeName: this.attribute.nameChart,\n      queryContext: encode(\n        JSON.stringify({\n          form_data: this.attribute.formData,\n          query: this.queriesData ? this.queriesData[0]?.query : '',\n          queries: this.queries,\n          post_process_param: this.queriesData\n            ? this.queriesData[0]?.post_process_param\n            : null,\n        })\n      ),\n      attribute: encode(\n        JSON.stringify({ ...this.attribute, ...{ queries: this.queries }, ...{schemas: this.schema} })\n      ),\n    };\n\n    if (!this.uuidChart) {\n      this.chartService.addChart(params).subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          this.notification.showMessage(\n            this.actionTranslate['CREATE_CHART_SUCCESS'],\n            'success',\n            this.actionTranslate['NOTIFICATION']\n          );\n          this.isViewAction = true;\n          this.uuidChart = result.uuid;\n          this.chartInfo = result;\n          result.attribute = JSON.parse(decode(result.attribute));\n          this.dataChart = result;\n          this.onExplore(false);\n        } else {\n          this.notification.showMessage(\n            this.actionTranslate['CREATE_CHART_FAIL'],\n            'error',\n            this.actionTranslate['NOTIFICATION']\n          );\n        }\n      });\n    } else {\n      params['uuid'] = this.uuidChart;\n      this.chartService.chartUpdate(params).subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          this.chartInfo = result;\n          result.attribute = JSON.parse(decode(result.attribute));\n          this.dataChart = result;\n          this.notification.showMessage(\n            this.actionTranslate['UPDATE_CHART_SUCCESS'],\n            'success',\n            this.actionTranslate['NOTIFICATION']\n          );\n        } else {\n          this.notification.showMessage(\n            this.actionTranslate['UPDATE_CHART_FAIL'],\n            'error',\n            this.actionTranslate['NOTIFICATION']\n          );\n        }\n      });\n    }\n  }\n\n  onExplore(isReload: boolean = true) {\n    let path: string = CHART;\n    this.isPlugin ? (path = CHART_PLUGIN) : (path = CHART);\n    if (isReload) {\n      if (!this.isPlugin) {\n        this.store.dispatch(\n          DocumentActions.navPushFolder({\n            data: {\n              ...this.chartInfo,\n              ...{ router: CHART + '/' + this.chartInfo.uuid },\n            },\n          })\n        );\n        this.router.navigate(['/', CHART, EXPLORE]);\n      }\n    } else {\n      this.isShowImport = true;\n      this.router.navigate(['/', path, EXPLORE], {\n        queryParams: {\n          uuid: this.uuidChart,\n        },\n      });\n    }\n  }\n\n  //get one dataset and convert data to visualize\n  getOneDataset(params: IDataset, isChangeDataset: boolean) {\n    this.chartService.getOneDataset(params).subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        this.schema = !!result.schemas ? result.schemas : [];\n        this.schemaFilter = this.schema;\n        this.nameSelectPrev = result.name;\n        this.totalSchema = Object.keys(this.schema).length;\n        let count = 0;\n        this.dataSource.dataset.datasource_name = result.name;\n        this.dataSource.dataset.name = result.name;\n        this.dataSource.dataset.table_name = result.name;\n        this.dataSource.dataset.id = result.uuid;\n        this.dataSource.dataset.uid = result.uuid;\n        if (result.schemas) {\n          this.dataSource.dataset.columns = [];\n          this.dataSource.dataset.granularity_sqla = [];\n          this.dataSource.dataset.order_by_choices = [];\n          this.dataSource.dataset.verbose_map = {};\n          for (const [key, value] of Object.entries(result.schemas)) {\n            let obj = {\n              filterable: true,\n              groupby: true,\n              is_certified: false,\n              column_name: key,\n              type: value,\n              id: count,\n            };\n            switch (value) {\n              case 'INT':\n              case 'DOUBLE':\n              case 'LONG':\n              case 'INT64':\n              case 'FLOAT':\n              case 'NUMBER':\n                obj['type_generic'] = 0;\n                break;\n              case 'STRING':\n              case 'CHAR':\n                obj['type_generic'] = 1;\n                break;\n              case 'DATE':\n                obj['type_generic'] = 2;\n                break;\n              case 'BOOLEAN':\n                obj['type_generic'] = 3;\n                break;\n              default:\n                break;\n            }\n            this.dataSource.dataset.verbose_map[`${key}`] = key;\n            value === 'DATE'\n              ? (obj['is_dttm'] = true)\n              : (obj['is_dttm'] = false);\n            count += 1;\n            this.dataSource.dataset.columns.push(obj);\n          }\n          this.dataSource.dataset.columns =\n            this.dataSource.dataset.columns.filter((column: any) => {\n              if (column.type !== 'BOOLEAN') {\n                return column;\n              }\n            });\n          for (const i of Object.keys(result.schemas)) {\n            let arr1: any = [],\n              arr2: any = [];\n            arr1 = [`[\"${i}\", true]`, `${i} [asc]`];\n            arr2 = [`[\"${i}\", false]`, `${i} [desc]`];\n            if (result.schemas[`${i}`] === 'DATE') {\n              this.dataSource.dataset.granularity_sqla.push(i);\n              if (!this.dataSource.dataset.main_dttm_col) {\n                this.dataSource.dataset.main_dttm_col = i;\n              }\n            }\n            this.dataSource.dataset.order_by_choices.push(arr1);\n            this.dataSource.dataset.order_by_choices.push(arr2);\n          }\n        }\n        //when change dataset\n        if (isChangeDataset && this.htmlTag) {\n          this.dataSource.form_data.datasource = `${this.dataSource.dataset.id}__${this.dataSource.dataset.datasource_name}`;\n          if (this.dataSource.dataset.granularity_sqla.length > 0) {\n            this.dataSource.form_data.granularity_sqla =\n              this.dataSource.dataset.granularity_sqla[0];\n            this.dataSource.dataset.main_dttm_col =\n              this.dataSource.dataset.granularity_sqla[0];\n            if (this.vizType === 'box_plot') {\n              this.dataSource.form_data['columns'] = [\n                this.dataSource.dataset.granularity_sqla[0],\n              ];\n            }\n          } else {\n            this.dataSource.form_data.granularity_sqla = null;\n            this.dataSource.dataset.main_dttm_col = null;\n            if (this.vizType === 'box_plot') {\n              this.dataSource.form_data['columns'] = [];\n            }\n          }\n          let dataSend: IMessage;\n          dataSend = {\n            eventName: CONSTANT.SEND_DATASOURCE,\n            signFrom: CONSTANT.ANALYTICS_APP,\n            result: JSON.stringify({\n              htmlTag: this.htmlTag,\n              dataSource: this.dataSource,\n              vizType: this.vizType,\n              nameChart: this.nameChart,\n              typeSubmit: this.typeSubmitVisualize,\n              isChangeDataset,\n              url: this.urlVisualizeChart,\n            }),\n          };\n          this.sendMessage(dataSend);\n        }\n      }\n    });\n  }\n\n  //get list type chart to visualize\n  getChartsList(vizType: string) {\n    this.chartService.getChartsList().subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        let chart = result.items.filter((item: any) => item.name === vizType);\n        this.dataSource.form_data = {\n          ...this.dataSource.form_data,\n          ...JSON.parse(decode(chart[0]?.attribute.formData)),\n        };\n        this.htmlTag = chart[0].attribute.html;\n        this.typeSubmitVisualize = chart[0].attribute.typeSubmit;\n        this.thumbnailUrl =\n          this.coreService.getImageUrlFromModule(\n            JSON.parse(decode(chart[0].attribute.base64))\n              ['thumbnail'].split('/')\n              .pop(),\n            'visualcommon'\n          ) || '';\n        this.nameChart = JSON.parse(decode(chart[0].attribute.base64)).name;\n      }\n    });\n  }\n\n  //get data visualize by type submit data\n  getDataVisualize(params: any) {\n    this.callData = this.chartService\n      .getDataVisualize(params)\n      .subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          let message = {\n            eventName: CONSTANT.SEND_DATA_RENDER_CHART,\n            signFrom: CONSTANT.ANALYTICS_APP,\n            result: JSON.stringify({\n              dataQueries:\n                this.vizType === 'mixed_timeseries'\n                  ? result.elements\n                  : [result],\n              statusQueries: true,\n            }),\n          };\n          this.sendMessage(message);\n        } else {\n          let message = {\n            eventName: CONSTANT.SEND_DATA_RENDER_CHART,\n            signFrom: CONSTANT.ANALYTICS_APP,\n            result: JSON.stringify({\n              dataQueries: [],\n              statusQueries: false,\n              error: result,\n            }),\n          };\n          this.sendMessage(message);\n        }\n      });\n  }\n\n  //get data visualize by type submit explore\n  getExpVisualize(params: any) {\n    this.callExplore = this.chartService\n      .getExpVisualize(params)\n      .subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          if (this.vizType !== 'deck_multi') {\n            let message = {\n              eventName: CONSTANT.SEND_DATA_RENDER_CHART,\n              signFrom: CONSTANT.ANALYTICS_APP,\n              result: JSON.stringify({\n                dataQueries: [result],\n                statusQueries: true,\n              }),\n            };\n            this.sendMessage(message);\n          } else {\n            let arrLayer: any[] = [];\n            let arrDataQueries: any[] = [];\n            for (const iterator of result.data) {\n              const params = JSON.parse(decode(iterator.attribute));\n              const datasource = {\n                table: iterator.dsTable,\n                type: iterator.dsType,\n                category: iterator.dsCategory,\n              };\n\n              if (\n                iterator.dsTable === this.nameDatasetSelect &&\n                iterator.dsType === this.typeDataSelect &&\n                iterator.dsCategory === this.categorySelect\n              ) {\n                params.formData.adhoc_filters = [\n                  ...params.formData.adhoc_filters,\n                  ...result.form_data.adhoc_filters,\n                ];\n              }\n\n              const object = {\n                datasource,\n                form_data: params.formData,\n                name: iterator.name,\n              };\n\n              this.convertParamsSubmit(object)\n                .then((res) => {\n                  arrLayer.push(res);\n                })\n                .then(() => {\n                  //send data for chart deckGL multi layers\n                  if (arrLayer.length === result.data.length) {\n                    // arrLayer.forEach((element, index) => {\n                    //   if(element.type !== ErrorMessage.TYPE) {\n                    //     arrDataQueries.push(element)\n                    //   }\n                    // });\n                    // arrDataQueries = arrDataQueries.filter(item => {\n                    //   if(item.data.length !== 0) {\n                    //     return item;\n                    //   }\n                    // });\n\n                    arrDataQueries = convertDataRenderDeckGLMultiLayer(\n                      arrLayer,\n                      ErrorMessage,\n                      arrDataQueries\n                    );\n\n                    result.data = { mapboxApiKey: '', slices: arrDataQueries };\n                    let message = {\n                      eventName: CONSTANT.SEND_DATA_RENDER_CHART,\n                      signFrom: CONSTANT.ANALYTICS_APP,\n                      result: JSON.stringify({\n                        dataQueries:\n                          arrDataQueries.length > 0\n                            ? [{ data: result.data }]\n                            : [],\n                        statusQueries: true,\n                      }),\n                    };\n                    this.sendMessage(message);\n                  }\n                });\n            }\n          }\n        } else {\n          let message = {\n            eventName: CONSTANT.SEND_DATA_RENDER_CHART,\n            signFrom: CONSTANT.ANALYTICS_APP,\n            result: JSON.stringify({\n              dataQueries: [],\n              statusQueries: false,\n              error: result,\n            }),\n          };\n          this.sendMessage(message);\n        }\n      });\n  }\n\n  //get one chart for chart deckGL multi layers\n  getOneChartForDeckGLMulti(params: any) {\n    return new Promise((resolve, reject) => {\n      this.callEachExplore = this.chartService\n        .getExpVisualize(params)\n        .subscribe((result: any) => {\n          result['name'] = params.name;\n          resolve(result);\n          if (result.type === ErrorMessage.TYPE) {\n            this.notification.showMessage(\n              `Can't visualize chart ${params.name}`,\n              'error',\n              this.actionTranslate['NOTIFICATION']\n            );\n          }\n        });\n    });\n  }\n\n  //convert params before submit for one chart deckGL\n  convertParamsSubmit(object: any) {\n    object.form_data = convertParamsCommon(object.form_data);\n\n    object.form_data = converParamsExplore(object.form_data, [], this.schema);\n    for (const [key, value] of Object.entries(object)) {\n      if (typeof value !== 'string') {\n        object[`${key}`] = JSON.stringify(value);\n      }\n    }\n    return this.getOneChartForDeckGLMulti(object);\n  }\n\n  //send message for iframe\n  sendMessage(message: IMessage) {\n    const iframe: any = document.getElementById('iframe-visualize');\n    if (iframe) {\n      this.plugin.sendMessageTo(message, iframe.contentWindow);\n    }\n  }\n\n  search(keyword: string = '') {\n    if (keyword.length > 0) {\n      let obj = {};\n      Object.entries(this.schemaFilter)\n        .filter((value) => {\n          return value[0].toLowerCase().includes(keyword);\n        })\n        .map((value) => {\n          return (obj[value[0]] = value[1]);\n        });\n      this.schema = Object.assign(obj);\n    } else {\n      this.schema = this.schemaFilter;\n    }\n  }\n\n  back() {\n    this.htmlTag = '';\n    this.location.back();\n  }\n\n  //get data for chart visualized\n  loadChart(params: { uuid: string }) {\n    this.chartService.loadChart(params).subscribe((result: IResponse) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        result.attribute = JSON.parse(decode(result.attribute));\n        this.store.dispatch(updateNavigate({ data: result }));\n        this.dataChart = result;\n        this.vizType = result.type;\n        this.valueName = result.name;\n        this.name = result.name;\n        this.desc = result.desc;\n        this.valueDesc = result.desc;\n        this.isDisabled = false;\n        this.typeDataSelect = result.dsType;\n        this.categorySelect = result.dsCategory;\n        this.nameDatasetSelect = result.dsTable;\n        this.typeSubmitVisualize = result.attribute.typeSubmit;\n        this.queries = result.attribute.queries;\n        this.thumbnailUrl = result.thumbnailUri;\n        this.getSchemaEdit({\n          type: result.dsType,\n          category: result.dsCategory,\n          name: result.dsTable,\n        });\n        this.chartInfo = result as any;\n        // this.initType();\n        if (this.loadDataChartDone) {\n          let message = {\n            eventName: CONSTANT.SEND_SERVICE_LOAD_DONE,\n            signFrom: CONSTANT.ANALYTICS_APP,\n            result: JSON.stringify({ service_load_done: true }),\n          };\n          this.sendMessage(message);\n        }\n      }\n      this.loadingSuccess = true;\n    });\n  }\n\n  //get schema of dataset\n  getSchema(isChangeDataset: boolean) {\n    this.getOneDataset(\n      {\n        type: this.typeDataSelect,\n        category: this.categorySelect,\n        name: this.nameDatasetSelect,\n      },\n      isChangeDataset\n    );\n  }\n\n  getSchemaEdit(params: IDataset) {\n    // console.log('load');\n    this.chartService.getOneDataset(params).subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        this.schema = !!result.schemas ? result.schemas : [];\n        this.schemaFilter = this.schema;\n      }\n    });\n  }\n\n  //reseclect type visualize chart\n  reSelectChart(value: any) {\n    value.name === this.vizType\n      ? (this.isChangeChartVisualize = false)\n      : (this.isChangeChartVisualize = true);\n    this.isShowSelectChartVisualize = false;\n    if (this.isChangeChartVisualize) {\n      this.isDisabled = true;\n      this.htmlTag = value.attribute.html;\n      this.typeSubmitVisualize = value.attribute.typeSubmit;\n      this.nameChart = value.attribute._base64.name;\n      this.vizType = value.name;\n      this.thumbnailUrl =\n        this.coreService.getImageUrlFromModule(\n          value.attribute._base64['thumbnail'].split('/').pop(),\n          'visualcommon'\n        ) || '';\n      let dataSource: any;\n      if (this.uuidChart) {\n        this.dataChart.attribute.dataSource.form_data =\n          value.attribute._formData;\n        this.dataChart.attribute.dataSource.form_data.datasource = `${this.dataChart.attribute.dataSource.dataset.id}__${this.dataChart.attribute.dataSource.dataset.datasource_name}`;\n        dataSource = this.dataChart.attribute.dataSource;\n        this.dataSource.form_data = value.attribute._formData;\n        if (\n          this.dataChart.attribute.dataSource.dataset.granularity_sqla.length >\n          0\n        ) {\n          this.dataChart.attribute.dataSource.form_data.granularity_sqla =\n            this.dataChart.attribute.dataSource.dataset.granularity_sqla[0];\n          this.dataChart.attribute.dataSource.dataset.main_dttm_col =\n            this.dataChart.attribute.dataSource.dataset.granularity_sqla[0];\n          if (this.vizType === 'box_plot') {\n            this.dataSource.form_data['columns'] = [\n              this.dataSource.dataset.granularity_sqla[0],\n            ];\n          }\n        } else {\n          this.dataChart.attribute.dataSource.form_data.granularity_sqla = null;\n          this.dataChart.attribute.dataSource.dataset.main_dttm_col = null;\n          if (this.vizType === 'box_plot') {\n            this.dataSource.form_data['columns'] = [];\n          }\n        }\n      } else {\n        this.dataSource.form_data = value.attribute._formData;\n        this.dataSource.form_data.datasource = `${this.dataSource.dataset.id}__${this.dataSource.dataset.datasource_name}`;\n        dataSource = this.dataSource;\n        if (this.dataSource.dataset.granularity_sqla.length > 0) {\n          this.dataSource.form_data.granularity_sqla =\n            this.dataSource.dataset.granularity_sqla[0];\n          this.dataSource.dataset.main_dttm_col =\n            this.dataSource.dataset.granularity_sqla[0];\n          if (this.vizType === 'box_plot') {\n            this.dataSource.form_data['columns'] = [\n              this.dataSource.dataset.granularity_sqla[0],\n            ];\n          }\n        } else {\n          this.dataSource.form_data.granularity_sqla = null;\n          this.dataSource.dataset.main_dttm_col = null;\n          if (this.vizType === 'box_plot') {\n            this.dataSource.form_data['columns'] = [];\n          }\n        }\n      }\n      let dataSend: IMessage;\n      dataSend = {\n        eventName: CONSTANT.SEND_DATASOURCE,\n        signFrom: CONSTANT.ANALYTICS_APP,\n        result: JSON.stringify({\n          htmlTag: this.htmlTag,\n          dataSource: dataSource,\n          vizType: this.vizType,\n          nameChart: this.nameChart,\n          isChangeChartVisualize: this.isChangeChartVisualize,\n          typeSubmit: this.typeSubmitVisualize,\n          url: this.urlVisualizeChart,\n        }),\n      };\n      this.sendMessage(dataSend);\n    }\n  }\n\n  cancelReSelect(value: boolean) {\n    this.isShowSelectChartVisualize = value;\n  }\n\n  getClassTypeValue(value: string) {\n    return value.toLowerCase();\n  }\n\n  //get list chart line when visualize chart multi line\n  getChartsLine() {\n    this.chartService.getChartsLine().subscribe((result: any) => {\n      let data = result.items.map((item: any) => ({\n        value: item.uuid,\n        label: item.name,\n      }));\n      let message = {\n        eventName: CONSTANT.SEND_CHARTS_MULTI,\n        signFrom: CONSTANT.ANALYTICS_APP,\n        result: JSON.stringify({ data }),\n      };\n      this.sendMessage(message);\n    });\n  }\n\n  //get list chart deckGL when visualize chart deckGL multi layers\n  getChartsDeckGL() {\n    this.chartService.getChartsDeckGL().subscribe((result: any) => {\n      let data = result.items.map((item) => ({\n        value: item.uuid,\n        label: item.name,\n      }));\n      let message = {\n        eventName: CONSTANT.SEND_CHARTS_MULTI,\n        signFrom: CONSTANT.ANALYTICS_APP,\n        result: JSON.stringify({ data }),\n      };\n      this.sendMessage(message);\n    });\n  }\n\n  //get origin data\n  getSourceView(pageNumber: number, pageSize: number) {\n    let params = {\n      name: this.nameDatasetSelect,\n      category: this.categorySelect,\n      type: this.typeDataSelect,\n      pageSize,\n      pageNumber,\n    };\n    this.chartService.getSourceView(params).subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        let message = {\n          eventName: CONSTANT.SEND_DATA_SAMPLES,\n          signFrom: CONSTANT.ANALYTICS_APP,\n          result: JSON.stringify({\n            data: {\n              columnsName:\n                result.items.length > 0 ? Object.keys(result.items[0]) : [],\n              columnsData: result.items || [],\n              schemas: this.schema,\n            },\n            total: result.total,\n          }),\n        };\n        this.sendMessage(message);\n      }\n    });\n  }\n\n  onHideShowDataset() {\n    this.hideShowDataset = !this.hideShowDataset;\n    localStorage.setItem(\n      'hideShowDataset',\n      JSON.stringify(this.hideShowDataset)\n    );\n  }\n\n\n  backBar(isOpen: boolean = false) {\n    this.isOpenRightBar = isOpen;\n    this.store.dispatch(\n      RightbarActions.showRightbar({ isShowRightbar: false })\n    );\n  }\n\n  onDelete(item: ChartItem) {\n    this.chartDelete.onShowDialog(item);\n  }\n\n  loadDelete() {\n    setTimeout(() => {\n      this.router.navigateByUrl('');\n    }, 100);\n  }\n\n  onGotoByAction(action: string) {\n    this.store.dispatch(\n      DocumentActions.navPushFolder({\n        data: {\n          ...this.chartInfo,\n          ...{ router: CHART + '/' + this.chartInfo.uuid },\n        },\n      })\n    );\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n    switch (action) {\n      case 'view':\n        this.router.navigate(['/', CHART, this.chartInfo.uuid, VIEW]);\n        break;\n      case 'publish':\n        this.router.navigate(['/', CHART, this.chartInfo.uuid, PUBLISH]);\n        break;\n      case 'explore':\n        this.router.navigate(['/', CHART, this.chartInfo.uuid, EXPLORE]);\n        break;\n      case 'template':\n        this.router.navigate(['/', CHART, this.chartInfo.uuid, TEMPLATE]);\n        break;\n    }\n  }\n\n  editSuccess(value: ChartItem) {\n    this.valueName = value.name;\n  }\n\n  editInfoChart() {\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n    this.store.dispatch(RightbarActions.showRightbar({ isShowRightbar: true }));\n  }\n\n  onCopyPath() {\n    this.shareService\n      .copyPath(this.chartInfo.sharedUuid)\n      .subscribe((status) => {\n        if (status) {\n          this.notification.showMessage(\n            this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS'),\n            'success',\n            'Visualize'\n          );\n        } else {\n          this.notification.showMessage(\n            this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD'),\n            'error',\n            'Visualize'\n          );\n        }\n      });\n  }\n\n  onPublishAction() {\n    this.dialogPublish.showDialogChange(this.chartInfo);\n  }\n\n  updateSuccess(event: any) {\n    const item = JSON.parse(JSON.stringify(this.chartInfo));\n    item.sharedUuid = event.uuid || undefined;\n    this.chartInfo = JSON.parse(JSON.stringify(item));\n  }\n\n  onSelectTable($event: DatasetItem) {\n    this.categorySelect = $event?.category;\n    this.typeDataSelect = $event?.type;\n    this.nameDatasetSelect = $event?.name;\n    // console.log('runn');\n    this.getSchema(true);\n  }\n  // publishAsTemplate() {\n  //   this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: true}));\n  //   this.store.dispatch(TemplateActions.setUuid({uuid: this.uuidChart}));\n  //   this.store.dispatch(RightbarActions.showRightbar({ isShowRightbar: true }));\n  // }\n\n  ngOnDestroy(): void {\n    this.htmlTag = '';\n    this.vizType = '';\n    this.dataChart = '';\n    this.uuidChart = '';\n    window.removeEventListener('message', this.getMessageApp, false);\n    if (this.callExplore) {\n      this.callExplore.unsubscribe();\n    }\n    if (this.callData) {\n      this.callData.unsubscribe();\n    }\n    if (this.callEachExplore) {\n      this.callEachExplore.unsubscribe();\n    }\n    this.store.dispatch(\n      ErrorActions.gatewayTimeout({\n        error: '',\n      })\n    );\n    this.store.dispatch(\n      RightbarActions.showRightbar({ isShowRightbar: false })\n    );\n    this.storeDataSend.unsubscribe();\n    this.store.dispatch(\n      dataSendActions.dataSend({\n        dataSend: {\n          dataSource: undefined,\n          htmlTag: '',\n          vizType: '',\n          nameChart: '',\n          url: '',\n          typeSubmit: '',\n        },\n      })\n    );\n    this.storePublish$.unsubscribe();\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n  }\n}\n","<app-action-view-layout [fullHeight]=\"isPlugin\" [header]=\"header\"\n                        [isChild]=\"!!uuidChartTemp\"\n                        [isCustomBottom]=\"true\"\n                        [isExploreLayout]=\"true\"\n                        [isPlugin]=\"isPlugin\"\n                        [isRightBar]=\"isOpenRightBar\"\n                        [isViewFull]=\"true\">\n  <ng-container *ngIf=\"!isNoToolBar\">\n    <ng-template toolbarTopTemplate>\n      <ng-container *ngIf=\"!isShowImport\">\n        <ul *ngIf=\"!isPlugin\" class=\"breadcrumb\">\n          <li class=\"pointer\" routerLink=\"/chart/list\">{{'VISUALIZE.CHART.FIELD.TITLE_CHART'|translate}}</li>\n          <li *ngIf=\"!uuidChart\" class=\"active\"\n              style=\"cursor: pointer\">{{'VISUALIZE.CHART.FIELD.ADD_NEW_CHART'|translate}}</li>\n          <li *ngIf=\"uuidChart\" class=\"active\"\n              style=\"cursor: pointer\">{{'VISUALIZE.CHART.FIELD.EDIT_CHART'|translate}}</li>\n        </ul>\n      </ng-container>\n      <ng-container *ngIf=\"isShowImport\">\n        <ul class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\" style=\"flex: 1\">\n          <li class=\"pointer\" routerLink=\"/chart/list\">{{'VISUALIZE.CHART.FIELD_TITLE' | translate}}</li>\n          <li class=\" active\">{{chartInfo?.name}}</li>\n        </ul>\n      </ng-container>\n    </ng-template>\n    <ng-template btnTopTemplate>\n      <ng-container *ngIf=\"uuidChart\">\n        <div class=\"tabs-custom\">\n          <div (click)=\"onGotoByAction('view')\" class=\"tab-item\">\n            <span class=\"fa fa-eye mr-1\"></span><span\n            class=\"current\">{{'VISUALIZE.CHART.FIELD.VIEW' | translate}}</span>\n          </div>\n          <div *ngIf=\"hasVisualizePlus\" (click)=\"onGotoByAction('explore')\" class=\"tab-item active\">\n            <span class=\"fa fa-pencil mr-1 active\"></span><span\n            class=\"current\">{{'VISUALIZE.CHART.FIELD.ACTION_EDIT' | translate}}</span>\n          </div>\n          <div (click)=\"onGotoByAction('template')\" class=\"tab-item\" style=\"padding: 0 10px;\">\n            <span class=\"fa fa-object-ungroup mr-1\"></span><span\n            class=\"current\">{{'VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE' | translate}}</span>\n          </div>\n          <button (click)=\"editInfoChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n            class=\"fa fa-pencil-square-o mr-2\"\n            style=\"font-size: 15px\"></i>{{'VISUALIZE.FIELD.EDIT_INFO' | translate}}\n          </button>\n          <button (click)=\"onPublishAction()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n            <i [ngClass]=\"!chartInfo?.sharedUuid ? 'fa-globe' : 'fa-link'\" class=\"fa f-20 mr-2\"></i>\n            {{!chartInfo?.sharedUuid ? ('VISUALIZE.CHART.FIELD.ACTION_PUBLISH'|translate)\n            : ('VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'|translate)}}\n          </button>\n          <button (click)=\"onCopyPath()\" *ngIf=\"chartInfo?.sharedUuid\"\n                  class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n            <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n            {{'VISUALIZE.CHART.FIELD.COPY_SCR'|translate}}\n          </button>\n          <button (click)=\"onDelete(chartInfo)\" class=\"btn btn-sm mx-1 btn-custom btn-custom-danger\"><i\n            class=\"fa fa-trash-o mr-2\"></i>{{'VISUALIZE.CHART.FIELD.ACTION_DELETE' | translate}}\n          </button>\n        </div>\n      </ng-container>\n    </ng-template>\n  </ng-container>\n  <ng-template toolbarBottomTemplate>\n    <div [ngClass]=\"isPlugin ? 'w-100' : ''\" class=\"add-chart-layout-top\">\n      <div class=\"content-top\">\n        <div class=\"name-item\"><input (keyup)=\"getNameChart($event)\"\n                                      [(ngModel)]=\"valueName\"\n                                      class=\"name-input name \"\n                                      placeholder=\"{{'VISUALIZE.CHART.FIELD.NAME_CHART'|translate}}\"></div>\n        <div class=\"desc-item pr-2\">\n          <button (click)=\"onSaveChart($event)\" [disabled]=\"isDisabled\"\n                  class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step\"\n                  type=\"button\">\n            <i class=\"fa fa-save mr-1\"></i> {{'VISUALIZE.FIELD.TITTLE.SAVE'|translate}}\n          </button>\n\n          <button (click)=\"backBar(!isOpenRightBar)\" *ngIf=\"isViewAction && !isPlugin\"\n                  class=\"btn-custom btn-custom-icon px-1\"><i\n            aria-hidden=\"true\" class=\"icon fa fa-columns\"></i></button>\n        </div>\n      </div>\n    </div>\n  </ng-template>\n  <ng-template contentTemplate>\n    <div [ngClass]=\"isPlugin ? 'full-height' : ''\" class=\"add-chart-layout-bottom\">\n      <div class=\"container-create\">\n        <div [ngStyle]=\"hideShowDataset && {'display': 'none'}\" class=\"column-dataset\">\n          <div class=\"dataset-title\">\n            <h3>Dataset</h3>\n            <button (click)=\"onHideShowDataset()\" placement=\"left\"\n                    tooltip=\"{{'VISUALIZE.FIELD.HIDE.DATASET'|translate}}\">\n              <svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n                <path clip-rule=\"evenodd\"\n                      d=\"M7.29 11.29L11.29 7.29C11.5437 7.03634 11.9134 6.93728 12.2599 7.03012C12.6064 7.12297 12.877 7.39362 12.9699 7.74012C13.0627 8.08663 12.9637 8.45634 12.71 8.71L10.41 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H10.41L12.71 15.29C12.8993 15.4778 13.0058 15.7334 13.0058 16C13.0058 16.2666 12.8993 16.5222 12.71 16.71C12.5222 16.8993 12.2666 17.0058 12 17.0058C11.7334 17.0058 11.4778 16.8993 11.29 16.71L7.29 12.71C7.19896 12.6149 7.12759 12.5028 7.08 12.38C6.97998 12.1365 6.97998 11.8635 7.08 11.62C7.12759 11.4972 7.19896 11.3851 7.29 11.29ZM4 4C4.55229 4 5 4.44772 5 5V19C5 19.5523 4.55229 20 4 20C3.44772 20 3 19.5523 3 19V5C3 4.44772 3.44772 4 4 4Z\"\n                      fill=\"currentColor\"\n                      fill-rule=\"evenodd\"/>\n              </svg>\n            </button>\n          </div>\n          <app-dataset-select *ngIf=\"loadingSuccess\" [chartItem]=\"dataChart\" (datasetItem)=\"onSelectTable($event)\"></app-dataset-select>\n          <div class=\"container-search\">\n            <span class=\"icon-search-pos\"><i class=\"icon-s17 icon-secondary icon-search\"></i></span>\n            <input (keyup)=\"search(keyword)\" [(ngModel)]=\"keyword\"\n                   class=\"form-control-superset input-search col-md-12 col-xs-12\"\n                   placeholder=\"{{'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND'|translate}}\"\n                   searchString type=\"text\">\n          </div>\n          <div class=\"collapse-box d-flex flex-column\">\n            <span (click)=\"isShowColl = !isShowColl\" [attr.aria-expanded]=\"!isShowColl\"\n                  aria-controls=\"\" class=\"content-head ml-3\">{{'VISUALIZE.CHART.FIELD.COLUMN'|translate}}\n              ({{totalSchema}})\n              <i [ngClass]=\"isShowColl? 'icon-right': 'icon-right down'\" class=\"custom-icon\"></i>\n            </span>\n            <div class=\"collapse-column\">\n              <div [collapse]=\"isShowColl\" [isAnimated]=\"true\">\n                <!-- <span class=\"field-length\">Hiển thị {{schema.length}} của {{schema.length}}</span>-->\n                <span *ngFor=\"let coll of schema | schemaKey; let i = index\" class=\"content-item\">\n                  <span class=\"content-title\">\n                    <div class=\"data-type {{coll?.cls}}\"></div>\n                    <span class=\"w-50 overflow-hidden mr-2\">{{coll?.key}}</span>\n                    <span class=\"w-25 overflow-hidden\">{{coll?.value}}</span>\n                  </span>\n                </span>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"column-visualize\">\n          <!-- <iframe id=\"iframe-visualize\" src=\"http://localhost:2004/\" frameborder=\"\" title=\"iframe-visualize\" (load)=\"iframeLoadDone()\"></iframe> -->\n          <iframe [src]=\"visualizeUrl | safe\" frameborder=\"\"\n                  id=\"iframe-visualize\"\n                  title=\"iframe-visualize\" #iframeVisualize></iframe>\n          <div *ngIf=\"isShowSelectChartVisualize\" class=\"re-select-chart-wrapper\">\n            <div (click)=\"cancelReSelect(false)\" class=\"overflow-control\"></div>\n            <app-chart-select (cancelOut)=\"cancelReSelect($event)\" (itemOut)=\"reSelectChart($event)\"\n                              [isPlugin]=\"isPlugin\" [oldChart]=\"vizType\"\n                              ngClass=\"re-select-chart-visualize\"></app-chart-select>\n          </div>\n          <button (click)=\"onHideShowDataset()\" *ngIf=\"hideShowDataset && isFrameLoadDone\" class=\"show-dataset\"\n                  placement=\"right\" tooltip=\"{{'VISUALIZE.FIELD.SHOW.DATASET'|translate}}\">\n            <svg fill=\"none\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n              <path clip-rule=\"evenodd\"\n                    d=\"M15.71 11.29L11.71 7.29C11.4563 7.03634 11.0866 6.93728 10.7401 7.03012C10.3936 7.12297 10.123 7.39362 10.0301 7.74012C9.93728 8.08663 10.0363 8.45634 10.29 8.71L12.59 11H4C3.44772 11 3 11.4477 3 12C3 12.5523 3.44772 13 4 13H12.59L10.29 15.29C10.1007 15.4778 9.9942 15.7334 9.9942 16C9.9942 16.2666 10.1007 16.5222 10.29 16.71C10.4778 16.8993 10.7334 17.0058 11 17.0058C11.2666 17.0058 11.5222 16.8993 11.71 16.71L15.71 12.71C15.801 12.6149 15.8724 12.5028 15.92 12.38C16.02 12.1365 16.02 11.8635 15.92 11.62C15.8724 11.4972 15.801 11.3851 15.71 11.29ZM19 4C18.4477 4 18 4.44772 18 5V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V5C20 4.44772 19.5523 4 19 4Z\"\n                    fill=\"currentColor\"\n                    fill-rule=\"evenodd\"/>\n            </svg>\n          </button>\n        </div>\n      </div>\n    </div>\n  </ng-template>\n  <ng-template rightTemplate>\n    <app-chart-right-bar (close)=\"backBar()\" (delete)=\"onDelete($event)\" (reloadPage)=\"editSuccess($event)\"\n                         [chart]=\"chartInfo\" [isEdit]=\"isEditInfo\" [isPlugin]=\"isPlugin\"\n                         [view]=\"true\">\n    </app-chart-right-bar>\n  </ng-template>\n</app-action-view-layout>\n<app-chart-delete (deleteSuccess)=\"loadDelete()\"></app-chart-delete>\n<app-chart-publish-dialog (reload)=\"updateSuccess($event)\" [isViewCenter]=\"true\"></app-chart-publish-dialog>\n","import {ActionType, createAction, props} from \"@ngrx/store\";\r\n\r\nexport interface PublishItem {\r\n  sharedUuid: string,\r\n}\r\n\r\nexport enum EPublishAction {\r\n  PUBLISH = 'publish',\r\n}\r\n\r\nexport const sharedUuid = createAction(EPublishAction.PUBLISH, props<{ sharedUuid: string }>());\r\n\r\nexport type Publish_Action = | ActionType<typeof sharedUuid>\r\n","import {createSelector} from '@ngrx/store';\r\nimport {FEATURE_NAME} from '../../models/feature';\r\nimport {IAppState} from \"../state/app.state\";\r\n\r\nconst chartBindState = (state: IAppState) => (state as any)[FEATURE_NAME]?.data;\r\n\r\nexport const chartBindSelector = createSelector(chartBindState, state => state?.data);\r\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[navigationCenterTemplate]'\n})\nexport class NavigationCenterTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[toolbarCenterTemplate]'\n})\nexport class ToolbarCenterTemplateDirective {\n\n  constructor(public templateRef: TemplateRef<any>) { }\n\n}\n","import {Component, ContentChild, OnInit} from '@angular/core';\nimport {NavigationCenterTemplateDirective} from \"../directive/navigation-center-template.directive\";\nimport {ToolbarCenterTemplateDirective} from \"../directive/toolbar-center-template.directive\";\n\n@Component({\n  selector: 'app-center-view-layout',\n  templateUrl: './center-view-layout.component.html',\n  styleUrls: ['./center-view-layout.component.scss']\n})\nexport class CenterViewLayoutComponent implements OnInit {\n  @ContentChild(NavigationCenterTemplateDirective) navigationTemplate!: NavigationCenterTemplateDirective;\n  @ContentChild(ToolbarCenterTemplateDirective) toolbarTemplate!: ToolbarCenterTemplateDirective;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"container-toolbar h-toolbar justify-content-between\">\n  <ng-container *ngIf=\"toolbarTemplate\">\n    <ng-container [ngTemplateOutlet]=\"toolbarTemplate.templateRef\"></ng-container>\n  </ng-container>\n  <ng-container *ngIf=\"navigationTemplate\">\n    <ng-container [ngTemplateOutlet]=\"navigationTemplate.templateRef\"></ng-container>\n  </ng-container>\n</div>\n","import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {Subscription} from \"rxjs\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {Store} from \"@ngrx/store\";\nimport {IAppState} from \"../../core/store/state/app.state\";\nimport {CHART, EXPLORE, LIST, MAPPING, TEMPLATE, VIEW} from \"../constants/constants\";\nimport {ChartService} from \"../chart.service\";\nimport {NotificationService} from \"inet-core\";\nimport * as RightbarActions from '../../core/store/actions/rightbar.action';\n// import * as TemplateActions from '../../core/store/actions/template.actions';\nimport {ChartDeleteComponent} from \"../chart-delete/chart-delete.component\";\nimport {ShareService} from \"../../share/share.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ChartPublishDialogComponent} from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport * as Publish_Action from \"../../core/store/actions/publish.action\";\nimport {chartBindSelector} from \"../../core/store/selectors/chart-bind.selectors\";\nimport {Location} from \"@angular/common\";\n\n@Component({\n  selector: 'app-chart-center',\n  templateUrl: './chart-center.component.html',\n  styleUrls: ['./chart-center.component.scss']\n})\nexport class ChartCenterComponent implements OnInit, OnDestroy {\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild(ChartPublishDialogComponent) dialogPublish!: ChartPublishDialogComponent;\n  navSub: any;\n  action = ChartAction;\n  actionCurrent: string = ''\n  uuidChart: string = ''\n  isViewPublish: boolean = false\n  storeChartBind$: any\n  isViewPublishFormCenter: boolean = false;\n  hasVisualizePlus: boolean = false;\n  private readonly subRouter: Subscription;\n\n  constructor(private router: Router,\n              private store: Store<IAppState>,\n              private route: ActivatedRoute,\n              private chartService: ChartService,\n              private shareService: ShareService,\n              private notification: NotificationService,\n              private translate: TranslateService,\n              private location: Location) {\n    this.subRouter = this.route.paramMap.subscribe(params => {\n      this.uuidChart = params.get('uuid')\n    });\n    this.route.queryParams.subscribe(value => {\n      this.isViewPublish = value.hasOwnProperty('isViewPublish')\n      this.isViewPublishFormCenter = value.hasOwnProperty('isCenter')\n      if (!value) {\n        this.isViewPublishFormCenter = false;\n        this.isViewPublish = false;\n      }\n    })\n    this.storeChartBind$ = this.store.select(chartBindSelector).subscribe(value => {\n      // console.log('chartBindSelector:', value);\n      if (value) {\n        this.navSub = value\n      }\n    });\n    this.chartService.hasModule('visualizeplus').subscribe((res:boolean) => {\n      this.hasVisualizePlus = res;\n    })\n  }\n\n  ngOnDestroy(): void {\n    if (this.storeChartBind$) {\n      this.storeChartBind$.unsubscribe()\n    }\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n    this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: false}));\n  }\n\n  ngOnInit(): void {\n    this.actionCurrent = this.route.snapshot.children[0].routeConfig.path.toUpperCase() || this.action.VIEW;\n  }\n\n  onChart() {\n    this.router.navigate(['/', CHART, LIST]);\n  }\n\n  onView() {\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n    this.actionCurrent = this.action.VIEW\n    if ('fields' in this.navSub) {\n      this.router.navigate(['/', CHART, this.navSub.uuid, `${MAPPING}-${VIEW}`]);\n    } else {\n      this.router.navigate(['/', CHART, this.navSub['uuid'], VIEW]);\n    }\n\n  }\n\n  onViewPublish() {\n    this.actionCurrent = this.action.VIEW_PUBLISH\n  }\n\n  onExplore() {\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n    this.actionCurrent = this.action.EXPLORE\n    if ('fields' in this.navSub) {\n      this.router.navigate(['/', CHART, this.navSub.uuid, `${MAPPING}-${EXPLORE}`]);\n    } else {\n      this.router.navigate(['/', CHART, this.navSub.uuid, EXPLORE]);\n    }\n  }\n\n  onTemplate() {\n    this.actionCurrent = this.action.TEMPLATE\n    this.router.navigate(['/', CHART, this.navSub.uuid, TEMPLATE]);\n  }\n\n  deleteChart() {\n    this.chartDelete.onShowDialog(this.navSub)\n  }\n\n  editInfoChart() {\n    // this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: false}));\n    // this.store.dispatch(TemplateActions.setUuid({uuid: ''}));\n    this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: true}));\n  }\n\n  // publishAsTemplate() {\n  //   this.store.dispatch(TemplateActions.setIsTemplatePublish({isTemplatePublish: true}));\n  //   this.store.dispatch(TemplateActions.setUuid({uuid: this.navSub.uuid}));\n  //   this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: true}));\n  // }\n\n  onCopyPath() {\n    let uuid = this.isViewPublish ? this.navSub.uuid : this.navSub.sharedUuid\n    this.shareService.copyPath(uuid).subscribe(status => {\n      let key = status ? 'VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS' : 'VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD'\n      this.notification.showMessage(this.translate.instant(key), status ? 'success' : 'error', 'Visualize')\n    })\n  }\n\n  onPublishAction() {\n    this.dialogPublish.showDialogChange(this.navSub);\n  }\n\n  updateSuccess(event: any) {\n    const item = JSON.parse(JSON.stringify(this.navSub))\n    item.sharedUuid = event.uuid || undefined\n    if (event.uuid) {\n      this.store.dispatch(Publish_Action.sharedUuid({sharedUuid: event.uuid}));\n      this.navSub = JSON.parse(JSON.stringify(item))\n    } else {\n      if (this.isViewPublish) {\n        this.location.back();\n        this.isViewPublish = false;\n      } else {\n        this.store.dispatch(Publish_Action.sharedUuid({sharedUuid: undefined}));\n        this.navSub = JSON.parse(JSON.stringify(item))\n      }\n    }\n  }\n\n  back() {\n    /*   if (!this.isViewPublish && !this.isViewPublishFormCenter) {\n         return\n       }*/\n    this.isViewPublishFormCenter = false;\n    this.isViewPublish = false;\n    this.location.back()\n  }\n}\n\nexport enum ChartAction {\n  VIEW = 'VIEW',\n  EXPLORE = 'EXPLORE',\n  VIEW_PUBLISH = 'VIEW_PUBLISH',\n  TEMPLATE = 'TEMPLATE'\n}\n","<app-center-view-layout>\n  <ng-template toolbarCenterTemplate>\n    <ul class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\" style=\"flex: 1\">\n      <li (click)=\"onChart()\" class=\"\">{{'VISUALIZE.CHART.FIELD_TITLE' | translate}}</li>\n      <li [class.active]=\"!isViewPublishFormCenter\" class=\"text-truncate pr-2\">\n          <span *ngIf=\"isViewPublish && !isViewPublishFormCenter\"\n                class=\"f-12\" style=\"color: #212529\">\n            {{'VISUALIZE.CHART.FIELD.CHART_PUBLISH' | translate}}:\n          </span>\n        <span (click)=\"back()\" class=\"font-weight-medium\">{{ navSub?.name || navSub?.chartName}}</span>\n      </li>\n      <li *ngIf=\"isViewPublish && isViewPublishFormCenter\" [class.lasted]=\"isViewPublishFormCenter\"\n          class=\"f-12 font-weight-medium\" style=\"color: #666666;\">\n        {{'VISUALIZE.CHART.FIELD.CHART_PUBLISH' | translate}}\n      </li>\n    </ul>\n  </ng-template>\n  <ng-template navigationCenterTemplate>\n    <div *ngIf=\"!isViewPublish; else screenPublish\" class=\"tabs-custom\">\n      <div (click)=\"onView()\" [class.active]=\"actionCurrent === action.VIEW\" class=\"tab-item font-weight-medium\">\n        <span [class.active]=\"actionCurrent.startsWith(action.VIEW)\" class=\"fa fa-eye mr-1\"></span><span\n        class=\"current\">{{'VISUALIZE.CHART.FIELD.VIEW' | translate}}</span>\n      </div>\n      <div (click)=\"onExplore()\" [class.active]=\"actionCurrent === action.EXPLORE\" class=\"tab-item font-weight-medium\">\n        <span [class.active]=\"actionCurrent.startsWith(action.EXPLORE)\" class=\"fa fa-pencil mr-1\"></span><span\n        class=\"current\">{{'VISUALIZE.CHART.FIELD.ACTION_EDIT' | translate}}</span>\n      </div>\n      <div *ngIf=\"hasVisualizePlus\" (click)=\"onTemplate()\" [class.active]=\"actionCurrent === action.TEMPLATE\" class=\"tab-item font-weight-medium\" style=\"padding: 0 10px;\">\n        <span [class.active]=\"actionCurrent.startsWith(action.TEMPLATE)\" class=\"fa fa-object-ungroup mr-1\"></span><span\n        class=\"current\">{{'VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE' | translate}}</span>\n      </div>\n      <button (click)=\"editInfoChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n        class=\"fa fa-pencil-square-o mr-2\"\n        style=\"font-size: 15px\"></i>{{'VISUALIZE.FIELD.EDIT_INFO' | translate}}</button>\n      <button (click)=\"onPublishAction()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n        <i [ngClass]=\"!navSub?.sharedUuid ? 'fa-globe' : 'fa-link'\" class=\"fa f-20 mr-2\"></i>\n        {{!navSub?.sharedUuid ? ('VISUALIZE.CHART.FIELD.ACTION_PUBLISH'|translate)\n        : ('VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'|translate)}}\n      </button>\n      <button (click)=\"onCopyPath()\" *ngIf=\"navSub?.sharedUuid\"\n              class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n        <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n        {{'VISUALIZE.CHART.FIELD.COPY_SCR'|translate}}\n      </button>\n      <button (click)=\"deleteChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-danger\"><i\n        class=\"fa fa-trash-o mr-2\"></i>{{'VISUALIZE.CHART.FIELD.ACTION_DELETE' | translate}}</button>\n    </div>\n\n    <ng-template #screenPublish>\n      <div class=\"tabs-custom\">\n        <div class=\"tab-item font-weight-medium active\">\n          <span class=\"fa fa-desktop mr-1 active\"></span><span\n          class=\"current\">{{'VISUALIZE.CHART.FIELD.VIEW_CHART_PUBLISH' | translate}}</span>\n        </div>\n        <button (click)=\"onCopyPath()\"\n                class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n          <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n          {{'VISUALIZE.CHART.FIELD.COPY_SCR'|translate}}\n        </button>\n        <button (click)=\"onPublishAction()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n          <i class=\"fa f-20 fa-link mr-2\"></i>\n          {{'VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'|translate}}\n        </button>\n      </div>\n    </ng-template>\n  </ng-template>\n</app-center-view-layout>\n<router-outlet></router-outlet>\n<app-chart-delete (deleteSuccess)=\"onChart()\"></app-chart-delete>\n<app-chart-publish-dialog (reload)=\"updateSuccess($event)\" [isViewCenter]=\"true\"></app-chart-publish-dialog>\n","import {Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {AngularGridInstance, Column, GridOption, SlickDataView, SlickGrid} from \"angular-slickgrid\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {GridOptionConstant} from \"../layout-common-constants\";\nimport {ErrorMessage, iNet} from \"inet-core\";\nimport {DatePipe} from \"@angular/common\";\nimport {CustomPaginationComponent} from \"inet-ui\";\nimport {ChartService} from \"../../chart/chart.service\";\n\n@Component({\n  selector: 'app-view-data-chart',\n  templateUrl: './view-data-chart.component.html',\n  styleUrls: ['./view-data-chart.component.scss']\n})\nexport class ViewDataChartComponent implements OnInit, OnChanges, OnDestroy {\n\n  @ViewChild('paging', {static: false}) pagination: CustomPaginationComponent;\n  @Input() option: IOptionGrid;\n  @Input() gridId: string\n\n  attributeItems: { name: string, type: string }[] = [];\n  columnDefinitions: Column[] = [];\n  gridOptions!: GridOption;\n  gridChart: any[] = [];\n  resultData: any[] = [];\n  pageSize: number = 20;\n  pageNumber: number = 0;\n  totalItems: number = 0;\n\n  private angularGrid!: AngularGridInstance;\n  private dataView!: SlickDataView;\n  private grid!: SlickGrid;\n  private translateGrid: TranslateService;\n  private columnEmpty: Column[] = [{\n    headerCssClass: 'd-flex',\n    cssClass: 'd-flex align-items-center',\n    id: 'data_id',\n    field: 'data_id',\n    minWidth: 100,\n    sortable: true,\n    formatter: () => {\n      return '';\n    }\n  }];\n  private resizeListener: () => void;\n\n  constructor(private translate: TranslateService,\n              private chartService: ChartService,\n              private datepipe: DatePipe,) {\n  }\n\n  ngOnInit(): void {\n    this.initOption();\n    // this.resizeListener = this.onResize.bind(this);\n    // window.addEventListener('resize', this.resizeListener);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('option' in changes && !iNet.isEmpty(this.option)) {\n      this.resultData = [];\n      this.loadPage({pageNumber: this.pageNumber, pageSize: this.pageSize});\n    }\n  }\n\n  ngOnDestroy(): void {\n    // window.removeEventListener('resize', this.resizeListener);\n  }\n\n  private initOption() {\n    let gridOptionConstant: GridOption = GridOptionConstant(`grid-${this.gridId}-result`, 'data_id');\n    let gridOption: GridOption = {\n      i18n: this.translate,\n      enableTranslate: true,\n    }\n    this.gridOptions = Object.assign(gridOptionConstant, gridOption);\n  }\n\n  angularGridReady(angularGrid: AngularGridInstance) {\n    this.angularGrid = angularGrid;\n    this.dataView = angularGrid.dataView;\n    this.grid = angularGrid.slickGrid;\n    this.translateGrid = this.grid?.getOptions()?.i18n;\n  }\n\n  builderDataId(items: any) {\n    items.forEach(item => {\n      item['data_id'] = iNet.generateId()\n    });\n    return items;\n  }\n\n  loadPage(event: any) {\n    this.loadData(this.option, event);\n  }\n\n  loadData(data: any, pagination: any) {\n    this.columnDefinitions = this.columnEmpty;\n    if (iNet.isEmpty(data.name)) {\n      let columns: Column[] = [];\n      if (!iNet.isEmpty(data.schemas)) {\n        columns = this.builderGrids(data.schemas);\n      } else {\n        const _dataSchema = !iNet.isEmpty(data.data) ? data.data[0] : data[0];\n        const schemas = Object.keys(_dataSchema).map(key => {\n          return key;\n        })\n        columns = this.builderGrids(schemas);\n      }\n      this.columnDefinitions = columns.length > 0 ? columns : this.columnEmpty;\n      if (this.resultData.length === 0) {\n        const _data = !iNet.isEmpty(data.data) ? data.data : data;\n        this.resultData = this.builderDataId(  _data) || [];\n        this.totalItems = this.resultData.length || 0;\n      }\n      const _pagination = this.buildPage(pagination);\n      this.gridChart = this.resultData.slice(_pagination.start, _pagination.end);\n    } else {\n      this.attributeItems = this.convertSchemas(data.schemas);\n      const columns: Column[] = this.builderGrid(data.schemas);\n      this.columnDefinitions = columns.length > 0 && this.attributeItems.length > 0 ? columns : this.columnEmpty;\n      this.getSourceView(data, pagination);\n    }\n    this.onResize();\n  }\n\n  getSourceView(data: any, pagination: any) {\n    let param = {name: data.name, category: data.category, type: data.type, ...pagination}\n    this.chartService.getSourceView(param).subscribe(result => {\n      if (result.type !== ErrorMessage.TYPE) {\n        this.totalItems = result.total;\n        this.gridChart = this.builderDataId(result.items);\n      }\n    })\n  }\n\n\n  buildPage(params: any) {\n    return {\n      start: params.pageNumber === 0 ? params.pageNumber : params.pageNumber * params.pageSize,\n      end: params.pageNumber === 0 ? params.pageSize : (params.pageNumber + 1) * params.pageSize,\n    }\n  }\n\n  convertSchemas(schemas: Object) {\n    return Object.keys(schemas).map(key => {\n      return {name: key, type: schemas[key]}\n    })\n  }\n\n  builderGrids(arrayData: any[]) {\n    const columns: Column[] = arrayData.map(key => {\n      return {\n        headerCssClass: 'd-flex font-weight-bold',\n        cssClass: 'd-flex align-items-center',\n        id: key, field: key, name: key.toLowerCase(), sortable: true, minWidth: 100,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          return !iNet.isEmpty(value) ? `<span class=\"text-truncate\">${value}</span>` : '';\n        },\n      }\n\n    });\n    return columns\n  }\n\n  builderGrid(objectData: any) {\n    // let columnAction: Column;\n    const columns: Column[] = Object.keys(objectData).map(key => {\n      return {\n        headerCssClass: 'd-flex font-weight-bold',\n        cssClass: 'd-flex align-items-center',\n        id: key, field: key, name: key.toLowerCase(), sortable: true, minWidth: 100,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          if (objectData[key] == 'DATE') {\n            return value > 0 ? this.datepipe.transform(new Date(value), 'dd/MM/yyyy HH:mm:ss') : ''\n          } else {\n            if (typeof value !== 'string') {\n              value = JSON.stringify(value);\n            }\n            return !iNet.isEmpty(value) ? `<span class=\"text-truncate\">${value}</span>` : '';\n          }\n        },\n        header: {\n          buttons: [\n            {\n              tooltip: `${objectData[key]}`,\n              cssClass: `data-type ${this.getHeaderIconByType(objectData[key])} order-first`,\n            }\n          ]\n        },\n      }\n\n    });\n    return columns\n  }\n\n  getHeaderIconByType(type: string) {\n    if(!type) {\n      return '';\n    }\n    switch (type?.toUpperCase()) {\n      case 'DOUBLE':\n      case 'FLOAT':\n      case 'LONG':\n      case 'INT':\n      case 'INT8':\n      case 'INT16':\n      case 'INT32':\n      case 'INT64':\n      case 'UINT':\n      case 'UINT8':\n      case 'UINT16':\n      case 'UINT32':\n      case 'UINT64':\n        return 'number';\n      case'BOOLEAN':\n        return 'boolean';\n      case 'TIMESTAMP':\n      case 'DATE':\n        return 'date';\n      case 'CHAR':\n        return 'char';\n      case 'STRING':\n      default:\n        return 'string';\n    }\n  }\n\n  onResize(delay: number = 100) {\n    if (!this.angularGrid) {\n      return\n    }\n    this.angularGrid.resizerService.resizeGrid(delay);\n  }\n\n  dataViewReady(event: any) {\n    this.onResize()\n  }\n\n}\n\ninterface IOptionGrid {\n  schemas: any,\n  data?: any[],\n  id: string,\n}","<div class=\"h-100 d-flex flex-column\">\n  <app-custom-pagination #paging\n                         [totalItems]=\"totalItems\"\n                         [pageSize]=\"pageSize\"\n                         [pageNumber]=\"pageNumber\"\n                         [params]=\"{}\"\n                         [firstLoad]=\"false\"\n                         (onLoad)=\"loadPage($event)\">\n  </app-custom-pagination>\n  <div class=\"container-fluid px-0 flex-grow-1\" id=\"grid-{{gridId}}-result\">\n    <angular-slickgrid (onAngularGridCreated)=\"angularGridReady($event)\"\n                       (onDataviewCreated)=\"dataViewReady($event)\"\n                       [columnDefinitions]=\"columnDefinitions\"\n                       [dataset]=\"gridChart\"\n                       [gridOptions]=\"gridOptions\"\n                       gridId=\"grid-{{gridId}}-result-id\">\n    </angular-slickgrid>\n  </div>\n</div>","import { uniqueArrayObject } from '../../common/uniqueArray';\nimport { KeyValue } from '../model/chart-custom';\n\nexport function handleHTML() {\n  const arrSelect = document.querySelectorAll('span[type=\"select\"]');\n  const arrInput = document.querySelectorAll('span[type=\"input\"]');\n  const arrFontSize = document.querySelectorAll('span[fontsize]');\n  const arrColor = document.querySelectorAll('span[color]');\n  const arrWidth = document.querySelectorAll('[sizewidth]');\n  const arrHeight = document.querySelectorAll('[sizeheight]');\n  const arrImg = document.querySelectorAll('img[imguri]');\n  const arrBackground = document.querySelectorAll('[background]');\n  const arrLoop = document.querySelectorAll('[loop]');\n\n  this.arrInput = [];\n  this.arrSelect = [];\n  this.arrFontSize = [];\n  this.arrColor = [];\n  this.arrWidth = [];\n  this.arrHeight = [];\n  this.arrImg = [];\n  this.arrBackground = [];\n  this.arrLoop = [];\n\n  arrSelect.forEach((select, index) => {\n    const obj = {};\n    obj['type'] = select.getAttribute('type');\n    obj['name'] = select.getAttribute('name');\n    this.arrSelect.push(obj);\n  });\n  arrInput.forEach((input, index) => {\n    const obj = {};\n    obj['type'] = input.getAttribute('type');\n    obj['name'] = input.getAttribute('name');\n    this.arrInput.push(obj);\n  });\n  arrColor.forEach((color) => {\n    const obj = {};\n    obj['type'] = 'color';\n    obj['name'] = color.getAttribute('color');\n    this.arrColor.push(obj);\n  });\n\n  arrFontSize.forEach((font) => {\n    const obj = {};\n    obj['type'] = 'fontsize';\n    obj['name'] = font.getAttribute('fontsize');\n    this.arrFontSize.push(obj);\n  });\n\n  arrWidth.forEach((width) => {\n    const obj = {};\n    obj['type'] = 'sizewidth';\n    obj['name'] = width.getAttribute('sizewidth');\n    this.arrWidth.push(obj);\n  });\n\n  arrHeight.forEach((height) => {\n    const obj = {};\n    obj['type'] = 'sizeheight';\n    obj['name'] = height.getAttribute('sizeheight');\n    this.arrHeight.push(obj);\n  });\n\n  arrImg.forEach((img) => {\n    const obj = {};\n    obj['type'] = 'imguri';\n    obj['name'] = img.getAttribute('imguri');\n    obj['value'] = '';\n    this.arrImg.push(obj);\n  });\n\n  arrBackground.forEach((bg) => {\n    const obj = {};\n    obj['type'] = 'background';\n    obj['name'] = bg.getAttribute('background');\n    this.arrBackground.push(obj);\n  });\n\n  arrLoop.forEach((l) => {\n    const obj = {};\n    obj['type'] = 'loop';\n    obj['name'] = l.getAttribute('loop');\n    obj['valueLoop'] = l.outerHTML;\n    obj['parentLoop'] = `parent_${l.getAttribute('loop')}`;\n    this.arrLoop.push(obj);\n  });\n\n  this.arrLoop = uniqueArrayObject(this.arrLoop, 'name');\n  this.arrCustomize = uniqueArrayObject(\n    [\n      ...this.arrColor,\n      ...this.arrBackground,\n      ...this.arrFontSize,\n      ...this.arrWidth,\n      ...this.arrHeight,\n    ],\n    'name'\n  );\n  const fbGroupSelect = this.arrSelect.reduce(\n    (prevObj: KeyValue, curObj: KeyValue) => ({\n      ...prevObj,\n      [curObj.name]: [null],\n    }),\n    {}\n  );\n  const fbGroupInput = this.arrInput.reduce(\n    (prevObj: KeyValue, curObj: KeyValue) => ({\n      ...prevObj,\n      [curObj.name]: [null],\n    }),\n    {}\n  );\n  const fbGroupColorFont = this.arrCustomize.reduce(\n    (prevObj: KeyValue, curObj: KeyValue) => ({\n      ...prevObj,\n      [curObj.name]: [null],\n    }),\n    {}\n  );\n  this.formSelect = this.fb.group(fbGroupSelect);\n  this.formInput = this.fb.group(fbGroupInput);\n  this.formCustomize = this.fb.group(fbGroupColorFont);\n  this.formChangeCommon();\n}\n\nexport function handleHTMLFormTemplate() {\n  const arrSelect = document.querySelectorAll('span[type=\"select\"]');\n  const arrLoop = document.querySelectorAll('[loop]');\n\n  this.arrSelect = [];\n  this.arrLoop = [];\n\n  arrSelect.forEach((select, index) => {\n    const obj = {};\n    obj['type'] = select.getAttribute('type');\n    obj['name'] = select.getAttribute('name');\n    this.arrSelect.push(obj);\n  });\n  \n  arrLoop.forEach((l) => {\n    const obj = {};\n    obj['type'] = 'loop';\n    obj['name'] = l.getAttribute('loop');\n    obj['valueLoop'] = l.outerHTML;\n    obj['parentLoop'] = `parent_${l.getAttribute('loop')}`;\n    this.arrLoop.push(obj);\n  });\n\n  this.arrLoop = uniqueArrayObject(this.arrLoop, 'name');\n}\n\n","import { KeyValue } from '../chart/model/chart-custom';\n\nexport const fillData = (numberOfTimes: number = 0, type: string): any[] => {\n  return new Array(numberOfTimes).fill(type);\n};\nexport const handleLoop = (\n  arrLoop: KeyValue[],\n  obj: KeyValue,\n  iterator: string,\n  selectValue: KeyValue\n) => {\n  const singleLoop = arrLoop.filter((l) => l.name === iterator)[0];\n  if (singleLoop) {\n    if (~~Number(obj[selectValue[iterator]]) > 0) {\n      const parents = document.querySelectorAll(\n        `[parentloop=\"${singleLoop.parentLoop}\"]`\n      );\n      parents.forEach((parent: HTMLElement) => {\n        parent.innerHTML = fillData(\n          ~~Number(obj[selectValue[iterator]]),\n          singleLoop.valueLoop\n        ).join('');\n      });\n    } else {\n      const parents = document.querySelectorAll(\n        `[parentloop=\"${singleLoop.parentLoop}\"]`\n      );\n      parents.forEach((parent: HTMLElement) => {\n        parent.innerHTML = '';\n      });\n    }\n  }\n};\n\nexport const convertCalcLoop = (calcLoop:KeyValue[], obj: KeyValue, selectValue: KeyValue, iterator: string) => {\n  for (const calc of calcLoop) {\n    let value = calc.operator ? calc.operator : String(calc.name).slice(5, -1);\n    if(calc.name.includes(iterator)) {\n      const regex = new RegExp(iterator, 'g');\n      value = value.replace(regex, String(~~Number(obj[selectValue[iterator]])));\n    }\n    calc['operator'] = value;\n  }\n}\n\nexport const handleCalcLoop = (calcLoop: KeyValue[]) => {\n  calcLoop.forEach(calc => {\n    if(eval(calc.operator) > 0) {\n      const parents = document.querySelectorAll(`[parentloop=\"${calc.parentLoop}\"]`);\n      parents.forEach((parent:HTMLElement) => {\n        parent.innerHTML = fillData(eval(calc.operator), calc.valueLoop).join('');\n        parent.style.marginLeft = '-3px';\n      });\n    }else {\n      const parents = document.querySelectorAll(`[parentloop=\"${calc.parentLoop}\"]`);\n      parents.forEach((parent:HTMLElement) => {\n        parent.innerHTML = '';\n      });\n    }\n  });\n}\n","export enum MappingChartAction {\n    VIEW = \"VIEW\",\n    EXPLORE = \"EXPLORE\",\n    TEMPLATE = \"TEMPLATE\",\n    NO_APPLIED = \"NO_APPLIED\",\n    APPLIED_DATA = \"APPLIED_DATA\",\n    APPLIED_NO_DATA = \"APPLIED_NO_DATA\",\n    RESULT = \"result\",\n}\n\n\n\nexport enum CustomChartAction {\n    VIEW = \"VIEW\",\n    EXPLORE = \"EXPLORE\",\n    TEMPLATE = \"TEMPLATE\",\n    NO_APPLIED = \"NO_APPLIED\",\n    APPLIED_DATA = \"APPLIED_DATA\",\n    APPLIED_NO_DATA = \"APPLIED_NO_DATA\",\n    RESULT = \"result\",\n}\n\n\nexport enum ViewChartAction {\n    VIEW = \"VIEW\",\n    EXPLORE = \"EXPLORE\",\n    TEMPLATE = \"TEMPLATE\",\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Pipe({\n    name: 'safeHtml'\n})\nexport class SafeHtmlPipe implements PipeTransform {\n    constructor(private sanitized: DomSanitizer) {\n    }\n    transform(value: string) {\n        return this.sanitized.bypassSecurityTrustHtml(value);\n    }\n\n}\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartService } from \"../chart.service\";\nimport { Subscription } from \"rxjs\";\nimport { ActivatedRoute, NavigationEnd, Router } from \"@angular/router\";\nimport { Location } from \"@angular/common\";\nimport { ChartItem, DatasetItem } from \"../../model/chart\";\nimport {\n  CHART,\n  CHART_PLUGIN,\n  EXPLORE,\n  LIST,\n  MAPPING,\n  TEMPLATE,\n  VIEW,\n} from \"../constants/constants\";\nimport { Store } from \"@ngrx/store\";\nimport { IAppState } from \"../../core/store/state/app.state\";\nimport { NgSelectComponent } from \"@ng-select/ng-select\";\nimport {\n  EType,\n  ETypeSubmit,\n  IAttribute,\n  IColumnSchema,\n  IDataMapping,\n  IField,\n  IParamsChart,\n  IParamsMetadata,\n  IQueryContext,\n  IResMetadata,\n  IResQueryParams,\n  IResSearchTemplateItem,\n  IVizType,\n  EVisualize,\n  IParamsChartTemplate,\n  IResChart,\n  SQLSchema,\n} from \"../model/template\";\nimport {\n  FormBuilder,\n  FormGroup,\n  Validators,\n  FormControl,\n} from \"@angular/forms\";\nimport { IColumnParam } from \"../../core/utils/get-column-chart\";\nimport { decode, encode } from \"js-base64\";\nimport { EVizType, IDataset, IMessage } from \"../model/chart\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ChartDeleteComponent } from \"../chart-delete/chart-delete.component\";\nimport { ShareService } from \"../../share/share.service\";\nimport * as RightbarActions from \"../../core/store/actions/rightbar.action\";\nimport { ChartPublishDialogComponent } from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport * as Publish_Action from \"../../core/store/actions/publish.action\";\nimport { rightbarSelector } from \"../../core/store/selectors/rightbar.selector\";\nimport { TabDirective } from \"ngx-bootstrap/tabs\";\nimport { ViewDataChartComponent } from \"../../layout-common/view-data-chart/view-data-chart.component\";\nimport { KeyValue } from \"../model/chart-custom\";\nimport { handleHTMLFormTemplate } from \"../chart-html-template/chart-html-template.fuctions\";\nimport { convertCalcLoop, handleCalcLoop, handleLoop } from \"../../common\";\nimport { MappingChartAction } from \"../model/chart-action\";\n\n@Component({\n  selector: \"app-chart-mapping\",\n  templateUrl: \"./chart-mapping.component.html\",\n  styleUrls: [\"./chart-mapping.component.scss\"],\n})\nexport class ChartMappingComponent implements OnInit, AfterViewInit, OnDestroy {\n  @ViewChild(\"organSelect\") ngOrgan: NgSelectComponent;\n  @ViewChild(\"keyword\") keywordInput!: ElementRef;\n  @ViewChild(\"iframeVisualizeMapping\") iframeVisualizeMapping: ElementRef;\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild(ChartPublishDialogComponent)\n  dialogPublish!: ChartPublishDialogComponent;\n  @ViewChild(ViewDataChartComponent) dataChart!: ViewDataChartComponent;\n\n  plugin = iNet.getPluginManager();\n  isPlugin: boolean = false;\n  dsType: string;\n  dsCategory: string;\n  dsTable: string;\n  dataTemplate: IResSearchTemplateItem;\n  chart: IResChart;\n  uuidTemplate: string;\n  uuidChart: string;\n  schemas: SQLSchema;\n  arrayNumber: IColumnSchema[] = [];\n  arrayString: IColumnSchema[] = [];\n  arrayDate: IColumnSchema[] = [];\n  arrayChar: IColumnSchema[] = [];\n  arrayVarchar: IColumnSchema[] = [];\n  arrDataMapping: IDataMapping[] = [];\n  attribute: IAttribute;\n  queryContext: IQueryContext;\n  form: FormGroup = this.fb.group({});\n  loadingSuccsess: boolean = false;\n  formChart: FormGroup = this.fb.group({\n    name: [null, Validators.required],\n  });\n  typeSubmit: string;\n  paramsChart: IParamsChart;\n  fields: IField[] = [];\n  isValid: boolean = false;\n  urlVisualizeChart: string = iNet.getPUrl(\"visualcommon/page/visualize-chart\");\n  urlImgLoading: string = this.coreService.getImageUrlFromModule(\n    \"loading.gif\",\n    \"analytics\"\n  );\n  queriesData: any = undefined;\n  formData: any;\n  showDefault: boolean = true;\n  vizType: IVizType;\n  eventResizeVisualize: EventListenerOrEventListenerObject;\n  getMessageApp: EventListenerOrEventListenerObject;\n  resizeTimeout: any;\n  width: number;\n  height: number;\n  thumbnail: string;\n  desc: string;\n  title: string;\n  actionCurrent: string = \"\";\n  action = MappingChartAction;\n  isViewPublish: boolean = false;\n  isViewAction: boolean = false;\n  isOpenRightBar: boolean = false;\n  isEditInfo: boolean = false;\n  datasets: IResMetadata;\n  tabCurrent: string = \"\";\n  showDefaultGird: string = this.action.NO_APPLIED;\n  viewDataChart: any;\n  rightBarSub$?: Subscription;\n\n  //chart HTML\n  contentHTML: string;\n  selectValue: KeyValue;\n  arrLoop: KeyValue[] = [];\n  arrSelect: KeyValue[] = [];\n  handHTML: any;\n\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n\n  constructor(\n    private chartService: ChartService,\n    private router: Router,\n    private route: ActivatedRoute,\n    private location: Location,\n    private shareService: ShareService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private store: Store<IAppState>,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    this.route.queryParams.subscribe((res: IResQueryParams) => {\n      this.dsType = res.type || \"\";\n      this.dsCategory = res.category || \"\";\n      this.dsTable = res.name || \"\";\n      this.uuidTemplate = res.uuid_template || \"\";\n      this.uuidChart = res.uuid || \"\";\n      this.isViewPublish = res.hasOwnProperty(\"isViewPublish\");\n      if (!res) {\n        this.isViewPublish = false;\n      }\n    });\n    this.backBar();\n    this.rightBarSub$ = this.store.select(rightbarSelector).subscribe((res) => {\n      res ? (this.isOpenRightBar = true) : null;\n      this.isEditInfo = res;\n      if (!!this.dataChart) {\n        this.dataChart.onResize();\n      }\n    });\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n  }\n\n  ngOnDestroy() {\n    if (this.rightBarSub$) {\n      this.backBar(false, true);\n      this.rightBarSub$.unsubscribe();\n    }\n    window.removeEventListener(\"message\", this.getMessageApp, false);\n    window.removeEventListener(\"resize\", this.eventResizeVisualize, false);\n  }\n\n  ngOnInit(): void {\n    this.getMessageApp = this.getMessageMapping.bind(this);\n    this.eventResizeVisualize = this.eventResizeScreen.bind(this);\n    this.handHTML = handleHTMLFormTemplate.bind(this);\n    window.addEventListener(\"message\", this.getMessageApp, false);\n    this.actionCurrent = this.action.EXPLORE;\n    const parent = document.getElementById(\"mapping__wrap\");\n    if (parent) {\n      parent.addEventListener(\"resize\", this.eventResizeVisualize, false);\n    }\n  }\n  ngAfterViewInit(): void {\n    const iFrame: HTMLIFrameElement = this.iframeVisualizeMapping.nativeElement;\n    iFrame.onload = () => {\n      this.iframeLoadDone();\n    };\n  }\n\n  iframeLoadDone() {\n    if (this.uuidChart) {\n      this.loadChart();\n      setTimeout(() => {\n        this.isViewAction = true;\n      });\n    }\n    if (this.dsType && this.dsCategory && this.dsTable) {\n      this.getMetadata();\n    }\n  }\n\n  encodeBase64(str: string) {\n    return window.btoa(unescape(encodeURIComponent(str)));\n  }\n\n  decodeBase64(str: string) {\n    return decodeURIComponent(escape(window.atob(str)));\n  }\n\n  getImageUrl(__value: string) {\n    let __url: string = \"\";\n    if (__value) {\n      __url = this.coreService.getImageUrlFromModule(__value, \"visualcommon\");\n    }\n    return __url;\n  }\n\n  loadOneTemplate() {\n    this.chartService\n      .loadTemplate(this.uuidTemplate)\n      .subscribe((res: IResSearchTemplateItem) => {\n        console.log('IResSearchTemplateItem:', res);\n        this.dataTemplate = res;\n        this.handleDataset(res);\n        if (res.sourceType === EVizType.HTML_TEMPLATE) {\n          this.thumbnail = res.thumbnail;\n        } else {\n          this.thumbnail = `/images/visualcommon/${res.thumbnail\n            .split(\"/\")\n            .pop()}`;\n        }\n        this.handleCommon(res);\n      });\n  }\n\n  getMetadata(reSelect: boolean = false) {\n    let data: IParamsMetadata = {\n      type: this.dsType,\n      category: this.dsCategory,\n      name: this.dsTable,\n    };\n    this.chartService.getOneDataset(data).subscribe((res: IResMetadata) => {\n      this.datasets = res;\n      this.schemas = res.schemas;\n      this.handleGetColumnByType(res);\n      if (!this.chart) {\n        if (this.uuidTemplate && !this.dataTemplate) {\n          this.loadOneTemplate();\n        } else {\n          this.handleDataset(this.dataTemplate);\n        }\n      } else {\n        this.handleLoadChart(this.chart, reSelect);\n      }\n      this.loadingSuccsess = true;\n    });\n  }\n\n  getMetadataEdit() {\n    let data: IParamsMetadata = {\n      type: this.dsType,\n      category: this.dsCategory,\n      name: this.dsTable,\n    };\n    this.chartService.getOneDataset(data).subscribe((res: IResMetadata) => {\n      this.datasets = res;\n      this.schemas = res.schemas;\n      this.loadingSuccsess = true;\n      this.handleGetColumnByType(res);\n      this.handleLoadChart(this.chart, false);\n      this.onApply();\n    });\n  }\n\n  handleDataset(res: IResSearchTemplateItem) {\n    this.arrDataMapping = res.fields.map((filed: IColumnParam) => {\n      let obj: IDataMapping = {\n        column: filed,\n        arrMapping: undefined,\n        valueMapping: \"\",\n      };\n      switch (filed.type) {\n        case EType.INT:\n        case EType.DOUBLE:\n        case EType.LONG:\n        case EType.INT64:\n        case EType.FLOAT:\n        case EType.NUMBER:\n          obj.arrMapping = this.arrayNumber;\n          obj.valueMapping =\n            obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          break;\n        case EType.STRING:\n          obj.arrMapping = this.arrayString;\n          obj.valueMapping =\n            obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          break;\n        case EType.CHAR:\n          obj.arrMapping = this.arrayChar;\n          obj.valueMapping =\n            obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          break;\n        case EType.VARCHAR:\n          obj.arrMapping = this.arrayVarchar;\n          obj.valueMapping =\n            obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          break;\n        case EType.DATE:\n          obj.arrMapping = this.arrayDate;\n          obj.valueMapping =\n            obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          break;\n        default:\n          break;\n      }\n      return obj;\n    });\n    const config = this.arrDataMapping.reduce(\n      (prevObj, curObj: IDataMapping) => ({\n        ...prevObj,\n        [curObj.column.name]: [curObj.valueMapping, Validators.required],\n      }),\n      {}\n    );\n    this.isValid = this.arrDataMapping.every(\n      (data: IDataMapping) => data.valueMapping\n    );\n    this.form = this.fb.group(config);\n  }\n\n  handleGetColumnByType(res: IResMetadata) {\n    for (const iterator of Object.keys(res.schemas)) {\n      switch (res.schemas[iterator]) {\n        case EType.INT:\n        case EType.DOUBLE:\n        case EType.LONG:\n        case EType.INT64:\n        case EType.FLOAT:\n        case EType.NUMBER:\n          this.arrayNumber = [\n            ...this.arrayNumber,\n            { value: iterator, type: res.schemas[iterator] },\n          ];\n          break;\n        case EType.STRING:\n          this.arrayString = [\n            ...this.arrayString,\n            { value: iterator, type: res.schemas[iterator] },\n          ];\n          break;\n        case EType.CHAR:\n          this.arrayChar = [\n            ...this.arrayChar,\n            { value: iterator, type: res.schemas[iterator] },\n          ];\n          break;\n        case EType.VARCHAR:\n          this.arrayVarchar = [\n            ...this.arrayVarchar,\n            { value: iterator, type: res.schemas[iterator] },\n          ];\n          break;\n        case EType.DATE:\n          this.arrayDate = [\n            ...this.arrayDate,\n            { value: iterator, type: res.schemas[iterator] },\n          ];\n          break;\n        default:\n          break;\n      }\n    }\n  }\n\n  handleLoadChart(res: IResChart, reSelect: boolean) {\n    this.arrDataMapping = res.fields.map((filed: IField) => {\n      let obj: IDataMapping = {\n        column: filed.column,\n        arrMapping: undefined,\n        valueMapping: reSelect ? null : filed.to,\n      };\n      switch (filed.type) {\n        case EType.INT:\n        case EType.DOUBLE:\n        case EType.LONG:\n        case EType.INT64:\n        case EType.FLOAT:\n        case EType.NUMBER:\n          obj.arrMapping = this.arrayNumber;\n          if (reSelect) {\n            obj.valueMapping =\n              obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          }\n          break;\n        case EType.STRING:\n          obj.arrMapping = this.arrayString;\n          if (reSelect) {\n            obj.valueMapping =\n              obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          }\n          break;\n        case EType.CHAR:\n          obj.arrMapping = this.arrayChar;\n          if (reSelect) {\n            obj.valueMapping =\n              obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          }\n          break;\n        case EType.VARCHAR:\n          obj.arrMapping = this.arrayVarchar;\n          if (reSelect) {\n            obj.valueMapping =\n              obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          }\n          break;\n        case EType.DATE:\n          obj.arrMapping = this.arrayDate;\n          if (reSelect) {\n            obj.valueMapping =\n              obj.arrMapping.length > 0 ? obj.arrMapping[0].value : null;\n          }\n          break;\n        default:\n          break;\n      }\n      return obj;\n    });\n    const config = this.arrDataMapping.reduce(\n      (prevObj, curObj: IDataMapping) => ({\n        ...prevObj,\n        [curObj.column.name]: [curObj.valueMapping, Validators.required],\n      }),\n      {}\n    );\n    this.isValid = reSelect\n      ? (this.isValid = this.arrDataMapping.every(\n          (data: IDataMapping) => data.valueMapping\n        ))\n      : true;\n    this.form = this.fb.group(config);\n  }\n\n  handleCommon(res: IResSearchTemplateItem | IResChart) {\n    this.attribute = JSON.parse(decode(res.attribute)) as IAttribute;\n    this.vizType = this.attribute.vizType;\n    this.formData = this.attribute.formData;\n    this.queryContext = JSON.parse(decode(res.queryContext)) as IQueryContext;\n    this.typeSubmit = this.attribute.typeSubmit;\n    switch (this.vizType?.vizType) {\n      case EVizType.HTML_TEMPLATE:\n      case EVizType.TABLE_CUSTOM:\n        this.contentHTML = this.attribute.contentHTML || \"\";\n        this.selectValue = this.attribute.formData.select || {};\n        setTimeout(() => {\n          this.handHTML();\n        }, 200);\n        this.paramsChart = {\n          datasource: {\n            type: this.dsType,\n            category: this.dsCategory,\n            table: this.dsTable,\n          },\n          force: \"false\",\n          formData: this.attribute.queries,\n          result_format: \"json\",\n          result_type: \"full\",\n          fields: undefined,\n        };\n        break;\n      case EVizType.CANDLESTICK:\n        this.paramsChart = {\n          datasource: {\n            type: this.dsType,\n            category: this.dsCategory,\n            table: this.dsTable,\n          },\n          force: \"false\",\n          formData: this.attribute.formData,\n          result_format: \"json\",\n          result_type: \"full\",\n          fields: undefined,\n        };\n        break;\n      default:\n        this.paramsChart = {\n          datasource: {\n            type: this.dsType,\n            category: this.dsCategory,\n            table: this.dsTable,\n          },\n          force: \"false\",\n          queries: this.attribute.queries,\n          form_data: this.attribute.formData,\n          result_format: \"json\",\n          result_type: \"full\",\n          fields: undefined,\n        };\n        break;\n    }\n  }\n\n  getMessageMapping(event: any) {\n    const data: IMessage = event.data;\n    if (data.signFrom !== EVisualize.CHART_VISUAL) {\n      return;\n    }\n    let result: any;\n    if (typeof data.result === \"string\") {\n      result = JSON.parse(data.result);\n    } else {\n      result = data.result;\n    }\n    switch (event.data.eventName) {\n      case EVisualize.SEND_LOAD_JS_DONE:\n        if (this.vizType?.vizType !== EVizType.HTML_TEMPLATE) {\n          window.addEventListener(\"resize\", this.eventResizeVisualize, false);\n        }\n        break;\n      default:\n        break;\n    }\n  }\n\n  sendDataVisualizeChart() {\n    setTimeout(() => {\n      const parent = document.getElementById(\"mapping__wrap\");\n      if (parent) {\n        this.width = parent.offsetWidth;\n        this.height = parent.offsetHeight;\n        let message: IMessage = {\n          eventName: EVisualize.SEND_DATA_TO_VISUAL_CHART,\n          signFrom: EVisualize.ANALYTICS_APP,\n          result: JSON.stringify({\n            width: this.width - 30,\n            height: this.height - 50,\n            vizType: this.vizType,\n            formData: this.formData,\n            queriesData: this.queriesData,\n          }),\n        };\n        this.sendMessage(message);\n      }\n    }, 500);\n  }\n\n  eventResizeScreen() {\n    clearTimeout(this.resizeTimeout);\n    this.resizeTimeout = setTimeout(() => {\n      const parent = document.getElementById(\"mapping__wrap\");\n      if (parent) {\n        if (\n          this.width !== parent.offsetWidth ||\n          this.height !== parent.offsetHeight\n        ) {\n          if (this.queriesData) {\n            this.sendDataVisualizeChart();\n          }\n        }\n      }\n    }, 500);\n  }\n\n  //send message for iframe\n  sendMessage(message: IMessage) {\n    const iframe = document.getElementById(\n      \"mapping-iframe\"\n    ) as HTMLIFrameElement;\n    if (iframe) {\n      this.plugin.sendMessageTo(message, iframe.contentWindow);\n    }\n  }\n\n  sendScriptToVisualChart() {\n    if (this.vizType?.html) {\n      let message: IMessage = {\n        eventName: EVisualize.SEND_SCRIPT,\n        signFrom: EVisualize.ANALYTICS_APP,\n        result: JSON.stringify({ scriptUrl: this.vizType.html }),\n      };\n      this.sendMessage(message);\n    }\n  }\n\n  onApply() {\n    if (this.form.valid) {\n      this.queriesData = undefined;\n      this.showDefault = false;\n      this.fields = this.arrDataMapping.map((d: IDataMapping) => ({\n        name: d.column.name,\n        to: this.form.controls[d.column.name].value,\n        type: d.column.type,\n        column: d.column,\n      }));\n      this.paramsChart.fields = JSON.stringify(this.fields);\n      for (const iterator of Object.keys(this.paramsChart)) {\n        if (typeof this.paramsChart[iterator] !== \"string\") {\n          this.paramsChart[iterator] = JSON.stringify(\n            this.paramsChart[iterator]\n          );\n        }\n      }\n      if (this.vizType?.vizType === EVizType.HTML_TEMPLATE) {\n        this.getCustomDataVisualize();\n      } else {\n        this.sendScriptToVisualChart();\n        switch (this.typeSubmit) {\n          case ETypeSubmit.DATA:\n            this.chartService\n              .getDataVisualize(this.paramsChart)\n              .subscribe((res) => {\n                if (res.type !== ErrorMessage.TYPE) {\n                  this.queriesData =\n                    this.vizType?.vizType === EVizType.MIXED_TIMESERIES\n                      ? res.elements\n                      : [res];\n                  if (this.tabCurrent === this.action.RESULT) {\n                    this.pathResult();\n                  }\n                  this.sendDataVisualizeChart();\n                }\n              });\n            break;\n          case ETypeSubmit.EXPLORE_JSON:\n            this.chartService\n              .getExpVisualize(this.paramsChart)\n              .subscribe((res) => {\n                if (res.type !== ErrorMessage.TYPE) {\n                  this.queriesData = [res];\n                  if (this.tabCurrent === this.action.RESULT) {\n                    this.pathResult();\n                  }\n                  this.sendDataVisualizeChart();\n                }\n              });\n            break;\n          case ETypeSubmit.CUSTOM:\n            switch (this.vizType?.vizType) {\n              case EVizType.BAR_COMPARE:\n              case EVizType.MIXED:\n                this.chartService\n                  .getDataVisualize(this.paramsChart)\n                  .subscribe((res) => {\n                    if (res.type !== ErrorMessage.TYPE) {\n                      this.queriesData =\n                        this.vizType?.vizType === EVizType.MIXED_TIMESERIES ||\n                        this.vizType?.vizType === EVizType.MIXED\n                          ? res.elements\n                          : [res];\n                      if (this.tabCurrent === this.action.RESULT) {\n                        this.pathResult();\n                      }\n                      this.sendDataVisualizeChart();\n                    }\n                  });\n                break;\n              case EVizType.BAR_V2:\n                this.chartService\n                  .getExpVisualize(this.paramsChart)\n                  .subscribe((res) => {\n                    if (res.type !== ErrorMessage.TYPE) {\n                      this.queriesData = [res];\n                      if (this.tabCurrent === this.action.RESULT) {\n                        this.pathResult();\n                      }\n                      this.sendDataVisualizeChart();\n                    }\n                  });\n                break;\n              case EVizType.TABLE_CUSTOM:\n              case EVizType.CANDLESTICK:  \n                this.chartService\n                  .getDataCustom(this.paramsChart)\n                  .subscribe((res) => {\n                    if (res.type !== ErrorMessage.TYPE) {\n                      this.queriesData = res.elements;\n                      if (this.tabCurrent === this.action.RESULT) {\n                        this.pathResult();\n                      }\n                      this.sendDataVisualizeChart();\n                    }\n                  });\n                break;\n              default:\n                break;\n            }\n            break;\n          default:\n            break;\n        }\n      }\n    }\n  }\n\n  getCustomDataVisualize() {\n    this.chartService.getDataCustom(this.paramsChart).subscribe((res: any) => {\n      if (res.type !== ErrorMessage.TYPE) {\n        if (res.elements.length > 0) {\n          const obj = res.elements[0];\n          const calcLoop = this.arrLoop.filter((l) => l.name.includes(\"calc(\"));\n          for (const iterator of calcLoop) {\n            iterator[\"operator\"] = \"\";\n          }\n          for (const iterator of Object.keys(this.selectValue)) {\n            if (this.selectValue[iterator]) {\n              const arrSpan = document.querySelectorAll(\n                `span[name=\"${iterator}\"]`\n              );\n              arrSpan.forEach((span) => {\n                span.innerHTML =\n                  typeof obj[this.selectValue[iterator]] === \"number\"\n                    ? Number(obj[this.selectValue[iterator]]).toLocaleString()\n                    : obj[this.selectValue[iterator]];\n              });\n            } else {\n              const arrSpan = document.querySelectorAll(\n                `span[name=\"${iterator}\"]`\n              );\n              arrSpan.forEach((span) => {\n                span.innerHTML = `{${iterator}}`;\n              });\n            }\n            if (this.arrLoop.length > 0) {\n              handleLoop(this.arrLoop, obj, iterator, this.selectValue);\n            }\n            if (calcLoop.length > 0) {\n              convertCalcLoop(calcLoop, obj, this.selectValue, iterator);\n            }\n          }\n          if (calcLoop.length > 0) {\n            handleCalcLoop(calcLoop);\n          }\n          this.queriesData = res.elements;\n          if (this.tabCurrent === this.action.RESULT) {\n            this.pathResult();\n          }\n        } else {\n          this.queriesData = [];\n        }\n      } else {\n      }\n    });\n  }\n\n  onSave() {\n    if (!this.formChart.valid) {\n      return;\n    }\n    this.queryContext.fields = this.fields;\n    const params: IParamsChartTemplate = {\n      name: this.formChart.controls[\"name\"].value,\n      title: this.title ? this.title : this.formChart.controls[\"name\"].value,\n      desc: this.desc,\n      dsType: this.dsType,\n      dsCategory: this.dsCategory,\n      dsTable: this.dsTable,\n      type: this.vizType.vizType,\n      typeName: this.vizType.name,\n      thumbnailUri: this.thumbnail,\n      attribute: encode(JSON.stringify(this.attribute)),\n      queryContext: encode(JSON.stringify(this.queryContext)),\n      fields: JSON.stringify(this.fields),\n    };\n    if (!this.uuidChart) {\n      this.chartService.addChart(params).subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          this.notification.showMessage(\n            this.actionTranslate[\"CREATE_CHART_SUCCESS\"],\n            \"success\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n          this.isViewAction = true;\n          this.uuidChart = result.uuid;\n          this.chart = JSON.parse(JSON.stringify(result));\n        } else {\n          this.notification.showMessage(\n            this.actionTranslate[\"CREATE_CHART_FAIL\"],\n            \"error\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n        }\n      });\n    } else {\n      params[\"uuid\"] = this.uuidChart;\n      this.chartService.chartUpdate(params).subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          this.notification.showMessage(\n            this.actionTranslate[\"UPDATE_CHART_SUCCESS\"],\n            \"success\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n          this.chart = JSON.parse(JSON.stringify(result));\n        } else {\n          this.notification.showMessage(\n            this.actionTranslate[\"UPDATE_CHART_FAIL\"],\n            \"error\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n        }\n      });\n    }\n  }\n\n  loadChart() {\n    this.chartService\n      .loadChart({ uuid: this.uuidChart })\n      .subscribe((res: IResChart) => {\n        this.chart = res;\n        this.dsType = res.dsType;\n        this.dsCategory = res.dsCategory;\n        this.dsTable = res.dsTable;\n        this.title = res.title;\n        this.desc = res.title;\n        this.formChart.controls[\"name\"].setValue(res.name);\n        if (res.type === EVizType.HTML_TEMPLATE) {\n          this.thumbnail = res.thumbnailUri;\n        } else {\n          this.thumbnail = `/images/visualcommon/${res.thumbnailUri\n            .split(\"/\")\n            .pop()}`;\n        }\n        this.handleCommon(res);\n        this.fields = res.fields;\n        this.getMetadataEdit();\n      });\n  }\n\n  back() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n  onChangeDataset(dataset: DatasetItem) {\n    this.showDefault = true;\n    this.queriesData = undefined;\n    this.arrayNumber = [];\n    this.arrayDate = [];\n    this.arrayChar = [];\n    this.arrayVarchar = [];\n    this.arrayString = [];\n    this.dsType = dataset.type;\n    this.dsCategory = dataset.category;\n    this.dsTable = dataset.name;\n    this.paramsChart = {\n      ...this.paramsChart,\n      datasource: {\n        type: dataset.type,\n        category: dataset.category,\n        table: dataset.name,\n      },\n    };\n    this.getMetadata(true);\n  }\n\n  deleteChart() {\n    this.chartDelete.onShowDialog(this.chart);\n  }\n\n  editInfoChart() {\n    this.store.dispatch(RightbarActions.showRightbar({ isShowRightbar: true }));\n  }\n\n  backBar(isOpen: boolean = false, onDestroy: boolean = false) {\n    this.isOpenRightBar = isOpen;\n    this.store.dispatch(\n      RightbarActions.showRightbar({ isShowRightbar: false })\n    );\n    if (!!this.dataChart && !onDestroy) {\n      this.dataChart.onResize();\n    }\n    if (this.vizType?.vizType !== EVizType.HTML_TEMPLATE) {\n      if (this.queriesData) {\n        this.sendDataVisualizeChart();\n      }\n    }\n  }\n\n  onPublishAction() {\n    this.dialogPublish.showDialogChange(this.chart);\n  }\n\n  onChart() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  onCopyPath() {\n    let uuid = this.isViewPublish ? this.chart.uuid : this.chart.sharedUuid;\n    this.shareService.copyPath(uuid).subscribe((status) => {\n      let key = status\n        ? \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS\"\n        : \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD\";\n      this.notification.showMessage(\n        this.translate.instant(key),\n        status ? \"success\" : \"error\",\n        \"Visualize\"\n      );\n    });\n  }\n\n  onView() {\n    this.actionCurrent = this.action.VIEW;\n    this.router.navigate([\"/\", CHART, MAPPING, VIEW], {\n      queryParams: {\n        uuid: this.chart.uuid,\n      },\n    });\n  }\n\n  onExplore() {\n    this.actionCurrent = this.action.EXPLORE;\n    this.router.navigate([`/${CHART}/mapping`], {\n      queryParams: {\n        uuid: this.chart.uuid,\n      },\n    });\n  }\n\n  updateSuccess(event: any) {\n    const item = JSON.parse(JSON.stringify(this.chart));\n    item.sharedUuid = event.uuid || undefined;\n    if (event.uuid) {\n      this.store.dispatch(\n        Publish_Action.sharedUuid({ sharedUuid: event.uuid })\n      );\n      this.chart = JSON.parse(JSON.stringify(item));\n    } else {\n      if (this.isViewPublish) {\n        this.location.back();\n        this.isViewPublish = false;\n      } else {\n        this.store.dispatch(\n          Publish_Action.sharedUuid({ sharedUuid: undefined })\n        );\n        this.chart = JSON.parse(JSON.stringify(item));\n      }\n    }\n  }\n\n  onDelete(item: ChartItem) {\n    this.chartDelete.onShowDialog(item);\n  }\n\n  editSuccess(value: ChartItem) {\n    this.formChart.get(\"name\").patchValue(value.name);\n  }\n\n  onSelect(event: TabDirective) {\n    this.tabCurrent = event.id;\n    switch (event.id) {\n      case \"chart\":\n        this.sendDataVisualizeChart();\n        break;\n      case this.action.RESULT:\n        this.pathResult();\n        break;\n      case \"origin\":\n        this.viewDataChart = {\n          name: this.datasets?.name,\n          category: this.datasets?.category,\n          type: this.datasets?.type,\n          id: \"data-source\",\n          schemas: this.datasets?.schemas,\n        };\n        break;\n      default:\n        break;\n    }\n  }\n\n  pathResult() {\n    if (!iNet.isEmpty(this.queriesData)) {\n      if (\n        !iNet.isEmpty(this.queriesData[0].rawColnames) ||\n        !iNet.isEmpty(this.queriesData[0].rawData)\n      ) {\n        this.showDefaultGird = this.action.APPLIED_DATA;\n      } else {\n        if (!iNet.isEmpty(this.queriesData)) {\n          this.showDefaultGird = this.action.APPLIED_DATA;\n          this.viewDataChart = this.queriesData;\n          return;\n        } else {\n          this.showDefaultGird = this.action.APPLIED_NO_DATA;\n        }\n      }\n      this.viewDataChart = {\n        schemas: this.queriesData[0]?.rawColnames || [],\n        data: this.queriesData[0]?.rawData || [],\n      };\n    } else {\n      this.showDefaultGird = this.action.NO_APPLIED;\n      this.viewDataChart = { schemas: [], data: [] };\n    }\n  }\n}\n\n","<div class=\"section__mapping\">\n  <div class=\"mapping__head\">\n    <ul *ngIf=\"!isPlugin\" class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\" style=\"flex: 1\">\n      <li (click)=\"back()\" class=\"pointer\">\n        {{ \"VISUALIZE.CHART.FIELD.TITLE_CHART\" | translate }}\n      </li>\n      <li class=\"active font-weight-medium text-truncate\">\n        {{ uuidChart ? formChart.get('name').getRawValue() || '' : \"VISUALIZE.CHART.FIELD.ADD_NEW_CHART\" | translate }}\n      </li>\n    </ul>\n    <div class=\"mapping__btn\" *ngIf=\"uuidChart\">\n      <div class=\"tabs-custom\">\n        <div (click)=\"onView()\" [class.active]=\"actionCurrent === action.VIEW\" class=\"tab-item font-weight-medium\">\n          <span [class.active]=\"actionCurrent.startsWith(action.VIEW)\" class=\"fa fa-eye mr-1\"></span><span\n            class=\"current\">{{'VISUALIZE.CHART.FIELD.VIEW' | translate}}</span>\n        </div>\n        <div (click)=\"onExplore()\" [class.active]=\"actionCurrent === action.EXPLORE\" class=\"tab-item font-weight-medium\">\n          <span [class.active]=\"actionCurrent.startsWith(action.EXPLORE)\" class=\"fa fa-pencil mr-1\"></span><span\n            class=\"current\">{{'VISUALIZE.CHART.FIELD.ACTION_EDIT' | translate}}</span>\n        </div>\n        <button (click)=\"editInfoChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n            class=\"fa fa-pencil-square-o mr-2\"\n            style=\"font-size: 15px\"></i>{{'VISUALIZE.FIELD.EDIT_INFO' | translate}}</button>\n        <button (click)=\"onPublishAction()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n          <i [ngClass]=\"!chart?.sharedUuid ? 'fa-globe' : 'fa-link'\" class=\"fa f-20 mr-2\"></i>\n          {{!chart?.sharedUuid ? ('VISUALIZE.CHART.FIELD.ACTION_PUBLISH'|translate)\n          : ('VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'|translate)}}\n        </button>\n        <button (click)=\"onCopyPath()\" *ngIf=\"chart?.sharedUuid\"\n                class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n          <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n          {{'VISUALIZE.CHART.FIELD.COPY_SCR'|translate}}\n        </button>\n        <button (click)=\"deleteChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-danger\"><i\n            class=\"fa fa-trash-o mr-2\"></i>{{'VISUALIZE.CHART.FIELD.ACTION_DELETE' | translate}}</button>\n      </div>\n    </div>\n  </div>\n  <div class=\"mapping__content\">\n    <div class=\"mapping__wrap\" [class.spr]=\"isOpenRightBar\">\n      <div class=\"mapping__name\">\n        <form [formGroup]=\"formChart\" class=\"mapping__name-form\">\n          <input type=\"text\" formControlName=\"name\" class=\"mapping__name-input\"\n                 placeholder=\"{{'VISUALIZE.CHART.FIELD.NAME_CHART'|translate}}\">\n        </form>\n        <div class=\"mapping__name-btns\">\n          <button [disabled]=\"!formChart.valid\" (click)=\"onSave()\"\n                  class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step\" type=\"button\">\n            <i class=\"fa fa-save mr-1\"></i> {{'VISUALIZE.FIELD.TITTLE.SAVE'|translate}}\n          </button>\n          <button (click)=\"backBar(!isOpenRightBar)\" *ngIf=\"isViewAction && !isPlugin\"\n                  class=\"btn-custom btn-custom-icon px-1\"><i\n              aria-hidden=\"true\" class=\"icon fa fa-columns\"></i></button>\n        </div>\n      </div>\n      <div class=\"mapping__chart\">\n        <div class=\"mapping__left\">\n          <div class=\"mapping__dataset\">\n            <div class=\"mapping__dataset-title\">\n              <i aria-hidden=\"true\" class=\"fa fa-th mr-1\"></i>\n              {{ \"VIUSALIZE.SOURCE\" | translate }}\n            </div>\n            <app-dataset-select *ngIf=\"loadingSuccsess\" (datasetItem)=\"onChangeDataset($event)\"\n                                [chartItem]=\"chart\"></app-dataset-select>\n          </div>\n          <div class=\"mapping__columns\">\n            <div class=\"mapping__columns-title mapping__dataset-title\">\n              <i aria-hidden=\"true\" class=\"fa fa-exchange mr-1\"></i>\n              {{ \"VIUSALIZE.FIELD_MAPPING\" | translate }}\n            </div>\n            <form *ngIf=\"arrDataMapping.length > 0\" [formGroup]=\"form\" class=\"mapping__left-form\">\n              <div class=\"mapping__left-control\" *ngFor=\"let item of arrDataMapping\">\n                <div class=\"mapping__left-control--field\">\n                  {{ item.column.desc }}\n                </div>\n                <ng-select formControlName=\"{{ item.column.name }}\" [clearable]=\"false\" [items]=\"item.arrMapping\"\n                           bindLabel=\"value\" bindValue=\"value\" placeholder=\"{{ 'VIUSALIZE.CHOOSE_COLUMN' | translate }}\"\n                           [ngClass]=\"{\n                    'is-invalid':\n                      form.controls[item.column.name].hasError('required')\n                  }\">\n                </ng-select>\n              </div>\n            </form>\n          </div>\n          <div class=\"mapping__button\">\n            <button type=\"button\" [disabled]=\"!isValid\"\n                    class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step button-each-solution\"\n                    (click)=\"onApply()\">\n              {{ 'VIUSALIZE.APPLY' | translate}}\n            </button>\n          </div>\n        </div>\n        <div class=\"mapping__right\">\n          <tabset #staticTabs class=\"mapping__right-tabset\">\n            <tab (selectTab)=\"onSelect($event)\" id=\"chart\" heading=\"{{ 'VIUSALIZE.CHART' | translate }}\" class=\"mapping__right-tab\">\n              <div class=\"mapping__right-wrap\" id=\"mapping__wrap\">\n                <div *ngIf=\"showDefault && !contentHTML\" class=\"default-screen\">\n                  <svg width=\"160\" height=\"166\" viewBox=\"0 0 160 166\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M123.638 8a.5.5 0 00-.5.5V158h28.758V8.5a.5.5 0 00-.5-.5h-27.758zM84.793 40.643a.5.5 0 01.5-.5h27.759a.5.5 0 01.5.5V158H84.793V40.643zM46.95 72.285a.5.5 0 00-.5.5V158h28.758V72.785a.5.5 0 00-.5-.5H46.95zM8.604 93.715a.5.5 0 00-.5.5V158h28.758V94.215a.5.5 0 00-.5-.5H8.604z\"\n                          fill=\"#FAFAFA\"></path>\n                    <path\n                        d=\"M123.138 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zm-38.344 0v.5h.5v-.5h-.5zm-28.759 0h-.5v.5h.5v-.5zm-38.344-.001h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM8.104 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM123.638 8.5v-1a1 1 0 00-1 1h1zm0 149.5V8.5h-1V158h1zm28.258-.5h-28.758v1h28.758v-1zm-.5-149V158h1V8.5h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1h-27.758v1zM85.293 39.643a1 1 0 00-1 1h1v-1zm27.759 0H85.293v1h27.759v-1zm1 1a1 1 0 00-1-1v1h1zm0 117.357V40.643h-1V158h1zm-29.259.5h28.759v-1H84.793v1zm-.5-117.857V158h1V40.643h-1zM46.95 72.785v-1a1 1 0 00-1 1h1zm0 85.214V72.785h-1V158h1zm28.258-.5H46.45v1h28.758v-1zm-.5-84.714V158h1V72.785h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H46.95v1zM8.604 94.215v-1a1 1 0 00-1 1h1zm0 63.785V94.215h-1V158h1zm28.258-.5H8.104v1h28.758v-1zm-.5-63.285V158h1V94.215h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H8.604v1z\"\n                        fill=\"#D9D9D9\"></path>\n                  </svg>\n                  <h3>\n                    {{ \"VIUSALIZE.TEXT_DEFAULT\" | translate }}\n                  </h3>\n                </div>\n                <div *ngIf=\"!showDefault && !queriesData\" class=\"wrap-loading\" [ngStyle]=\"!contentHTML\n                  ? { background : '#fff' }\n                  : { background: 'rgba(0, 0, 0, 0.1)' }\n              \">\n                  <img [src]=\"urlImgLoading\" alt=\"img-loading\" />\n                </div>\n                <div *ngIf=\"contentHTML\" [innerHTML]=\"contentHTML | safeHtml\" class=\"content-html\" #contentHTMLRef></div>\n                <iframe [src]=\"urlVisualizeChart | safe\" #iframeVisualizeMapping id=\"mapping-iframe\"  class=\"mapping__right-wrap--iframe\"\n                        [ngStyle]=\"\n                    !showDefault && queriesData && !contentHTML\n                      ? { display: 'block' }\n                      : { display: 'none' }\n                  \"></iframe>\n              </div>\n            </tab>\n            <tab (selectTab)=\"onSelect($event)\" id=\"result\" heading=\"{{ 'VIUSALIZE.RESULTS' | translate }}\" class=\"mapping__right-tab\">\n              <app-view-data-chart *ngIf=\"tabCurrent === action.RESULT && showDefaultGird === action.APPLIED_DATA\"\n                                   [option]=\"viewDataChart\"\n                                   [gridId]=\"'data-mapping-view'\"></app-view-data-chart>\n\n              <div *ngIf=\"showDefaultGird === action.NO_APPLIED || showDefaultGird === action.APPLIED_NO_DATA\" class=\"mapping__right-wrap\">\n                <div class=\"default-screen\">\n                  <svg width=\"160\" height=\"166\" viewBox=\"0 0 160 166\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M123.638 8a.5.5 0 00-.5.5V158h28.758V8.5a.5.5 0 00-.5-.5h-27.758zM84.793 40.643a.5.5 0 01.5-.5h27.759a.5.5 0 01.5.5V158H84.793V40.643zM46.95 72.285a.5.5 0 00-.5.5V158h28.758V72.785a.5.5 0 00-.5-.5H46.95zM8.604 93.715a.5.5 0 00-.5.5V158h28.758V94.215a.5.5 0 00-.5-.5H8.604z\"\n                          fill=\"#FAFAFA\"></path>\n                    <path\n                        d=\"M123.138 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zm-38.344 0v.5h.5v-.5h-.5zm-28.759 0h-.5v.5h.5v-.5zm-38.344-.001h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM8.104 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM123.638 8.5v-1a1 1 0 00-1 1h1zm0 149.5V8.5h-1V158h1zm28.258-.5h-28.758v1h28.758v-1zm-.5-149V158h1V8.5h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1h-27.758v1zM85.293 39.643a1 1 0 00-1 1h1v-1zm27.759 0H85.293v1h27.759v-1zm1 1a1 1 0 00-1-1v1h1zm0 117.357V40.643h-1V158h1zm-29.259.5h28.759v-1H84.793v1zm-.5-117.857V158h1V40.643h-1zM46.95 72.785v-1a1 1 0 00-1 1h1zm0 85.214V72.785h-1V158h1zm28.258-.5H46.45v1h28.758v-1zm-.5-84.714V158h1V72.785h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H46.95v1zM8.604 94.215v-1a1 1 0 00-1 1h1zm0 63.785V94.215h-1V158h1zm28.258-.5H8.104v1h28.758v-1zm-.5-63.285V158h1V94.215h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H8.604v1z\"\n                        fill=\"#D9D9D9\"></path>\n                  </svg>\n                  <h3 *ngIf=\"showDefaultGird === action.NO_APPLIED\">\n                    {{ \"VIUSALIZE.TEXT_DEFAULT\" | translate }}\n                  </h3>\n                  <ng-container *ngIf=\"showDefaultGird === action.APPLIED_NO_DATA\">\n                    <h3> {{ \"No results were returned for this query\" | translate }}</h3>\n                    <div class=\"no-results-body\">\n                      {{'Make sure that the controls are configured properly and the datasource contains data for the selected time range.' | translate}}\n                    </div>\n                  </ng-container>\n                </div>\n              </div>\n            </tab>\n            <tab (selectTab)=\"onSelect($event)\" id=\"origin\" heading=\"{{ 'VIUSALIZE.ORIGIN' | translate }}\" class=\"mapping__right-tab\">\n              <app-view-data-chart *ngIf=\"tabCurrent === 'origin'\"\n                                   [option]=\"viewDataChart\"\n                                   [gridId]=\"'data-mapping-source'\"></app-view-data-chart>\n            </tab>\n          </tabset>\n        </div>\n      </div>\n    </div>\n    <div class=\"mapping__right-bar\" *ngIf=\"isOpenRightBar\">\n      <app-chart-right-bar (close)=\"backBar()\" (delete)=\"onDelete($event)\" (reloadPage)=\"editSuccess($event)\"\n                           [chart]=\"chart\" [isEdit]=\"isEditInfo\" [isPlugin]=\"isPlugin\"\n                           [view]=\"true\">\n      </app-chart-right-bar>\n    </div>\n  </div>\n</div>\n\n<app-chart-delete (deleteSuccess)=\"onChart()\"></app-chart-delete>\n<app-chart-publish-dialog (reload)=\"updateSuccess($event)\" [isViewCenter]=\"true\"></app-chart-publish-dialog>","import { ChangeDetectionStrategy, Component, QueryList, ViewChildren } from '@angular/core';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\n\n@Component({\n  template: ``,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PopoverWrapperComponent {\n  enableScroll: boolean = true;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  constructor() {\n  }\n\n  onPopoverShown(popover: PopoverDirective) {\n    //console.log('(onPopoverShown)', popover, popover instanceof PopoverDirective);\n    this.enableScroll = false;\n    if (popover instanceof PopoverDirective) {\n      this.popovers.filter(p => p !== popover).forEach(p => p.hide());\n    }\n  }\n\n  onPopoverHidden(popover: PopoverDirective) {\n    //console.log('(onPopoverHidden)', popover);\n    this.enableScroll = this.isScroll();\n  }\n\n  clearAllPopover() {\n    //console.log('(clearPopover)', this.popovers)\n    this.popovers.forEach((popover: PopoverDirective) => {\n      if (popover.isOpen) {\n        popover.hide();\n      }\n    });\n  }\n\n  private isScroll(): boolean {\n    return !this.popovers.some((popover: PopoverDirective) => popover.isOpen);\n  }\n}\n","export const formatDDMMYYYY = (date) => {\n const dateParse = new Date(date);\n const yyyy = dateParse.getFullYear();\n let mm = dateParse.getMonth() + 1;\n let dd = dateParse.getDate();\n\n if (dd < 10) dd = '0' + dd;\n if (mm < 10) mm = '0' + mm;\n\n return dd + '/' + mm + '/' + yyyy;\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { ColumnDataType, FilterColumn, Operators } from '../model/chart-custom';\nimport { formatDDMMYYYY } from '../../common/formatDate';\n\n@Pipe({\n  name: 'filterFormatter'\n})\nexport class FilterFormatter implements PipeTransform {\n  parserFilterColumn2SQL(Fcolumn: FilterColumn): string {\n    let name: string = Fcolumn.column;\n    let value: string = Fcolumn.comparator;\n    let columnType: string = Fcolumn.columnType;\n    if (columnType === ColumnDataType.DATE) {\n      if (Fcolumn.operatorid === Operators.TIME_RANGE) {\n        return `${name}(${\n          Fcolumn?.fromDate\n            ? Fcolumn?.fromDate === 0\n              ? \"\"\n              : formatDDMMYYYY(Fcolumn?.fromDate)\n            : \"\"\n        } - ${\n          Fcolumn?.toDate\n            ? Fcolumn?.toDate === 0\n              ? \"\"\n              : formatDDMMYYYY(Fcolumn?.toDate)\n            : \"\"\n        })`;\n      } else {\n        switch (Fcolumn.operatorid) {\n          case Operators.IS_NULL:\n            return `${name} IS NULL`;\n          case Operators.IS_NOT_NULL:\n            return `${name} IS NOT NULL`;\n          case Operators.EQUALS:\n            return `${name} = ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.GREATER_THAN:\n            return `${name} > ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.GREATER_THAN_OR_EQUAL:\n            return `${name} >= ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.LESS_THAN:\n            return `${name} < ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.LESS_THAN_OR_EQUAL:\n            return `${name} <= ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          default:\n            return ``;\n        }\n      }\n    } else {\n      switch (Fcolumn.operatorid) {\n        case Operators.EQUALS:\n          if (\n            Fcolumn.columnType === ColumnDataType.NUMBER ||\n            Fcolumn.columnType === ColumnDataType.DOUBLE ||\n            Fcolumn.columnType === ColumnDataType.FLOAT ||\n            Fcolumn.columnType === ColumnDataType.INT ||\n            Fcolumn.columnType === ColumnDataType.INT64 ||\n            Fcolumn.columnType === ColumnDataType.LONG\n          ) {\n            return `${name} = ${value}`;\n          }\n          return `${name} = '${value}'`;\n        case Operators.GREATER_THAN:\n          return `${name} > ${value}`;\n        case Operators.GREATER_THAN_OR_EQUAL:\n          return `${name} >= ${value}`;\n        case Operators.LESS_THAN:\n          return `${name} < ${value}`;\n        case Operators.LESS_THAN_OR_EQUAL:\n          return `${name} <= ${value}`;\n        case Operators.NOT_EQUALS:\n          if (\n            Fcolumn.columnType === ColumnDataType.NUMBER ||\n            Fcolumn.columnType === ColumnDataType.DOUBLE ||\n            Fcolumn.columnType === ColumnDataType.FLOAT ||\n            Fcolumn.columnType === ColumnDataType.INT ||\n            Fcolumn.columnType === ColumnDataType.INT64 ||\n            Fcolumn.columnType === ColumnDataType.LONG\n          ) {\n            return `${name} <> ${value}`;\n          }\n          return `${name} <> '${value}'`;\n        case Operators.IN:\n          return `${name} IN (${value})`;\n        case Operators.NOT_IN:\n          return `${name} NOT IN (${value})`;\n        case Operators.IS_NULL:\n          return `${name} IS NULL`;\n        case Operators.IS_NOT_NULL:\n          return `${name} IS NOT NULL`;\n        case Operators.LIKE:\n          return `${name} LIKE '${value}'`;\n        default:\n          return JSON.stringify(Fcolumn);\n      }\n    }\n  }\n  transform(column: FilterColumn, ...args: unknown[]): string {\n    return this.parserFilterColumn2SQL(column);\n  }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n    name: 'checkTypePipe'\n})\nexport class CheckTypePipePipe implements PipeTransform {\n\n    transform(type: string): string {\n        switch (type) {\n            case 'DATE':\n                return 'date'\n                break\n            case 'NUMBER':\n            case 'INT':\n            case 'FLOAT':\n            case 'INT64':\n            case 'LONG':\n            case 'DOUBLE':\n                return 'number'\n                break\n            case 'BOOLEAN':\n                return 'boolean'\n                break\n            case 'STRING':\n            case 'CHAR':\n                return 'string'\n                break\n            default:\n                break\n        }\n\n    }\n\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n} from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { iNet } from \"inet-core\";\nimport {\n  operatorsArray,\n  operatorsArrayTime,\n  Operators,\n  FilterColumn,\n  ISelectMetadata,\n  ColumnDataType,\n  IOperator,\n} from \"../model/chart-custom\";\nimport { uniqueArray, uniqueArrayObject } from \"../../common/uniqueArray\";\nimport { formatDDMMYYYY } from \"../../common/formatDate\";\n@Component({\n  selector: \"app-filter-popover\",\n  templateUrl: \"./filter-popover.component.html\",\n  styleUrls: [\"./filter-popover.component.scss\"],\n})\nexport class FilterPopoverComponent implements OnInit, OnChanges {\n  @Output() cancel = new EventEmitter<void>();\n  @Output() save = new EventEmitter<FilterColumn>();\n  @Output() saveClose = new EventEmitter<FilterColumn>();\n  @Input() filterColumn?: FilterColumn;\n  @Input() closeOnSelect?: boolean = true;\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() filterIndex: number = 0;\n  touchedSubmit: boolean = false;\n  isDate: boolean = false;\n  isTimeRange: boolean = false;\n  isNumber: boolean = false;\n  validateTime: boolean = true;\n  filterOperator = Operators;\n  fromDate: Date = null;\n  toDate: Date = null;\n  valueDate: Date = null;\n  form: FormGroup = this.fb.group({\n    column: [null, Validators.required],\n    operatorid: [Operators.EQUALS],\n    comparator: [null],\n  });\n  selectedFilters: any[] = [];\n\n  operators: any[] = operatorsArray;\n\n  values: string[];\n  searchObj: any;\n\n  constructor(private fb: FormBuilder) {}\n\n  ngOnInit(): void {\n    if (this.filterColumn) {\n      this.fromDate = this.filterColumn.fromDate\n        ? new Date(this.filterColumn.fromDate)\n        : null;\n      this.toDate = this.filterColumn.toDate\n        ? new Date(this.filterColumn.toDate)\n        : null;\n      this.valueDate = this.filterColumn.valueDate\n        ? new Date(this.filterColumn.valueDate)\n        : null;\n      this.isDate =\n        this.filterColumn.columnType === ColumnDataType.DATE ? true : false;\n\n      this.isTimeRange = this.filterColumn.operatorid === Operators.TIME_RANGE;\n      this.operators =\n        this.filterColumn.columnType === ColumnDataType.DATE\n          ? operatorsArrayTime\n          : operatorsArray;\n      const operatorid = this.filterColumn.operatorid;\n      if (operatorid === Operators.IN || operatorid === Operators.NOT_IN) {\n        this.form.patchValue({\n          column: this.filterColumn.column,\n          operatorid: operatorid,\n          comparator: this.filterColumn?.comparator,\n        });\n      } else {\n        this.form.patchValue(this.filterColumn);\n      }\n    }\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\"columns\" in changes) {\n      if (!this.filterColumn) {\n        this.form.controls[\"column\"].setValue(this.columns[0].value);\n        this.isDate =\n          this.columns[0].type === ColumnDataType.DATE ? true : false;\n        if (this.columns[0].type === ColumnDataType.DATE) {\n          this.operators = operatorsArrayTime;\n          setTimeout(() => {\n            this.form.controls.operatorid.setValue(Operators.TIME_RANGE);\n            this.isTimeRange = true;\n          }, 0);\n        } else {\n          this.operators = operatorsArray;\n          setTimeout(() => {\n            this.form.controls.operatorid.setValue(Operators.EQUALS);\n            this.isTimeRange = false;\n          }, 0);\n        }\n      }\n    }\n  }\n  \n  parserFilterColumn2SQL(Fcolumn: FilterColumn): string {\n    let name: string = Fcolumn.column;\n    let value: string = Fcolumn.comparator;\n    let columnType: string = Fcolumn.columnType;\n    if (columnType === ColumnDataType.DATE) {\n      if (Fcolumn.operatorid === Operators.TIME_RANGE) {\n        return `${name}(${\n          Fcolumn?.fromDate\n            ? Fcolumn?.fromDate === 0\n              ? \"\"\n              : formatDDMMYYYY(Fcolumn?.fromDate)\n            : \"\"\n        } - ${\n          Fcolumn?.toDate\n            ? Fcolumn?.toDate === 0\n              ? \"\"\n              : formatDDMMYYYY(Fcolumn?.toDate)\n            : \"\"\n        })`;\n      } else {\n        switch (Fcolumn.operatorid) {\n          case Operators.IS_NULL:\n            return `${name} IS NULL`;\n          case Operators.IS_NOT_NULL:\n            return `${name} IS NOT NULL`;\n          case Operators.EQUALS:\n            return `${name} = ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.GREATER_THAN:\n            return `${name} > ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.GREATER_THAN_OR_EQUAL:\n            return `${name} >= ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.LESS_THAN:\n            return `${name} < ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          case Operators.LESS_THAN_OR_EQUAL:\n            return `${name} <= ${formatDDMMYYYY(Fcolumn?.valueDate)}`;\n          default:\n            return ``;\n        }\n      }\n    } else {\n      switch (Fcolumn.operatorid) {\n        case Operators.EQUALS:\n          if (\n            Fcolumn.columnType === ColumnDataType.NUMBER ||\n            Fcolumn.columnType === ColumnDataType.DOUBLE ||\n            Fcolumn.columnType === ColumnDataType.FLOAT ||\n            Fcolumn.columnType === ColumnDataType.INT ||\n            Fcolumn.columnType === ColumnDataType.INT64 ||\n            Fcolumn.columnType === ColumnDataType.LONG\n          ) {\n            return `${name} = ${value}`;\n          }\n          return `${name} = '${value}'`;\n        case Operators.GREATER_THAN:\n          return `${name} > ${value}`;\n        case Operators.GREATER_THAN_OR_EQUAL:\n          return `${name} >= ${value}`;\n        case Operators.LESS_THAN:\n          return `${name} < ${value}`;\n        case Operators.LESS_THAN_OR_EQUAL:\n          return `${name} <= ${value}`;\n        case Operators.NOT_EQUALS:\n          if (\n            Fcolumn.columnType === ColumnDataType.NUMBER ||\n            Fcolumn.columnType === ColumnDataType.DOUBLE ||\n            Fcolumn.columnType === ColumnDataType.FLOAT ||\n            Fcolumn.columnType === ColumnDataType.INT ||\n            Fcolumn.columnType === ColumnDataType.INT64 ||\n            Fcolumn.columnType === ColumnDataType.LONG\n          ) {\n            return `${name} <> ${value}`;\n          }\n          return `${name} <> '${value}'`;\n        case Operators.IN:\n          return `${name} IN (${value})`;\n        case Operators.NOT_IN:\n          return `${name} NOT IN (${value})`;\n        case Operators.IS_NULL:\n          return `${name} IS NULL`;\n        case Operators.IS_NOT_NULL:\n          return `${name} IS NOT NULL`;\n        case Operators.LIKE:\n          return `${name} LIKE '${value}'`;\n        default:\n          return JSON.stringify(Fcolumn);\n      }\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (this.filterColumn) {\n      this.changeTypeInput(this.filterColumn.columnType);\n    }\n  }\n  private getFormData() {\n    return this.form.getRawValue();\n  }\n\n  onChangeColumn(column: ISelectMetadata) {\n    this.isDate = column.type === ColumnDataType.DATE ? true : false;\n    if (this.isDate) {\n      this.operators = operatorsArrayTime;\n      setTimeout(() => {\n        this.form.controls.operatorid.setValue(Operators.TIME_RANGE);\n        this.isTimeRange = true;\n      }, 1);\n    } else {\n      this.operators = operatorsArray;\n      setTimeout(() => {\n        this.form.controls.operatorid.setValue(Operators.EQUALS);\n        this.isTimeRange = false;\n      }, 1);\n    }\n    this.changeTypeInput(column.type);\n  }\n\n  onOperatorChange(opt: IOperator) {\n    if (opt.value === Operators.TIME_RANGE) {\n      this.isTimeRange = true;\n    } else {\n      this.isTimeRange = false;\n    }\n  }\n\n  changeTypeInput(type: string) {\n    const inputComparator = document.querySelector(\n      \"#comparator-id .ng-input input\"\n    );\n    if (\n      type === ColumnDataType.DOUBLE ||\n      type === ColumnDataType.FLOAT ||\n      type === ColumnDataType.INT ||\n      type === ColumnDataType.INT64 ||\n      type === ColumnDataType.LONG ||\n      type === ColumnDataType.NUMBER\n    ) {\n      inputComparator.setAttribute(\"type\", \"number\");\n      this.isNumber = true;\n    } else {\n      inputComparator.setAttribute(\"type\", \"text\");\n      this.isNumber = false;\n    }\n  }\n\n  onChangeStartDate(time: any) {\n    let timeStart = new Date(this.fromDate).getTime();\n    if (this.toDate) {\n      if (timeStart > new Date(this.toDate).getTime()) {\n        this.toDate = null;\n      }\n    }\n  }\n\n  onChangeEndDate(time: any) {}\n\n  onClose() {\n    this.cancel.emit();\n  }\n\n  saveFilter() {\n    let filterColumn: FilterColumn;\n    const newItem = JSON.parse(\n      JSON.stringify(this.getFormData())\n    ) as FilterColumn;\n\n    if (!this.isDate) {\n      if (\n        newItem.operatorid !== Operators.IS_NULL &&\n        newItem.operatorid !== Operators.IS_NOT_NULL\n      ) {\n        if (!newItem.comparator) {\n          this.form.controls[\"comparator\"].setErrors({ incorrect: true });\n        } else {\n          this.form.controls[\"comparator\"].setErrors(null);\n        }\n      } else {\n        this.form.controls[\"comparator\"].setErrors(null);\n      }\n    } else {\n      this.form.controls[\"comparator\"].setErrors(null);\n    }\n\n    this.touchedSubmit = true;\n    if (this.isDate) {\n      if (this.isTimeRange) {\n        this.validateTime = this.fromDate || this.toDate ? true : false;\n      } else {\n        this.validateTime =\n          newItem.operatorid !== Operators.IS_NULL &&\n          newItem.operatorid !== Operators.IS_NOT_NULL &&\n          newItem.operatorid !== Operators.TIME_RANGE\n            ? this.valueDate\n              ? true\n              : false\n            : true;\n      }\n    } else {\n      this.validateTime = true;\n    }\n\n    if (this.form.valid && this.validateTime) {\n      const newItem = JSON.parse(\n        JSON.stringify(this.getFormData())\n      ) as FilterColumn;\n      newItem.uuid = this.filterColumn?.uuid || iNet.generateId();\n      const arrayO = uniqueArrayObject(\n        [...operatorsArray, ...operatorsArrayTime],\n        \"value\"\n      );\n      newItem.operator = newItem.operatorid\n        ? arrayO.filter((op) => op.value === newItem.operatorid)[0].operation\n        : \"\";\n\n      let columnType = this.columns.filter(\n        (column) => column.name === newItem.column\n      )[0].type;\n      newItem.columnType = columnType;\n      if (this.isNumber) {\n        if (newItem.comparator) {\n          if (typeof newItem.comparator === \"string\") {\n            newItem[\"comparator\"] = Number(newItem.comparator);\n          } else {\n            newItem[\"comparator\"] = newItem.comparator.map((comp) =>\n              Number(comp)\n            );\n          }\n        }\n      }\n      if (columnType === ColumnDataType.DATE) {\n        if (this.isTimeRange) {\n          if (this.fromDate) {\n            newItem.fromDate = new Date(this.fromDate).getTime();\n          }\n          if (this.toDate) {\n            newItem.toDate = new Date(this.toDate).getTime();\n          }\n        } else {\n          if (this.valueDate) {\n            newItem.valueDate = new Date(this.valueDate).getTime();\n            newItem.comparator = new Date(this.valueDate).getTime();\n          }\n        }\n      }\n\n      if (newItem.column) {\n        if (newItem.column && typeof newItem.column === \"object\") {\n          newItem.column = (newItem.column as string[])\n            .map((v: string) => {\n              return `'${v}'`;\n            })\n            .join(\",\");\n        }\n        if (\n          newItem.operatorid == Operators.IS_NOT_NULL ||\n          newItem.operatorid === Operators.IS_NULL\n        ) {\n          newItem.name = this.parserFilterColumn2SQL(newItem);\n          filterColumn = newItem;\n          // this.save.emit(newItem);\n        } else if (newItem.operatorid) {\n          newItem.name = this.parserFilterColumn2SQL(newItem);\n          filterColumn = newItem;\n          // this.save.emit(newItem);\n        }\n      }\n    }\n    return filterColumn;\n  }\n\n  onSave() {\n    this.touchedSubmit = true;\n    let filterColumn = this.saveFilter();\n    if (filterColumn) {\n      this.save.emit(filterColumn);\n      this.resetForm();\n    }\n  }\n\n  onSaveClose() {\n    this.touchedSubmit = true;\n    let filterColumn = this.saveFilter();\n    if (filterColumn) {\n      this.saveClose.emit(filterColumn);\n      this.resetForm();\n    }\n  }\n  resetForm() {\n    this.isTimeRange = false;\n    this.isDate = false;\n    this.form.reset();\n    this.valueDate = null;\n    this.fromDate = null;\n    this.toDate = null;\n    this.form.controls.operatorid.setValue(Operators.EQUALS);\n    this.form.controls[\"column\"].setErrors(null);\n    this.form.controls[\"comparator\"].setErrors(null);\n    this.form.controls[\"comparator\"].setValue(null);\n  }\n\n  addValue(value: string) {\n    return value;\n  }\n\n  onSearch($event: any) {\n    this.searchObj = $event;\n  }\n\n  onBlur($event: any) {\n    if (this.searchObj && this.searchObj?.term) {\n      const value = this.form.controls.comparator.value;\n      const operatorid = this.form.controls.operatorid.value;\n      if (typeof this.form.controls.comparator.value === \"object\") {\n        if (value) {\n          if (operatorid === Operators.IN || operatorid === Operators.NOT_IN) {\n            this.form.controls.comparator.setValue(\n              uniqueArray([...value, this.searchObj.term])\n            );\n          } else {\n            this.form.controls.comparator.setValue(this.searchObj.term);\n          }\n        } else {\n          if (operatorid === Operators.IN || operatorid === Operators.NOT_IN) {\n            this.form.controls.comparator.setValue([this.searchObj.term]);\n          } else {\n            this.form.controls.comparator.setValue(this.searchObj.term);\n          }\n        }\n      } else {\n        this.form.controls.comparator.setValue(value);\n      }\n    }\n  }\n\n  onClearValue() {\n    this.searchObj = null;\n  }\n}\n","<form [formGroup]=\"form\">\n  <div class=\"v-form-popover\">\n    <div class=\"v-form-popover-title\">\n      <ng-container *ngIf=\"filterColumn?.column; else defaultHeaderBlock\">\n        {{ filterColumn | filterFormatter }}\n      </ng-container>\n      <ng-template #defaultHeaderBlock>\n        {{ \"ADD FILTER\" | translate }}{{form.controls['column'].touched}} {{touchedSubmit}}\n      </ng-template>\n    </div>\n    <div class=\"v-form-popover-content\">\n      <div class=\"v-form-item\">\n        <div class=\"v-form-item-row\">\n          <div class=\"v-form-item-label\">\n            {{ \"COLUMN\" | translate }}\n          </div>\n          <div class=\"v-form-item-control\">\n            <div class=\"v-form-item-control-input\">\n              <ng-select\n                #columnName\n                formControlName=\"column\"\n                [items]=\"columns\"\n                [multiple]=\"false\"\n                (change)=\"onChangeColumn($event)\"\n                [closeOnSelect]=\"closeOnSelect\"\n                [clearable]=\"false\"\n                bindLabel=\"name\"\n                bindValue=\"value\"\n                placeholder=\"{{ 'SELECT COLUMN' | translate }}\"\n                [notFoundText]=\"'Not found column'\"\n                [ngClass]=\"{\n                  'is-invalid':\n                    !form.controls['column'].value &&\n                    (form.controls['column'].touched || touchedSubmit)\n                }\"\n              >\n                <ng-template\n                  let-index=\"index\"\n                  let-item=\"item\"\n                  let-search=\"searchTerm\"\n                  ng-label-tmp\n                >\n                  <div class=\"d-flex align-items-center\">\n                    <div\n                      class=\"data-type {{ item.type | checkTypePipe }}\"\n                    ></div>\n                    <div>{{ item.name | translate }}</div>\n                  </div>\n                </ng-template>\n                <ng-template\n                  let-index=\"index\"\n                  let-item=\"item\"\n                  let-search=\"searchTerm\"\n                  ng-option-tmp\n                >\n                  <div class=\"d-flex align-items-center\">\n                    <div\n                      class=\"data-type {{ item.type | checkTypePipe }}\"\n                    ></div>\n                    <div>{{ item.name | translate }}</div>\n                  </div>\n                </ng-template>\n              </ng-select>\n            </div>\n          </div>\n        </div>\n        <div class=\"v-form-item-row\">\n          <div class=\"v-form-item-label\">\n            {{ \"OPERATOR\" | translate }}\n          </div>\n          <div class=\"v-form-item-control\">\n            <div class=\"v-form-item-control-input\">\n              <ng-select\n                #columnOperator\n                formControlName=\"operatorid\"\n                [items]=\"operators\"\n                [multiple]=\"false\"\n                [closeOnSelect]=\"closeOnSelect\"\n                [clearable]=\"false\"\n                (change)=\"onOperatorChange($event)\"\n                bindLabel=\"name\"\n                bindValue=\"value\"\n                placeholder=\"{{ 'SELECT OPERATOR' | translate }}\"\n              >\n              </ng-select>\n            </div>\n          </div>\n        </div>\n\n        <div\n          class=\"v-form-item-row\"\n          [hidden]=\"\n            form.get('operatorid').value === filterOperator.IS_NULL ||\n            form.get('operatorid').value === filterOperator.IS_NOT_NULL\n          \"\n        >\n          <div class=\"v-form-item-label\">\n            <ng-container\n              *ngIf=\"\n                form.get('operatorid').value === filterOperator.LIKE;\n                else defaultFilterBlock\n              \"\n            >\n              Pattern\n            </ng-container>\n            <ng-template #defaultFilterBlock>{{\n              \"FILTER VALUE\" | translate\n            }}</ng-template>\n          </div>\n          <div class=\"v-form-item-control\">\n            <div\n              [ngStyle]=\"isDate ? { display: 'none' } : { display: 'block' }\"\n              class=\"v-form-item-control-input\"\n            >\n              <ng-select\n                formControlName=\"comparator\"\n                [items]=\"values\"\n                [addTag]=\"addValue\"\n                id=\"comparator-id\"\n                [closeOnSelect]=\"closeOnSelect\"\n                [hideSelected]=\"true\"\n                (search)=\"onSearch($event)\"\n                (blur)=\"onBlur($event)\"\n                (clear)=\"onClearValue()\"\n                placeholder=\"{{ 'ENTER VALUE' | translate }}\"\n                [multiple]=\"\n                  form.get('operatorid').value === filterOperator.IN ||\n                  form.get('operatorid').value === filterOperator.NOT_IN\n                \"\n                [ngClass]=\"{\n                  'is-invalid':\n                    !form.get('comparator').value &&\n                    form.get('operatorid').value !== filterOperator.IS_NULL &&\n                    form.get('operatorid').value !==\n                      filterOperator.IS_NOT_NULL &&\n                    (form.controls['comparator'].touched || touchedSubmit)\n                }\"\n              >\n              </ng-select>\n            </div>\n            <div\n              *ngIf=\"isTimeRange\"\n              class=\"content-time d-flex justify-content-between align-items-center\"\n            >\n              <div class=\"calendar-group position-relative\">\n                <input\n                  #started=\"bsDatepicker\"\n                  [(bsValue)]=\"fromDate\"\n                  [bsConfig]=\"{ dateInputFormat: 'DD/MM/YYYY' }\"\n                  bsDatepicker\n                  class=\"form-control form-control-sm\"\n                  id=\"dateStart\"\n                  (bsValueChange)=\"onChangeStartDate($event)\"\n                  placeholder=\"dd/mm/yyyy\"\n                  placement=\"top\"\n                  [ngClass]=\"validateTime ? '' : 'is-invalid'\"\n                />\n                <span (click)=\"started.toggle()\" class=\"calendar-icon\"\n                  ><i class=\"fa fa-calendar\"></i\n                ></span>\n              </div>\n              <span class=\"mx-1\">-</span>\n              <div class=\"calendar-group position-relative\">\n                <input\n                  #expired=\"bsDatepicker\"\n                  [(bsValue)]=\"toDate\"\n                  (bsValueChange)=\"onChangeEndDate($event)\"\n                  [bsConfig]=\"{ dateInputFormat: 'DD/MM/YYYY' }\"\n                  [minDate]=\"fromDate\"\n                  bsDatepicker\n                  class=\"form-control form-control-sm\"\n                  id=\"dateEnd\"\n                  placeholder=\"dd/mm/yyyy\"\n                  placement=\"top\"\n                  [ngClass]=\"validateTime ? '' : 'is-invalid'\"\n                />\n                <span (click)=\"expired.toggle()\" class=\"calendar-icon\"\n                  ><i class=\"fa fa-calendar\"></i\n                ></span>\n              </div>\n            </div>\n            <div\n              *ngIf=\"isDate\"\n              [ngStyle]=\"\n                isTimeRange ? { display: 'none' } : { display: 'flex' }\n              \"\n              class=\"calendar-group position-relative\"\n            >\n              <input\n                #started=\"bsDatepicker\"\n                [(bsValue)]=\"valueDate\"\n                [bsConfig]=\"{ dateInputFormat: 'DD/MM/YYYY' }\"\n                bsDatepicker\n                class=\"form-control form-control-sm\"\n                id=\"valueDate\"\n                (bsValueChange)=\"onChangeStartDate($event)\"\n                placeholder=\"dd/mm/yyyy\"\n                placement=\"top\"\n                [ngClass]=\"validateTime ? '' : 'is-invalid'\"\n              />\n              <span (click)=\"started.toggle()\" class=\"calendar-icon\"\n                ><i class=\"fa fa-calendar\"></i\n              ></span>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div\n        class=\"v-form-bottom-action\"\n        ngClass=\"{{ filterColumn ? '' : 'btn-mectrics' }}\"\n      >\n        <button type=\"button\" (click)=\"onClose()\" class=\"btn btn-sm\">\n          {{ \"cancel\" | translate }}\n        </button>\n        <button\n          *ngIf=\"!filterColumn\"\n          type=\"button\"\n          (click)=\"onSaveClose()\"\n          class=\"ml-2 btn btn-sm v-form-btn-primary\"\n        >\n          {{ \"Save\" | translate }}\n        </button>\n        <button\n          type=\"button\"\n          (click)=\"onSave()\"\n          class=\"ml-2 btn btn-sm v-form-btn-primary\"\n        >\n          {{ \"Add\" | translate }}\n        </button>\n      </div>\n    </div>\n  </div>\n</form>\n","import {\n  Component,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  Input,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n} from '@angular/core';\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from 'inet-core';\nimport { ChartService } from '../chart.service';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n  ColumnDataType,\n  FilterColumn,\n  IColorScheme,\n  IColumn,\n  IDataSource,\n  IFilter,\n  ISelectMetadata,\n  KeyValue,\n  colorSchemes,\n} from '../model/chart-custom';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { uniqueArrayObject } from '../../common/uniqueArray';\nimport { PopoverWrapperComponent } from '../popover-wrapper/popover-wrapper.component';\nimport { Subscription } from 'rxjs';\nimport { IAttribute } from '../model/template';\nimport { IControlTemplateHTML } from '../model/html-template';\nimport {\n  convertCalcLoop,\n  handleCalcLoop,\n  handleLoop,\n} from '../../common/index';\nimport {handleHTML} from './chart-html-template.fuctions'\n\n@Component({\n  selector: 'app-chart-html-template',\n  templateUrl: './chart-html-template.component.html',\n  styleUrls: ['./chart-html-template.component.scss'],\n})\nexport class ChartHTMLTemplate\n  extends PopoverWrapperComponent\n  implements OnInit, OnChanges\n{\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() uuidChart: string;\n  @Input() contentHTML: string;\n  @Output() validForm = new EventEmitter<boolean>();\n  @Output() customizeSave = new EventEmitter<KeyValue>();\n  @Output() factorSave = new EventEmitter<KeyValue>();\n  formSelect: FormGroup = this.fb.group({});\n  formInput: FormGroup = this.fb.group({});\n  formCustomize: FormGroup = this.fb.group({});\n  filterColumns: FilterColumn[] = [];\n  outsideClick: boolean = false;\n  touchedSubmit: boolean = false;\n  arrayColorSchemes: IColorScheme[] = colorSchemes;\n  timeOut: any;\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n  arrSelect: KeyValue[] = [];\n  arrInput: KeyValue[] = [];\n  arrColor: KeyValue[] = [];\n  arrFontSize: KeyValue[] = [];\n  arrWidth: KeyValue[] = [];\n  arrHeight: KeyValue[] = [];\n  arrCustomize: KeyValue[] = [];\n  arrImg: KeyValue[] = [];\n  arrBackground: KeyValue[] = [];\n  arrLoop: KeyValue[] = [];\n  handleHTML: any;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  columnsSubmit: IColumn[];\n  constructor(\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    super();\n    this.translateSubscription = translate\n      .get(['VISUALIZE.CHART.FIELD'])\n      .subscribe((data) => {\n        this.actionTranslate = data['VISUALIZE.CHART.FIELD'];\n      });\n  }\n\n  ngOnInit() {\n    this.handleHTML = handleHTML.bind(this);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('columns' in changes) {\n      if (this.columns.length > 0 && !this.uuidChart) {\n        this.handleColumn();\n      }\n    }\n    if ('contentHTML' in changes) {\n      if (!this.uuidChart) {\n        setTimeout(() => {\n          this.handleHTML()\n        }, 100);\n      }\n    }\n  }\n  handleColumn() {\n    this.columnsSubmit = this.columns.map(\n      (col: ISelectMetadata, index: number) => {\n        let obj: IColumn = {\n          filterable: true,\n          groupby: true,\n          is_certified: false,\n          column_name: col.value,\n          type: col.type,\n          id: index,\n          type_generic: 0,\n          is_dttm: false,\n        };\n        switch (col.type) {\n          case ColumnDataType.INT:\n          case ColumnDataType.DOUBLE:\n          case ColumnDataType.LONG:\n          case ColumnDataType.INT64:\n          case ColumnDataType.FLOAT:\n          case ColumnDataType.NUMBER:\n            obj['type_generic'] = 0;\n            break;\n          case ColumnDataType.STRING:\n          case ColumnDataType.CHAR:\n            obj['type_generic'] = 1;\n            break;\n          case ColumnDataType.DATE:\n            obj['type_generic'] = 2;\n            break;\n          case ColumnDataType.BOOLEAN:\n            obj['type_generic'] = 3;\n            break;\n          default:\n            break;\n        }\n        obj['is_dttm'] = col.type === 'DATE' ? true : false;\n        return obj;\n      }\n    );\n  }\n\n  onFileSelected(event: Event) {\n    const target = event.target as HTMLInputElement;\n    const file = target.files[0];\n    const id = target.getAttribute('id');\n    if (file) {\n      const reader = new FileReader();\n      reader.onload = (e) => {\n        let imgUri = e.target.result as string;\n        const arrImg = document.querySelectorAll(`img[imguri=\"${id}\"]`);\n        arrImg.forEach((img: HTMLImageElement) => {\n          img.src = imgUri;\n        });\n        this.arrImg = this.arrImg.map((i: KeyValue) => {\n          if (i.name === id) {\n            i.value = imgUri;\n          }\n          return i;\n        });\n      };\n      reader.readAsDataURL(file);\n    }\n    this.emitCustomize();\n  }\n  emitCustomize() {\n    this.customizeSave.emit({\n      input: this.formInput.getRawValue(),\n      select: this.formSelect.getRawValue(),\n      filters: this.filterColumns,\n      customize: this.formCustomize.getRawValue(),\n      img: this.arrImg,\n      loop: this.arrLoop,\n    });\n  }\n\n  formChangeCommon() {\n    this.formSelect.valueChanges.subscribe((formValue) => {\n      this.validForm.emit(\n        Object.keys(formValue).some((value) => formValue[value])\n      );\n      this.emitCustomize();\n      let columns: string[] = [];\n      for (const iterator of Object.keys(formValue)) {\n        if (formValue[iterator]) {\n          columns.push(formValue[iterator]);\n        }\n      }\n      let formDataSubmit = {\n        columns,\n        row_limit: 1,\n        filters: this.convertFilter(),\n      };\n      this.factorSave.emit(formDataSubmit);\n    });\n    this.formInput.valueChanges.subscribe((formValue) => {\n      for (const value of Object.keys(formValue)) {\n        if (formValue[value]) {\n          const arrSpan = document.querySelectorAll(`span[name=\"${value}\"]`);\n          arrSpan.forEach((span) => {\n            span.innerHTML = formValue[value];\n          });\n        } else {\n          const arrSpan = document.querySelectorAll(`span[name=\"${value}\"]`);\n          arrSpan.forEach((span) => {\n            span.innerHTML = `{${value}}`;\n          });\n        }\n      }\n      this.emitCustomize();\n    });\n\n    this.formCustomize.valueChanges.subscribe((formValue) => {\n      for (const iterator of Object.keys(formValue)) {\n        if (formValue[iterator]) {\n          if (iterator.toLowerCase().includes('color')) {\n            const arrSpan = document.querySelectorAll(\n              `span[color=\"${iterator}\"]`\n            );\n            arrSpan.forEach((span: HTMLElement) => {\n              span.style.color = formValue[iterator];\n            });\n          }\n          if (iterator.toLowerCase().includes('background')) {\n            const arrBg = document.querySelectorAll(\n              `[background=\"${iterator}\"]`\n            );\n            arrBg.forEach((bg: HTMLElement) => {\n              bg.style.background = formValue[iterator];\n            });\n          }\n          if (\n            iterator.toLowerCase().includes('fontsize') ||\n            iterator.toLowerCase().includes('font_size')\n          ) {\n            const arrSpan = document.querySelectorAll(\n              `span[fontsize=\"${iterator}\"]`\n            );\n            arrSpan.forEach((span: HTMLElement) => {\n              span.style.fontSize = `${formValue[iterator]}px`;\n            });\n          }\n          if (iterator.toLowerCase().includes('width')) {\n            const arrWidth = document.querySelectorAll(\n              `[sizewidth=\"${iterator}\"]`\n            );\n            arrWidth.forEach((width: HTMLElement) => {\n              width.style.width = `${formValue[iterator]}px`;\n            });\n          }\n          if (iterator.toLowerCase().includes('height')) {\n            const arrHeight = document.querySelectorAll(\n              `[sizeheight=\"${iterator}\"]`\n            );\n            arrHeight.forEach((width: HTMLElement) => {\n              width.style.height = `${formValue[iterator]}px`;\n            });\n          }\n        }\n      }\n      this.emitCustomize();\n    });\n\n    this.emitCustomize();\n  }\n\n  //filter popover\n  onClickEditPopover() {\n    this.clearAllPopover();\n    this.enableScroll = false;\n  }\n\n  removeFilter(filterColumn: FilterColumn) {\n    this.filterColumns = this.filterColumns.filter(\n      (item) => item !== filterColumn\n    );\n    this.emitCustomize();\n    let columns: string[] = [];\n    for (const iterator of Object.keys(this.formSelect.getRawValue())) {\n      if (this.formSelect.getRawValue()[iterator]) {\n        columns.push(this.formSelect.getRawValue()[iterator]);\n      }\n    }\n    let formDataSubmit = {\n      columns,\n      row_limit: 1,\n      filters: this.convertFilter(),\n    };\n    this.factorSave.emit(formDataSubmit);\n  }\n\n  onSaveFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n  }\n\n  onSaveCloseFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n    this.clearAllPopover();\n  }\n\n  onSaveFilterCommon(filterColumn: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [...this.filterColumns, filterColumn],\n      'name'\n    );\n    this.emitCustomize();\n    let columns: string[] = [];\n    for (const iterator of Object.keys(this.formSelect.getRawValue())) {\n      if (this.formSelect.getRawValue()[iterator]) {\n        columns.push(this.formSelect.getRawValue()[iterator]);\n      }\n    }\n    let formDataSubmit = {\n      columns,\n      row_limit: 1,\n      filters: this.convertFilter(),\n    };\n    this.factorSave.emit(formDataSubmit);\n  }\n\n  onUpdateFilter(oldFilterCol: FilterColumn, newFilterCol: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [\n        ...this.filterColumns.map((column) => {\n          if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n          return column;\n        }),\n      ],\n      'name'\n    );\n    this.clearAllPopover();\n    this.emitCustomize();\n    let columns: string[] = [];\n    for (const iterator of Object.keys(this.formSelect.getRawValue())) {\n      if (this.formSelect.getRawValue()[iterator]) {\n        columns.push(this.formSelect.getRawValue()[iterator]);\n      }\n    }\n    let formDataSubmit = {\n      columns,\n      row_limit: 1,\n      filters: this.convertFilter(),\n    };\n    this.factorSave.emit(formDataSubmit);\n  }\n\n  convertFilter() {\n    let filters: IFilter[] = [];\n    if (this.filterColumns.length > 0) {\n      filters = this.filterColumns.map((filter: FilterColumn) => {\n        let obj: IFilter = {\n          col: filter.column,\n          colType: filter.columnType,\n          op: filter.operator,\n          val: filter.comparator,\n          fromDate: filter?.fromDate,\n          toDate: filter?.toDate,\n        };\n        return obj;\n      });\n    }\n    return filters;\n  }\n\n  getDataVizCustom(datasource: IDataSource) {\n    const { selectValue, inputValue } = this.getRawValue();\n    let columns: string[] = [];\n    for (const iterator of Object.keys(selectValue)) {\n      if (selectValue[iterator]) {\n        columns.push(selectValue[iterator]);\n      }\n    }\n    let forDataSubmit = {\n      columns,\n      datasource,\n      row_limit: 1,\n      filters: this.convertFilter(),\n    };\n    return new Promise((resolve, reject) => {\n      if (forDataSubmit.columns.length > 0 || forDataSubmit.filters.length > 0) {\n        this.chartService\n          .getDataCustom({\n            formData: JSON.stringify(forDataSubmit),\n            datasource: JSON.stringify(datasource),\n            force: 'fales',\n            result_format: 'json',\n            result_type: 'full',\n          })\n          .subscribe((res: any) => {\n            if (res.type !== ErrorMessage.TYPE) {\n              if (res.elements.length > 0) {\n                const obj = res.elements[0];\n                const calcLoop = this.arrLoop.filter((l) =>\n                  l.name.includes('calc(')\n                );\n                for (const iterator of calcLoop) {\n                  iterator['operator'] = '';\n                }\n                for (const iterator of Object.keys(selectValue)) {\n                  if (selectValue[iterator]) {\n                    const arrSpan = document.querySelectorAll(\n                      `span[name=\"${iterator}\"]`\n                    );\n                    arrSpan.forEach((span) => {\n                      span.innerHTML = typeof obj[selectValue[iterator]] === 'number' ? Number(obj[selectValue[iterator]]).toLocaleString() : obj[selectValue[iterator]];\n                    });\n                  } else {\n                    const arrSpan = document.querySelectorAll(\n                      `span[name=\"${iterator}\"]`\n                    );\n                    arrSpan.forEach((span) => {\n                      span.innerHTML = `{${iterator}}`;\n                    });\n                  }\n                  if (this.arrLoop.length > 0) {\n                    handleLoop(this.arrLoop, obj, iterator, selectValue);\n                  }\n                  if (calcLoop.length > 0) {\n                    convertCalcLoop(calcLoop, obj, selectValue, iterator);\n                  }\n                }\n                if (calcLoop.length > 0) {\n                  handleCalcLoop(calcLoop);\n                }\n              }\n              resolve({ queriesData: res.elements, formData: selectValue });\n            } else {\n              reject(res);\n            }\n          });\n      } else {\n        resolve({ queriesData: [], formData: selectValue });\n      }\n    });\n  }\n\n  getRawValue() {\n    const selectValue = this.formSelect.getRawValue();\n    const inputValue = this.formInput.getRawValue();\n    return { selectValue, inputValue };\n  }\n\n  setRawValue(attribute: IAttribute) {\n    this.columns = attribute.columns;\n    this.handleColumn();\n    const formData = attribute.formData as IControlTemplateHTML;\n    this.filterColumns = formData.filters;\n    this.arrInput = [];\n    this.arrSelect = [];\n    this.arrCustomize = [];\n    this.arrImg = formData.img || [];\n    this.arrLoop = formData.loop || [];\n    for (const iterator of Object.keys(formData.input)) {\n      this.arrInput.push({ name: iterator });\n    }\n    for (const iterator of Object.keys(formData.select)) {\n      this.arrSelect.push({ name: iterator });\n    }\n    for (const iterator of Object.keys(formData.customize)) {\n      if (iterator.toLowerCase().includes('color')) {\n        this.arrCustomize.push({ type: 'color', name: iterator });\n      }\n      if (iterator.toLowerCase().includes('background')) {\n        this.arrCustomize.push({ type: 'background', name: iterator });\n      }\n      if (\n        iterator.toLowerCase().includes('fontsize') ||\n        iterator.toLowerCase().includes('font_size')\n      ) {\n        this.arrCustomize.push({ type: 'fontsize', name: iterator });\n      }\n\n      if (iterator.toLowerCase().includes('width')) {\n        this.arrCustomize.push({ type: 'sizewidth', name: iterator });\n      }\n      if (iterator.toLowerCase().includes('height')) {\n        this.arrCustomize.push({ type: 'sizeheight', name: iterator });\n      }\n    }\n\n    const formInput = Object.keys(formData.input).reduce(\n      (prev, cur: string) => ({\n        ...prev,\n        [cur]: [formData.input[cur]],\n      }),\n      {}\n    );\n    const formSelect = Object.keys(formData.select).reduce(\n      (prev, cur: string) => ({\n        ...prev,\n        [cur]: [formData.select[cur]],\n      }),\n      {}\n    );\n    const formCustomize = Object.keys(formData.customize).reduce(\n      (prev, cur: string) => ({\n        ...prev,\n        [cur]: [formData.customize[cur]],\n      }),\n      {}\n    );\n    this.formInput = this.fb.group(formInput);\n    this.formSelect = this.fb.group(formSelect);\n    this.formCustomize = this.fb.group(formCustomize);\n    this.formChangeCommon();\n    return Promise.resolve();\n  }\n}\n","<tabset #staticTabs class=\"custom__control-tabset\">\n  <tab heading=\"{{ 'VISUALIZE.FACTOR' | translate }}\" class=\"custom__control-tab\">\n    <div *ngIf=\"arrImg.length > 0\" class=\"wrap-img\">\n      <div *ngFor=\"let img of arrImg\">\n        <label class=\"label-visualize\">{{ img.name }}</label>\n        <div class=\"form-group custom-wrap\">\n          <div *ngIf=\"!img.value\" style=\"text-align: center; padding: 0 70px;\">\n            <label class=\"label-visualize\">{{ \"VISUALIZE.UPLOAD_IMG\" | translate }}</label>\n            <i class=\"fa fa-picture-o\" aria-hidden=\"true\"></i>\n          </div>\n          <input type=\"file\" accept=\"image/png, image/gif, image/jpeg, image/jpg\" (change)=\"onFileSelected($event)\" id=\"{{img.name}}\">\n          <img [src]=\"img.value\" alt=\"\" id=\"img-{{img.name}}\" [ngStyle]=\"img.value ? {'display': 'block'} : {'display': 'none'}\">\n        </div>\n      </div>\n    </div>\n    <form class=\"custom__control-form\" [formGroup]=\"formSelect\">\n      <!-- select -->\n      <div class=\"form-group\" *ngIf=\"arrSelect.length > 0\" style=\"border-top: 0\">\n        <div class=\"form-group--wrap\" *ngFor=\"let select of arrSelect\">\n          <label class=\"label-visualize\">{{ select.name }}</label>\n          <ng-select formControlName=\"{{ select.name }}\" [items]=\"columns\" [multiple]=\"false\" [clearable]=\"true\"\n            bindLabel=\"name\" bindValue=\"value\" placeholder=\"{{ 'VISUALIZE.SELECT_COLUMN' | translate }}\">\n            <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-label-tmp>\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n            <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-option-tmp>\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n          </ng-select>\n        </div>\n      </div>\n      <!-- select -->\n    </form>\n    <form class=\"custom__control-form\" [formGroup]=\"formInput\">\n      <!-- input -->\n      <div class=\"form-group\" *ngIf=\"arrInput.length > 0\">\n        <div class=\"form-group--wrap\" *ngFor=\"let input of arrInput\">\n          <label class=\"label-visualize\">{{ input.name }}</label>\n          <input type=\"text\" formControlName=\"{{ input.name }}\"\n            placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\" />\n        </div>\n      </div>\n      <!-- input -->\n    </form>\n    <!-- filter -->\n    <div class=\"form-group\">\n      <div class=\"wrapper-filter-metric filter\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.FILTERS\" | translate\n          }}</label>\n        <div class=\"form-control-wrapper\">\n          <div *ngFor=\"let item of filterColumns; let i = index\" class=\"form-control-item editable\">\n            <span class=\"item-button-remove\"><i (click)=\"removeFilter(item)\" class=\"fa fa-remove\"></i></span>\n            <span #editFilterColumnPop=\"bs-popover\" (click)=\"onClickEditPopover()\" [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\" [popoverContext]=\"{ item: item, index: i }\"\n              [popover]=\"editFilterColumnTemplate\" boundariesElement=\"viewport\" class=\"item-label\" container=\"body\"\n              containerClass=\"v-popover\" placement=\"top\">\n              {{ item | filterFormatter }}\n            </span>\n          </div>\n          <div (onShown)=\"onPopoverShown(filterColumnPop)\" #filterColumnPop=\"bs-popover\" [adaptivePosition]=\"true\"\n            [outsideClick]=\"outsideClick\" [popover]=\"addFilterColumnTemplate\" boundariesElement=\"viewport\"\n            class=\"form-control-item-add\" container=\"body\" containerClass=\"v-popover\" placement=\"top\">\n            <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n            <span class=\"control-item-text\">{{\n              \"VISUALIZE.ADD_FILTER\" | translate\n              }}</span>\n          </div>\n          <ng-template #addFilterColumnTemplate>\n            <app-filter-popover (cancel)=\"filterColumnPop.hide()\" (save)=\"onSaveFilter($event)\" [columns]=\"columns\"\n              (saveClose)=\"onSaveCloseFilter($event)\" [filterIndex]=\"columns.length\">\n            </app-filter-popover>\n          </ng-template>\n          <ng-template #editFilterColumnTemplate let-index=\"index\" let-item=\"item\">\n            <app-filter-popover (cancel)=\"clearAllPopover()\" (save)=\"onUpdateFilter(item, $event)\" [columns]=\"columns\"\n              [filterColumn]=\"item\" [filterIndex]=\"index\">\n            </app-filter-popover>\n          </ng-template>\n        </div>\n      </div>\n    </div>\n    <!-- filter -->\n  </tab>\n  <tab heading=\"{{ 'VISUALIZE.CUSTOMIZE' | translate }}\" class=\"custom__control-tab\">\n    <form class=\"custom__control-form\" [formGroup]=\"formCustomize\">\n      <!-- input -->\n      <div class=\"form-group form-group-customize\" *ngIf=\"arrCustomize.length\">\n        <div class=\"form-group--wrap\" *ngFor=\"let custom of arrCustomize\">\n          <label class=\"label-visualize\">{{ custom.name }}</label>\n          <ng-container *ngIf=\"custom.type !== 'color' && custom.type !== 'background' ; else colorPicker\">\n            <input type=\"number\" formControlName=\"{{ custom.name }}\"\n              placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\" />\n          </ng-container>\n          <ng-template #colorPicker>\n            <input type=\"color\" formControlName=\"{{ custom.name }}\" />\n          </ng-template>\n        </div>\n      </div>\n      <!-- input -->\n    </form>\n  </tab>\n</tabset>","import { FilterColumn, IFilter, IMetric } from \"../model/chart-custom\";\nimport { MetricColumn } from \"../model/metric\";\nimport { KeyValue } from \"../model/chart-custom\";\n\nexport const convertFormDataCustomBar = (\n  time: string,\n  metrics: IMetric[],\n  adhoc_filters: IFilter[],\n  time_grain_sqla: string,\n  row_limit: string,\n  dataZoom: boolean = false,\n  show_legend: boolean = true,\n  color_scheme: string[],\n  color_scheme_name: string\n): IFormDataCustomBar => {\n  return {\n    viz_type: \"echarts_timeseries_bar_compare\",\n    granularity_sqla: time ? time : \"\",\n    time_grain_sqla: time_grain_sqla ? time_grain_sqla : \"\",\n    metrics,\n    groupby: [],\n    adhoc_filters,\n    limit: \"\",\n    row_limit: row_limit ? Number(row_limit) : \"\",\n    orientation: \"vertical\",\n    x_axis_title_margin: 15,\n    y_axis_title_margin: 15,\n    y_axis_title_position: \"Left\",\n    color_scheme,\n    only_total: true,\n    show_legend,\n    legendType: \"scroll\",\n    legendOrientation: \"top\",\n    x_axis_time_format: \"smart_date\",\n    y_axis_format: \"SMART_NUMBER\",\n    y_axis_bounds: [null, null],\n    rich_tooltip: false,\n    tooltipTimeFormat: \"smart_date\",\n    extra_form_data: {},\n    granularity: \"\",\n    granularityType: time ? \"DATE\" : \"\",\n    dataZoom,\n    color_scheme_name,\n  };\n};\nexport const convertQueriesCustomBar = (\n  granularity: string,\n  time_grain_sqla: string,\n  metrics: IMetric[],\n  filters: IFilter[],\n  aggregates: any,\n  row_limit: string,\n  columnMetrics: MetricColumn[],\n  columnFilters: FilterColumn[]\n): IQueriesCustomBar => {\n  return {\n    granularity: granularity ? granularity : \"\",\n    filters,\n    extras: {\n      time_grain_sqla: time_grain_sqla ? time_grain_sqla : \"\",\n      having: \"\",\n      where: \"\",\n    },\n    applied_time_extras: {},\n    columns: [],\n    metrics,\n    post_processing: [\n      {\n        operation: \"pivot\",\n        options: {\n          index: [\"__timestamp\"],\n          columns: [],\n          aggregates,\n          drop_missing_columns: true,\n        },\n      },\n      {\n        operation: \"flatten\",\n      },\n    ],\n    row_limit: row_limit ? Number(row_limit) : \"\",\n    bottom_margin: 0,\n    annotation_layers: [],\n    timeseries_limit: 0,\n    timeseries_limit_metric: [],\n    order_desc: true,\n    url_params: {},\n    custom_params: {},\n    custom_form_data: {},\n    is_timeseries: true,\n    time_offsets: [],\n    granularity_sqla: granularity ? granularity : \"\",\n    time_grain_sqla: time_grain_sqla ? time_grain_sqla : \"\",\n    granularityType: granularity ? \"DATE\" : \"\",\n    viz_type: \"echarts_timeseries_bar_compare\",\n    columnMetrics,\n    columnFilters,\n  };\n};\n\nexport interface IFormDataCustomBar {\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  metrics: IMetric[];\n  groupby: string[];\n  adhoc_filters: IFilter[];\n  limit: string;\n  row_limit: string | number;\n  orientation: string;\n  x_axis_title_margin: number;\n  y_axis_title_margin: number;\n  y_axis_title_position: string;\n  color_scheme: string[] | string;\n  color_scheme_name: string;\n  only_total: boolean;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  x_axis_time_format: string;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  rich_tooltip: boolean;\n  tooltipTimeFormat: string;\n  extra_form_data: any;\n  granularity: string;\n  granularityType: string;\n  dataZoom: boolean;\n}\n\nexport interface IQueriesCustomBar {\n  granularity: string;\n  filters: IFilter[];\n  extras: {\n    time_grain_sqla: string;\n    having: string;\n    where: string;\n  };\n  applied_time_extras: any;\n  columns: string[];\n  metrics: IMetric[];\n  post_processing: [\n    {\n      operation: string;\n      options: {\n        index: string[];\n        columns: string[];\n        aggregates: any;\n        drop_missing_columns: true;\n      };\n    },\n    {\n      operation: string;\n    }\n  ];\n  row_limit: string | number;\n  bottom_margin: number;\n  annotation_layers: any[];\n  timeseries_limit: number;\n  timeseries_limit_metric: any[];\n  order_desc: boolean;\n  url_params: any;\n  custom_params: any;\n  custom_form_data: any;\n  is_timeseries: boolean;\n  time_offsets: any[];\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  granularityType: string;\n  viz_type: string;\n  columnMetrics: MetricColumn[];\n  columnFilters: FilterColumn[];\n}\n\nexport interface IFormDataBarV2 {\n  viz_type: string;\n  granularity_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  adhoc_filters: IFilter[];\n  groupby: string[];\n  columns: string[];\n  row_limit: number | string;\n  order_desc: boolean;\n  color_scheme: string[] | string;\n  color_scheme_name: string;\n  show_legend: boolean;\n  rich_tooltip: boolean;\n  y_axis_format: string;\n  y_axis_bounds: any[];\n  bottom_margin: string;\n  x_ticks_layout: string;\n  extra_form_data: any;\n  columnMetrics: MetricColumn[];\n  columnFilters: FilterColumn[];\n  dataZoom: boolean;\n  orientation: string;\n  compare: boolean;\n}\n\nexport const convertFormDataBarV2 = (\n  metrics: IMetric[],\n  adhoc_filters: IFilter[],\n  groupby: string[],\n  row_limit: string | number,\n  show_legend: boolean = true,\n  color_scheme: string[],\n  color_scheme_name: string,\n  columnMetrics: MetricColumn[],\n  columnFilters: FilterColumn[],\n  dataZoom: boolean,\n  x_ticks_layout: string,\n  orientation: string,\n  compare: boolean\n): IFormDataBarV2 => {\n  return {\n    viz_type: \"dist_bar_v2\",\n    granularity_sqla: \"\",\n    time_range: \"No filter\",\n    metrics,\n    adhoc_filters,\n    groupby,\n    columns: [],\n    row_limit,\n    order_desc: true,\n    color_scheme,\n    color_scheme_name,\n    show_legend,\n    dataZoom,\n    rich_tooltip: true,\n    y_axis_format: \"SMART_NUMBER\",\n    y_axis_bounds: [null, null],\n    bottom_margin: \"auto\",\n    x_ticks_layout,\n    extra_form_data: {},\n    columnMetrics,\n    columnFilters,\n    orientation,\n    compare,\n  };\n};\n\nexport interface IFormDataMixed {\n  viz_type: string;\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  time_range: string;\n  metrics: IMetric[];\n  groupby: string[];\n  adhoc_filters: IFilter[];\n  order_desc: boolean;\n  row_limit: number;\n  metrics_b: IMetric[];\n  groupby_b: string[];\n  adhoc_filters_b: IFilter[];\n  order_desc_b: boolean;\n  row_limit_b: number;\n  color_scheme: string[] | string;\n  color_scheme_name: string;\n  left_y_axis_title: string;\n  right_y_axis_right: string;\n  top_x_axis_title: string;\n  bottom_x_axis_title: string;\n  seriesTypeA: string;\n  seriesTypeB: string;\n  dataZoom: boolean;\n  show_legend: boolean;\n  legendType: string;\n  legendOrientation: string;\n  x_axis_time_format: string;\n  rich_tooltip: boolean;\n  tooltipTimeFormat: string;\n  y_axis_format: string;\n  y_axis_format_secondary: string;\n  extra_form_data: any;\n  columnMetrics: MetricColumn[];\n  columnFilters: FilterColumn[];\n  columnMetrics_b: MetricColumn[];\n  columnFilters_b: FilterColumn[];\n}\nexport interface IExtras {\n  time_grain_sqla: string;\n  having: string;\n  where: string;\n}\nexport interface IQueriesMixed {\n  time_range: string;\n  granularity: string;\n  filters: IFilter[];\n  extras: IExtras;\n  applied_time_extras: any;\n  columns: any[];\n  metrics: IMetric[];\n  annotation_layers: any[];\n  row_limit: number | string;\n  series_columns: string[];\n  timeseries_limit: number;\n  url_params: any;\n  custom_params: any;\n  custom_form_data: any;\n  is_timeseries: boolean;\n  time_offsets: any[];\n  post_processing?:\n    | [\n        {\n          operation: string;\n          options: {\n            index: string[];\n            columns: string[];\n            aggregates: KeyValue;\n            drop_missing_columns: boolean;\n          };\n        },\n        { operation: string }\n      ]\n    | [];\n  orderby: any[];\n  granularity_sqla: string;\n  time_grain_sqla: string;\n  granularityType: string;\n}\n\nexport const convertFormDataMixed = (\n  granularity_sqla: string,\n  time_grain_sqla: string,\n  metrics: IMetric[],\n  groupby: string[],\n  row_limit: number,\n  adhoc_filters: IFilter[],\n  metrics_b: IMetric[],\n  adhoc_filters_b: IFilter[],\n  groupby_b: string[],\n  row_limit_b: number,\n  seriesTypeA: string,\n  color_scheme: string | string[],\n  color_scheme_name: string,\n  dataZoom: boolean,\n  show_legend: boolean,\n  left_y_axis_title: string,\n  right_y_axis_right: string,\n  top_x_axis_title: string,\n  bottom_x_axis_title: string,\n  columnMetrics: MetricColumn[],\n  columnFilters: FilterColumn[],\n  columnMetrics_b: MetricColumn[],\n  columnFilters_b: FilterColumn[]\n): IFormDataMixed => {\n  return {\n    viz_type: \"mixed\",\n    granularity_sqla: granularity_sqla ? granularity_sqla : \"\",\n    time_grain_sqla: time_grain_sqla ? time_grain_sqla : \"\",\n    time_range: \"No filter\",\n    metrics,\n    groupby,\n    adhoc_filters,\n    order_desc: false,\n    row_limit,\n    metrics_b,\n    adhoc_filters_b,\n    groupby_b,\n    order_desc_b: false,\n    row_limit_b,\n    color_scheme,\n    color_scheme_name,\n    left_y_axis_title,\n    right_y_axis_right,\n    top_x_axis_title,\n    bottom_x_axis_title,\n    seriesTypeA,\n    seriesTypeB: seriesTypeA === \"bar\" ? \"line\" : \"bar\",\n    dataZoom,\n    show_legend,\n    legendType: \"scroll\",\n    legendOrientation: \"top\",\n    x_axis_time_format: \"smart_date\",\n    rich_tooltip: false,\n    tooltipTimeFormat: \"smart_date\",\n    y_axis_format: \"SMART_NUMBER\",\n    y_axis_format_secondary: \"SMART_NUMBER\",\n    extra_form_data: {},\n    columnMetrics,\n    columnFilters,\n    columnMetrics_b,\n    columnFilters_b,\n  };\n};\n\nexport const convertQueriesMixed = (\n  granularity: string,\n  time_grain_sqla: string,\n  columns: string[],\n  metrics: IMetric[],\n  filters: IFilter[],\n  row_limit: number,\n  columns_b: string[],\n  metrics_b: IMetric[],\n  filters_b: IFilter[],\n  row_limit_b: number | string\n): IQueriesMixed[] => {\n  return [\n    {\n      time_range: \"No filter\",\n      granularity: granularity ? granularity : \"\",\n      filters,\n      extras: {\n        time_grain_sqla: time_grain_sqla ? time_grain_sqla : \"\",\n        having: \"\",\n        where: \"\",\n      },\n      applied_time_extras: {},\n      columns,\n      metrics,\n      annotation_layers: [],\n      row_limit: row_limit ? row_limit : \"\",\n      series_columns: columns,\n      timeseries_limit: 0,\n      url_params: {},\n      custom_params: {},\n      custom_form_data: {},\n      is_timeseries: granularity ? true : false,\n      time_offsets: [],\n      // post_processing: granularity\n      //   ? [\n      //       {\n      //         operation: \"pivot\",\n      //         options: {\n      //           index: [\"__timestamp\"],\n      //           columns,\n      //           aggregates,\n      //           drop_missing_columns: true,\n      //         },\n      //       },\n      //       { operation: \"flatten\" },\n      //     ]\n      //   : [],\n      orderby: [],\n      granularity_sqla: \"\",\n      time_grain_sqla: \"\",\n      granularityType: \"DATE\",\n    },\n    {\n      time_range: \"No filter\",\n      granularity: granularity ? granularity : \"\",\n      filters: filters_b,\n      extras: {\n        time_grain_sqla: time_grain_sqla ? time_grain_sqla : \"\",\n        having: \"\",\n        where: \"\",\n      },\n      applied_time_extras: {},\n      columns: columns_b,\n      metrics: metrics_b,\n      annotation_layers: [],\n      row_limit: row_limit_b ? row_limit_b : \"\",\n      series_columns: columns_b,\n      timeseries_limit: 0,\n      url_params: {},\n      custom_params: {},\n      custom_form_data: {},\n      is_timeseries: granularity ? true : false,\n      time_offsets: [],\n      // post_processing: granularity\n      //   ? [\n      //       {\n      //         operation: \"pivot\",\n      //         options: {\n      //           index: [\"__timestamp\"],\n      //           columns: columns_b,\n      //           aggregates: aggregates_b,\n      //           drop_missing_columns: true,\n      //         },\n      //       },\n      //       { operation: \"flatten\" },\n      //     ]\n      //   : [],\n      orderby: [],\n      granularity_sqla: \"\",\n      time_grain_sqla: \"\",\n      granularityType: \"DATE\",\n    },\n  ];\n};\n\n","import {\n  FilterColumn,\n  IColumn,\n  IFilter,\n  IMetric,\n  KeyValue,\n} from \"../model/chart-custom\";\nimport { MetricColumn } from \"../model/metric\";\n\nexport const convertMetric = (\n  columnsSubmit: IColumn[],\n  metricColumns: MetricColumn[]\n): IMetric[] => {\n  return metricColumns.map((metric: MetricColumn) => {\n    let obj: IMetric = {\n      expressionType: \"SIMPLE\",\n      column: columnsSubmit.filter(\n        (column: IColumn) => column.column_name === metric.column\n      )[0],\n      aggregate: metric.aggregate,\n      sqlExpression: null,\n      isNew: false,\n      datasourceWarning: false,\n      hasCustomLabel: false,\n      label: metric.name,\n    };\n    return obj;\n  });\n};\n\nexport const convertFilter = (filterColumns: FilterColumn[]): IFilter[] => {\n  return filterColumns.map((filter: FilterColumn) => {\n    let obj: IFilter = {\n      col: filter.column,\n      colType: filter.columnType,\n      op: filter.operator,\n      val: filter.comparator,\n      fromDate: filter?.fromDate,\n      toDate: filter?.toDate,\n    };\n    return obj;\n  });\n};\n\nexport const convertAggregate = (metricColumns: MetricColumn[]): KeyValue => {\n  let arrayAggregate: KeyValue[] = metricColumns.map((metric: MetricColumn) => {\n    let obj: KeyValue = {};\n    obj[metric.name] = {\n      operator: \"mean\",\n    };\n    return obj;\n  });\n\n  return arrayAggregate.reduce((a, v) => ({ ...a, ...v }), {});\n};\n","export interface MetricColumn {\n  uuid?: string;\n  column: string;\n  columnType: string;\n  aggregate: string;\n  name: string;\n}\n\nexport enum Aggregate {\n  AVG = \"avg\",\n  COUNT = \"count\",\n  COUNTDISTINCT = \"countdistinct\",\n  MAX = \"max\",\n  MIN = \"min\",\n  SUM = \"sum\",\n}\n\nexport const aggregateArray:string[] = [\n  Aggregate.AVG,\n  Aggregate.COUNT,\n  Aggregate.COUNTDISTINCT,\n  Aggregate.MAX,\n  Aggregate.MIN,\n  Aggregate.SUM\n]\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MetricColumn } from '../model/metric';\n\n@Pipe({\n  name: 'metricFormatter'\n})\nexport class MetricFormatter implements PipeTransform {\n  constructor() {{\n\n  }}\n  transform(column: MetricColumn, ...args: unknown[]): string {\n    return column.name;\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { iNet } from \"inet-core\";\nimport {\n  MetricColumn,\n  Aggregate,\n  aggregateArray\n} from \"../model/metric\";\nimport { ColumnDataType, ISelectMetadata } from \"../model/chart-custom\";\nimport { uniqueArray } from \"../../core/utils/uniqueArray\";\n@Component({\n  selector: \"app-metric-popover\",\n  templateUrl: \"./metric-popover.component.html\",\n  styleUrls: [\"./metric-popover.component.scss\"],\n})\nexport class MetricPopoverComponent implements OnInit {\n  @Output() cancelMetric = new EventEmitter<void>();\n  @Output() saveMetric = new EventEmitter<MetricColumn>();\n  @Output() saveAndClose = new EventEmitter<MetricColumn>();\n  @Input() metricColumn?: MetricColumn;\n  @Input() closeOnSelect?: boolean = true;\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() metricIndex: number = 0;\n  @ViewChild(\"nameLabel\") inputLabelElement: ElementRef;\n  nameLabelCustom: string = \"\";\n  touchedSubmit: boolean = false;\n  clearable: boolean = false;\n  isCustomLabel: boolean = false;\n  form: FormGroup = this.fb.group({\n    column: [null, Validators.required],\n    aggregate: [null],\n    nameLabel: [\"\"],\n  });\n  selectedFilters: any[] = [];\n\n  aggregates: string[] = aggregateArray;\n\n  constructor(private fb: FormBuilder) {}\n\n  ngOnInit(): void {\n    if (this.metricColumn) {\n      this.form.patchValue(this.metricColumn);\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (this.metricColumn) {\n      setTimeout(() => {\n        this.changeAggregate(this.metricColumn.columnType);\n      }, 1);\n    }\n  }\n  private getFormData() {\n    return this.form.getRawValue();\n  }\n\n  onCustomLabel() {\n    this.isCustomLabel = true;\n    setTimeout(() => {\n      this.inputLabelElement.nativeElement.focus();\n    }, 1);\n  }\n\n  onChangeLabel() {\n    this.isCustomLabel = false;\n    this.nameLabelCustom = this.getFormData().nameLabel;\n  }\n\n  onChangeColumn(column: ISelectMetadata) {\n    this.form.controls[\"aggregate\"].setValue(null);\n    this.changeAggregate(column.type);\n  }\n\n  changeAggregate(type: string) {\n    if (\n      type === ColumnDataType.DOUBLE ||\n      type === ColumnDataType.FLOAT ||\n      type === ColumnDataType.INT ||\n      type === ColumnDataType.INT64 ||\n      type === ColumnDataType.LONG ||\n      type === ColumnDataType.NUMBER\n    ) {\n      this.aggregates = aggregateArray;\n      this.clearable = true;\n    } else {\n      this.aggregates = [Aggregate.COUNT, Aggregate.COUNTDISTINCT];\n      this.form.controls[\"aggregate\"].setValue(this.aggregates[0]);\n      this.clearable = false;\n    }\n  }\n\n  onClose() {\n    this.cancelMetric.emit();\n  }\n\n  onSave() {\n    this.touchedSubmit = true;\n    if (this.form.valid) {\n      const newItem = this.save();\n      this.saveMetric.emit(newItem);\n      this.form.controls['column'].setErrors(null);\n      this.form.controls[\"aggregate\"].setErrors(null);\n    }\n  }\n\n  onSaveAndClose() {\n    this.touchedSubmit = true;\n    if (this.form.valid) {\n      const newItem = this.save();\n      this.saveAndClose.emit(newItem);\n    }\n  }\n\n  save() {\n    const newItem = JSON.parse(\n      JSON.stringify(this.getFormData())\n    ) as MetricColumn;\n    newItem.columnType = this.columns.filter(\n      (column) => column.name === newItem.column\n    )[0].type;\n    newItem.uuid = this.metricColumn?.uuid || iNet.generateId();\n    newItem.name = this.getFormData().nameLabel\n      ? this.getFormData().nameLabel\n      : newItem.aggregate\n      ? `${newItem.aggregate}(${newItem.column})`\n      : newItem.column;\n\n    newItem.aggregate = newItem.aggregate ? newItem.aggregate : \"\";\n    this.form.controls[\"column\"].setValue(null);\n    this.form.controls[\"aggregate\"].setValue(null);\n    return newItem;\n  }\n}\n","<form [formGroup]=\"form\">\n    <div class=\"v-form-popover\">\n        <div class=\"v-form-popover-title\">\n            <div class=\"wrap-title\" [ngStyle]=\"isCustomLabel ? {'display': 'none'} : {'display': 'block'}\">\n                <ng-container *ngIf=\"metricColumn?.column else defaultHeaderBlock\">\n                    {{nameLabelCustom ? nameLabelCustom : (metricColumn | metricFormatter)}}\n                    <i class=\"fa fa-pencil ml-1\" aria-hidden=\"true\" style=\"cursor: pointer;\" (click)=\"onCustomLabel()\"></i>\n                </ng-container>\n                <ng-template #defaultHeaderBlock style=\"cursor: pointer;\">\n                    {{ nameLabelCustom ? nameLabelCustom : ('Add metric' | translate) }} <i class=\"fa fa-pencil ml-1\" aria-hidden=\"true\" style=\"cursor: pointer;\" (click)=\"onCustomLabel()\"></i>\n                </ng-template>\n            </div>\n            <input type=\"text\" class=\"name-label\" name=\"name-label\" id=\"name-label\" #nameLabel formControlName=\"nameLabel\" [ngStyle]=\"isCustomLabel ? {'display': 'block'} : {'display': 'none'}\" (keyup.enter)=\"onChangeLabel()\">\n        </div>\n        <div class=\"v-form-popover-content\">\n            <div class=\"v-form-item\">\n                <div class=\"v-form-item-row\">\n                    <div class=\"v-form-item-label\">\n                        {{'Column' | translate}}\n                    </div>\n                    <div class=\"v-form-item-control\">\n                        <div class=\"v-form-item-control-input\">\n                            <ng-select #columnName (change)=\"onChangeColumn($event)\"\n                                       [clearable]=\"false\"\n                                       [closeOnSelect]=\"closeOnSelect\"\n                                       [items]=\"columns\"\n                                       [multiple]=\"false\" [ngClass]=\"{'is-invalid':form.controls['column'].hasError('required') && (form.controls['column'].touched || touchedSubmit)}\"\n                                       [notFoundText]=\"'Not found column'\"\n                                       bindLabel=\"name\"\n                                       bindValue=\"value\"\n                                       formControlName=\"column\"\n                                       placeholder=\"{{'Select column' | translate }}\">\n                                <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-label-tmp>\n                                    <div class=\"d-flex align-items-center\">\n                                        <div class=\"data-type {{item.type | checkTypePipe}}\"></div>\n                                        <div>{{item.name|translate}} </div>\n                                    </div>\n                                </ng-template>\n                                <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-option-tmp>\n                                    <div class=\"d-flex align-items-center\">\n                                        <div class=\"data-type {{item.type | checkTypePipe}}\"></div>\n                                        <div>{{item.name|translate}} </div>\n                                    </div>\n                                </ng-template>\n                            </ng-select>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"v-form-item-row\">\n                    <div class=\"v-form-item-label\">\n                        {{'Aggreate' | translate}}\n                    </div>\n                    <div class=\"v-form-item-control\">\n                        <div class=\"v-form-item-control-input\">\n                            <ng-select #columnAggregate\n                                       [clearable]=\"clearable\"\n                                       [closeOnSelect]=\"closeOnSelect\"\n                                       [items]=\"aggregates\"\n                                       [multiple]=\"false\"\n                                       bindLabel=\"value\"\n                                       bindValue=\"value\"\n                                       formControlName=\"aggregate\"\n                                       placeholder=\"{{'Select aggregate' | translate}}\">\n                            </ng-select>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"v-form-bottom-action list-btns\">\n                <button (click)=\"onClose()\" class=\"btn btn-sm\" type=\"button\">\n                    {{'Close' | translate}}\n                </button>\n                <button  (click)=\"onSaveAndClose()\" class=\"ml-2 btn btn-sm v-form-btn-primary\" type=\"button\">\n                    {{'Save' | translate}}\n                </button>\n                <button *ngIf=\"!metricColumn\" (click)=\"onSave()\" class=\"ml-2 btn btn-sm v-form-btn-primary\" type=\"button\">\n                    {{'Add' | translate}}\n                </button>\n            </div>\n        </div>\n    </div>\n</form>\n","import {\n  Component,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  Input,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n} from '@angular/core';\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n} from 'inet-core';\nimport { ChartService } from '../chart.service';\nimport {\n  FormBuilder,\n  FormGroup,\n  Validators,\n} from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n  ColumnDataType,\n  FilterColumn,\n  IColorScheme,\n  IColumn,\n  ICustomBarCustomize,\n  ICustomBarFactor,\n  IDataSource,\n  IFilter,\n  IFormDataSubmit,\n  IMetric,\n  ISelect,\n  ISelectMetadata,\n  KeyValue,\n  colorSchemes,\n} from '../model/chart-custom';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { uniqueArrayObject } from '../../common/uniqueArray';\nimport { PopoverWrapperComponent } from '../popover-wrapper/popover-wrapper.component';\nimport { Subscription } from 'rxjs';\nimport { MetricColumn } from '../model/metric';\nimport { timeGrain } from '../model/chart-custom';\nimport {\n  IFormDataCustomBar,\n  IQueriesCustomBar,\n  convertFormDataCustomBar,\n  convertQueriesCustomBar,\n} from '../chart-custom/convert-formdata';\nimport { convertAggregate, convertFilter, convertMetric } from '../chart-custom/chart-custom.functions';\n\n@Component({\n  selector: 'app-chart-custom-bar',\n  templateUrl: './chart-custom-bar.component.html',\n  styleUrls: ['./chart-custom-bar.component.scss'],\n})\nexport class ChartCustomBar\n  extends PopoverWrapperComponent\n  implements OnInit, OnChanges\n{\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() uuidChart: string;\n  @Output() validForm = new EventEmitter<boolean>();\n  @Output() customizeSave = new EventEmitter<IFormDataCustomBar>();\n  @Output() factorSave = new EventEmitter<any>();\n  columnsDate: ISelectMetadata[] = [];\n  columnsSubmit: IColumn[] = [];\n  formFactor: FormGroup = this.fb.group({\n    granularity_sqla: [null, Validators.required],\n    time_grain_sqla: [null],\n    row_limit: [null],\n  });\n  formCustomize: FormGroup = this.fb.group({\n    colorScheme: ['supersetColors'],\n    show_legend: [true],\n    dataZoom: [false],\n  });\n  filterColumns: FilterColumn[] = [];\n  metricColumns: MetricColumn[] = [];\n  outsideClick: boolean = false;\n  touchedSubmit: boolean = false;\n  arrayColorSchemes: IColorScheme[] = colorSchemes;\n  timeOut: any;\n  timeGrain: ISelect[] = timeGrain;\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  isAutoFocus = true;\n  constructor(\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    super();\n    this.translateSubscription = translate\n      .get(['VISUALIZE.CHART.FIELD'])\n      .subscribe((data) => {\n        this.actionTranslate = data['VISUALIZE.CHART.FIELD'];\n      });\n  }\n\n  ngOnInit() {\n    // Subscribe to form changes\n    this.formFactor.valueChanges.subscribe((formValue) => {\n      this.validForm.emit(\n        this.formFactor.valid && this.metricColumns.length > 1\n      );\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n        this.factorSave.emit(queries);\n      }, 100);\n    });\n\n    this.formCustomize.valueChanges.subscribe((formValue) => {\n      const { form_data } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n      }, 100);\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('columns' in changes) {\n      if (this.columns.length > 0) {\n        this.handleColumns();\n      }\n    }\n  }\n  //filter popover\n  onClickEditPopover() {\n    this.clearAllPopover();\n    this.enableScroll = false;\n  }\n\n  removeFilter(filterColumn: FilterColumn) {\n    this.filterColumns = this.filterColumns.filter(\n      (item) => item !== filterColumn\n    );\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  onSaveFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n  }\n\n  onSaveCloseFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n    this.clearAllPopover();\n  }\n\n  onSaveFilterCommon(filterColumn: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [...this.filterColumns, filterColumn],\n      'name'\n    );\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  onUpdateFilter(oldFilterCol: FilterColumn, newFilterCol: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [\n        ...this.filterColumns.map((column) => {\n          if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n          return column;\n        }),\n      ],\n      'name'\n    );\n    this.clearAllPopover();\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  //metric\n  onSaveMetric(metricColumn: MetricColumn) {\n    this.onSaveMetricCommon(metricColumn);\n    this.clearAllPopover();\n  }\n\n  onAddMetric(metricColumn: MetricColumn) {\n    this.onSaveMetricCommon(metricColumn);\n  }\n\n  onSaveMetricCommon(metricColumn: MetricColumn) {\n    this.metricColumns = uniqueArrayObject(\n      [...this.metricColumns, metricColumn],\n      'name'\n    );\n    this.validForm.emit(this.formFactor.valid && this.metricColumns.length > 1);\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  onUpdateMetric(oldMetricCol: MetricColumn, newMetricCol: MetricColumn) {\n    this.metricColumns = uniqueArrayObject(\n      [\n        ...this.metricColumns.map((column) => {\n          if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n          return column;\n        }),\n      ],\n      'name'\n    );\n    this.clearAllPopover();\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  removeMetric(metricColumn: MetricColumn) {\n    this.metricColumns = this.metricColumns.filter(\n      (item) => item !== metricColumn\n    );\n    this.validForm.emit(this.formFactor.valid && this.metricColumns.length > 1);\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  convertFormDataAndQueries() {\n    let dataFactor = this.formFactor.getRawValue() as ICustomBarFactor;\n    let dataCustomize = this.formCustomize.getRawValue() as ICustomBarCustomize;\n    let filters: IFilter[] = [];\n    let metrics: IMetric[] = [];\n    let aggregate: KeyValue;\n    filters = convertFilter(this.filterColumns);\n    metrics = convertMetric(this.columnsSubmit, this.metricColumns);\n\n    aggregate = convertAggregate(this.metricColumns);\n\n    const color = colorSchemes.filter(\n      (color: IColorScheme) => color.id === dataCustomize.colorScheme\n    )[0].colors;\n\n    let form_data = convertFormDataCustomBar(\n      dataFactor.granularity_sqla,\n      metrics,\n      filters,\n      dataFactor.time_grain_sqla,\n      dataFactor.row_limit,\n      dataCustomize.dataZoom,\n      dataCustomize.show_legend,\n      color,\n      dataCustomize.colorScheme\n    );\n    let queries = [\n      convertQueriesCustomBar(\n        dataFactor.granularity_sqla,\n        dataFactor.time_grain_sqla,\n        metrics,\n        filters,\n        aggregate,\n        dataFactor.row_limit,\n        this.metricColumns,\n        this.filterColumns,\n      ),\n    ];\n    return {\n      form_data,\n      queries,\n    };\n  }\n  getDataVizCustom(datasource: string | IDataSource) {\n    let { queries, form_data } = this.convertFormDataAndQueries();\n    let params: IFormDataSubmit = {\n      queries: JSON.stringify(queries),\n      form_data: JSON.stringify(form_data),\n      datasource: JSON.stringify(datasource),\n      force: 'false',\n      result_format: 'json',\n      result_type: 'full',\n    };\n    return new Promise((resolve, reject) => {\n      this.chartService.getDataVisualize(params).subscribe((res: any) => {\n        if (res.type !== ErrorMessage.TYPE) {\n          if (Object.keys(res).length > 0) {\n            resolve({ queriesData: [res], formData: form_data });\n          } else {\n            resolve({ queriesData: [], formData: form_data });\n          }\n        } else {\n          reject(res);\n        }\n      });\n    });\n  }\n\n  setRawValue(querie: IQueriesCustomBar,formData: IFormDataCustomBar, columns: ISelectMetadata[]) {\n    this.columns = columns;\n    this.handleColumns();\n    let factor: ICustomBarFactor = {\n      time_grain_sqla: formData.time_grain_sqla,\n      granularity_sqla: formData.granularity_sqla,\n      row_limit: String(formData.row_limit)\n    }\n    let customize: ICustomBarCustomize = {\n      colorScheme: formData.color_scheme_name,\n      dataZoom: formData.dataZoom,\n      show_legend: formData.show_legend,\n    };\n    this.metricColumns = querie[0].columnMetrics;\n    this.filterColumns = querie[0].columnFilters;\n    this.formFactor.patchValue(factor);\n    this.formCustomize.patchValue(customize);\n   \n\n    this.validForm.emit(\n      this.formFactor.valid && this.metricColumns.length > 1\n    );\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.customizeSave.emit(form_data);\n    this.factorSave.emit(queries);\n    return Promise.resolve();\n  }\n\n  handleColumns() {\n    this.columnsDate = this.columns.filter(\n      (col: ISelectMetadata) => col.type === ColumnDataType.DATE\n    );\n    this.columnsSubmit = this.columns.map(\n      (col: ISelectMetadata, index: number) => {\n        let obj: IColumn = {\n          filterable: true,\n          groupby: true,\n          is_certified: false,\n          column_name: col.value,\n          type: col.type,\n          id: index,\n          type_generic: 0,\n          is_dttm: false,\n        };\n        switch (col.type) {\n          case ColumnDataType.INT:\n          case ColumnDataType.DOUBLE:\n          case ColumnDataType.LONG:\n          case ColumnDataType.INT64:\n          case ColumnDataType.FLOAT:\n          case ColumnDataType.NUMBER:\n            obj['type_generic'] = 0;\n            break;\n          case ColumnDataType.STRING:\n          case ColumnDataType.CHAR:\n            obj['type_generic'] = 1;\n            break;\n          case ColumnDataType.DATE:\n            obj['type_generic'] = 2;\n            break;\n          case ColumnDataType.BOOLEAN:\n            obj['type_generic'] = 3;\n            break;\n          default:\n            break;\n        }\n        obj['is_dttm'] = col.type === 'DATE' ? true : false;\n        return obj;\n      }\n    );\n  }\n\n  onSaveChart() {}\n}\n","<tabset #staticTabs class=\"custom__control-tabset\">\n  <tab\n    heading=\"{{ 'VISUALIZE.FACTOR' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formFactor\" class=\"custom__control-form\">\n      <div class=\"form-group\">\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\"\n            >{{ \"VISUALIZE.TIME\" | translate }}\n            <i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              placement=\"right\"\n              [ngStyle]=\"\n                formFactor.controls['granularity_sqla'].value\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <ng-select\n            #columnName\n            formControlName=\"granularity_sqla\"\n            [items]=\"columnsDate\"\n            [multiple]=\"false\"\n            [clearable]=\"false\"\n            bindLabel=\"name\"\n            bindValue=\"value\"\n            placeholder=\"{{ 'VISUALIZE.SELECT_COLUMN' | translate }}\"\n            [notFoundText]=\"'Not found column'\"\n            [ngClass]=\"{\n              'is-invalid':\n                !formFactor.controls['granularity_sqla'].value &&\n                (formFactor.controls['granularity_sqla'].touched ||\n                  touchedSubmit)\n            }\"\n          >\n            <ng-template\n              let-index=\"index\"\n              let-item=\"item\"\n              let-search=\"searchTerm\"\n              ng-label-tmp\n            >\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n            <ng-template\n              let-index=\"index\"\n              let-item=\"item\"\n              let-search=\"searchTerm\"\n              ng-option-tmp\n            >\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n          </ng-select>\n        </div>\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\">{{\n            \"VISUALIZE.TIME_RANGE\" | translate\n          }}</label>\n          <ng-select\n            #columnName\n            formControlName=\"time_grain_sqla\"\n            [items]=\"timeGrain\"\n            [multiple]=\"false\"\n            [clearable]=\"true\"\n            bindLabel=\"name\"\n            bindValue=\"value\"\n            placeholder=\"{{ 'VISUALIZE.SELECT_COLUMN' | translate }}\"\n            [notFoundText]=\"'Not found column'\"\n          >\n          </ng-select>\n        </div>\n      </div>\n\n      <!-- metric -->\n      <div class=\"form-group\">\n        <!-- metric -->\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"VISUALIZE.METRICS\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.AT_LEAST_METRIC' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                metricColumns.length > 1\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of metricColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeMetric(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editMetricColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editMetricColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\"\n              >\n                {{ item | metricFormatter }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(metricColumnPop)\"\n              #metricColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addMetricColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"right\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_METRIC\" | translate\n              }}</span>\n            </div>\n            <ng-template #addMetricColumnTemplate>\n              <app-metric-popover\n                (cancelMetric)=\"metricColumnPop.hide()\"\n                (saveMetric)=\"onAddMetric($event)\"\n                (saveAndClose)=\"onSaveMetric($event)\"\n                [columns]=\"columns\"\n                [metricIndex]=\"columns.length\"\n              >\n              </app-metric-popover>\n            </ng-template>\n            <ng-template\n              #editMetricColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-metric-popover\n                (cancelMetric)=\"clearAllPopover()\"\n                (saveAndClose)=\"onUpdateMetric(item, $event)\"\n                [columns]=\"columns\"\n                [metricColumn]=\"item\"\n                [metricIndex]=\"index\"\n              >\n              </app-metric-popover>\n            </ng-template>\n          </div>\n        </div>\n        <!-- metric -->\n      </div>\n      <!-- metric -->\n      <div class=\"form-group\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.ROW_LIMIT\" | translate\n        }}</label>\n        <input\n          type=\"number\"\n          formControlName=\"row_limit\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n      <!-- filter -->\n      <div class=\"form-group\">\n        <div class=\"wrapper-filter-metric filter\">\n          <label class=\"label-visualize\">{{\n            \"VISUALIZE.FILTERS\" | translate\n          }}</label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of filterColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeFilter(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editFilterColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editFilterColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"top\"\n              >\n                {{ item | filterFormatter }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(filterColumnPop)\"\n              #filterColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addFilterColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"top\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_FILTER\" | translate\n              }}</span>\n            </div>\n            <ng-template #addFilterColumnTemplate>\n              <app-filter-popover\n                (cancel)=\"filterColumnPop.hide()\"\n                (save)=\"onSaveFilter($event)\"\n                [columns]=\"columns\"\n                (saveClose)=\"onSaveCloseFilter($event)\"\n                [filterIndex]=\"columns.length\"\n              >\n              </app-filter-popover>\n            </ng-template>\n            <ng-template\n              #editFilterColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-filter-popover\n                (cancel)=\"clearAllPopover()\"\n                (save)=\"onUpdateFilter(item, $event)\"\n                [columns]=\"columns\"\n                [filterColumn]=\"item\"\n                [filterIndex]=\"index\"\n              >\n              </app-filter-popover>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n      <!-- filter -->\n    </form>\n  </tab>\n  <tab\n    heading=\"{{ 'VISUALIZE.CUSTOMIZE' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formCustomize\" class=\"custom__control-form\">\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.COLOR_SCHEME\" | translate\n        }}</label>\n        <ng-select\n          #columnName\n          formControlName=\"colorScheme\"\n          [items]=\"arrayColorSchemes\"\n          [multiple]=\"false\"\n          [clearable]=\"false\"\n          bindLabel=\"label\"\n          bindValue=\"id\"\n          placeholder=\"{{ 'VISUALIZE.COLOR_SCHEME' | translate }}\"\n        >\n          <ng-template\n            let-index=\"index\"\n            let-item=\"item\"\n            let-search=\"searchTerm\"\n            ng-label-tmp\n          >\n            <div class=\"d-flex align-items-center color-scheme-item\">\n              <div class=\"color-name\">{{ item.label }}</div>\n              <div class=\"color-list\">\n                <span\n                  *ngFor=\"let color of item.colors\"\n                  [ngStyle]=\"{ background: color }\"\n                ></span>\n              </div>\n            </div>\n          </ng-template>\n          <ng-template\n            let-index=\"index\"\n            let-item=\"item\"\n            let-search=\"searchTerm\"\n            ng-option-tmp\n          >\n            <div class=\"d-flex align-items-center color-scheme-item\">\n              <div class=\"color-name\">{{ item.label }}</div>\n              <div class=\"color-list\">\n                <span\n                  *ngFor=\"let color of item.colors\"\n                  [ngStyle]=\"{ background: color }\"\n                ></span>\n              </div>\n            </div>\n          </ng-template>\n        </ng-select>\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"show_legend\" id=\"show-legend\" />\n        <label class=\"label-visualize\" for=\"show-legend\">{{\n          \"VISUALIZE.SHOW_LEGEND\" | translate\n        }}</label>\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"dataZoom\" id=\"data-zoom\" />\n        <label class=\"label-visualize\" for=\"data-zoom\">{{\n          \"VISUALIZE.DATA_ZOOM\" | translate\n        }}</label>\n      </div>\n    </form>\n  </tab>\n</tabset>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n} from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { IAliasColumn, ISelectMetadata } from \"../model/chart-custom\";\nimport { iNet } from \"inet-core\";\n@Component({\n  selector: \"app-alias-popover\",\n  templateUrl: \"./alias-popover.component.html\",\n  styleUrls: [\"./alias-popover.component.scss\"],\n})\nexport class AliasPopoverComponent implements OnInit {\n  @Output() cancelAlias = new EventEmitter<void>();\n  @Output() addAlias = new EventEmitter<IAliasColumn>();\n  @Output() saveAlias = new EventEmitter<IAliasColumn>();\n  @Input() aliasColumn?: IAliasColumn;\n  @Input() closeOnSelect?: boolean = true;\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() aliasIndex: number = 0;\n  touchedSubmit: boolean = false;\n  clearable: boolean = false;\n  form: FormGroup = this.fb.group({\n    column: [null, Validators.required],\n    alias: ['']\n  });\n\n  constructor(private fb: FormBuilder) {}\n\n  ngOnInit(): void {\n    if (this.aliasColumn) {\n      this.form.patchValue(this.aliasColumn);\n    }\n  }\n\n  ngAfterViewInit(): void { \n  }\n  \n  private getFormData() {\n    return this.form.getRawValue();\n  }\n\n  onClose() {\n    this.cancelAlias.emit();\n  }\n\n  onAdd() {\n    this.touchedSubmit = true;\n    if (this.form.valid) {\n      const newItem = this.save();\n      this.addAlias.emit(newItem);\n    }\n  }\n\n  onSave() {\n    this.touchedSubmit = true;\n    if (this.form.valid) {\n      const newItem = this.save();\n      this.saveAlias.emit(newItem);\n    }\n  }\n\n  save() {\n    const newItem = this.getFormData() as IAliasColumn;\n    newItem.type = this.columns.filter((col:ISelectMetadata) => col.name === newItem.column)[0].type;\n    newItem.uuid = this.aliasColumn?.uuid || iNet.generateId();\n    this.form.controls['alias'].setValue('');\n    return newItem;\n  }\n}\n","<form [formGroup]=\"form\">\n    <div class=\"v-form-popover\">\n        <div class=\"v-form-popover-title\">\n            <div class=\"wrap-title\">\n                <ng-container *ngIf=\"aliasColumn?.column; else defaultHeaderBlock\">\n                    {{ aliasColumn.alias ||  aliasColumn.column}}\n                  </ng-container>\n                  <ng-template #defaultHeaderBlock>\n                    {{ \"ADD COLUMN\" | translate }}{{form.controls['column'].touched}} {{touchedSubmit}}\n                  </ng-template>\n            </div>\n        </div>\n        <div class=\"v-form-popover-content\">\n            <div class=\"v-form-item\">\n                <div class=\"v-form-item-row\">\n                    <div class=\"v-form-item-label\">\n                        {{'Column' | translate}}\n                    </div>\n                    <div class=\"v-form-item-control\">\n                        <div class=\"v-form-item-control-input\">\n                            <ng-select #columnName\n                                       [clearable]=\"false\"\n                                       [closeOnSelect]=\"closeOnSelect\"\n                                       [items]=\"columns\"\n                                       [multiple]=\"false\" [ngClass]=\"{'is-invalid':form.controls['column'].hasError('required') && (form.controls['column'].touched || touchedSubmit)}\"\n                                       [notFoundText]=\"'Not found column'\"\n                                       bindLabel=\"name\"\n                                       bindValue=\"value\"\n                                       formControlName=\"column\"\n                                       placeholder=\"{{'Select column' | translate }}\">\n                                <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-label-tmp>\n                                    <div class=\"d-flex align-items-center\">\n                                        <div class=\"data-type {{item.type | checkTypePipe}}\"></div>\n                                        <div>{{item.name|translate}} </div>\n                                    </div>\n                                </ng-template>\n                                <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-option-tmp>\n                                    <div class=\"d-flex align-items-center\">\n                                        <div class=\"data-type {{item.type | checkTypePipe}}\"></div>\n                                        <div>{{item.name|translate}} </div>\n                                    </div>\n                                </ng-template>\n                            </ng-select>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"v-form-item-row\">\n                    <div class=\"v-form-item-label\">\n                        {{'Alias' | translate}}\n                    </div>\n                    <div class=\"v-form-item-control\">\n                        <input type=\"text\" name=\"\" id=\"\" formControlName=\"alias\" placeholder=\"enter value\">\n                    </div>\n                </div>\n            </div>\n            <div class=\"v-form-bottom-action list-btns\">\n                <button (click)=\"onClose()\" class=\"btn btn-sm\" type=\"button\">\n                    {{'Close' | translate}}\n                </button>\n                <button (click)=\"onSave()\" class=\"ml-2 btn btn-sm v-form-btn-primary\" type=\"button\">\n                    {{'Save' | translate}}\n                </button>\n                <button *ngIf=\"!aliasColumn\" (click)=\"onAdd()\" class=\"ml-2 btn btn-sm v-form-btn-primary\" type=\"button\">\n                    {{'Add' | translate}}\n                </button>\n            </div>\n        </div>\n    </div>\n</form>\n","import {\n  Component,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  Input,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartService } from \"../chart.service\";\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n  FilterColumn,\n  IAliasColumn,\n  IColumn,\n  IDataSource,\n  IFilter,\n  IFormDataTableCustom,\n  IQueriesTableCustom,\n  ISelectMetadata,\n  ITableCustomCustomize,\n  KeyValue,\n} from \"../model/chart-custom\";\nimport { PopoverDirective } from \"ngx-bootstrap/popover\";\nimport { uniqueArrayObject } from \"../../common/uniqueArray\";\nimport { PopoverWrapperComponent } from \"../popover-wrapper/popover-wrapper.component\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n  selector: \"app-chart-custom-table\",\n  templateUrl: \"./chart-custom-table.component.html\",\n  styleUrls: [\"./chart-custom-table.component.scss\"],\n})\nexport class ChartCustomTable\n  extends PopoverWrapperComponent\n  implements OnInit, OnChanges\n{\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() uuidChart: string;\n  @Output() validForm = new EventEmitter<boolean>();\n  @Output() customizeSave = new EventEmitter<KeyValue>();\n  @Output() factorSave = new EventEmitter<KeyValue>();\n  columnsDate: ISelectMetadata[] = [];\n  columnsSubmit: IColumn[] = [];\n  formFactor: FormGroup = this.fb.group({\n    row_limit: [null],\n  });\n  formCustomize: FormGroup = this.fb.group({\n    background_head: [\"#f7f7f7\"],\n    color_head: [\"#222\"],\n    pagination: [false],\n    page_size: [20],\n  });\n  filterColumns: FilterColumn[] = [];\n  aliasColumns: IAliasColumn[] = [];\n  outsideClick: boolean = false;\n  touchedSubmit: boolean = false;\n  timeOut: any;\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  isAutoFocus= true;\n  constructor(\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    super();\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n  }\n\n  ngOnInit() {\n    // Subscribe to form changes\n    this.formFactor.valueChanges.subscribe((formValue) => {\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.emitFactorSave();\n      }, 100);\n    });\n    this.formCustomize.valueChanges.subscribe((formValue) => {\n      const value = formValue as ITableCustomCustomize;\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.emitCustomize();\n      }, 10);\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\"columns\" in changes) {\n      if (this.columns.length > 0) {\n      }\n    }\n  }\n  emitCustomize() {\n    const customize = this.formCustomize.getRawValue() as ITableCustomCustomize;\n    if(!customize.page_size) {\n      customize.pagination = false;\n    }\n    const formData = {\n      columns: this.aliasColumns,\n      ...customize,\n      filters: this.filterColumns,\n    };\n    this.customizeSave.emit(formData);\n  }\n\n  emitFactorSave() {\n    let columns = this.aliasColumns.map((col: IAliasColumn) => col.column);\n    let row_limit = this.formFactor.controls[\"row_limit\"].getRawValue();\n    let formDataSubmit = {\n      columns,\n      row_limit: row_limit ? row_limit : \"\",\n      filters: this.convertFilter(),\n    };\n    this.factorSave.emit(formDataSubmit);\n  }\n\n  //filter popover\n  onClickEditPopover() {\n    this.clearAllPopover();\n    this.enableScroll = false;\n  }\n\n  removeFilter(filterColumn: FilterColumn) {\n    this.filterColumns = this.filterColumns.filter(\n      (item) => item !== filterColumn\n    );\n    this.emitFactorSave();\n    this.emitCustomize();\n  }\n\n  onSaveFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n  }\n\n  onSaveCloseFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n    this.clearAllPopover();\n  }\n\n  onSaveFilterCommon(filterColumn: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [...this.filterColumns, filterColumn],\n      \"name\"\n    );\n    this.emitFactorSave();\n    this.emitCustomize();\n  }\n\n  onUpdateFilter(oldFilterCol: FilterColumn, newFilterCol: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [\n        ...this.filterColumns.map((column) => {\n          if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n          return column;\n        }),\n      ],\n      \"name\"\n    );\n    this.clearAllPopover();\n    this.emitFactorSave();\n    this.emitCustomize();\n  }\n\n  //metric\n  onSaveAlias(aliasColumn: IAliasColumn) {\n    this.onSaveAliasCommon(aliasColumn);\n    this.clearAllPopover();\n  }\n\n  onAddAlias(aliasColumn: IAliasColumn) {\n    this.onSaveAliasCommon(aliasColumn);\n  }\n\n  onSaveAliasCommon(aliasColumn: IAliasColumn) {\n    this.aliasColumns = uniqueArrayObject(\n      [...this.aliasColumns, aliasColumn],\n      \"column\"\n    );\n    this.validForm.emit(this.aliasColumns.length > 0);\n    this.emitFactorSave();\n    this.emitCustomize();\n  }\n\n  onUpdateAlias(oldAliasCol: IAliasColumn, newAliasCol: IAliasColumn) {\n    this.aliasColumns = uniqueArrayObject(\n      [\n        ...this.aliasColumns.map((column) => {\n          if (column.uuid === oldAliasCol.uuid) column = newAliasCol;\n          return column;\n        }),\n      ],\n      \"column\"\n    );\n    this.clearAllPopover();\n    this.emitFactorSave();\n    this.emitCustomize();\n  }\n\n  removeAlias(aliasColumn: IAliasColumn) {\n    this.aliasColumns = this.aliasColumns.filter(\n      (item) => item !== aliasColumn\n    );\n    this.validForm.emit(this.aliasColumns.length > 0);\n    this.emitFactorSave();\n    this.emitCustomize();\n  }\n\n  convertFilter() {\n    let filters: IFilter[] = [];\n    if (this.filterColumns.length > 0) {\n      filters = this.filterColumns.map((filter: FilterColumn) => {\n        let obj: IFilter = {\n          col: filter.column,\n          colType: filter.columnType,\n          op: filter.operator,\n          val: filter.comparator,\n          fromDate: filter?.fromDate,\n          toDate: filter?.toDate,\n        };\n        return obj;\n      });\n    }\n    return filters;\n  }\n\n  getDataVizCustom(datasource: string | IDataSource) {\n    const row_limit = this.formFactor.controls[\"row_limit\"].getRawValue();\n    const customize = this.formCustomize.getRawValue() as ITableCustomCustomize;\n    let columns: string[] = this.aliasColumns.map(\n      (col: IAliasColumn) => col.column\n    );\n    const formData = {\n      columns: this.aliasColumns,\n      ...customize,\n    };\n    let forDataSubmit = {\n      columns,\n      datasource,\n      row_limit: row_limit ? row_limit : \"\",\n      filters: this.convertFilter(),\n    };\n    return new Promise((resolve, reject) => {\n      this.chartService\n        .getDataCustom({\n          formData: JSON.stringify(forDataSubmit),\n          datasource: JSON.stringify(datasource),\n          force: \"fales\",\n          result_format: \"json\",\n          result_type: \"full\",\n        })\n        .subscribe((res: any) => {\n          if (res.type !== ErrorMessage.TYPE) {\n            if (res.elements.length > 0) {\n              resolve({ queriesData: res.elements, formData });\n            } else {\n              resolve({ queriesData: [], formData });\n            }\n          } else {\n            reject(res);\n          }\n        });\n    });\n  }\n\n  setRawValue(\n    queries: IQueriesTableCustom,\n    formData: IFormDataTableCustom,\n    columns: ISelectMetadata[]\n  ) {\n    this.columns = columns;\n    this.filterColumns = formData.filters;\n    this.aliasColumns = formData.columns;\n    const customize: ITableCustomCustomize = {\n      background_head: formData.background_head,\n      color_head: formData.color_head,\n      pagination: formData.pagination,\n      page_size: formData.page_size,\n    };\n    this.formCustomize.patchValue(customize);\n    this.formFactor.controls['row_limit'].patchValue(queries.row_limit);\n    this.validForm.emit(this.aliasColumns.length > 0);\n    this.emitCustomize();\n    this.emitFactorSave()\n    return Promise.resolve();\n  }\n}\n","<tabset #staticTabs class=\"custom__control-tabset\">\n  <tab\n    heading=\"{{ 'VISUALIZE.FACTOR' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formFactor\" class=\"custom__control-form\">\n      <!-- alias -->\n      <div class=\"form-group\">\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"Columns\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'Cannot be empty' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                aliasColumns.length > 0\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of aliasColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeAlias(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editAliasColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editAliasColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\"\n              >\n                {{ item.alias || item.column }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(aliasColumnPop)\"\n              #aliasColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addAliasColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"right\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"Add column\" | translate\n              }}</span>\n            </div>\n            <ng-template #addAliasColumnTemplate>\n              <app-alias-popover\n                (cancelAlias)=\"aliasColumnPop.hide()\"\n                (addAlias)=\"onAddAlias($event)\"\n                (saveAlias)=\"onSaveAlias($event)\"\n                [columns]=\"columns\"\n                [aliasIndex]=\"columns.length\"\n              >\n              </app-alias-popover>\n            </ng-template>\n            <ng-template\n              #editAliasColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-alias-popover\n                (cancelAlias)=\"clearAllPopover()\"\n                (saveAlias)=\"onUpdateAlias(item, $event)\"\n                [columns]=\"columns\"\n                [aliasColumn]=\"item\"\n                [aliasIndex]=\"index\"\n              >\n              </app-alias-popover>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n      <!-- alias -->\n\n      <div class=\"form-group\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.ROW_LIMIT\" | translate\n        }}</label>\n        <input\n          type=\"number\"\n          formControlName=\"row_limit\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n\n      <!-- filter -->\n      <div class=\"form-group\">\n        <div class=\"wrapper-filter-metric filter\">\n          <label class=\"label-visualize\">{{\n            \"VISUALIZE.FILTERS\" | translate\n          }}</label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of filterColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeFilter(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editFilterColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editFilterColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"top\"\n              >\n                {{ item | filterFormatter }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(filterColumnPop)\"\n              #filterColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addFilterColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"top\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_FILTER\" | translate\n              }}</span>\n            </div>\n            <ng-template #addFilterColumnTemplate>\n              <app-filter-popover\n                (cancel)=\"filterColumnPop.hide()\"\n                (save)=\"onSaveFilter($event)\"\n                [columns]=\"columns\"\n                (saveClose)=\"onSaveCloseFilter($event)\"\n                [filterIndex]=\"columns.length\"\n              >\n              </app-filter-popover>\n            </ng-template>\n            <ng-template\n              #editFilterColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-filter-popover\n                (cancel)=\"clearAllPopover()\"\n                (save)=\"onUpdateFilter(item, $event)\"\n                [columns]=\"columns\"\n                [filterColumn]=\"item\"\n                [filterIndex]=\"index\"\n              >\n              </app-filter-popover>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n      <!-- filter -->\n    </form>\n  </tab>\n  <tab\n    heading=\"{{ 'VISUALIZE.CUSTOMIZE' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formCustomize\" class=\"custom__control-form\">\n      <div class=\"form-group form-group-customize\" style=\"border-bottom: 0;\">\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\">{{\n            \"Background head\" | translate\n          }}</label>\n          <input type=\"color\" formControlName=\"background_head\" />\n        </div>\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\">{{ \"Color head\" | translate }}</label>\n          <input type=\"color\" formControlName=\"color_head\" />\n        </div>\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"pagination\" id=\"show-pagination\" />\n        <label class=\"label-visualize\" for=\"show-pagination\" style=\"margin-bottom: 0;\">{{\n          \"Show pagination\" | translate\n        }}</label>\n      </div>\n      <div *ngIf=\"formCustomize.controls['pagination'].value\" class=\"form-group form-group-customize\" style=\"padding-top: 0;\">\n        <label class=\"label-visualize\">{{ \"Page size\" | translate }}</label>\n        <input\n          type=\"number\"\n          formControlName=\"page_size\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n    </form>\n  </tab>\n</tabset>\n","import {\n  Component,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  Input,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartService } from \"../chart.service\";\nimport {\n  FormBuilder,\n  FormGroup,\n  Validators,\n  FormControl,\n} from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n  ColumnDataType,\n  FilterColumn,\n  IColorScheme,\n  IColumn,\n  IBarV2Customize,\n  IBarV2Factor,\n  IDataSource,\n  IFilter,\n  IFormDataSubmit,\n  IMetric,\n  ISelect,\n  ISelectMetadata,\n  KeyValue,\n  colorSchemes,\n} from \"../model/chart-custom\";\nimport { PopoverDirective } from \"ngx-bootstrap/popover\";\nimport { uniqueArrayObject } from \"../../common/uniqueArray\";\nimport { PopoverWrapperComponent } from \"../popover-wrapper/popover-wrapper.component\";\nimport { Subscription } from \"rxjs\";\nimport { MetricColumn } from \"../model/metric\";\nimport {\n  IFormDataBarV2,\n  convertFormDataBarV2,\n} from \"../chart-custom/convert-formdata\";\nimport { convertFilter, convertMetric } from \"../chart-custom/chart-custom.functions\";\n\n@Component({\n  selector: \"app-chart-bar-v2\",\n  templateUrl: \"./chart-bar-v2.component.html\",\n  styleUrls: [\"./chart-bar-v2.component.scss\"],\n})\nexport class ChartBarV2\n  extends PopoverWrapperComponent\n  implements OnInit, OnChanges\n{\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() uuidChart: string;\n  @Output() validForm = new EventEmitter<boolean>();\n  @Output() customizeSave = new EventEmitter<IFormDataBarV2>();\n  @Output() factorSave = new EventEmitter<any>();\n  columnsDate: ISelectMetadata[] = [];\n  columnsSubmit: IColumn[] = [];\n  formFactor: FormGroup = this.fb.group({\n    row_limit: [null],\n    group_by: [null, Validators.required],\n    compare: [false]\n  });\n  formCustomize: FormGroup = this.fb.group({\n    colorScheme: [\"supersetColors\"],\n    show_legend: [true],\n    dataZoom: [false],\n    x_ticks_layout: ['auto'],\n    orientation: ['horizontal']\n  });\n  filterColumns: FilterColumn[] = [];\n  metricColumns: MetricColumn[] = [];\n  outsideClick: boolean = false;\n  touchedSubmit: boolean = false;\n  arrayColorSchemes: IColorScheme[] = colorSchemes;\n  timeOut: any;\n  xTicksLayout: string[] = ['auto', '45°'];\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  isAutoFocus = true;\n  constructor(\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    super();\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n  }\n\n  ngOnInit() {\n    // Subscribe to form changes\n    this.formFactor.valueChanges.subscribe((formValue) => {\n      this.emitValid()\n      const { form_data } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n        this.factorSave.emit(form_data);\n      }, 100);\n    });\n\n    this.formCustomize.valueChanges.subscribe((formValue) => {\n      const { form_data } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n      }, 100);\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\"columns\" in changes) {\n      if (this.columns.length > 0) {\n        this.handleColumns();\n      }\n    }\n  }\n\n  emitValid() {\n    const compare = this.formFactor.controls['compare'].getRawValue();\n    if(compare) {\n      this.validForm.emit(\n        this.formFactor.valid && this.metricColumns.length > 1\n      );\n    }else {\n      this.validForm.emit(\n        this.formFactor.valid && this.metricColumns.length > 0\n      );\n    }\n  }\n  //filter popover\n  onClickEditPopover() {\n    this.clearAllPopover();\n    this.enableScroll = false;\n  }\n\n  removeFilter(filterColumn: FilterColumn) {\n    this.filterColumns = this.filterColumns.filter(\n      (item) => item !== filterColumn\n    );\n    const { form_data } = this.convertFormDataAndQueries();\n    this.factorSave.emit(form_data);\n  }\n\n  onSaveFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n  }\n\n  onSaveCloseFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n    this.clearAllPopover();\n  }\n\n  onSaveFilterCommon(filterColumn: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [...this.filterColumns, filterColumn],\n      \"name\"\n    );\n    const { form_data } = this.convertFormDataAndQueries();\n    this.factorSave.emit(form_data);\n  }\n\n  onUpdateFilter(oldFilterCol: FilterColumn, newFilterCol: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [\n        ...this.filterColumns.map((column) => {\n          if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n          return column;\n        }),\n      ],\n      \"name\"\n    );\n    this.clearAllPopover();\n    const { form_data } = this.convertFormDataAndQueries();\n    this.factorSave.emit(form_data);\n  }\n\n  //metric\n  onSaveMetric(metricColumn: MetricColumn) {\n    this.onSaveMetricCommon(metricColumn);\n    this.clearAllPopover();\n  }\n\n  onAddMetric(metricColumn: MetricColumn) {\n    this.onSaveMetricCommon(metricColumn);\n  }\n\n  onSaveMetricCommon(metricColumn: MetricColumn) {\n    this.metricColumns = uniqueArrayObject(\n      [...this.metricColumns, metricColumn],\n      \"name\"\n    );\n    this.emitValid();\n    const { form_data } = this.convertFormDataAndQueries();\n    this.factorSave.emit(form_data);\n  }\n\n  onUpdateMetric(oldMetricCol: MetricColumn, newMetricCol: MetricColumn) {\n    this.metricColumns = uniqueArrayObject(\n      [\n        ...this.metricColumns.map((column) => {\n          if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n          return column;\n        }),\n      ],\n      \"name\"\n    );\n    this.clearAllPopover();\n    const { form_data } = this.convertFormDataAndQueries();\n    this.factorSave.emit(form_data);\n  }\n\n  removeMetric(metricColumn: MetricColumn) {\n    this.metricColumns = this.metricColumns.filter(\n      (item) => item !== metricColumn\n    );\n    this.emitValid();\n    const { form_data } = this.convertFormDataAndQueries();\n    this.factorSave.emit(form_data);\n  }\n\n  convertFormDataAndQueries() {\n    let dataFactor = this.formFactor.getRawValue() as IBarV2Factor;\n    let dataCustomize = this.formCustomize.getRawValue() as IBarV2Customize;\n    let filters: IFilter[] = [];\n    let metrics: IMetric[] = [];\n    if(dataFactor.compare) {\n      dataCustomize.orientation = 'horizontal'\n    }\n\n    filters = convertFilter(this.filterColumns);\n\n    metrics = convertMetric(this.columnsSubmit ,this.metricColumns);\n\n    const color = colorSchemes.filter(\n      (color: IColorScheme) => color.id === dataCustomize.colorScheme\n    )[0].colors;\n\n    let form_data = convertFormDataBarV2(\n      metrics,\n      filters,\n      dataFactor.group_by,\n      dataFactor.row_limit,\n      dataCustomize.show_legend,\n      color,\n      dataCustomize.colorScheme,\n      this.metricColumns,\n      this.filterColumns,\n      dataCustomize.dataZoom,\n      dataCustomize.x_ticks_layout,\n      dataCustomize.orientation,\n      dataFactor.compare\n    );\n    return {\n      form_data,\n    };\n  }\n  getExpVizCustom(datasource: string | IDataSource) {\n    let { form_data } = this.convertFormDataAndQueries();\n    let params: IFormDataSubmit = {\n      form_data: JSON.stringify(form_data),\n      datasource: JSON.stringify(datasource),\n      force: \"false\",\n      result_format: \"json\",\n      result_type: \"full\",\n    };\n    return new Promise((resolve, reject) => {\n      this.chartService.getExpVisualize(params).subscribe((res: any) => {\n        if (res.type !== ErrorMessage.TYPE) {\n          if (Object.keys(res).length > 0) {\n            resolve({ queriesData: [res], formData: form_data });\n          } else {\n            resolve({ queriesData: [], formData: form_data });\n          }\n        } else {\n          reject(res);\n        }\n      });\n    });\n  }\n\n  setRawValue(formData: IFormDataBarV2, columns: ISelectMetadata[]) {\n    this.columns = columns;\n    this.handleColumns();\n    let factor: IBarV2Factor = {\n      row_limit: String(formData.row_limit),\n      group_by: formData.groupby,\n      compare: formData.compare\n    }\n    let customize: IBarV2Customize = {\n      colorScheme: formData.color_scheme_name,  \n      dataZoom: formData.dataZoom,\n      show_legend: formData.show_legend,\n      x_ticks_layout: formData.x_ticks_layout,\n      orientation: formData.orientation,\n    };\n    this.metricColumns = formData.columnMetrics;\n    this.filterColumns = formData.columnFilters;\n\n    this.formFactor.patchValue(factor);\n    this.formCustomize.patchValue(customize);\n    this.emitValid();\n    let { form_data } = this.convertFormDataAndQueries();\n    this.customizeSave.emit(form_data);\n    this.factorSave.emit(form_data);\n    return Promise.resolve();\n  }\n\n  handleColumns() {\n    this.columnsDate = this.columns.filter(\n      (col: ISelectMetadata) => col.type === ColumnDataType.DATE\n    );\n    this.columnsSubmit = this.columns.map(\n      (col: ISelectMetadata, index: number) => {\n        let obj: IColumn = {\n          filterable: true,\n          groupby: true,\n          is_certified: false,\n          column_name: col.value,\n          type: col.type,\n          id: index,\n          type_generic: 0,\n          is_dttm: false,\n        };\n        switch (col.type) {\n          case ColumnDataType.INT:\n          case ColumnDataType.DOUBLE:\n          case ColumnDataType.LONG:\n          case ColumnDataType.INT64:\n          case ColumnDataType.FLOAT:\n          case ColumnDataType.NUMBER:\n            obj[\"type_generic\"] = 0;\n            break;\n          case ColumnDataType.STRING:\n          case ColumnDataType.CHAR:\n            obj[\"type_generic\"] = 1;\n            break;\n          case ColumnDataType.DATE:\n            obj[\"type_generic\"] = 2;\n            break;\n          case ColumnDataType.BOOLEAN:\n            obj[\"type_generic\"] = 3;\n            break;\n          default:\n            break;\n        }\n        obj[\"is_dttm\"] = col.type === \"DATE\" ? true : false;\n        return obj;\n      }\n    );\n  }\n\n  onSaveChart() {}\n}\n","<tabset #staticTabs class=\"custom__control-tabset\">\n  <tab\n    heading=\"{{ 'VISUALIZE.FACTOR' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formFactor\" class=\"custom__control-form\">\n      <div class=\"form-group form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"compare\" id=\"compare-value\" />\n        <label class=\"label-visualize\" style=\"margin-bottom: 0;\" for=\"compare-value\">{{\n          \"compare value\" | translate\n        }}</label>\n      </div>\n      <!-- metric -->\n      <div class=\"form-group\">\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"VISUALIZE.METRICS\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              [tooltip]=\"(formFactor.controls['compare'].value ? 'VISUALIZE.AT_LEAST_METRIC' : 'VISUALIZE.CANNOT_EMPTY') | translate\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                (formFactor.controls['compare'].value ? metricColumns.length > 1 : metricColumns.length > 0)\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of metricColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeMetric(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editMetricColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editMetricColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\"\n              >\n                {{ item | metricFormatter }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(metricColumnPop)\"\n              #metricColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addMetricColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"right\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_METRIC\" | translate\n              }}</span>\n            </div>\n            <ng-template #addMetricColumnTemplate>\n              <app-metric-popover\n                (cancelMetric)=\"metricColumnPop.hide()\"\n                (saveMetric)=\"onAddMetric($event)\"\n                (saveAndClose)=\"onSaveMetric($event)\"\n                [columns]=\"columns\"\n                [metricIndex]=\"columns.length\"\n              >\n              </app-metric-popover>\n            </ng-template>\n            <ng-template\n              #editMetricColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-metric-popover\n                (cancelMetric)=\"clearAllPopover()\"\n                (saveAndClose)=\"onUpdateMetric(item, $event)\"\n                [columns]=\"columns\"\n                [metricColumn]=\"item\"\n                [metricIndex]=\"index\"\n              >\n              </app-metric-popover>\n            </ng-template>\n          </div>\n        </div>\n        <!-- metric -->\n      </div>\n      <!-- metric -->\n\n      <!-- group and row limit -->\n      <div class=\"form-group\">\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\">{{ \"Group\" | translate }}<i\n            class=\"fa fa-exclamation custom-icon-exclamation\"\n            aria-hidden=\"true\"\n            tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n            aria-describedby=\"tooltip-4\"\n            [ngStyle]=\"\n              formFactor.controls['group_by'].value\n                ? { border: '1px solid #212529', color: '#212529' }\n                : { border: '1px solid #dc3545', color: '#dc3545' }\n            \"\n          ></i\n        ></label>\n          <ng-select\n            formControlName=\"group_by\"\n            [items]=\"columns\"\n            [multiple]=\"true\"\n            [clearable]=\"false\"\n            bindLabel=\"name\"\n            bindValue=\"value\"\n            placeholder=\"{{ 'select column' | translate }}\"\n            [notFoundText]=\"'Not found column'\"\n          >\n            <ng-template\n              let-index=\"index\"\n              let-item=\"item\"\n              let-search=\"searchTerm\"\n              ng-option-tmp\n            >\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n          </ng-select>\n        </div>\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\">{{\n            \"VISUALIZE.ROW_LIMIT\" | translate\n          }}</label>\n          <input\n            type=\"number\"\n            formControlName=\"row_limit\"\n            placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n          />\n        </div>\n      </div>\n      <!-- group and row limit -->\n\n      <!-- filter -->\n      <div class=\"form-group\">\n        <div class=\"wrapper-filter-metric filter\">\n          <label class=\"label-visualize\">{{\n            \"VISUALIZE.FILTERS\" | translate\n          }}</label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of filterColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeFilter(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editFilterColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editFilterColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"top\"\n              >\n                {{ item | filterFormatter }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(filterColumnPop)\"\n              #filterColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addFilterColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"top\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_FILTER\" | translate\n              }}</span>\n            </div>\n            <ng-template #addFilterColumnTemplate>\n              <app-filter-popover\n                (cancel)=\"filterColumnPop.hide()\"\n                (save)=\"onSaveFilter($event)\"\n                [columns]=\"columns\"\n                (saveClose)=\"onSaveCloseFilter($event)\"\n                [filterIndex]=\"columns.length\"\n              >\n              </app-filter-popover>\n            </ng-template>\n            <ng-template\n              #editFilterColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-filter-popover\n                (cancel)=\"clearAllPopover()\"\n                (save)=\"onUpdateFilter(item, $event)\"\n                [columns]=\"columns\"\n                [filterColumn]=\"item\"\n                [filterIndex]=\"index\"\n              >\n              </app-filter-popover>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n      <!-- filter -->\n    </form>\n  </tab>\n  <tab\n    heading=\"{{ 'VISUALIZE.CUSTOMIZE' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formCustomize\" class=\"custom__control-form\">\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.COLOR_SCHEME\" | translate\n        }}</label>\n        <ng-select\n          formControlName=\"colorScheme\"\n          [items]=\"arrayColorSchemes\"\n          [multiple]=\"false\"\n          [clearable]=\"false\"\n          bindLabel=\"label\"\n          bindValue=\"id\"\n          placeholder=\"{{ 'VISUALIZE.COLOR_SCHEME' | translate }}\"\n        >\n          <ng-template\n            let-index=\"index\"\n            let-item=\"item\"\n            let-search=\"searchTerm\"\n            ng-label-tmp\n          >\n            <div class=\"d-flex align-items-center color-scheme-item\">\n              <div class=\"color-name\">{{ item.label }}</div>\n              <div class=\"color-list\">\n                <span\n                  *ngFor=\"let color of item.colors\"\n                  [ngStyle]=\"{ background: color }\"\n                ></span>\n              </div>\n            </div>\n          </ng-template>\n          <ng-template\n            let-index=\"index\"\n            let-item=\"item\"\n            let-search=\"searchTerm\"\n            ng-option-tmp\n          >\n            <div class=\"d-flex align-items-center color-scheme-item\">\n              <div class=\"color-name\">{{ item.label }}</div>\n              <div class=\"color-list\">\n                <span\n                  *ngFor=\"let color of item.colors\"\n                  [ngStyle]=\"{ background: color }\"\n                ></span>\n              </div>\n            </div>\n          </ng-template>\n        </ng-select>\n      </div>\n      <div class=\"form-group-customize form-group-radio\" *ngIf=\"!formFactor.controls['compare'].value\">\n        <label class=\"label-visualize\" for=\"data-zoom\">{{\n          \"BAR ORIENTATION\" | translate\n        }}</label>\n        <div class=\"wrap-radio\">\n          <div class=\"radio-item\" [ngClass]=\"{'active': formCustomize.controls['orientation'].value === 'vertical'}\">\n            <input value=\"vertical\" type=\"radio\" id=\"vertical\" formControlName=\"orientation\" />\n            <label for=\"vertical\">{{\n              \"Vertical\" | translate\n            }}</label>\n          </div>\n          <div class=\"radio-item\" [ngClass]=\"{'active': formCustomize.controls['orientation'].value === 'horizontal'}\">\n            <input value=\"horizontal\" type=\"radio\" id=\"horizontal\" formControlName=\"orientation\" />\n            <label for=\"horizontal\">{{\n              \"Horizontal\" | translate\n            }}</label>\n          </div>\n        </div>\n      </div>\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"ROTATE AXIS LABEL\" | translate\n        }}</label>\n        <ng-select\n          formControlName=\"x_ticks_layout\"\n          [items]=\"xTicksLayout\"\n          [multiple]=\"false\"\n          [clearable]=\"false\"\n          bindLabel=\"label\"\n          bindValue=\"id\"\n        >\n        </ng-select>\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"show_legend\" id=\"show-legend\" />\n        <label class=\"label-visualize\" for=\"show-legend\">{{\n          \"VISUALIZE.SHOW_LEGEND\" | translate\n        }}</label>\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"dataZoom\" id=\"data-zoom\" />\n        <label class=\"label-visualize\" for=\"data-zoom\">{{\n          \"VISUALIZE.DATA_ZOOM\" | translate\n        }}</label>\n      </div>\n    </form>\n  </tab>\n</tabset>\n","import {\n  Component,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  Input,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartService } from \"../chart.service\";\nimport {\n  FormBuilder,\n  FormGroup,\n  Validators,\n  FormControl,\n} from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n  ColumnDataType,\n  FilterColumn,\n  IColorScheme,\n  IColumn,\n  IDataSource,\n  IFilter,\n  IFormDataSubmit,\n  IMetric,\n  ISelect,\n  ISelectMetadata,\n  KeyValue,\n  colorSchemes,\n  timeGrain,\n  IMixedFactor,\n  IMixedCustomize,\n  IQuery,\n  IQueryB,\n} from \"../model/chart-custom\";\nimport { PopoverDirective } from \"ngx-bootstrap/popover\";\nimport { uniqueArrayObject } from \"../../common/uniqueArray\";\nimport { PopoverWrapperComponent } from \"../popover-wrapper/popover-wrapper.component\";\nimport { Subscription } from \"rxjs\";\nimport { MetricColumn } from \"../model/metric\";\nimport {\n  IFormDataMixed,\n  IQueriesMixed,\n  convertFormDataMixed,\n  convertQueriesMixed,\n} from \"../chart-custom/convert-formdata\";\nimport {\n  convertFilter,\n  convertMetric,\n} from \"../chart-custom/chart-custom.functions\";\n\n@Component({\n  selector: \"app-chart-mixed\",\n  templateUrl: \"./chart-mixed.component.html\",\n  styleUrls: [\"./chart-mixed.component.scss\"],\n})\nexport class ChartMixed\n  extends PopoverWrapperComponent\n  implements OnInit, OnChanges\n{\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() uuidChart: string;\n  @Output() validForm = new EventEmitter<boolean>();\n  @Output() customizeSave = new EventEmitter<IFormDataMixed>();\n  @Output() factorSave = new EventEmitter<any>();\n  columnsDate: ISelectMetadata[] = [];\n  columnsSubmit: IColumn[] = [];\n  timeGrain: ISelect[] = timeGrain;\n  leftAxis: string[] = [\"bar\", \"line\"];\n  formFactor: FormGroup = this.fb.group({\n    left_axis: [\"bar\"],\n  });\n  formQueryA: FormGroup = this.fb.group({\n    groupby: [null, Validators.required],\n    row_limit: [null],\n  });\n  formQueryB: FormGroup = this.fb.group({\n    groupby_b: [null, Validators.required],\n    row_limit_b: [null],\n  });\n  formCustomize: FormGroup = this.fb.group({\n    colorScheme: [\"supersetColors\"],\n    show_legend: [true],\n    dataZoom: [false],\n    left_y_axis_title: [\"\"],\n    right_y_axis_title: [\"\"],\n    top_x_axis_title: [\"\"],\n    bottom_x_axis_title: [\"\"]\n  });\n  filterColumns: FilterColumn[] = [];\n  metricColumns: MetricColumn[] = [];\n  filterColumns_b: FilterColumn[] = [];\n  metricColumns_b: MetricColumn[] = [];\n  outsideClick: boolean = false;\n  touchedSubmit: boolean = false;\n  isShowQueryA: boolean = false;\n  isShowQueryB: boolean = false;\n  arrayColorSchemes: IColorScheme[] = colorSchemes;\n  timeOut: any;\n  xTicksLayout: string[] = [\"auto\", \"45°\"];\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n  isAutoFocus = true;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  constructor(\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    super();\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n  }\n\n  ngOnInit() {\n    // Subscribe to form changes\n    this.formFactor.valueChanges.subscribe((formValue) => {\n      this.emitValid();\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n        this.factorSave.emit(queries);\n      }, 100);\n    });\n\n    this.formQueryA.valueChanges.subscribe((formValue) => {\n      this.emitValid();\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n        this.factorSave.emit(queries);\n      }, 100);\n    });\n\n    this.formQueryB.valueChanges.subscribe((formValue) => {\n      this.emitValid();\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n        this.factorSave.emit(queries);\n      }, 100);\n    });\n\n    this.formCustomize.valueChanges.subscribe((formValue) => {\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n      }, 100);\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\"columns\" in changes) {\n      if (this.columns.length > 0) {\n        this.handleColumns();\n      }\n    }\n  }\n\n  emitValid() {\n    this.validForm.emit(\n      this.formQueryA.valid &&\n        this.formQueryB.valid &&\n        this.metricColumns.length > 0 &&\n        this.metricColumns_b.length > 0\n    );\n  }\n\n  emitDataSave() {\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n    this.customizeSave.emit(form_data);\n  }\n\n  //filter popover\n  onClickEditPopover() {\n    this.clearAllPopover();\n    this.enableScroll = false;\n  }\n\n  removeFilter(filterColumn: FilterColumn, query: string) {\n    if (query === \"query_a\") {\n      this.filterColumns = this.filterColumns.filter(\n        (item) => item !== filterColumn\n      );\n    }\n    if (query === \"query_b\") {\n      this.filterColumns_b = this.filterColumns_b.filter(\n        (item) => item !== filterColumn\n      );\n    }\n    this.emitDataSave();\n  }\n\n  onSaveFilter(filterColumn: FilterColumn, query: string) {\n    this.onSaveFilterCommon(filterColumn, query);\n  }\n\n  onSaveCloseFilter(filterColumn: FilterColumn, query: string) {\n    this.onSaveFilterCommon(filterColumn, query);\n    this.clearAllPopover();\n  }\n\n  onSaveFilterCommon(filterColumn: FilterColumn, query: string) {\n    if (query === \"query_a\") {\n      this.filterColumns = uniqueArrayObject(\n        [...this.filterColumns, filterColumn],\n        \"name\"\n      );\n    }\n    if (query === \"query_b\") {\n      this.filterColumns_b = uniqueArrayObject(\n        [...this.filterColumns_b, filterColumn],\n        \"name\"\n      );\n    }\n    this.emitDataSave();\n  }\n\n  onUpdateFilter(\n    oldFilterCol: FilterColumn,\n    newFilterCol: FilterColumn,\n    query: string\n  ) {\n    if (query === \"query_a\") {\n      this.filterColumns = uniqueArrayObject(\n        [\n          ...this.filterColumns.map((column) => {\n            if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n            return column;\n          }),\n        ],\n        \"name\"\n      );\n    }\n    if (query === \"query_b\") {\n      this.filterColumns_b = uniqueArrayObject(\n        [\n          ...this.filterColumns_b.map((column) => {\n            if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n            return column;\n          }),\n        ],\n        \"name\"\n      );\n    }\n    this.clearAllPopover();\n    this.emitDataSave();\n  }\n\n  //metric\n  onSaveMetric(metricColumn: MetricColumn, query: string) {\n    this.onSaveMetricCommon(metricColumn, query);\n    this.clearAllPopover();\n  }\n\n  onAddMetric(metricColumn: MetricColumn, query: string) {\n    this.onSaveMetricCommon(metricColumn, query);\n  }\n\n  onSaveMetricCommon(metricColumn: MetricColumn, query: string) {\n    if (query === \"query_a\") {\n      this.metricColumns = uniqueArrayObject(\n        [...this.metricColumns, metricColumn],\n        \"name\"\n      );\n    }\n    if (query === \"query_b\") {\n      this.metricColumns_b = uniqueArrayObject(\n        [...this.metricColumns_b, metricColumn],\n        \"name\"\n      );\n    }\n    this.emitValid();\n    this.emitDataSave();\n  }\n\n  onUpdateMetric(\n    oldMetricCol: MetricColumn,\n    newMetricCol: MetricColumn,\n    query: string\n  ) {\n    if (query === \"query_a\") {\n      this.metricColumns = uniqueArrayObject(\n        [\n          ...this.metricColumns.map((column) => {\n            if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n            return column;\n          }),\n        ],\n        \"name\"\n      );\n    }\n    if (query === \"query_b\") {\n      this.metricColumns_b = uniqueArrayObject(\n        [\n          ...this.metricColumns_b.map((column) => {\n            if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n            return column;\n          }),\n        ],\n        \"name\"\n      );\n    }\n    this.clearAllPopover();\n    this.emitDataSave();\n  }\n\n  removeMetric(metricColumn: MetricColumn, query: string) {\n    if (query === \"query_a\") {\n      this.metricColumns = this.metricColumns.filter(\n        (item) => item !== metricColumn\n      );\n    }\n    if (query === \"query_b\") {\n      this.metricColumns_b = this.metricColumns_b.filter(\n        (item) => item !== metricColumn\n      );\n    }\n    this.emitValid();\n    this.emitDataSave();\n  }\n\n  convertFormDataAndQueries() {\n    let dataFactor = this.formFactor.getRawValue() as IMixedFactor;\n    let dataCustomize = this.formCustomize.getRawValue() as IMixedCustomize;\n    let query_a = this.formQueryA.getRawValue() as IQuery;\n    let query_b = this.formQueryB.getRawValue() as IQueryB;\n\n    let filters: IFilter[] = convertFilter(this.filterColumns);\n    let metrics: IMetric[] = convertMetric(\n      this.columnsSubmit,\n      this.metricColumns\n    );\n\n    let filters_b: IFilter[] = convertFilter(this.filterColumns_b);\n    let metrics_b: IMetric[] = convertMetric(\n      this.columnsSubmit,\n      this.metricColumns_b\n    );\n\n    const color = colorSchemes.filter(\n      (color: IColorScheme) => color.id === dataCustomize.colorScheme\n    )[0].colors;\n\n    let form_data: IFormDataMixed = convertFormDataMixed(\n      dataFactor.granularity_sqla,\n      dataFactor.time_grain_sqla,\n      metrics,\n      query_a.groupby,\n      query_a.row_limit,\n      filters,\n      metrics_b,\n      filters_b,\n      query_b.groupby_b,\n      query_b.row_limit_b,\n      dataFactor.left_axis,\n      color,\n      dataCustomize.colorScheme,\n      dataCustomize.dataZoom,\n      dataCustomize.show_legend,\n      dataCustomize.left_y_axis_title,\n      dataCustomize.right_y_axis_title,\n      dataCustomize.top_x_axis_title,\n      dataCustomize.bottom_x_axis_title,\n      this.metricColumns,\n      this.filterColumns,\n      this.metricColumns_b,\n      this.filterColumns_b\n    );\n\n    const queries: IQueriesMixed[] = convertQueriesMixed(\n      dataFactor.granularity_sqla,\n      dataFactor.time_grain_sqla,\n      query_a.groupby,\n      metrics,\n      filters,\n      query_a.row_limit,\n      query_b.groupby_b,\n      metrics_b,\n      filters_b,\n      query_b.row_limit_b\n    );\n\n    return {\n      form_data,\n      queries,\n    };\n  }\n\n  getDataVizCustom(datasource: string | IDataSource) {\n    let { form_data, queries } = this.convertFormDataAndQueries();\n\n    let params: IFormDataSubmit = {\n      form_data: JSON.stringify(form_data),\n      datasource: JSON.stringify(datasource),\n      queries: JSON.stringify(queries),\n      force: \"false\",\n      result_format: \"json\",\n      result_type: \"full\",\n    };\n\n    return new Promise((resolve, reject) => {\n      this.chartService.getDataVisualize(params).subscribe((res: any) => {\n        console.log(res);\n        if (res.type !== ErrorMessage.TYPE) {\n          if (Object.keys(res).length > 0) {\n            resolve({ queriesData: res.elements || [], formData: form_data });\n          } else {\n            resolve({ queriesData: [], formData: form_data });\n          }\n        } else {\n          reject(res);\n        }\n      });\n    });\n  }\n\n  setRawValue(formData: IFormDataMixed, columns: ISelectMetadata[]) {\n    this.columns = columns;\n    this.handleColumns();\n    let factor: IMixedFactor = {\n      granularity_sqla: formData.granularity_sqla,\n      time_grain_sqla: formData.time_grain_sqla,\n      left_axis: formData.seriesTypeA,\n    };\n    let queryA: IQuery = {\n      row_limit: formData.row_limit,\n      groupby: formData.groupby\n    }\n    let queryB: IQueryB = {\n      row_limit_b: formData.row_limit_b,\n      groupby_b: formData.groupby_b\n    }\n    let customize: IMixedCustomize = {\n      colorScheme: formData.color_scheme_name,\n      dataZoom: formData.dataZoom,\n      show_legend: formData.show_legend,\n      left_y_axis_title: formData.left_y_axis_title,\n      right_y_axis_title: formData.right_y_axis_right,\n      top_x_axis_title: formData.top_x_axis_title,\n      bottom_x_axis_title: formData.bottom_x_axis_title,\n    };\n    this.metricColumns = formData.columnMetrics;\n    this.filterColumns = formData.columnFilters;\n    this.metricColumns_b = formData.columnMetrics_b;\n    this.filterColumns_b = formData.columnFilters_b;\n\n    this.formFactor.patchValue(factor);\n    this.formCustomize.patchValue(customize);\n    this.formQueryA.patchValue(queryA);\n    this.formQueryB.patchValue(queryB);\n    this.emitValid();\n    this.emitDataSave();\n    return Promise.resolve();\n  }\n\n  handleColumns() {\n    this.columnsDate = this.columns.filter(\n      (col: ISelectMetadata) => col.type === ColumnDataType.DATE\n    );\n    this.columnsSubmit = this.columns.map(\n      (col: ISelectMetadata, index: number) => {\n        let obj: IColumn = {\n          filterable: true,\n          groupby: true,\n          is_certified: false,\n          column_name: col.value,\n          type: col.type,\n          id: index,\n          type_generic: 0,\n          is_dttm: false,\n        };\n        switch (col.type) {\n          case ColumnDataType.INT:\n          case ColumnDataType.DOUBLE:\n          case ColumnDataType.LONG:\n          case ColumnDataType.INT64:\n          case ColumnDataType.FLOAT:\n          case ColumnDataType.NUMBER:\n            obj[\"type_generic\"] = 0;\n            break;\n          case ColumnDataType.STRING:\n          case ColumnDataType.CHAR:\n            obj[\"type_generic\"] = 1;\n            break;\n          case ColumnDataType.DATE:\n            obj[\"type_generic\"] = 2;\n            break;\n          case ColumnDataType.BOOLEAN:\n            obj[\"type_generic\"] = 3;\n            break;\n          default:\n            break;\n        }\n        obj[\"is_dttm\"] = col.type === \"DATE\" ? true : false;\n        return obj;\n      }\n    );\n  }\n\n  onSaveChart() {}\n}\n","<tabset #staticTabs class=\"custom__control-tabset\">\n  <tab\n    heading=\"{{ 'VISUALIZE.FACTOR' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formFactor\" class=\"custom__control-form\">\n      <div class=\"form-group\">\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\">{{\n            \"LEFT AXIS CHART\" | translate\n          }}</label>\n          <ng-select\n            #columnName\n            formControlName=\"left_axis\"\n            [items]=\"leftAxis\"\n            [multiple]=\"false\"\n            [clearable]=\"true\"\n            bindLabel=\"name\"\n            bindValue=\"value\"\n            placeholder=\"{{ 'Select left axis' | translate }}\"\n            [notFoundText]=\"'Not found column'\"\n          >\n          </ng-select>\n        </div>\n      </div>\n    </form>\n\n    <div\n      class=\"collapse-box\"\n      [ngStyle]=\"isShowQueryA ? { 'border-bottom': '1px solid #f0f0f0' } : ''\"\n    >\n      <div\n        (click)=\"isShowQueryA = !isShowQueryA\"\n        [attr.aria-expanded]=\"!isShowQueryA\"\n        class=\"collapse-title\"\n      >\n        <span>{{ \"Query A\" | translate }}</span>\n        <i [ngClass]=\"isShowQueryA ? 'fa fa-angle-down' : 'fa fa-angle-up'\"></i>\n      </div>\n      <div [collapse]=\"isShowQueryA\" [isAnimated]=\"true\" class=\"collapse-body\">\n        <form [formGroup]=\"formQueryA\" class=\"custom__control-form\">\n          <!-- metric -->\n          <div class=\"form-group\" style=\"padding-top: 0\">\n            <div\n              class=\"wrapper-filter-metric metric\"\n              style=\"margin-bottom: 15px\"\n            >\n              <label class=\"label-visualize\"\n                >{{ \"VISUALIZE.METRICS\" | translate\n                }}<i\n                  class=\"fa fa-exclamation custom-icon-exclamation\"\n                  aria-hidden=\"true\"\n                  [tooltip]=\"'VISUALIZE.CANNOT_EMPTY' | translate\"\n                  aria-describedby=\"tooltip-4\"\n                  [ngStyle]=\"\n                    metricColumns.length > 0\n                      ? { border: '1px solid #212529', color: '#212529' }\n                      : { border: '1px solid #dc3545', color: '#dc3545' }\n                  \"\n                ></i\n              ></label>\n              <div class=\"form-control-wrapper\">\n                <div\n                  *ngFor=\"let item of metricColumns; let i = index\"\n                  class=\"form-control-item editable\"\n                >\n                  <span class=\"item-button-remove\"\n                    ><i (click)=\"removeMetric(item, 'query_a')\" class=\"fa fa-remove\"></i\n                  ></span>\n                  <span\n                    #editMetricColumnPop=\"bs-popover\"\n                    (click)=\"onClickEditPopover()\"\n                    [adaptivePosition]=\"true\"\n                    [autofocus]=\"isAutoFocus\"\n                    [outsideClick]=\"outsideClick\"\n                    [popoverContext]=\"{ item: item, index: i }\"\n                    [popover]=\"editMetricColumnTemplate\"\n                    boundariesElement=\"viewport\"\n                    class=\"item-label\"\n                    container=\"body\"\n                    containerClass=\"v-popover\"\n                    placement=\"right\"\n                  >\n                    {{ item | metricFormatter }}\n                  </span>\n                </div>\n                <div\n                  (onShown)=\"onPopoverShown(metricColumnPop)\"\n                  #metricColumnPop=\"bs-popover\"\n                  [adaptivePosition]=\"true\"\n                  [outsideClick]=\"outsideClick\"\n                  [popover]=\"addMetricColumnTemplate\"\n                  boundariesElement=\"viewport\"\n                  class=\"form-control-item-add\"\n                  container=\"body\"\n                  containerClass=\"v-popover\"\n                  placement=\"right\"\n                >\n                  <span class=\"control-item-icon\"\n                    ><i class=\"fa fa-plus\"></i\n                  ></span>\n                  <span class=\"control-item-text\">{{\n                    \"VISUALIZE.ADD_METRIC\" | translate\n                  }}</span>\n                </div>\n                <ng-template #addMetricColumnTemplate>\n                  <app-metric-popover\n                    (cancelMetric)=\"metricColumnPop.hide()\"\n                    (saveMetric)=\"onAddMetric($event, 'query_a')\"\n                    (saveAndClose)=\"onSaveMetric($event, 'query_a')\"\n                    [columns]=\"columns\"\n                    [metricIndex]=\"columns.length\"\n                  >\n                  </app-metric-popover>\n                </ng-template>\n                <ng-template\n                  #editMetricColumnTemplate\n                  let-index=\"index\"\n                  let-item=\"item\"\n                >\n                  <app-metric-popover\n                    (cancelMetric)=\"clearAllPopover()\"\n                    (saveAndClose)=\"onUpdateMetric(item, $event, 'query_a')\"\n                    [columns]=\"columns\"\n                    [metricColumn]=\"item\"\n                    [metricIndex]=\"index\"\n                  >\n                  </app-metric-popover>\n                </ng-template>\n              </div>\n            </div>\n\n            <div class=\"form-group--wrap\">\n              <label class=\"label-visualize\">{{ \"Group\" | translate }}<i\n                class=\"fa fa-exclamation custom-icon-exclamation\"\n                aria-hidden=\"true\"\n                [tooltip]=\"'VISUALIZE.CANNOT_EMPTY' | translate\"\n                aria-describedby=\"tooltip-4\"\n                [ngStyle]=\"\n                  formQueryA.controls['groupby'].value\n                    ? { border: '1px solid #212529', color: '#212529' }\n                    : { border: '1px solid #dc3545', color: '#dc3545' }\n                \"\n              ></i\n            ></label>\n              <ng-select\n                formControlName=\"groupby\"\n                [items]=\"columns\"\n                [multiple]=\"true\"\n                [clearable]=\"false\"\n                bindLabel=\"name\"\n                bindValue=\"value\"\n                placeholder=\"{{ 'select column' | translate }}\"\n                [notFoundText]=\"'Not found column'\"\n              >\n                <ng-template\n                  let-index=\"index\"\n                  let-item=\"item\"\n                  let-search=\"searchTerm\"\n                  ng-option-tmp\n                >\n                  <div class=\"d-flex align-items-center\">\n                    <div\n                      class=\"data-type {{ item.type | checkTypePipe }}\"\n                    ></div>\n                    <div>{{ item.name | translate }}</div>\n                  </div>\n                </ng-template>\n              </ng-select>\n            </div>\n            <div class=\"form-group--wrap\">\n              <label class=\"label-visualize\">{{\n                \"VISUALIZE.ROW_LIMIT\" | translate\n              }}</label>\n              <input\n                type=\"number\"\n                formControlName=\"row_limit\"\n                placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n              />\n            </div>\n\n            <div class=\"wrapper-filter-metric filter\">\n              <label class=\"label-visualize\">{{\n                \"VISUALIZE.FILTERS\" | translate\n              }}</label>\n              <div class=\"form-control-wrapper\">\n                <div\n                  *ngFor=\"let item of filterColumns; let i = index\"\n                  class=\"form-control-item editable\"\n                >\n                  <span class=\"item-button-remove\"\n                    ><i (click)=\"removeFilter(item, 'query_a')\" class=\"fa fa-remove\"></i\n                  ></span>\n                  <span\n                    #editFilterColumnPop=\"bs-popover\"\n                    (click)=\"onClickEditPopover()\"\n                    [adaptivePosition]=\"true\"\n                    [outsideClick]=\"outsideClick\"\n                    [popoverContext]=\"{ item: item, index: i }\"\n                    [popover]=\"editFilterColumnTemplate\"\n                    boundariesElement=\"viewport\"\n                    class=\"item-label\"\n                    container=\"body\"\n                    containerClass=\"v-popover\"\n                    placement=\"top\"\n                  >\n                    {{ item | filterFormatter }}\n                  </span>\n                </div>\n                <div\n                  (onShown)=\"onPopoverShown(filterColumnPop)\"\n                  #filterColumnPop=\"bs-popover\"\n                  [adaptivePosition]=\"true\"\n                  [outsideClick]=\"outsideClick\"\n                  [popover]=\"addFilterColumnTemplate\"\n                  boundariesElement=\"viewport\"\n                  class=\"form-control-item-add\"\n                  container=\"body\"\n                  containerClass=\"v-popover\"\n                  placement=\"top\"\n                >\n                  <span class=\"control-item-icon\"\n                    ><i class=\"fa fa-plus\"></i\n                  ></span>\n                  <span class=\"control-item-text\">{{\n                    \"VISUALIZE.ADD_FILTER\" | translate\n                  }}</span>\n                </div>\n                <ng-template #addFilterColumnTemplate>\n                  <app-filter-popover\n                    (cancel)=\"filterColumnPop.hide()\"\n                    (save)=\"onSaveFilter($event, 'query_a')\"\n                    [columns]=\"columns\"\n                    (saveClose)=\"onSaveCloseFilter($event, 'query_a')\"\n                    [filterIndex]=\"columns.length\"\n                  >\n                  </app-filter-popover>\n                </ng-template>\n                <ng-template\n                  #editFilterColumnTemplate\n                  let-index=\"index\"\n                  let-item=\"item\"\n                >\n                  <app-filter-popover\n                    (cancel)=\"clearAllPopover()\"\n                    (save)=\"onUpdateFilter(item, $event, 'query_a')\"\n                    [columns]=\"columns\"\n                    [filterColumn]=\"item\"\n                    [filterIndex]=\"index\"\n                  >\n                  </app-filter-popover>\n                </ng-template>\n              </div>\n            </div>\n          </div>\n          <!-- metric -->\n        </form>\n      </div>\n    </div>\n\n    <div class=\"collapse-box\">\n      <div\n        (click)=\"isShowQueryB = !isShowQueryB\"\n        [attr.aria-expanded]=\"!isShowQueryB\"\n        class=\"collapse-title\"\n      >\n        <span>{{ \"Query B\" | translate }}</span>\n        <i [ngClass]=\"isShowQueryB ? 'fa fa-angle-down' : 'fa fa-angle-up'\"></i>\n      </div>\n      <div [collapse]=\"isShowQueryB\" [isAnimated]=\"true\" class=\"collapse-body\">\n        <form [formGroup]=\"formQueryB\" class=\"custom__control-form\">\n          <!-- metric -->\n          <div class=\"form-group\" style=\"padding-top: 0\">\n            <div\n              class=\"wrapper-filter-metric metric\"\n              style=\"margin-bottom: 15px\"\n            >\n              <label class=\"label-visualize\"\n                >{{ \"VISUALIZE.METRICS\" | translate\n                }}<i\n                  class=\"fa fa-exclamation custom-icon-exclamation\"\n                  aria-hidden=\"true\"\n                  [tooltip]=\"'VISUALIZE.CANNOT_EMPTY' | translate\"\n                  aria-describedby=\"tooltip-4\"\n                  [ngStyle]=\"\n                    metricColumns_b.length > 0\n                      ? { border: '1px solid #212529', color: '#212529' }\n                      : { border: '1px solid #dc3545', color: '#dc3545' }\n                  \"\n                ></i\n              ></label>\n              <div class=\"form-control-wrapper\">\n                <div\n                  *ngFor=\"let item of metricColumns_b; let i = index\"\n                  class=\"form-control-item editable\"\n                >\n                  <span class=\"item-button-remove\"\n                    ><i (click)=\"removeMetric(item, 'query_b')\" class=\"fa fa-remove\"></i\n                  ></span>\n                  <span\n                    #editMetricColumnPopB=\"bs-popover\"\n                    (click)=\"onClickEditPopover()\"\n                    [adaptivePosition]=\"true\"\n                    [autofocus]=\"isAutoFocus\"\n                    [outsideClick]=\"outsideClick\"\n                    [popoverContext]=\"{ item: item, index: i }\"\n                    [popover]=\"editMetricColumnTemplateB\"\n                    boundariesElement=\"viewport\"\n                    class=\"item-label\"\n                    container=\"body\"\n                    containerClass=\"v-popover\"\n                    placement=\"right\"\n                  >\n                    {{ item | metricFormatter }}\n                  </span>\n                </div>\n                <div\n                  (onShown)=\"onPopoverShown(metricColumnPopB)\"\n                  #metricColumnPopB=\"bs-popover\"\n                  [adaptivePosition]=\"true\"\n                  [outsideClick]=\"outsideClick\"\n                  [popover]=\"addMetricColumnTemplateB\"\n                  boundariesElement=\"viewport\"\n                  class=\"form-control-item-add\"\n                  container=\"body\"\n                  containerClass=\"v-popover\"\n                  placement=\"right\"\n                >\n                  <span class=\"control-item-icon\"\n                    ><i class=\"fa fa-plus\"></i\n                  ></span>\n                  <span class=\"control-item-text\">{{\n                    \"VISUALIZE.ADD_METRIC\" | translate\n                  }}</span>\n                </div>\n                <ng-template #addMetricColumnTemplateB>\n                  <app-metric-popover\n                    (cancelMetric)=\"metricColumnPopB.hide()\"\n                    (saveMetric)=\"onAddMetric($event, 'query_b')\"\n                    (saveAndClose)=\"onSaveMetric($event, 'query_b')\"\n                    [columns]=\"columns\"\n                    [metricIndex]=\"columns.length\"\n                  >\n                  </app-metric-popover>\n                </ng-template>\n                <ng-template\n                  #editMetricColumnTemplateB\n                  let-index=\"index\"\n                  let-item=\"item\"\n                >\n                  <app-metric-popover\n                    (cancelMetric)=\"clearAllPopover()\"\n                    (saveAndClose)=\"onUpdateMetric(item, $event, 'query_b')\"\n                    [columns]=\"columns\"\n                    [metricColumn]=\"item\"\n                    [metricIndex]=\"index\"\n                  >\n                  </app-metric-popover>\n                </ng-template>\n              </div>\n            </div>\n\n            <div class=\"form-group--wrap\">\n              <label class=\"label-visualize\">{{ \"Group\" | translate }}<i\n                class=\"fa fa-exclamation custom-icon-exclamation\"\n                aria-hidden=\"true\"\n                [tooltip]=\"'VISUALIZE.CANNOT_EMPTY' | translate\"\n                aria-describedby=\"tooltip-4\"\n                [ngStyle]=\"\n                  formQueryB.controls['groupby_b'].value\n                    ? { border: '1px solid #212529', color: '#212529' }\n                    : { border: '1px solid #dc3545', color: '#dc3545' }\n                \"\n              ></i\n            ></label>\n              <ng-select\n                formControlName=\"groupby_b\"\n                [items]=\"columns\"\n                [multiple]=\"true\"\n                [clearable]=\"false\"\n                bindLabel=\"name\"\n                placement=\"top\"\n                bindValue=\"value\"\n                placeholder=\"{{ 'select column' | translate }}\"\n                [notFoundText]=\"'Not found column'\"\n              >\n                <ng-template\n                  let-index=\"index\"\n                  let-item=\"item\"\n                  let-search=\"searchTerm\"\n                  ng-option-tmp\n                >\n                  <div class=\"d-flex align-items-center\">\n                    <div\n                      class=\"data-type {{ item.type | checkTypePipe }}\"\n                    ></div>\n                    <div>{{ item.name | translate }}</div>\n                  </div>\n                </ng-template>\n              </ng-select>\n            </div>\n\n            <div class=\"form-group--wrap\">\n              <label class=\"label-visualize\">{{\n                \"VISUALIZE.ROW_LIMIT\" | translate\n              }}</label>\n              <input\n                type=\"number\"\n                formControlName=\"row_limit_b\"\n                placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n              />\n            </div>\n\n            <div class=\"wrapper-filter-metric filter\">\n              <label class=\"label-visualize\">{{\n                \"VISUALIZE.FILTERS\" | translate\n              }}</label>\n              <div class=\"form-control-wrapper\">\n                <div\n                  *ngFor=\"let item of filterColumns_b; let i = index\"\n                  class=\"form-control-item editable\"\n                >\n                  <span class=\"item-button-remove\"\n                    ><i (click)=\"removeFilter(item, 'query_b')\" class=\"fa fa-remove\"></i\n                  ></span>\n                  <span\n                    #editFilterColumnPopB=\"bs-popover\"\n                    (click)=\"onClickEditPopover()\"\n                    [adaptivePosition]=\"true\"\n                    [outsideClick]=\"outsideClick\"\n                    [popoverContext]=\"{ item: item, index: i }\"\n                    [popover]=\"editFilterColumnTemplateB\"\n                    boundariesElement=\"viewport\"\n                    class=\"item-label\"\n                    container=\"body\"\n                    containerClass=\"v-popover\"\n                    placement=\"top\"\n                  >\n                    {{ item | filterFormatter }}\n                  </span>\n                </div>\n                <div\n                  (onShown)=\"onPopoverShown(filterColumnPopB)\"\n                  #filterColumnPopB=\"bs-popover\"\n                  [adaptivePosition]=\"true\"\n                  [outsideClick]=\"outsideClick\"\n                  [popover]=\"addFilterColumnTemplateB\"\n                  boundariesElement=\"viewport\"\n                  class=\"form-control-item-add\"\n                  container=\"body\"\n                  containerClass=\"v-popover\"\n                  placement=\"top\"\n                >\n                  <span class=\"control-item-icon\"\n                    ><i class=\"fa fa-plus\"></i\n                  ></span>\n                  <span class=\"control-item-text\">{{\n                    \"VISUALIZE.ADD_FILTER\" | translate\n                  }}</span>\n                </div>\n                <ng-template #addFilterColumnTemplateB>\n                  <app-filter-popover\n                    (cancel)=\"filterColumnPopB.hide()\"\n                    (save)=\"onSaveFilter($event, 'query_b')\"\n                    [columns]=\"columns\"\n                    (saveClose)=\"onSaveCloseFilter($event, 'query_b')\"\n                    [filterIndex]=\"columns.length\"\n                  >\n                  </app-filter-popover>\n                </ng-template>\n                <ng-template\n                  #editFilterColumnTemplateB\n                  let-index=\"index\"\n                  let-item=\"item\"\n                >\n                  <app-filter-popover\n                    (cancel)=\"clearAllPopover()\"\n                    (save)=\"onUpdateFilter(item, $event, 'query_b')\"\n                    [columns]=\"columns\"\n                    [filterColumn]=\"item\"\n                    [filterIndex]=\"index\"\n                  >\n                  </app-filter-popover>\n                </ng-template>\n              </div>\n            </div>\n          </div>\n          <!-- metric -->\n        </form>\n      </div>\n    </div>\n  </tab>\n  <tab\n    heading=\"{{ 'VISUALIZE.CUSTOMIZE' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formCustomize\" class=\"custom__control-form\">\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.COLOR_SCHEME\" | translate\n        }}</label>\n        <ng-select\n          formControlName=\"colorScheme\"\n          [items]=\"arrayColorSchemes\"\n          [multiple]=\"false\"\n          [clearable]=\"false\"\n          bindLabel=\"label\"\n          bindValue=\"id\"\n          placeholder=\"{{ 'VISUALIZE.COLOR_SCHEME' | translate }}\"\n        >\n          <ng-template\n            let-index=\"index\"\n            let-item=\"item\"\n            let-search=\"searchTerm\"\n            ng-label-tmp\n          >\n            <div class=\"d-flex align-items-center color-scheme-item\">\n              <div class=\"color-name\">{{ item.label }}</div>\n              <div class=\"color-list\">\n                <span\n                  *ngFor=\"let color of item.colors\"\n                  [ngStyle]=\"{ background: color }\"\n                ></span>\n              </div>\n            </div>\n          </ng-template>\n          <ng-template\n            let-index=\"index\"\n            let-item=\"item\"\n            let-search=\"searchTerm\"\n            ng-option-tmp\n          >\n            <div class=\"d-flex align-items-center color-scheme-item\">\n              <div class=\"color-name\">{{ item.label }}</div>\n              <div class=\"color-list\">\n                <span\n                  *ngFor=\"let color of item.colors\"\n                  [ngStyle]=\"{ background: color }\"\n                ></span>\n              </div>\n            </div>\n          </ng-template>\n        </ng-select>\n      </div>\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"left y axis title\" | translate\n        }}</label>\n        <input\n          type=\"text\"\n          formControlName=\"left_y_axis_title\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"right y axis title\" | translate\n        }}</label>\n        <input\n          type=\"text\"\n          formControlName=\"right_y_axis_title\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"Top x axis title\" | translate\n        }}</label>\n        <input\n          type=\"text\"\n          formControlName=\"top_x_axis_title\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"Bottom x axis title\" | translate\n        }}</label>\n        <input\n          type=\"text\"\n          formControlName=\"bottom_x_axis_title\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"show_legend\" id=\"show-legend\" />\n        <label class=\"label-visualize\" for=\"show-legend\">{{\n          \"VISUALIZE.SHOW_LEGEND\" | translate\n        }}</label>\n      </div>\n      <div class=\"form-group-customize form-group-checkbox\">\n        <input type=\"checkbox\" formControlName=\"dataZoom\" id=\"data-zoom\" />\n        <label class=\"label-visualize\" for=\"data-zoom\">{{\n          \"VISUALIZE.DATA_ZOOM\" | translate\n        }}</label>\n      </div>\n    </form>\n  </tab>\n</tabset>\n","export enum ETypeMetric {\n  OPEN = \"open\",\n  CLOSE = \"close\",\n  LOWEST = \"lowest\",\n  HIGHEST = \"highest\",\n}\n\nexport enum EFormatter {}\n\nexport const D3_FORMAT_OPTIONS = [\n  { id: \"SMART_NUMBER\", label: \"Adaptive formatting\" },\n  { id: \"~g\", label: \"Original value\" },\n  { id: \",d\", label: \",d (12345.432 => 12,345)\" },\n  { id: \".1s\", label: \".1s (12345.432 => 10k)\" },\n  { id: \".3s\", label: \".3s (12345.432 => 12.3k)\" },\n  { id: \",.1%\", label: \",.1% (12345.432 => 1,234,543.2%)\" },\n  { id: \".3%\", label: \".3% (12345.432 => 1234543.200%)\" },\n  { id: \".4r\", label: \".4r (12345.432 => 12350)\" },\n  { id: \",.3f\", label: \",.3f (12345.432 => 12,345.432)\" },\n  { id: \"+,\", label: \"+, (12345.432 => +12,345.432)\" },\n  { id: \"$,.2f\", label: \"$,.2f (12345.432 => $12,345.43)\" },\n  { id: \"DURATION\", label: \"Duration in ms (66000 => 1m 6s)\" },\n  {\n    id: \"DURATION_SUB\",\n    label: \"Duration in ms (100.40008 => 100ms 400µs 80ns)\",\n  },\n];\n","import {\n  Component,\n  OnInit,\n  QueryList,\n  ViewChildren,\n  Input,\n  Output,\n  OnChanges,\n  SimpleChanges,\n  EventEmitter,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartService } from \"../chart.service\";\nimport {\n  FormBuilder,\n  FormGroup,\n  Validators,\n  FormControl,\n} from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n  ColumnDataType,\n  FilterColumn,\n  IColorScheme,\n  IColumn,\n  IDataSource,\n  IFilter,\n  IFormDataSubmit,\n  IMetric,\n  ISelect,\n  ISelectMetadata,\n  KeyValue,\n  colorSchemes,\n  timeGrain,\n  IMixedFactor,\n  IMixedCustomize,\n  IQuery,\n  IQueryB,\n} from \"../model/chart-custom\";\nimport { PopoverDirective } from \"ngx-bootstrap/popover\";\nimport { uniqueArrayObject } from \"../../common/uniqueArray\";\nimport { PopoverWrapperComponent } from \"../popover-wrapper/popover-wrapper.component\";\nimport { Subscription } from \"rxjs\";\nimport { MetricColumn } from \"../model/metric\";\nimport {\n  convertFilter,\n  convertMetric,\n} from \"../chart-custom/chart-custom.functions\";\n\nimport { ETypeMetric, D3_FORMAT_OPTIONS } from \"../enums\";\nimport {\n  ICandlestickFactor,\n  IFormDataCandlestick,\n  ICandlestickCustomize,\n} from \"../model\";\n\n@Component({\n  selector: \"app-chart-candlestick\",\n  templateUrl: \"./chart-candlestick.component.html\",\n  styleUrls: [\"./chart-candlestick.component.scss\"],\n})\nexport class ChartCandlestick\n  extends PopoverWrapperComponent\n  implements OnInit, OnChanges\n{\n  @Input() columns: ISelectMetadata[] = [];\n  @Input() uuidChart: string;\n  @Output() validForm = new EventEmitter<boolean>();\n  @Output() customizeSave = new EventEmitter<IFormDataCandlestick>();\n  @Output() factorSave = new EventEmitter<any>();\n  columnsDate: ISelectMetadata[] = [];\n  columnsSubmit: IColumn[] = [];\n  timeGrain: ISelect[] = timeGrain;\n  leftAxis: string[] = [\"bar\", \"line\"];\n  formFactor: FormGroup = this.fb.group({\n    granularity: [null, Validators.required],\n    row_limit: [null],\n  });\n  formCustomize: FormGroup = this.fb.group({\n    show_legend: [true],\n    dataZoom: [false],\n    markPoint: [false],\n    markLine: [false],\n    formatter: [\"~g\"],\n    ma: [null],\n  });\n  filterColumns: FilterColumn[] = [];\n  openColumns: MetricColumn[] = [];\n  closeColumns: MetricColumn[] = [];\n  lowestColumns: MetricColumn[] = [];\n  highestColumns: MetricColumn[] = [];\n\n  outsideClick: boolean = false;\n  touchedSubmit: boolean = false;\n\n  timeOut: any;\n  values: string[] = [];\n  formatterOpts: KeyValue = D3_FORMAT_OPTIONS;\n\n  typeMetric = ETypeMetric;\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n  @ViewChildren(PopoverDirective) popovers: QueryList<PopoverDirective>;\n  isAutoFocus = true;\n  constructor(\n    private chartService: ChartService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    super();\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n  }\n\n  addValue(value: string) {\n    if (isNaN(Number(value))) {\n      return;\n    }\n    return { name: value, tag: true };\n  }\n\n  ngOnInit() {\n    // Subscribe to form changes\n    this.formFactor.valueChanges.subscribe((formValue) => {\n      this.emitValid();\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n        this.factorSave.emit(queries);\n      }, 100);\n    });\n\n    this.formCustomize.valueChanges.subscribe((formValue) => {\n      const { form_data, queries } = this.convertFormDataAndQueries();\n      clearTimeout(this.timeOut);\n      this.timeOut = setTimeout(() => {\n        this.customizeSave.emit(form_data);\n      }, 100);\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (\"columns\" in changes) {\n      if (this.columns.length > 0) {\n        this.handleColumns();\n      }\n    }\n  }\n\n  emitValid() {\n    this.validForm.emit(\n      this.formFactor.valid &&\n        this.openColumns.length > 0 &&\n        this.closeColumns.length > 0 &&\n        this.lowestColumns.length > 0 &&\n        this.highestColumns.length > 0\n    );\n  }\n\n  emitDataSave() {\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n    this.customizeSave.emit(form_data);\n  }\n\n  //filter popover\n  onClickEditPopover() {\n    this.clearAllPopover();\n    this.enableScroll = false;\n  }\n\n  removeFilter(filterColumn: FilterColumn) {\n    this.filterColumns = this.filterColumns.filter(\n      (item) => item !== filterColumn\n    );\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  onSaveFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n  }\n\n  onSaveCloseFilter(filterColumn: FilterColumn) {\n    this.onSaveFilterCommon(filterColumn);\n    this.clearAllPopover();\n  }\n\n  onSaveFilterCommon(filterColumn: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [...this.filterColumns, filterColumn],\n      \"name\"\n    );\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  onUpdateFilter(oldFilterCol: FilterColumn, newFilterCol: FilterColumn) {\n    this.filterColumns = uniqueArrayObject(\n      [\n        ...this.filterColumns.map((column) => {\n          if (column.uuid === oldFilterCol.uuid) column = newFilterCol;\n          return column;\n        }),\n      ],\n      \"name\"\n    );\n    this.clearAllPopover();\n    const { form_data, queries } = this.convertFormDataAndQueries();\n    this.factorSave.emit(queries);\n  }\n\n  //metric\n  onSaveMetric(metricColumn: MetricColumn, type: string) {\n    this.onSaveMetricCommon(metricColumn, type);\n    this.clearAllPopover();\n  }\n\n  onAddMetric(metricColumn: MetricColumn, type: string) {\n    this.onSaveMetricCommon(metricColumn, type);\n  }\n\n  onSaveMetricCommon(metricColumn: MetricColumn, type: string) {\n    switch (type) {\n      case ETypeMetric.OPEN:\n        this.openColumns = uniqueArrayObject(\n          [...this.openColumns, metricColumn],\n          \"name\"\n        );\n        break;\n      case ETypeMetric.CLOSE:\n        this.closeColumns = uniqueArrayObject(\n          [...this.closeColumns, metricColumn],\n          \"name\"\n        );\n        break;\n      case ETypeMetric.LOWEST:\n        this.lowestColumns = uniqueArrayObject(\n          [...this.lowestColumns, metricColumn],\n          \"name\"\n        );\n        break;\n      case ETypeMetric.HIGHEST:\n        this.highestColumns = uniqueArrayObject(\n          [...this.highestColumns, metricColumn],\n          \"name\"\n        );\n        break;\n      default:\n        break;\n    }\n    this.emitValid();\n    this.emitDataSave();\n  }\n\n  onUpdateMetric(\n    oldMetricCol: MetricColumn,\n    newMetricCol: MetricColumn,\n    type: string\n  ) {\n    switch (type) {\n      case ETypeMetric.OPEN:\n        this.openColumns = uniqueArrayObject(\n          [\n            ...this.openColumns.map((column) => {\n              if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n              return column;\n            }),\n          ],\n          \"name\"\n        );\n        break;\n      case ETypeMetric.CLOSE:\n        this.closeColumns = uniqueArrayObject(\n          [\n            ...this.closeColumns.map((column) => {\n              if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n              return column;\n            }),\n          ],\n          \"name\"\n        );\n        break;\n      case ETypeMetric.LOWEST:\n        this.lowestColumns = uniqueArrayObject(\n          [\n            ...this.lowestColumns.map((column) => {\n              if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n              return column;\n            }),\n          ],\n          \"name\"\n        );\n        break;\n      case ETypeMetric.HIGHEST:\n        this.highestColumns = uniqueArrayObject(\n          [\n            ...this.highestColumns.map((column) => {\n              if (column.uuid === oldMetricCol.uuid) column = newMetricCol;\n              return column;\n            }),\n          ],\n          \"name\"\n        );\n        break;\n      default:\n        break;\n    }\n    this.clearAllPopover();\n    this.emitDataSave();\n  }\n\n  removeMetric(metricColumn: MetricColumn, type: string) {\n    switch (type) {\n      case ETypeMetric.OPEN:\n        this.openColumns = this.openColumns.filter(\n          (item) => item !== metricColumn\n        );\n        break;\n      case ETypeMetric.CLOSE:\n        this.closeColumns = this.closeColumns.filter(\n          (item) => item !== metricColumn\n        );\n        break;\n      case ETypeMetric.LOWEST:\n        this.lowestColumns = this.lowestColumns.filter(\n          (item) => item !== metricColumn\n        );\n        break;\n      case ETypeMetric.HIGHEST:\n        this.highestColumns = this.highestColumns.filter(\n          (item) => item !== metricColumn\n        );\n        break;\n      default:\n        break;\n    }\n    this.emitValid();\n    this.emitDataSave();\n  }\n\n  convertFormDataAndQueries() {\n    let dataFactor = this.formFactor.getRawValue() as ICandlestickFactor;\n    let dataCustomize =\n      this.formCustomize.getRawValue() as ICandlestickCustomize;\n\n    let filters: IFilter[] = convertFilter(this.filterColumns);\n    let metrics: IMetric[] = convertMetric(this.columnsSubmit, [\n      ...this.openColumns,\n      ...this.closeColumns,\n      ...this.lowestColumns,\n      ...this.highestColumns,\n    ]);\n\n    let form_data: IFormDataCandlestick = {\n        granularity: dataFactor.granularity,\n        row_limit: dataFactor.row_limit ? dataFactor.row_limit : \"\",\n        metrics,\n        filters,\n        is_timeseries: true,\n        ...dataCustomize,\n        ma: dataCustomize.ma ? dataCustomize.ma.map((m: any) => m.name) : [],\n        columnOpen: this.openColumns,\n        columnClose: this.closeColumns,\n        columnLowest: this.lowestColumns,\n        columnHighest: this.highestColumns,\n        columnFilters: this.filterColumns,\n      },\n      queries = form_data;\n    return {\n      form_data,\n      queries,\n    };\n  }\n\n  getDataVizCustom(datasource: string | IDataSource) {\n    let { form_data, queries } = this.convertFormDataAndQueries();\n    let params: IFormDataSubmit = {\n      formData: JSON.stringify(form_data),\n      datasource: JSON.stringify(datasource),\n      force: \"false\",\n      result_format: \"json\",\n      result_type: \"full\",\n    };\n\n    return new Promise((resolve, reject) => {\n      this.chartService.getDataCustom(params).subscribe((res: any) => {\n        if (res.type !== ErrorMessage.TYPE) {\n          if (Object.keys(res).length > 0) {\n            resolve({ queriesData: res.elements || [], formData: form_data });\n          } else {\n            resolve({ queriesData: [], formData: form_data });\n          }\n        } else {\n          reject(res);\n        }\n      });\n    });\n  }\n\n  setRawValue(formData: IFormDataCandlestick, columns: ISelectMetadata[]) {\n    this.columns = columns;\n    this.handleColumns();\n    let factor: ICandlestickFactor = {\n      granularity: formData.granularity,\n      row_limit: formData.row_limit,\n    };\n    let customize: ICandlestickCustomize = {\n      ma: formData.ma.length > 0 ? formData.ma.map(m => ({ name: m, tag: true })) : null,\n      markLine: formData.markLine,\n      markPoint: formData.markPoint,\n      formatter: formData.formatter,\n      dataZoom: formData.dataZoom,\n      show_legend: formData.show_legend,\n    };\n    this.filterColumns = formData.columnFilters;\n    this.openColumns = formData.columnOpen;\n    this.closeColumns = formData.columnClose;\n    this.lowestColumns = formData.columnLowest;\n    this.highestColumns = formData.columnHighest;\n\n    this.formFactor.patchValue(factor);\n    this.formCustomize.patchValue(customize);\n    this.emitValid();\n    this.emitDataSave();\n    return Promise.resolve();\n  }\n\n  handleColumns() {\n    this.columnsDate = this.columns.filter(\n      (col: ISelectMetadata) => col.type === ColumnDataType.DATE\n    );\n    this.columnsSubmit = this.columns.map(\n      (col: ISelectMetadata, index: number) => {\n        let obj: IColumn = {\n          filterable: true,\n          groupby: true,\n          is_certified: false,\n          column_name: col.value,\n          type: col.type,\n          id: index,\n          type_generic: 0,\n          is_dttm: false,\n        };\n        switch (col.type) {\n          case ColumnDataType.INT:\n          case ColumnDataType.DOUBLE:\n          case ColumnDataType.LONG:\n          case ColumnDataType.INT64:\n          case ColumnDataType.FLOAT:\n          case ColumnDataType.NUMBER:\n            obj[\"type_generic\"] = 0;\n            break;\n          case ColumnDataType.STRING:\n          case ColumnDataType.CHAR:\n            obj[\"type_generic\"] = 1;\n            break;\n          case ColumnDataType.DATE:\n            obj[\"type_generic\"] = 2;\n            break;\n          case ColumnDataType.BOOLEAN:\n            obj[\"type_generic\"] = 3;\n            break;\n          default:\n            break;\n        }\n        obj[\"is_dttm\"] = col.type === \"DATE\" ? true : false;\n        return obj;\n      }\n    );\n  }\n\n  onSaveChart() {}\n}\n","<tabset #staticTabs class=\"custom__control-tabset\">\n  <tab\n    heading=\"{{ 'VISUALIZE.FACTOR' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formFactor\" class=\"custom__control-form\">\n      <div class=\"form-group\">\n        <div class=\"form-group--wrap\">\n          <label class=\"label-visualize\"\n            >{{ \"VISUALIZE.TIME\" | translate }}\n            <i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              placement=\"right\"\n              [ngStyle]=\"\n                formFactor.controls['granularity'].value\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <ng-select\n            #columnName\n            formControlName=\"granularity\"\n            [items]=\"columnsDate\"\n            [multiple]=\"false\"\n            [clearable]=\"false\"\n            bindLabel=\"name\"\n            bindValue=\"value\"\n            placeholder=\"{{ 'VISUALIZE.SELECT_COLUMN' | translate }}\"\n            [notFoundText]=\"'Not found column'\"\n            [ngClass]=\"{\n              'is-invalid':\n                !formFactor.controls['granularity'].value &&\n                (formFactor.controls['granularity'].touched ||\n                  touchedSubmit)\n            }\"\n          >\n            <ng-template\n              let-index=\"index\"\n              let-item=\"item\"\n              let-search=\"searchTerm\"\n              ng-label-tmp\n            >\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n            <ng-template\n              let-index=\"index\"\n              let-item=\"item\"\n              let-search=\"searchTerm\"\n              ng-option-tmp\n            >\n              <div class=\"d-flex align-items-center\">\n                <div class=\"data-type {{ item.type | checkTypePipe }}\"></div>\n                <div>{{ item.name | translate }}</div>\n              </div>\n            </ng-template>\n          </ng-select>\n        </div>\n      </div>\n      <!-- metric -->\n      <div class=\"form-group group-metric\">\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"Open\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                openColumns.length > 0\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of openColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i\n                  (click)=\"removeMetric(item, typeMetric.OPEN)\"\n                  class=\"fa fa-remove\"\n                ></i\n              ></span>\n              <span\n                #editOpenColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editOpenColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\">\n                {{ item | metricFormatter }}\n              </span>\n            </div>\n            <div *ngIf=\"openColumns.length === 0\" (onShown)=\"onPopoverShown(openColumnPop)\" #openColumnPop=\"bs-popover\" [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\" [popover]=\"addOpenColumnTemplate\" boundariesElement=\"viewport\"\n              class=\"form-control-item-add\" container=\"body\" containerClass=\"v-popover\" placement=\"right\">\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_METRIC\" | translate\n                }}</span>\n                <ng-template #addOpenColumnTemplate>\n                  <app-metric-popover (cancelMetric)=\"openColumnPop.hide()\" (saveMetric)=\"onAddMetric($event, typeMetric.OPEN)\"\n                    (saveAndClose)=\"onSaveMetric($event, typeMetric.OPEN)\" [columns]=\"columns\" [metricIndex]=\"columns.length\">\n                  </app-metric-popover>\n                </ng-template>\n            </div>\n \n            <ng-template #editOpenColumnTemplate let-index=\"index\" let-item=\"item\">\n              <app-metric-popover (cancelMetric)=\"clearAllPopover()\" (saveAndClose)=\"onUpdateMetric(item, $event, typeMetric.OPEN)\"\n                [columns]=\"columns\" [metricColumn]=\"item\" [metricIndex]=\"index\">\n              </app-metric-popover>\n            </ng-template>\n          </div>\n        </div>\n\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"Close\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                closeColumns.length > 0\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of closeColumns; let i = index\"\n              class=\"form-control-item editable\">\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeMetric(item, typeMetric.CLOSE)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editCloseColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editCloseColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\">\n                {{ item | metricFormatter }}\n              </span>\n            </div>\n              <div *ngIf=\"closeColumns.length === 0\" (onShown)=\"onPopoverShown(closeColumnPop)\" #closeColumnPop=\"bs-popover\" [adaptivePosition]=\"true\"\n                [outsideClick]=\"outsideClick\" [popover]=\"addCloseColumnTemplate\" boundariesElement=\"viewport\"\n                class=\"form-control-item-add\" container=\"body\" containerClass=\"v-popover\" placement=\"right\">\n                <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n                <span class=\"control-item-text\">{{\n                  \"VISUALIZE.ADD_METRIC\" | translate\n                  }}</span>\n              <ng-template #addCloseColumnTemplate>\n                <app-metric-popover (cancelMetric)=\"closeColumnPop.hide()\" (saveMetric)=\"onAddMetric($event, typeMetric.CLOSE)\"\n                  (saveAndClose)=\"onSaveMetric($event, typeMetric.CLOSE)\" [columns]=\"columns\" [metricIndex]=\"columns.length\">\n                </app-metric-popover>\n              </ng-template>\n            </div>\n            <ng-template #editCloseColumnTemplate let-index=\"index\" let-item=\"item\">\n              <app-metric-popover (cancelMetric)=\"clearAllPopover()\" (saveAndClose)=\"onUpdateMetric(item, $event, typeMetric.CLOSE)\"\n                [columns]=\"columns\" [metricColumn]=\"item\" [metricIndex]=\"index\">\n              </app-metric-popover>\n            </ng-template>\n          </div>\n        </div>\n\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"Lowest\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                lowestColumns.length > 0\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of lowestColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeMetric(item, typeMetric.LOWEST)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editLowestColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editLowestColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\"\n              >\n                {{ item | metricFormatter }}\n              </span>\n            </div>\n            <div\n              *ngIf=\"lowestColumns.length === 0\"\n              (onShown)=\"onPopoverShown(lowestColumnPop)\"\n              #lowestColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addLowestColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"right\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_METRIC\" | translate\n              }}</span>\n\n                        <ng-template #addLowestColumnTemplate>\n                          <app-metric-popover (cancelMetric)=\"lowestColumnPop.hide()\" (saveMetric)=\"onAddMetric($event, typeMetric.LOWEST)\"\n                            (saveAndClose)=\"onSaveMetric($event, typeMetric.LOWEST)\" [columns]=\"columns\" [metricIndex]=\"columns.length\">\n                          </app-metric-popover>\n                        </ng-template>\n            </div>\n  \n            <ng-template\n              #editLowestColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\">\n              <app-metric-popover\n                (cancelMetric)=\"clearAllPopover()\"\n                (saveAndClose)=\"onUpdateMetric(item, $event, typeMetric.LOWEST)\"\n                [columns]=\"columns\"\n                [metricColumn]=\"item\"\n                [metricIndex]=\"index\"\n              >\n              </app-metric-popover>\n            </ng-template>\n          </div>\n        </div>\n\n        <div class=\"wrapper-filter-metric metric\">\n          <label class=\"label-visualize\"\n            >{{ \"Highest\" | translate\n            }}<i\n              class=\"fa fa-exclamation custom-icon-exclamation\"\n              aria-hidden=\"true\"\n              tooltip=\"{{ 'VISUALIZE.CANNOT_EMPTY' | translate }}\"\n              aria-describedby=\"tooltip-4\"\n              [ngStyle]=\"\n                highestColumns.length > 0\n                  ? { border: '1px solid #212529', color: '#212529' }\n                  : { border: '1px solid #dc3545', color: '#dc3545' }\n              \"\n            ></i\n          ></label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of highestColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeMetric(item, typeMetric.HIGHEST)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editHighestColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [autofocus]=\"isAutoFocus\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editHighestColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"right\"\n              >\n                {{ item | metricFormatter }}\n              </span>\n            </div>\n            <div\n              *ngIf=\"highestColumns.length === 0\"\n              (onShown)=\"onPopoverShown(highestColumnPop)\"\n              #highestColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addHighestColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"right\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_METRIC\" | translate\n              }}</span>\n                <ng-template #addHighestColumnTemplate>\n                  <app-metric-popover (cancelMetric)=\"highestColumnPop.hide()\" (saveMetric)=\"onAddMetric($event, typeMetric.HIGHEST)\"\n                    (saveAndClose)=\"onSaveMetric($event, typeMetric.HIGHEST)\" [columns]=\"columns\" [metricIndex]=\"columns.length\">\n                  </app-metric-popover>\n                </ng-template>\n            </div>\n          \n            <ng-template\n              #editHighestColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-metric-popover\n                (cancelMetric)=\"clearAllPopover()\"\n                (saveAndClose)=\"onUpdateMetric(item, $event, typeMetric.HIGHEST)\"\n                [columns]=\"columns\"\n                [metricColumn]=\"item\"\n                [metricIndex]=\"index\"\n              >\n              </app-metric-popover>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n      <!-- metric -->\n\n      <div class=\"form-group\">\n        <label class=\"label-visualize\">{{\n          \"VISUALIZE.ROW_LIMIT\" | translate\n        }}</label>\n        <input\n          type=\"number\"\n          formControlName=\"row_limit\"\n          placeholder=\"{{ 'VISUALIZE.ENTER_VALUE' | translate }}\"\n        />\n      </div>\n\n      <!-- filter -->\n      <div class=\"form-group\">\n        <div class=\"wrapper-filter-metric filter\">\n          <label class=\"label-visualize\">{{\n            \"VISUALIZE.FILTERS\" | translate\n          }}</label>\n          <div class=\"form-control-wrapper\">\n            <div\n              *ngFor=\"let item of filterColumns; let i = index\"\n              class=\"form-control-item editable\"\n            >\n              <span class=\"item-button-remove\"\n                ><i (click)=\"removeFilter(item)\" class=\"fa fa-remove\"></i\n              ></span>\n              <span\n                #editFilterColumnPop=\"bs-popover\"\n                (click)=\"onClickEditPopover()\"\n                [adaptivePosition]=\"true\"\n                [outsideClick]=\"outsideClick\"\n                [popoverContext]=\"{ item: item, index: i }\"\n                [popover]=\"editFilterColumnTemplate\"\n                boundariesElement=\"viewport\"\n                class=\"item-label\"\n                container=\"body\"\n                containerClass=\"v-popover\"\n                placement=\"top\"\n              >\n                {{ item | filterFormatter }}\n              </span>\n            </div>\n            <div\n              (onShown)=\"onPopoverShown(filterColumnPop)\"\n              #filterColumnPop=\"bs-popover\"\n              [adaptivePosition]=\"true\"\n              [outsideClick]=\"outsideClick\"\n              [popover]=\"addFilterColumnTemplate\"\n              boundariesElement=\"viewport\"\n              class=\"form-control-item-add\"\n              container=\"body\"\n              containerClass=\"v-popover\"\n              placement=\"top\"\n            >\n              <span class=\"control-item-icon\"><i class=\"fa fa-plus\"></i></span>\n              <span class=\"control-item-text\">{{\n                \"VISUALIZE.ADD_FILTER\" | translate\n              }}</span>\n            </div>\n            <ng-template #addFilterColumnTemplate>\n              <app-filter-popover\n                (cancel)=\"filterColumnPop.hide()\"\n                (save)=\"onSaveFilter($event)\"\n                [columns]=\"columns\"\n                (saveClose)=\"onSaveCloseFilter($event)\"\n                [filterIndex]=\"columns.length\"\n              >\n              </app-filter-popover>\n            </ng-template>\n            <ng-template\n              #editFilterColumnTemplate\n              let-index=\"index\"\n              let-item=\"item\"\n            >\n              <app-filter-popover\n                (cancel)=\"clearAllPopover()\"\n                (save)=\"onUpdateFilter(item, $event)\"\n                [columns]=\"columns\"\n                [filterColumn]=\"item\"\n                [filterIndex]=\"index\"\n              >\n              </app-filter-popover>\n            </ng-template>\n          </div>\n        </div>\n      </div>\n      <!-- filter -->\n    </form>\n  </tab>\n  <tab\n    heading=\"{{ 'VISUALIZE.CUSTOMIZE' | translate }}\"\n    class=\"custom__control-tab\"\n  >\n    <form [formGroup]=\"formCustomize\" class=\"custom__control-form\">\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"Number formatter\" | translate\n        }}</label>\n        <ng-select\n          #columnName\n          formControlName=\"formatter\"\n          [items]=\"formatterOpts\"\n          [multiple]=\"false\"\n          [clearable]=\"false\"\n          bindLabel=\"label\"\n          bindValue=\"id\"\n          placeholder=\"{{ 'number formatter' | translate }}\"\n        >\n        </ng-select>\n      </div>\n      <div class=\"form-group-customize\">\n        <label class=\"label-visualize\">{{\n          \"Moving average\" | translate\n        }}</label>\n        <ng-select\n          #columnName\n          formControlName=\"ma\"\n          [items]=\"values\"\n          [addTag]=\"addValue\"\n          [multiple]=\"true\"\n          [clearable]=\"false\"\n          bindLabel=\"name\"\n          placeholder=\"{{ 'enter number' | translate }}\"\n        >\n        </ng-select>\n      </div>\n      <div class=\"wrap-group-customize\">\n        <div class=\"form-group-customize form-group-checkbox\">\n          <input type=\"checkbox\" formControlName=\"show_legend\" id=\"show-legend\" />\n          <label class=\"label-visualize\" for=\"show-legend\">{{\n            \"VISUALIZE.SHOW_LEGEND\" | translate\n          }}</label>\n        </div>\n        <div class=\"form-group-customize form-group-checkbox\">\n          <input type=\"checkbox\" formControlName=\"dataZoom\" id=\"data-zoom\" />\n          <label class=\"label-visualize\" for=\"data-zoom\">{{\n            \"VISUALIZE.DATA_ZOOM\" | translate\n          }}</label>\n        </div>\n      </div>\n      <div class=\"wrap-group-customize\">\n        <div class=\"form-group-customize form-group-checkbox\">\n          <input type=\"checkbox\" formControlName=\"markPoint\" id=\"markPoint\" />\n          <label class=\"label-visualize\" for=\"markPoint\">{{\n            \"mark point\" | translate\n          }}</label>\n        </div>\n        <div class=\"form-group-customize form-group-checkbox\">\n          <input type=\"checkbox\" formControlName=\"markLine\" id=\"markLine\" />\n          <label class=\"label-visualize\" for=\"markLine\">{{\n            \"mark line\" | translate\n          }}</label>\n        </div>\n      </div>\n    </form>\n  </tab>\n</tabset>\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartService } from \"../chart.service\";\nimport { Subscription } from \"rxjs\";\nimport { ActivatedRoute, NavigationEnd, Router } from \"@angular/router\";\nimport { Location } from \"@angular/common\";\nimport { ChartItem, DatasetItem } from \"../../model/chart\";\nimport {\n  CHART,\n  CHART_PLUGIN,\n  CUSTOM,\n  LIST,\n  MAPPING,\n  TEMPLATE,\n  VIEW,\n  CHART_HTML_TEMPLATE,\n} from \"../constants/constants\";\nimport { Store } from \"@ngrx/store\";\nimport { filter } from 'rxjs/operators';\nimport { IAppState } from \"../../core/store/state/app.state\";\nimport { NgSelectComponent } from \"@ng-select/ng-select\";\nimport {\n  IAttribute,\n  IParamsChart,\n  IParamsMetadata,\n  IQueryContext,\n  IResMetadata,\n  IResQueryParams,\n  IVizType,\n  EVisualize,\n  IResChart,\n  SQLSchema,\n} from \"../model/template\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { decode, encode } from \"js-base64\";\nimport { IDataset, IMessage } from \"../model/chart\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n  EVizType,\n  IParamsSaveChart,\n  IResolve,\n  ISelectMetadata,\n  KeyValue,\n} from \"../model/chart-custom\";\nimport { ChartHTMLTemplate } from \"../chart-html-template/chart-html-template.component\";\nimport { ChartCustomBar } from \"../chart-custom-bar/chart-custom-bar.component\";\nimport { ShareService } from \"../../share/share.service\";\nimport { ChartPublishDialogComponent } from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport * as RightbarActions from \"../../core/store/actions/rightbar.action\";\nimport { ChartDeleteComponent } from \"../chart-delete/chart-delete.component\";\nimport * as Publish_Action from \"../../core/store/actions/publish.action\";\nimport { rightbarSelector } from \"../../core/store/selectors/rightbar.selector\";\nimport { ViewDataChartComponent } from \"../../layout-common/view-data-chart/view-data-chart.component\";\nimport { TabDirective } from \"ngx-bootstrap/tabs\";\nimport {\n  IAttributeHTML,\n  IBase64HTML,\n  IParamsGraphDesign,\n} from \"../model/html-template\";\nimport { ChartCustomTable } from \"../chart-custom-table/chart-custom-table.component\";\nimport { ChartBarV2 } from \"../chart-bar-v2/chart-bar-v2.component\";\nimport { ChartMixed } from \"../chart-mixed/chart-mixed.component\";\nimport { ChartCandlestick } from \"../chart-candlestick/chart-candlestick.component\";\nimport { CustomChartAction } from \"../model/chart-action\";\n\n@Component({\n  selector: \"app-chart-custom\",\n  templateUrl: \"./chart-custom.component.html\",\n  styleUrls: [\"./chart-custom.component.scss\"],\n})\nexport class ChartCustomComponent implements OnInit, AfterViewInit, OnDestroy {\n  @ViewChild(\"organSelect\") ngOrgan: NgSelectComponent;\n  @ViewChild(\"keyword\") keywordInput!: ElementRef;\n  @ViewChild(\"iframeVisualizeCustom\") iframeVisualizeCustom: ElementRef;\n  @ViewChild(\"contentHTMLRef\") contentHTMLRef: ElementRef;\n  @ViewChild(ChartHTMLTemplate) chartHTMLTemplate: ChartHTMLTemplate;\n  @ViewChild(ChartCustomBar) chartCustomBar: ChartCustomBar;\n  @ViewChild(ChartCustomTable) chartCustomTable: ChartCustomTable;\n  @ViewChild(ChartBarV2) chartBarV2: ChartBarV2;\n  @ViewChild(ChartMixed) chartMixed: ChartMixed;\n  @ViewChild(ChartCandlestick) chartCandlestick: ChartCandlestick;\n  @ViewChild(ChartPublishDialogComponent)\n  dialogPublish!: ChartPublishDialogComponent;\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild(ViewDataChartComponent) dataChart!: ViewDataChartComponent;\n\n  plugin = iNet.getPluginManager();\n  isPlugin: boolean = false;\n  dsType: string;\n  dsCategory: string;\n  dsTable: string;\n  chart: IResChart;\n  uuidChart: string;\n  schemas: SQLSchema;\n  schemasColumn: SQLSchema = {};\n  columns: ISelectMetadata[] = [];\n  totalColums: number;\n  isShowColl: boolean = false;\n  hideShowDataset: boolean = false;\n  attribute: IAttribute = {};\n  queryContext: IQueryContext = {};\n  loadingSuccess: boolean = false;\n  formChart: FormGroup = this.fb.group({\n    name: [null, Validators.required],\n  });\n  formTemplate: FormGroup = this.fb.group({\n    templateName: [null, Validators.required],\n    template: [null],\n  });\n  valid: boolean = false;\n  typeSubmit: string;\n  paramsChart: IParamsChart;\n  urlVisualizeChart: string = iNet.getPUrl(\"visualcommon/page/visualize-chart\");\n  urlImgLoading: string = this.coreService.getImageUrlFromModule(\n    \"loading.gif\",\n    \"analytics\"\n  );\n  queriesData: any | KeyValue = undefined;\n  formData: any | KeyValue;\n  customize: any | KeyValue;\n  queries: any | KeyValue;\n  showDefault: boolean = true;\n  vizType: IVizType;\n  eventResizeVisualize: EventListenerOrEventListenerObject;\n  getMessageApp: EventListenerOrEventListenerObject;\n  resizeTimeout: any;\n  width: number;\n  height: number;\n  thumbnail: string;\n  desc: string;\n  title: string;\n  vizTypeChart: string;\n  EVizType: any = EVizType;\n  private actionTranslate: any = {};\n  private readonly translateSubscription: Subscription;\n\n  private subRouter: Subscription;\n\n  //\n  actionCurrent: string = \"\";\n  isViewPublish: boolean = false;\n  action = CustomChartAction;\n  rightBarSub$?: Subscription;\n  isOpenRightBar: boolean = false;\n  isEditInfo: boolean = false;\n  isViewAction: boolean = false;\n  datasets: IResMetadata;\n  tabCurrent: string = \"\";\n  showDefaultGird: string = this.action.NO_APPLIED;\n  viewDataChart: any;\n\n  //code editor\n  editorOptions = { theme: \"vs-dark\", language: \"html\" };\n  code: string = \"\";\n  valueEditor: string;\n  uuidHTML: string;\n  contentHTML: string;\n\n  constructor(\n    private chartService: ChartService,\n    private router: Router,\n    private route: ActivatedRoute,\n    private location: Location,\n    private shareService: ShareService,\n    private notification: NotificationService,\n    private coreService: CoreService,\n    private store: Store<IAppState>,\n    private translate: TranslateService,\n    private fb: FormBuilder\n  ) {\n    this.route.queryParams.subscribe((res: IResQueryParams) => {\n      this.dsType = res.type;\n      this.dsCategory = res.category;\n      this.dsTable = res.name;\n      this.uuidChart = res.uuid;\n      this.vizTypeChart = res.viztype;\n      this.thumbnail = `/${res.thumbnail}`;\n      this.uuidHTML = res.uuid_html;\n      this.vizType = {\n        name: res.namechart,\n        vizType: res.viztype,\n        html: res.html,\n      };\n      this.isViewPublish = res.hasOwnProperty(\"isViewPublish\");\n      if (!res) {\n        this.isViewPublish = false;\n      }\n    });\n    this.backBar();\n    this.rightBarSub$ = this.store.select(rightbarSelector).subscribe((res) => {\n      res ? (this.isOpenRightBar = true) : null;\n      this.isEditInfo = res;\n      if (!!this.dataChart) {\n        this.dataChart.onResize();\n      }\n    });\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n    if (localStorage.getItem(\"isShow\")) {\n      this.hideShowDataset = JSON.parse(localStorage.getItem(\"isShow\")).isShow;\n    }\n    this.router.events\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe((e: any) => {\n        this.isPlugin = (e.url as string)?.includes('chart-plugin');\n      });\n  }\n\n  ngOnDestroy() {\n    if (this.rightBarSub$) {\n      this.backBar(false, true);\n      this.rightBarSub$.unsubscribe();\n    }\n    window.removeEventListener(\"message\", this.getMessageApp, false);\n    window.removeEventListener(\"resize\", this.eventResizeVisualize, false);\n    const parent = document.getElementById(\"custom__wrap\");\n    if (parent) {\n      parent.removeEventListener(\"resize\", this.eventResizeVisualize, false);\n    }\n  }\n\n  ngOnInit(): void {\n    this.getMessageApp = this.getMessageCustom.bind(this);\n    this.eventResizeVisualize = this.eventResizeScreen.bind(this);\n    window.addEventListener(\"message\", this.getMessageApp, false);\n    const parent = document.getElementById(\"custom__wrap\");\n    if (parent) {\n      parent.addEventListener(\"resize\", this.eventResizeVisualize, false);\n    }\n    if (this.dsType && this.dsCategory && this.dsTable) {\n      this.getMetadata();\n    }\n    this.actionCurrent = this.action.EXPLORE;\n    if (this.uuidHTML) {\n      this.loadGraphDesign();\n    }\n  }\n\n  getValid(valid: boolean) {\n    setTimeout(() => {\n      this.valid = valid;\n    }, 1);\n  }\n\n  loadGraphDesign() {\n    this.chartService\n      .graphDesignCustomLoad(this.uuidHTML)\n      .subscribe((res: IParamsGraphDesign) => {\n        if (typeof res.attribute === \"object\") {\n          if (typeof res.attribute.base64 === \"string\") {\n            res.attribute.base64 = JSON.parse(\n              decode(res.attribute.base64)\n            ) as IBase64HTML;\n            this.thumbnail = res.attribute.base64.thumbnail;\n            this.contentHTML = res.attribute.base64.html;\n          }\n        }\n      });\n  }\n\n  getCustomize(customize: any | KeyValue) {\n    this.customize = customize;\n    if (this.vizType.vizType !== CHART_HTML_TEMPLATE) {\n      if (this.formData) {\n        if (JSON.stringify(this.customize) !== JSON.stringify(this.formData)) {\n          this.formData = this.customize;\n          this.sendDataVisualizeChart();\n        }\n      }\n    }\n  }\n\n  getFactor(queries: any | KeyValue) {\n    this.queries = queries;\n    this.queriesData = undefined;\n    this.showDefault = true;\n    if (this.tabCurrent === this.action.RESULT) {\n      this.pathResult();\n    }\n  }\n\n  ngAfterViewInit(): void {\n    const iFrame: HTMLIFrameElement = this.iframeVisualizeCustom.nativeElement;\n    iFrame.onload = () => {\n      this.iframeLoadDone();\n    };\n  }\n\n  onHideShowDataset() {\n    this.hideShowDataset = !this.hideShowDataset;\n    localStorage.setItem(\n      \"isShow\",\n      JSON.stringify({ isShow: this.hideShowDataset })\n    );\n    this.sendDataVisualizeChart();\n  }\n\n  iframeLoadDone() {\n    if (this.uuidChart) {\n      this.loadChart();\n      setTimeout(() => {\n        this.isViewAction = true;\n      });\n    }\n    if (this.dsType && this.dsCategory && this.dsTable) {\n      this.getMetadata();\n    }\n  }\n\n  encodeBase64(str: string) {\n    return window.btoa(unescape(encodeURIComponent(str)));\n  }\n\n  decodeBase64(str: string) {\n    return decodeURIComponent(escape(window.atob(str)));\n  }\n\n  getImageUrl(__value: string) {\n    let __url: string;\n    if (__value) {\n      __url = this.coreService.getImageUrlFromModule(__value, \"visualcommon\");\n    }\n    return __url;\n  }\n\n  getMetadata() {\n    let data: IParamsMetadata = {\n      type: this.dsType,\n      category: this.dsCategory,\n      name: this.dsTable,\n    };\n    this.chartService.getOneDataset(data).subscribe((res: IResMetadata) => {\n      this.datasets = res;\n      this.schemas = res.schemas;\n      this.schemasColumn = res.schemas;\n      this.totalColums = Object.keys(res.schemas).length;\n      this.loadingSuccess = true;\n      this.columns = Object.keys(res.schemas).map((col: string) => ({\n        name: col,\n        value: col,\n        type: res.schemas[col],\n      }));\n    });\n  }\n\n  getMessageCustom(event: any) {\n    const data: IMessage = event.data;\n    if (data.signFrom !== EVisualize.CHART_VISUAL) {\n      return;\n    }\n    let result: any;\n    if (typeof data.result === \"string\") {\n      result = JSON.parse(data.result);\n    } else {\n      result = data.result;\n    }\n    switch (event.data.eventName) {\n      case EVisualize.SEND_LOAD_JS_DONE:\n        window.addEventListener(\"resize\", this.eventResizeVisualize, false);\n        break;\n      default:\n        break;\n    }\n  }\n\n  sendDataVisualizeChart() {\n    setTimeout(() => {\n      const parent = document.getElementById(\"custom__wrap\");\n      if (parent) {\n        this.width = parent.offsetWidth;\n        this.height = parent.offsetHeight;\n        let message: IMessage = {\n          eventName: EVisualize.SEND_DATA_TO_VISUAL_CHART,\n          signFrom: EVisualize.ANALYTICS_APP,\n          result: JSON.stringify({\n            width: this.width - 30,\n            height: this.height - 50,\n            vizType: this.vizType,\n            formData: this.formData,\n            queriesData: this.queriesData,\n          }),\n        };\n        if (this.queriesData) {\n          this.sendMessage(message);\n        }\n      }\n    }, 500);\n  }\n\n  eventResizeScreen() {\n    clearTimeout(this.resizeTimeout);\n    this.resizeTimeout = setTimeout(() => {\n      const parent = document.getElementById(\"custom__wrap\");\n      if (parent) {\n        if (\n          this.width !== parent.offsetWidth ||\n          this.height !== parent.offsetHeight\n        ) {\n          if (this.queriesData) {\n            this.sendDataVisualizeChart();\n          }\n        }\n      }\n    }, 500);\n  }\n\n  //send message for iframe\n  sendMessage(message: IMessage) {\n    const iframe = document.getElementById(\n      \"custom-iframe\"\n    ) as HTMLIFrameElement;\n    if (iframe) {\n      this.plugin.sendMessageTo(message, iframe.contentWindow);\n    }\n  }\n\n  sendScriptToVisualChart() {\n    if (this.vizType.html) {\n      let message: IMessage = {\n        eventName: EVisualize.SEND_SCRIPT,\n        signFrom: EVisualize.ANALYTICS_APP,\n        result: JSON.stringify({ scriptUrl: this.vizType.html }),\n      };\n      this.sendMessage(message);\n    }\n  }\n\n  onApply() {\n    if (this.valid) {\n      this.queriesData = undefined;\n      this.showDefault = false;\n      if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n        this.chartHTMLTemplate\n          .getDataVizCustom({\n            type: this.dsType,\n            category: this.dsCategory,\n            table: this.dsTable,\n          })\n          .then((res: IResolve) => {\n            this.queriesData = res.queriesData;\n            this.chartHTMLTemplate.uuidChart = \"\";\n            if (this.tabCurrent === this.action.RESULT) {\n              this.pathResult();\n            }\n          });\n      } else {\n        switch (this.vizType.vizType) {\n          case EVizType.BAR_COMPARE:\n            this.sendScriptToVisualChart();\n            this.chartCustomBar\n              .getDataVizCustom({\n                type: this.dsType,\n                category: this.dsCategory,\n                table: this.dsTable,\n              })\n              .then((res: IResolve) => {\n                this.queriesData = res.queriesData;\n                this.formData = res.formData;\n                if (this.tabCurrent === this.action.RESULT) {\n                  this.pathResult();\n                }\n                this.sendDataVisualizeChart();\n              })\n              .catch((err) => console.log(err));\n            break;\n          case EVizType.MIXED:\n            this.sendScriptToVisualChart();\n            this.chartMixed\n              .getDataVizCustom({\n                type: this.dsType,\n                category: this.dsCategory,\n                table: this.dsTable,\n              })\n              .then((res: IResolve) => {\n                this.queriesData = res.queriesData;\n                this.formData = res.formData;\n                if (this.tabCurrent === this.action.RESULT) {\n                  this.pathResult();\n                }\n                this.sendDataVisualizeChart();\n              })\n              .catch((err) => console.log(err));\n            break;\n          case EVizType.CANDLESTICK:\n            this.sendScriptToVisualChart();\n            this.chartCandlestick.getDataVizCustom({\n              type: this.dsType,\n              category: this.dsCategory,\n              table: this.dsTable,\n            }).then((res: IResolve) => {\n              this.queriesData = res.queriesData;\n              this.formData = res.formData;\n              if (this.tabCurrent === this.action.RESULT) {\n                this.pathResult();\n              }\n              this.sendDataVisualizeChart();\n            }).catch(err => console.log(err))\n            break;  \n          case EVizType.BAR_COMPARE:\n            this.sendScriptToVisualChart();\n            this.chartCustomBar\n              .getDataVizCustom({\n                type: this.dsType,\n                category: this.dsCategory,\n                table: this.dsTable,\n              })\n              .then((res: IResolve) => {\n                this.queriesData = res.queriesData;\n                this.formData = res.formData;\n                if (this.tabCurrent === this.action.RESULT) {\n                  this.pathResult();\n                }\n                this.sendDataVisualizeChart();\n              })\n              .catch((err) => console.log(err));\n            break;\n          case EVizType.BAR_V2:\n            this.sendScriptToVisualChart();\n            this.chartBarV2\n              .getExpVizCustom({\n                type: this.dsType,\n                category: this.dsCategory,\n                table: this.dsTable,\n              })\n              .then((res: IResolve) => {\n                this.queriesData = res.queriesData;\n                this.formData = res.formData;\n                if (this.tabCurrent === this.action.RESULT) {\n                  this.pathResult();\n                }\n                this.sendDataVisualizeChart();\n              })\n              .catch((err) => console.log(err));\n            break;\n          case EVizType.TABLE_CUSTOM:\n            this.sendScriptToVisualChart();\n            this.chartCustomTable\n              .getDataVizCustom({\n                type: this.dsType,\n                category: this.dsCategory,\n                table: this.dsTable,\n              })\n              .then((res: IResolve) => {\n                this.queriesData = res.queriesData;\n                this.formData = res.formData;\n                if (this.tabCurrent === this.action.RESULT) {\n                  this.pathResult();\n                }\n                this.sendDataVisualizeChart();\n              });\n            break;\n          default:\n            break;\n        }\n      }\n    }\n  }\n\n  onSave() {\n    if (!this.formChart.valid) {\n      return;\n    }\n    const dataSource = {\n      type: this.dsType,\n      category: this.dsCategory,\n      table: this.dsTable,\n    };\n    this.attribute[\"dataSource\"] = dataSource;\n    this.attribute.formData = this.customize;\n    this.attribute.queries = this.queries;\n    this.attribute.vizType = this.vizType;\n    this.attribute.schemas = this.schemas;\n    this.attribute.columns = this.columns;\n    this.attribute.typeSubmit = \"custom\";\n    this.attribute.nameChart = this.vizType.name;\n    this.queryContext.form_data = this.customize;\n    this.queryContext.queries = this.queries;\n    if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n      this.attribute.uuidHTML = this.uuidHTML;\n      this.attribute.contentHTML = (\n        this.contentHTMLRef.nativeElement as HTMLElement\n      ).innerHTML;\n    }\n    this.queryContext.formData = { ...this.queries, dataSource };\n    const params: IParamsSaveChart = {\n      name: this.formChart.controls[\"name\"].value,\n      title: this.title ? this.title : this.formChart.controls[\"name\"].value,\n      desc: this.desc,\n      dsType: this.dsType,\n      dsCategory: this.dsCategory,\n      dsTable: this.dsTable,\n      type: this.vizType.vizType,\n      typeName: this.vizType.name,\n      thumbnailUri: this.thumbnail,\n      attribute: encode(JSON.stringify(this.attribute)),\n      queryContext: encode(JSON.stringify(this.queryContext)),\n    };\n\n    if (!this.uuidChart) {\n      this.chartService.addChart(params).subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          this.notification.showMessage(\n            this.actionTranslate[\"CREATE_CHART_SUCCESS\"],\n            \"success\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n          this.isViewAction = true;\n          this.uuidChart = result.uuid;\n          this.chart = JSON.parse(JSON.stringify(result));\n        } else {\n          this.notification.showMessage(\n            this.actionTranslate[\"CREATE_CHART_FAIL\"],\n            \"error\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n        }\n      });\n    } else {\n      params[\"uuid\"] = this.uuidChart;\n      this.chartService.chartUpdate(params).subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          this.notification.showMessage(\n            this.actionTranslate[\"UPDATE_CHART_SUCCESS\"],\n            \"success\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n          this.chart = JSON.parse(JSON.stringify(result));\n        } else {\n          this.notification.showMessage(\n            this.actionTranslate[\"UPDATE_CHART_FAIL\"],\n            \"error\",\n            this.actionTranslate[\"NOTIFICATION\"]\n          );\n        }\n      });\n    }\n  }\n\n  loadChart() {\n    this.queriesData = undefined;\n    this.showDefault = false;\n    this.chartService\n      .loadChart({ uuid: this.uuidChart })\n      .subscribe((res: IResChart) => {\n        this.valid = true;\n        this.chart = res;\n        this.dsType = res.dsType;\n        this.dsCategory = res.dsCategory;\n        this.dsTable = res.dsTable;\n        this.title = res.title;\n        this.desc = res.desc;\n        this.vizTypeChart = res.type;\n        this.formChart.controls[\"name\"].setValue(res.name);\n        this.thumbnail = res.thumbnailUri;\n        this.getMetadata();\n        this.attribute = JSON.parse(decode(res.attribute)) as IAttribute;\n\n        this.vizType = this.attribute.vizType;\n        console.log('this.vizType:', this.vizType);\n        \n        this.queryContext = JSON.parse(\n          decode(res.queryContext)\n        ) as IQueryContext;\n        setTimeout(() => {\n          if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n            this.contentHTML = this.attribute.contentHTML;\n          }\n          this.setValueToControl();\n        }, 200);\n      });\n  }\n\n  setValueToControl() {\n    if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n      this.customize = this.attribute.formData;\n      this.chartHTMLTemplate.setRawValue(this.attribute).then((res) => {\n        this.onApply();\n      });\n    } else {\n      switch (this.vizTypeChart) {\n        case EVizType.BAR_COMPARE:\n          this.chartCustomBar\n            .setRawValue(\n              this.attribute.queries,\n              this.attribute.formData,\n              this.attribute.columns\n            )\n            .then((res) => {\n              setTimeout(() => {\n                this.onApply();\n              }, 100);\n            });\n          break;\n        case EVizType.BAR_V2:\n          this.chartBarV2\n            .setRawValue(this.attribute.formData, this.attribute.columns)\n            .then((res) => {\n              setTimeout(() => {\n                this.onApply();\n              }, 100);\n            });\n          break;\n        case EVizType.MIXED:\n          this.chartMixed\n            .setRawValue(this.attribute.formData, this.attribute.columns)\n            .then((res) => {\n              setTimeout(() => {\n                this.onApply();\n              }, 100);\n            });\n          break;\n        case EVizType.CANDLESTICK:\n          this.chartCandlestick\n            .setRawValue(this.attribute.formData, this.attribute.columns)\n            .then((res) => {\n              setTimeout(() => {\n                this.onApply();\n              }, 100);\n            });\n          break;  \n        case EVizType.TABLE_CUSTOM:\n          this.chartCustomTable\n            .setRawValue(\n              this.attribute.queries,\n              this.attribute.formData,\n              this.attribute.columns\n            )\n            .then((res) => {\n              setTimeout(() => {\n                this.onApply();\n              }, 100);\n            });\n          break;\n        default:\n          break;\n      }\n    }\n  }\n\n  back() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  onChangeDataset(dataset: DatasetItem) {\n    this.showDefault = true;\n    this.queriesData = undefined;\n    this.dsType = dataset.type;\n    this.dsCategory = dataset.category;\n    this.dsTable = dataset.name;\n    this.paramsChart = {\n      ...this.paramsChart,\n      datasource: {\n        type: dataset.type,\n        category: dataset.category,\n        table: dataset.name,\n      },\n    };\n    this.getMetadata();\n  }\n\n  search(event: Event) {\n    if ((event.target as HTMLInputElement).value) {\n      let obj = {};\n      Object.entries(this.schemasColumn)\n        .filter((value) => {\n          return value[0]\n            .toLowerCase()\n            .includes((event.target as HTMLInputElement).value);\n        })\n        .map((value) => {\n          return (obj[value[0]] = value[1]);\n        });\n      this.schemasColumn = Object.assign(obj);\n    } else {\n      this.schemasColumn = this.schemas;\n    }\n  }\n\n  onCopyPath() {\n    let uuid = this.isViewPublish ? this.chart.uuid : this.chart.sharedUuid;\n    this.shareService.copyPath(uuid).subscribe((status) => {\n      let key = status\n        ? \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS\"\n        : \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD\";\n      this.notification.showMessage(\n        this.translate.instant(key),\n        status ? \"success\" : \"error\",\n        \"Visualize\"\n      );\n    });\n  }\n\n  onView() {\n    this.actionCurrent = this.action.VIEW;\n    this.router.navigate([\"/\", CHART, CUSTOM, VIEW], {\n      queryParams: {\n        uuid: this.chart.uuid,\n      },\n    });\n  }\n\n  editInfoChart() {\n    this.store.dispatch(RightbarActions.showRightbar({ isShowRightbar: true }));\n  }\n\n  onPublishAction() {\n    this.dialogPublish.showDialogChange(this.chart);\n  }\n\n  onExplore() {\n    this.actionCurrent = this.action.EXPLORE;\n    this.router.navigate([`/${CHART}/mapping`], {\n      queryParams: {\n        uuid: this.chart.uuid,\n      },\n    });\n  }\n\n  deleteChart() {\n    this.chartDelete.onShowDialog(this.chart);\n  }\n\n  onChart() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  updateSuccess(event: any) {\n    const item = JSON.parse(JSON.stringify(this.chart));\n    item.sharedUuid = event.uuid || undefined;\n    if (event.uuid) {\n      this.store.dispatch(\n        Publish_Action.sharedUuid({ sharedUuid: event.uuid })\n      );\n      this.chart = JSON.parse(JSON.stringify(item));\n    } else {\n      if (this.isViewPublish) {\n        this.location.back();\n        this.isViewPublish = false;\n      } else {\n        this.store.dispatch(\n          Publish_Action.sharedUuid({ sharedUuid: undefined })\n        );\n        this.chart = JSON.parse(JSON.stringify(item));\n      }\n    }\n  }\n\n  backBar(isOpen: boolean = false, onDestroy: boolean = false) {\n    this.isOpenRightBar = isOpen;\n    this.store.dispatch(\n      RightbarActions.showRightbar({ isShowRightbar: false })\n    );\n    if (!!this.dataChart && !onDestroy) {\n      this.dataChart.onResize();\n    }\n    if (this.queriesData) {\n      this.sendDataVisualizeChart();\n    }\n  }\n\n  onTemplate() {\n    this.actionCurrent = this.action.TEMPLATE;\n    this.router.navigate([\"/\", CHART, \"create\", TEMPLATE], {\n      queryParams: {\n        uuid: this.chart.uuid,\n      },\n    });\n  }\n\n  onDelete(item: ChartItem) {\n    this.chartDelete.onShowDialog(item);\n  }\n\n  editSuccess(value: ChartItem) {\n    this.formChart.get(\"name\").patchValue(value.name);\n  }\n\n  onSelect(event: TabDirective) {\n    this.tabCurrent = event.id;\n    switch (event.id) {\n      case \"chart\":\n        this.sendDataVisualizeChart();\n        break;\n      case this.action.RESULT:\n        this.pathResult();\n        break;\n      case \"origin\":\n        this.viewDataChart = {\n          name: this.datasets?.name,\n          category: this.datasets?.category,\n          type: this.datasets?.type,\n          id: \"data-source\",\n          schemas: this.datasets?.schemas,\n        };\n        break;\n      default:\n        break;\n    }\n  }\n\n  pathResult() {\n    if (!iNet.isEmpty(this.queriesData)) {\n      if (!iNet.isEmpty(this.queriesData[0].rawColnames) || !iNet.isEmpty(this.queriesData[0].rawData)) {\n        this.showDefaultGird = this.action.APPLIED_DATA;\n      } else {\n        if (!iNet.isEmpty(this.queriesData)) {\n          this.showDefaultGird = this.action.APPLIED_DATA;\n          this.viewDataChart = this.queriesData;\n          return;\n        } else {\n          this.showDefaultGird = this.action.APPLIED_NO_DATA;\n        }\n      }\n      this.viewDataChart = {\n        schemas: this.queriesData[0]?.rawColnames || [],\n        data: this.queriesData[0]?.rawData || [],\n      };\n    } else {\n      this.showDefaultGird = this.action.NO_APPLIED;\n      this.viewDataChart = { schemas: [], data: []};\n    }\n  }\n\n  change(valueEditor: string) {\n    this.valueEditor = valueEditor;\n  }\n}\n","<div class=\"section__custom\">\n  <div *ngIf=\"!isPlugin\" class=\"custom__head\">\n    <ul\n      *ngIf=\"!isPlugin\"\n      class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\"\n      style=\"flex: 1\"\n    >\n      <li (click)=\"back()\" class=\"pointer\">\n        {{ \"VISUALIZE.CHART.FIELD.TITLE_CHART\" | translate }}\n      </li>\n      <li class=\"active font-weight-medium text-truncate\">\n        {{\n          uuidChart\n            ? formChart.get(\"name\").getRawValue() || \"\"\n            : (\"VISUALIZE.CHART.FIELD.ADD_NEW_CHART\" | translate)\n        }}\n      </li>\n    </ul>\n    <div class=\"custom__btn\" *ngIf=\"uuidChart\">\n      <div class=\"tabs-custom\">\n        <div\n          (click)=\"onView()\"\n          [class.active]=\"actionCurrent === action.VIEW\"\n          class=\"tab-item font-weight-medium\"\n        >\n          <span\n            [class.active]=\"actionCurrent.startsWith(action.VIEW)\"\n            class=\"fa fa-eye mr-1\"\n          ></span\n          ><span class=\"current\">{{\n            \"VISUALIZE.CHART.FIELD.VIEW\" | translate\n          }}</span>\n        </div>\n        <div\n          (click)=\"onExplore()\"\n          [class.active]=\"actionCurrent === action.EXPLORE\"\n          class=\"tab-item font-weight-medium\"\n        >\n          <span\n            [class.active]=\"actionCurrent.startsWith(action.EXPLORE)\"\n            class=\"fa fa-pencil mr-1\"\n          ></span\n          ><span class=\"current\">{{\n            \"VISUALIZE.CHART.FIELD.ACTION_EDIT\" | translate\n          }}</span>\n        </div>\n        <div\n          (click)=\"onTemplate()\"\n          [class.active]=\"actionCurrent === action.TEMPLATE\"\n          class=\"tab-item font-weight-medium\"\n          style=\"padding: 0 10px\"\n        >\n          <span\n            [class.active]=\"actionCurrent.startsWith(action.TEMPLATE)\"\n            class=\"fa fa-object-ungroup mr-1\"\n          ></span\n          ><span class=\"current\">{{\n            \"VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE\" | translate\n          }}</span>\n        </div>\n        <button\n          (click)=\"editInfoChart()\"\n          class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"\n        >\n          <i class=\"fa fa-pencil-square-o mr-2\" style=\"font-size: 15px\"></i\n          >{{ \"VISUALIZE.FIELD.EDIT_INFO\" | translate }}\n        </button>\n        <button\n          (click)=\"onPublishAction()\"\n          class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"\n        >\n          <i\n            [ngClass]=\"!chart?.sharedUuid ? 'fa-globe' : 'fa-link'\"\n            class=\"fa f-20 mr-2\"\n          ></i>\n          {{\n            !chart?.sharedUuid\n              ? (\"VISUALIZE.CHART.FIELD.ACTION_PUBLISH\" | translate)\n              : (\"VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH\" | translate)\n          }}\n        </button>\n        <button\n          (click)=\"onCopyPath()\"\n          *ngIf=\"chart?.sharedUuid\"\n          class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"\n        >\n          <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n          {{ \"VISUALIZE.CHART.FIELD.COPY_SCR\" | translate }}\n        </button>\n        <button\n          (click)=\"deleteChart()\"\n          class=\"btn btn-sm mx-1 btn-custom btn-custom-danger\"\n        >\n          <i class=\"fa fa-trash-o mr-2\"></i\n          >{{ \"VISUALIZE.CHART.FIELD.ACTION_DELETE\" | translate }}\n        </button>\n      </div>\n    </div>\n  </div>\n  <div class=\"custom__content\" [ngStyle]=\"isPlugin && { height: '100%' }\">\n    <div class=\"custom__wrap\" [class.spr]=\"isOpenRightBar\">\n      <div class=\"custom__name\">\n        <form [formGroup]=\"formChart\" class=\"custom__name-form\">\n          <input\n            type=\"text\"\n            formControlName=\"name\"\n            class=\"custom__name-input\"\n            placeholder=\"{{ 'VISUALIZE.CHART.FIELD.NAME_CHART' | translate }}\"\n          />\n        </form>\n        <div class=\"custom__name-btns\">\n          <button\n            [disabled]=\"!formChart.valid\"\n            (click)=\"onSave()\"\n            class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step\"\n            type=\"button\"\n          >\n            <i class=\"fa fa-save mr-1\"></i>\n            {{ \"VISUALIZE.FIELD.TITTLE.SAVE\" | translate }}\n          </button>\n          <button\n            (click)=\"backBar(!isOpenRightBar)\"\n            *ngIf=\"isViewAction && !isPlugin\"\n            class=\"btn-custom btn-custom-icon px-1\"\n          >\n            <i aria-hidden=\"true\" class=\"icon fa fa-columns\"></i>\n          </button>\n        </div>\n      </div>\n      <div class=\"custom__chart\">\n        <div\n          class=\"custom__dataset\"\n          [ngStyle]=\"hideShowDataset && { display: 'none' }\"\n        >\n          <div class=\"custom__dataset-title\">\n            <h3>Dataset</h3>\n            <button\n              (click)=\"onHideShowDataset()\"\n              placement=\"left\"\n              tooltip=\"{{ 'VISUALIZE.FIELD.HIDE.DATASET' | translate }}\"\n            >\n              <svg\n                fill=\"none\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                width=\"24\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n              >\n                <path\n                  clip-rule=\"evenodd\"\n                  d=\"M7.29 11.29L11.29 7.29C11.5437 7.03634 11.9134 6.93728 12.2599 7.03012C12.6064 7.12297 12.877 7.39362 12.9699 7.74012C13.0627 8.08663 12.9637 8.45634 12.71 8.71L10.41 11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H10.41L12.71 15.29C12.8993 15.4778 13.0058 15.7334 13.0058 16C13.0058 16.2666 12.8993 16.5222 12.71 16.71C12.5222 16.8993 12.2666 17.0058 12 17.0058C11.7334 17.0058 11.4778 16.8993 11.29 16.71L7.29 12.71C7.19896 12.6149 7.12759 12.5028 7.08 12.38C6.97998 12.1365 6.97998 11.8635 7.08 11.62C7.12759 11.4972 7.19896 11.3851 7.29 11.29ZM4 4C4.55229 4 5 4.44772 5 5V19C5 19.5523 4.55229 20 4 20C3.44772 20 3 19.5523 3 19V5C3 4.44772 3.44772 4 4 4Z\"\n                  fill=\"currentColor\"\n                  fill-rule=\"evenodd\"\n                />\n              </svg>\n            </button>\n          </div>\n          <app-dataset-select\n            *ngIf=\"loadingSuccess\"\n            [chartItem]=\"chart\"\n            (datasetItem)=\"onChangeDataset($event)\"\n            style=\"width: 100%\"\n          ></app-dataset-select>\n          <div class=\"custom__dataset-search\">\n            <span class=\"icon-search-pos\"\n              ><i class=\"icon-s17 icon-secondary icon-search\"></i\n            ></span>\n            <input\n              (keyup)=\"search($event)\"\n              class=\"form-control-superset input-search col-md-12 col-xs-12\"\n              placeholder=\"{{\n                'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND' | translate\n              }}\"\n              searchString\n              type=\"text\"\n            />\n          </div>\n          <div class=\"custom__dataset-columns collapse-box d-flex flex-column\">\n            <span\n              (click)=\"isShowColl = !isShowColl\"\n              [attr.aria-expanded]=\"!isShowColl\"\n              aria-controls=\"\"\n              class=\"content-head ml-3\"\n              >{{ \"VISUALIZE.CHART.FIELD.COLUMN\" | translate }} ({{\n                totalColums\n              }})\n              <i\n                [ngClass]=\"isShowColl ? 'icon-right' : 'icon-right down'\"\n                class=\"custom-icon\"\n              ></i>\n            </span>\n            <div class=\"collapse-column\">\n              <div [collapse]=\"isShowColl\" [isAnimated]=\"true\">\n                <!-- <span class=\"field-length\">Hiển thị {{schema.length}} của {{schema.length}}</span>-->\n                <span\n                  *ngFor=\"let coll of schemasColumn | schemaKey; let i = index\"\n                  class=\"content-item\"\n                >\n                  <span class=\"content-title\">\n                    <div class=\"data-type {{ coll?.cls }}\"></div>\n                    <span class=\"w-50 overflow-hidden mr-2\">{{\n                      coll?.key\n                    }}</span>\n                    <span class=\"w-25 overflow-hidden\">{{ coll?.value }}</span>\n                  </span>\n                </span>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"custom__control\">\n          <button\n            (click)=\"onHideShowDataset()\"\n            *ngIf=\"hideShowDataset\"\n            class=\"custom__control-btn\"\n            placement=\"right\"\n            tooltip=\"{{ 'VISUALIZE.FIELD.SHOW.DATASET' | translate }}\"\n          >\n            <svg\n              fill=\"none\"\n              height=\"24\"\n              viewBox=\"0 0 24 24\"\n              width=\"24\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n            >\n              <path\n                clip-rule=\"evenodd\"\n                d=\"M15.71 11.29L11.71 7.29C11.4563 7.03634 11.0866 6.93728 10.7401 7.03012C10.3936 7.12297 10.123 7.39362 10.0301 7.74012C9.93728 8.08663 10.0363 8.45634 10.29 8.71L12.59 11H4C3.44772 11 3 11.4477 3 12C3 12.5523 3.44772 13 4 13H12.59L10.29 15.29C10.1007 15.4778 9.9942 15.7334 9.9942 16C9.9942 16.2666 10.1007 16.5222 10.29 16.71C10.4778 16.8993 10.7334 17.0058 11 17.0058C11.2666 17.0058 11.5222 16.8993 11.71 16.71L15.71 12.71C15.801 12.6149 15.8724 12.5028 15.92 12.38C16.02 12.1365 16.02 11.8635 15.92 11.62C15.8724 11.4972 15.801 11.3851 15.71 11.29ZM19 4C18.4477 4 18 4.44772 18 5V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V5C20 4.44772 19.5523 4 19 4Z\"\n                fill=\"currentColor\"\n                fill-rule=\"evenodd\"\n              />\n            </svg>\n          </button>\n          <div class=\"custom__control-factor\">\n            <!-- app-chart-html-template -->\n            <app-chart-html-template\n              *ngIf=\"vizTypeChart === EVizType.HTML_TEMPLATE\"\n              [columns]=\"columns\"\n              [contentHTML]=\"contentHTML\"\n              (validForm)=\"getValid($event)\"\n              (customizeSave)=\"getCustomize($event)\"\n              (factorSave)=\"getFactor($event)\"\n              style=\"width: 100%; height: 100%\"\n              [uuidChart]=\"uuidChart\"\n            ></app-chart-html-template>\n            <!-- app-chart-html-template -->\n\n            <!-- app-chart-custom-bar -->\n            <app-chart-custom-bar\n              *ngIf=\"vizTypeChart === EVizType.BAR_COMPARE\"\n              [columns]=\"columns\"\n              style=\"width: 100%; height: 100%\"\n              (validForm)=\"getValid($event)\"\n              (customizeSave)=\"getCustomize($event)\"\n              (factorSave)=\"getFactor($event)\"\n            >\n            </app-chart-custom-bar>\n            <!-- app-chart-custom-bar -->\n\n            <!-- app-chart-mixed -->\n            <app-chart-mixed\n              *ngIf=\"vizTypeChart === EVizType.MIXED\"\n              [columns]=\"columns\"\n              style=\"width: 100%; height: 100%\"\n              (validForm)=\"getValid($event)\"\n              (customizeSave)=\"getCustomize($event)\"\n              (factorSave)=\"getFactor($event)\"\n            >\n            </app-chart-mixed>\n            <!-- app-chart-mixed -->\n\n            <!-- app-chart-mixed -->\n            <app-chart-candlestick\n              *ngIf=\"vizTypeChart === EVizType.CANDLESTICK\"\n              [columns]=\"columns\"\n              style=\"width: 100%; height: 100%\"\n              (validForm)=\"getValid($event)\"\n              (customizeSave)=\"getCustomize($event)\"\n              (factorSave)=\"getFactor($event)\"\n            >\n            </app-chart-candlestick>\n            <!-- app-chart-mixed -->\n\n            <!-- app-chart-bar-v2 -->\n            <app-chart-bar-v2\n              *ngIf=\"vizTypeChart === EVizType.BAR_V2\"\n              [columns]=\"columns\"\n              style=\"width: 100%; height: 100%\"\n              (validForm)=\"getValid($event)\"\n              (customizeSave)=\"getCustomize($event)\"\n              (factorSave)=\"getFactor($event)\"\n            >\n            </app-chart-bar-v2>\n            <!-- app-chart-bar-v2 -->\n\n            <!-- app-chart-custom-table -->\n            <app-chart-custom-table\n              *ngIf=\"vizTypeChart === EVizType.TABLE_CUSTOM\"\n              [columns]=\"columns\"\n              style=\"width: 100%; height: 100%\"\n              (validForm)=\"getValid($event)\"\n              (customizeSave)=\"getCustomize($event)\"\n              (factorSave)=\"getFactor($event)\"\n            >\n            </app-chart-custom-table>\n            <!-- app-chart-custom-table -->\n          </div>\n          <div class=\"custom__control-apply\">\n            <button\n              type=\"button\"\n              [disabled]=\"!valid\"\n              class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step button-each-solution\"\n              (click)=\"onApply()\"\n            >\n              {{ \"VIUSALIZE.APPLY\" | translate }}\n            </button>\n          </div>\n        </div>\n        <div class=\"custom__right\">\n          <tabset #staticTabs class=\"custom__right-tabset\">\n            <tab\n              (selectTab)=\"onSelect($event)\"\n              id=\"chart\"\n              heading=\"{{ 'VIUSALIZE.CHART' | translate }}\"\n              class=\"custom__right-tab\"\n            >\n              <div class=\"custom__right-wrap\" id=\"custom__wrap\">\n                <div\n                  *ngIf=\"contentHTML\"\n                  [innerHTML]=\"contentHTML | safeHtml\"\n                  class=\"content-html\"\n                  #contentHTMLRef\n                ></div>\n                <div *ngIf=\"showDefault && !contentHTML\" class=\"default-screen\">\n                  <svg\n                    width=\"160\"\n                    height=\"166\"\n                    viewBox=\"0 0 160 166\"\n                    fill=\"none\"\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                  >\n                    <path\n                      fill-rule=\"evenodd\"\n                      clip-rule=\"evenodd\"\n                      d=\"M123.638 8a.5.5 0 00-.5.5V158h28.758V8.5a.5.5 0 00-.5-.5h-27.758zM84.793 40.643a.5.5 0 01.5-.5h27.759a.5.5 0 01.5.5V158H84.793V40.643zM46.95 72.285a.5.5 0 00-.5.5V158h28.758V72.785a.5.5 0 00-.5-.5H46.95zM8.604 93.715a.5.5 0 00-.5.5V158h28.758V94.215a.5.5 0 00-.5-.5H8.604z\"\n                      fill=\"#FAFAFA\"\n                    ></path>\n                    <path\n                      d=\"M123.138 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zm-38.344 0v.5h.5v-.5h-.5zm-28.759 0h-.5v.5h.5v-.5zm-38.344-.001h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM8.104 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM123.638 8.5v-1a1 1 0 00-1 1h1zm0 149.5V8.5h-1V158h1zm28.258-.5h-28.758v1h28.758v-1zm-.5-149V158h1V8.5h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1h-27.758v1zM85.293 39.643a1 1 0 00-1 1h1v-1zm27.759 0H85.293v1h27.759v-1zm1 1a1 1 0 00-1-1v1h1zm0 117.357V40.643h-1V158h1zm-29.259.5h28.759v-1H84.793v1zm-.5-117.857V158h1V40.643h-1zM46.95 72.785v-1a1 1 0 00-1 1h1zm0 85.214V72.785h-1V158h1zm28.258-.5H46.45v1h28.758v-1zm-.5-84.714V158h1V72.785h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H46.95v1zM8.604 94.215v-1a1 1 0 00-1 1h1zm0 63.785V94.215h-1V158h1zm28.258-.5H8.104v1h28.758v-1zm-.5-63.285V158h1V94.215h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H8.604v1z\"\n                      fill=\"#D9D9D9\"\n                    ></path>\n                  </svg>\n                  <h3>\n                    {{ \"VIUSALIZE.TEXT_DEFAULT\" | translate }}\n                  </h3>\n                </div>\n                <div\n                  *ngIf=\"!showDefault && !queriesData\"\n                  class=\"wrap-loading\"\n                  [ngStyle]=\"\n                    !contentHTML\n                      ? { background: '#fff' }\n                      : { background: 'rgba(0, 0, 0, 0.1)' }\n                  \"\n                >\n                  <img [src]=\"urlImgLoading\" alt=\"img-loading\" />\n                </div>\n                <iframe\n                  [src]=\"urlVisualizeChart | safe\"\n                  #iframeVisualizeCustom\n                  id=\"custom-iframe\"\n                  class=\"custom__right-wrap--iframe\"\n                  [ngStyle]=\"\n                    !showDefault && queriesData && !contentHTML\n                      ? { display: 'block' }\n                      : { display: 'none' }\n                  \"\n                ></iframe>\n              </div>\n            </tab>\n            <tab\n              (selectTab)=\"onSelect($event)\"\n              id=\"result\"\n              heading=\"{{ 'VIUSALIZE.RESULTS' | translate }}\"\n              class=\"custom__right-tab\"\n            >\n              <app-view-data-chart\n                *ngIf=\"\n                  tabCurrent === action.RESULT &&\n                  showDefaultGird === action.APPLIED_DATA\n                \"\n                [option]=\"viewDataChart\"\n                [gridId]=\"'data-custom-view'\"\n              ></app-view-data-chart>\n\n              <div\n                *ngIf=\"\n                  showDefaultGird === action.NO_APPLIED ||\n                  showDefaultGird === action.APPLIED_NO_DATA\n                \"\n                class=\"custom__right-wrap\"\n              >\n                <div class=\"default-screen\">\n                  <svg\n                    width=\"160\"\n                    height=\"166\"\n                    viewBox=\"0 0 160 166\"\n                    fill=\"none\"\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                  >\n                    <path\n                      fill-rule=\"evenodd\"\n                      clip-rule=\"evenodd\"\n                      d=\"M123.638 8a.5.5 0 00-.5.5V158h28.758V8.5a.5.5 0 00-.5-.5h-27.758zM84.793 40.643a.5.5 0 01.5-.5h27.759a.5.5 0 01.5.5V158H84.793V40.643zM46.95 72.285a.5.5 0 00-.5.5V158h28.758V72.785a.5.5 0 00-.5-.5H46.95zM8.604 93.715a.5.5 0 00-.5.5V158h28.758V94.215a.5.5 0 00-.5-.5H8.604z\"\n                      fill=\"#FAFAFA\"\n                    ></path>\n                    <path\n                      d=\"M123.138 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zm-38.344 0v.5h.5v-.5h-.5zm-28.759 0h-.5v.5h.5v-.5zm-38.344-.001h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM8.104 158h-.5v.5h.5v-.5zm28.758 0v.5h.5v-.5h-.5zM123.638 8.5v-1a1 1 0 00-1 1h1zm0 149.5V8.5h-1V158h1zm28.258-.5h-28.758v1h28.758v-1zm-.5-149V158h1V8.5h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1h-27.758v1zM85.293 39.643a1 1 0 00-1 1h1v-1zm27.759 0H85.293v1h27.759v-1zm1 1a1 1 0 00-1-1v1h1zm0 117.357V40.643h-1V158h1zm-29.259.5h28.759v-1H84.793v1zm-.5-117.857V158h1V40.643h-1zM46.95 72.785v-1a1 1 0 00-1 1h1zm0 85.214V72.785h-1V158h1zm28.258-.5H46.45v1h28.758v-1zm-.5-84.714V158h1V72.785h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H46.95v1zM8.604 94.215v-1a1 1 0 00-1 1h1zm0 63.785V94.215h-1V158h1zm28.258-.5H8.104v1h28.758v-1zm-.5-63.285V158h1V94.215h-1zm0 0h1a1 1 0 00-1-1v1zm-27.758 0h27.758v-1H8.604v1z\"\n                      fill=\"#D9D9D9\"\n                    ></path>\n                  </svg>\n                  <h3 *ngIf=\"showDefaultGird === action.NO_APPLIED\">\n                    {{ \"VIUSALIZE.TEXT_DEFAULT\" | translate }}\n                  </h3>\n                  <ng-container\n                    *ngIf=\"showDefaultGird === action.APPLIED_NO_DATA\"\n                  >\n                    <h3>\n                      {{\n                        \"No results were returned for this query\" | translate\n                      }}\n                    </h3>\n                    <div class=\"no-results-body\">\n                      {{\n                        \"Make sure that the controls are configured properly and the datasource contains data for the selected time range.\"\n                          | translate\n                      }}\n                    </div>\n                  </ng-container>\n                </div>\n              </div>\n            </tab>\n            <tab\n              (selectTab)=\"onSelect($event)\"\n              id=\"origin\"\n              heading=\"{{ 'VIUSALIZE.ORIGIN' | translate }}\"\n              class=\"custom__right-tab\"\n            >\n              <app-view-data-chart\n                *ngIf=\"tabCurrent === 'origin'\"\n                [option]=\"viewDataChart\"\n                [gridId]=\"'data-custom-source'\"\n              ></app-view-data-chart>\n            </tab>\n          </tabset>\n        </div>\n      </div>\n    </div>\n    <div class=\"custom__right-bar\" *ngIf=\"isOpenRightBar\">\n      <app-chart-right-bar\n        (close)=\"backBar()\"\n        (delete)=\"onDelete($event)\"\n        (reloadPage)=\"editSuccess($event)\"\n        [chart]=\"chart\"\n        [isEdit]=\"isEditInfo\"\n        [isPlugin]=\"isPlugin\"\n        [view]=\"true\"\n      >\n      </app-chart-right-bar>\n    </div>\n  </div>\n</div>\n\n<app-chart-delete (deleteSuccess)=\"onChart()\"></app-chart-delete>\n<app-chart-publish-dialog\n  (reload)=\"updateSuccess($event)\"\n  [isViewCenter]=\"true\"\n></app-chart-publish-dialog>\n","export function openFullscreen(elem) {\r\n    if (elem.requestFullscreen) {\r\n        elem.requestFullscreen();\r\n    } else if (elem.mozRequestFullScreen) {\r\n        /* Firefox */\r\n        elem.mozRequestFullScreen();\r\n    } else if (elem.webkitRequestFullscreen) {\r\n        /* Chrome, Safari and Opera */\r\n        elem.webkitRequestFullscreen();\r\n    } else if (elem.msRequestFullscreen) {\r\n        /* IE/Edge */\r\n        elem.msRequestFullscreen();\r\n    }\r\n}\r\n\r\nexport function closeFullscreen(doc) {\r\n    if (document.fullscreenElement) {\r\n        if (doc.exitFullscreen) {\r\n            doc.exitFullscreen();\r\n        } else if (doc.mozCancelFullScreen) {\r\n            /* Firefox */\r\n            doc.mozCancelFullScreen();\r\n        } else if (doc.webkitExitFullscreen) {\r\n            /* Chrome, Safari and Opera */\r\n            doc.webkitExitFullscreen();\r\n        } else if (doc.msExitFullscreen) {\r\n            /* IE/Edge */\r\n            doc.msExitFullscreen();\r\n        }\r\n    }\r\n\r\n\r\n}","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from \"@angular/forms\";\nimport {TabsetComponent} from \"ngx-bootstrap/tabs\";\nimport {NotificationService, iNet} from \"inet-core\";\nimport {Router} from \"@angular/router\";\nimport {CHART, VIEW} from \"../../chart/constants/constants\";\nimport {Store} from \"@ngrx/store\";\nimport {IAppState} from \"../../core/store/state/app.state\";\n\nimport * as RightbarActions from '../../core/store/actions/rightbar.action';\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ShareService} from \"../share.service\";\n\n\n@Component({\n  selector: 'app-share-right-bar',\n  templateUrl: './share-right-bar.component.html',\n  styleUrls: ['./share-right-bar.component.scss']\n})\nexport class ShareRightBarComponent implements OnInit, OnChanges {\n  @Output() close = new EventEmitter<boolean>();\n  @Output() deleteItem = new EventEmitter<any>();\n  @Output() reloadPage = new EventEmitter<any>()\n  @Input() isMyShare: boolean = false;\n  @ViewChild('staticTabs', {static: false}) staticTabs?: TabsetComponent;\n  @Input() isEdit: boolean = false\n  @Input() chart: any;\n  chartItem: any;\n  tab: string = \"detail\";\n\n  @Input() isChild = true;\n  @Input() isPublish: boolean = false\n  param: any;\n  @Output() uuidCopy = new EventEmitter<any>()\n  @Output() editTable = new EventEmitter<any>()\n\n  constructor(private fb: FormBuilder,\n              private router: Router,\n              private store: Store<IAppState>,\n              private notification: NotificationService,\n              private translate: TranslateService,\n              private shareService: ShareService) {\n  }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!!changes && !!changes['chart'] && !!changes['chart'].currentValue) {\n      let item = changes['chart'].currentValue;\n      this.chartItem = item.design || item;\n    }\n  }\n\n  closeRightbar() {\n    this.close.emit(false);\n  }\n\n\n  viewChart() {\n    let myShare;\n    this.isMyShare ? myShare = true : myShare = false\n    this.router.navigate(['/', \"share\", \"center\"], {\n      queryParams: {\n        uuid: this.chartItem.uuid,\n        action: 'VIEW',\n        myShare: myShare\n      }\n    });\n  }\n\n\n  onDelete() {\n    this.deleteItem.emit(this.chartItem)\n  }\n\n\n  onCopyPath() {\n    const messSuccess = this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS')\n    const messFailed = this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD')\n    if (this.chart.path) {\n      this.shareService.copyPathCantLoad(this.chartItem.path).subscribe(status => {\n        if (status) {\n          this.notification.showMessage(messSuccess, 'success', 'Visualize')\n        } else {\n          this.notification.showMessage(messFailed, 'error', 'Visualize')\n        }\n      })\n    } else {\n      this.shareService.copyPath(this.chartItem.uuid).subscribe(status => {\n        if (status) {\n          this.notification.showMessage(messSuccess, 'success', 'Visualize')\n        } else {\n          this.notification.showMessage(messFailed, 'error', 'Visualize')\n        }\n      })\n    }\n  }\n\n  onEditTable() {\n    this.editTable.emit(this.chartItem)\n  }\n}\n","<app-right-bar [btnBackTemplate]=\"btnBackTemplate\"\n               [btnTemplate]=\"!isChild ? btnTemplate: null\"\n               [header]=\"chartItem?.chartTitle || chartItem?.name\"\n               [title]=\"chartItem?.chartTitle || chartItem?.name\"\n               [isChild]=\"false\"\n               [tabTemplate]=\"tabTemplate\">\n  <ng-template #btnBackTemplate>\n    <button (click)=\"closeRightbar()\" class=\"btn-custom btn-custom-icon\"><i aria-hidden=\"true\"\n                                                                            class=\"fa fa-angle-right f-20\"></i>\n    </button>\n  </ng-template>\n  <ng-template #btnTemplate>\n    <button (click)=\"viewChart()\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.CHART.FIELD.VIEW'|translate}}\">\n\n      <span class=\"fa fa-eye f-20\"></span></button>\n    <button (click)=\"onEditTable()\" *ngIf=\"!isMyShare && !chartItem?.path\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{(!chartItem?.editable ? 'VISUALIZE.CHART.FIELD.ALLOW_EDIT' : 'VISUALIZE.CHART.FIELD.BLOCK_EDIT')|translate}}\">\n      <i [ngClass]=\"!chartItem?.editable ? 'fa fa-lock f-20':'fa fa-unlock-alt f-20'\" aria-hidden=\"true\"></i>\n    </button>\n    <button (click)=\"onCopyPath()\"\n            class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.CHART.FIELD.COPY_SCRIPT'|translate}}\">\n      <i class=\"fa fa-clipboard f-17\"></i>\n    </button>\n    <button (click)=\"onDelete()\" *ngIf=\"isMyShare\" class=\"btn-custom btn-custom-icon\"\n            tooltip=\"{{'VISUALIZE.CHART.FIELD.ACTION_DELETE'|translate}}\">\n      <span class=\"fa fa-trash-o text-danger f-20\"></span>\n    </button>\n\n  </ng-template>\n  <ng-template #tabTemplate>\n    <div class=\"title-nav-tab active\">{{'VISUALIZE.FIELD.TITTLE.INFO'|translate}}</div>\n    <div class=\"height-tab-view\" style=\"border-bottom: 10px solid #f5f5f5;\">\n      <div class=\"content-detail\">\n        <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE'|translate}}</div>\n        <div\n          class=\"middle-detail\"\n          style=\"word-break: break-word\">\n          {{ chartItem?.chartTitle || chartItem?.title}}\n        </div>\n      </div>\n      <div class=\"content-detail\">\n        <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_CATEGORY'|translate}}</div>\n        <div class=\"middle-detail\">{{chartItem?.chartTypeName || chartItem?.type}}</div>\n      </div>\n      <div class=\"content-detail\">\n        <div class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.TITLE_DATASET'|translate}}</div>\n        <div class=\"middle-detail text-lowercase\" style=\"word-break: break-word;\">{{chartItem?.dsType+'.'+chartItem?.dsCategory+'.'+chartItem?.dsTable}}</div>\n      </div>\n      <div *ngIf=\"chartItem?.organName\" class=\"content-detail\">\n        <div class=\"left-detail\">{{ 'VISUALIZE.FIELD.SHARING_UNIT' |translate}}</div>\n        <div class=\"middle-detail\">{{chartItem?.organName}}</div>\n      </div>\n      <div class=\"content-detail\">\n        <div class=\"left-detail\">{{ isPublish ? ('VISUALIZE.FIELD_PUBLISHER'|translate)\n          : ('VISUALIZE.CHART.FIELD.TITLE_SHARER' |translate)}}</div>\n        <div class=\"middle-detail\">{{chartItem?.creatorName}}</div>\n      </div>\n\n      <div class=\"content-detail\">\n        <div\n          class=\"left-detail\">{{isPublish ? ('VISUALIZE.FIELD_DAY_PUBLISH'| translate) : ('VISUALIZE.FIELD_DAY_SHARED'|translate)}}</div>\n        <div class=\"middle-detail\">{{chartItem?.createdDate | date: 'dd/MM/yyyy HH:mm:ss'}}</div>\n      </div>\n      <div *ngIf=\"!isPublish\" class=\"content-detail\">\n        <span class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.SHARE_TIMER' | translate}}  </span>\n        <span class=\"middle-detail\">{{chartItem?.started | date : 'dd/MM/yyyy'}} - <span\n          *ngIf=\"chartItem?.expired > 0\">{{chartItem?.expired | date : 'dd/MM/yyyy'}}</span></span>\n      </div>\n      <div *ngIf=\"chartItem?.message\" class=\"content-detail\">\n        <span class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.SHARE_MESSAGE' | translate}}  </span>\n        <span class=\"middle-detail\">{{chartItem?.message}}</span>\n      </div>\n      <div class=\"content-detail\">\n        <span class=\"left-detail\">{{'VISUALIZE.CHART.FIELD.SHARE_PATH' | translate}}  </span>\n        <span class=\"middle-detail\" style=\"word-break: break-word\">\n          <button (click)=\"onCopyPath()\"\n                  class=\"btn-custom btn-custom-icon\"\n                  tooltip=\"{{'VISUALIZE.CHART.FIELD.COPY_SCRIPT'|translate}}\">\n      <i class=\"fa fa-clipboard f-17\"></i>\n    </button></span>\n      </div>\n    </div>\n  </ng-template>\n</app-right-bar>\n\n","import {\n  AfterContentInit,\n  AfterViewInit,\n  Component,\n  ElementRef,\n  Inject,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  ViewChild,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ChartItem } from \"../../model/chart\";\nimport { ChartService } from \"../chart.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  NotificationService,\n  iNet,\n} from \"inet-core\";\nimport { ChartDeleteComponent } from \"../chart-delete/chart-delete.component\";\nimport { Store } from \"@ngrx/store\";\nimport { IAppState } from \"../../core/store/state/app.state\";\nimport * as RightbarActions from \"../../core/store/actions/rightbar.action\";\nimport { rightbarSelector } from \"../../core/store/selectors/rightbar.selector\";\nimport { publishSelector } from \"../../core/store/selectors/publish.selector\";\nimport { ShareService } from \"../../share/share.service\";\nimport {\n  ChartBindAction,\n  updateNavigate,\n} from \"../../core/store/actions/chart-bind.action\";\nimport { Subscription } from \"rxjs\";\nimport { DOCUMENT, Location } from \"@angular/common\";\nimport { closeFullscreen, openFullscreen } from \"../../utils/fullscreen\";\nimport {\n  ETypeSubmit,\n  EVisualize,\n  IAttribute,\n  IField,\n  IParamsChart,\n  IQueryContext,\n  IResChart,\n  IResQueryParams,\n  IResSearchTemplateItem,\n  IVizType,\n} from \"../model/template\";\nimport {\n  CHART,\n  CHART_HTML_TEMPLATE,\n  CUSTOM,\n  EXPLORE,\n  LIST,\n  MAPPING,\n  TEMPLATE,\n  VIEW,\n} from \"../constants/constants\";\nimport * as Publish_Action from \"../../core/store/actions/publish.action\";\nimport { ChartPublishDialogComponent } from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport { decode } from \"js-base64\";\nimport { IMessage } from \"../model/chart\";\nimport {\n  EVizType,\n  FilterColumn,\n  IFilter,\n  KeyValue,\n} from \"../model/chart-custom\";\nimport { OnTemplate } from \"../../layout-common/layout-common-constants\";\nimport { IControlTemplateHTML } from \"../model/html-template\";\nimport { EVizType as EVizTypes } from \"../model/chart\";\nimport {\n  handleCalcLoop,\n  handleLoop,\n  convertCalcLoop,\n} from \"../../common/index\";\nimport { ViewChartAction } from \"../model/chart-action\";\n\n@Component({\n  selector: \"app-chart-mapping-view\",\n  templateUrl: \"./chart-mapping-view.component.html\",\n  styleUrls: [\"./chart-mapping-view.component.scss\"],\n})\nexport class ChartMappingViewComponent\n  implements OnInit, OnChanges, OnDestroy, AfterViewInit\n{\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild(ChartPublishDialogComponent)\n  dialogPublish!: ChartPublishDialogComponent;\n  @ViewChild(\"iframeViewVisualizeMapping\") iframeVisualizeMapping: ElementRef;\n  isOpenRightBar: boolean = true;\n  isEditInfo: boolean = false;\n  uuidChart: string = \"\";\n  chartInfo: any;\n  isViewPublish: boolean = false;\n  sharedUuid: string;\n  storePublish$: Subscription;\n\n  fullScreen = false;\n  elem;\n  private subRouter: Subscription;\n  actionCurrent: string = \"\";\n  action = ViewChartAction;\n  rightBarSub$?: Subscription;\n  queriesData: any = undefined;\n  formData: any;\n  showDefault: boolean = true;\n  vizType: IVizType;\n  attribute: IAttribute;\n  queryContext: IQueryContext;\n  typeSubmit: string;\n  paramsChart: IParamsChart;\n  fields: IField[] = [];\n  width: number;\n  height: number;\n  plugin = iNet.getPluginManager();\n\n  //HTML template\n  selectValue: KeyValue;\n  contentHTML: string;\n\n  urlVisualizeChart: string = iNet.getPUrl(\"visualcommon/page/visualize-chart\");\n  urlImgLoading: string = this.coreService.getImageUrlFromModule(\n    \"loading.gif\",\n    \"analytics\"\n  );\n  eventResizeVisualize: any;\n  getMessageApp: any;\n  resizeTimeout: any;\n\n  constructor(\n    private route: ActivatedRoute,\n    private chartService: ChartService,\n    private translate: TranslateService,\n    private location: Location,\n    private notification: NotificationService,\n    private router: Router,\n    private store: Store<IAppState>,\n    private coreService: CoreService,\n    private shareService: ShareService,\n    @Inject(DOCUMENT) private document: any\n  ) {\n    this.route.queryParams.subscribe((res: IResQueryParams) => {\n      this.uuidChart = res.uuid;\n    });\n    this.rightBarSub$ = this.store.select(rightbarSelector).subscribe((res) => {\n      res ? (this.isOpenRightBar = true) : null;\n      this.isEditInfo = res;\n    });\n    this.route.queryParams.subscribe((value) => {\n      if (value.hasOwnProperty(\"isViewPublish\")) {\n        this.isViewPublish = true;\n      }\n    });\n    if (!this.isViewPublish) {\n      this.store.select(publishSelector).subscribe((res) => {\n        if (this.chartInfo) {\n          const item = JSON.parse(JSON.stringify(this.chartInfo));\n          item.sharedUuid = res || undefined;\n          this.chartInfo = JSON.parse(JSON.stringify(item));\n        }\n      });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {}\n\n  ngAfterViewInit(): void {\n    const iFrame: HTMLIFrameElement = this.iframeVisualizeMapping.nativeElement;\n    iFrame.onload = () => {\n      this.iframeLoadDone();\n    };\n  }\n  iframeLoadDone() {\n    if (this.isViewPublish) {\n      this.shareService\n        .loadChartMyShare({ uuid: this.uuidChart })\n        .subscribe((value) => {\n          this.chartInfo = value;\n          this.store.dispatch(updateNavigate({ data: value }));\n        });\n    } else {\n      this.chartService\n        .loadChart({ uuid: this.uuidChart })\n        .subscribe((value) => {\n          this.chartInfo = value;\n          this.store.dispatch(updateNavigate({ data: value }));\n          this.handleCommon(value);\n        });\n    }\n  }\n\n  ngOnInit(): void {\n    this.elem = document.documentElement;\n    this.actionCurrent = this.action.VIEW;\n    this.getMessageApp = this.getMessageMapping.bind(this);\n    this.eventResizeVisualize = this.eventResizeScreen.bind(this);\n    window.addEventListener(\"message\", this.getMessageApp, false);\n  }\n\n  backBar(isOpen: boolean = false) {\n    this.isOpenRightBar = isOpen;\n    this.store.dispatch(\n      RightbarActions.showRightbar({ isShowRightbar: false })\n    );\n    if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n    } else {\n      this.sendDataVisualizeChart();\n    }\n  }\n\n  deleteChart() {\n    this.chartDelete.onShowDialog(this.chartInfo);\n  }\n\n  loadDelete() {\n    setTimeout(() => {\n      this.router.navigateByUrl(\"\");\n    }, 100);\n  }\n\n  editSuccess(value: ChartItem) {\n    this.chartInfo = value;\n  }\n\n  onToggleFullScreen() {\n    this.fullScreen = !this.fullScreen;\n    if (this.fullScreen) {\n      openFullscreen(this.elem);\n    } else {\n      closeFullscreen(this.document);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.rightBarSub$) {\n      this.backBar();\n      this.rightBarSub$.unsubscribe();\n    }\n    if (this.subRouter) {\n      this.subRouter.unsubscribe();\n    }\n    if (this.storePublish$) {\n      this.storePublish$.unsubscribe();\n    }\n  }\n\n  back() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  onPublishAction() {\n    this.dialogPublish.showDialogChange(this.chartInfo);\n  }\n\n  onChart() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  onCopyPath() {\n    let uuid = this.isViewPublish\n      ? this.chartInfo.uuid\n      : this.chartInfo.sharedUuid;\n    this.shareService.copyPath(uuid).subscribe((status) => {\n      let key = status\n        ? \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS\"\n        : \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD\";\n      this.notification.showMessage(\n        this.translate.instant(key),\n        status ? \"success\" : \"error\",\n        \"Visualize\"\n      );\n    });\n  }\n\n  onView() {\n    this.actionCurrent = this.action.VIEW;\n    this.router.navigate([\"/\", CHART, MAPPING, VIEW], {\n      queryParams: {\n        uuid: this.chartInfo.uuid,\n      },\n    });\n  }\n\n  onExplore() {\n    this.actionCurrent = this.action.EXPLORE;\n    if (\"fields\" in this.chartInfo) {\n      this.router.navigate([`/${CHART}/${MAPPING}`], {\n        queryParams: {\n          uuid: this.chartInfo.uuid,\n        },\n      });\n    } else {\n      const a = [\n        [`/${CHART}/${CUSTOM}`],\n        [CHART, this.chartInfo.uuid, EXPLORE],\n      ];\n      OnTemplate(this.chartInfo, this.router, a);\n    }\n  }\n\n  onTemplate() {\n    this.router.navigate([\"/\", CHART, \"create\", TEMPLATE], {\n      queryParams: {\n        uuid: this.chartInfo.uuid,\n      },\n    });\n  }\n\n  editInfoChart() {\n    this.store.dispatch(RightbarActions.showRightbar({ isShowRightbar: true }));\n  }\n\n  updateSuccess(event: any) {\n    const item = JSON.parse(JSON.stringify(this.chartInfo));\n    item.sharedUuid = event.uuid || undefined;\n    if (event.uuid) {\n      this.store.dispatch(\n        Publish_Action.sharedUuid({ sharedUuid: event.uuid })\n      );\n      this.chartInfo = JSON.parse(JSON.stringify(item));\n    } else {\n      if (this.isViewPublish) {\n        this.location.back();\n        this.isViewPublish = false;\n      } else {\n        this.store.dispatch(\n          Publish_Action.sharedUuid({ sharedUuid: undefined })\n        );\n        this.chartInfo = JSON.parse(JSON.stringify(item));\n      }\n    }\n  }\n\n  onDelete(item: ChartItem) {\n    this.chartDelete.onShowDialog(item);\n  }\n\n  convertFilter(filterColumns: FilterColumn[]) {\n    let filters: IFilter[] = [];\n    if (filterColumns.length > 0) {\n      filters = filterColumns.map((filter: FilterColumn) => {\n        let obj: IFilter = {\n          col: filter.column,\n          colType: filter.columnType,\n          op: filter.operator,\n          val: filter.comparator,\n          fromDate: filter?.fromDate,\n          toDate: filter?.toDate,\n        };\n        return obj;\n      });\n    }\n    return {\n      filters,\n    };\n  }\n\n  handleCommon(res: IResChart) {\n    this.attribute = JSON.parse(decode(res.attribute)) as IAttribute;\n    this.vizType = this.attribute.vizType;\n    this.formData = this.attribute.formData;\n    this.queryContext = JSON.parse(decode(res.queryContext)) as IQueryContext;\n\n    this.typeSubmit = this.attribute.typeSubmit;\n    if (\"fields\" in res) {\n      this.fields = res.fields;\n    }\n    const datasource = {\n      type: res.dsType,\n      category: res.dsCategory,\n      table: res.dsTable,\n    };\n    if (res.type !== CHART_HTML_TEMPLATE) {\n      switch (this.vizType.vizType) {\n        case EVizType.BAR_COMPARE:\n          this.paramsChart = {\n            datasource,\n            queries: this.attribute.queries,\n            form_data: this.attribute.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n          if (this.fields.length > 0) {\n            this.paramsChart.fields = this.fields;\n          }\n          break;\n        case EVizType.MIXED:\n          this.paramsChart = {\n            datasource,\n            queries: this.attribute.queries,\n            form_data: this.attribute.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n          if (this.fields.length > 0) {\n            this.paramsChart.fields = this.fields;\n          }\n          break;\n        case EVizType.BAR_V2:\n          this.paramsChart = {\n            datasource,\n            form_data: this.attribute.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n          if (this.fields.length > 0) {\n            this.paramsChart.fields = this.fields;\n          }\n          break;\n        case EVizType.TABLE_CUSTOM:\n          this.paramsChart = {\n            datasource,\n            formData: this.attribute.queries,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n          if (this.fields.length > 0) {\n            this.paramsChart.fields = this.fields;\n          }\n          break;\n        case EVizType.CANDLESTICK:\n          this.paramsChart = {\n            datasource,\n            formData: this.attribute.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n          if (this.fields.length > 0) {\n            this.paramsChart.fields = this.fields;\n          }\n          break;\n        default:\n          this.paramsChart = {\n            datasource,\n            force: \"false\",\n            queries: this.attribute.queries,\n            form_data: this.attribute.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            fields: res.fields,\n          };\n          this.fields = res.fields;\n          break;\n      }\n    } else {\n      this.contentHTML = this.attribute.contentHTML;\n      const forDataSubmit = this.attribute.formData as IControlTemplateHTML;\n      let formData: KeyValue = {};\n      this.selectValue = forDataSubmit.select;\n      formData = {\n        columns: Object.values(forDataSubmit.select).filter((colum) => colum),\n        datasource,\n        row_limit: 1,\n        filter: this.convertFilter(forDataSubmit.filters),\n      };\n      this.paramsChart = {\n        datasource,\n        formData,\n        force: \"fales\",\n        result_format: \"json\",\n        result_type: \"full\",\n      };\n      if (this.fields.length > 0) {\n        this.paramsChart[\"fields\"] = this.fields;\n      }\n    }\n    this.onApply();\n  }\n\n  onApply() {\n    for (const iterator of Object.keys(this.paramsChart)) {\n      if (typeof this.paramsChart[iterator] !== \"string\") {\n        this.paramsChart[iterator] = JSON.stringify(this.paramsChart[iterator]);\n      }\n    }\n    this.queriesData = undefined;\n    this.showDefault = false;\n    if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n      const dataCheck = this.attribute.formData as IControlTemplateHTML;\n      const arrLoop = dataCheck.loop || [];\n      if (\n        dataCheck.filters.length > 0 ||\n        Object.values(dataCheck.select).filter((colum) => colum).length > 0\n      ) {\n        this.chartService\n          .getDataCustom(this.paramsChart)\n          .subscribe((res: any) => {\n            if (res.elements.length > 0) {\n              const obj = res.elements[0];\n              const calcLoop = arrLoop.filter((l) => l.name.includes(\"calc(\"));\n              for (const iterator of calcLoop) {\n                iterator[\"operator\"] = \"\";\n              }\n              this.queriesData = res.elements;\n              for (const iterator of Object.keys(this.selectValue)) {\n                if (this.selectValue[iterator]) {\n                  const arrSpan = document.querySelectorAll(\n                    `span[name=\"${iterator}\"]`\n                  );\n                  arrSpan.forEach((span) => {\n                    span.innerHTML =\n                      typeof obj[this.selectValue[iterator]] === \"number\"\n                        ? Number(\n                            obj[this.selectValue[iterator]]\n                          ).toLocaleString()\n                        : obj[this.selectValue[iterator]];\n                  });\n                }\n                if (arrLoop.length > 0) {\n                  handleLoop(arrLoop, obj, iterator, this.selectValue);\n                }\n                if (calcLoop.length > 0) {\n                  convertCalcLoop(calcLoop, obj, this.selectValue, iterator);\n                }\n              }\n              if (calcLoop.length > 0) {\n                handleCalcLoop(calcLoop);\n              }\n            }\n          });\n      } else {\n        this.queriesData = [];\n      }\n    } else {\n      this.sendScriptToVisualChart();\n      switch (this.vizType.vizType) {\n        case EVizType.BAR_COMPARE:\n          this.chartService\n            .getDataVisualize(this.paramsChart)\n            .subscribe((res: any) => {\n              if (res.type !== ErrorMessage.TYPE) {\n                if (Object.keys(res).length > 0) {\n                  this.queriesData = [res];\n                } else {\n                  this.queriesData = [];\n                }\n                this.sendDataVisualizeChart();\n              } else {\n              }\n            });\n          break;\n        case EVizType.BAR_V2:\n          this.chartService\n            .getExpVisualize(this.paramsChart)\n            .subscribe((res: any) => {\n              if (res.type !== ErrorMessage.TYPE) {\n                if (Object.keys(res).length > 0) {\n                  this.queriesData = [res];\n                } else {\n                  this.queriesData = [];\n                }\n                this.sendDataVisualizeChart();\n              } else {\n              }\n            });\n          break;\n        case EVizType.TABLE_CUSTOM:\n          this.chartService\n            .getDataCustom(this.paramsChart)\n            .subscribe((res: any) => {\n              if (res.type !== ErrorMessage.TYPE) {\n                if (res.elements.length > 0) {\n                  this.queriesData = res.elements;\n                } else {\n                  this.queriesData = [];\n                }\n                this.sendDataVisualizeChart();\n              } else {\n              }\n            });\n          break;\n        case EVizType.CANDLESTICK:\n          this.chartService\n            .getDataCustom(this.paramsChart)\n            .subscribe((res: any) => {\n              if (res.type !== ErrorMessage.TYPE) {\n                if (res.elements.length > 0) {\n                  this.queriesData = res.elements;\n                } else {\n                  this.queriesData = [];\n                }\n                this.sendDataVisualizeChart();\n              } else {\n              }\n            });\n          break;\n        case EVizType.MIXED:\n          this.chartService\n            .getDataVisualize(this.paramsChart)\n            .subscribe((res: any) => {\n              if (res.type !== ErrorMessage.TYPE) {\n                if (res.elements.length > 0) {\n                  this.queriesData = res.elements;\n                } else {\n                  this.queriesData = [];\n                }\n                this.sendDataVisualizeChart();\n              } else {\n              }\n            });\n          break;\n        default:\n          if (this.typeSubmit === ETypeSubmit.DATA) {\n            this.chartService\n              .getDataVisualize(this.paramsChart)\n              .subscribe((res) => {\n                if (res.type !== ErrorMessage.TYPE) {\n                  this.queriesData =\n                    this.vizType.vizType === EVizTypes.MIXED_TIMESERIES\n                      ? res.elements\n                      : [res];\n                  this.sendDataVisualizeChart();\n                }\n              });\n          } else if (this.typeSubmit === ETypeSubmit.EXPLORE_JSON) {\n            this.chartService\n              .getExpVisualize(this.paramsChart)\n              .subscribe((res) => {\n                if (res.type !== ErrorMessage.TYPE) {\n                  this.queriesData = [res];\n                  this.sendDataVisualizeChart();\n                }\n              });\n          }\n          break;\n      }\n    }\n  }\n\n  getMessageMapping(event: any) {\n    const data: IMessage = event.data;\n    if (data.signFrom !== EVisualize.CHART_VISUAL) {\n      return;\n    }\n    let result: any;\n    if (typeof data.result === \"string\") {\n      result = JSON.parse(data.result);\n    } else {\n      result = data.result;\n    }\n    switch (event.data.eventName) {\n      case EVisualize.SEND_LOAD_JS_DONE:\n        window.addEventListener(\"resize\", this.eventResizeVisualize, false);\n        break;\n      default:\n        break;\n    }\n  }\n\n  sendScriptToVisualChart() {\n    if (this.vizType.html) {\n      let message: IMessage = {\n        eventName: EVisualize.SEND_SCRIPT,\n        signFrom: EVisualize.ANALYTICS_APP,\n        result: JSON.stringify({ scriptUrl: this.vizType.html }),\n      };\n      this.sendMessage(message);\n    }\n  }\n\n  sendDataVisualizeChart() {\n    setTimeout(() => {\n      const parent = document.getElementById(\"mapping__wrap-view\");\n      if (parent) {\n        this.width = parent.offsetWidth;\n        this.height = parent.offsetHeight;\n        let message: IMessage = {\n          eventName: EVisualize.SEND_DATA_TO_VISUAL_CHART,\n          signFrom: EVisualize.ANALYTICS_APP,\n          result: JSON.stringify({\n            width: this.width - 30,\n            height: this.height - 50,\n            vizType: this.vizType,\n            formData: this.formData,\n            queriesData: this.queriesData || [],\n          }),\n        };\n        this.sendMessage(message);\n      }\n    }, 500);\n  }\n\n  eventResizeScreen() {\n    if (this.vizType.vizType === CHART_HTML_TEMPLATE) {\n    } else {\n      clearTimeout(this.resizeTimeout);\n      this.resizeTimeout = setTimeout(() => {\n        const parent = document.getElementById(\"mapping__wrap-view\");\n        if (parent) {\n          if (\n            this.width !== parent.offsetWidth ||\n            this.height !== parent.offsetHeight\n          ) {\n            if (this.queriesData) {\n              this.sendDataVisualizeChart();\n            }\n          }\n        }\n      }, 500);\n    }\n  }\n\n  sendMessage(message: IMessage) {\n    const iframe = document.getElementById(\n      \"view-mapping-iframe\"\n    ) as HTMLIFrameElement;\n    if (iframe) {\n      this.plugin.sendMessageTo(message, iframe.contentWindow);\n    }\n  }\n}\n\n","<div class=\"mapping__head\">\n  <ul class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\" style=\"flex: 1\">\n    <li (click)=\"back()\" class=\"pointer\">\n      {{ \"VISUALIZE.CHART.FIELD.TITLE_CHART\" | translate }}\n    </li>\n    <li class=\"active font-weight-medium text-truncate\">\n      {{ chartInfo?.name || '' | translate }}\n    </li>\n  </ul>\n  <div class=\"mapping__btn\" *ngIf=\"uuidChart\">\n    <div class=\"tabs-custom\">\n      <div (click)=\"onView()\" [class.active]=\"actionCurrent === action.VIEW\" class=\"tab-item font-weight-medium\">\n        <span [class.active]=\"actionCurrent.startsWith(action.VIEW)\" class=\"fa fa-eye mr-1\"></span><span\n          class=\"current\">{{'VISUALIZE.CHART.FIELD.VIEW' | translate}}</span>\n      </div>\n      <div (click)=\"onExplore()\" [class.active]=\"actionCurrent === action.EXPLORE\" class=\"tab-item font-weight-medium\">\n        <span [class.active]=\"actionCurrent.startsWith(action.EXPLORE)\" class=\"fa fa-pencil mr-1\"></span><span\n          class=\"current\">{{'VISUALIZE.CHART.FIELD.ACTION_EDIT' | translate}}</span>\n      </div>\n      <div (click)=\"onTemplate()\" *ngIf=\"!chartInfo?.fields\" [class.active]=\"actionCurrent === action.TEMPLATE\" class=\"tab-item font-weight-medium\" style=\"padding: 0 10px;\">\n        <span [class.active]=\"actionCurrent.startsWith(action.TEMPLATE)\" class=\"fa fa-object-ungroup mr-1\"></span><span\n          class=\"current\">{{'VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE' | translate}}</span>\n      </div>\n      <button (click)=\"editInfoChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n          class=\"fa fa-pencil-square-o mr-2\" style=\"font-size: 15px\"></i>{{'VISUALIZE.FIELD.EDIT_INFO' |\n        translate}}</button>\n      <button (click)=\"onPublishAction()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n        <i [ngClass]=\"!chartInfo?.sharedUuid ? 'fa-globe' : 'fa-link'\" class=\"fa f-20 mr-2\"></i>\n        {{!chartInfo?.sharedUuid ? ('VISUALIZE.CHART.FIELD.ACTION_PUBLISH'|translate)\n        : ('VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH'|translate)}}\n      </button>\n      <button (click)=\"onCopyPath()\" *ngIf=\"chartInfo?.sharedUuid\"\n        class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n        <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n        {{'VISUALIZE.CHART.FIELD.COPY_SCR'|translate}}\n      </button>\n      <button (click)=\"deleteChart()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-danger\"><i\n          class=\"fa fa-trash-o mr-2\"></i>{{'VISUALIZE.CHART.FIELD.ACTION_DELETE' | translate}}</button>\n    </div>\n  </div>\n</div>\n\n\n<app-action-view-layout [header]=\"''\" [isChild]=\"true\" [isRightBar]=\"isOpenRightBar\" [isFullScreen]=\"fullScreen\"\n  [isViewFull]=\"true\" [namePage]=\"chartInfo?.name || chartInfo?.title || chartInfo?.chartTitle\">\n  <ng-template btnBottomTemplate>\n    <button (click)=\"backBar(!isOpenRightBar)\" [ngClass]=\"isOpenRightBar ? 'opened':''\"\n      class=\"btn-custom btn-custom-icon px-1\"><i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i></button>\n    <button (click)=\"onToggleFullScreen()\" class=\"btn-fullscreen\">\n      <i *ngIf=\"!fullScreen\" aria-hidden=\"true\" class=\"fa fa-expand\"></i>\n      <i *ngIf=\"fullScreen\" aria-hidden=\"true\" class=\"fa fa-compress\"></i>\n    </button>\n  </ng-template>\n  <ng-template contentTemplate>\n    <div class=\"mapping__wrap-view\" id=\"mapping__wrap-view\">\n      <div *ngIf=\"contentHTML\" [innerHTML]=\"contentHTML | safeHtml\" class=\"content-html\"></div>\n      <div *ngIf=\"!queriesData\" class=\"wrap-loading\" [ngStyle]=\"!contentHTML\n      ? { background : '#fff' }\n      : { background: 'rgba(0, 0, 0, 0.1)' }\n      \">\n      <img [src]=\"urlImgLoading\" alt=\"img-loading\" />\n    </div>\n      <iframe [src]=\"urlVisualizeChart | safe\" #iframeViewVisualizeMapping id=\"view-mapping-iframe\"\n        class=\"mapping__right-wrap--iframe\" [ngStyle]=\"\n        !showDefault && queriesData && !contentHTML\n          ? { display: 'block' }\n          : { display: 'none' }\n      \"></iframe>\n    </div>\n  </ng-template>\n  <ng-template rightTemplate>\n    <app-chart-right-bar (close)=\"backBar()\" (reloadPage)=\"editSuccess($event)\"\n      *ngIf=\"!isViewPublish\" [chart]=\"chartInfo\" [isEdit]=\"isEditInfo\">\n    </app-chart-right-bar>\n    <app-share-right-bar (reloadPage)=\"editSuccess($event)\" (close)=\"backBar($event)\" *ngIf=\"isViewPublish\"\n      [chart]=\"chartInfo\" [isPublish]=\"true\">\n\n    </app-share-right-bar>\n  </ng-template>\n</app-action-view-layout>\n<app-chart-delete (deleteSuccess)=\"onChart()\"></app-chart-delete>\n<app-chart-publish-dialog (reload)=\"updateSuccess($event)\" [isViewCenter]=\"true\"></app-chart-publish-dialog>\n","import {\n  Component,\n  Inject,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  ViewChild,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ChartItem } from \"../../model/chart\";\nimport { ChartService } from \"../chart.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CoreService, ErrorMessage, NotificationService } from \"inet-core\";\nimport { ChartDeleteComponent } from \"../chart-delete/chart-delete.component\";\nimport { Store } from \"@ngrx/store\";\nimport { IAppState } from \"../../core/store/state/app.state\";\nimport * as RightbarActions from \"../../core/store/actions/rightbar.action\";\nimport { rightbarSelector } from \"../../core/store/selectors/rightbar.selector\";\nimport { publishSelector } from \"../../core/store/selectors/publish.selector\";\nimport { ShareService } from \"../../share/share.service\";\nimport { updateNavigate } from \"../../core/store/actions/chart-bind.action\";\nimport { Subscription } from \"rxjs\";\nimport { DOCUMENT, Location } from \"@angular/common\";\nimport { FormBuilder } from \"@angular/forms\";\nimport { IParamsTemPlate, IResponse, IResTemplate } from \"../model/chart\";\nimport { IColumnParam, Schemas } from \"../../core/utils/get-column-chart\";\nimport { IResQueryParams } from \"../model/template\";\nimport {\n  CHART,\n  CUSTOM,\n  EXPLORE,\n  LIST,\n  MAPPING,\n  VIEW,\n} from \"../constants/constants\";\nimport { ChartPublishDialogComponent } from \"../chart-publish-dialog/chart-publish-dialog.component\";\nimport * as Publish_Action from \"../../core/store/actions/publish.action\";\nimport { OnTemplate } from \"../../layout-common/layout-common-constants\";\nimport { CreateTemplateComponent } from \"inet-visualize-creator\";\nimport { ViewChartAction } from \"../model/chart-action\";\n\n@Component({\n  selector: \"app-chart-create-template\",\n  templateUrl: \"./chart-create-template.component.html\",\n  styleUrls: [\"./chart-create-template.component.scss\"],\n})\nexport class ChartCreateTemplateComponent\n  implements OnInit, OnChanges, OnDestroy\n{\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  @ViewChild(ChartPublishDialogComponent)\n  dialogPublish!: ChartPublishDialogComponent;\n  @ViewChild(CreateTemplateComponent)\n  createTemplateComponent: CreateTemplateComponent;\n\n  isOpenRightBar: boolean = false;\n  isEditInfo: boolean = false;\n  uuidChart: string = \"\";\n  chartInfo: any;\n  isViewPublish: boolean = false;\n  sharedUuid: string;\n  storePublish$: Subscription;\n  columnsParams: IColumnParam[] = [];\n  formData: any;\n  schemas: Schemas;\n  loading: boolean = true;\n  uuidTemplate: string;\n  isValid: boolean = false;\n  private actionTranslate: any = {};\n  translateSubscription: Subscription;\n\n  action = ViewChartAction;\n  actionCurrent: string = \"\";\n  isShowHead: boolean = false;\n\n  constructor(\n    private route: ActivatedRoute,\n    private chartService: ChartService,\n    private translate: TranslateService,\n    private location: Location,\n    private notification: NotificationService,\n    private router: Router,\n    private store: Store<IAppState>,\n    private shareService: ShareService,\n    private fb: FormBuilder,\n    private coreService: CoreService,\n    @Inject(DOCUMENT) private document: any\n  ) {\n    // this.uuidChart = this.route.snapshot.parent.params['uuid'];\n\n    if (this.route.snapshot.parent.params[\"uuid\"]) {\n      this.uuidChart = this.route.snapshot.parent.params[\"uuid\"];\n      this.isShowHead = false;\n    } else {\n      this.route.queryParams.subscribe((res: IResQueryParams) => {\n        this.uuidChart = res.uuid;\n        this.isShowHead = true;\n      });\n    }\n\n    this.store.select(rightbarSelector).subscribe((res) => {\n      res ? (this.isOpenRightBar = true) : null;\n      this.isEditInfo = res;\n    });\n    this.store.select(publishSelector).subscribe((res) => {\n      if (this.chartInfo) {\n        const item = JSON.parse(JSON.stringify(this.chartInfo));\n        item.sharedUuid = res || undefined;\n        this.chartInfo = JSON.parse(JSON.stringify(item));\n      }\n    });\n\n    this.translateSubscription = translate\n      .get([\"VISUALIZE\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE\"];\n      });\n\n    this.route.queryParams.subscribe((value) => {\n      if (value.hasOwnProperty(\"isViewPublish\")) {\n        this.isViewPublish = true;\n      }\n    });\n    if (!this.isViewPublish) {\n      this.store.select(publishSelector).subscribe((res) => {\n        if (this.chartInfo) {\n          const item = JSON.parse(JSON.stringify(this.chartInfo));\n          item.sharedUuid = res || undefined;\n          this.chartInfo = JSON.parse(JSON.stringify(item));\n        }\n      });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {}\n\n  ngOnDestroy(): void {\n    if (this.storePublish$) {\n      this.storePublish$.unsubscribe();\n    }\n  }\n\n  ngOnInit(): void {\n    this.getChartItem(this.uuidChart);\n    this.actionCurrent = this.action.TEMPLATE;\n  }\n\n  ngAfterViewInit(): void {}\n\n  backBar(isOpen: boolean = false) {\n    this.isOpenRightBar = isOpen;\n    this.store.dispatch(\n      RightbarActions.showRightbar({ isShowRightbar: false })\n    );\n  }\n\n  deleteChart() {\n    this.chartDelete.onShowDialog(this.chartInfo);\n  }\n\n  loadDelete() {\n    setTimeout(() => {\n      this.router.navigateByUrl(\"\");\n    }, 100);\n  }\n\n  editSuccess(value: ChartItem) {\n    this.chartInfo = value;\n  }\n\n  getChartItem(uuid: string) {\n    this.chartService.loadChart({ uuid }).subscribe((res: IResponse) => {\n      this.loading = false;\n      this.chartInfo = res;\n      this.store.dispatch(updateNavigate({ data: res }));\n    });\n  }\n\n  onSave() {\n    if (this.isValid) {\n      let params: IParamsTemPlate = this.createTemplateComponent.getDataSave();\n      if (!this.uuidTemplate) {\n        this.chartService\n          .addNewTemplate(params)\n          .subscribe((res: IResTemplate | any) => {\n            if (res.type !== ErrorMessage.TYPE && res !== 'failure') {\n              this.notification.showMessage(\n                this.actionTranslate[\"SAVE_SUCCESS\"],\n                \"success\",\n                this.actionTranslate[\"NOTIFICATION\"]\n              );\n              this.uuidTemplate = res.uuid;\n            } else {\n              this.notification.showMessage(\n                this.actionTranslate[\"SAVE_FAIL\"],\n                \"error\",\n                this.actionTranslate[\"NOTIFICATION\"]\n              );\n            }\n          });\n      } else {\n        params[\"uuid\"] = this.uuidTemplate;\n        this.chartService\n          .updateTemplate(params)\n          .subscribe((res: IResTemplate | any) => {\n            if (res.type !== ErrorMessage.TYPE && res !== 'failure') {\n              this.notification.showMessage(\n                this.actionTranslate[\"SAVE_SUCCESS\"],\n                \"success\",\n                this.actionTranslate[\"NOTIFICATION\"]\n              );\n            } else {\n              this.notification.showMessage(\n                this.actionTranslate[\"SAVE_FAIL\"],\n                \"error\",\n                this.actionTranslate[\"NOTIFICATION\"]\n              );\n            }\n          });\n      }\n    }\n  }\n\n  back() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  onPublishAction() {\n    this.dialogPublish.showDialogChange(this.chartInfo);\n  }\n\n  onTemplate() {\n    this.actionCurrent = this.action.TEMPLATE;\n    // this.router.navigate(['/', CHART, this.navSub.uuid, TEMPLATE]);\n  }\n\n  onChart() {\n    this.router.navigate([\"/\", CHART, LIST]);\n  }\n\n  onCopyPath() {\n    let uuid = this.isViewPublish\n      ? this.chartInfo.uuid\n      : this.chartInfo.sharedUuid;\n    this.shareService.copyPath(uuid).subscribe((status) => {\n      let key = status\n        ? \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS\"\n        : \"VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD\";\n      this.notification.showMessage(\n        this.translate.instant(key),\n        status ? \"success\" : \"error\",\n        \"Visualize\"\n      );\n    });\n  }\n\n  onView() {\n    this.actionCurrent = this.action.VIEW;\n    if (\"fields\" in this.chartInfo) {\n      this.router.navigate([\"/\", CHART, MAPPING, VIEW], {\n        queryParams: {\n          uuid: this.chartInfo.uuid,\n        },\n      });\n    } else {\n      const a = [\n        [\"/\", CHART, CUSTOM, VIEW],\n        [\"/\", CHART, this.chartInfo.uuid, VIEW],\n      ];\n      OnTemplate(this.chartInfo, this.router, a);\n    }\n  }\n\n  onExplore() {\n    this.actionCurrent = this.action.EXPLORE;\n    if (\"fields\" in this.chartInfo) {\n      this.router.navigate([`/${CHART}/${MAPPING}`], {\n        queryParams: {\n          uuid: this.chartInfo.uuid,\n        },\n      });\n    } else {\n      const a = [\n        [`/${CHART}/${CUSTOM}`],\n        [CHART, this.chartInfo.uuid, EXPLORE],\n      ];\n      OnTemplate(this.chartInfo, this.router, a);\n    }\n  }\n\n  editInfoChart() {\n    this.store.dispatch(RightbarActions.showRightbar({ isShowRightbar: true }));\n  }\n\n  updateSuccess(event: any) {\n    const item = JSON.parse(JSON.stringify(this.chartInfo));\n    item.sharedUuid = event.uuid || undefined;\n    if (event.uuid) {\n      this.store.dispatch(\n        Publish_Action.sharedUuid({ sharedUuid: event.uuid })\n      );\n      this.chartInfo = JSON.parse(JSON.stringify(item));\n    } else {\n      if (this.isViewPublish) {\n        this.location.back();\n        this.isViewPublish = false;\n      } else {\n        this.store.dispatch(\n          Publish_Action.sharedUuid({ sharedUuid: undefined })\n        );\n        this.chartInfo = JSON.parse(JSON.stringify(item));\n      }\n    }\n  }\n\n  onDelete(item: ChartItem) {\n    this.chartDelete.onShowDialog(item);\n  }\n\n  getIsValid(isValid: boolean) {\n    this.isValid = isValid;\n  }\n}","<div class=\"template__head\" *ngIf=\"isShowHead\">\n  <ul class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\" style=\"flex: 1\">\n    <li (click)=\"back()\" class=\"pointer\">\n      {{ \"VISUALIZE.CHART.FIELD.TITLE_CHART\" | translate }}\n    </li>\n    <li class=\"active font-weight-medium text-truncate\">\n      {{ chartInfo?.name || \"\" | translate }}\n    </li>\n  </ul>\n  <div class=\"template__btn\" *ngIf=\"uuidChart\">\n    <div class=\"tabs-custom\">\n      <div\n        (click)=\"onView()\"\n        [class.active]=\"actionCurrent === action.VIEW\"\n        class=\"tab-item font-weight-medium\"\n      >\n        <span\n          [class.active]=\"actionCurrent.startsWith(action.VIEW)\"\n          class=\"fa fa-eye mr-1\"\n        ></span\n        ><span class=\"current\">{{\n          \"VISUALIZE.CHART.FIELD.VIEW\" | translate\n        }}</span>\n      </div>\n      <div\n        (click)=\"onExplore()\"\n        [class.active]=\"actionCurrent === action.EXPLORE\"\n        class=\"tab-item font-weight-medium\"\n      >\n        <span\n          [class.active]=\"actionCurrent.startsWith(action.EXPLORE)\"\n          class=\"fa fa-pencil mr-1\"\n        ></span\n        ><span class=\"current\">{{\n          \"VISUALIZE.CHART.FIELD.ACTION_EDIT\" | translate\n        }}</span>\n      </div>\n      <div\n        (click)=\"onTemplate()\"\n        [class.active]=\"actionCurrent === action.TEMPLATE\"\n        class=\"tab-item font-weight-medium\"\n        style=\"padding: 0 10px\"\n      >\n        <span\n          [class.active]=\"actionCurrent.startsWith(action.TEMPLATE)\"\n          class=\"fa fa-object-ungroup mr-1\"\n        ></span\n        ><span class=\"current\">{{\n          \"VISUALIZE.FIELD.PUBLISH_AS_TEMPLATE\" | translate\n        }}</span>\n      </div>\n      <button\n        (click)=\"editInfoChart()\"\n        class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"\n      >\n        <i class=\"fa fa-pencil-square-o mr-2\" style=\"font-size: 15px\"></i\n        >{{ \"VISUALIZE.FIELD.EDIT_INFO\" | translate }}\n      </button>\n      <button\n        (click)=\"onPublishAction()\"\n        class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"\n      >\n        <i\n          [ngClass]=\"!chartInfo?.sharedUuid ? 'fa-globe' : 'fa-link'\"\n          class=\"fa f-20 mr-2\"\n        ></i>\n        {{\n          !chartInfo?.sharedUuid\n            ? (\"VISUALIZE.CHART.FIELD.ACTION_PUBLISH\" | translate)\n            : (\"VISUALIZE.CHART.FIELD.ACTION_UN_PUBLISH\" | translate)\n        }}\n      </button>\n      <button\n        (click)=\"onCopyPath()\"\n        *ngIf=\"chartInfo?.sharedUuid\"\n        class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"\n      >\n        <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n        {{ \"VISUALIZE.CHART.FIELD.COPY_SCR\" | translate }}\n      </button>\n      <button\n        (click)=\"deleteChart()\"\n        class=\"btn btn-sm mx-1 btn-custom btn-custom-danger\"\n      >\n        <i class=\"fa fa-trash-o mr-2\"></i\n        >{{ \"VISUALIZE.CHART.FIELD.ACTION_DELETE\" | translate }}\n      </button>\n    </div>\n  </div>\n</div>\n\n<app-action-view-layout\n  [header]=\"''\"\n  [isChild]=\"true\"\n  [isRightBar]=\"isOpenRightBar\"\n  [isViewFull]=\"true\"\n  [namePage]=\"chartInfo?.name || chartInfo?.title || chartInfo?.chartTitle\"\n>\n  <ng-template btnBottomTemplate>\n    <button\n      [disabled]=\"!isValid\"\n      class=\"btn btn-sm mx-1 btn-custom btn-custom-primary btn-next-step\"\n      type=\"button\"\n      (click)=\"onSave()\"\n    >\n      <i\n        class=\"fa fa-save mr-2\"\n        style=\"font-size: 15px; margin-bottom: 2px\"\n      ></i>\n      {{ \"VISUALIZE.FIELD.TITTLE.SAVE\" | translate }}\n    </button>\n    <button\n      (click)=\"backBar(!isOpenRightBar)\"\n      [ngClass]=\"isOpenRightBar ? 'opened' : ''\"\n      class=\"btn-custom btn-custom-icon px-1\"\n    >\n      <i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i>\n    </button>\n  </ng-template>\n\n  <ng-template contentTemplate>\n    <lib-create-template\n      [chartItem]=\"chartInfo\"\n      (emitValid)=\"getIsValid($event)\"\n    ></lib-create-template>\n  </ng-template>\n\n  <ng-template rightTemplate>\n    <app-chart-right-bar\n      (close)=\"backBar()\"\n      (delete)=\"deleteChart()\"\n      (reloadPage)=\"editSuccess($event)\"\n      *ngIf=\"!isViewPublish\"\n      [chart]=\"chartInfo\"\n      [isEdit]=\"isEditInfo\"\n    >\n    </app-chart-right-bar>\n    <app-share-right-bar\n      (reloadPage)=\"editSuccess($event)\"\n      (close)=\"backBar($event)\"\n      *ngIf=\"isViewPublish\"\n      [chart]=\"chartInfo\"\n      [isPublish]=\"true\"\n    >\n    </app-share-right-bar>\n  </ng-template>\n</app-action-view-layout>\n<!--<app-chart-delete (deleteSuccess)=\"loadDelete()\"></app-chart-delete>-->\n<app-chart-delete (deleteSuccess)=\"onChart()\"></app-chart-delete>\n<app-chart-publish-dialog\n  (reload)=\"updateSuccess($event)\"\n  [isViewCenter]=\"true\"\n></app-chart-publish-dialog>\n","import {NgModule} from \"@angular/core\";\nimport {RouterModule, Routes} from \"@angular/router\";\nimport {ChartListComponent} from \"./chart-list/chart-list.component\";\nimport {ChartAddComponent} from \"./chart-add/chart-add.component\";\nimport {ChartExploreComponent} from \"./chart-explore/chart-explore.component\";\nimport {ChartCenterComponent} from \"./chart-center/chart-center.component\";\nimport { ChartMappingComponent } from \"./chart-mapping/chart-mapping.component\";\nimport { ChartCustomComponent } from \"./chart-custom/chart-custom.component\";\nimport {ChartMappingViewComponent} from \"./chart-mapping-view/chart-mapping-view.component\";\nimport {ChartCreateTemplateComponent} from \"./chart-create-template/chart-create-template.component\";\nimport { HTMLTemplateComponent, ChooseTemplateComponent } from \"inet-visualize-creator\";\n\nconst routes: Routes = [\n  {path: '', redirectTo: 'list', pathMatch: 'full'},\n  {path: 'list', component: ChartListComponent},\n  {path: 'add', component: ChartAddComponent},\n  {path: 'html', component: HTMLTemplateComponent},\n  {path: 'explore', component: ChartExploreComponent},\n  {path: 'template', component: ChooseTemplateComponent},\n  {path: 'mapping', component: ChartMappingComponent},\n  {path: 'custom', component: ChartCustomComponent},\n  {path: 'mapping/view', component: ChartMappingViewComponent},\n  {path: 'custom/view', component: ChartMappingViewComponent},\n  {path: 'create/template', component: ChartCreateTemplateComponent},\n  {\n    path: ':uuid', component: ChartCenterComponent,\n    loadChildren: () => import('./chart-child/chart-child.module').then(m => m.ChartChildModule)\n  },\n\n]\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule]\n})\nexport class ChartRoutingModule {\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, of, timer} from 'rxjs';\nimport {delay, expand, skip} from 'rxjs/operators';\n\nexport const MINUTE = 60;\nexport const HOUR = MINUTE * 60;\nexport const DAY = HOUR * 24;\n/*\nexport const WEEK = DAY * 7;\nexport const MONTH = DAY * 30;\nexport const YEAR = DAY * 365;\n\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class TimeAgoService {\n\n  constructor() {\n  }\n\n  tick(then: number): Observable<any> {\n    return of(0)\n      .pipe(\n        delay(60000),\n        expand(() => {\n          const now = Date.now();\n          const seconds = Math.round(Math.abs(now - then) / 1000);\n          //console.log('[tick]', new Date(), seconds);\n          const period =\n            seconds < MINUTE\n              ? 1000\n              : seconds < HOUR\n              ? 1000 * MINUTE\n              : seconds < DAY\n                ? 1000 * HOUR\n                : 0;\n          //console.log('[period]',period);\n          return period ? timer(period) : of(0);\n        }),\n        skip(1)\n      );\n  }\n}\n\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from '@angular/core';\nimport { format, register } from 'timeago.js';\nimport {TimeAgoService} from \"./time-ago.service\";\nimport {Subject, Subscription} from \"rxjs\";\nimport {filter} from \"rxjs/operators\";\nimport {CloudTranslateService} from \"inet-ui\";\nregister('vi', (number: any, index: any, total_sec: any): [string, string] => {\n  // number: the timeago / timein number;\n  // index: the index of array below;\n  // total_sec: total seconds between date to be formatted and today's date;\n  // @ts-ignore\n  return [\n    ['vừa xong', 'một lúc'],\n    ['%s giây trước', '%s giây nữa'],\n    ['1 phút trước', '1 phút nữa'],\n    ['%s phút trước', '%s phút nữa'],\n    ['1 giờ trước', '1 giờ nữa'],\n    ['%s giờ trước', '%s giờ nữa'],\n    ['1 ngày trước', '1 ngày nữa'],\n    ['%s ngày trước', '%s ngày nữa'],\n    ['1 tuần trước', '1 tuần nữa'],\n    ['%s tuần trước', '%s tuần nữa'],\n    ['1 tháng trước', '1 tháng nữa'],\n    ['%s tháng trước', '%s tháng nữa'],\n    ['1 năm trước', '1 năm nữa'],\n    ['%s năm trước', '%s năm nữa']\n  ][index];\n});\n\n@Pipe({\n  name: 'timeAgo',\n  pure: false\n})\nexport class TimeAgoPipe implements PipeTransform, OnDestroy {\n  private clockSubscription: Subscription;\n  private date: number;\n  private value: string;\n  private live = true;\n  private locale: string;\n  stateChanges = new Subject<void>();\n\n  constructor(cd: ChangeDetectorRef,\n              private timeService: TimeAgoService,\n              private cloudTranslateService: CloudTranslateService) {\n\n    this.stateChanges.subscribe(() => {\n      this.value = format(this.date, this.locale);\n      cd.markForCheck();\n    });\n  }\n\n  transform(date: any, live?: boolean): string {\n    this.date = date;\n    this.live = live;\n    this.locale = this.cloudTranslateService.getCurrentLang() || 'vi';\n    if (this.date) {\n      if (this.clockSubscription) {\n        this.clockSubscription.unsubscribe();\n        this.clockSubscription = undefined;\n      }\n      this.clockSubscription = this.timeService.tick(this.date)\n        .pipe(filter(() => this.live, this))\n        .subscribe((v) => {\n          this.stateChanges.next()\n\n        });\n      this.stateChanges.next();\n      return this.value;//format(this.date, this.locale);\n    } else {\n      //throw new SyntaxError(`Expected a valid date, received: ${date}`);\n      return '';\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.clockSubscription) {\n      this.clockSubscription.unsubscribe();\n      this.clockSubscription = undefined;\n    }\n    this.stateChanges.complete();\n  }\n}\n","import {Directive, ElementRef, HostListener} from '@angular/core';\n\n@Directive({\n  selector: '[numberic]'\n})\nexport class NumbericDirective {\n  dataValue: string = '';\n  constructor(private eleRef: ElementRef) {\n  }\n  @HostListener('input', ['$event'])\n  onInput(e) {\n    var value = e.target.value;\n    value = this.removeAccents(value?.trim());\n    if(!!value) {\n      if (new RegExp('^[0-9]*$').test(value)) {\n        this.eleRef.nativeElement.value = value || '';\n        this.dataValue = value || '';\n      } else {\n        this.eleRef.nativeElement.value = this.dataValue || '';\n      }\n    } else {\n      this.dataValue = '';\n    }\n  }\n\n  removeAccents(str: any) {\n    return (str as any).removeAccents();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'filterDatatype'\n})\nexport class FilterDatatypePipe implements PipeTransform {\n\n  transform(array: Array<any>, datatype: string): Array<any> {\n    return array.filter((_item) => _item.datatype.toLowerCase() === datatype.toLowerCase());\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'nameDatatype'\n})\nexport class NameDatatypePipe implements PipeTransform {\n  transform(value: string, datatype: any[]): string {\n    let result: string = '';\n    if (!!value) {\n      result = datatype.find((_item) => value === _item.value).name;\n    } else {\n      result = ''\n    }\n    result = !!result ? `(${result})` : ''\n    return result;\n  }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TimeAgoPipe} from \"./time-ago.pipe\";\nimport {NumbericDirective} from './numberic.directive';\nimport {FilterDatatypePipe} from './filter-datatype.pipe';\nimport {NameDatatypePipe} from './name-datatype.pipe';\nimport {SearchStringDirective} from './search-string.directive';\nimport {GridViewLayoutComponent} from \"./grid-view-layout/grid-view-layout.component\";\nimport {ActionViewLayoutComponent} from './action-view-layout/action-view-layout.component';\nimport {CenterViewLayoutComponent} from './center-view-layout/center-view-layout.component';\nimport {NavigationCenterTemplateDirective} from './directive/navigation-center-template.directive';\nimport {ToolbarCenterTemplateDirective} from './directive/toolbar-center-template.directive';\nimport {ToolbarTopTemplateDirective} from './directive/toolbar-top-template.directive';\nimport {ToolbarBottomTemplateDirective} from './directive/toolbar-bottom-template.directive';\nimport {BtnTopTemplateDirective} from './directive/btn-top-template.directive';\nimport {BtnBottomTemplateDirective} from './directive/btn-bottom-template.directive';\nimport {RightTemplateDirective} from './directive/right-template.directive';\nimport {ContentTemplateDirective} from './directive/content-template.directive';\nimport {PaginationTemplateDirective} from './directive/pagination-template.directive';\nimport {GridTemplateDirective} from './directive/grid-template.directive';\nimport {BulkSelectTemplateDirective} from './directive/bulk-select-template.directive';\nimport {RightBarComponent} from \"./right-bar/right-bar.component\";\nimport {GridEmptyLayoutComponent} from \"./grid-empty-layout/grid-empty-layout.component\";\nimport {TranslateModule} from \"@ngx-translate/core\";\nimport { ViewDataChartComponent } from './view-data-chart/view-data-chart.component';\nimport {CustomPaginationModule} from \"inet-ui\";\nimport {AngularSlickgridModule} from \"angular-slickgrid\";\n\n@NgModule({\n  declarations: [\n    TimeAgoPipe,\n    NumbericDirective,\n    FilterDatatypePipe,\n    RightBarComponent,\n    NameDatatypePipe,\n    SearchStringDirective,\n    GridViewLayoutComponent,\n    ActionViewLayoutComponent,\n    CenterViewLayoutComponent,\n    NavigationCenterTemplateDirective,\n    ToolbarCenterTemplateDirective,\n    ToolbarTopTemplateDirective,\n    ToolbarBottomTemplateDirective,\n    BtnTopTemplateDirective,\n    BtnBottomTemplateDirective,\n    RightTemplateDirective,\n    ContentTemplateDirective,\n    PaginationTemplateDirective,\n    GridTemplateDirective,\n    BulkSelectTemplateDirective,\n    GridEmptyLayoutComponent,\n    ViewDataChartComponent\n  ],\n  exports: [\n    NumbericDirective,\n    RightBarComponent,\n    TimeAgoPipe,\n    FilterDatatypePipe,\n    NameDatatypePipe,\n    SearchStringDirective,\n    GridViewLayoutComponent,\n    ActionViewLayoutComponent,\n    ToolbarTopTemplateDirective,\n    BtnBottomTemplateDirective,\n    BtnTopTemplateDirective,\n    RightTemplateDirective,\n    ContentTemplateDirective,\n    PaginationTemplateDirective,\n    GridTemplateDirective,\n    BulkSelectTemplateDirective,\n    ToolbarBottomTemplateDirective,\n    CenterViewLayoutComponent,\n    ToolbarCenterTemplateDirective,\n    NavigationCenterTemplateDirective,\n    GridEmptyLayoutComponent,\n    ViewDataChartComponent\n  ],\n  imports: [\n    CommonModule,\n    TranslateModule,\n    CustomPaginationModule,\n    AngularSlickgridModule,\n  ]\n})\nexport class LayoutCommonModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { BsLocaleService } from 'ngx-bootstrap/datepicker';\nimport { CoreModule, HttpClientService } from \"inet-core\";\nimport { AuthenticateGuard, InterceptorModule, PipeCommonModule } from 'inet-ui';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ComponentLoaderFactory } from \"ngx-bootstrap/component-loader\";\nimport { PositioningService } from \"ngx-bootstrap/positioning\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n  imports: [\n    TranslateModule,\n    ModalModule.forRoot()\n  ],\n  declarations: [],\n  exports: [\n    CommonModule,\n    FormsModule,\n    HttpClientModule,\n    InterceptorModule,\n    CoreModule,\n    TranslateModule,\n    ModalModule,\n    PipeCommonModule\n  ],\n  providers: [\n    ComponentLoaderFactory,\n    AuthenticateGuard,\n    PositioningService,\n    BsLocaleService,\n    HttpClientService\n  ]\n\n})\nexport class DashboardCommonModule {\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ModalModule, BsModalService } from \"ngx-bootstrap/modal\";\nimport { ConfirmDialogComponent } from \"./confirm-dialog.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ModalContentDirective } from \"./modal-content.directive\";\nimport { ModalActionDirective } from \"./modal-action.directive\";\nimport { ModalHeaderDirective } from \"./modal-header.directive\";\n\n@NgModule({\n  imports: [CommonModule, ModalModule.forRoot(), TranslateModule],\n  declarations: [\n    ConfirmDialogComponent,\n    ModalContentDirective,\n    ModalActionDirective,\n    ModalHeaderDirective,\n  ],\n  exports: [\n    ConfirmDialogComponent,\n    ModalContentDirective,\n    ModalActionDirective,\n    ModalHeaderDirective,\n  ],\n  providers: [BsModalService],\n})\nexport class DialogModule {}\n","import {createSelector} from '@ngrx/store';\nimport { FEATURE_NAME } from '../../models/feature';\nimport {IAppState} from \"../state/app.state\";\n\nconst errorState = (state: IAppState) => (state as any)[FEATURE_NAME]?.error;\n\nexport const errorSelector = createSelector(errorState, state => state?.error);\n","import {ActionType, createAction, props} from \"@ngrx/store\";\nimport { Schemas } from \"../../utils/get-column-chart\";\n\n\nexport enum ESchemaAction {\n  SET_SCHEMAS = 'set schemas',\n  SET_FORMDATA = 'set form data'\n}\n\nexport const schemas = createAction(ESchemaAction.SET_SCHEMAS, props<{ schemas: Schemas }>());\nexport const formData = createAction(ESchemaAction.SET_FORMDATA, props<{formData: any}>());\n\nexport type SchemasAction = | ActionType<typeof schemas> | ActionType<typeof formData>\n","import {\n  AfterViewInit,\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n} from \"@angular/core\";\nimport {\n  CoreService,\n  ErrorMessage,\n  iNet,\n  NotificationService,\n} from \"inet-core\";\nimport * as CONSTANT from \"../../chart/constants/constants\";\nimport { decode } from \"js-base64\";\nimport { errorSelector } from \"../../core/store/selectors/error.selector\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Store } from \"@ngrx/store\";\nimport { IAppState } from \"../../core/store/state/app.state\";\nimport { Subscription } from \"rxjs\";\nimport * as ErrorActions from \"../../core/store/actions/error.action\";\nimport * as SchemasActions from \"../../core/store/actions/schemas.actions\";\nimport { ShareService } from \"../../share/share.service\";\nimport { ChartService } from \"../../chart/chart.service\";\nimport {\n  EVizType,\n  FilterColumn,\n  IFilter,\n  KeyValue,\n} from \"../../chart/model/chart-custom\";\nimport { IControlTemplateHTML } from \"../../chart/model/html-template\";\nimport {\n  ETypeSubmit,\n  IAttribute,\n  IField,\n  IParamsChart,\n} from \"../../chart/model/template\";\nimport { convertCalcLoop, handleCalcLoop, handleLoop } from \"../../common\";\n\n@Component({\n  selector: \"app-iframe-view\",\n  templateUrl: \"./iframe-view.component.html\",\n  styleUrls: [\"./iframe-view.component.scss\"],\n})\nexport class IframeViewComponent implements OnInit, AfterViewInit, OnChanges {\n  @Input() chartInput: any;\n  @Input() isResize: boolean = true;\n  @Input() isShareView: boolean = false;\n  isFirstLoad: boolean = true;\n  chart: any = null;\n  msgContentDel: string = \"\";\n  isPlugin: boolean = false;\n  width: number;\n  height: number;\n  prevHeight: number;\n  prevWidth: number;\n  dsTable: string = \"\";\n  dsCategory: string = \"\";\n  dsType: string = \"\";\n  vizType: string = \"\";\n  callData: any;\n  callExplore: any;\n  callEachExplore: any;\n  columns: any[] = [];\n  errorMessage: any;\n  plugin = iNet.getPluginManager();\n  schemas: any;\n  typeSubmit: string;\n  queriesData: any = null;\n  loading: boolean = true;\n  urlLoading: string;\n  sendJsChart: boolean = true;\n  getMessageApp: EventListenerOrEventListenerObject;\n  urlVisualizeChart: string = iNet.getPUrl(\"visualcommon/page/visualize-chart\");\n  contentHTML: string = \"\";\n  private readonly translateSubscription: Subscription;\n  private actionTranslate: any = {};\n  paramsChart: IParamsChart;\n  fields: IField[] = [];\n\n  constructor(\n    private route: ActivatedRoute,\n    private chartService: ChartService,\n    private translate: TranslateService,\n    private notification: NotificationService,\n    private router: Router,\n    private store: Store<IAppState>,\n    private coreService: CoreService,\n    private shareService: ShareService\n  ) {\n    this.store.select(errorSelector).subscribe((res) => {\n      if (res) {\n        this.loading = false;\n      }\n      this.errorMessage = res;\n    });\n    this.urlLoading = this.coreService.getImageUrlFromModule(\n      \"loading.gif\",\n      \"visualcommon\"\n    );\n    this.translateSubscription = translate\n      .get([\"VISUALIZE.CHART.FIELD\"])\n      .subscribe((data) => {\n        this.actionTranslate = data[\"VISUALIZE.CHART.FIELD\"];\n      });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes && changes[\"isResize\"] && !this.isFirstLoad) {\n      this.onResize();\n    }\n    this.isFirstLoad = false;\n  }\n\n  ngOnInit(): void {\n    this.getMessageApp = this.getMessageExploreApp.bind(this);\n    window.addEventListener(\"message\", this.getMessageApp, false);\n  }\n\n  ngAfterViewInit(): void {\n    window.addEventListener(\"resize\", () => {\n      const parent = document.getElementById(\"container-chart\");\n      if (parent) {\n        setTimeout(() => {\n          this.width = parent.offsetWidth;\n          this.height = parent.offsetHeight;\n          if (\n            this.height !== this.prevHeight ||\n            this.width !== this.prevWidth\n          ) {\n            if (Array.isArray(this.queriesData)) {\n              let message = {\n                eventName: CONSTANT.SEND_DATA_TO_VISUAL_CHART,\n                signFrom: \"superset_app\",\n                result: JSON.stringify({\n                  width: this.width - 50,\n                  height: this.height - 30,\n                  vizType: this.chart?.vizType,\n                  formData: this.chart?.formData,\n                  queriesData: this.queriesData || [],\n                }),\n              };\n              this.sendMessage(message);\n            }\n          }\n          this.prevHeight = parent.offsetHeight;\n          this.prevWidth = parent.offsetWidth;\n        }, 500);\n      }\n    });\n  }\n\n  getMessageExploreApp(event: any) {\n    const data = event.data;\n    if (data.signFrom !== \"chart_visual\") {\n      return;\n    }\n    let result: any;\n    if (typeof data.result === \"string\") {\n      result = JSON.parse(data.result);\n    } else {\n      result = data.result;\n    }\n    switch (event.data.eventName) {\n      case \"send_load_js_done\":\n        this.sendJsChart = false;\n        switch (this.vizType) {\n          case EVizType.BAR_COMPARE:\n            this.getDataVisualize(this.paramsChart);\n            break;\n          case EVizType.MIXED:\n            this.getDataVisualize(this.paramsChart);\n            break;\n          case EVizType.BAR_V2:\n            this.getExpVisualize(this.paramsChart);\n            break;\n          case EVizType.TABLE_CUSTOM:\n          case EVizType.CANDLESTICK:\n            this.getCustomVisualize(this.paramsChart);\n            break;\n          default:\n            if (this.fields.length > 0) {\n              if (this.typeSubmit === ETypeSubmit.DATA) {\n                this.getDataVisualize(this.paramsChart);\n              } else if (this.typeSubmit === ETypeSubmit.EXPLORE_JSON) {\n                this.getExpVisualize(this.paramsChart);\n              }\n            } else {\n              this.converParamsGetDataVisualize({\n                form_data: JSON.parse(JSON.stringify(this.chart?.formData)),\n                queries: this.chart?.queries,\n              });\n            }\n            break;\n        }\n        break;\n      default:\n        break;\n    }\n  }\n\n  loadDataChart() {\n    if (this.chartInput) {\n      this.chart = JSON.parse(decode(this.chartInput?.attribute)) as IAttribute;\n      this.fields = this.chartInput.fields || [];\n      this.store.dispatch(\n        SchemasActions.formData({ formData: this.chart.formData })\n      );\n      this.contentHTML = this.chart.contentHTML;\n      this.dsType = this.chartInput.dsType;\n      this.dsCategory = this.chartInput.dsCategory;\n      this.dsTable = this.chartInput.dsTable;\n      this.vizType = this.chart.vizType.vizType;\n      const datasource = {\n        type: this.dsType,\n        category: this.dsCategory,\n        table: this.dsTable,\n      };\n\n      this.typeSubmit = this.chart.typeSubmit;\n      if (this.vizType === EVizType.HTML_TEMPLATE) {\n        const forDataSubmit = this.chart.formData as IControlTemplateHTML;\n        let formData: KeyValue = {};\n        formData = {\n          columns: Object.values(forDataSubmit.select).filter((colum) => colum),\n          datasource,\n          row_limit: 1,\n          filter: this.convertFilter(forDataSubmit.filters),\n        };\n        this.paramsChart = {\n          datasource,\n          formData,\n          force: \"fales\",\n          result_format: \"json\",\n          result_type: \"full\",\n        };\n        if (this.fields.length > 0) {\n          this.paramsChart.fields = this.fields;\n        }\n        const arrLoop = forDataSubmit.loop || [];\n\n        for (const iterator of Object.keys(this.paramsChart)) {\n          if (typeof this.paramsChart[iterator] !== \"string\") {\n            this.paramsChart[iterator] = JSON.stringify(\n              this.paramsChart[iterator]\n            );\n          }\n        }\n        if (\n          forDataSubmit.filters.length > 0 ||\n          Object.values(forDataSubmit.select).filter((colum) => colum).length >\n            0\n        ) {\n          this.chartService\n            .getDataCustom(this.paramsChart)\n            .subscribe((res: any) => {\n              this.loading = false;\n              if (res.elements.length > 0) {\n                const obj = res.elements[0];\n                const calcLoop = arrLoop.filter((l) =>\n                  l.name.includes(\"calc(\")\n                );\n                for (const iterator of calcLoop) {\n                  iterator[\"operator\"] = \"\";\n                }\n                for (const iterator of Object.keys(forDataSubmit.select)) {\n                  if (forDataSubmit.select[iterator]) {\n                    const arrSpan = document.querySelectorAll(\n                      `span[name=\"${iterator}\"]`\n                    );\n                    arrSpan.forEach((span) => {\n                      span.innerHTML = obj[forDataSubmit.select[iterator]];\n                    });\n                  }\n                  if (arrLoop.length > 0) {\n                    handleLoop(arrLoop, obj, iterator, forDataSubmit.select);\n                  }\n                  if (calcLoop.length > 0) {\n                    convertCalcLoop(\n                      calcLoop,\n                      obj,\n                      forDataSubmit.select,\n                      iterator\n                    );\n                  }\n                }\n                if (calcLoop.length > 0) {\n                  handleCalcLoop(calcLoop);\n                }\n              }\n            });\n        } else {\n          this.loading = false;\n        }\n      } else {\n        if (this.vizType === EVizType.TABLE_CUSTOM) {\n          this.paramsChart = {\n            datasource,\n            formData: this.chart.queries,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n        } else if (this.vizType === EVizType.CANDLESTICK) {\n          this.paramsChart = {\n            datasource,\n            formData: this.chart.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n        } else {\n          this.paramsChart = {\n            datasource,\n            queries: this.chart.queries,\n            form_data: this.chart.formData,\n            result_format: \"json\",\n            result_type: \"full\",\n            force: \"false\",\n          };\n        }\n\n        if (this.fields.length > 0) {\n          this.paramsChart[\"fields\"] = this.fields;\n        }\n\n        for (const iterator of Object.keys(this.paramsChart)) {\n          if (typeof this.paramsChart[iterator] !== \"string\") {\n            this.paramsChart[iterator] = JSON.stringify(\n              this.paramsChart[iterator]\n            );\n          }\n        }\n        this.getSchema({\n          type: this.chartInput.dsType,\n          category: this.chartInput.dsCategory,\n          name: this.chartInput.dsTable,\n        });\n      }\n    }\n  }\n\n  getDataVisualize(params: any) {\n    this.callData = this.chartService\n      .getDataVisualize(params)\n      .subscribe((result: any) => {\n        this.loading = false;\n        if (result.type !== ErrorMessage.TYPE) {\n          this.queriesData =\n            this.vizType === \"mixed_timeseries\" ||\n            this.vizType === EVizType.MIXED\n              ? result.elements\n              : [result];\n          let message = {\n            eventName: CONSTANT.SEND_DATA_TO_VISUAL_CHART,\n            signFrom: \"superset_app\" || CONSTANT.ANALYTICS_APP,\n            result: JSON.stringify({\n              width: this.width - 50,\n              height: this.height - 30,\n              vizType: this.chart?.vizType,\n              formData: this.chart?.formData,\n              queriesData:\n                this.vizType === \"mixed_timeseries\" ||\n                this.vizType === EVizType.MIXED\n                  ? result.elements\n                  : [result],\n            }),\n          };\n          this.sendMessage(message);\n        } else {\n          this.errorMessage = `${result.errors[0].field}: ${result.errors[0].code}`;\n        }\n      });\n  }\n\n  //get data visualize by type submit explore\n  getExpVisualize(params: any) {\n    this.callExplore = this.chartService\n      .getExpVisualize(params)\n      .subscribe((result: any) => {\n        if (result.type !== ErrorMessage.TYPE) {\n          if (this.vizType !== \"deck_multi\") {\n            this.loading = false;\n            this.queriesData = [result];\n            let message = {\n              eventName: CONSTANT.SEND_DATA_TO_VISUAL_CHART,\n              signFrom: \"superset_app\" || CONSTANT.ANALYTICS_APP,\n              result: JSON.stringify({\n                width: this.width - 50,\n                height: this.height - 30,\n                vizType: this.chart?.vizType,\n                formData: this.chart?.formData,\n                queriesData: [result],\n              }),\n            };\n            this.sendMessage(message);\n          } else {\n            const arrLayer: any[] = [];\n            let arrDataQueries: any[] = [];\n            for (const iterator of result.data) {\n              const params = JSON.parse(decode(iterator?.attribute));\n              const datasource = {\n                table: iterator.dsTable,\n                type: iterator.dsType,\n                category: iterator.dsCategory,\n              };\n              if (\n                iterator.dsTable === this.dsTable &&\n                iterator.dsType === this.dsType &&\n                iterator.dsCategory === this.dsCategory\n              ) {\n                params.formData.adhoc_filters = [\n                  ...params.formData.adhoc_filters,\n                  ...result.form_data.adhoc_filters,\n                ];\n              }\n\n              const object = {\n                datasource,\n                form_data: params.formData,\n                name: iterator.name,\n              };\n\n              this.convertParamsSubmit(object)\n                .then((res: any) => {\n                  arrLayer.push(res);\n                })\n                .then(() => {\n                  //send data for chart deckGL multi layers\n                  if (arrLayer.length === result.data.length) {\n                    arrLayer.forEach((element, index) => {\n                      if (element.type !== ErrorMessage.TYPE) {\n                        arrDataQueries.push(element);\n                      }\n                    });\n                    arrDataQueries = arrDataQueries.filter((item) => {\n                      if (item.data.length !== 0) {\n                        return item;\n                      }\n                    });\n                    result.data = { mapboxApiKey: \"\", slices: arrDataQueries };\n                    this.queriesData = [{ data: result.data }];\n                    this.loading = false;\n                    let message = {\n                      eventName: CONSTANT.SEND_DATA_TO_VISUAL_CHART,\n                      signFrom: \"superset_app\" || CONSTANT.ANALYTICS_APP,\n                      result: JSON.stringify({\n                        width: this.width - 50,\n                        height: this.height - 30,\n                        vizType: this.chart?.vizType,\n                        formData: this.chart?.formData,\n                        queriesData:\n                          arrDataQueries.length > 0\n                            ? [{ data: result.data }]\n                            : [],\n                      }),\n                    };\n                    this.sendMessage(message);\n                  }\n                });\n            }\n          }\n        } else {\n          this.loading = false;\n          this.errorMessage = `${result.errors[0].field}: ${result.errors[0].code}`;\n        }\n      });\n  }\n\n  getCustomVisualize(param: any) {\n    this.chartService.getDataCustom(param).subscribe((res: any) => {\n      this.loading = false;\n      if (res.type !== ErrorMessage.TYPE) {\n        if (res.elements.length > 0) {\n          this.queriesData = res.elements;\n        } else {\n          this.queriesData = [];\n        }\n        let message = {\n          eventName: CONSTANT.SEND_DATA_TO_VISUAL_CHART,\n          signFrom: \"superset_app\" || CONSTANT.ANALYTICS_APP,\n          result: JSON.stringify({\n            width: this.width - 50,\n            height: this.height - 30,\n            vizType: this.chart?.vizType,\n            formData: this.chart?.formData,\n            queriesData: this.queriesData,\n          }),\n        };\n        this.sendMessage(message);\n      } else {\n        this.errorMessage = `${res.errors[0].field}: ${res.errors[0].code}`;\n      }\n    });\n  }\n\n  converParamsGetDataVisualize(params: any) {\n    const obj: any = {};\n    params.datasource = {\n      table: this.dsTable,\n      type: this.dsType,\n      category: this.dsCategory,\n    };\n    if (\n      params.form_data.granularity === null ||\n      params.form_data.granularity === undefined\n    ) {\n      params.form_data.granularity = \"\";\n    }\n    if (\n      params.form_data.granularity_sqla === null ||\n      params.form_data.granularity_sqla === undefined\n    ) {\n      params.form_data.granularity_sqla = \"\";\n    }\n    if (\n      params.form_data.time_grain_sqla === null ||\n      params.form_data.time_grain_sqla === undefined\n    ) {\n      params.form_data.time_grain_sqla = \"\";\n    }\n\n    if (this.typeSubmit === CONSTANT.EXPLORE_JSON) {\n      if (params.form_data.viz_type === \"pivot_table\") {\n        let columDate: any[] = [];\n        let arrColumns = [\n          ...params.form_data.groupby,\n          ...params.form_data.columns,\n        ];\n        for (const iterator of arrColumns) {\n          columDate = [\n            ...columDate,\n            ...this.columns.filter((column) => column.column_name === iterator),\n          ];\n        }\n        params[\"dateColumns\"] = columDate\n          .filter((col) => col.type === \"DATE\")\n          .map((col) => col.column_name);\n      }\n      if (params.form_data.granularity_sqla !== \"\") {\n        params.form_data[\"granularityType\"] =\n          this.schemas[params.form_data.granularity_sqla];\n      } else {\n        params.form_data[\"granularityType\"] = \"\";\n      }\n      if (\n        params.form_data.time_range !== \"No filter\" &&\n        params.form_data.time_range !== \"\"\n      ) {\n        let arrayTime = String(params.form_data.time_range).split(\" & \");\n        params.form_data.from_dttm = arrayTime[0].trim()\n          ? arrayTime[0].trim() !== \"-∞\"\n            ? new Date(arrayTime[0].trim()).getTime()\n            : 0\n          : 0;\n        params.form_data.to_dttm = arrayTime[1].trim()\n          ? arrayTime[1].trim() !== \"∞\"\n            ? new Date(arrayTime[1].trim()).getTime()\n            : 0\n          : 0;\n      }\n      for (const [key, value] of Object.entries(params)) {\n        obj[`${key}`] = JSON.stringify(value);\n      }\n      this.getExpVisualize(obj);\n    }\n\n    if (this.typeSubmit === CONSTANT.DATA) {\n      if (params.queries) {\n        for (const query of params.queries) {\n          if (query.granularity === null || query.granularity === undefined) {\n            query.granularity = \"\";\n          }\n          if (\n            query.granularity_sqla === null ||\n            query.granularity_sqla === undefined\n          ) {\n            query.granularity_sqla = \"\";\n          }\n          if (\n            query.time_grain_sqla === null ||\n            query.time_grain_sqla === undefined\n          ) {\n            query.time_grain_sqla = \"\";\n          }\n          if (query.granularity !== \"\") {\n            query[\"granularityType\"] = this.schemas[query.granularity];\n          } else {\n            query[\"granularityType\"] = \"\";\n          }\n          if (query.time_range !== \"No filter\" && query.time_range !== \"\") {\n            let arrayTime = String(query.time_range).split(\" & \");\n            query.from_dttm = arrayTime[0].trim()\n              ? arrayTime[0].trim() !== \"-∞\"\n                ? new Date(arrayTime[0].trim()).getTime()\n                : 0\n              : 0;\n            query.to_dttm = arrayTime[1].trim()\n              ? arrayTime[1].trim() !== \"∞\"\n                ? new Date(arrayTime[1].trim()).getTime()\n                : 0\n              : 0;\n          }\n          if (this.vizType === \"box_plot\") {\n            for (const column of query.columns) {\n              if (typeof column === \"object\" && column !== null) {\n                let index = query.columns.indexOf(column);\n                query.columns[index] = column.label;\n              }\n            }\n          }\n        }\n        for (const [key, value] of Object.entries(params)) {\n          obj[`${key}`] = JSON.stringify(value);\n        }\n        this.getDataVisualize(obj);\n      } else {\n        this.loading = false;\n        this.errorMessage = \"Not enough data to visualize chart\";\n      }\n    }\n  }\n\n  //get one chart for chart deckGL multi layers\n  getOneChartForDeckGLMulti(params: any) {\n    return new Promise((resolve, reject) => {\n      this.callEachExplore = this.chartService\n        .getExpVisualize(params)\n        .subscribe((result: any) => {\n          resolve(result);\n          if (result.type === ErrorMessage.TYPE) {\n            this.notification.showMessage(\n              `Can't visualize chart ${params.name}`,\n              \"error\",\n              this.actionTranslate[\"NOTIFICATION\"]\n            );\n          }\n        });\n    });\n  }\n\n  //convert params before submit for one chart deckGL\n  convertParamsSubmit(object: any) {\n    if (\n      object.form_data.granularity === null ||\n      object.form_data.granularity === undefined\n    ) {\n      object.form_data.granularity = \"\";\n    }\n    if (\n      object.form_data.granularity_sqla === null ||\n      object.form_data.granularity_sqla === undefined\n    ) {\n      object.form_data.granularity_sqla = \"\";\n    }\n    if (\n      object.form_data.time_grain_sqla === null ||\n      object.form_data.time_grain_sqla === undefined\n    ) {\n      object.form_data.time_grain_sqla = \"\";\n    }\n    if (object.form_data.granularity_sqla !== \"\") {\n      object.form_data[\"granularityType\"] =\n        this.schemas[object.form_data.granularity_sqla];\n    } else {\n      object.form_data[\"granularityType\"] = \"\";\n    }\n    if (\n      object.form_data.time_range !== \"No filter\" &&\n      object.form_data.time_range !== \"\"\n    ) {\n      let arrayTime = String(object.form_data.time_range).split(\" & \");\n      object.form_data.from_dttm = arrayTime[0].trim()\n        ? arrayTime[0].trim() !== \"-∞\"\n          ? new Date(arrayTime[0].trim()).getTime()\n          : 0\n        : 0;\n      object.form_data.to_dttm = arrayTime[1].trim()\n        ? arrayTime[1].trim() !== \"∞\"\n          ? new Date(arrayTime[1].trim()).getTime()\n          : 0\n        : 0;\n    }\n    for (const [key, value] of Object.entries(object)) {\n      if (typeof value !== \"string\") {\n        object[`${key}`] = JSON.stringify(value);\n      }\n    }\n    return this.getOneChartForDeckGLMulti(object);\n  }\n\n  getSchema(params: any) {\n    this.chartService.getOneDataset(params).subscribe((result: any) => {\n      if (result.type !== ErrorMessage.TYPE) {\n        this.schemas = !!result.schemas ? result.schemas : [];\n        this.store.dispatch(\n          SchemasActions.schemas({ schemas: result.schemas })\n        );\n        let count = 0;\n        for (const [key, value] of Object.entries(result.schemas)) {\n          let obj = {\n            filterable: true,\n            groupby: true,\n            is_certified: false,\n          };\n          obj[\"column_name\"] = key;\n          obj[\"type\"] = value;\n          obj[\"id\"] = count;\n          switch (value) {\n            case \"INT\":\n              obj[\"type_generic\"] = 0;\n              break;\n            case \"DOUBLE\":\n              obj[\"type_generic\"] = 0;\n              break;\n            case \"LONG\":\n              obj[\"type_generic\"] = 0;\n              break;\n            case \"STRING\":\n              obj[\"type_generic\"] = 1;\n              break;\n            case \"DATE\":\n              obj[\"type_generic\"] = 2;\n              break;\n            case \"BOOLEAN\":\n              obj[\"type_generic\"] = 3;\n              break;\n            default:\n              break;\n          }\n          value === \"DATE\" ? (obj[\"is_dttm\"] = true) : (obj[\"is_dttm\"] = false);\n          count += 1;\n          this.columns.push(obj);\n        }\n        if (this.chart?.vizType?.html) {\n          if (this.sendJsChart) {\n            let message = {\n              eventName: \"send_script\",\n              signFrom: \"superset_app\",\n              result: JSON.stringify({ scriptUrl: this.chart?.vizType?.html }),\n            };\n            this.sendMessage(message);\n          }\n        }\n      }\n    });\n  }\n\n  iframeLoadDone() {\n    const parent = document.getElementById(\"container-chart\");\n    if (parent) {\n      this.width = parent.offsetWidth;\n      this.prevWidth = parent.offsetWidth;\n      this.height = parent.offsetHeight;\n      this.prevHeight = parent.offsetHeight;\n    }\n    this.loadDataChart();\n  }\n\n  convertFilter(filterColumns: FilterColumn[]) {\n    let filters: IFilter[] = [];\n    if (filterColumns.length > 0) {\n      filters = filterColumns.map((filter: FilterColumn) => {\n        let obj: IFilter = {\n          col: filter.column,\n          colType: filter.columnType,\n          op: filter.operator,\n          val: filter.comparator,\n          fromDate: filter?.fromDate,\n          toDate: filter?.toDate,\n        };\n        return obj;\n      });\n    }\n    return {\n      filters,\n    };\n  }\n\n  sendMessage(message: any) {\n    const iframe: any = document.getElementById(\"iframe-view-chart\");\n    if (iframe) {\n      this.plugin.sendMessageTo(message, iframe.contentWindow);\n    }\n  }\n\n  /*  decodeBase64(str: string) {\n      return decodeURIComponent(escape(window.atob(str)));\n    }*/\n\n  ngOnDestroy(): void {\n    this.chart = null;\n    this.vizType = \"\";\n    window.removeEventListener(\"message\", this.getMessageApp, false);\n    this.store.dispatch(\n      ErrorActions.gatewayTimeout({\n        error: \"\",\n      })\n    );\n    if (this.callExplore) {\n      this.callExplore.unsubscribe();\n    }\n    if (this.callData) {\n      this.callData.unsubscribe();\n    }\n    if (this.callEachExplore) {\n      this.callEachExplore.unsubscribe();\n    }\n    this.store.dispatch(SchemasActions.schemas({ schemas: {} }));\n    this.store.dispatch(SchemasActions.formData({ formData: undefined }));\n  }\n\n  onResize() {\n    const container = document.getElementById(\"container-chart\");\n    setTimeout(() => {\n      this.width = container.offsetWidth;\n      this.height = container.offsetHeight;\n      if (Array.isArray(this.queriesData)) {\n        let message = {\n          eventName: CONSTANT.SEND_DATA_TO_VISUAL_CHART,\n          signFrom: \"superset_app\",\n          result: JSON.stringify({\n            width: this.width - 50,\n            height: this.height - 30,\n            vizType: this.chart?.vizType,\n            formData: this.chart?.formData,\n            queriesData: this.queriesData || [],\n          }),\n        };\n        this.sendMessage(message);\n      }\n      this.prevHeight = container.offsetHeight;\n      this.prevWidth = container.offsetWidth;\n    }, 500);\n  }\n}\n","<div class=\"w-100 h-100 py-0 px-1 bg-white position-relative overflow-hidden\" id=\"container-chart\">\n  <div *ngIf=\"contentHTML\" [innerHTML]=\"contentHTML | safeHtml\" class=\"content-html\"></div>\n  <div *ngIf=\"loading\" class=\"loading-view-chart\" [ngStyle]=\"!contentHTML\n  ? { background : '#fff' }\n  : { background: 'rgba(0, 0, 0, 0.1)' }\n  \">\n    <img alt=\"loading\" [src]=\"urlLoading\" style=\"width: 50px;\">\n  </div>\n  <div *ngIf=\"errorMessage && !contentHTML\" class=\"view-chart-error\">\n    <div class=\"title\">Error</div>\n    <div class=\"text\">{{errorMessage}}</div>\n  </div>\n  <iframe (load)=\"iframeLoadDone()\" [ngStyle]=\"errorMessage && contentHTML && {'display': 'none'}\" [src]=\"urlVisualizeChart | safe\"\n          frameborder=\"\"\n          id=\"iframe-view-chart\" style=\"width: 100%; height: 100%;\"\n          title=\"iframe-visualize\"></iframe>\n</div>\n","import {Component, Inject, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {ChartItem} from \"../../model/chart\";\nimport {ChartService} from \"../chart.service\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {NotificationService} from \"inet-core\";\nimport {ChartDeleteComponent} from \"../chart-delete/chart-delete.component\";\nimport {Store} from '@ngrx/store';\nimport {IAppState} from '../../core/store/state/app.state';\nimport * as RightbarActions from '../../core/store/actions/rightbar.action';\nimport {rightbarSelector} from \"../../core/store/selectors/rightbar.selector\";\nimport {publishSelector} from \"../../core/store/selectors/publish.selector\";\nimport {ShareService} from \"../../share/share.service\";\nimport { updateNavigate} from \"../../core/store/actions/chart-bind.action\";\nimport {Subscription} from \"rxjs\";\nimport { DOCUMENT } from '@angular/common';\nimport { closeFullscreen, openFullscreen } from '../../utils/fullscreen';\n\n@Component({\n  selector: 'app-chart-view',\n  templateUrl: './chart-view.component.html',\n  styleUrls: ['./chart-view.component.scss']\n})\nexport class ChartViewComponent implements OnInit, OnChanges, OnDestroy {\n  isOpenRightBar: boolean = true;\n  isEditInfo: boolean = false\n  uuidChart: string = '';\n  chartInfo: any;\n  @ViewChild(ChartDeleteComponent) chartDelete!: ChartDeleteComponent;\n  isViewPublish: boolean = false;\n  sharedUuid: string;\n  storePublish$: Subscription;\n\n  fullScreen = false;\n  elem;\n\n  constructor(private route: ActivatedRoute,\n              private chartService: ChartService,\n              private translate: TranslateService,\n              private notification: NotificationService,\n              private router: Router,\n              private store: Store<IAppState>,\n              private shareService: ShareService,\n              @Inject(DOCUMENT) private document: any\n              ) {\n    this.uuidChart = this.route.snapshot.parent.params['uuid'];\n    this.store.select(rightbarSelector).subscribe(res => {\n      res ? this.isOpenRightBar = true : null;\n      this.isEditInfo = res;\n    })\n    this.route.queryParams.subscribe(value => {\n      if (value.hasOwnProperty('isViewPublish')) {\n        this.isViewPublish = true\n      }\n    })\n    if (!this.isViewPublish) {\n      this.store.select(publishSelector).subscribe(res => {\n        if (this.chartInfo) {\n          const item = JSON.parse(JSON.stringify(this.chartInfo))\n          item.sharedUuid = res || undefined\n          this.chartInfo = JSON.parse(JSON.stringify(item))\n        }\n      })\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n  }\n\n  ngOnInit(): void {\n    this.elem = document.documentElement;\n    if (this.isViewPublish) {\n      this.shareService.loadChartMyShare({uuid: this.uuidChart}).subscribe(\n        value => {\n          this.chartInfo = value\n          this.store.dispatch(updateNavigate({data: value}))\n        })\n    } else {\n      this.chartService.loadChart({uuid: this.uuidChart}).subscribe(value => {\n        this.chartInfo = value\n        this.store.dispatch(updateNavigate({data: value}))\n      })\n    }\n  }\n\n  ngAfterViewInit(): void {\n  }\n\n  backBar(isOpen: boolean = false) {\n    this.isOpenRightBar = isOpen;\n    this.store.dispatch(RightbarActions.showRightbar({isShowRightbar: false}));\n  }\n\n  deleteChart(item: ChartItem) {\n    this.chartDelete.onShowDialog(item)\n  }\n\n  loadDelete() {\n    setTimeout(() => {\n      this.router.navigateByUrl('')\n    }, 100)\n\n  }\n\n  editSuccess(value: ChartItem) {\n    this.chartInfo = value;\n  }\n\n  onToggleFullScreen() {\n    this.fullScreen = !this.fullScreen;\n    if (this.fullScreen) {\n      openFullscreen(this.elem);\n    } else {\n      closeFullscreen(this.document);\n    }\n  }\n\n\n  ngOnDestroy(): void {\n    if (this.storePublish$) {\n      this.storePublish$.unsubscribe()\n    }\n  }\n}\n","<app-action-view-layout [header]=\"''\" [isChild]=\"true\" [isRightBar]=\"isOpenRightBar\"\n                        [isFullScreen]=\"fullScreen\"\n                        [isViewFull]=\"true\" [namePage]=\"chartInfo?.title || chartInfo?.chartTitle\">\n  <ng-template btnBottomTemplate>\n    <button (click)=\"backBar(!isOpenRightBar)\" [ngClass]=\"isOpenRightBar ? 'opened':''\"\n            class=\"btn-custom btn-custom-icon px-1\"><i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i></button>\n    <button (click)=\"onToggleFullScreen()\" class=\"btn-fullscreen\">\n      <i *ngIf=\"!fullScreen\" aria-hidden=\"true\" class=\"fa fa-expand\"></i>\n      <i *ngIf=\"fullScreen\" aria-hidden=\"true\" class=\"fa fa-compress\"></i>\n    </button>\n  </ng-template>\n  <ng-template contentTemplate>\n    <app-iframe-view *ngIf=\"chartInfo\"\n                     [chartInput]=\"chartInfo\"\n                     [isResize]=\"isOpenRightBar\"\n                     [isShareView]=\"isViewPublish\"></app-iframe-view>\n  </ng-template>\n  <ng-template rightTemplate>\n    <app-chart-right-bar (close)=\"backBar()\"\n                         (delete)=\"deleteChart($event)\" (reloadPage)=\"editSuccess($event)\" *ngIf=\"!isViewPublish\"\n                         [chart]=\"chartInfo\" [isEdit]=\"isEditInfo\">\n    </app-chart-right-bar>\n    <app-share-right-bar (reloadPage)=\"editSuccess($event)\"\n                        (close)=\"backBar($event)\"\n                         *ngIf=\"isViewPublish\"\n                         [chart]=\"chartInfo\"\n                         [isPublish]=\"true\">\n\n    </app-share-right-bar>\n  </ng-template>\n</app-action-view-layout>\n<app-chart-delete (deleteSuccess)=\"loadDelete()\"></app-chart-delete>\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild\n} from '@angular/core';\nimport {GridOptionConstant} from \"../../layout-common/layout-common-constants\";\nimport {AngularGridInstance, Column, GridOption, OnEventArgs, SlickDataView, SlickGrid} from \"angular-slickgrid\";\nimport {SlickgridCustom} from \"../../layout-common/slickgrid-custom\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {DatePipe} from \"@angular/common\";\nimport {combineLatest, fromEvent, map, mergeMap, of, Subject, Subscription, switchMap} from \"rxjs\";\nimport {ShareService} from \"../share.service\";\nimport {CustomPaginationComponent} from \"inet-ui\";\nimport {MyShare} from \"../model/share-model\";\nimport {Router} from \"@angular/router\";\nimport {ChartService} from \"../../chart/chart.service\";\nimport {debounceTime, distinctUntilChanged, tap} from \"rxjs/operators\";\nimport {CoreService, ErrorMessage, iNet, NotificationService} from \"inet-core\";\nimport {NgSelectComponent} from \"@ng-select/ng-select\";\nimport {Organization} from \"../../model/organization\";\nimport {CHART_HTML_TEMPLATE} from \"../../chart/constants/constants\";\n\n@Component({\n  selector: 'app-list-my-share',\n  templateUrl: './list-my-share.component.html',\n  styleUrls: ['./list-my-share.component.scss']\n})\nexport class ListMyShareComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n  @Input() isResize: boolean;\n  @Output() designItem = new EventEmitter<any>();\n  @Output() itemDelete = new EventEmitter<MyShare>();\n  @ViewChild('paging') pagination: CustomPaginationComponent;\n  @Input() isDeleteSuccess: boolean = false;\n  @ViewChild('keywordInput') keywordInput!: ElementRef;\n  @ViewChild('organizationSelect') ngOrganization: NgSelectComponent;\n  @ViewChild('organSelect') ngOrgan: NgSelectComponent;\n  organizationItems: Organization[] = [];\n  grid!: SlickGrid;\n  translateGrid: TranslateService;\n  gridOptions!: GridOption;\n  columnDefinitions: Column[] = [];\n  myShareItems: MyShare[] = [];\n  isEdit: boolean = false;\n  pageNumber: number = 0;\n  pageSize: number = 20;\n  paramSearch: { key: string, partner: string, pageNumber: number, pageSize: string };\n  loading: boolean = false;\n  myShareFilter: MyShare[] = [];\n  totalItem: number;\n  key: string = '';\n\n  organInput$ = new Subject<string>();\n  organSelect: any;\n\n  organizationParams = {\n    keyword: '', totalPage: -1, pageSize: 20, pageNumber: 0,\n  };\n\n  regexEmail: boolean = false;\n  validEmail: RegExp = /^[a-z0-9]{2}[a-z0-9-.]+@([a-z0-9-]+\\.)+[a-z]{2,9}$/;\n\n  private angularGrid!: AngularGridInstance;\n  private dataView!: SlickDataView;\n  private slickgridCustom: SlickgridCustom;\n  private gridTranslate: any = {};\n  private resizeListener: () => void;\n  private readonly translateSubscription: Subscription;\n\n  constructor(private datePipe: DatePipe, private translate: TranslateService, private shareService: ShareService, private router: Router, private chartService: ChartService, private coreService: CoreService, private notification: NotificationService) {\n    this.slickgridCustom = new SlickgridCustom(this);\n    this.translateSubscription = translate.stream(['VISUALIZE.CHART.FIELD']).subscribe(data => {\n      this.gridTranslate = data['VISUALIZE.CHART.FIELD']\n      this.slickgridCustom.scrollTooltip();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('isResize' in changes) {\n      this.onResize();\n    }\n    if ('isDeleteSuccess' in changes) {\n      this.loadGridDel();\n    }\n  }\n\n  ngAfterViewInit() {\n    this.organInput$.pipe(debounceTime(200), distinctUntilChanged(), tap((key) => {\n      this.organizationParams.keyword = key\n      if (key === '') {\n        this.ngOrgan.handleClearClick();\n      }\n    }), switchMap(key => this.shareService.getListOrganization({\n      keyword: key, totalPage: -1, pageSize: 20, pageNumber: 0,\n    }))).subscribe({\n      next: (response) => {\n        if (this.organizationParams.keyword === '') {\n          this.organizationParams.pageNumber = 0;\n          this.organizationParams.totalPage = -1;\n          this.organizationItems = [];\n        } else {\n          this.organizationParams.pageNumber = 1;\n          this.organizationParams.totalPage = Math.ceil(response.total / this.organizationParams.pageSize);\n          this.organizationItems = response.items.filter(item => {\n            return item.organId !== iNet.getOrganId()\n          });\n        }\n        this.loading = false;\n      }, error: () => {\n        this.loading = false;\n      }\n    })\n  }\n\n  ngOnDestroy() {\n    window.removeEventListener('resize', this.resizeListener)\n  }\n\n  ngOnInit() {\n    this.iniOption();\n    this.initGrid();\n    this.resizeListener = this.onResize.bind(this);\n    window.addEventListener('resize', this.resizeListener);\n  }\n\n  loadOrganization() {\n    if (!this.loading && (this.organizationParams.totalPage === -1 || this.organizationParams.pageNumber <= this.organizationParams.totalPage) && this.organizationParams.keyword !== '') {\n      this.loading = true;\n      this.shareService.getListOrganization(this.organizationParams).subscribe({\n        next: (results) => {\n          this.loading = false;\n          this.organizationParams.pageNumber++;\n          this.organizationParams.totalPage = Math.ceil(results.total / this.organizationParams.pageSize);\n          this.organizationItems = this.organizationItems.concat(results.items).filter(item => {\n            return item.organId !== iNet.getOrganId()\n          });\n        }, error: () => {\n          this.loading = false;\n          this.organizationParams.totalPage = -1;\n          this.organizationParams.pageNumber = 0;\n          this.organizationParams.keyword = '';\n          this.organizationItems = [];\n        }\n      })\n    }\n  }\n\n  loadListMyShare(params?: any) {\n    let __params = this.getParams(params);\n    this.loading = true;\n    if(__params.key && !this.key){\n      __params.key = null\n    }\n    this.shareService.searchMyShareList(__params).subscribe((results: any) => {\n      if (results.type !== 'ERROR') {\n        this.totalItem = results.total;\n        this.myShareItems = results.items;\n        this.myShareFilter = results.items;\n        const designItem = {design: this.myShareItems[0]};\n        this.designItem.emit(designItem)//emit frits value for right-bar\n        if (!!this.pagination) {\n          this.pagination.setParams(__params);\n          setTimeout(() => {\n            this.pagination.setParams(__params);\n            this.pagination.pageNumber = results.items.length > 0 ? Number(this.pagination.getParams()['pageNumber'] + 1) : 0\n          }, 100);\n        }\n        this.paramSearch = this.pagination.getParams();\n        this.loading = false;\n        this.slickgridCustom.scrollTooltip();\n      }\n    }, () => {\n      this.loading = true;\n    }).add(() => {\n      this.loading = false;\n    });\n  }\n\n  getParams(params?: any) {\n    params = !!params ? params : {};\n    let partner = this.organSelect ? this.organSelect?.organId : this.organizationParams.keyword;\n\n    params = Object.assign(params, {partner: partner});\n    const props = ['pageNumber', 'pageSize'];\n    let hasAllPage = props.every(prop => params.hasOwnProperty(prop));\n    let hasPageCustom = props.some(prop => params.hasOwnProperty(prop));\n    const pageNumber = (hasPageCustom && !!params['pageNumber']) ? params['pageNumber'] : this.pageNumber;\n\n    if (!!this.pagination) {\n      return Object.assign(this.pagination.getParams(), params, !hasAllPage ? {pageNumber: pageNumber} : {});\n    } else {\n      return Object.assign({pageNumber: this.pageNumber, pageSize: this.pageSize}, params);\n    }\n  }\n\n  onResize() {\n    this.angularGrid?.resizerService?.resizeGrid(100).then(r => {\n    });\n    this.slickgridCustom?.slickRowGrid();\n  }\n\n  angularGridReady(angularGrid: AngularGridInstance) {\n    this.angularGrid = angularGrid;\n    this.dataView = angularGrid.dataView;\n    this.grid = angularGrid.slickGrid\n    this.translateGrid = this.grid?.getOptions()?.i18n;\n  }\n\n  viewEdit(item: any, isRightBar: boolean = false) {\n    const designItem = {design: item, isRightBar: isRightBar};\n    this.designItem.emit(designItem)\n    this.backBar()\n  }\n\n  backBar() {\n    this.angularGrid?.resizerService?.resizeGrid(100);\n  }\n\n  loadGridDel() {\n    this.loadDelete();\n    this.backBar()\n  }\n\n  loadDelete() {\n    const pageNumber: number = this.pagination?.getParams()['pageNumber']\n    if (this.myShareItems.length === 1) {\n      pageNumber > 0 ? this.loadListMyShare({pageNumber: (pageNumber - 1) > 0 ? (pageNumber - 1) : 0}) : this.reloadPage();\n    }\n    if (this.myShareItems.length > 1) {\n      this.loadListMyShare({pageNumber: pageNumber});\n    }\n  }\n\n  reloadPage() {\n    if (!!this.pagination) {\n      this.pagination.reload();\n    }\n  }\n\n  viewChart(uuid: string) {\n    this.router.navigate(['/', \"share\", \"center\"], {queryParams: {uuid: uuid, action: 'VIEW', myShare: true}});\n  }\n\n  viewSrcChart(uuid: string) {\n    this.router.navigate(['/', \"share\", \"center\"], {queryParams: {uuid: uuid, action: 'VIEW_SRC'}});\n  }\n\n  getImageByName(name: string) {\n    let img = name.split('/').pop();\n    return this.coreService.getImageUrlFromModule(img, 'visualcommon')\n  }\n\n  onCopyPath(uuid: string) {\n    this.shareService.copyPath(uuid).subscribe(status => {\n      if (status) {\n        this.notification.showMessage(this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS'), 'success', 'Visualize')\n      } else {\n        this.notification.showMessage(this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD'), 'error', 'Visualize')\n      }\n    })\n  }\n\n  chooseOrgan(organ: Organization) {\n    if (organ) {\n      this.organSelect = organ;\n      this.loadListMyShare();\n    }\n  }\n\n  organEnter(byThis: any) {\n    if (!this.organizationItems.length) {\n      this.organSelect = undefined;\n      const textSearch = byThis.searchInput.nativeElement.value;\n      this.regexEmail = !!textSearch ? !this.validEmail.test(textSearch) : false;\n      this.loadListMyShare();\n    }\n  }\n\n  private initGrid() {\n    let columnAll: Column[] = [{\n      headerCssClass: 'd-flex',\n      cssClass: 'd-flex align-items-center',\n      id: 'icon',\n      field: 'icon',\n      minWidth: 40,\n      maxWidth: 40,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        let __srcImg = dataContext.thumbnailUri\n        let __img:string;\n        if(dataContext.chartType === CHART_HTML_TEMPLATE) {\n          __img = dataContext.thumbnailUri;\n        }else {\n          __img = this.getImageByName(__srcImg);\n        }\n        return !!dataContext.thumbnailUri ? ` <img class=\"icon\" src=\"${__img}\">` : `<i class=\"fa fa-area-chart\"></i>`\n      },\n    }, {\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      id: 'chartTitle',\n      field: 'chartTitle', //name: this.gridTranslate['LABEL_NAME'],\n      nameKey: 'VISUALIZE.CHART.FIELD.NAME',\n      sortable: true,\n      minWidth: 80,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return `<span  class=\"text-truncate\">${dataContext?.chartTitle}</span>`\n      },\n      onCellClick: (e: any, args: OnEventArgs) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    }, {\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      id: 'chartTypeName',\n      field: 'chartTypeName', //name: this.gridTranslate['TITLE_CATEGORY'],\n      nameKey: 'VISUALIZE.CHART.FIELD.TITLE_CATEGORY',\n      sortable: true,\n      minWidth: 80,\n      maxWidth: 180,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return `<span  class=\"text-truncate\">${dataContext?.chartTypeName}</span>`\n      },\n      onCellClick: (e: any, args) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    }, {\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      id: 'sharedObjectName',\n      field: 'sharedObjectName', //name: this.gridTranslate['TITLE_BRIEF'],\n      nameKey: 'VISUALIZE.CHART.FIELD.SHARE_LIST_TITLE',\n      sortable: true,\n      minWidth: 80,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return `<span  class=\"text-truncate\">${dataContext?.sharedObjectName}</span>`\n      },\n      onCellClick: (e: any, args) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    }, {\n      headerCssClass: 'd-flex font-weight-bold justify-content-center',\n      cssClass: 'd-flex align-items-center',\n      id: 'started',\n      field: 'started', //name: this.gridTranslate['TITLE_DAY_UPDATE'],\n      nameKey: 'VISUALIZE.CHART.FIELD.SHARE_TIMER',\n      sortable: true,\n      minWidth: 200,\n      maxWidth: 200,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return value > 0 ? `<span class=\"text-truncate\">${this.datePipe.transform(value, 'dd/MM/yyyy')} -\n            ${dataContext.expired > 0 ? this.datePipe.transform(dataContext.expired, 'dd/MM/yyyy') : ''}</span>` : `<span class=\"f-10 text-muted\"></span>`\n      },\n      onCellClick: (e: any, args) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    }, {\n      id: 'action',\n      field: 'action',\n      nameKey: 'VISUALIZE.CHART.FIELD.TITLE_ACTION',\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      sortable: false,\n      maxWidth: 130,\n      minWidth: 130,\n      formatter: () => {\n        let __delete = `<button title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.ACTION_DELETE')}\" data-toggle=\"tooltip\" data-action=\"delete\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-trash-o text-danger f-20\"></i></button>`\n        let __view = `<button title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.VIEW')}\" data-toggle=\"tooltip\" data-action=\"view\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-eye f-20\"></i></button>`\n        let __copy = `<button title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT')}\" data-toggle=\"tooltip\" data-action=\"copy\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-clipboard f-17\"></i></button>`\n        return `${__view + __copy + __delete}`\n      },\n      onCellClick: (e: Event, args: OnEventArgs) => {\n        let __action: any = this.slickgridCustom.getNameAction(e.target);\n        this.viewEdit(args.dataContext, this.isEdit)\n        switch (__action) {\n          case 'delete':\n            this.itemDelete.emit(args.dataContext)\n            break;\n          case 'view':\n            this.viewChart(args.dataContext.uuid)\n            break;\n          case 'viewSrc':\n            this.viewSrcChart(args.dataContext.chartUuid)\n            break;\n          case 'copy':\n            this.onCopyPath(args.dataContext.uuid)\n            break;\n        }\n      }\n    },];\n    this.columnDefinitions = columnAll;\n  };\n\n  private iniOption() {\n    let gridOptionConstant: GridOption = GridOptionConstant('grid-container-share', 'uuid', this.gridTranslate['NO_DATA_DISPLAY']);\n    let gridOption: GridOption = {\n      i18n: this.translate, enableTranslate: true,\n    }\n    this.gridOptions = Object.assign(gridOptionConstant, gridOption);\n  }\n}\n","<div class=\"d-flex w-100 h-100\">\n  <div class=\"w-100\">\n    <app-custom-pagination #paging\n                           (onLoad)=\"loadListMyShare($event)\"\n                           [hidden]=\"!(totalItem > 0 || (totalItem === 0 && (!!paramSearch?.partner || !!paramSearch?.key)))\"\n                           [pageNumber]=\"pageNumber\"\n                           [pageSize]=\"pageSize\"\n                           [params]=\"{}\"\n                           [totalItems]=\"totalItem\">\n      <ng-template #basicSearch>\n        <div style=\"flex-grow: 2\">\n          <div class=\"row mx-0\">\n            <div class=\"col-lg-3 col-12 px-1\" style=\"min-width: 250px; padding-left: 0 !important;\">\n              <ng-select\n                #organSelect\n                (change)=\"chooseOrgan($event)\"\n                (keydown.enter)=\"organEnter(organSelect)\"\n                (scrollToEnd)=\"loadOrganization()\"\n                [clearable]=\"false\"\n                [editableSearchTerm]=\"true\"\n                [items]=\"organizationItems\"\n                [typeahead]=\"organInput$\"\n                [virtualScroll]=\"true\"\n                [class.hideEmpty]=\"organizationItems.length===0\"\n                bindLabel=\"orgName\"\n                bindValue=\"organId\"\n                id=\"organList\"\n                notFoundText=\"{{'VISUALIZE.CHART.FIELD.NO_DATA_DISPLAY' | translate}}\"\n                placeholder=\"{{'VISUALIZE.CHART.FIELD.SHARE_LIST_TITLE'|translate}}\">\n                <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-label-tmp>\n                  <div class=\"d-flex align-items-center\">\n                    <div class=\"text-truncate f-12\">{{item?.orgName}}</div>\n                  </div>\n                </ng-template>\n                <ng-template let-index=\"index\" let-item=\"item\" let-search=\"searchTerm\" ng-option-tmp>\n                  <div class=\"d-flex align-items-center\">\n                    <div class=\"text-truncate f-12\">{{item?.orgName}}</div>\n                  </div>\n                </ng-template>\n              </ng-select>\n            </div>\n            <div class=\"col-lg-4 col-12 px-1\" style=\"min-width: 250px\">\n              <div class=\"container-search\">\n                <input (keydown.enter)=\"loadListMyShare({key: key})\" [(ngModel)]=\"key\"\n                       class=\"form-control form-control-sm\"\n                       placeholder=\"{{'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND'|translate}}\">\n                <i (click)=\"loadListMyShare({key: key})\" aria-hidden=\"true\"\n                   class=\"fa fa-search text-muted icon-search-grid\"\n                   tooltip=\"{{'VISUALIZE.CHART.FIELD.SEARCH'|translate}}\"></i>\n              </div>\n            </div>\n          </div>\n        </div>\n      </ng-template>\n    </app-custom-pagination>\n    <div class=\"container-fluid px-0 h-100\">\n      <div [hidden]=\"!( totalItem > 0 || (totalItem === 0 && (!!paramSearch?.key || !!paramSearch?.partner)))\"\n           class=\"w-100\"\n           id=\"grid-container-share\">\n        <angular-slickgrid (onAngularGridCreated)=\"angularGridReady($event)\"\n                           [columnDefinitions]=\"columnDefinitions\"\n                           [dataset]=\"myShareFilter\"\n                           [gridOptions]=\"gridOptions\"\n                           class=\"angular-slickgrid-container\"\n                           gridId=\"grid-share-list\">\n        </angular-slickgrid>\n      </div>\n      <div [hidden]=\"!( !loading && !(totalItem > 0 || (totalItem === 0 && (!!paramSearch?.partner || !!paramSearch?.key))))\"\n           class=\"h-100\">\n        <app-grid-empty-layout\n          [titleMessage]=\"'VISUALIZE.CHART.FIELD.NO_SHARED'| translate\">\n        </app-grid-empty-layout>\n      </div>\n    </div>\n  </div>\n</div>\n\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {AngularGridInstance, Column, GridOption, OnEventArgs, SlickDataView, SlickGrid} from \"angular-slickgrid\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {SlickgridCustom} from \"../../layout-common/slickgrid-custom\";\nimport {DatePipe} from \"@angular/common\";\nimport {Subject, Subscription, switchMap} from \"rxjs\";\nimport {ShareService} from \"../share.service\";\nimport {MyShare, ShareToMe} from \"../model/share-model\";\nimport {ConfirmDialogComponent, CustomPaginationComponent} from \"inet-ui\";\nimport {Router} from \"@angular/router\";\nimport {CoreService, ErrorMessage, NotificationService, iNet} from \"inet-core\";\nimport {debounceTime, distinctUntilChanged, tap} from \"rxjs/operators\";\nimport {NgSelectComponent} from \"@ng-select/ng-select\";\nimport {GridOptionConstant} from \"../../layout-common/layout-common-constants\";\nimport {CHART_HTML_TEMPLATE} from \"../../chart/constants/constants\";\n\n@Component({\n  selector: 'app-list-share-for-me',\n  templateUrl: './list-share-for-me.component.html',\n  styleUrls: ['./list-share-for-me.component.scss']\n})\nexport class ListShareForMeComponent implements OnInit, OnDestroy {\n  @ViewChild('paging') pagination: CustomPaginationComponent;\n  @ViewChild('confirm') confirmDialog: ConfirmDialogComponent;\n  @Input() isResize: boolean;\n  @Output() designItem = new EventEmitter<any>();\n  grid!: SlickGrid;\n  translateGrid: TranslateService;\n  gridOptions!: GridOption;\n  columnDefinitions: Column[] = [];\n  listShareToMe: ShareToMe[] = [];\n  pageNumber: number = 0;\n  pageSize: number = 20;\n  paramSearch: { key: string, partner: string, pageNumber: number, pageSize: string };\n  loading: boolean = false;\n  totalItem: number;\n  isEdit: boolean = false;\n  key: string = '';\n  listOrgan: any[] = [];\n  organSelect: any;\n  cls: string;\n  messageEdit: string;\n  titleEdit: string;\n  urlJS: string = 'js/visualcommon/analytics.js';\n  @ViewChild('organSelect') ngOrgan: NgSelectComponent;\n  organParams = {\n    keyword: '',\n    totalPage: -1,\n    pageSize: 20,\n    pageNumber: 0,\n  };\n  organInput$ = new Subject<string>();\n  rightbarItem: any\n  listShare: any[] = []\n  start: number;\n  end: number;\n  keyword: string\n  private angularGrid!: AngularGridInstance;\n  private dataView!: SlickDataView;\n  private slickgridCustom: SlickgridCustom;\n  private gridTranslate: any = {};\n  private translateSubscription: Subscription;\n  private resizeListener: () => void;\n\n  constructor(private datePipe: DatePipe,\n              private translate: TranslateService,\n              private shareService: ShareService,\n              private router: Router,\n              private coreService: CoreService,\n              private notification: NotificationService) {\n    this.slickgridCustom = new SlickgridCustom(this);\n    this.translateSubscription = translate.stream(['VISUALIZE.CHART.FIELD']).subscribe(data => {\n      this.gridTranslate = data['VISUALIZE.CHART.FIELD']\n      this.slickgridCustom.scrollTooltip();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if ('isResize' in changes) {\n      this.onResize();\n    }\n\n\n  }\n\n  ngOnDestroy() {\n    window.removeEventListener('resize', this.resizeListener)\n  }\n\n  viewChart(uuid: string) {\n    this.router.navigate(['/', \"share\", \"center\"], {queryParams: {uuid: uuid, action: 'VIEW', myShare: false}});\n  }\n\n  ngOnInit() {\n    this.loadShareForMe();\n    this.iniOption();\n    this.initGrid();\n    this.resizeListener = this.onResize.bind(this);\n    window.addEventListener('resize', this.resizeListener);\n    this.organInput$.pipe(\n      debounceTime(200),\n      distinctUntilChanged(),\n      tap((key) => {\n        this.organParams.keyword = key\n        if (key === '') {\n          this.ngOrgan.handleClearClick();\n          this.organSelect = undefined;\n          this.loadShareItems()\n        }\n      }),\n      switchMap(key => this.shareService.getListOrganization({\n        keyword: key,\n        totalPage: -1,\n        pageSize: 20,\n        pageNumber: 0,\n      }))\n    ).subscribe({\n      next: (response) => {\n        if (this.organParams.keyword === '') {\n          this.organParams.pageNumber = 0;\n          this.organParams.totalPage = -1;\n          this.listOrgan = [];\n        } else {\n          this.organParams.pageNumber = 1;\n          this.organParams.totalPage = Math.ceil(response.total / this.organParams.pageSize);\n          this.listOrgan = response.items\n        }\n      },\n    })\n  }\n\n  onResize() {\n    this.angularGrid?.resizerService?.resizeGrid(100).then(r => {\n    });\n  }\n\n  angularGridReady(angularGrid: AngularGridInstance) {\n    this.angularGrid = angularGrid;\n    this.dataView = angularGrid.dataView;\n    this.grid = angularGrid.slickGrid\n    this.translateGrid = this.grid?.getOptions()?.i18n;\n  }\n\n  backBar(isEdit: boolean = false) {\n    this.angularGrid?.resizerService?.resizeGrid(100);\n  }\n\n  getImageByName(name: string) {\n    let img = name.split('/').pop();\n    return this.coreService.getImageUrlFromModule(img, 'visualcommon')\n  }\n\n  onCopyPath(chart: any) {\n    const messSuccess = this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS')\n    const messFailed = this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD')\n    if (chart.path) {\n      this.shareService.copyPathCantLoad(chart.path).subscribe(status => {\n        if (status) {\n          this.notification.showMessage(messSuccess, 'success', 'Visualize')\n        } else {\n          this.notification.showMessage(messFailed, 'error', 'Visualize')\n        }\n      })\n    } else {\n      this.shareService.copyPath(chart.uuid).subscribe(status => {\n        if (status) {\n          this.notification.showMessage(messSuccess, 'success', 'Visualize')\n        } else {\n          this.notification.showMessage(messFailed, 'error', 'Visualize')\n        }\n      })\n    }\n  }\n\n  chooseOrgan(organ: any) {\n    if (organ) {\n      this.organSelect = organ;\n      this.loadShareForMe()\n    }\n  }\n\n  organEnter(byThis: any) {\n    if (!this.listOrgan?.length) {\n      this.organSelect = undefined;\n      this.loadShareForMe()\n    }\n  }\n\n  loadOrganization() {\n    if ((this.organParams.totalPage === -1 ||\n      this.organParams.pageNumber <= this.organParams.totalPage) && this.organParams.keyword !== '') {\n      this.shareService.getListOrganization(this.organParams).subscribe({\n        next: (results) => {\n          this.organParams.pageNumber++;\n          this.organParams.totalPage = Math.ceil(results.total / this.organParams.pageSize);\n          this.listOrgan = this.listOrgan.concat(results.items)\n        },\n        error: () => {\n          this.organParams.totalPage = -1;\n          this.organParams.pageNumber = 0;\n          this.organParams.keyword = '';\n          this.listOrgan = [];\n        }\n      })\n    }\n  }\n\n  viewEdit(item: any, isRightBar: boolean = false) {\n    const designItem = {design: item, isRightBar: isRightBar};\n    this.rightbarItem = designItem\n    this.backBar(true)\n    this.designItem.emit(designItem)\n  }\n\n  showDialogChange(dataContext: ShareToMe) {\n    if (!dataContext.editable) {\n      this.cls = 'fa fa-unlock-alt'\n      this.messageEdit = this.translate?.instant('VISUALIZE.CHART.FIELD.MESSAGE_EDIT', {name: dataContext.chartName})\n      this.titleEdit = this.translate?.instant('VISUALIZE.CHART.FIELD.TITLE_EDIT')\n    } else {\n      this.cls = 'fa fa-lock'\n      this.messageEdit = this.translate?.instant('VISUALIZE.CHART.FIELD.MESSAGE_BLOCK_EDIT', {name: dataContext.chartName})\n      this.titleEdit = this.translate?.instant('VISUALIZE.CHART.FIELD.BLOCK_EDITABLE')\n    }\n    this.confirmDialog.setData(dataContext)\n    this.rightbarItem.design = dataContext\n    this.confirmDialog.show();\n  }\n\n  editRowValue() {\n    const updatedRow = this.listShareToMe.find(item => item.uuid === this.rightbarItem?.design?.uuid);\n    if (updatedRow) {\n      this.rightbarItem.design.editable = !this.rightbarItem?.design?.editable\n      this.designItem.emit(this.rightbarItem)\n      const rowIndex = this.listShareToMe.indexOf(updatedRow);\n      if (rowIndex !== -1) {\n        this.angularGrid.slickGrid.invalidateRow(rowIndex);\n        this.angularGrid.slickGrid.render();\n        this.slickgridCustom.scrollTooltip();\n      }\n    }\n  }\n\n  confirmChange() {\n    const data: ShareToMe = this.confirmDialog.getData();\n    let status;\n    data.editable ? status = false : status = true\n    this.shareService.changStatusEdit({uuid: data.uuid, editable: status}).subscribe(value => {\n      this.confirmDialog.hide();\n      if (value === \"success\") {\n        this.editRowValue()\n      }\n    })\n  }\n\n  getParams(params?: any) {\n    let keyword = this.keyword?.trim() || ''\n    let partner: string = this.organSelect?.organId || ''\n    let __params = {key: keyword, partner: partner}\n    return !!params ? Object.assign(params, __params) : Object.assign({\n      pageNumber: this.pageNumber,\n      pageSize: this.pageSize,\n    }, __params)\n  }\n\n  reloadList(param) {\n    if (param?.pageNumber === this.paramSearch?.pageNumber && param?.pageSize === this.paramSearch?.pageSize) {\n      this.loadShareForMe(param)\n    } else {\n      this.loadShareItems(param)\n    }\n  }\n\n  loadShareForMe(params?: any) {\n    this.loading = true;\n    const __params = {...this.getParams(params), pageSize: -1};\n    __params.pageNumber = this.pageNumber;\n    this.shareService.searchShareListToMe(__params).subscribe((results: any) => {\n      if (results.type !== ErrorMessage.TYPE) {\n        this.totalItem = results.elements.length || 0;\n        this.listShare = results.elements;\n        this.pagination.setParams(__params);\n        this.paramSearch = this.pagination.getParams();\n        this.loadShareItems(params);\n        const designItem = {design: this.listShareToMe[0]};\n        this.designItem.emit(designItem);\n        this.slickgridCustom.tooltipAction();\n        this.loading = false;\n      }\n    });\n  }\n\n  loadShareItems(params?: any) {\n    !params ? params = this.paramSearch : null\n    this.pagination?.setParams(params);\n    this.paramSearch = this.pagination?.getParams();\n    if (this.listShare.length > this.pageSize) {\n      this.start = (this.paramSearch?.pageNumber || 0) * this.pageSize;\n      this.end = this.start + this.pageSize;\n      this.listShareToMe = this.listShare.slice(this.start, this.end);\n    } else {\n      this.listShareToMe = this.listShare;\n    }\n    this.slickgridCustom.tooltipAction();\n  }\n\n  viewChartFromOrgan(data: any) {\n    window.localStorage.setItem('chartView', JSON.stringify(data));\n    this.router.navigate(['/', \"share\", \"center\"], {queryParams: {action: 'VIEW', myShare: false}})\n  }\n\n  private initGrid(isSelect: boolean = false) {\n    let columnAll: Column[] = [{\n      headerCssClass: 'd-flex',\n      cssClass: 'd-flex align-items-center',\n      id: 'icon',\n      field: 'icon',\n      minWidth: 40,\n      maxWidth: 40,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        let __srcImg = dataContext.thumbnailUri\n        let __img:string;\n        if(dataContext.chartType === CHART_HTML_TEMPLATE) {\n          __img = dataContext.thumbnailUri;\n        }else {\n          __img = this.getImageByName(__srcImg);\n        }\n        return !!dataContext.thumbnailUri ? ` <img class=\"icon\" src=\"${__img}\">` : `<i class=\"fa fa-area-chart\"></i>`\n      },\n    }, {\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      id: 'chartName',\n      field: 'chartName', //name: this.gridTranslate['LABEL_NAME'],\n      nameKey: 'VISUALIZE.CHART.FIELD.NAME',\n      sortable: true,\n      minWidth: 80,\n\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return `<span  class=\"text-truncate\">${dataContext?.chartName}</span>`\n      },\n      onCellClick: (e: any, args: OnEventArgs) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    }, {\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      id: 'chartTypeName',\n      field: 'chartTypeName', //name: this.gridTranslate['TITLE_CATEGORY'],\n      nameKey: 'VISUALIZE.CHART.FIELD.TITLE_CATEGORY',\n      sortable: true,\n      minWidth: 80,\n      maxWidth: 180,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return `<span  class=\"text-truncate\">${dataContext?.chartTypeName}</span>`\n      },\n      onCellClick: (e: any, args) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    }, {\n      headerCssClass: 'd-flex font-weight-bold',\n      cssClass: 'd-flex align-items-center',\n      id: 'sharedObject',\n      field: 'sharedObject', //name: this.gridTranslate['TITLE_BRIEF'],\n      nameKey: 'VISUALIZE.FIELD.SHARING_UNIT',\n      sortable: true,\n      minWidth: 80,\n      formatter: (row, cell, value, columnDef, dataContext) => {\n        return `<span  class=\"text-truncate\">${dataContext?.organName}</span>`\n      },\n      onCellClick: (e: any, args) => {\n        this.viewEdit(args.dataContext, true)\n      }\n    },\n      {\n        headerCssClass: 'd-flex font-weight-bold justify-content-center',\n        cssClass: 'd-flex align-items-center',\n        id: 'started',\n        field: 'started',\n        //name: this.gridTranslate['TITLE_DAY_UPDATE'],\n        nameKey: 'VISUALIZE.CHART.FIELD.SHARE_TIMER',\n        sortable: true,\n        minWidth: 200,\n        maxWidth: 200,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          return value > 0 ? `<span class=\"text-truncate\">${this.datePipe.transform(value, 'dd/MM/yyyy')} -\n            ${dataContext.expired > 0 ? this.datePipe.transform(dataContext.expired, 'dd/MM/yyyy') : ''}</span>`\n            : `<span class=\"f-10 text-muted\"></span>`\n        },\n        onCellClick: (e: any, args) => {\n          this.viewEdit(args.dataContext, true)\n        }\n      },\n      {\n        id: 'action',\n        field: 'action',\n        nameKey: 'VISUALIZE.CHART.FIELD.TITLE_ACTION',\n        headerCssClass: 'd-flex font-weight-bold',\n        cssClass: 'd-flex align-items-center',\n        sortable: false,\n        maxWidth: 130,\n        minWidth: 130,\n        formatter: (row, cell, value, columnDef, dataContext) => {\n          let __edit = `<button  title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.ALLOW_EDIT')}\" data-toggle=\"tooltip\" data-action=\"edit\"  class=\"slick-button\" type=\"button\"><i class=\"fa fa-lock f-20\"></i></button>`;\n          let __end_edit = `<button  title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.BLOCK_EDIT')}\" data-toggle=\"tooltip\" data-action=\"edit\"  class=\"slick-button\" type=\"button\"><i class=\"fa fa-unlock-alt f-20\"></i></button>`;\n          let __view = `<button title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.VIEW')}\" data-toggle=\"tooltip\" data-action=\"view\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-eye f-20\"></i></button>`\n          let __copy = `<button title=\"${this.translateGrid.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT')}\" data-toggle=\"tooltip\" data-action=\"copy\" class=\"slick-button\" type=\"button\"><i class=\"fa fa-clipboard f-17\"></i></button>`\n          let __fake = `<button style=\"cursor: default\" class=\"slick-button\"><i style=\"color: transparent;\" class=\"fa fa-clipboard f-17\"></i></button>`\n\n          if (dataContext.path) {\n            return `${__view + __fake + __copy}`\n          }\n          if (dataContext.editable) {\n            return `${__view + __end_edit + __copy}`\n          } else {\n            return `${__view + __edit + __copy}`\n          }\n        },\n\n        onCellClick: (e: Event, args: OnEventArgs) => {\n          let __action: any = this.slickgridCustom.getNameAction(e.target);\n          this.viewEdit(args.dataContext, this.isEdit)\n          switch (__action) {\n            case 'edit':\n              this.showDialogChange(args.dataContext)\n              break;\n            case 'copy':\n              this.onCopyPath(args.dataContext);\n              break;\n            case 'view':\n              if (args.dataContext.path) {\n                this.viewChartFromOrgan(args.dataContext)\n              } else {\n                this.viewChart(args.dataContext.uuid)\n              }\n              break\n          }\n        }\n      },];\n    this.columnDefinitions = columnAll;\n  };\n\n  private iniOption() {\n    let gridOptionConstant: GridOption = GridOptionConstant('grid-container-share-for-me', 'uuid', this.gridTranslate['NO_DATA_DISPLAY']);\n    let gridOption: GridOption = {\n      i18n: this.translate, enableTranslate: true,\n    }\n    this.gridOptions = Object.assign(gridOptionConstant, gridOption);\n  }\n}\n","<div class=\"d-flex w-100 flex-column h-100\">\n  <app-custom-pagination #paging\n                         (onLoad)=\"reloadList($event)\"\n                         [hidden]=\"!(totalItem > 0 || (totalItem === 0 && (!!paramSearch.partner || !!paramSearch.key)))\"\n                         [pageNumber]=\"pageNumber\"\n                         [pageSize]=\"pageSize\"\n                         [params]=\"{}\"\n                         [totalItems]=\"totalItem\">\n    <ng-template #basicSearch>\n      <div style=\"flex-grow: 2\">\n        <div class=\"row mx-0\">\n          <div class=\"col-lg-3 col-12 px-1\"\n               style=\"min-width: 250px; padding-left: 0 !important;\">\n            <ng-select\n              #organSelect\n              (change)=\"chooseOrgan($event)\"\n              (keyup.enter)=\"loadShareForMe()\"\n              (scrollToEnd)=\"loadOrganization()\"\n              [clearable]=\"false\"\n              [editableSearchTerm]=\"true\"\n              [items]=\"listOrgan\"\n              [typeahead]=\"organInput$\"\n              [virtualScroll]=\"true\"\n              bindLabel=\"orgName\"\n              bindValue=\"organId\"\n              id=\"organList\"\n              notFoundText=\"{{'VISUALIZE.CHART.FIELD.NO_DATA_DISPLAY' | translate}}\"\n              placeholder=\"{{'VISUALIZE.FIELD.SHARING_UNIT'|translate}}\"\n            >\n            </ng-select>\n          </div>\n          <div class=\"col-lg-4 col-12 px-1\" style=\"min-width: 250px;width: 300px\">\n            <div class=\"container-search\">\n              <input (keydown.enter)=\"loadShareForMe({key:keyword})\" [(ngModel)]=\"keyword\"\n                     class=\"form-control form-control-sm\"\n                     placeholder=\"{{'VISUALIZE.FIELD.TITTLE.INPUT_KEY_FIND'|translate}}\">\n              <i (click)=\"loadShareForMe({key:keyword})\" aria-hidden=\"true\"\n                 class=\"fa fa-search text-muted icon-search-grid\"\n                 tooltip=\"{{'VISUALIZE.CHART.FIELD.SEARCH'|translate}}\"></i>\n            </div>\n          </div>\n        </div>\n      </div>\n    </ng-template>\n  </app-custom-pagination>\n  <div class=\"container-fluid px-0 flex-grow-1 d-flex flex-column\">\n    <div [hidden]=\"!(totalItem > 0 || (totalItem === 0 && (!!paramSearch.partner || !!paramSearch.key)))\"\n         class=\"h-100\"\n         id=\"grid-container-share-for-me\">\n      <angular-slickgrid (onAngularGridCreated)=\"angularGridReady($event)\"\n                         [columnDefinitions]=\"columnDefinitions\"\n                         [dataset]=\"listShareToMe\"\n                         [gridOptions]=\"gridOptions\"\n                         gridId=\"grid-share-for-me-list\">\n      </angular-slickgrid>\n    </div>\n    <div\n      [hidden]=\"!(!loading && !(totalItem > 0 || (totalItem === 0 && (!!paramSearch.partner || !!paramSearch.key))))\"\n      class=\"h-100\">\n      <app-grid-empty-layout\n        [titleMessage]=\"'VISUALIZE.CHART.FIELD.NO_SHARED_TO_ME'| translate\">\n      </app-grid-empty-layout>\n    </div>\n  </div>\n</div>\n<app-confirm-dialog #confirm\n                    [cls]=\"cls\"\n                    [content]=\"messageEdit | translate\"\n                    [isNoQuestion]=\"true\"\n                    [title]=\"titleEdit | translate\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n      aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"confirmChange()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\"\n            type=\"submit\"><i aria-hidden=\"true\"\n                             class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n","import {Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {Subscription} from \"rxjs\";\nimport {ConfirmDialogComponent} from \"inet-ui\";\nimport {ChartItem} from \"../../model/chart\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ErrorMessage, NotificationService} from \"inet-core\";\nimport {ShareService} from \"../share.service\";\n\n@Component({\n  selector: 'app-chart-share-delete',\n  templateUrl: './chart-share-delete.component.html',\n  styleUrls: ['./chart-share-delete.component.scss']\n})\nexport class ChartShareDeleteComponent implements OnInit, OnDestroy {\n  @ViewChild(\"deleteModal\", {static: false}) confirmDialog!: ConfirmDialogComponent;\n  @Output() deleteSuccess = new EventEmitter<any>();\n  msgContentDel: string = '';\n\n  private delActionsTranslations: any = {};\n  private translateSubscription: Subscription;\n\n  constructor(private translateService: TranslateService,\n              private notification: NotificationService,\n              private shareService: ShareService) {\n    this.translateSubscription = translateService.stream(['VISUALIZE.CHART.FIELD']).subscribe(data => {\n      this.delActionsTranslations = data['VISUALIZE.CHART.FIELD'];\n    })\n  }\n\n  ngOnInit(): void {\n  }\n\n  ngOnDestroy() {\n    this.translateSubscription.unsubscribe();\n  }\n\n  onShowDialog(item: any) {\n    this.confirmDialog.show();\n    this.confirmDialog.setData(item)\n    this.msgContentDel = `${this.delActionsTranslations['SHARE_ASK']} <b>\\\"${item.chartTitle|| item.chartName}\\\"</b>?`;\n  }\n\n  deleteItem() {\n    if (this.confirmDialog) {\n      let params = {uuid: this.confirmDialog.getData().uuid}\n      this.shareService.unPublish(params).subscribe((results: any) => {\n          this.confirmDialog.hide();\n          if (results.type !== ErrorMessage.TYPE) {\n            this.deleteSuccess.emit();\n            this.notification.showMessage(this.delActionsTranslations['DELETE_CHART_SUCCESS'], 'success',\n              'Visualize');\n          } else {\n            this.notification.showMessage(this.delActionsTranslations['DELETE_CHART_FAIL'], 'error','Visualize')\n          }\n        }\n      );\n    }\n  }\n}\n","<app-confirm-dialog #deleteModal\n                    [content]=\"msgContentDel | translate\"\n                    [title]=\"'VISUALIZE.CHART.FIELD.SHARE_DELETE_TITLE' | translate\" [isNoQuestion]=\"true\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n      aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"deleteItem()\" class=\"btn btn-sm mx-1 btn-custom btn-danger\"\n             type=\"submit\"><i aria-hidden=\"true\" class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n","import {Component, ViewChild} from '@angular/core';\nimport {ListMyShareComponent} from \"../list-my-share/list-my-share.component\";\nimport {ListShareForMeComponent} from \"../list-share-for-me/list-share-for-me.component\";\nimport {ChartShareDeleteComponent} from \"../chart-share-delete/chart-share-delete.component\";\nimport {AbstractReuseComponent} from \"../../model/abstract-reuse-component\";\n\n@Component({\n  selector: 'app-share-list',\n  templateUrl: './share-list.component.html',\n  styleUrls: ['./share-list.component.scss']\n})\n\nexport class ShareListComponent implements AbstractReuseComponent {\n  @ViewChild(ListMyShareComponent) myShare?: ListMyShareComponent;\n  @ViewChild(ListShareForMeComponent) shareForMe?: ListShareForMeComponent;\n  @ViewChild(ChartShareDeleteComponent) chartDelete!: ChartShareDeleteComponent;\n  isMyShare: boolean = true;\n  isRightBar: boolean = false;\n  itemSelect: any;\n  deleteSuccess: boolean = false;\n\n  public reload(): void {\n    this.isRightBar = false;\n    this.deleteSuccess = !this.deleteSuccess;\n  }\n\n  onOpenRightBar(open: boolean) {\n    this.isRightBar = open;\n  }\n\n  onSelectRow(value: any) {\n    this.itemSelect = value?.design;\n    if (value?.hasOwnProperty(['isRightBar'])) {\n      value['isRightBar'] === true ? this.isRightBar = true : false;\n    }\n  }\n\n\n  onChangeTab(isMyShare: boolean) {\n    this.isMyShare = isMyShare;\n    this.isRightBar = false;\n    isMyShare ? this.myShare?.onResize() : this.shareForMe?.onResize()\n  }\n\n  deleteChart(item: any) {\n    this.chartDelete.onShowDialog(item)\n  }\n\n  onDeleteSuccess() {\n    this.deleteSuccess = !this.deleteSuccess;\n    this.isRightBar = false;\n  }\n\n  onEditTable(data: any) {\n    this.shareForMe.showDialogChange(data)\n  }\n}\n","<div class=\"d-flex\">\n  <div [ngClass]=\"isRightBar ? 'spr2' : ''\" class=\"container-layout-grid bg-superset superset-content p-0\">\n    <div class=\"middle h-100 w-100 d-flex flex-column\">\n      <div class=\"container-fluid row mx-0 justify-content-between align-items-center bg-white p-2\"\n           style=\"height: 55px;min-height: 55px\">\n        <div class=\"d-flex\">\n          <div class=\"header f-20 text-uppercase\"><span>{{'VISUALIZE.CHART.FIELD.SHARE_CHART' | translate}}</span></div>\n          <div (click)=\"onChangeTab(true)\" [ngClass]=\"isMyShare ? 'active' : ''\"\n               class=\"header f-15\">\n            <span class=\"font-weight-medium\">{{'VISUALIZE.CHART.FIELD.YOU_HAVE_SHARED' | translate}}</span></div>\n          <div (click)=\"onChangeTab(false)\" [ngClass]=\"!isMyShare ? 'active' : ''\"\n               class=\"header f-15 \">\n            <span class=\"font-weight-medium\">{{'VISUALIZE.CHART.FIELD.YOU_HAVE_BEEN_SHARE' | translate}}</span></div>\n        </div>\n        <div class=\"d-flex\">\n          <button (click)=\"onOpenRightBar(!isRightBar)\"\n                  *ngIf=\"itemSelect\" [ngClass]=\"isRightBar? 'opened' : ''\" class=\"btn-custom btn-custom-icon px-1\">\n            <i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i>\n          </button>\n        </div>\n      </div>\n      <div class=\"bg-superset px-2 flex-grow-1 d-flex flex-column\">\n        <app-list-my-share (designItem)=\"onSelectRow($event)\" (itemDelete)=\"deleteChart($event)\"\n                           *ngIf=\"isMyShare\" [isDeleteSuccess]=\"deleteSuccess\"\n                           [isResize]=\"isRightBar\" class=\"h-100\"></app-list-my-share>\n        <app-list-share-for-me (designItem)=\"onSelectRow($event)\" *ngIf=\"!isMyShare\" [isResize]=\"isRightBar\"\n                               class=\"h-100\"></app-list-share-for-me>\n      </div>\n    </div>\n  </div>\n  <div *ngIf=\"isRightBar\" class=\"right-bar\">\n    <app-share-right-bar (close)=\"onOpenRightBar(false)\" (deleteItem)=\"deleteChart($event)\"\n                         (editTable)=\"onEditTable($event)\"\n                         [chart]=\"itemSelect\"\n                         [isChild]=\"false\"\n                         [isMyShare]=\"isMyShare\"></app-share-right-bar>\n  </div>\n</div>\n<app-chart-share-delete (deleteSuccess)=\"onDeleteSuccess()\"></app-chart-share-delete>\n","import {Component, EventEmitter, Inject, Input, OnInit, Output} from '@angular/core';\nimport {MyShare} from \"../model/share-model\";\nimport { DOCUMENT } from '@angular/common';\nimport { closeFullscreen, openFullscreen } from '../../utils/fullscreen';\n\n@Component({\n  selector: 'app-view-shared',\n  templateUrl: './view-shared.component.html',\n  styleUrls: ['./view-shared.component.scss']\n})\nexport class ViewSharedComponent implements OnInit {\n  @Output() isOpenRightBar = new EventEmitter<boolean>()\n  @Input() chart: MyShare;\n  msgContentDel: string = '';\n  @Input() isRight: boolean = false;\n  fullScreen = false;\n  elem: any;\n\n  constructor(@Inject(DOCUMENT) private document: any) {\n  }\n\n  ngOnInit(): void {\n    this.elem = document.documentElement;\n  }\n\n  backBar(isOpen: boolean) {\n    this.isRight = isOpen\n    this.isOpenRightBar.emit(isOpen);\n  }\n\n  onToggleFullScreen() {\n    this.fullScreen = !this.fullScreen;\n    if (this.fullScreen) {\n      openFullscreen(this.elem);\n    } else {\n      closeFullscreen(this.document);\n    }\n  }\n\n}\n","<app-action-view-layout [header]=\"''\" [isChild]=\"true\"\n                        [isRightBar]=\"false\" [isViewFull]=\"true\"\n                        [isFullScreen]=\"fullScreen\"\n                        [namePage]=\"chart?.chartName\">\n  <ng-template btnBottomTemplate>\n    <button (click)=\"backBar(!isRight)\" [ngClass]=\"isRight ? 'opened':''\"\n            class=\"btn-custom btn-custom-icon px-1\"><i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i>\n    </button>\n    <button (click)=\"onToggleFullScreen()\" class=\"btn-fullscreen\">\n      <i *ngIf=\"!fullScreen\" aria-hidden=\"true\" class=\"fa fa-expand\"></i>\n      <i *ngIf=\"fullScreen\" aria-hidden=\"true\" class=\"fa fa-compress\"></i>\n    </button>\n  </ng-template>\n  <ng-template contentTemplate>\n    <app-iframe-view [isResize]=\"isRight\" [isShareView]=\"true\" [chartInput]=\"chart\"></app-iframe-view>\n  </ng-template>\n</app-action-view-layout>\n","import {Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {ShareService} from \"../share.service\";\nimport { DOCUMENT } from '@angular/common';\nimport { closeFullscreen, openFullscreen } from '../../utils/fullscreen';\nimport { iNet } from 'inet-core';\nimport { Subject, debounceTime } from 'rxjs';\n\n@Component({\n  selector: 'app-view-share-for-me',\n  templateUrl: './view-share-for-me.component.html',\n  styleUrls: ['./view-share-for-me.component.scss']\n})\nexport class ViewShareForMeComponent implements OnInit, OnDestroy {\n  @Input() chart: any;\n  @Output() isOpenRightBar = new EventEmitter<boolean>()\n  msgContentDel: string = '';\n  @Input() isRight: boolean = false\n  url = iNet.getPUrl('visualcommon/page/view-publish')\n  path: string;\n  private resizeListener: () => void;\n  fullScreen = false;\n  elem: any;\n  private firstLoad = true;\n  private pluginManager = iNet.getPluginManager();\n  private resize$ = new Subject<void>();\n\n  constructor(private shareService: ShareService,\n    @Inject(DOCUMENT) private document: any\n    ) {\n  }\n\n\n  ngOnInit() {\n    this.elem = document.documentElement;\n    this.resize$.pipe(debounceTime(500)).subscribe(() => {\n      this.renderChart();\n    })\n\n    this.resizeListener = () => {\n      this.resize$.next();\n    };\n\n    if (!this.chart.path) {\n      this.loadPathChartShareForMe();\n    } else {\n      setTimeout(() => {\n        this.renderChart();\n      }, 100);\n    }\n    window.addEventListener('resize', this.resizeListener);\n  }\n\n  ngOnDestroy() {\n    window.removeEventListener('resize', this.resizeListener);\n  }\n\n  backBar(isOpen: boolean) {\n    this.isRight = isOpen\n    this.isOpenRightBar.emit(isOpen);\n    setTimeout(() => {\n      this.renderChart();\n    }, 100)\n  }\n\n  loadPathChartShareForMe() {\n    this.shareService.loadChartShareForMe({uuid: this.chart.uuid}).subscribe(value => {\n      this.chart = {...this.chart, ...value};\n      this.renderChart();\n    })\n  }\n\n  renderChart() {\n    const parent = document.getElementById('parent-iframe')\n    const width = parent.offsetWidth - 50;\n    const height = parent.offsetHeight - 50;\n    const src = `${this.url}?url=${encodeURIComponent(this.chart?.path)}&width=${width}&height=${height}`\n    const iframe = document.getElementById('view-chart-share-to-me');\n    if (iframe) {\n      if (this.firstLoad) {\n        iframe.setAttribute('src', src);\n        this.firstLoad = false;\n      } else {\n        const contentWindow = iframe['contentWindow'];\n        if (this.pluginManager && contentWindow) {\n          //Fires when the size or params of the chart changes.\n          const params = {\n            module: 'visualize',\n            width: width,\n            height: height\n          };\n          this.pluginManager.sendMessageTo({\n            sourceId: 'analytics',\n            eventName: 'paramchange',\n            result: JSON.stringify(params)\n          }, contentWindow);\n        }\n      }\n    }\n  }\n\n  onToggleFullScreen() {\n    this.fullScreen = !this.fullScreen;\n    if (this.fullScreen) {\n      openFullscreen(this.elem);\n    } else {\n      closeFullscreen(this.document);\n    }\n  }\n}\n","<app-action-view-layout [header]=\"''\" [isChild]=\"true\"\n                        [isRightBar]=\"false\" [isViewFull]=\"true\"\n                        [isFullScreen]=\"fullScreen\"\n                        [namePage]=\"chart?.chartName\">\n  <ng-template btnBottomTemplate>\n    <button (click)=\"backBar(!isRight)\" [ngClass]=\"isRight ? 'opened':''\"\n            class=\"btn-custom btn-custom-icon px-1\"><i aria-hidden=\"true\" class=\"icon fa fa-columns pt-1\"></i>\n    </button>\n    <button (click)=\"onToggleFullScreen()\" class=\"btn-fullscreen\">\n      <i *ngIf=\"!fullScreen\" aria-hidden=\"true\" class=\"fa fa-expand\"></i>\n      <i *ngIf=\"fullScreen\" aria-hidden=\"true\" class=\"fa fa-compress\"></i>\n    </button>\n  </ng-template>\n  <ng-template contentTemplate>\n    <div class=\"w-100 h-100 \" id=\"parent-iframe\">\n      <iframe class=\"w-100 h-100 bg-white\" id=\"view-chart-share-to-me\" style=\"border: none\"></iframe>\n    </div>\n  </ng-template>\n</app-action-view-layout>\n","import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {Location} from '@angular/common';\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {ShareService} from \"../share.service\";\nimport {ChartShareDeleteComponent} from \"../chart-share-delete/chart-share-delete.component\";\nimport {ConfirmDialogComponent} from \"inet-ui\";\nimport {ShareToMe} from \"../model/share-model\";\nimport {TranslateService} from \"@ngx-translate/core\";\nimport {ErrorMessage, iNet, NotificationService} from \"inet-core\";\n\n@Component({\n  selector: 'app-shared-center',\n  templateUrl: './shared-center.component.html',\n  styleUrls: ['./shared-center.component.scss']\n})\nexport class SharedCenterComponent implements OnInit, OnDestroy {\n  @ViewChild(ChartShareDeleteComponent) chartDelete!: ChartShareDeleteComponent;\n  @ViewChild('confirm') confirmDialog: ConfirmDialogComponent;\n  uuid: string\n  chart: any;\n  isOpenRightBar: boolean = false\n  actionCurrent: string = ''\n  action = ShareAction;\n  isMyShare: boolean = false\n  cls: string\n  messageEdit: string\n  titleEdit: string\n  urlJS: string = 'js/visualcommon/analytics.js';\n  urlIframe: string = iNet.getPUrl('visualcommon/page/view-publish');\n\n  constructor(private location: Location,\n              private route: ActivatedRoute,\n              private shareService: ShareService,\n              private router: Router,\n              private translate: TranslateService,\n              private notification: NotificationService) {\n\n    this.route.queryParams.subscribe(value => {\n      if (value[\"uuid\"]) {\n        this.uuid = value.uuid\n      }\n      if (value[\"action\"]) {\n        this.actionCurrent = value[\"action\"].toUpperCase();\n      }\n      if (value[\"myShare\"]) {\n        this.isMyShare = value[\"myShare\"] === 'true' ? true : false;\n      }\n    })\n  }\n\n  ngOnInit(): void {\n    if (this.uuid) {\n      this.loadChart();\n    } else {\n      this.isMyShare = false;\n      this.actionCurrent = \"VIEW\"\n      let item: any = window.localStorage.getItem('chartView')\n      const chartView = JSON.parse(item);\n      this.chart = chartView\n    }\n  }\n\n  loadChart() {\n    this.shareService.loadChartMyShare({uuid: this.uuid}).subscribe(value => {\n      this.chart = value\n    })\n  }\n\n  onBack() {\n    this.router.navigate(['/', \"share\", \"list\"])\n  }\n\n  onOpenRightBar(isOpen: boolean) {\n    this.isOpenRightBar = isOpen\n  }\n\n  deleteChart() {\n    this.chartDelete.onShowDialog(this.chart)\n  }\n\n  onDeleteSuccess() {\n    this.router.navigate(['/', \"share\", \"list\"])\n  }\n\n  confirmChange() {\n    const data: ShareToMe = this.confirmDialog.getData();\n    let status;\n    data.editable ? status = false : status = true\n    this.shareService.changStatusEdit({uuid: data.uuid, editable: status}).subscribe(value => {\n      this.confirmDialog.hide();\n      if (value === \"success\") {\n        this.chart.editable = !this.chart.editable\n      }\n    })\n  }\n\n  showDialogChange(dataContext: ShareToMe) {\n    if (!dataContext.editable) {\n      this.cls = 'fa fa-unlock-alt'\n      this.messageEdit = this.translate.instant('VISUALIZE.CHART.FIELD.MESSAGE_EDIT', {name: dataContext.chartName})\n      this.titleEdit = this.translate.instant('VISUALIZE.CHART.FIELD.TITLE_EDIT')\n    } else {\n      this.cls = 'fa fa-lock'\n      this.messageEdit = this.translate.instant('VISUALIZE.CHART.FIELD.MESSAGE_BLOCK_EDIT', {name: dataContext.chartName})\n      this.titleEdit = this.translate.instant('VISUALIZE.CHART.FIELD.BLOCK_EDITABLE')\n    }\n    this.confirmDialog.setData(dataContext)\n    this.confirmDialog.show();\n  }\n\n  onCopyPath() {\n    /* this.shareService.copyPath(uuid).subscribe(status => {\n       if (status) {\n         this.notification.showMessage(this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS'),\n           'success', 'Visualize')\n       } else {\n         this.notification.showMessage(this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD'),\n           'error', 'Visualize')\n       }\n     })*/\n    const messSuccess = this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_SUCCESS')\n    const messFailed = this.translate.instant('VISUALIZE.CHART.FIELD.COPY_SCRIPT_FAILD')\n    if (this.chart.path) {\n      this.shareService.copyPathCantLoad(this.chart.path).subscribe(status => {\n        if (status) {\n          this.notification.showMessage(messSuccess, 'success', 'Visualize')\n        } else {\n          this.notification.showMessage(messFailed, 'error', 'Visualize')\n        }\n      })\n    } else {\n      this.shareService.copyPath(this.chart.uuid).subscribe(status => {\n        if (status) {\n          this.notification.showMessage(messSuccess, 'success', 'Visualize')\n        } else {\n          this.notification.showMessage(messFailed, 'error', 'Visualize')\n        }\n      })\n    }\n  }\n\n  ngOnDestroy(): void {\n    window.localStorage.removeItem('chartView')\n  }\n}\n\nexport enum ShareAction {\n  VIEW = 'VIEW',\n}\n","<div class=\"container-toolbar h-toolbar justify-content-between\">\n  <ul class=\"breadcrumb border-0 px-0 ml-2 text-truncate d-flex flex-nowrap\" style=\"flex: 1\">\n    <li (click)=\"onBack()\" class=\"\">{{'VISUALIZE.CHART.FIELD.SHARE_CHART' | translate}}</li>\n    <li (click)=\"onBack()\">{{ (isMyShare ? 'VISUALIZE.CHART.FIELD.YOU_HAVE_SHARED' :\n      'VISUALIZE.CHART.FIELD.YOU_HAVE_BEEN_SHARE') | translate}} </li>\n    <li class=\"active font-weight-medium\">\n      {{chart?.chartName}}\n    </li>\n  </ul>\n  <div class=\"tabs-custom\">\n    <div [class.active]=\"actionCurrent === action.VIEW\" class=\"tab-item mr-2 font-weight-medium\">\n      <span class=\"fa fa-eye mr-1\"></span><span\n      class=\"current\">{{'VISUALIZE.CHART.FIELD.VIEW' | translate}}</span>\n    </div>\n    <button (click)=\"showDialogChange(chart)\" *ngIf=\"!isMyShare && !chart?.path\"\n            class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n      <i [ngClass]=\"!chart?.editable ? 'fa fa-lock f-20':'fa fa-unlock-alt f-20'\" aria-hidden=\"true\" class=\"mr-2\"></i>\n      {{(!chart?.editable ? 'VISUALIZE.CHART.FIELD.ALLOW_EDIT' : 'VISUALIZE.CHART.FIELD.BLOCK_EDIT')|translate}}\n    </button>\n    <button (click)=\"onCopyPath()\"\n            class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\">\n      <span class=\"mr-2 fa fa-clipboard f-17\"></span>\n      {{'VISUALIZE.CHART.FIELD.COPY_SCR'|translate}}\n    </button>\n    <button (click)=\"deleteChart()\" *ngIf=\"isMyShare\"\n            class=\"btn btn-sm mx-1 btn-custom btn-custom-danger font-weight-medium\"><i\n      class=\"fa fa-trash-o mr-2\"></i>{{'VISUALIZE.CHART.FIELD.ACTION_DELETE' | translate}}</button>\n  </div>\n</div>\n<div class=\"h-100 d-flex\">\n  <div [ngClass]=\"!isOpenRightBar ? 'w-100' : 'spr2'\" class=\"col-left\">\n    <app-view-shared (isOpenRightBar)=\"onOpenRightBar($event)\" *ngIf=\"actionCurrent==='VIEW' && chart && isMyShare\"\n                     [chart]=\"chart\"\n                     [isRight]=\"isOpenRightBar\"></app-view-shared>\n    <app-view-share-for-me (isOpenRightBar)=\"onOpenRightBar($event)\"\n                           *ngIf=\"actionCurrent==='VIEW' && chart &&!isMyShare\"\n                           [chart]=\"chart\"\n                           [isRight]=\"isOpenRightBar\"></app-view-share-for-me>\n  </div>\n\n  <div *ngIf=\"isOpenRightBar\" class=\"right\">\n    <app-share-right-bar (close)=\"onOpenRightBar($event)\" [chart]=\"chart\"></app-share-right-bar>\n  </div>\n</div>\n<app-chart-share-delete (deleteSuccess)=\"onDeleteSuccess()\"></app-chart-share-delete>\n<app-confirm-dialog #confirm\n                    [cls]=\"cls\"\n                    [content]=\"messageEdit | translate\"\n                    [isNoQuestion]=\"true\"\n                    [title]=\"titleEdit | translate\">\n  <ng-template modalAction>\n    <button (click)=\"confirmDialog.hide()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-line-primary\"><i\n      aria-hidden=\"true\" class=\"fa fa-remove mr-1\"></i> {{'VISUALIZE.CHART.FIELD.SKIP' |translate}}\n    </button>\n    <button (click)=\"confirmChange()\" class=\"btn btn-sm mx-1 btn-custom btn-custom-primary\"\n            type=\"submit\"><i aria-hidden=\"true\"\n                             class=\"fa fa-check mr-1\"></i>{{'VISUALIZE.CHART.FIELD.AGREE' | translate}}\n    </button>\n  </ng-template>\n</app-confirm-dialog>\n","import {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from \"@angular/router\";\nimport {ShareListComponent} from \"./share-list/share-list.component\";\nimport {SharedCenterComponent} from \"./shared-center/shared-center.component\";\n\n\nconst routes: Routes = [\n  {path: '', redirectTo: 'list', pathMatch: 'full'},\n  {path: 'list', component: ShareListComponent},\n  {path: 'center', component: SharedCenterComponent},\n];\n\n\n@NgModule({\n  imports: [RouterModule.forChild(routes)],\n  exports: [RouterModule]\n})\nexport class ShareRoutingModule {\n}\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n  selector: 'app-svg-icon',\n  templateUrl: './svg-icon.component.html',\n  styleUrls: ['./svg-icon.component.scss']\n})\n\nexport class SvgiconComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n  load() {\n    console.log('svg');\n  }\n\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"display:none\">\r\n    <symbol id=\"ico-search\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z\" fill=\"none\"\r\n            stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\" />\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke-width=\"32\"\r\n            d=\"M338.29 338.29L448 448\" />\r\n    </symbol>\r\n    <symbol id=\"ico-home\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M80 212v236a16 16 0 0016 16h96V328a24 24 0 0124-24h80a24 24 0 0124 24v136h96a16 16 0 0016-16V212\"\r\n            fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" />\r\n        <path d=\"M480 256L266.89 52c-5-5.28-16.69-5.34-21.78 0L32 256M400 179V64h-48v69\" fill=\"none\"\r\n            stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" />\r\n    </symbol>\r\n    <symbol id=\"ico-user\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z\" fill=\"none\"\r\n            stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" />\r\n        <path\r\n            d=\"M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z\"\r\n            fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\" />\r\n    </symbol>\r\n    <symbol id=\"ico-arrow-down\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\"\r\n            d=\"M112 184l144 144 144-144\" />\r\n    </symbol>\r\n    <symbol id=\"ico-arrow-up\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\"\r\n            d=\"M112 328l144-144 144 144\" />\r\n    </symbol>\r\n    <symbol id=\"ico-arrow-prev\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\"\r\n            d=\"M328 112L184 256l144 144\" />\r\n    </symbol>\r\n    <symbol id=\"ico-arrow-next\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\"\r\n            d=\"M184 112l144 144-144 144\" />\r\n    </symbol>\r\n    <symbol id=\"ico-dropdown\" viewBox=\"0 0 10 5\">\r\n        <path d=\"M0.962483 0.38096L5.25321 4.67169L9.54395 0.38096\" fill=\"currentColor\" />\r\n    </symbol>\r\n    <symbol id=\"ico-signin\" viewBox=\"0 0 23 23\">\r\n        <path\r\n            d=\"M11.5 0C8.45098 0.00315098 5.52774 1.21576 3.37175 3.37175C1.21577 5.52773 0.00315098 8.45096 0 11.5C0 14.5726 1.1954 17.46 3.36685 19.6314C4.43234 20.7029 5.69983 21.5524 7.09591 22.1306C8.49199 22.7088 9.98892 23.0043 11.5 23C14.549 22.9968 17.4723 21.7842 19.6282 19.6282C21.7842 17.4722 22.9968 14.549 23 11.5C22.9968 8.45096 21.7842 5.52773 19.6282 3.37175C17.4723 1.21576 14.549 0.00315098 11.5 0ZM4.54865 19.5566C5.34347 18.5225 6.36155 17.6813 7.52692 17.0957C8.69229 16.51 9.97486 16.1951 11.2789 16.1744C11.3198 16.1761 11.3589 16.1863 11.3997 16.1863H11.4388C11.4762 16.1863 11.5102 16.1761 11.5476 16.1744C12.8697 16.1969 14.1691 16.5222 15.3459 17.1254C16.5226 17.7285 17.5454 18.5933 18.3357 19.6535C16.4237 21.2672 14.002 22.1515 11.5 22.1497C8.94556 22.1543 6.47599 21.2331 4.54865 19.5566ZM11.4048 15.3157C11.3623 15.3157 11.3215 15.3225 11.2789 15.3242C10.2864 15.2906 9.34615 14.8712 8.65803 14.1551C7.96992 13.4391 7.58823 12.4829 7.59412 11.4898C7.59589 10.9871 7.69689 10.4897 7.89132 10.0261C8.08576 9.56255 8.36979 9.14192 8.72714 8.78837C9.08449 8.43481 9.50812 8.15528 9.97374 7.9658C10.4394 7.77633 10.9378 7.68064 11.4405 7.68422C11.9432 7.686 12.4406 7.787 12.9041 7.98143C13.3677 8.17586 13.7883 8.4599 14.1419 8.81724C14.4955 9.17459 14.775 9.59822 14.9645 10.0638C15.1539 10.5295 15.2496 11.0279 15.246 11.5306C15.246 13.5915 13.5966 15.2664 11.5493 15.3259C11.5017 15.3242 11.4541 15.3157 11.4048 15.3157ZM18.9666 19.0822C17.6517 17.347 15.7815 16.1154 13.668 15.5929C14.4035 15.1899 15.0169 14.5965 15.4442 13.8749C15.8714 13.1533 16.0966 12.3301 16.0963 11.4915C16.0943 10.8772 15.9711 10.2693 15.7339 9.70273C15.4966 9.13611 15.15 8.62184 14.7137 8.18938C14.2775 7.75692 13.7602 7.41475 13.1915 7.18247C12.6228 6.95019 12.0139 6.83235 11.3997 6.83571C10.7854 6.83771 10.1775 6.96086 9.61092 7.1981C9.0443 7.43533 8.53004 7.782 8.09758 8.21825C7.66511 8.65451 7.32295 9.17177 7.09066 9.74044C6.85838 10.3091 6.74054 10.918 6.7439 11.5323C6.74702 12.363 6.97303 13.1778 7.39835 13.8914C7.82366 14.605 8.4327 15.1915 9.16191 15.5895C7.08416 16.0998 5.23871 17.2948 3.92289 18.9818C1.94931 16.994 0.844877 14.3045 0.851915 11.5034C0.855065 8.67985 1.97811 5.97287 3.97464 3.97634C5.97118 1.9798 8.67817 0.856764 11.5017 0.853614C14.3252 0.856764 17.0322 1.9798 19.0288 3.97634C21.0253 5.97287 22.1483 8.67985 22.1515 11.5034C22.1508 12.9149 21.8687 14.3121 21.3219 15.6134C20.7751 16.9146 19.9744 18.0939 18.9666 19.0822Z\"\r\n            fill=\"currentColor\" />\r\n    </symbol>\r\n    <symbol id=\"ico-app\" viewBox=\"0 0 25 25\">\r\n        <rect x=\"3.625\" y=\"3.20898\" width=\"7\" height=\"7\" rx=\"1\" stroke-width=\"1.5\" stroke-linecap=\"round\" class=\"icon\"\r\n            fill=\"currentColor\"></rect>\r\n        <rect x=\"3.625\" y=\"14.209\" width=\"7\" height=\"7\" rx=\"1\" stroke-width=\"1.5\" stroke-linecap=\"round\" class=\"icon\"\r\n            fill=\"currentColor\"></rect>\r\n        <rect x=\"14.625\" y=\"3.20898\" width=\"7\" height=\"7\" rx=\"1\" stroke-width=\"1.5\" stroke-linecap=\"round\" class=\"icon\"\r\n            fill=\"currentColor\"></rect>\r\n        <rect x=\"14.625\" y=\"14.209\" width=\"7\" height=\"7\" rx=\"1\" stroke-width=\"1.5\" stroke-linecap=\"round\" class=\"icon\"\r\n            fill=\"currentColor\"></rect>\r\n    </symbol>\r\n    <symbol id=\"ico-play\" viewBox=\"0 0 512 512\">\r\n        <path\r\n            d=\"M133 440a35.37 35.37 0 01-17.5-4.67c-12-6.8-19.46-20-19.46-34.33V111c0-14.37 7.46-27.53 19.46-34.33a35.13 35.13 0 0135.77.45l247.85 148.36a36 36 0 010 61l-247.89 148.4A35.5 35.5 0 01133 440z\"\r\n            fill=\"currentColor\" />\r\n    </symbol>\r\n    <symbol id=\"ico-clock\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\" fill=\"none\"\r\n            stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\" />\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"\r\n            d=\"M256 128v144h96\" />\r\n    </symbol>\r\n    <symbol id=\"ico-add\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\" fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M256 176v160M336 256H176\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-delete\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\" fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M320 320L192 192M192 320l128-128\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-copy\" viewBox=\"0 0 512 512\">\r\n        <rect x=\"128\" y=\"128\" width=\"336\" height=\"336\" rx=\"57\" ry=\"57\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path d=\"M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-edit\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/>\r\n        <path d=\"M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z\" fill=\"currentColor\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-save\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-filter\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M32 144h448M112 256h288M208 368h96\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-back\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\" d=\"M244 400L100 256l144-144M120 256h292\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-cart\" viewBox=\"0 0 512 512\">\r\n        <circle cx=\"176\" cy=\"416\" r=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/><circle cx=\"400\" cy=\"416\" r=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M48 80h64l48 272h256\"/><path d=\"M160 288h249.44a8 8 0 007.85-6.43l28.8-144a8 8 0 00-7.85-9.57H128\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-location\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/><circle cx=\"256\" cy=\"192\" r=\"48\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-phone\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M451 374c-15.88-16-54.34-39.35-73-48.76-24.3-12.24-26.3-13.24-45.4.95-12.74 9.47-21.21 17.93-36.12 14.75s-47.31-21.11-75.68-49.39-47.34-61.62-50.53-76.48 5.41-23.23 14.79-36c13.22-18 12.22-21 .92-45.3-8.81-18.9-32.84-57-48.9-72.8C119.9 44 119.9 47 108.83 51.6A160.15 160.15 0 0083 65.37C67 76 58.12 84.83 51.91 98.1s-9 44.38 23.07 102.64 54.57 88.05 101.14 134.49S258.5 406.64 310.85 436c64.76 36.27 89.6 29.2 102.91 23s22.18-15 32.83-31a159.09 159.09 0 0013.8-25.8C465 391.17 468 391.17 451 374z\" fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-facebook\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"currentColor\" d=\"M480 257.35c0-123.7-100.3-224-224-224s-224 100.3-224 224c0 111.8 81.9 204.47 189 221.29V322.12h-56.89v-64.77H221V208c0-56.13 33.45-87.16 84.61-87.16 24.51 0 50.15 4.38 50.15 4.38v55.13H327.5c-27.81 0-36.51 17.26-36.51 35v42h62.12l-9.92 64.77H291v156.54c107.1-16.81 189-109.48 189-221.31z\" fill-rule=\"evenodd\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-skype\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"currentColor\" d=\"M467.16 303.6a205.69 205.69 0 004.9-45.15c0-116.32-95.69-210.7-213.79-210.7a221.83 221.83 0 00-36.52 3A123.58 123.58 0 00155.93 32C87.55 32 32 86.72 32 154.15A119.56 119.56 0 0049 216a211.16 211.16 0 00-4.32 42.35c0 116.44 95.69 210.7 213.67 210.7a214 214 0 0039.09-3.5A125.45 125.45 0 00356.07 480C424.57 480 480 425.28 480 357.85a118 118 0 00-12.84-54.25zM368 359c-9.92 13.76-24.51 24.73-43.41 32.43S283.36 403 257.69 403c-30.69 0-56.36-5.37-76.55-15.87a101 101 0 01-35.24-30.8c-9.11-12.83-13.66-25.66-13.66-38 0-7.7 3-14.35 8.87-19.95 5.84-5.37 13.42-8.17 22.29-8.17 7.35 0 13.65 2.1 18.79 6.42 4.9 4.08 9.1 10.15 12.48 18.08A108.09 108.09 0 00207 336.15q6.32 8.22 17.86 13.65c7.82 3.62 18.2 5.48 31 5.48 17.62 0 32.09-3.73 42.94-11.08 10.74-7.12 15.88-15.75 15.88-26.25 0-8.28-2.69-14.82-8.29-19.95-5.83-5.37-13.42-9.57-22.87-12.37-9.69-3-22.87-6.18-39.21-9.56-22.17-4.67-41-10.27-56-16.57-15.28-6.42-27.65-15.4-36.76-26.48-9.22-11.32-13.77-25.55-13.77-42.24a67.86 67.86 0 0114.47-42.58c9.57-12.25 23.46-21.82 41.55-28.35 17.74-6.53 38.86-9.8 62.66-9.8 19.14 0 35.83 2.22 49.83 6.42s25.91 10.15 35.36 17.38 16.34 14.93 20.77 23 6.66 16.22 6.66 24c0 7.46-2.92 14.35-8.76 20.3a29.65 29.65 0 01-21.94 9.1c-7.93 0-14.12-1.87-18.43-5.6-4-3.5-8.17-8.87-12.72-16.69-5.37-9.91-11.79-17.85-19.14-23.45-7.24-5.36-19.14-8.16-35.71-8.16-15.29 0-27.77 3-37 9-8.87 5.72-13.19 12.37-13.19 20.18a18.26 18.26 0 004.32 12.25 38.13 38.13 0 0012.72 9.57 90.14 90.14 0 0017.15 6.53c6 1.64 15.87 4.09 29.53 7.12 17.38 3.62 33.25 7.82 47.26 12.13 14.24 4.55 26.49 10 36.52 16.45a72.93 72.93 0 0124.16 25.09c5.72 10 8.64 22.63 8.64 37.1A75.09 75.09 0 01368 359z\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-close\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\" fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M320 320L192 192M192 320l128-128\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-bag\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-email\" viewBox=\"0 0 512 512\">\r\n        <path d=\"M470.3 271.15L43.16 447.31a7.83 7.83 0 01-11.16-7V327a8 8 0 016.51-7.86l247.62-47c17.36-3.29 17.36-28.15 0-31.44l-247.63-47a8 8 0 01-6.5-7.85V72.59c0-5.74 5.88-10.26 11.16-8L470.3 241.76a16 16 0 010 29.39z\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/>\r\n    </symbol>\r\n    <symbol id=\"ico-menu\" viewBox=\"0 0 512 512\">\r\n        <path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke-width=\"32\" d=\"M80 160h352M80 256h352M80 352h352\"/>\r\n    </symbol>\r\n</svg>\r\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\nimport { ShareListComponent } from \"./share-list/share-list.component\";\nimport { CustomPaginationModule, GridModule, SafePipeModule } from \"inet-ui\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { AngularSlickgridModule } from \"angular-slickgrid\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { LayoutCommonModule } from \"../layout-common/layout-common.module\";\nimport { DashboardCommonModule } from \"../common/dashboard-common.module\";\nimport { ShareRoutingModule } from \"./share-routing.module\";\nimport { ListMyShareComponent } from \"./list-my-share/list-my-share.component\";\nimport { ShareRightBarComponent } from \"./share-right-bar/share-right-bar.component\";\nimport { ListShareForMeComponent } from \"./list-share-for-me/list-share-for-me.component\";\nimport { DialogModule } from \"../dialog\";\nimport { ChartShareDeleteComponent } from \"./chart-share-delete/chart-share-delete.component\";\nimport { ViewSharedComponent } from \"./view-shared/view-shared.component\";\nimport { SharedCenterComponent } from \"./shared-center/shared-center.component\";\nimport { ViewShareForMeComponent } from \"./view-share-for-me/view-share-for-me.component\";\nimport { IframeViewComponent } from \"./iframe-view/iframe-view.component\";\nimport { SvgiconComponent } from \"./svg-icon/svg-icon.component\";\n\n@NgModule({\n  declarations: [\n    ShareListComponent,\n    ListMyShareComponent,\n    ShareRightBarComponent,\n    ListShareForMeComponent,\n    ChartShareDeleteComponent,\n    ViewSharedComponent,\n    SharedCenterComponent,\n    SharedCenterComponent,\n    ViewShareForMeComponent,\n    IframeViewComponent,\n    SvgiconComponent,\n  ],\n  exports: [\n    ShareListComponent,\n    ListMyShareComponent,\n    ShareRightBarComponent,\n    ListShareForMeComponent,\n    ChartShareDeleteComponent,\n    ViewSharedComponent,\n    SharedCenterComponent,\n    SharedCenterComponent,\n    ViewShareForMeComponent,\n    IframeViewComponent,\n    SvgiconComponent,\n  ],\n  imports: [\n    CommonModule,\n    ShareRoutingModule,\n    CustomPaginationModule,\n    FormsModule,\n    ReactiveFormsModule,\n    AngularSlickgridModule.forRoot(),\n    NgSelectModule,\n    TooltipModule,\n    TabsModule,\n    ModalModule.forRoot(),\n    LayoutCommonModule,\n    DashboardCommonModule,\n    GridModule,\n    DialogModule,\n    SafePipeModule,\n  ],\n  providers: [DatePipe],\n})\nexport class ShareModule {}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n  selector: '[appSnakeCase]'\n})\nexport class SnakeCaseDirective {\n  constructor(private el: ElementRef) {}\n\n  @HostListener('input', ['$event.target.value']) onInput(value: string) {\n    // Convert the input value to snake_case and update the input element\n    this.el.nativeElement.value = this.toSnakeCase(value);\n  }\n\n  private toSnakeCase(input: string): string {\n    if (!input) {\n      return '';\n    }\n\n    // Replace spaces and non-alphanumeric characters with underscores\n    const snakeCase = input.replace(/\\s+/g, '_').replace(/[^a-zA-Z0-9]/g, '_');\n\n    // Convert to lowercase\n    return snakeCase.toLowerCase();\n  }\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\nimport { ChartRoutingModule } from \"./chart-routing.module\";\nimport { ChartListComponent } from \"./chart-list/chart-list.component\";\nimport {\n  CustomPaginationModule,\n  GridModule,\n  PipeCommonModule,\n  SafePipeModule,\n} from \"inet-ui\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\nimport { ChartAddComponent } from \"./chart-add/chart-add.component\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\nimport { ChartRightBarComponent } from \"./right-bar/chart-right-bar.component\";\nimport { AngularSlickgridModule } from \"angular-slickgrid\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { LayoutCommonModule } from \"../layout-common/layout-common.module\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { ChartExploreComponent } from \"./chart-explore/chart-explore.component\";\nimport { SchemaKeyvaluePipe } from \"./chart-explore/schema-keyvalue.pipe\";\nimport { ChartSelectComponent } from \"./chart-select/chart-select.component\";\nimport { DashboardCommonModule } from \"../common/dashboard-common.module\";\nimport { DialogModule } from \"../dialog\";\nimport { ChartViewComponent } from \"./chart-view/chart-view.component\";\nimport { ChartDeleteComponent } from \"./chart-delete/chart-delete.component\";\nimport { ChartCenterComponent } from \"./chart-center/chart-center.component\";\nimport { UrlImagePipe } from \"./pipe/get-url-image.pipe\";\nimport { ChartFilterOrganPipe } from \"./pipe/chart-filter-organ.pipe\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\nimport { ChartShareRightBarComponent } from \"./chart-share-right-bar/chart-share-right-bar.component\";\nimport { GetNameSharePipe } from \"./pipe/get-name-share\";\nimport { ChartPublishDialogComponent } from \"./chart-publish-dialog/chart-publish-dialog.component\";\nimport { ShareModule } from \"../share/share.module\";\nimport { DatasetSelectComponent } from \"./dataset-select/dataset-select.component\";\nimport { GetNameDatasetDisplayPipe } from \"./dataset-select/get-name-dataset-display.pipe\";\nimport { ChartMappingComponent } from \"./chart-mapping/chart-mapping.component\";\nimport { ChartCustomComponent } from \"./chart-custom/chart-custom.component\";\nimport { ChartHTMLTemplate } from \"./chart-html-template/chart-html-template.component\";\nimport { FilterPopoverComponent } from \"./filter-popover/filter-popover.component\";\nimport { MetricPopoverComponent } from \"./metric-popover/metric-popover.component\";\nimport { PopoverModule } from \"ngx-bootstrap/popover\";\nimport { FilterFormatter } from \"./pipe/filter-format.pipe\";\nimport { MetricFormatter } from \"./pipe/metric-format.pipe\";\nimport { ChartMappingViewComponent } from \"./chart-mapping-view/chart-mapping-view.component\";\nimport { CheckTypePipePipe } from \"./pipe/check-type-pipe.pipe\";\nimport { ColorPickerModule } from \"ngx-color-picker\";\nimport { ChartCustomBar } from \"./chart-custom-bar/chart-custom-bar.component\";\nimport { SafeHtmlPipe } from \"./pipe/html.pipe\";\nimport { ChartCreateTemplateComponent } from \"./chart-create-template/chart-create-template.component\";\nimport { NamingConventionModule } from \"inet-ui\";\nimport { SnakeCaseDirective } from \"../directive/snake.directive\";\nimport { DeleteDialogComponent } from \"./delete-dialog/delete-dialog.component\";\nimport { AliasPopoverComponent } from \"./alias-popover/alias-popover.component\";\nimport { ChartCustomTable } from \"./chart-custom-table/chart-custom-table.component\";\nimport { ChartBarV2 } from \"./chart-bar-v2/chart-bar-v2.component\";\nimport { ChartMixed } from \"./chart-mixed/chart-mixed.component\";\nimport { InetVisualizeCreatorModule } from \"inet-visualize-creator\";\nimport { ChartCandlestick } from \"./chart-candlestick/chart-candlestick.component\";\n\n@NgModule({\n  declarations: [\n    ChartListComponent,\n    ChartAddComponent,\n    ChartRightBarComponent,\n    ChartCenterComponent,\n    ChartExploreComponent,\n    SchemaKeyvaluePipe,\n    ChartSelectComponent,\n    ChartViewComponent,\n    ChartDeleteComponent,\n    UrlImagePipe,\n    ChartFilterOrganPipe,\n    ChartShareRightBarComponent,\n    GetNameSharePipe,\n    ChartPublishDialogComponent,\n    DatasetSelectComponent,\n    GetNameDatasetDisplayPipe,\n    ChartMappingComponent,\n    ChartCustomComponent,\n    ChartHTMLTemplate,\n    FilterPopoverComponent,\n    MetricPopoverComponent,\n    FilterFormatter,\n    MetricFormatter,\n    ChartMappingComponent,\n    ChartMappingViewComponent,\n    CheckTypePipePipe,\n    ChartCustomBar,\n    SafeHtmlPipe,\n    ChartCustomBar,\n    ChartCreateTemplateComponent,\n    SnakeCaseDirective,\n    DeleteDialogComponent,\n    AliasPopoverComponent,\n    ChartCustomTable,\n    ChartBarV2,\n    ChartMixed,\n    ChartCandlestick,\n  ],\n  providers: [DatePipe, ChartFilterOrganPipe],\n  exports: [\n    ChartListComponent,\n    ChartAddComponent,\n    ChartRightBarComponent,\n    ChartCenterComponent,\n    ChartExploreComponent,\n    SchemaKeyvaluePipe,\n    ChartSelectComponent,\n    ChartViewComponent,\n    ChartDeleteComponent,\n    UrlImagePipe,\n    ChartFilterOrganPipe,\n    ChartShareRightBarComponent,\n    GetNameSharePipe,\n    ChartPublishDialogComponent,\n    DatasetSelectComponent,\n    GetNameDatasetDisplayPipe,\n    ChartMappingComponent,\n    ChartCustomComponent,\n    ChartHTMLTemplate,\n    FilterPopoverComponent,\n    MetricPopoverComponent,\n    FilterFormatter,\n    MetricFormatter,\n    ChartMappingComponent,\n    ChartMappingViewComponent,\n    CheckTypePipePipe,\n    ChartCustomBar,\n    SafeHtmlPipe,\n    ChartCustomBar,\n    ChartCreateTemplateComponent,\n    SnakeCaseDirective,\n    DeleteDialogComponent,\n    AliasPopoverComponent,\n    ChartCustomTable,\n    ChartBarV2,\n    ChartMixed,\n    ChartCandlestick,\n    InetVisualizeCreatorModule\n  ],\n  imports: [\n    CommonModule,\n    ChartRoutingModule,\n    CustomPaginationModule,\n    PipeCommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TooltipModule,\n    NgSelectModule,\n    AngularSlickgridModule.forRoot(),\n    ModalModule.forRoot(),\n    DialogModule,\n    TabsModule,\n    DashboardCommonModule,\n    LayoutCommonModule,\n    CollapseModule,\n    SafePipeModule,\n    GridModule,\n    BsDatepickerModule.forRoot(),\n    ShareModule,\n    PopoverModule,\n    ColorPickerModule,\n    NamingConventionModule,\n    InetVisualizeCreatorModule\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\n\nexport class ChartModule {\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class VisualizeLibService {\n\n  constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'lib-visualize-lib',\n  template: `\n    <p>\n      visualize-lib works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class VisualizeLibComponent {\n\n}\n","import {IDataSend} from \"../actions/data-send.action\";\nimport { Schemas } from \"../../../core/utils/get-column-chart\";\nimport {ITemplate as ITemplateItem} from '../../../template/models';\n\nexport interface INavigationState {\n  navigator: any[];\n\n}\n\nexport const initialNavigationState: INavigationState = {\n  navigator: [],\n};\n\nexport interface IErrorState {\n  error: string;\n}\n\nexport interface IRightbarState {\n  isShowRightbar: boolean\n}\n\nexport const initialErrorState: IErrorState = {\n  error: '',\n}\n\nexport const initialRightbarState: IRightbarState = {\n  isShowRightbar: false,\n}\nexport const initialPublishState: IPublishActionState = {\n  sharedUuid: '',\n}\n\nexport interface IDataSendState {\n  dataSend: IDataSend\n}\n\nexport interface IPublishActionState {\n  sharedUuid: string\n}\n\nexport interface IChartBind {\n  data: any\n}\n\nexport const initDataSendState: IDataSendState = {\n  dataSend: {\n    dataSource: undefined,\n    htmlTag: '',\n    vizType: '',\n    nameChart: '',\n    typeSubmit: '',\n    url: '',\n  }\n}\nexport const initChartBindState: IChartBind = {\n  data: undefined\n}\n\nexport interface ISchemas {\n  schemas: Schemas,\n  formData: any\n}\n\nexport const initSchemas: ISchemas = {\n  schemas: {},\n  formData: undefined\n}\n\nexport interface ITemplate {\n  isTemplatePublish: boolean,\n  uuid: string\n}\nexport const initTemplate: ITemplate = {\n  isTemplatePublish: false,\n  uuid: ''\n}\n\nexport interface ICart {\n  listWishlist: ITemplateItem[],\n  open: boolean\n}\n\nexport const initCart: ICart = {\n  listWishlist: [],\n  open: false\n}\n","import {NavigationAction, ENavigationActions} from \"../actions/navigation.action\";\nimport {INavigationState, initialNavigationState} from \"../state/document.state\";\n\n\nexport function navigationReducers(state: INavigationState = initialNavigationState,\n  action: NavigationAction): INavigationState {\n  switch (action.type) {\n\n    case ENavigationActions.NAVIGATOR_PUSH: {\n      return {\n        ...state,\n        navigator: [...state.navigator, action.data],\n      }\n    }\n\n\n    case ENavigationActions.NAVIGATOR_ROLL_BACK: {\n      let navigator: any[] = JSON.parse(JSON.stringify(state.navigator));\n      let idx = navigator.findIndex(nav => nav.uuid === action?.data?.uuid);\n      if (idx > -1) {\n        navigator.splice(idx + 1);\n      }\n      return {\n        ...state,\n        navigator: navigator\n      }\n    }\n\n    case ENavigationActions.NAVIGATOR_UPDATE: {\n      let navigator: any[] = JSON.parse(JSON.stringify(state.navigator));\n      return {\n        ...state,\n        navigator: (navigator || []).map(nav => {\n          if (nav.uuid === action?.data?.uuid) {\n            return action?.data\n          } else {\n            return nav\n          }\n        })\n      }\n    }\n\n\n    case ENavigationActions.NAVIGATOR_GO_TO: {\n      let navigator: any[] = JSON.parse(JSON.stringify(state.navigator));\n      let idx = navigator.findIndex(folder => folder.uuid === action?.data?.uuid);\n      if (idx > -1) {\n        navigator.splice(idx + 1);\n      }\n      return {\n        ...state,\n        navigator: navigator}\n    }\n\n    case ENavigationActions.NAVIGATOR_CLEAR: {\n      return {\n        ...state,\n        navigator: []\n      }\n    }\n\n\n    default:\n      return state;\n  }\n}\n","import {EErrorActions, ErrorActions} from '../actions/error.action';\nimport { IErrorState, initialErrorState } from '../state/document.state';\n\nexport function errorReducers(state: IErrorState = initialErrorState,\n action: ErrorActions): IErrorState {\n switch (action.type) {\n\n   case EErrorActions.GATEWAY_TIMEOUT: {\n     return {\n       ...state,\n       error: action.error,\n     }\n   }\n   default:\n     return state;\n }\n}","import {ERightbarActions, RightbarActions} from '../actions/rightbar.action';\nimport { IRightbarState, initialRightbarState } from '../state/document.state';\n\nexport function rightbarReducers(state: IRightbarState = initialRightbarState,\n action: RightbarActions): IRightbarState {\n switch (action.type) {\n   case ERightbarActions.RIGHT_BAR_DOC: {\n     return {\n       ...state,\n       isShowRightbar: action.isShowRightbar,\n     }\n   }\n   default:\n     return state;\n }\n}","import {EDataSend, DataSendActions} from '../actions/data-send.action';\nimport { IDataSendState, initDataSendState } from '../state/document.state';\n\nexport function dataSendReducers(state: IDataSendState = initDataSendState,\n action: DataSendActions): IDataSendState {\n switch (action.type) {\n\n   case EDataSend.DATA_SEND: {\n     return {\n       ...state,\n       dataSend: action.dataSend,\n     }\n   }\n   default:\n     return state;\n }\n}\n","import {initialPublishState, IPublishActionState} from '../state/document.state';\r\nimport {EPublishAction, Publish_Action} from \"../actions/publish.action\";\r\n\r\n\r\nexport function publishReducers(state: IPublishActionState = initialPublishState,\r\n                                action: Publish_Action): IPublishActionState {\r\n  switch (action.type) {\r\n    case EPublishAction.PUBLISH: {\r\n      return {\r\n        ...state,\r\n        sharedUuid: action.sharedUuid,\r\n      }\r\n    }\r\n    default:\r\n      return state;\r\n  }\r\n}\r\n","import {IChartBind, initChartBindState} from \"../state/document.state\";\r\nimport {ChartBindAction, EChartBind} from \"../actions/chart-bind.action\";\r\n\r\n\r\nexport function chartBindReducers(state: IChartBind = initChartBindState,\r\n                              action: ChartBindAction): IChartBind {\r\n  switch (action.type) {\r\n\r\n    case EChartBind.UPDATE_NAV: {\r\n      return {\r\n        ...state,\r\n        data: action.data\r\n      }\r\n    }\r\n    default:\r\n      return state;\r\n  }\r\n}\r\n","import { initSchemas, ISchemas } from '../state/document.state';\r\nimport { ESchemaAction, SchemasAction } from '../actions/schemas.actions';\r\n\r\nexport function schemasReducers(\r\n  state: ISchemas = initSchemas,\r\n  action: SchemasAction\r\n): ISchemas {\r\n  switch (action.type) {\r\n    case ESchemaAction.SET_SCHEMAS: {\r\n      return {\r\n        ...state,\r\n        schemas: action.schemas,\r\n      };\r\n    }\r\n    case ESchemaAction.SET_FORMDATA: {\r\n      return {\r\n        ...state,\r\n        formData: action.formData,\r\n      }\r\n    }\r\n    default:\r\n      return state;\r\n  }\r\n}\r\n","import {ActionType, createAction, props} from \"@ngrx/store\";\n\n\nexport enum ETemplateAction {\n  SET_IS_TEMPLATE = 'set is template',\n  SET_UUID = 'set uuid template'\n}\n\nexport const setIsTemplatePublish = createAction(ETemplateAction.SET_IS_TEMPLATE, props<{ isTemplatePublish: boolean }>());\nexport const setUuid = createAction(ETemplateAction.SET_UUID, props<{ uuid: string }>());\n\nexport type TemplateAction = | ActionType<typeof setIsTemplatePublish> | ActionType<typeof setUuid>;\n","import { initTemplate, ITemplate } from '../state/document.state';\r\nimport { ETemplateAction, TemplateAction } from '../actions/template.actions';\r\n\r\nexport function templateReducers(\r\n  state: ITemplate = initTemplate,\r\n  action: TemplateAction\r\n): ITemplate {\r\n  switch (action.type) {\r\n    case ETemplateAction.SET_IS_TEMPLATE: {\r\n      return {\r\n        ...state,\r\n        isTemplatePublish: action.isTemplatePublish,\r\n      };\r\n    }\r\n    case ETemplateAction.SET_UUID: {\r\n      return {\r\n        ...state,\r\n        uuid: action.uuid,\r\n      };\r\n    }\r\n    default:\r\n      return state;\r\n  }\r\n}\r\n","import {ActionType, createAction, props} from \"@ngrx/store\";\nimport {ITemplate} from '../../../template/models'\n\n\nexport enum ECartAction {\n  ADD_TO_WISHLIST = 'add to wishlist',\n  REMOVE_FROM_WISHLIST = 'remove from wishlist',\n  OPEN_SHOPPING_CART = 'open shopping cart',\n  RESET_SHOPPING_CART = 'reset shopping cart'\n}\n\nexport const addToWishlist = createAction(ECartAction.ADD_TO_WISHLIST, props<{ template: ITemplate }>());\n\nexport const removeFromWishlist = createAction(ECartAction.REMOVE_FROM_WISHLIST, props<{ template: ITemplate }>());\n\nexport const openShoppingCart = createAction(ECartAction.OPEN_SHOPPING_CART, props<{ open: boolean }>());\n\nexport const resetShoppingCart = createAction(ECartAction.RESET_SHOPPING_CART);\n\nexport type CartAction = | ActionType<typeof addToWishlist> | ActionType<typeof removeFromWishlist>\n| ActionType<typeof openShoppingCart> | ActionType<typeof resetShoppingCart>","export const uniqueArray = (array) => {\n return [...new Set(array)];\n}\n\nexport const uniqueArrayObject = (array, key) => {\n return [...new Map(array.map(item => [item[key], item])).values()];\n}\n","import { initCart, ICart } from \"../state/document.state\";\r\nimport { ECartAction, CartAction } from \"../actions/cart.actions\";\r\nimport { uniqueArrayObject } from \"../../../core/utils/uniqueArray\";\r\nimport { ITemplate } from \"../../../template/models\";\r\n\r\nexport function cartReducers(\r\n  state: ICart = initCart,\r\n  action: CartAction\r\n): ICart {\r\n  switch (action.type) {\r\n    case ECartAction.ADD_TO_WISHLIST: {\r\n      const newListWishlist = uniqueArrayObject(\r\n        [...state.listWishlist, action.template],\r\n        \"uuid\"\r\n      );\r\n      return {\r\n        ...state,\r\n        listWishlist: newListWishlist,\r\n      };\r\n    }\r\n    case ECartAction.REMOVE_FROM_WISHLIST: {\r\n      const newListWishlist = state.listWishlist.filter(\r\n        (item: ITemplate) => item.uuid !== action.template.uuid\r\n      );\r\n      return {\r\n        ...state,\r\n        listWishlist: newListWishlist,\r\n      };\r\n    }\r\n    case ECartAction.OPEN_SHOPPING_CART: {\r\n      return {\r\n        ...state,\r\n        open: action.open\r\n      }\r\n    }\r\n    case ECartAction.RESET_SHOPPING_CART: {\r\n      return {\r\n        ...state,\r\n        listWishlist: []\r\n      }\r\n    }\r\n    default:\r\n      return state;\r\n  }\r\n}\r\n","import {ActionReducerMap} from '@ngrx/store';\nimport {IAppState} from \"../state/app.state\";\nimport {navigationReducers} from \"./navigation.reducer\";\nimport {errorReducers} from './error.reducer';\nimport {rightbarReducers} from './rightbar.reducers';\nimport {dataSendReducers} from './data-send.reducers';\nimport {publishReducers} from \"./publish.reducers\";\nimport {chartBindReducers} from \"./chart-bind.reducers\";\nimport { schemasReducers } from './schemas.reducers';\nimport { templateReducers } from './template.reducers';\nimport { cartReducers } from './cart.reducers';\n\nexport const appReducers: ActionReducerMap<IAppState, any> = {\n  data: chartBindReducers,\n  navigation: navigationReducers,\n  error: errorReducers,\n  isShowRightbar: rightbarReducers,\n  dataSend: dataSendReducers,\n  sharedUuid: publishReducers,\n  schemas: schemasReducers,\n  template: templateReducers,\n  cart: cartReducers\n};\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from \"@angular/core\";\nimport { VisualizeLibComponent } from \"./visualize-lib.component\";\nimport { ChartModule } from \"./chart/chart.module\";\nimport { ShareModule } from \"./share/share.module\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\n// import { VisualizeLibCoreModule } from \"./core/visualize-core.module\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { appReducers } from \"../lib/core/store/reducers/app.reducers\";\nimport { FEATURE_NAME } from \"../lib/core/models/feature\";\nimport { EffectsModule } from \"@ngrx/effects\";\n\n@NgModule({\n  declarations: [VisualizeLibComponent],\n  imports: [\n    ChartModule,\n    ShareModule,\n    TranslateModule,\n    NgSelectModule,\n    StoreModule.forFeature(FEATURE_NAME, appReducers, {}),\n    EffectsModule.forRoot([]),\n  ],\n  exports: [VisualizeLibComponent, ChartModule, ShareModule],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class VisualizeLibModule {}\n","/*\n * Public API Surface of visualize-lib\n */\nexport * from './lib/chart/chart.module';\nexport * from './lib/share/share.module';\nexport * from './lib/visualize-lib.service';\nexport * from './lib/visualize-lib.component';\nexport * from './lib/visualize-lib.module';\nexport * from './lib/chart/chart-delete/chart-delete.component';\nexport * from './lib/chart/chart-publish-dialog/chart-publish-dialog.component';\nexport * from './lib/chart/chart-list/chart-list.component';\nexport * from './lib/chart/delete-dialog/delete-dialog.component';\nexport * from './lib/chart/chart-add/chart-add.component';\nexport * from './lib/chart/chart-explore/chart-explore.component';\nexport * from './lib/chart/chart-center/chart-center.component';\nexport * from './lib/chart/chart-mapping/chart-mapping.component';\nexport * from './lib/chart/chart-html-template/chart-html-template.component';\nexport * from './lib/chart/chart-custom-bar/chart-custom-bar.component';\nexport * from './lib/chart/chart-custom-table/chart-custom-table.component';\nexport * from './lib/chart/chart-bar-v2/chart-bar-v2.component';\nexport * from './lib/chart/chart-custom-table/chart-custom-table.component';\nexport * from './lib/chart/chart-mixed/chart-mixed.component';\nexport * from './lib/chart/chart-candlestick/chart-candlestick.component';\nexport * from './lib/chart/chart-custom/chart-custom.component';\nexport * from './lib/chart/chart-mapping-view/chart-mapping-view.component';\nexport * from './lib/chart/chart-create-template/chart-create-template.component';\nexport * from './lib/chart/chart-view/chart-view.component';\nexport * from './lib/chart/pipe/chart-filter-organ.pipe';\nexport * from './lib/chart/chart-share-right-bar/chart-share-right-bar.component';\nexport * from './lib/chart/pipe/get-url-image.pipe';\nexport * from './lib/chart/pipe/get-name-share';\nexport * from './lib/chart/chart-share-right-bar/chart-share-right-bar.component';\n\nexport * from './lib/chart/chart-explore/schema-keyvalue.pipe';\nexport * from './lib/chart/chart-select/chart-select.component';\nexport * from './lib/share/list-my-share/list-my-share.component';\nexport * from './lib/share/list-share-for-me/list-share-for-me.component';\nexport * from './lib/share/chart-share-delete/chart-share-delete.component';\nexport * from './lib/share/share-list/share-list.component';\nexport * from './lib/share/shared-center/shared-center.component';\n\nexport * from './lib/share/share-right-bar/share-right-bar.component';\nexport * from './lib/share/view-shared/view-shared.component';\nexport * from './lib/share/view-share-for-me/view-share-for-me.component';\nexport * from './lib/share/iframe-view/iframe-view.component';\nexport * from './lib/share/svg-icon/svg-icon.component';\n\nexport * from './lib/chart/dataset-select/dataset-select.component';\nexport * from './lib/chart/dataset-select/get-name-dataset-display.pipe';\nexport * from './lib/chart/filter-popover/filter-popover.component';\nexport * from './lib/chart/metric-popover/metric-popover.component';\nexport * from './lib/chart/pipe/filter-format.pipe';\n\nexport * from './lib/chart/pipe/metric-format.pipe';\nexport * from './lib/chart/pipe/check-type-pipe.pipe';\nexport * from './lib/chart/pipe/html.pipe';\nexport * from './lib/directive/snake.directive';\nexport * from './lib/chart/alias-popover/alias-popover.component';\n\nexport * from './lib/chart/chart-share-right-bar/chart-share-right-bar.component';\nexport * from './lib/chart/right-bar/chart-right-bar.component';\n\nexport * from './lib/core/models/feature';\nexport * from './lib/core/store/reducers/app.reducers';\n\n\nexport { ShareModule } from './lib/share/share.module'\nexport { ChartModule } from './lib/chart/chart.module'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EVizType","iNet","i1","i2","i3","i3.ChartService","i4.ConfirmDialogComponent","i5.ModalActionDirective","i2.ChartService","i4","i5.ConfirmDialogComponent","i6.ModalActionDirective","uniqueArray","uniqueArrayObject","i2.ChartFilterOrganPipe","i5","i6","i7.ShareService","i8","i9","i10","i11.ConfirmDialogComponent","i12.ModalActionDirective","i14.UrlImagePipe","i15.GetNameSharePipe","RightbarActions.showRightbar","DocumentActions.navClear","DocumentActions.navPushFolder","EVizTypes","i4.ChartService","i11.RightBarComponent","i12.ChartShareRightBarComponent","i1.DatasetService","i5.ChartService","i7","i8.ShareService","i11","i12","i13","i14.GridViewLayoutComponent","i15.BtnTopTemplateDirective","i16.RightTemplateDirective","i17.PaginationTemplateDirective","i18.GridTemplateDirective","i19.GridEmptyLayoutComponent","i20.ChartRightBarComponent","i21.ChartDeleteComponent","i22.ChartPublishDialogComponent","i1.ChartService","i7.GetNameDatasetDisplayPipe","dataSendActions.dataSend","i8.ActionViewLayoutComponent","i9.ToolbarTopTemplateDirective","i10.BtnTopTemplateDirective","i11.ContentTemplateDirective","i13.DatasetSelectComponent","i14.DeleteDialogComponent","i15","i9.ContentTemplateDirective","CONSTANT.SEND_SERVICE_LOAD_DONE","CONSTANT.SEND_DATASOURCE","CONSTANT.ANALYTICS_APP","CONSTANT.SEND_QUERIES","CONSTANT.DATA","CONSTANT.SEND_PARAMS_CHART","CONSTANT.EXPLORE_JSON","CONSTANT.SEND_CHARTS_LINE","CONSTANT.SEND_CHARTS_DECKGL","CONSTANT.SEND_DATA_SAMPLES","CONSTANT.SEND_CHANGE_PAGE_NUMBER","CONSTANT.VIEW_ALL_CHARTS","CONSTANT.SEND_PARAMS_SAVE","CONSTANT.SEND_LOAD_DONE_DATA_EIDIT","CONSTANT.SEND_DATA_RENDER_CHART","CONSTANT.SEND_CHARTS_MULTI","ErrorActions.gatewayTimeout","i10.SearchStringDirective","i11.ActionViewLayoutComponent","i12.ToolbarTopTemplateDirective","i13.BtnTopTemplateDirective","i14.RightTemplateDirective","i15.ContentTemplateDirective","i16.ToolbarBottomTemplateDirective","i17","i18.ChartRightBarComponent","i19.ChartSelectComponent","i20.ChartDeleteComponent","i21.ChartPublishDialogComponent","i22.DatasetSelectComponent","i23","i24.SchemaKeyvaluePipe","Publish_Action.sharedUuid","i4.ShareService","i8.CenterViewLayoutComponent","i9.ToolbarCenterTemplateDirective","i10.NavigationCenterTemplateDirective","i11.ChartDeleteComponent","i12.ChartPublishDialogComponent","i11.ViewDataChartComponent","i12.ChartRightBarComponent","i13.ChartDeleteComponent","i14.ChartPublishDialogComponent","i15.DatasetSelectComponent","i17.SafeHtmlPipe","i6.FilterFormatter","i7.CheckTypePipePipe","i9.FilterPopoverComponent","i10.FilterFormatter","i11.CheckTypePipePipe","i5.MetricFormatter","i6.CheckTypePipePipe","i10.FilterPopoverComponent","i11.MetricPopoverComponent","i12.FilterFormatter","i13.MetricFormatter","i14.CheckTypePipePipe","i5.CheckTypePipePipe","i10.AliasPopoverComponent","i11.FilterFormatter","i11.FilterPopoverComponent","i12.MetricPopoverComponent","i13.FilterFormatter","i14.MetricFormatter","i15.CheckTypePipePipe","i11.SearchStringDirective","i12.ViewDataChartComponent","i14.ChartRightBarComponent","i15.ChartDeleteComponent","i16.ChartPublishDialogComponent","i17.DatasetSelectComponent","i18.ChartHTMLTemplate","i19.ChartCustomBar","i20.ChartCustomTable","i21.ChartBarV2","i22.ChartMixed","i23.ChartCandlestick","i24","i25.SchemaKeyvaluePipe","i26.SafeHtmlPipe","i6.ShareService","i9.RightBarComponent","i9.BtnBottomTemplateDirective","i10.RightTemplateDirective","i12.ShareRightBarComponent","i13.ChartRightBarComponent","i14.ChartDeleteComponent","i15.ChartPublishDialogComponent","i9.ActionViewLayoutComponent","i10.BtnBottomTemplateDirective","i11.RightTemplateDirective","i12.ContentTemplateDirective","i13.ShareRightBarComponent","i15.ChartRightBarComponent","i16.ChartDeleteComponent","i17.ChartPublishDialogComponent","routes","i1.TimeAgoService","CONSTANT.SEND_DATA_TO_VISUAL_CHART","SchemasActions.formData","SchemasActions.schemas","i13.IframeViewComponent","i3.ShareService","i12.GridEmptyLayoutComponent","i11.GridEmptyLayoutComponent","i12.ConfirmDialogComponent","i13.ModalActionDirective","i2.ListMyShareComponent","i3.ShareRightBarComponent","i4.ListShareForMeComponent","i5.ChartShareDeleteComponent","i2.ActionViewLayoutComponent","i3.BtnBottomTemplateDirective","i4.ContentTemplateDirective","i5.IframeViewComponent","debounceTime","i3.ActionViewLayoutComponent","i4.BtnBottomTemplateDirective","i5.ContentTemplateDirective","i6.ConfirmDialogComponent","i7.ModalActionDirective","i8.ShareRightBarComponent","i9.ChartShareDeleteComponent","i10.ViewSharedComponent","i11.ViewShareForMeComponent"],"mappings":"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"}