Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/ui/cnt/dist/ |
Upload File : |
{"version":3,"file":"cnt.bundle.js","sources":["../src/cnt-color.js","../src/cnt-size.js","../src/cnt-style.js","../src/cnt.js"],"sourcesContent":["/**\n * @namespace {BX.UI}\n */\nexport default class CounterColor\n{\n\tstatic DANGER = \"ui-counter-danger\";\n\tstatic WARNING = \"ui-counter-warning\";\n\tstatic SUCCESS = \"ui-counter-success\";\n\tstatic PRIMARY = \"ui-counter-primary\";\n\tstatic GRAY = \"ui-counter-gray\";\n\tstatic LIGHT = \"ui-counter-light\";\n\tstatic WHITE = \"ui-counter-white\";\n\tstatic DARK = \"ui-counter-dark\";\n\tstatic THEME = \"ui-counter-theme\";\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class CounterSize\n{\n\tstatic SMALL = \"ui-counter-sm\";\n\tstatic LARGE = \"ui-counter-lg\";\n\tstatic MEDIUM = \"ui-counter-md\";\n}\n","/**\n * @namespace {BX.UI}\n */\nexport class CounterStyle\n{\n\tstatic FILLED_EXTRA = '--style-filled-extra';\n\tstatic FILLED = '--style-filled';\n\tstatic FILLED_INVERTED = '--style-filled-inverted';\n\tstatic FILLED_ALERT = '--style-filled-alert';\n\tstatic FILLED_ALERT_INVERTED = '--style-filled-alert-inverted';\n\tstatic FILLED_WARNING = '--style-filled-warning';\n\tstatic FILLED_SUCCESS = '--style-filled-success';\n\tstatic FILLED_SUCCESS_INVERTED = '--style-filled-success-inverted';\n\tstatic FILLED_NO_ACCENT = '--style-filled-no-accent';\n\tstatic FILLED_NO_ACCENT_INVERTED = '--style-filled-no-accent-inverted';\n\tstatic TINTED_NO_ACCENT = '--style-tinted-no-accent';\n\tstatic OUTLINE_NO_ACCENT = '--style-outline-no-accent';\n}\n","import { Dom, Tag, Type } from 'main.core';\nimport 'ui.design-tokens.air';\nimport CounterColor from './cnt-color';\nimport CounterSize from './cnt-size';\n\nimport './air.css';\nimport { CounterStyle } from './cnt-style';\n\nexport type CounterOptions = {\n\tuseAirDesign: boolean;\n\tstyle: CounterStyle;\n\tvalue: number;\n\tmaxValue: number;\n\tcolor: CounterColor;\n\tsecondaryColor: CounterColor;\n\tborder: boolean;\n\tsize: string;\n\tisDouble: boolean;\n\tusePercentSymbol?: boolean;\n\thideIfZero?: boolean;\n\tnode?: HTMLElement;\n\tid?: string;\n};\n\nexport default class Counter\n{\n\tstatic Color = CounterColor;\n\tstatic Size = CounterSize;\n\tstatic Style = CounterStyle;\n\tstatic BaseClassname = 'ui-counter';\n\n\t#usePercentSymbol: boolean = false;\n\t#useAirDesign: boolean = false;\n\t#style: CounterStyle = CounterStyle.FILLED;\n\t#hideIfZero: boolean = false;\n\t#node: HTMLElement;\n\t#id: ?string = undefined;\n\n\tstatic initFromCounterNode(node: HTMLElement): ?Counter\n\t{\n\t\tif (Dom.hasClass(node, Counter.BaseClassname) === false)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tconst options: CounterOptions = {};\n\n\t\toptions.useAirDesign = Dom.hasClass(node, '--air');\n\t\toptions.style = Object.values(Counter.Style).find((value) => Dom.hasClass(node, value)) ?? Counter.Color.PRIMARY;\n\t\toptions.color = Object.values(Counter.Color).find((value) => Dom.hasClass(node, value)) ?? Counter.Style.FILLED;\n\t\toptions.size = Object.values(Counter.Size).find((value) => Dom.hasClass(node, value)) ?? Counter.Size.MEDIUM;\n\t\toptions.value = parseInt(Dom.attr(node, 'data-value'), 10);\n\t\toptions.hideIfZero = Dom.hasClass(node, '--hide-zero');\n\t\toptions.node = node;\n\t\toptions.id = node.id;\n\n\t\treturn new Counter(options);\n\t}\n\n\tstatic updateCounterNodeValue(node: HTMLElement, value: number): void\n\t{\n\t\tconst counter = Counter.initFromCounterNode(node);\n\n\t\tif (counter && Type.isNumber(value))\n\t\t{\n\t\t\tcounter.update(value);\n\t\t}\n\t}\n\n\tconstructor(options: CounterOptions)\n\t{\n\t\tthis.options = Type.isPlainObject(options) ? options : {};\n\n\t\tthis.#useAirDesign = this.options.useAirDesign === true;\n\t\tthis.#node = options.node ?? null;\n\t\tthis.container = null;\n\t\tthis.counterContainer = null;\n\t\tthis.animate = Type.isBoolean(this.options.animate) ? this.options.animate : false;\n\t\tthis.isDouble = Type.isBoolean(this.options.isDouble) ? this.options.isDouble : false;\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 : 99;\n\t\tthis.size = Type.isString(this.options.size) ? this.options.size : BX.UI.Counter.Size.MEDIUM;\n\t\tthis.color = Type.isString(this.options.color) ? this.options.color : BX.UI.Counter.Color.PRIMARY;\n\t\tthis.secondaryColor = Type.isString(this.options.secondaryColor)\n\t\t\t? this.options.secondaryColor\n\t\t\t: BX.UI.Counter.Color.PRIMARY\n\t\t;\n\t\tthis.border = Type.isBoolean(this.options.border) ? this.options.border : false;\n\t\tthis.#usePercentSymbol = this.options?.usePercentSymbol === true;\n\t\tthis.#style = this.options.style ?? CounterStyle.FILLED;\n\t\tthis.#hideIfZero = this.options.hideIfZero === true;\n\t\tthis.#id = this.options.id;\n\t}\n\n\t// region Parameters\n\tsetValue(value: number): this\n\t{\n\t\tthis.#setPositiveValue(value);\n\n\t\tDom.attr(this.getContainer(), 'data-value', value);\n\t\tDom.removeClass(this.getContainer(), '--one-digit');\n\n\t\tif (this.value < 10 && this.#usePercentSymbol === false)\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), '--one-digit');\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetValue(): number\n\t{\n\t\tif (this.#usePercentSymbol)\n\t\t{\n\t\t\treturn this.value;\n\t\t}\n\n\t\tif (this.value <= this.maxValue)\n\t\t{\n\t\t\treturn this.value;\n\t\t}\n\n\t\treturn `${this.maxValue}+`;\n\t}\n\n\tgetRealValue(): 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 < 0) ? 0 : 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\tgetId(): string\n\t{\n\t\treturn this.#id;\n\t}\n\n\tisBorder(): boolean\n\t{\n\t\treturn this.border;\n\t}\n\n\tsetAirDesign(flag: boolean = true): this\n\t{\n\t\tthis.#useAirDesign = flag === true;\n\n\t\tif (!this.container)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#useAirDesign)\n\t\t{\n\t\t\tDom.addClass(this.container, '--air');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.container, '--air');\n\t\t}\n\t}\n\n\tsetColor(color: CounterColor): 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\tsetStyle(style: CounterStyle): this\n\t{\n\t\tif (this.container && this.#useAirDesign)\n\t\t{\n\t\t\tDom.removeClass(this.container, this.#style);\n\t\t\tDom.addClass(this.container, style);\n\t\t}\n\n\t\tthis.#style = style;\n\t}\n\n\tsetSize(size: CounterSize): this\n\t{\n\t\tif (Type.isStringFilled(size))\n\t\t{\n\t\t\tDom.removeClass(this.container, this.size);\n\t\t\tthis.size = size;\n\t\t\tDom.addClass(this.container, this.size);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetAnimate(animate: boolean): this\n\t{\n\t\tif (Type.isBoolean(animate))\n\t\t{\n\t\t\tthis.animate = animate;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tcreateSecondaryContainer()\n\t{\n\t\tif (this.isDouble)\n\t\t{\n\t\t\tthis.secondaryContainer = Tag.render`\n\t\t\t\t<div class=\"ui-counter-secondary\"></div>\n\t\t\t`;\n\t\t}\n\t\tDom.append(this.secondaryContainer, this.container);\n\t}\n\n\tsetSecondaryColor()\n\t{\n\t\tif (this.secondaryContainer === null)\n\t\t{\n\t\t\tthis.createSecondaryContainer();\n\t\t}\n\t\tDom.removeClass(this.secondaryContainer, this.secondaryColor);\n\t\tDom.addClass(this.secondaryContainer, this.secondaryColor);\n\t}\n\n\tsetBorder(border: boolean): this\n\t{\n\t\tif (!Type.isBoolean(border))\n\t\t{\n\t\t\tconsole.warn('Parameter \"border\" is not boolean');\n\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.border = border;\n\t\tconst borderedCounterClassname = this.#getBorderClassname(true);\n\n\t\tif (border)\n\t\t{\n\t\t\tDom.addClass(this.container, borderedCounterClassname);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.container, borderedCounterClassname);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t#getBorderClassname(border: boolean): string\n\t{\n\t\tif (border)\n\t\t{\n\t\t\treturn 'ui-counter-border';\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t// endregion\n\n\t// region Counter\n\tupdate(value)\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer(this.#node);\n\t\t}\n\n\t\tif (Boolean(this.animate) === true && this.#useAirDesign === false)\n\t\t{\n\t\t\tthis.updateAnimated(value);\n\t\t}\n\t\telse if (Boolean(this.animate) === false)\n\t\t{\n\t\t\tthis.setValue(value);\n\n\t\t\tif (this.#useAirDesign)\n\t\t\t{\n\t\t\t\tconst oldCounterContainer = this.counterContainer;\n\t\t\t\tthis.counterContainer = null;\n\t\t\t\tthis.counterContainer = this.getCounterContainer();\n\t\t\t\tDom.replace(oldCounterContainer, this.counterContainer);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst percentSymbol = this.#usePercentSymbol ? '%' : '';\n\n\t\t\t\tDom.adjust(this.counterContainer, {\n\t\t\t\t\ttext: `${this.getValue()}${percentSymbol}`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateAnimated(value)\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tif (value > this.value && this.value < this.maxValue)\n\t\t{\n\t\t\tDom.addClass(this.counterContainer, 'ui-counter-plus');\n\t\t}\n\t\telse if (value < this.value && this.value < this.maxValue)\n\t\t{\n\t\t\tDom.addClass(this.counterContainer, 'ui-counter-minus');\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tthis.setValue(value);\n\t\t\tDom.adjust(this.counterContainer, {\n\t\t\t\ttext: this.getValue(),\n\t\t\t});\n\t\t}, 250);\n\n\t\tsetTimeout(() => {\n\t\t\tDom.removeClass(this.counterContainer, 'ui-counter-plus');\n\t\t\tDom.removeClass(this.counterContainer, 'ui-counter-minus');\n\t\t}, 500);\n\t}\n\n\tshow()\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tDom.addClass(this.container, 'ui-counter-show');\n\t\tDom.removeClass(this.container, 'ui-counter-hide');\n\t}\n\n\thide()\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tthis.createContainer();\n\t\t}\n\n\t\tDom.addClass(this.container, 'ui-counter-hide');\n\t\tDom.removeClass(this.container, 'ui-counter-show');\n\t}\n\n\tgetCounterContainer(): HTMLElement\n\t{\n\t\tif (this.counterContainer === null && this.#useAirDesign)\n\t\t{\n\t\t\tthis.counterContainer = this.#createAirCounterContainer();\n\t\t}\n\t\telse if (this.counterContainer === null)\n\t\t{\n\t\t\tconst percentSymbol = this.#usePercentSymbol ? '%' : '';\n\n\t\t\tthis.counterContainer = Tag.render`\n\t\t\t\t<div class=\"ui-counter-inner\">${this.getValue()}${percentSymbol}</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.counterContainer;\n\t}\n\n\t#createAirCounterContainer(): HTMLElement\n\t{\n\t\tlet symbol = '';\n\t\tlet value = this.value;\n\n\t\tif (this.#usePercentSymbol)\n\t\t{\n\t\t\tsymbol = '%';\n\t\t}\n\t\telse if (this.value > this.maxValue)\n\t\t{\n\t\t\tvalue = this.value > this.maxValue ? this.maxValue : this.value;\n\t\t\tsymbol = '+';\n\t\t}\n\n\t\tconst valueContainer = Tag.render`<span class=\"ui-counter__value\">${value}</span>`;\n\t\tconst symbolContainer = Tag.render`<span class=\"ui-counter__symbol\">${symbol}</span>`;\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-counter-inner\">\n\t\t\t\t${valueContainer}\n\t\t\t\t${symbolContainer}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t// node params used only for vue3 component\n\tcreateContainer(node: HTMLElement = null): HTMLElement\n\t{\n\t\tif (this.container === null)\n\t\t{\n\t\t\tif (node)\n\t\t\t{\n\t\t\t\tthis.container = node;\n\t\t\t\tthis.container.className = 'ui-counter ui-counter__scope';\n\t\t\t\tDom.clean(this.container);\n\t\t\t\tDom.append(this.getCounterContainer(), this.container);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.container = Tag.render`\n\t\t\t\t\t<div class=\"ui-counter ui-counter__scope\">${this.getCounterContainer()}</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tif (this.#hideIfZero)\n\t\t\t{\n\t\t\t\tDom.addClass(this.container, '--hide-zero');\n\t\t\t}\n\n\t\t\tif (this.#id)\n\t\t\t{\n\t\t\t\tDom.attr(this.container, 'id', this.#id);\n\t\t\t}\n\n\t\t\tthis.setAirDesign(this.#useAirDesign);\n\t\t\tthis.setSize(this.size);\n\t\t\tthis.setColor(this.color);\n\t\t\tthis.setStyle(this.#style);\n\t\t\tthis.setBorder(this.border);\n\t\t\tthis.setValue(this.value);\n\t\t\tthis.createSecondaryContainer();\n\t\t\tthis.setSecondaryColor();\n\t\t}\n\n\t\treturn this.container;\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(this.#node);\n\t\t}\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\tDom.append(this.getContainer(), node);\n\n\t\t\treturn this.getContainer();\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/** @deprecated used only for vue3 component */\n\trenderOnNode(node: HTMLElement): void\n\t{\n\t\tthis.createContainer(node);\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\tdestroy(): void\n\t{\n\t\tDom.remove(this.container);\n\t\tthis.container = null;\n\t\tthis.secondaryContainer = 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\t\tObject.keys(this).forEach((property) => {\n\t\t\tif (Object.prototype.hasOwnProperty.call(this, 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\t#setPositiveValue(value: number): void\n\t{\n\t\tif (Type.isNumber(value))\n\t\t{\n\t\t\tthis.value = (value < 0) ? 0 : value;\n\t\t}\n\t}\n}\n"],"names":["CounterColor","DANGER","WARNING","SUCCESS","PRIMARY","GRAY","LIGHT","WHITE","DARK","THEME","CounterSize","SMALL","LARGE","MEDIUM","CounterStyle","FILLED_EXTRA","FILLED","FILLED_INVERTED","FILLED_ALERT","FILLED_ALERT_INVERTED","FILLED_WARNING","FILLED_SUCCESS","FILLED_SUCCESS_INVERTED","FILLED_NO_ACCENT","FILLED_NO_ACCENT_INVERTED","TINTED_NO_ACCENT","OUTLINE_NO_ACCENT","Counter","initFromCounterNode","node","Dom","hasClass","BaseClassname","options","useAirDesign","style","Object","values","Style","find","value","Color","color","size","Size","parseInt","attr","hideIfZero","id","updateCounterNodeValue","counter","Type","isNumber","update","constructor","undefined","isPlainObject","container","counterContainer","animate","isBoolean","isDouble","maxValue","isString","BX","UI","secondaryColor","border","usePercentSymbol","setValue","getContainer","removeClass","addClass","getValue","getRealValue","setMaxValue","getMaxValue","getId","isBorder","setAirDesign","flag","setColor","isStringFilled","createContainer","setStyle","setSize","setAnimate","createSecondaryContainer","secondaryContainer","Tag","render","append","setSecondaryColor","setBorder","console","warn","borderedCounterClassname","Boolean","updateAnimated","oldCounterContainer","getCounterContainer","replace","percentSymbol","adjust","text","setTimeout","show","hide","className","clean","renderTo","isDomNode","renderOnNode","destroy","remove","finished","textAfterContainer","textBeforeContainer","bar","svg","keys","forEach","property","prototype","hasOwnProperty","call","setPrototypeOf","symbol","valueContainer","symbolContainer"],"mappings":"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"}