Your IP : 172.70.80.239


Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/sign-up/dist/
Upload File :
Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/sign-up/dist/sign-up.bundle.js.map

{"version":3,"file":"sign-up.bundle.js","sources":["../src/tabs/tab.js","../src/tabs/tabs.js","../src/footer/footer.js","../src/canvas-wrapper/canvas-wrapper.js","../src/content/content.js","../src/content/initials/initials.js","../src/content/touch/internal/get-point.js","../src/content/touch/touch.js","../src/content/photo/photo.js","../src/images/initials.svg","../src/images/initials-active.svg","../src/images/touch.svg","../src/images/touch-active.svg","../src/images/photo.svg","../src/images/photo-active.svg","../src/sign-up.js"],"sourcesContent":["import {EventEmitter} from 'main.core.events';\nimport {Tag, Cache, Text, Dom} from 'main.core';\nimport type {TabOptions} from './types/tabs-options';\nimport typeof {Content} from '../content/content';\n\nimport './css/tab.css';\n\nexport class Tab extends EventEmitter\n{\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options: TabOptions)\n\t{\n\t\tsuper();\n\t\tthis.setOptions(options);\n\t\tthis.setEventNamespace('BX.UI.SignUp.Tabs.Tab');\n\t\tthis.subscribeFromOptions(options.events);\n\t}\n\n\tsetOptions(options: TabOptions)\n\t{\n\t\tthis.cache.set('options', {...options});\n\t}\n\n\tgetOptions(): TabOptions\n\t{\n\t\treturn this.cache.get('options', {});\n\t}\n\n\tgetIconNode(): HTMLSpanElement\n\t{\n\t\treturn this.cache.remember('iconNode', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<span style=\"background-image: url('${this.getOptions().icon}');\"></span>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetHeaderLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('headerLayout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div \n\t\t\t\t\tclass=\"ui-sign-up-tabs-tab-header\" \n\t\t\t\t\tdata-id=\"${Text.encode(this.getOptions().id)}\"\n\t\t\t\t\tonclick=\"${this.onHeaderClick.bind(this)}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"ui-sign-up-tabs-tab-header-icon\">\n\t\t\t\t\t\t${this.getIconNode()}\t\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-sign-up-tabs-tab-header-text\">\n\t\t\t\t\t\t<span>${this.getOptions().header}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tonHeaderClick(event: MouseEvent)\n\t{\n\t\tevent.preventDefault();\n\t\tthis.emit('onHeaderClick');\n\t}\n\n\tgetContent(): Content\n\t{\n\t\treturn this.getOptions().content;\n\t}\n\n\tactivate()\n\t{\n\t\tDom.addClass(this.getHeaderLayout(), 'ui-sign-up-tabs-tab-header-active');\n\t\tDom.style(this.getIconNode(), {\n\t\t\t'background-image': `url('${this.getOptions().activeIcon}')`\n\t\t});\n\t}\n\n\tdeactivate()\n\t{\n\t\tDom.removeClass(this.getHeaderLayout(), 'ui-sign-up-tabs-tab-header-active');\n\t\tDom.style(this.getIconNode(), {\n\t\t\t'background-image': `url('${this.getOptions().icon}')`\n\t\t});\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getHeaderLayout(), 'ui-sign-up-tabs-tab-header-active');\n\t}\n}","import {Cache, Tag, Dom, Type} from 'main.core';\nimport {BaseEvent, EventEmitter} from 'main.core.events';\nimport {Tab} from './tab';\nimport type {TabsOptions} from './types/tabs-options';\n\nimport './css/tabs.css';\n\nexport class Tabs extends EventEmitter\n{\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options: TabsOptions = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.SignUp.Tabs');\n\t\tthis.subscribeFromOptions(options.events);\n\t\tthis.setOptions(options);\n\n\t\tthis.onTabHeaderClick = this.onTabHeaderClick.bind(this);\n\n\t\tconst {defaultState} = this.getOptions();\n\n\t\tif (Type.isStringFilled(defaultState))\n\t\t{\n\t\t\tconst currentTab: Tab = this.getTabs().find((tab) => {\n\t\t\t\treturn tab.getOptions().id === defaultState;\n\t\t\t});\n\n\t\t\tif (currentTab)\n\t\t\t{\n\t\t\t\tthis.setCurrentTab(currentTab);\n\t\t\t\tcurrentTab.activate();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst [firstTab: Tab] = this.getTabs();\n\t\t\t\tthis.setCurrentTab(firstTab);\n\t\t\t\tfirstTab.activate();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst [firstTab: Tab] = this.getTabs();\n\t\t\tthis.setCurrentTab(firstTab);\n\t\t\tfirstTab.activate();\n\t\t}\n\t}\n\n\tgetCurrentTab(): Tab\n\t{\n\t\treturn this.cache.get('currentTab');\n\t}\n\n\tsetCurrentTab(tab: Tab)\n\t{\n\t\tthis.cache.set('currentTab', tab);\n\t}\n\n\tsetOptions(options: TabsOptions)\n\t{\n\t\tthis.cache.set('options', {...options});\n\t}\n\n\tgetOptions(): TabsOptions\n\t{\n\t\treturn this.cache.get('options', {});\n\t}\n\n\tgetTabs(): Array<Tab>\n\t{\n\t\treturn this.cache.remember('tabs', () => {\n\t\t\treturn this.getOptions().tabs.map((options) => {\n\t\t\t\treturn new Tab({\n\t\t\t\t\t...options,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonHeaderClick: this.onTabHeaderClick\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tonTabHeaderClick(event: BaseEvent)\n\t{\n\t\tconst targetTab = event.getTarget();\n\t\tthis.setCurrentTab(targetTab);\n\n\t\tthis.getTabs().forEach((tab) => {\n\t\t\ttab.deactivate();\n\t\t});\n\n\t\ttargetTab.activate();\n\n\t\tDom.replace(this.getBodyLayout().firstElementChild, targetTab.getContent().getLayout())\n\t}\n\n\tgetHeaderLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('headerLayout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-tabs-header\">\n\t\t\t\t\t${this.getTabs().map((tab) => tab.getHeaderLayout())}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetBodyLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('bodyLayout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-tabs-body\">\n\t\t\t\t\t${this.getCurrentTab().getContent().getLayout()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-tabs\">\n\t\t\t\t\t${this.getHeaderLayout()}\n\t\t\t\t\t${this.getBodyLayout()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n}","import {Cache, Dom, Loc, Tag} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {Button, ButtonColor, ButtonSize} from 'ui.buttons';\nimport type {FooterOptions} from '../types/footer-options';\n\nimport './css/style.css';\n\nexport class Footer extends EventEmitter\n{\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options: FooterOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.SignUp.Footer');\n\t\tthis.subscribeFromOptions(options.events);\n\t\tthis.setOptions(options);\n\t}\n\n\tsetOptions(options: FooterOptions)\n\t{\n\t\tthis.cache.set('options', options);\n\t}\n\n\tgetOptions(): FooterOptions\n\t{\n\t\treturn this.cache.get('options', {});\n\t}\n\n\tgetSaveButton(): Button\n\t{\n\t\treturn this.cache.remember('saveButtons', () => {\n\t\t\treturn new Button({\n\t\t\t\ttext: Loc.getMessage('UI_SIGN_UP_SAVE_BUTTON_LABEL'),\n\t\t\t\tcolor: BX.UI.Button.Color.PRIMARY,\n\t\t\t\tround: true,\n\t\t\t\tnoCaps: true,\n\t\t\t\tclassName: `ui-sign-up-special-${this.getOptions().mode}-btn`,\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.emit('onSaveClick');\n\t\t\t\t\tconst promise = this.emitAsync('onSaveClickAsync');\n\t\t\t\t\tif (promise)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.getSaveButton().setWaiting(true);\n\t\t\t\t\t\tpromise.then(() => {\n\t\t\t\t\t\t\tthis.getSaveButton().setWaiting(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetCancelButton(): Button\n\t{\n\t\treturn this.cache.remember('cancelButtons', () => {\n\t\t\treturn new Button({\n\t\t\t\ttext: Loc.getMessage('UI_SIGN_UP_CANCEL_BUTTON_LABEL'),\n\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\tround: true,\n\t\t\t\tnoCaps: true,\n\t\t\t\tclassName: `ui-sign-up-special-${this.getOptions().mode}-btn`,\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.emit('onCancelClick');\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\tconst layout = Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-footer\">\n\t\t\t\t\t${this.getSaveButton().render()}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tif (this.getOptions().mode === 'desktop')\n\t\t\t{\n\t\t\t\tDom.append(this.getCancelButton().render(), layout);\n\t\t\t}\n\n\t\t\treturn layout;\n\t\t});\n\t}\n}","import {Cache, Dom, Tag, Type, Event, Text} from 'main.core';\nimport type {CanvasWrapperOptions} from '../types/canvas-wrapper-options';\n\nexport class CanvasWrapper\n{\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options: CanvasWrapperOptions)\n\t{\n\t\tthis.setOptions(options);\n\t}\n\n\tsetOptions(options: CanvasWrapperOptions)\n\t{\n\t\tthis.cache.set('options', options);\n\t}\n\n\tgetOptions(): CanvasWrapperOptions\n\t{\n\t\treturn this.cache.get('options');\n\t}\n\n\tgetDevicePixelRatio(): number\n\t{\n\t\treturn window.devicePixelRatio;\n\t}\n\n\tgetLayout(): HTMLCanvasElement\n\t{\n\t\tconst canvas = this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<canvas class=\"ui-sign-up-canvas\"></canvas>\n\t\t\t`;\n\t\t});\n\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tif (Type.isDomNode(canvas.parentElement) && !this.cache.has('adjustCanvas'))\n\t\t\t{\n\t\t\t\tconst parentRect = {\n\t\t\t\t\twidth: canvas.parentElement.clientWidth,\n\t\t\t\t\theight: canvas.parentElement.clientHeight,\n\t\t\t\t};\n\t\t\t\tif (parentRect.width > 0 && parentRect.height > 0)\n\t\t\t\t{\n\t\t\t\t\tvoid this.cache.remember('adjustCanvas', () => {\n\t\t\t\t\t\tconst canvas = this.getLayout();\n\t\t\t\t\t\tconst ratio = this.getDevicePixelRatio();\n\n\t\t\t\t\t\tcanvas.width = parentRect.width * ratio;\n\t\t\t\t\t\tcanvas.height = parentRect.height * ratio;\n\n\t\t\t\t\t\tDom.style(canvas, {\n\t\t\t\t\t\t\twidth: `${parentRect.width}px`,\n\t\t\t\t\t\t\theight: `${parentRect.height}px`,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst context2d = this.getLayout().getContext('2d');\n\n\t\t\t\t\t\tconst {context2d: context2dOptions = {}} = this.getOptions();\n\t\t\t\t\t\tif (Type.isPlainObject(context2dOptions))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tObject.assign(context2d, context2dOptions);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontext2d.scale(ratio, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tclearTimeout(timeoutId);\n\t\t});\n\n\t\treturn canvas;\n\t}\n\n\tclear()\n\t{\n\t\tconst canvas = this.getLayout();\n\t\tconst context = canvas.getContext('2d');\n\t\tcontext.clearRect(0, 0, (canvas.width * 2), (canvas.height * 2));\n\t}\n\n\trenderText(text: string)\n\t{\n\t\tconst preparedText = String(text).trim();\n\n\t\tconst canvas = this.getLayout();\n\t\tconst context = canvas.getContext('2d');\n\t\tcontext.font = '34px Comforter Brush';\n\n\t\tthis.clear();\n\n\t\tconst ratio = this.getDevicePixelRatio();\n\t\tconst maxTextWidth = canvas.width - 20;\n\t\tlet fontSize = Text.toNumber(context.font);\n\t\twhile (fontSize > 1 && context.measureText(preparedText).width * ratio > maxTextWidth)\n\t\t{\n\t\t\tfontSize -= 1;\n\t\t\tcontext.font = `${fontSize}px Comforter Brush`;\n\t\t}\n\n\t\tconst textWidth = context.measureText(preparedText).width * ratio;\n\t\tcontext.fillText(preparedText, (canvas.width - textWidth) / (2 * ratio), 34);\n\t}\n\n\tstatic #loadImage(file: File | Blob): Promise<HTMLImageElement>\n\t{\n\t\tconst fileReader = new FileReader();\n\n\t\treturn new Promise((resolve) => {\n\t\t\tfileReader.readAsDataURL(file);\n\t\t\tEvent.bindOnce(fileReader, 'loadend', () => {\n\t\t\t\tconst image = new Image();\n\t\t\t\timage.src = fileReader.result;\n\t\t\t\tEvent.bindOnce(image, 'load', () => {\n\t\t\t\t\tresolve(image);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\trenderImage(file: File | Blob): Promise<any>\n\t{\n\t\treturn CanvasWrapper\n\t\t\t.#loadImage(file)\n\t\t\t.then((image: HTMLImageElement) => {\n\t\t\t\tconst canvas: HTMLCanvasElement = this.getLayout();\n\t\t\t\tconst context2d: CanvasRenderingContext2D = canvas.getContext('2d');\n\n\t\t\t\tconst wRatio = canvas.clientWidth / image.width;\n\t\t\t\tconst hRatio = canvas.clientHeight / image.height;\n\t\t\t\tconst ratio = Math.min(wRatio, hRatio);\n\t\t\t\tconst offsetX = (canvas.clientWidth - (image.width * ratio)) / 2;\n\t\t\t\tconst offsetY = (canvas.clientHeight - (image.height * ratio)) / 2;\n\n\t\t\t\tthis.clear();\n\n\t\t\t\tcontext2d.drawImage(\n\t\t\t\t\timage,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\timage.width,\n\t\t\t\t\timage.height,\n\t\t\t\t\toffsetX,\n\t\t\t\t\toffsetY,\n\t\t\t\t\t(image.width * ratio),\n\t\t\t\t\t(image.height * ratio),\n\t\t\t\t);\n\t\t\t});\n\t}\n}","import {Cache} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {CanvasWrapper} from '../canvas-wrapper/canvas-wrapper';\n\nexport class Content extends EventEmitter\n{\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(options = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.SignUp.Content');\n\t\tthis.subscribeFromOptions(options.events);\n\t\tthis.setOptions(options);\n\t}\n\n\tsetOptions(options)\n\t{\n\t\tthis.cache.set('options', {...options});\n\t}\n\n\tgetOptions()\n\t{\n\t\treturn this.cache.get('options', {});\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\tthrow new Error('Must be implemented in a child class');\n\t}\n\n\tgetCanvas(): CanvasWrapper\n\t{\n\t\tthrow new Error('Must be implemented in a child class');\n\t}\n}","import {Content} from '../content';\nimport {Loc, Tag} from 'main.core';\nimport 'ui.forms';\nimport 'ui.fonts.comforter-brush';\nimport {CanvasWrapper} from '../../canvas-wrapper/canvas-wrapper';\n\nimport './css/style.css';\n\nexport class InitialsContent extends Content\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.UI.SignUp.Content.InitialsContent');\n\t\tthis.subscribeFromOptions(options?.events);\n\t\tthis.onInput = this.onInput.bind(this);\n\n\t\tvoid this.forceLoadFonts();\n\t}\n\n\tforceLoadFonts(): Promise<any>\n\t{\n\t\tconst allFonts = [\n\t\t\t...document.fonts,\n\t\t];\n\t\tconst comforterBrushFonts = allFonts.filter((font) => {\n\t\t\treturn String(font.family).includes('Comforter Brush');\n\t\t});\n\n\t\treturn Promise.all(comforterBrushFonts.map((font) => font.load()));\n\t}\n\n\tgetNameInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('nameInput', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" oninput=\"${this.onInput}\">\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetInitialsInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('initialsInput', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" oninput=\"${this.onInput}\">\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetTextValue(): string\n\t{\n\t\tconst name = String(this.getNameInput().value);\n\t\tconst initials = String(this.getInitialsInput().value);\n\n\t\treturn `${name} ${initials}`;\n\t}\n\n\tonInput()\n\t{\n\t\tthis.getCanvas().renderText(this.getTextValue());\n\t\tthis.emit('onChange');\n\t}\n\n\tgetCanvas(): CanvasWrapper\n\t{\n\t\treturn this.cache.remember('canvas', () => {\n\t\t\treturn new CanvasWrapper({\n\t\t\t\tcontext2d: {\n\t\t\t\t\tfillStyle: '#000000',\n\t\t\t\t\tfont: '34px Comforter Brush',\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-content\">\n\t\t\t\t\t<div class=\"ui-sign-up-initials-form\">\n\t\t\t\t\t\t<div class=\"ui-sign-up-initials-form-left\">\n\t\t\t\t\t\t\t<div class=\"ui-sign-up-initials-form-label\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('UI_SIGN_UP_TAB_INITIALS_LAST_NAME_LABEL')}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-inline\">\n\t\t\t\t\t\t\t\t${this.getNameInput()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-sign-up-initials-form-right\">\n\t\t\t\t\t\t\t<div class=\"ui-sign-up-initials-form-label\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('UI_SIGN_UP_TAB_INITIALS_INITIALS_LABEL')}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-inline\">\n\t\t\t\t\t\t\t\t${this.getInitialsInput()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-sign-up-initials-preview\">\n\t\t\t\t\t\t${this.getCanvas().getLayout()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n}","import {Type} from 'main.core';\n\nexport function getPoint(event: MouseEvent | TouchEvent): {x: number, y: number}\n{\n\tif (!Type.isNil(window.TouchEvent) && event instanceof window.TouchEvent)\n\t{\n\t\tconst rect = event.target.getBoundingClientRect();\n\t\tconst {touches, changedTouches} = event;\n\t\tconst [touch] = touches.length > 0 ? touches : changedTouches;\n\n\t\treturn {x: touch.clientX - rect.left, y: touch.clientY - rect.top};\n\t}\n\n\treturn {x: event.offsetX, y: event.offsetY};\n}","import {Loc, Tag, Event} from 'main.core';\nimport {Content} from '../content';\nimport {CanvasWrapper} from '../../canvas-wrapper/canvas-wrapper';\nimport {getPoint} from './internal/get-point';\n\nimport './css/style.css';\n\nlet preventScrolling = false;\nEvent.bind(window, 'touchmove', (event) => {\n\tif (preventScrolling)\n\t{\n\t\tevent.preventDefault();\n\t}\n}, {passive: false});\n\nexport class TouchContent extends Content\n{\n\tstatic LineWidth = 3;\n\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.UI.SignUp.Content.TouchContent');\n\t\tthis.subscribeFromOptions(options?.events);\n\n\t\tconst canvasLayout = this.getCanvas().getLayout();\n\t\tEvent.bind(canvasLayout, 'mousedown', this.onCanvasMouseDown.bind(this));\n\t\tEvent.bind(document, 'mouseup', this.onCanvasMouseUp.bind(this));\n\t\tEvent.bind(canvasLayout, 'mousemove', this.onCanvasMouseMove.bind(this));\n\t\tEvent.bind(canvasLayout, 'touchstart', this.onCanvasMouseDown.bind(this));\n\t\tEvent.bind(canvasLayout, 'touchend', this.onCanvasMouseUp.bind(this));\n\t\tEvent.bind(canvasLayout, 'touchmove', this.onCanvasMouseMove.bind(this));\n\t}\n\n\tsetIsDrawing(value: boolean)\n\t{\n\t\tthis.cache.set('isDrawing', value);\n\t}\n\n\tgetIsDrawing(): boolean\n\t{\n\t\treturn this.cache.get('isDrawing', false);\n\t}\n\n\tsetStartEvent(event: MouseEvent)\n\t{\n\t\tthis.cache.set('startEvent', event);\n\t}\n\n\tgetStartEvent(): MouseEvent\n\t{\n\t\treturn this.cache.get('startEvent');\n\t}\n\n\tonCanvasMouseDown(event: MouseEvent)\n\t{\n\t\tthis.setIsDrawing(true);\n\t\tpreventScrolling = true;\n\n\t\tconst context2d = this.getCanvas().getLayout().getContext('2d');\n\t\tcontext2d.beginPath();\n\n\t\tconst point = getPoint(event);\n\t\tcontext2d.moveTo(point.x, point.y);\n\t\tthis.setStartEvent(event);\n\t\tthis.emit('onChange');\n\t}\n\n\tonCanvasMouseUp(event: MouseEvent)\n\t{\n\t\tthis.setIsDrawing(false);\n\t\tpreventScrolling = false;\n\n\t\tconst canvasLayout = this.getCanvas().getLayout();\n\t\tconst context2d = canvasLayout.getContext('2d');\n\t\tcontext2d.closePath();\n\n\t\tif (event.currentTarget === canvasLayout)\n\t\t{\n\t\t\tconst startEvent = this.getStartEvent();\n\t\t\tconst startPoint = getPoint(startEvent);\n\t\t\tconst currentPoint = getPoint(event);\n\t\t\tif (\n\t\t\t\tstartPoint.x === currentPoint.x\n\t\t\t\t&& startPoint.y === currentPoint.y\n\t\t\t)\n\t\t\t{\n\t\t\t\tcontext2d.lineTo(currentPoint.x, currentPoint.y);\n\t\t\t\tcontext2d.stroke();\n\t\t\t}\n\t\t}\n\n\t\tthis.emit('onChange');\n\t}\n\n\tonCanvasMouseMove(event: MouseEvent)\n\t{\n\t\tif (this.getIsDrawing())\n\t\t{\n\t\t\tconst context2d = this.getCanvas().getLayout().getContext('2d');\n\t\t\tconst point = getPoint(event);\n\t\t\tcontext2d.lineTo(point.x, point.y);\n\t\t\tcontext2d.stroke();\n\t\t}\n\n\t\tthis.emit('onChange');\n\t}\n\n\tonCanvasMouseOut()\n\t{\n\t\tthis.setIsDrawing(false);\n\t\tpreventScrolling = false;\n\n\t\tconst context2d = this.getCanvas().getLayout().getContext('2d');\n\t\tcontext2d.closePath();\n\n\t\tthis.emit('onChange');\n\t}\n\n\tgetCanvas(): CanvasWrapper\n\t{\n\t\treturn this.cache.remember('canvas', () => {\n\t\t\treturn new CanvasWrapper({\n\t\t\t\tcontext2d: {\n\t\t\t\t\tlineWidth: TouchContent.LineWidth,\n\t\t\t\t\tstrokeStyle: '000000',\n\t\t\t\t\tlineJoin: 'round',\n\t\t\t\t\tlineCap: 'round',\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetClearButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('clearButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-touch-clear-button\" onclick=\"${this.onClearClick.bind(this)}\">\n\t\t\t\t\t${Loc.getMessage('UI_SIGN_UP_TOUCH_CLEAR_BUTTON')}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tonClearClick(event: MouseEvent)\n\t{\n\t\tevent.preventDefault();\n\t\tthis.getCanvas().clear();\n\t\tthis.emit('onChange');\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\tconst onTouchMove = (event: TouchEvent) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t};\n\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-content\" ontouchmove=\"${onTouchMove}\">\n\t\t\t\t\t<div class=\"ui-sign-up-touch-form-label\">\n\t\t\t\t\t\t${(() => {\n\t\t\t\t\t\t\tif (this.getOptions().mode === 'mobile')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn Loc.getMessage('UI_SIGN_UP_TOUCH_LAYOUT_MOBILE_LABEL');\n\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\treturn Loc.getMessage('UI_SIGN_UP_TOUCH_LAYOUT_LABEL');\n\t\t\t\t\t\t})()}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-sign-up-content-touch-preview\">\n\t\t\t\t\t\t${this.getClearButton()}\n\t\t\t\t\t\t${this.getCanvas().getLayout()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n}","import {Loc, Tag, Type, Dom} from 'main.core';\nimport {Button, ButtonColor} from 'ui.buttons';\nimport {PopupMenu, Menu} from 'main.popup';\nimport {Content} from '../content';\nimport {CanvasWrapper} from '../../canvas-wrapper/canvas-wrapper';\n\nimport './css/style.css';\nimport {MessageBox} from 'ui.dialogs.messagebox';\n\nexport class PhotoContent extends Content\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.UI.SignUp.Content.PhotoContent');\n\t\tthis.subscribeFromOptions(options?.events);\n\t}\n\n\tgetTakePhotoButton(): Button\n\t{\n\t\treturn this.cache.remember('takePhotoButton', () => {\n\t\t\treturn new Button({\n\t\t\t\ttext: Loc.getMessage('UI_SIGN_UP_TAKE_SIGN_PHOTO'),\n\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\tround: true,\n\t\t\t\tnoCaps: true,\n\t\t\t\tclassName: 'ui-sign-up-special-mobile-btn',\n\t\t\t});\n\t\t});\n\t}\n\n\tgetUploadPhoto(): Button\n\t{\n\t\treturn this.cache.remember('uploadPhoto', () => {\n\t\t\treturn new Button({\n\t\t\t\ttext: Loc.getMessage('UI_SIGN_UP_UPLOAD_SIGN_PHOTO'),\n\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\tround: true,\n\t\t\t\tnoCaps: true,\n\t\t\t\tclassName: 'ui-sign-up-special-mobile-btn',\n\t\t\t\tonclick: this.onUploadPhotoClick.bind(this),\n\t\t\t});\n\t\t});\n\t}\n\n\tgetFileInput(): HTMLInputElement\n\t{\n\t\treturn this.cache.remember('fileInput', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<input hidden type=\"file\" onchange=\"${this.onFileChange.bind(this)}\" accept=\"image/*\">\n\t\t\t`;\n\t\t});\n\t}\n\n\tonUploadPhotoClick()\n\t{\n\t\tthis.getFileInput().click();\n\t}\n\n\tonFileChange(event: Event)\n\t{\n\t\tconst [file: File] = event.target.files;\n\t\tif (Type.isFile(file))\n\t\t{\n\t\t\tif (\n\t\t\t\t!Type.isStringFilled(file.type)\n\t\t\t\t|| !file.type.startsWith('image')\n\t\t\t)\n\t\t\t{\n\t\t\t\tMessageBox.alert(Loc.getMessage('UI_SIGN_UP_BAD_IMAGE_FORMAT_ALERT_MESSAGE'));\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tDom.replace(this.getButtonsLayout(), this.getPreviewLayout());\n\n\t\t\tthis.getCanvas()\n\t\t\t\t.renderImage(file)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.emit('onChange');\n\t\t\t\t});\n\t\t}\n\t}\n\n\tgetButtonsLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('buttonsLayout', () => {\n\t\t\t// const takePhotoLayout = Tag.render`\n\t\t\t// \t<div class=\"ui-sign-up-content-photo-button-wrapper\">\n\t\t\t// \t\t${this.getOptions().mode !== 'desktop' ? this.getTakePhotoButton().render() : ''}\n\t\t\t// \t</div>\n\t\t\t// `;\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-content-photo-buttons\">\n\t\t\t\t\t<div class=\"ui-sign-up-content-photo-button-wrapper\">\n\t\t\t\t\t\t${this.getUploadPhoto().render()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetCanvas(): CanvasWrapper\n\t{\n\t\treturn this.cache.remember('canvas', () => {\n\t\t\treturn new CanvasWrapper({});\n\t\t});\n\t}\n\n\tgetMoreButton(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('moreButton', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div \n\t\t\t\t\tclass=\"ui-sign-up-content-photo-more-button\"\n\t\t\t\t\tonclick=\"${this.onMoreButtonClick.bind(this)}\"\n\t\t\t\t></div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tonMoreButtonClick(event: MouseEvent)\n\t{\n\t\tevent.preventDefault();\n\n\t\tthis.getMoreMenu().show();\n\t}\n\n\tgetMoreMenu(): Menu\n\t{\n\t\treturn this.cache.remember('moreMenu', () => {\n\t\t\treturn PopupMenu.create({\n\t\t\t\tid: 'moreMenu',\n\t\t\t\tbindElement: this.getMoreButton(),\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'upload',\n\t\t\t\t\t\ttext: Loc.getMessage('UI_SIGN_UP_UPLOAD_NEW'),\n\t\t\t\t\t\tonclick: this.onUploadPhotoClick.bind(this),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t}\n\n\tgetPreviewLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('previewLayout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-content-photo-preview\">\n\t\t\t\t\t${this.getCanvas().getLayout()}\n\t\t\t\t\t${this.getMoreButton()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up-content\">\n\t\t\t\t\t${this.getButtonsLayout()}\n\t\t\t\t\t${this.getFileInput()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n}","export default \"/bitrix/js/ui/sign-up/dist/images/initials.svg\"","export default \"/bitrix/js/ui/sign-up/dist/images/initials-active.svg\"","export default \"/bitrix/js/ui/sign-up/dist/images/touch.svg\"","export default \"/bitrix/js/ui/sign-up/dist/images/touch-active.svg\"","export default \"/bitrix/js/ui/sign-up/dist/images/photo.svg\"","export default \"/bitrix/js/ui/sign-up/dist/images/photo-active.svg\"","import {Cache, Dom, Loc, Tag, Type, Runtime} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {Tabs} from './tabs/tabs';\nimport {Footer} from './footer/footer';\n\nimport {InitialsContent} from './content/initials/initials';\nimport {TouchContent} from './content/touch/touch';\nimport {PhotoContent} from './content/photo/photo';\n\nimport InitialsTabIcon from './images/initials.svg';\nimport InitialsActiveTabIcon from './images/initials-active.svg';\nimport TouchTabIcon from './images/touch.svg';\nimport TouchActiveTabIcon from './images/touch-active.svg';\nimport PhotoTabIcon from './images/photo.svg';\nimport PhotoActiveTabIcon from './images/photo-active.svg';\n\nimport type {SignUpOptions} from './types/sign-up-options';\n\nimport './css/style.css';\n\n/**\n * @memberOf BX.UI\n */\nexport class SignUp extends EventEmitter\n{\n\tcache = new Cache.MemoryCache();\n\n\tstatic MIN_PIXELS_REQUIRED = 100;\n\n\tconstructor(options: SignUpOptions = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.SignUp');\n\t\tthis.subscribeFromOptions(options.events);\n\t\tthis.setOptions(options);\n\n\t\tthis.onChangeDebounced = Runtime.debounce(this.onChangeDebounced, 200, this);\n\n\t\tif (!this.hasValue())\n\t\t{\n\t\t\tthis.getFooter().getSaveButton().setDisabled(true);\n\t\t}\n\t}\n\n\tsetOptions(options: SignUpOptions)\n\t{\n\t\tthis.cache.set('options', {mode: 'desktop', ...options});\n\t}\n\n\tgetOptions(): SignUpOptions\n\t{\n\t\treturn this.cache.get('options', {});\n\t}\n\n\tgetFooter(): Footer\n\t{\n\t\treturn this.cache.remember('footer', () => {\n\t\t\treturn new Footer({\n\t\t\t\tmode: this.getOptions().mode,\n\t\t\t\tevents: {\n\t\t\t\t\tonSaveClickAsync: () => {\n\t\t\t\t\t\treturn this.emitAsync('onSaveClickAsync');\n\t\t\t\t\t},\n\t\t\t\t\tonSaveClick: () => {\n\t\t\t\t\t\tthis.emit('onSaveClick');\n\t\t\t\t\t},\n\t\t\t\t\tonCancelClick: () => {\n\t\t\t\t\t\tthis.emit('onCancelClick');\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetLayout(): HTMLDivElement\n\t{\n\t\treturn this.cache.remember('layout', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-sign-up\">\n\t\t\t\t\t${this.getTabs().getLayout()}\n\t\t\t\t\t${this.getFooter().getLayout()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\trenderTo(target: HTMLElement)\n\t{\n\t\tif (!Type.isDomNode(target))\n\t\t{\n\t\t\tthrow new TypeError('Target is not a HTMLElement');\n\t\t}\n\n\t\tDom.append(this.getLayout(), target);\n\t}\n\n\tgetInitialsContent(): InitialsContent\n\t{\n\t\treturn this.cache.remember('initialsContent', () => {\n\t\t\treturn new InitialsContent({\n\t\t\t\tevents: {\n\t\t\t\t\tonChange: this.onChangeDebounced,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetTouchContent(): TouchContent\n\t{\n\t\treturn this.cache.remember('touchContent', () => {\n\t\t\treturn new TouchContent({\n\t\t\t\tmode: this.getOptions().mode,\n\t\t\t\tevents: {\n\t\t\t\t\tonChange: this.onChangeDebounced,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetPhotoContent(): PhotoContent\n\t{\n\t\treturn this.cache.remember('photoContent', () => {\n\t\t\treturn new PhotoContent({\n\t\t\t\tmode: this.getOptions().mode,\n\t\t\t\tevents: {\n\t\t\t\t\tonChange: this.onChangeDebounced,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tgetTabs(): Tabs\n\t{\n\t\treturn this.cache.remember('tabs', () => {\n\t\t\treturn new Tabs({\n\t\t\t\tdefaultState: this.getOptions().defaultState,\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'initials',\n\t\t\t\t\t\theader: Loc.getMessage('UI_SIGN_UP_TAB_INITIALS_TITLE'),\n\t\t\t\t\t\ticon: InitialsTabIcon,\n\t\t\t\t\t\tactiveIcon: InitialsActiveTabIcon,\n\t\t\t\t\t\tcontent: this.getInitialsContent(),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'touch',\n\t\t\t\t\t\theader: Loc.getMessage('UI_SIGN_UP_TAB_TOUCH_TITLE'),\n\t\t\t\t\t\ticon: TouchTabIcon,\n\t\t\t\t\t\tactiveIcon: TouchActiveTabIcon,\n\t\t\t\t\t\tcontent: this.getTouchContent(),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'photo',\n\t\t\t\t\t\theader: Loc.getMessage('UI_SIGN_UP_TAB_PHOTO_TITLE'),\n\t\t\t\t\t\ticon: PhotoTabIcon,\n\t\t\t\t\t\tactiveIcon: PhotoActiveTabIcon,\n\t\t\t\t\t\tcontent: this.getPhotoContent(),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t}\n\n\tgetCanvas(): HTMLCanvasElement\n\t{\n\t\treturn this.getTabs().getCurrentTab().getContent().getCanvas().getLayout();\n\t}\n\n\tonChangeDebounced()\n\t{\n\t\tthis.getFooter().getSaveButton().setDisabled(!this.hasValue());\n\t}\n\n\thasValue(): boolean\n\t{\n\t\tconst canvas = this.getCanvas();\n\t\tconst context = canvas.getContext('2d');\n\n\t\tconst pixelBuffer = new Uint32Array(\n\t\t\tcontext.getImageData(0, 0, canvas.width, canvas.height).data.buffer,\n\t\t);\n\n\t\tlet pixelsCount = 0;\n\t\treturn pixelBuffer.some((color) => {\n\t\t\treturn color !== 0 && (pixelsCount++) > SignUp.MIN_PIXELS_REQUIRED;\n\t\t})\n\t}\n\n\tasync getValue(): Promise<File | Blob>\n\t{\n\t\tconst canvas = this.getTabs().getCurrentTab().getContent().getCanvas().getLayout();\n\t\treturn await new Promise((resolve) => {\n\t\t\tcanvas.toBlob(resolve, 'image/png');\n\t\t});\n\t}\n}"],"names":["Tab","EventEmitter","constructor","options","cache","Cache","MemoryCache","setOptions","setEventNamespace","subscribeFromOptions","events","set","getOptions","get","getIconNode","remember","Tag","render","icon","getHeaderLayout","Text","encode","id","onHeaderClick","bind","header","event","preventDefault","emit","getContent","content","activate","Dom","addClass","style","activeIcon","deactivate","removeClass","isActive","hasClass","Tabs","onTabHeaderClick","defaultState","Type","isStringFilled","currentTab","getTabs","find","tab","setCurrentTab","firstTab","getCurrentTab","tabs","map","targetTab","getTarget","forEach","replace","getBodyLayout","firstElementChild","getLayout","Footer","getSaveButton","Button","text","Loc","getMessage","color","BX","UI","Color","PRIMARY","round","noCaps","className","mode","onclick","promise","emitAsync","setWaiting","then","getCancelButton","ButtonColor","LIGHT_BORDER","layout","append","CanvasWrapper","getDevicePixelRatio","window","devicePixelRatio","canvas","timeoutId","setTimeout","isDomNode","parentElement","has","parentRect","width","clientWidth","height","clientHeight","ratio","context2d","getContext","context2dOptions","isPlainObject","Object","assign","scale","clearTimeout","clear","context","clearRect","renderText","preparedText","String","trim","font","maxTextWidth","fontSize","toNumber","measureText","textWidth","fillText","renderImage","file","image","wRatio","hRatio","Math","min","offsetX","offsetY","drawImage","fileReader","FileReader","Promise","resolve","readAsDataURL","Event","bindOnce","Image","src","result","Content","Error","getCanvas","InitialsContent","onInput","forceLoadFonts","allFonts","document","fonts","comforterBrushFonts","filter","family","includes","all","load","getNameInput","getInitialsInput","getTextValue","name","value","initials","fillStyle","getPoint","isNil","TouchEvent","rect","target","getBoundingClientRect","touches","changedTouches","touch","length","x","clientX","left","y","clientY","top","preventScrolling","passive","TouchContent","canvasLayout","onCanvasMouseDown","onCanvasMouseUp","onCanvasMouseMove","setIsDrawing","getIsDrawing","setStartEvent","getStartEvent","beginPath","point","moveTo","closePath","currentTarget","startEvent","startPoint","currentPoint","lineTo","stroke","onCanvasMouseOut","lineWidth","LineWidth","strokeStyle","lineJoin","lineCap","getClearButton","onClearClick","onTouchMove","stopPropagation","PhotoContent","getTakePhotoButton","getUploadPhoto","onUploadPhotoClick","getFileInput","onFileChange","click","files","isFile","type","startsWith","MessageBox","alert","getButtonsLayout","getPreviewLayout","getMoreButton","onMoreButtonClick","getMoreMenu","show","PopupMenu","create","bindElement","items","SignUp","onChangeDebounced","Runtime","debounce","hasValue","getFooter","setDisabled","onSaveClickAsync","onSaveClick","onCancelClick","renderTo","TypeError","getInitialsContent","onChange","getTouchContent","getPhotoContent","InitialsTabIcon","InitialsActiveTabIcon","TouchTabIcon","TouchActiveTabIcon","PhotoTabIcon","PhotoActiveTabIcon","pixelBuffer","Uint32Array","getImageData","data","buffer","pixelsCount","some","MIN_PIXELS_REQUIRED","getValue","toBlob"],"mappings":"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"}