Your IP : 18.191.22.141
{"version":3,"file":"progressround.bundle.js","sources":["../src/progressround-color.js","../src/progressround-status.js","../src/progressround.js","../src/index.js"],"sourcesContent":["/**\n * @namespace {BX.UI}\n */\nexport default class ProgressRoundColor\n{\n\tstatic DEFAULT = 'ui-progressround-default';\n\tstatic DANGER = \"ui-progressround-danger\";\n\tstatic SUCCESS = \"ui-progressround-success\";\n\tstatic PRIMARY = \"ui-progressround-primary\";\n\tstatic WARNING = \"ui-progressround-warning\";\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class ProgressRoundStatus\n{\n\tstatic COUNTER = \"COUNTER\";\n\tstatic PERCENT = \"PERCENT\";\n\tstatic INCIRCLE = \"INCIRCLE\";\n\tstatic INCIRCLECOUNTER = \"INCIRCLECOUNTER\";\n\tstatic NONE = \"NONE\";\n}\n","// @flow\n\nimport {Dom, Tag, Type} from 'main.core';\nimport ProgressRoundColor from './progressround-color';\nimport ProgressRoundStatus from './progressround-status';\n\ntype ProgressRoundOptions = {\n\tvalue: number;\n\tmaxValue: number;\n\tcolor: ProgressRoundColor;\n\twidth: number;\n\ttextBefore: string;\n\ttextAfter: string;\n\tcolorTrack: string;\n\tcolorBar: string;\n\tstatusType: string;\n\tlineSize: number;\n\tfill: boolean;\n\tfinished: boolean;\n\trotation: boolean;\n};\n\nexport default class ProgressRound // extends BX.UI.ProgressRound\n{\n\tstatic Color = ProgressRoundColor;\n\tstatic Status = ProgressRoundStatus;\n\n\tconstructor(options: ProgressRoundOptions)\n\t{\n\t\tthis.options = Type.isPlainObject(options) ? options : {};\n\n\t\tthis.value = Type.isNumber(this.options.value) ? this.options.value : 0;\n\t\tthis.maxValue = Type.isNumber(this.options.maxValue) ? this.options.maxValue : 100;\n\t\tthis.bar = null;\n\t\tthis.container = null;\n\t\tthis.width = Type.isNumber(this.options.width) ? this.options.width : 100;\n\t\tthis.lineSize = Type.isNumber(this.options.lineSize) ? this.options.lineSize : 5;\n\t\tthis.status = null;\n\t\tthis.statusType = Type.isString(this.options.statusType) ? this.options.statusType : BX.UI.ProgressRound.Status.NONE;\n\t\tthis.statusPercent = \"0%\";\n\t\tthis.statusCounter = \"0 / 0\";\n\t\tthis.textBefore = Type.isString(this.options.textBefore) ? this.options.textBefore : null;\n\t\tthis.textBeforeContainer = null;\n\t\tthis.textAfter = Type.isString(this.options.textAfter) ? this.options.textAfter : null;\n\t\tthis.textAfterContainer = null;\n\t\tthis.fill = false;\n\t\tthis.finished = false;\n\t\tthis.rotation = Type.isBoolean(this.options.rotation) ? this.options.rotation : false;\n\t\tthis.colorTrack = Type.isString(this.options.colorTrack) ? this.options.colorTrack : null;\n\t\tthis.colorBar = Type.isString(this.options.colorBar) ? this.options.colorBar : null;\n\t\tthis.color = Type.isString(this.options.color) ? this.options.color : BX.UI.ProgressRound.Color.PRIMARY;\n\t}\n\n\t//region Parameters\n\tsetValue(value: number): this\n\t{\n\t\tif (Type.isNumber(value))\n\t\t{\n\t\t\tthis.value = (value > this.maxValue) ? this.maxValue : value;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetValue(): number\n\t{\n\t\treturn this.value;\n\t}\n\n\tsetMaxValue(value: number): this\n\t{\n\t\tif (Type.isNumber(value))\n\t\t{\n\t\t\tthis.maxValue = value;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetMaxValue(): number\n\t{\n\t\treturn this.maxValue;\n\t}\n\n\tfinish()\n\t{\n\t\tthis.update(this.maxValue)\n\t}\n\n\tisFinish(): boolean\n\t{\n\t\treturn this.finished;\n\t}\n\n\tsetWidth(value: number): this\n\t{\n\t\tif (Type.isNumber(value))\n\t\t{\n\t\t\tthis.width = value;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetWidth(): number\n\t{\n\t\treturn this.width;\n\t}\n\n\tsetLineSize(value: number): this\n\t{\n\t\tif (Type.isNumber(value))\n\t\t{\n\t\t\tthis.lineSize = (value > (this.width / 2)) ? (this.width / 2) : value;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetLineSize(): number\n\t{\n\t\treturn this.lineSize;\n\t}\n\n\tsetColor(color: ProgressRoundColor): this\n\t{\n\t\tif (Type.isStringFilled(color))\n\t\t{\n\t\t\tif (this.container === null)\n\t\t\t{\n\t\t\t\tthis.createContainer();\n\t\t\t}\n\n\t\t\tDom.removeClass(this.container, this.color);\n\t\t\tthis.color = color;\n\t\t\tDom.addClass(this.container, this.color);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetColorBar(color: string): this\n\t{\n\t\tif (Type.isStringFilled(color))\n\t\t{\n\t\t\tthis.colorBar = color;\n\t\t\tcolor = \"--ui-current-round-color:\" + color + \";\"\n\t\t\tthis.#setCustomColors(color)\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetColorTrack(color: string): this\n\t{\n\t\tif (Type.isStringFilled(color))\n\t\t{\n\t\t\tthis.colorTrack = color;\n\t\t\tthis.setFill(true);\n\t\t\tcolor = \"--ui-current-round-bg-track-color:\" + color + \";\"\n\t\t\tthis.#setCustomColors(color)\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t#setCustomColors(value)\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tlet currentAttribute = this.container.getAttribute('style'),\n\t\t\tcustomColorsValue = (!currentAttribute) ? value : currentAttribute + value;\n\t\tthis.container.setAttribute('style', customColorsValue)\n\t}\n\n\tsetFill(fill: boolean): this\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tif (Type.isBoolean(fill))\n\t\t{\n\t\t\tthis.fill = fill;\n\n\t\t\tif (fill === true)\n\t\t\t{\n\t\t\t\tDom.addClass(this.container, \"ui-progressround-bg\");\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.removeClass(this.container, \"ui-progressround-bg\");\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetRotation(rotation: boolean): this\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tif (Type.isBoolean(rotation))\n\t\t{\n\t\t\tthis.rotation = rotation;\n\n\t\t\tif (rotation === true)\n\t\t\t{\n\t\t\t\tDom.addClass(this.container, \"ui-progressround-rotation\");\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.removeClass(this.container, \"ui-progressround-rotation\");\n\t\t\t}\n\t\t}\n\n\n\t\treturn this;\n\t}\n\n\t//endregion\n\n\t//region Text\n\tsetTextBefore(text: string): this\n\t{\n\t\tif (Type.isStringFilled(text))\n\t\t{\n\t\t\tthis.textBefore = text;\n\t\t\tif (!this.textBeforeContainer)\n\t\t\t{\n\t\t\t\tthis.createTextBefore(text);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.adjust(this.textBeforeContainer, {\n\t\t\t\t\thtml: text\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tcreateTextBefore(text: string)\n\t{\n\t\tif ((!this.textBeforeContainer) && Type.isStringFilled(text))\n\t\t{\n\t\t\tthis.textBeforeContainer = Tag.render`\n\t\t\t\t<div class=\"ui-progressround-text-before\">${text}</div>\n\t\t\t`;\n\t\t}\n\t}\n\n\tgetTextBefore()\n\t{\n\t\tif (!this.textBeforeContainer)\n\t\t{\n\t\t\tthis.createTextBefore(this.textBefore);\n\t\t}\n\n\t\treturn this.textBeforeContainer;\n\t}\n\n\tsetTextAfter(text: string): this\n\t{\n\t\tif (Type.isStringFilled(text))\n\t\t{\n\t\t\tthis.textAfter = text;\n\t\t\tif (!this.textAfterContainer)\n\t\t\t{\n\t\t\t\tthis.createTextAfter(text);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.adjust(this.textAfterContainer, {\n\t\t\t\t\thtml: text\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tcreateTextAfter(text: string)\n\t{\n\t\tif ((!this.textAfterContainer) && Type.isStringFilled(text))\n\t\t{\n\t\t\tthis.textAfterContainer = Tag.render`\n\t\t\t\t<div class=\"ui-progressround-text-after\">${text}</div>\n\t\t\t`;\n\t\t}\n\t}\n\n\tgetTextAfter()\n\t{\n\t\tif (!this.textAfterContainer)\n\t\t{\n\t\t\tthis.createTextAfter(this.textAfter);\n\t\t}\n\n\t\treturn this.textAfterContainer;\n\t}\n\n\t//endregion\n\n\t// region Status\n\tsetStatus()\n\t{\n\t\tif (this.getStatusType() === BX.UI.ProgressRound.Status.COUNTER)\n\t\t{\n\t\t\tDom.adjust(this.status, {\n\t\t\t\ttext: this.getStatusCounter()\n\t\t\t});\n\t\t}\n\t\telse if (this.getStatusType() === BX.UI.ProgressRound.Status.PERCENT)\n\t\t{\n\t\t\tDom.adjust(this.status, {\n\t\t\t\ttext: this.getStatusPercent()\n\t\t\t});\n\t\t}\n\t\telse if (this.getStatusType() === BX.UI.ProgressRound.Status.INCIRCLE)\n\t\t{\n\t\t\tDom.adjust(this.status, {\n\t\t\t\ttext: this.getStatusPercent()\n\t\t\t});\n\t\t}\n\t\telse if (this.getStatusType() === BX.UI.ProgressRound.Status.INCIRCLECOUNTER)\n\t\t{\n\t\t\tDom.adjust(this.status, {\n\t\t\t\ttext: this.getStatusCounter()\n\t\t\t});\n\t\t}\n\t}\n\n\tgetStatus()\n\t{\n\t\tif (!this.status)\n\t\t{\n\t\t\tif (this.getStatusType() === BX.UI.ProgressRound.Status.COUNTER)\n\t\t\t{\n\t\t\t\tthis.status = Tag.render`\n\t\t\t\t\t<div class=\"ui-progressround-status\">${this.getStatusCounter()}</div>\n\t\t\t\t`;\n\t\t\t}\n\t\t\telse if (this.getStatusType() === BX.UI.ProgressRound.Status.INCIRCLE)\n\t\t\t{\n\t\t\t\tthis.status = Tag.render`\n\t\t\t\t\t<div class=\"ui-progressround-status-percent-incircle\">${this.getStatusPercent()}</div>\n\t\t\t\t`;\n\t\t\t}\n\t\t\telse if (this.getStatusType() === BX.UI.ProgressRound.Status.INCIRCLECOUNTER)\n\t\t\t{\n\t\t\t\tthis.status = Tag.render`\n\t\t\t\t\t<div class=\"ui-progressround-status-incircle\">${this.getStatusCounter()}</div>\n\t\t\t\t`;\n\t\t\t}\n\t\t\telse if (this.getStatusType() === BX.UI.ProgressRound.Status.PERCENT)\n\t\t\t{\n\t\t\t\tthis.status = Tag.render`\n\t\t\t\t\t<div class=\"ui-progressround-status-percent\">${this.getStatusPercent()}</div>\n\t\t\t\t`;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.status = Dom.create(\"span\", {});\n\t\t\t}\n\t\t}\n\n\t\treturn this.status;\n\t}\n\n\tgetStatusPercent(): string | number\n\t{\n\t\tif (this.maxValue === 0)\n\t\t{\n\t\t\treturn \"0%\"\n\t\t}\n\t\tthis.statusPercent = Math.round(this.getValue() / (this.getMaxValue() / 100));\n\t\tif (this.statusPercent > 100)\n\t\t{\n\t\t\tthis.statusPercent = 100;\n\t\t}\n\n\t\treturn this.statusPercent + \"%\";\n\t}\n\n\tgetStatusCounter(): string | number\n\t{\n\t\tif (Math.round(this.getValue()) > Math.round(this.getMaxValue()))\n\t\t{\n\t\t\tthis.statusCounter = Math.round(this.getMaxValue()) + \" / \" + Math.round(this.getMaxValue());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.statusCounter = Math.round(this.getValue()) + \" / \" + Math.round(this.getMaxValue());\n\t\t}\n\n\t\treturn this.statusCounter;\n\t}\n\n\tgetStatusType()\n\t{\n\t\treturn this.statusType;\n\t}\n\n\tsetStatusType(type: string)\n\t{\n\t\tif (Type.isStringFilled(type))\n\t\t{\n\t\t\tthis.statusType = type;\n\t\t}\n\t}\n\n\t//endregion\n\n\t// region ProgressRound\n\tcreateContainer(): HTMLElement\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.container = Dom.create(\"div\", {\n\t\t\t\tprops: {className: \"ui-progressround\"},\n\t\t\t\tchildren: [\n\t\t\t\t\tthis.getTextAfter(),\n\t\t\t\t\tthis.getTextBefore(),\n\t\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\t\tprops: {className: \"ui-progressround-track\"},\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\tthis.getStatus(),\n\t\t\t\t\t\t\tthis.getBar()\n\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tthis.setStatusType(this.statusType);\n\t\t\tthis.setColor(this.color);\n\t\t\tthis.setRotation(this.rotation);\n\t\t\tthis.setFill(this.fill);\n\t\t\tthis.setColorTrack(this.colorTrack);\n\t\t\tthis.setColorBar(this.colorBar);\n\t\t}\n\t}\n\n\tgetCircleFerence()\n\t{\n\t\treturn (this.width / 2 - this.lineSize / 2) * 2 * 3.14;\n\t}\n\n\tgetCircleProgress()\n\t{\n\t\treturn this.getCircleFerence() - (this.getCircleFerence() / this.maxValue * this.value);\n\t}\n\n\tgetBar(): HTMLElement\n\t{\n\t\tvar factRadius = this.width / 2 - (this.lineSize / 2);\n\n\t\tthis.svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\t\tthis.svg.setAttributeNS(null, 'class', 'ui-progressround-track-bar');\n\t\tthis.svg.setAttributeNS(null, 'viewport', '0 0 ' + this.width + ' ' + this.width);\n\t\tthis.svg.setAttributeNS(null, 'width', this.width);\n\t\tthis.svg.setAttributeNS(null, 'height', this.width);\n\n\t\tthis.progressBg = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n\t\tthis.progressBg.setAttributeNS(null, 'r', factRadius);\n\t\tthis.progressBg.setAttributeNS(null, 'cx', (this.width / 2));\n\t\tthis.progressBg.setAttributeNS(null, 'cy', (this.width / 2));\n\t\tthis.progressBg.setAttributeNS(null, 'stroke-width', this.lineSize);\n\t\tthis.progressBg.setAttributeNS(null, 'class', 'ui-progressround-track-bar-bg');\n\n\t\tthis.svg.appendChild(this.progressBg);\n\n\t\tthis.progressMove = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n\t\tthis.progressMove.setAttributeNS(null, 'r', factRadius);\n\t\tthis.progressMove.setAttributeNS(null, 'cx', (this.width / 2));\n\t\tthis.progressMove.setAttributeNS(null, 'cy', (this.width / 2));\n\t\tthis.progressMove.setAttributeNS(null, 'stroke-width', this.lineSize);\n\t\tthis.progressMove.setAttributeNS(null, 'stroke-dasharray', this.getCircleFerence());\n\t\tthis.progressMove.setAttributeNS(null, 'stroke-dashoffset', this.getCircleFerence());\n\t\tthis.progressMove.setAttributeNS(null, 'class', 'ui-progressround-track-bar-progress');\n\n\t\tthis.svg.appendChild(this.progressMove);\n\n\t\treturn this.svg;\n\t}\n\n\tanimateProgressBar()\n\t{\n\t\tthis.svg.setAttributeNS(null, 'class', 'task-report-circle-bar task-report-circle-bar-animate');\n\n\t\tvar progressDashoffset = (this.maxValue === 0) ? this.getCircleFerence() : this.getCircleProgress();\n\n\t\tthis.progressMove.setAttributeNS(null, 'stroke-dashoffset', progressDashoffset);\n\t}\n\n\tupdate(value)\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tthis.setValue(value);\n\n\t\tif (value >= this.maxValue)\n\t\t{\n\t\t\tsetTimeout(function () {\n\t\t\t\tDom.addClass(this.container, \"ui-progressround-finished\");\n\t\t\t}.bind(this), 300);\n\t\t\tthis.finished = true;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.container, \"ui-progressround-finished\");\n\t\t\tthis.finished = false;\n\t\t}\n\n\t\tthis.setStatus();\n\n\t\tif (this.svg === null)\n\t\t{\n\t\t\tthis.getBar();\n\t\t}\n\n\t\tthis.animateProgressBar();\n\t}\n\n\t//endregion\n\n\tgetContainer(): Element\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tthis.animateProgressBar()\n\n\t\treturn this.container;\n\t}\n\n\trenderTo(node: HTMLElement): HTMLElement | null\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\treturn node.appendChild(this.getContainer());\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tdestroy(): void\n\t{\n\t\tDom.remove(this.container);\n\t\tthis.container = null;\n\t\tthis.finished = false;\n\t\tthis.textAfterContainer = null;\n\t\tthis.textBeforeContainer = null;\n\t\tthis.bar = null;\n\t\tthis.svg = null;\n\n\n\t\tfor (const property in this)\n\t\t{\n\t\t\tif (this.hasOwnProperty(property))\n\t\t\t{\n\t\t\t\tdelete this[property];\n\t\t\t}\n\t\t}\n\n\t\tObject.setPrototypeOf(this, null);\n\t}\n}\n","import { Reflection } from 'main.core';\nimport 'ui.fonts.opensans';\n\nimport ProgressRound from './progressround';\nimport ProgressRoundColor from './progressround-color';\nimport ProgressRoundStatus from './progressround-status';\n\nimport './css/style.css';\n\nexport {\n\tProgressRound,\n\tProgressRoundColor,\n\tProgressRoundStatus\n};\n\nconst UI = Reflection.namespace('BX.UI');\n\n/** @deprecated use BX.UI.ProgressRound or import { ProgressRound } from 'ui.progressround' */\nUI.Progressround = ProgressRound;\n"],"names":["ProgressRoundColor","DEFAULT","DANGER","SUCCESS","PRIMARY","WARNING","ProgressRoundStatus","COUNTER","PERCENT","INCIRCLE","INCIRCLECOUNTER","NONE","ProgressRound","constructor","options","Type","isPlainObject","value","isNumber","maxValue","bar","container","width","lineSize","status","statusType","isString","BX","UI","Status","statusPercent","statusCounter","textBefore","textBeforeContainer","textAfter","textAfterContainer","fill","finished","rotation","isBoolean","colorTrack","colorBar","color","Color","setValue","getValue","setMaxValue","getMaxValue","finish","update","isFinish","setWidth","getWidth","setLineSize","getLineSize","setColor","isStringFilled","createContainer","Dom","removeClass","addClass","setColorBar","setColorTrack","setFill","setRotation","setTextBefore","text","createTextBefore","adjust","html","Tag","render","getTextBefore","setTextAfter","createTextAfter","getTextAfter","setStatus","getStatusType","getStatusCounter","getStatusPercent","getStatus","create","Math","round","setStatusType","type","props","className","children","getBar","getCircleFerence","getCircleProgress","factRadius","svg","document","createElementNS","setAttributeNS","progressBg","appendChild","progressMove","animateProgressBar","progressDashoffset","setTimeout","bind","getContainer","renderTo","node","isDomNode","destroy","remove","property","hasOwnProperty","Object","setPrototypeOf","currentAttribute","getAttribute","customColorsValue","setAttribute","Reflection","namespace","Progressround"],"mappings":"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"}