diff --git a/awx/ui/client/features/output/render.service.js b/awx/ui/client/features/output/render.service.js index 06a6bc84a2..351d038387 100644 --- a/awx/ui/client/features/output/render.service.js +++ b/awx/ui/client/features/output/render.service.js @@ -1,5 +1,4 @@ import Ansi from 'ansi-to-html'; -import hasAnsi from 'has-ansi'; import Entities from 'html-entities'; const ELEMENT_TBODY = '#atStdoutResultTable'; @@ -21,6 +20,15 @@ const TIME_EVENTS = [ const ansi = new Ansi(); const entities = new Entities.AllHtmlEntities(); +// https://github.com/chalk/ansi-regex +const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))' +].join('|'); + +const re = new RegExp(pattern); +const hasAnsi = input => re.test(input); + function JobRenderService ($q, $sce, $window) { this.init = ({ compile, apply, isStreamActive }) => { this.parent = null; diff --git a/awx/ui/package.json b/awx/ui/package.json index 9c381f466f..24a42aa207 100644 --- a/awx/ui/package.json +++ b/awx/ui/package.json @@ -114,7 +114,6 @@ "codemirror": "^5.17.0", "components-font-awesome": "^4.6.1", "d3": "~3.3.13", - "has-ansi": "^3.0.0", "html-entities": "^1.2.1", "javascript-detect-element-resize": "^0.5.3", "jquery": "~2.2.4",