Your IP : 108.162.216.192


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

{"version":3,"file":"accessrights.bundle.js","sources":["../src/grid.js","../src/item/base.js","../src/item/title.js","../src/item/hint.js","../src/item/member.js","../src/item/role.js","../src/item/changer.js","../src/item/toggler.js","../src/item/controller.js","../src/item/variableselector.js","../src/item/usergrouptitle.js","../src/item/multivariable/footer.js","../src/item/multivariable/multiselector.js","../src/columnitem.js","../src/column.js","../src/section.js"],"sourcesContent":["import {BaseEvent, EventEmitter} from \"main.core.events\";\nimport {Dom, Reflection, Type, Tag, Loc, Text} from 'main.core';\nimport {Loader} from \"main.loader\";\nimport Section from \"./section\";\nimport 'ui.notification';\n\nconst BX = Reflection.namespace('BX');\n\ntype GridOptions = {\n\toptions: GridOptions;\n\trenderTo: HTMLElement;\n\tbuttonPanel: BX.UI.ButtonPanel;\n\tcomponent: string;\n\tactionSave: null;\n\tactionDelete: null;\n\tactionLoad: null;\n\tmode: 'string';\n\topenPopupEvent: null;\n\tpopupContainer: null;\n\tadditionalSaveParams: {};\n\tuserGroups: [];\n\taccessRights: [];\n\tloadParams: {};\n};\n\nexport default class Grid {\n\tstatic ACTION_SAVE = 'save';\n\tstatic ACTION_DELETE = 'delete';\n\tstatic ACTION_LOAD = 'load';\n\tstatic MODE = 'ajax';\n\n\tconstructor(options: GridOptions)\n\t{\n\t\toptions = options || {};\n\t\tthis.options = options;\n\t\tthis.renderTo = options.renderTo;\n\t\tthis.buttonPanel = BX.UI.ButtonPanel || null;\n\n\t\tthis.layout = {\n\t\t\tcontainer: null\n\t\t};\n\t\tthis.component = options.component ? options.component : null;\n\t\tthis.actionSave = options.actionSave || Grid.ACTION_SAVE;\n\t\tthis.actionDelete = options.actionDelete || Grid.ACTION_DELETE;\n\t\tthis.actionLoad = options.actionLoad || Grid.ACTION_LOAD;\n\t\tthis.mode = options.mode || Grid.MODE;\n\t\tthis.openPopupEvent = options.openPopupEvent ? options.openPopupEvent : null;\n\t\tthis.popupContainer = options.popupContainer ? options.popupContainer : null;\n\t\tthis.additionalSaveParams = options.additionalSaveParams ? options.additionalSaveParams : null;\n\t\tthis.loadParams = options.loadParams ? options.loadParams : null;\n\t\tthis.loader = null;\n\t\tthis.timer = null;\n\n\t\tthis.initData();\n\t\tif (options.userGroups)\n\t\t{\n\t\t\tthis.userGroups = options.userGroups;\n\t\t}\n\t\tif (options.accessRights)\n\t\t{\n\t\t\tthis.accessRights = options.accessRights;\n\t\t}\n\n\t\tthis.isRequested = false;\n\n\t\tthis.loadData();\n\t\tthis.bindEvents();\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:updateRole', this.updateRole.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:selectAccessItems', this.updateAccessVariationRight.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:accessOn', this.updateAccessRight.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:accessOff', this.updateAccessRight.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:update', this.adjustButtonPanel.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:addRole', this.addUserGroup.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:addRole', this.addRoleColumn.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:copyRole', this.addRoleColumn.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:copyRole', this.addUserGroup.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:removeRole', this.removeRoleColumn.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:removeRole', this.adjustButtonPanel.bind(this));\n\t\tEventEmitter.subscribe('BX.Main.SelectorV2:onGetEntityTypes', this.onGetEntityTypes.bind(this));\n\t}\n\n\tinitData(): void\n\t{\n\t\tthis.accessRights = [];\n\t\tthis.userGroups = [];\n\t\tthis.accessRightsSections = [];\n\t\tthis.headSection = null;\n\t\tthis.members = [];\n\t\tthis.columns = [];\n\t}\n\n\tfireEventReset(): void\n\t{\n\t\tEventEmitter.emit('BX.UI.AccessRights:reset', this);\n\t}\n\n\tfireEventRefresh(): void\n\t{\n\t\tEventEmitter.emit( 'BX.UI.AccessRights:refresh', this);\n\t}\n\n\tgetButtonPanel(): BX.UI.ButtonPanel\n\t{\n\t\treturn this.buttonPanel;\n\t}\n\n\tshowNotification(title): void\n\t{\n\t\tBX.UI.Notification.Center.notify({\n\t\t\tcontent: title,\n\t\t\tposition: 'top-right',\n\t\t\tautoHideDelay: 3000,\n\t\t});\n\t}\n\n\tsendActionRequest(): void\n\t{\n\t\tif (this.isRequested)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRequested = true;\n\t\tEventEmitter.emit(this, 'onBeforeSave', this);\n\n\t\tthis.timer = setTimeout(\n\t\t\t() => {\n\t\t\t\tthis.blockGrid();\n\t\t\t},\n\t\t\t1000\n\t\t);\n\n\t\tlet needReload = false;\n\t\tconst dataToSave = [];\n\t\tfor (let i = 0; i < this.userGroups.length; i++)\n\t\t{\n\t\t\tif (Text.toNumber(this.userGroups[i].id) === 0)\n\t\t\t{\n\t\t\t\tneedReload = true;\n\t\t\t}\n\n\t\t\tdataToSave.push({\n\t\t\t\taccessCodes: this.userGroups[i].accessCodes,\n\t\t\t\tid: this.userGroups[i].id,\n\t\t\t\ttitle: this.userGroups[i].title,\n\t\t\t\ttype: this.userGroups[i].type,\n\t\t\t\taccessRights: this.userGroups[i].accessRights\n\t\t\t})\n\t\t}\n\n\t\tBX.ajax.runComponentAction(\n\t\t\tthis.component,\n\t\t\tthis.actionSave,\n\t\t\t{\n\t\t\t\tmode: this.mode,\n\t\t\t\tdata: {\n\t\t\t\t\tuserGroups: dataToSave,\n\t\t\t\t\tparameters: this.additionalSaveParams\n\t\t\t\t},\n\t\t\t\t// analyticsLabel: {\n\t\t\t\t// \tviewMode: 'grid',\n\t\t\t\t// \tfilterState: 'closed'\n\t\t\t\t// }\n\t\t\t}\n\t\t).then(\n\t\t\t() => {\n\t\t\t\tif (needReload)\n\t\t\t\t{\n\t\t\t\t\tthis.reloadGrid();\n\t\t\t\t}\n\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification(Loc.getMessage('JS_UI_ACCESSRIGHTS_STTINGS_HAVE_BEEN_SAVED'));\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tthis.fireEventRefresh();\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.adjustButtonPanel()\n\t\t\t\t});\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t\tconst waitContainer = this.buttonPanel.getContainer().querySelector('.ui-btn-wait');\n\t\t\t\tDom.removeClass(waitContainer, 'ui-btn-wait');\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification('Error message');\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t\tconst waitContainer = this.buttonPanel.getContainer().querySelector('.ui-btn-wait');\n\t\t\t\tDom.removeClass(waitContainer, 'ui-btn-wait');\n\t\t\t}\n\t\t);\n\n\t\tEventEmitter.emit( 'BX.UI.AccessRights:preservation', this);\n\t}\n\n\tlock(): void\n\t{\n\t\tDom.addClass(this.getMainContainer(), '--lock');\n\t}\n\n\tunlock(): void\n\t{\n\t\tDom.removeClass(this.getMainContainer(), '--lock');\n\t}\n\n\tdeleteActionRequest(roleId): void\n\t{\n\t\tif (this.isRequested)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRequested = true;\n\n\t\tthis.timer = setTimeout(\n\t\t\t() => {\n\t\t\t\tthis.blockGrid();\n\t\t\t\t},\n\t\t\t1000\n\t\t);\n\n\t\tBX.ajax.runComponentAction(\n\t\t\tthis.component,\n\t\t\tthis.actionDelete,\n\t\t\t{\n\t\t\t\tmode: this.mode,\n\t\t\t\tdata: {\n\t\t\t\t\troleId: roleId\n\t\t\t\t},\n\t\t\t\t// analyticsLabel: {\n\t\t\t\t// \tviewMode: 'grid',\n\t\t\t\t// \tfilterState: 'closed'\n\t\t\t\t// }\n\t\t\t}\n\t\t).then(\n\t\t\t() => {\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification(Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_REMOVE'));\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tthis.isRequested = false;\n\t\t\t\tthis.showNotification('Error message');\n\t\t\t\tthis.unBlockGrid();\n\t\t\t\tclearTimeout(this.timer);\n\t\t\t}\n\t\t);\n\t}\n\n\treloadGrid(): void\n\t{\n\t\tthis.initData();\n\n\t\tBX.ajax.runComponentAction(\n\t\t\tthis.component,\n\t\t\tthis.actionLoad,\n\t\t\t{\n\t\t\t\tmode: this.mode,\n\t\t\t\tdata: {\n\t\t\t\t\tparameters: this.loadParams\n\t\t\t\t},\n\t\t\t}\n\t\t).then(\n\t\t\t(response) => {\n\t\t\t\tif (\n\t\t\t\t\tresponse.data['ACCESS_RIGHTS']\n\t\t\t\t\t&& response.data['USER_GROUPS']\n\t\t\t\t) {\n\t\t\t\t\tthis.accessRights = response.data.ACCESS_RIGHTS;\n\t\t\t\t\tthis.userGroups = response.data.USER_GROUPS;\n\t\t\t\t\tthis.loadData();\n\t\t\t\t\tthis.draw();\n\t\t\t\t}\n\t\t\t\tthis.unBlockGrid();\n\t\t\t},\n\t\t\t() => this.unBlockGrid\n\t\t);\n\t}\n\n\tblockGrid(): void\n\t{\n\t\tconst offsetTop =\n\t\t\tthis.layout.container.getBoundingClientRect().top < 0\n\t\t\t\t? '0'\n\t\t\t\t: this.layout.container.getBoundingClientRect().top\n\t\t;\n\n\t\tDom.addClass(this.layout.container, 'ui-access-rights-block');\n\t\tDom.style(this.layout.container, 'height', 'calc(100vh - ' + offsetTop  + 'px)')\n\n\t\tsetTimeout(() => {\n\t\t\tDom.style(this.layout.container, 'height', 'calc(100vh - ' + offsetTop  + 'px)')\n\t\t});\n\n\t\tthis\n\t\t\t.getLoader()\n\t\t\t.show()\n\t\t;\n\t}\n\n\tunBlockGrid(): void\n\t{\n\t\tDom.removeClass(this.layout.container, 'ui-access-rights-block');\n\t\tDom.style(this.layout.container, 'height', null)\n\n\t\tthis\n\t\t\t.getLoader()\n\t\t\t.hide()\n\t\t;\n\t}\n\n\tgetLoader(): Loader\n\t{\n\t\tif (!this.loader)\n\t\t{\n\t\t\tthis.loader = new Loader({\n\t\t\t\ttarget: this.layout.container\n\t\t\t});\n\t\t}\n\n\t\treturn this.loader;\n\t}\n\n\tremoveRoleColumn(param): void\n\t{\n\t\tthis.headSection.removeColumn(param.data);\n\t\tthis.accessRightsSections.map(\n\t\t\t(data) => {\n\t\t\t\tdata.removeColumn(param.data);\n\t\t\t}\n\t\t);\n\n\t\tconst targetIndex = this.userGroups.indexOf(param.data.userGroup);\n\t\tthis.userGroups.splice(targetIndex, 1);\n\n\t\tconst roleId = param.data.userGroup.id;\n\t\tif (roleId > 0)\n\t\t{\n\t\t\tthis.deleteActionRequest(roleId);\n\t\t}\n\t}\n\n\taddRoleColumn(event: BaseEvent): void\n\t{\n\t\tconst [param] = event.getData();\n\t\tif (!param)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst sections = this.accessRightsSections;\n\n\t\tfor (let i = 0; i < sections.length; i++)\n\t\t{\n\t\t\tparam.headSection = false;\n\t\t\tparam.newColumn = true;\n\t\t\tsections[i].addColumn(param);\n\t\t\tsections[i].scrollToRight(sections[i].getColumnsContainer().scrollWidth - sections[i].getColumnsContainer().offsetWidth, 'stop');\n\t\t}\n\n\t\tparam.headSection = true;\n\t\tparam.newColumn = true;\n\t\tthis.headSection.addColumn(param);\n\t}\n\n\taddUserGroup(event: BaseEvent): void\n\t{\n\t\tlet [options] = event.getData();\n\t\toptions = options || {};\n\t\tthis.userGroups.push(options);\n\t}\n\n\tupdateRole(event: BaseEvent): void\n\t{\n\t\tconst item = event.getData();\n\t\tconst index = this.userGroups.indexOf(item.userGroup);\n\t\tif (index >= 0)\n\t\t{\n\t\t\tthis.userGroups[index].title = item.text;\n\t\t}\n\t}\n\n\tadjustButtonPanel(): void\n\t{\n\t\tconst modifiedItems = this.getMainContainer().querySelectorAll('.ui-access-rights-column-item-changer-on');\n\t\tconst modifiedRoles = this.getMainContainer().querySelectorAll('.ui-access-rights-column-new');\n\t\tconst modifiedUsers = this.getMainContainer().querySelectorAll('.ui-access-rights-members-item-new');\n\t\tconst modifiedVariables = this.getMainContainer().querySelectorAll('.ui-tag-selector-container');\n\n\t\tif(modifiedItems.length > 0 || modifiedRoles.length > 0 || modifiedUsers.length > 0 || modifiedVariables.length > 0)\n\t\t{\n\t\t\tthis.buttonPanel.show();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.buttonPanel.hide();\n\t\t}\n\t}\n\n\tupdateAccessRight(event: BaseEvent): void\n\t{\n\t\tconst data = event.getData();\n\t\tconst userGroup = this.userGroups[this.userGroups.indexOf(data.userGroup)];\n\t\tconst accessId = data.access.id;\n\n\t\tfor (let i = 0; i < userGroup.accessRights.length; i++)\n\t\t{\n\t\t\tconst item = userGroup.accessRights[i];\n\t\t\tif (item && item.id === accessId)\n\t\t\t{\n\t\t\t\titem.value = (item.value === '0') ? '1' : '0';\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tuserGroup.accessRights.push({\n\t\t\tid: accessId,\n\t\t\tvalue: data.switcher.checked ? '1' : '0'\n\t\t});\n\t}\n\n\tupdateAccessVariationRight(event: BaseEvent): void\n\t{\n\t\tconst item = event.getData();\n\t\tconst userGroup = this.userGroups[this.userGroups.indexOf(item.userGroup)];\n\t\tconst accessId = item.access.id;\n\n\t\tconst deleteIds = [];\n\t\tfor (let i = 0; i < userGroup.accessRights.length; i++)\n\t\t{\n\t\t\tconst item = userGroup.accessRights[i];\n\t\t\tif (item && item.id === accessId)\n\t\t\t{\n\t\t\t\tdeleteIds.push(i);\n\t\t\t}\n\t\t}\n\n\t\tdeleteIds.forEach((i) => {\n\t\t\tdelete (userGroup.accessRights[i]);\n\t\t});\n\t\tconst values = item.selectedValues || [];\n\t\tvalues.forEach((value) => {\n\t\t\tuserGroup.accessRights.push({\n\t\t\t\tid: accessId,\n\t\t\t\tvalue: value\n\t\t\t});\n\t\t});\n\t}\n\n\tloadData()\n\t{\n\t\tthis.accessRights.map(\n\t\t\t(data, index) => {\n\t\t\t\tdata.id = index;\n\t\t\t\tthis.accessRightsSections.push(this.addSection(data));\n\t\t\t}\n\t\t);\n\t}\n\n\tgetColumns(): Column[]\n\t{\n\t\treturn this.columns;\n\t}\n\n\tgetSections(): Section[]\n\t{\n\t\treturn this.accessRightsSections;\n\t}\n\n\tgetUserGroups(): []\n\t{\n\t\tthis.userGroups.forEach(\n\t\t\t(item) => {\n\t\t\t\tif (item.accessCodes)\n\t\t\t\t{\n\t\t\t\t\tfor (const user in item.members)\n\t\t\t\t\t{\n\t\t\t\t\t\titem.accessCodes[user] = item.members[user].type\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\treturn this.userGroups;\n\t}\n\n\tgetHeadSection(): Section\n\t{\n\t\tif (!this.headSection)\n\t\t{\n\t\t\tthis.headSection = new Section({\n\t\t\t\theadSection: true,\n\t\t\t\tuserGroups: this.userGroups,\n\t\t\t\tgrid: this\n\t\t\t});\n\t\t}\n\n\t\treturn this.headSection;\n\t}\n\n\taddSection(options): Section\n\t{\n\t\toptions = options || {};\n\t\treturn new Section({\n\t\t\tid: options.id,\n\t\t\thint: options.sectionHint,\n\t\t\ttitle: options.sectionTitle,\n\t\t\trights: options.rights ? options.rights : [],\n\t\t\tgrid: this\n\t\t});\n\t}\n\n\tgetSectionNode(): HTMLElement\n\t{\n\t\treturn Tag.render`<div class='ui-access-rights-section'></div>`;\n\t}\n\n\tgetMainContainer(): HTMLElement\n\t{\n\t\tif (!this.layout.container)\n\t\t{\n\t\t\tthis.layout.container = Tag.render`<div class='ui-access-rights'></div>`;\n\t\t}\n\n\t\treturn this.layout.container;\n\t}\n\n\tdraw(): void\n\t{\n\t\tconst docFragmentSections = document.createDocumentFragment();\n\t\tDom.append(this.getHeadSection().render(), docFragmentSections);\n\n\t\tthis\n\t\t\t.getSections()\n\t\t\t.map((data) => {\n\t\t\t\tDom.append(data.render(), docFragmentSections);\n\t\t\t})\n\t\t;\n\n\t\tthis.layout.container = null;\n\t\tDom.append(docFragmentSections, this.getMainContainer());\n\n\t\tthis.renderTo.innerHTML = '';\n\t\tDom.append(this.getMainContainer(), this.renderTo);\n\n\t\tthis.afterRender();\n\t}\n\n\tafterRender(): void\n\t{\n\t\tthis.getHeadSection().adjustEars();\n\t\tthis\n\t\t\t.getSections()\n\t\t\t.map((data) => {\n\t\t\t\tdata.adjustEars();\n\t\t\t})\n\t\t;\n\t}\n\n\tonMemberSelect(params): void\n\t{\n\t\tconst option = Grid.buildOption(params);\n\t\tif (!option)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (params.state === 'select')\n\t\t{\n\t\t\tEventEmitter.emit('BX.UI.AccessRights:addToAccessCodes', option);\n\t\t}\n\t}\n\n\tonMemberUnselect(params)\n\t{\n\t\tconst option = Grid.buildOption(params);\n\n\t\tif (!option)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tEventEmitter.emit('BX.UI.AccessRights:removeFromAccessCodes', option);\n\t}\n\n\tonGetEntityTypes(): void\n\t{\n\t\tconst controls = BX.Main\n\t\t\t.selectorManagerV2\n\t\t\t.controls\n\t\t;\n\t\tconst selectorInstance = controls[Object.keys(controls)[0]];\n\n\t\tselectorInstance.entityTypes.USERGROUPS = {\n\t\t\toptions: {\n\t\t\t\tenableSearch: 'Y',\n\t\t\t\tsearchById: 'Y',\n\t\t\t\taddTab: 'Y',\n\t\t\t\treturnItemUrl: (selectorInstance.getOption('returnItemUrl') === 'N' ? 'N' : 'Y')\n\t\t\t}\n\t\t};\n\t}\n\n\tstatic buildOption(params): {}\n\t{\n\t\tconst controls = BX.Main\n\t\t\t.selectorManagerV2\n\t\t\t.controls\n\t\t;\n\t\tconst selectorInstance = controls[Object.keys(controls)[0]].selectorInstance;\n\t\tconst dataColumnAttribute = 'bx-data-column-id';\n\n\t\tconst node = selectorInstance.bindOptions.node;\n\n\t\tif (!node.hasAttribute(dataColumnAttribute) || Type.isUndefined(params.item))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst columnId =  node.getAttribute(dataColumnAttribute);\n\n\t\tconst accessItem = params.item.id;\n\t\tconst entityType = params.entityType;\n\t\tconst accessCodesResult = {};\n\t\taccessCodesResult[accessItem] = entityType;\n\n\t\treturn {\n\t\t\taccessCodes: accessCodesResult,\n\t\t\tcolumnId: columnId,\n\t\t\titem: params.item\n\t\t};\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI');\nnamespace.AccessRights = Grid;\n","import ColumnItemOptions from \"../columnitem\";\nimport {Tag} from 'main.core';\n\nexport default class Base {\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tthis.currentValue = options.currentValue || null;\n\t\tthis.identificator = 'col-' + Math.random();\n\t\tthis.parentContainer = options.container;\n\t\tthis.grid = options.grid;\n\t\tthis.text = options.text;\n\t\tthis.userGroup = options.userGroup;\n\t\tthis.access = options.access;\n\n\t\tthis.bindEvents();\n\t}\n\n\tbindEvents()\n\t{\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn Tag.render`<div></div>`;\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.identificator;\n\t}\n}\n","import {Dom, Event, Text, Tag} from \"main.core\";\nimport {PopupWindowManager} from \"main.popup\";\nimport Base from \"./base\";\n\nexport default class Title extends Base\n{\n\tstatic TYPE = 'title';\n\n\trender(): HTMLElement\n\t{\n\t\tconst node = Tag.render`\n\t\t\t<div \n\t\t\t\tclass='ui-access-rights-column-item-text'\n\t\t\t\tdata-id='${this.getId()}'\n\t\t\t>\n\t\t\t\t${Text.encode(this.text)}\n\t\t\t</div>\n\t\t`;\n\n\t\tEvent.bind(node, 'mouseenter', this.adjustPopupHelper.bind(this));\n\n\t\tEvent.bind(node, 'mouseleave', () => {\n\t\t\tif (this.popupHelper)\n\t\t\t{\n\t\t\t\tthis.popupHelper.close();\n\t\t\t}\n\t\t});\n\n\t\treturn node;\n\t}\n\n\tadjustPopupHelper(): void\n\t{\n\t\tconst set = this.parentContainer.cloneNode(true);\n\n\t\tDom.style(set, 'position', 'absolute');\n\t\tDom.style(set, 'display', 'inline');\n\t\tDom.style(set, 'visibility', 'hidden');\n\t\tDom.style(set, 'height', '0');\n\n\t\tDom.append(set, document.body);\n\n\t\tsetTimeout(() => {\n\t\t\tDom.remove(set);\n\t\t});\n\n\t\tif (set.offsetWidth > this.parentContainer.offsetWidth)\n\t\t{\n\t\t\tDom.style(set, 'visibility', 'visible');\n\t\t\tthis.getPopupHelper().show();\n\t\t}\n\t}\n\n\tgetPopupHelper(): Popup\n\t{\n\t\tif (!this.popupHelper)\n\t\t{\n\t\t\tthis.popupHelper = PopupWindowManager.create(\n\t\t\t\tnull,\n\t\t\t\tthis.parentContainer,\n\t\t\t\t{\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tdarkMode: true,\n\t\t\t\t\tcontent: this.text,\n\t\t\t\t\tmaxWidth: this.parentContainer.offsetWidth,\n\t\t\t\t\toffsetTop: -9,\n\t\t\t\t\toffsetLeft: 5,\n\t\t\t\t\tanimation: 'fading-slide'\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn this.popupHelper;\n\t}\n}","import {Tag} from 'main.core';\nimport ColumnItemOptions from \"../columnitem\";\nimport Base from \"./base\";\n\nexport default class Hint extends Base\n{\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.hint = options.hint;\n\t\tthis.className = options.className;\n\n\t\tthis.hintNode = null;\n\t}\n\n\trender(): ?HTMLElement\n\t{\n\t\tif (!this.hintNode && this.hint)\n\t\t{\n\t\t\tconst hintManager = BX.UI.Hint.createInstance({\n\t\t\t\tid: 'access-rights-ui-hint-' + this.getId(),\n\t\t\t\tpopupParameters: {\n\t\t\t\t\tclassName: 'ui-access-rights-popup-pointer-events ui-hint-popup',\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tdarkMode: true,\n\t\t\t\t\tmaxWidth: 280,\n\t\t\t\t\toffsetTop: 0,\n\t\t\t\t\toffsetLeft: 8,\n\t\t\t\t\tangle: true,\n\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.hintNode = Tag.render`<span class='${this.className}'></span>`;\n\t\t\tthis.hintNode.setAttribute(hintManager.attributeName, this.hint);\n\t\t\tthis.hintNode.setAttribute(hintManager.attributeHtmlName, true);\n\t\t\tthis.hintNode.setAttribute(hintManager.attributeInteractivityName, true);\n\n\t\t\thintManager.initNode(this.hintNode);\n\t\t}\n\n\t\treturn this.hintNode;\n\t}\n}\n","import {Dom, Event, Text, Tag, Type, Loc, Reflection} from 'main.core';\nimport {BaseEvent, EventEmitter} from \"main.core.events\";\nimport {PopupWindowManager} from \"main.popup\";\nimport Base from \"./base\";\nimport ColumnItemOptions from \"../columnitem\";\n\nconst BX = Reflection.namespace('BX');\n\nexport default class Member extends Base\n{\n\tstatic TYPE = 'members';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.openPopupEvent = options.openPopupEvent;\n\t\tthis.popupContainer = options.popupContainer\n\t\tthis.accessCodes = options.accessCodes || [];\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:addToAccessCodes', this.addToAccessCodes.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:removeFromAccessCodes', this.removeFromAccessCodes.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.resetNewMembers.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.resetNewMembers.bind(this));\n\t}\n\n\tgetMember(): HTMLElement\n\t{\n\t\tif (!this.member)\n\t\t{\n\t\t\tconst members = this.userGroup.members || {};\n\t\t\tconst membersFragment = document.createDocumentFragment();\n\t\t\tlet counter = 0;\n\t\t\tthis.validateVariables();\n\n\t\t\tObject.keys(members).reverse().forEach(\n\t\t\t\t(item) => {\n\t\t\t\t\tcounter++;\n\t\t\t\t\tif (counter < 7)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst user = members[item];\n\n\t\t\t\t\t\tconst userNode = Tag.render`\n\t\t\t\t\t\t\t<div class='ui-access-rights-members-item'></div>\n\t\t\t\t\t\t`;\n\n\t\t\t\t\t\tif (user.new)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDom.addClass(userNode, 'ui-access-rights-members-item-new');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (user.avatar)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst userAvatar = Tag.render`<a class='ui-access-rights-members-item-avatar' title=\"${Text.encode(user.name)}\"></a>`;\n\t\t\t\t\t\t\tDom.style(userAvatar, 'backgroundImage', 'url(\\'' + encodeURI(user.avatar) + '\\')');\n\t\t\t\t\t\t\tDom.style(userAvatar, 'backgroundSize', 'cover');\n\t\t\t\t\t\t\tDom.append(userAvatar, userNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet avatarClass = 'ui-icon-common-user';\n\n\t\t\t\t\t\t\tif (user.type === 'groups')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tavatarClass = 'ui-icon-common-user-group';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (user.type === 'sonetgroups')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tavatarClass = 'ui-icon-common-company';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (user.type === 'usergroups')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tavatarClass = 'ui-icon-common-user-group';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst emptyAvatar = Tag.render`<a class='ui-icon ui-icon-xs' title=\"${Text.encode(user.name)}\"><i></i></a>`;\n\t\t\t\t\t\t\tDom.addClass(emptyAvatar, avatarClass);\n\t\t\t\t\t\t\tDom.append(emptyAvatar, userNode);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tDom.append(userNode, membersFragment);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tDom.append(this.getAddUserToRole(), membersFragment);\n\n\t\t\tthis.member = Tag.render`<div class='ui-access-rights-members'>${membersFragment}</div>`;\n\t\t\tEvent.bind(this.member, 'click', this.adjustPopupUserControl.bind(this));\n\t\t}\n\n\t\treturn this.member;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getMember();\n\t}\n\n\tresetNewMembers(): void\n\t{\n\t\tconst newMembers = this.getMember().querySelectorAll('.ui-access-rights-members-item-new');\n\n\t\tnewMembers.forEach((item) => {\n\t\t\tDom.removeClass(item, 'ui-access-rights-members-item-new');\n\t\t})\n\t}\n\n\tvalidateVariables(): void\n\t{\n\t\tif (Type.isUndefined(this.userGroup.accessCodes))\n\t\t{\n\t\t\tthis.userGroup.accessCodes = [];\n\t\t}\n\t}\n\n\tupdateMembers(): void\n\t{\n\t\tDom.remove(this.member);\n\t\tthis.member = null;\n\n\t\tDom.append(this.getMember(), this.parentContainer);\n\t\tthis.grid.getButtonPanel().show();\n\t}\n\n\taddToAccessCodes(event: BaseEvent): void\n\t{\n\t\tconst params = event.getData();\n\n\t\tif (params.columnId !== this.getId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstKey = Object.keys(params.accessCodes)[0];\n\t\tconst type = params.accessCodes[firstKey].toUpperCase();\n\t\tthis.userGroup.accessCodes = Object.keys(this.accessCodes);\n\n\t\tconst item = params.item;\n\n\t\tif (!Type.isUndefined(item) && Object.keys(item).length)\n\t\t{\n\t\t\tthis.userGroup.members[firstKey] = {\n\t\t\t\tid: item.entityId,\n\t\t\t\tname: item.name,\n\t\t\t\tavatar: item.avatar,\n\t\t\t\turl: '',\n\t\t\t\tnew: true,\n\t\t\t\ttype: type.toLowerCase()\n\t\t\t};\n\n\t\t\tthis.updateMembers();\n\t\t}\n\n\t\tthis.userGroup.accessCodes = [];\n\n\t\tfor (const key in this.userGroup.members)\n\t\t{\n\t\t\tthis.userGroup.accessCodes[key] = this.userGroup.members[key].type;\n\t\t}\n\t}\n\n\tremoveFromAccessCodes(event): void\n\t{\n\t\tconst params = event.data;\n\n\t\tif (params.columnId !== this.identificator)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstKey = Object.keys(params.accessCodes)[0];\n\n\t\tdelete this.userGroup.members[firstKey];\n\t\tthis.updateMembers();\n\n\t\tthis.userGroup.accessCodes = [];\n\n\t\tfor (const key in this.userGroup.members)\n\t\t{\n\t\t\tthis.userGroup.accessCodes[key] = this.userGroup.members[key].type;\n\t\t}\n\t}\n\n\tadjustPopupUserControl(): void\n\t{\n\t\tconst users = [];\n\t\tconst groups = [];\n\t\tconst departments = [];\n\t\tconst sonetgroups = [];\n\n\t\tfor (const item in this.userGroup.members)\n\t\t{\n\t\t\tthis.userGroup.members[item].key = item;\n\n\t\t\tif (this.userGroup.members[item].type === 'users')\n\t\t\t{\n\t\t\t\tusers.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'groups')\n\t\t\t{\n\t\t\t\tgroups.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'usergroups')\n\t\t\t{\n\t\t\t\tgroups.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'departments')\n\t\t\t{\n\t\t\t\tdepartments.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t\telse if (this.userGroup.members[item].type === 'sonetgroups')\n\t\t\t{\n\t\t\t\tsonetgroups.push(this.userGroup.members[item]);\n\t\t\t}\n\t\t}\n\n\t\tconst counterUsers = [];\n\n\t\tfor (const key in this.userGroup.members)\n\t\t{\n\t\t\tcounterUsers.push(this.userGroup.members[key])\n\t\t}\n\n\t\tif (counterUsers.length === 0)\n\t\t{\n\t\t\tthis.showUserSelectorPopup();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getUserPopup(users, groups, departments, sonetgroups).show();\n\t}\n\n\tgetAddUserToRole(): HTMLElement\n\t{\n\t\tif (!this.addUserToRole)\n\t\t{\n\t\t\tthis.addUserToRole = Tag.render`\n\t\t\t\t<span \n\t\t\t\t\tclass='ui-access-rights-members-item ui-access-rights-members-item-add'\n\t\t\t\t\tbx-data-column-id='${this.getId()}'\n\t\t\t\t>\n\t\t\t\t</span>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.addUserToRole;\n\t}\n\n\tgetUserPopup(users, groups, departments, sonetgroups): Popup\n\t{\n\t\tif (!this.popupUsers)\n\t\t{\n\t\t\tusers = users || [];\n\t\t\tgroups = groups || [];\n\t\t\tdepartments = departments || [];\n\t\t\tsonetgroups = sonetgroups || [];\n\n\t\t\tconst content = Tag.render`<div class='ui-access-rights-popup-toggler'></div>`;\n\n\t\t\tconst contentTitle = Tag.render`<div class='ui-access-rights-popup-toggler-title'></div>`;\n\n\t\t\tconst onTitleClick = (event: BaseEvent) => {\n\t\t\t\tconst node = event.target;\n\t\t\t\tactivate(node);\n\t\t\t\tadjustSlicker(node);\n\t\t\t};\n\n\t\t\tif (groups.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item ui-access-rights-popup-toggler-title-item-active'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-groups'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_USER_GROUPS')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tif (departments.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-departments'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_DEPARTMENTS')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tif (users.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-users'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_STAFF')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tif (sonetgroups.length > 0)\n\t\t\t{\n\t\t\t\tconst groupTitleItem = Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-title-item'\n\t\t\t\t\t\tdata-role='ui-access-rights-popup-toggler-content-sonetgroups'\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_SOCNETGROUP')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(groupTitleItem, 'click', onTitleClick.bind(this));\n\n\t\t\t\tDom.append(groupTitleItem, contentTitle);\n\t\t\t}\n\n\t\t\tDom.append(Tag.render`<div class='ui-access-rights-popup-toggler-title-slicker'></div>`, contentTitle);\n\n\t\t\tDom.append(contentTitle, content);\n\n\t\t\tif (groups.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(groups, 'groups'), content);\n\t\t\t}\n\n\t\t\tif (departments.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(departments, 'departments'), content);\n\t\t\t}\n\n\t\t\tif (users.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(users, 'users'), content);\n\t\t\t}\n\n\t\t\tif (sonetgroups.length > 0)\n\t\t\t{\n\t\t\t\tDom.append(this.getUserPopupTogglerGroup(sonetgroups, 'sonetgroups'), content);\n\t\t\t}\n\n\t\t\tconst footer = Tag.render`<div class='ui-access-rights-popup-toggler-footer'></div>`;\n\n\t\t\tconst footerLink = Tag.render`\n\t\t\t\t<div class='ui-access-rights-popup-toggler-footer-link'>\n\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_ADD')}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t\tEvent.bind(footerLink, 'click', (event: Event) => {\n\t\t\t\tthis.popupUsers.close();\n\t\t\t\tthis.showUserSelectorPopup();\n\t\t\t\tevent.preventDefault()\n\t\t\t});\n\n\t\t\tDom.append(footerLink, footer);\n\t\t\tDom.append(footer, content);\n\n\t\t\tconst adjustSlicker = (node) => {\n\t\t\t\tif (!Type.isDomNode(node))\n\t\t\t\t{\n\t\t\t\t\tnode = content.querySelector('.ui-access-rights-popup-toggler-title-item-active');\n\t\t\t\t}\n\t\t\t\tconst slicker = content.querySelector('.ui-access-rights-popup-toggler-title-slicker');\n\t\t\t\tDom.style(slicker, 'left', node.offsetLeft + 'px');\n\t\t\t\tDom.style(slicker, 'width', node.offsetWidth + 'px');\n\t\t\t};\n\n\t\t\tconst activate = (node) => {\n\t\t\t\tconst titles = content.querySelectorAll('.ui-access-rights-popup-toggler-title-item');\n\t\t\t\tconst contents = content.querySelectorAll('.ui-access-rights-popup-toggler-content');\n\n\t\t\t\tconst target = content.querySelector('.' + node.getAttribute('data-role'));\n\n\t\t\t\ttitles.forEach((item) => {\n\t\t\t\t\tDom.removeClass(item, 'ui-access-rights-popup-toggler-title-item-active');\n\t\t\t\t});\n\n\t\t\t\tcontents.forEach((item) => {\n\t\t\t\t\tDom.style(item, 'display', 'none');\n\t\t\t\t});\n\n\t\t\t\tDom.style(target, 'display', 'block');\n\t\t\t\tDom.addClass(node, 'ui-access-rights-popup-toggler-title-item-active');\n\t\t\t};\n\n\t\t\tthis.popupUsers = PopupWindowManager.create(\n\t\t\t\tnull,\n\t\t\t\tthis.getAddUserToRole(),\n\t\t\t\t{\n\t\t\t\t\tcontentPadding: 10,\n\t\t\t\t\tanimation: 'fading-slide',\n\t\t\t\t\tcontent,\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\toffsetTop: 5,\n\t\t\t\t\tangle: {\n\t\t\t\t\t\tposition: 'top',\n\t\t\t\t\t\toffset: 35,\n\t\t\t\t\t},\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tcloseEsc: true,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupShow: () => {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tconst firstActiveNode = content.querySelector('.ui-access-rights-popup-toggler-title-item');\n\n\t\t\t\t\t\t\t\tif (!firstActiveNode)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tDom.addClass(firstActiveNode, 'ui-access-rights-popup-toggler-title-item-active');\n\t\t\t\t\t\t\t\tadjustSlicker(firstActiveNode);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\t\tthis.popupUsers.destroy();\n\t\t\t\t\t\t\tthis.popupUsers = null;\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\n\t\treturn this.popupUsers;\n\t}\n\n\tgetUserPopupTogglerGroup(array, type)\n\t{\n\t\tconst node = Tag.render`<div class='ui-access-rights-popup-toggler-content'></div>`;\n\t\tDom.addClass(node, 'ui-access-rights-popup-toggler-content-' + type);\n\n\t\tarray.forEach((item) => {\n\t\t\tconst toggler = Tag.render`<div class='ui-access-rights-popup-toggler-content-item'></div>`;\n\n\t\t\tif (item.avatar)\n\t\t\t{\n\t\t\t\tconst avatar = Tag.render`\n\t\t\t\t\t<a \n\t\t\t\t\t\tclass='ui-access-rights-popup-toggler-content-item-userpic'\n\t\t\t\t\t\ttitle=\"${Text.encode(item.name)}\"\n\t\t\t\t\t></a>\n\t\t\t\t`;\n\t\t\t\tDom.style(avatar, 'backgroundImage', 'url(\\'' + encodeURI(item.avatar) + '\\')');\n\t\t\t\tDom.style(avatar, 'backgroundSize', 'cover');\n\t\t\t\tDom.append(avatar, toggler);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet iconClass = '';\n\n\t\t\t\tif (type === 'users')\n\t\t\t\t{\n\t\t\t\t\ticonClass = 'ui-icon-common-user';\n\t\t\t\t}\n\t\t\t\telse if (type === 'groups')\n\t\t\t\t{\n\t\t\t\t\ticonClass = 'ui-icon-common-user-group';\n\t\t\t\t}\n\t\t\t\telse if (type === 'sonetgroups' || type === 'departments')\n\t\t\t\t{\n\t\t\t\t\ticonClass = 'ui-icon-common-company';\n\t\t\t\t}\n\n\t\t\t\tconst emptyAvatar = Tag.render`<a class='ui-icon ui-icon-sm' title=\"${Text.encode(item.name)}\"><i></i></a>`;\n\t\t\t\tDom.addClass(emptyAvatar, iconClass);\n\t\t\t\tDom.style(emptyAvatar, 'margin', '5px 10px');\n\t\t\t\tDom.append(emptyAvatar, toggler);\n\t\t\t}\n\n\t\t\tDom.append(\n\t\t\t\tTag.render`<div class='ui-access-rights-popup-toggler-content-item-name'>${Text.encode(item.name)}</div>`,\n\t\t\t\ttoggler\n\t\t\t);\n\n\t\t\tconst removeButton = Tag.render`\n\t\t\t\t<div class='ui-access-rights-popup-toggler-content-item-remove'>${Loc.getMessage('JS_UI_ACCESSRIGHTS_REMOVE')}</div>\n\t\t\t`;\n\n\t\t\tEvent.bind(removeButton, 'click', () => {\n\t\t\t\tthis.userGroup.accessCodes.splice(this.userGroup.accessCodes.indexOf(item.key), 1);\n\n\t\t\t\tdelete this.userGroup.accessCodes[item.key];\n\t\t\t\tdelete this.userGroup.members[item.key];\n\n\t\t\t\tDom.remove(toggler);\n\n\t\t\t\tthis.updateMembers();\n\t\t\t\tthis.adjustPopupUserControl();\n\t\t\t\tthis.grid.getButtonPanel().show();\n\t\t\t});\n\n\t\t\tDom.append(removeButton, toggler);\n\n\t\t\tDom.append(toggler, node);\n\t\t});\n\n\t\treturn node;\n\t}\n\n\tshowUserSelectorPopup(): void\n\t{\n\t\tconst selectorInstance = BX.Main\n\t\t\t.selectorManagerV2.controls[this.popupContainer]\n\t\t\t?.selectorInstance\n\t\t;\n\n\t\tif (selectorInstance)\n\t\t{\n\t\t\tselectorInstance.itemsSelected = {};\n\t\t}\n\n\t\tBX.onCustomEvent(this.openPopupEvent, [{\n\t\t\tid: this.popupContainer,\n\t\t\tbindNode: this.getAddUserToRole()\n\t\t}]);\n\n\t\tBX.onCustomEvent('BX.Main.SelectorV2:reInitDialog', [{\n\t\t\tselectorId: this.popupContainer,\n\t\t\tselectedItems: this.userGroup.accessCodes\n\t\t}]);\n\t}\n}\n","import {EventEmitter} from \"main.core.events\";\nimport {Dom, Event, Text, Tag, Loc} from 'main.core';\nimport Base from \"./base\";\n\nimport {PopupWindowManager} from \"main.popup\";\nimport ColumnItemOptions from \"../columnitem\";\n\nexport default class Role extends Base\n{\n\tstatic TYPE = 'role';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.column = options.column;\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEvent.bind(window, 'click', (event: Event) => {\n\t\t\tif (\n\t\t\t\tevent.target === this.getRole()\n\t\t\t\t|| event.target.closest('.ui-access-rights-role')\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.updateRole();\n\t\t\tthis.offRoleEditMode();\n\t\t});\n\n\t\tEventEmitter.subscribe(this.grid, 'onBeforeSave', () => {\n\t\t\tthis.updateRole();\n\t\t\tthis.offRoleEditMode();\n\t\t});\n\t}\n\n\tgetRole(): HTMLElement\n\t{\n\t\tif (this.role)\n\t\t{\n\t\t\treturn this.role;\n\t\t}\n\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:preservation', this.updateRole.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:preservation', this.offRoleEditMode.bind(this));\n\n\t\tthis.roleInput = Tag.render`\n\t\t\t\t<input\n\t\t\t\t\ttype='text'\n\t\t\t\t\tclass='ui-access-rights-role-input'\n\t\t\t\t\tvalue='${Text.encode(this.text)}'\n\t\t\t\t\tplaceholder='${Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_NAME')}'\n\t\t\t\t/>\n\t\t\t`;\n\n\t\tEvent.bind(this.roleInput, 'keydown', (event: Event) => {\n\t\t\tif (event.keyCode === 13)\n\t\t\t{\n\t\t\t\tthis.updateRole();\n\t\t\t\tthis.offRoleEditMode();\n\t\t\t}\n\t\t});\n\n\t\tEvent.bind(this.roleInput, 'input', () => {\n\t\t\tthis.grid.getButtonPanel().show();\n\t\t});\n\n\t\tthis.roleValue = Tag.render`<div class='ui-access-rights-role-value'>${Text.encode(this.text)}</div>`;\n\n\t\tconst editControl = Tag.render`<div class='ui-access-rights-role-edit'></div>`;\n\t\tEvent.bind(editControl, 'click', this.onRoleEditMode.bind(this));\n\n\t\tconst removeControl = Tag.render`<div class='ui-access-rights-role-remove'></div>`;\n\t\tEvent.bind(removeControl, 'click', this.showPopupConfirm.bind(this));\n\n\t\tconst roleControlWrapper = Tag.render`\n\t\t\t\t<div class='ui-access-rights-role-controls'>\n\t\t\t\t\t${editControl}\n\t\t\t\t\t${removeControl}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\tthis.role = Tag.render`\n\t\t\t\t<div class='ui-access-rights-role'>\n\t\t\t\t\t${this.roleInput}\n\t\t\t\t\t${this.roleValue}\n\t\t\t\t\t${roleControlWrapper}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\treturn this.role;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getRole();\n\t}\n\n\tonRoleEditMode()\n\t{\n\t\tDom.addClass(this.getRole(), 'ui-access-rights-role-edit-mode');\n\t\tthis.roleInput.focus();\n\t}\n\n\tshowPopupConfirm()\n\t{\n\t\tif (!this.popupConfirm)\n\t\t{\n\t\t\t/**@ToDO check role*/\n\t\t\tthis.popupConfirm = PopupWindowManager.create(\n\t\t\t\tnull,\n\t\t\t\tthis.getRole(),\n\t\t\t\t{\n\t\t\t\t\twidth: 250,\n\t\t\t\t\toverlay: true,\n\t\t\t\t\tcontentPadding: 10,\n\t\t\t\t\tcontent: Loc.getMessage('JS_UI_ACCESSRIGHTS_POPUP_REMOVE_THIS_ROLE'),\n\t\t\t\t\tanimation: 'fading-slide'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.popupConfirm.setButtons([\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('JS_UI_ACCESSRIGHTS_POPUP_REMOVE'),\n\t\t\t\t\tclassName: 'ui-btn ui-btn-sm ui-btn-primary',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: () => {\n\t\t\t\t\t\t\tthis.popupConfirm.close();\n\t\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:removeRole', this);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('JS_UI_ACCESSRIGHTS_POPUP_CANCEL'),\n\t\t\t\t\tclassName: 'ui-btn ui-btn-sm ui-btn-link',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: () => {\n\t\t\t\t\t\t\tthis.popupConfirm.close();\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\n\t\tthis.popupConfirm.show();\n\t}\n\n\tupdateRole(): void\n\t{\n\t\tif (this.roleValue.innerHTML === this.roleInput.value || this.roleInput.value === '')\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.text = this.roleInput.value;\n\t\tthis.userGroup = this.column.getUserGroup();\n\n\t\tthis.roleValue.innerText = this.roleInput.value;\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:updateRole', this);\n\t}\n\n\toffRoleEditMode(): void\n\t{\n\t\tDom.removeClass(this.getRole(), 'ui-access-rights-role-edit-mode')\n\t}\n}\n","import {EventEmitter} from \"main.core.events\";\nimport {Dom, Tag} from \"main.core\";\nimport Base from \"./base\";\nimport ColumnItemOptions from \"../columnitem\";\n\nexport default class Changer extends Base\n{\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.isModify = false;\n\t}\n\n\tgetChanger(): HTMLElement\n\t{\n\t\tif (!this.changer)\n\t\t{\n\t\t\tthis.changer = Tag.render`<a class='ui-access-rights-column-item-changer'></a>`\n\t\t}\n\n\t\treturn this.changer;\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.offChanger.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.refreshStatus.bind(this));\n\t}\n\n\trefreshStatus(): void\n\t{\n\t\tDom.removeClass(this.getChanger(), 'ui-access-rights-column-item-changer-on')\n\t}\n\n\toffChanger(): void\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.refreshStatus();\n\t\t\t});\n\t\t}\n\t}\n\n\tadjustChanger(): void\n\t{\n\t\tthis.isModify = !this.isModify;\n\n\t\tDom.toggleClass(this.getChanger(), 'ui-access-rights-column-item-changer-on');\n\t}\n}\n","import ColumnItemOptions from \"../columnitem\";\nimport {EventEmitter} from \"main.core.events\";\nimport \"ui.switcher\";\nimport {Dom} from \"main.core\";\nimport Changer from \"./changer\";\n\nexport default class Toggler extends Changer\n{\n\tstatic TYPE = 'toggler';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.switcher = new BX.UI.Switcher(\n\t\t\t{\n\t\t\t\tsize: 'small',\n\t\t\t\tchecked: this.currentValue === '1',\n\t\t\t\thandlers: {\n\t\t\t\t\tchecked: () => {\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:accessOn', this);\n\t\t\t\t\t},\n\t\t\t\t\tunchecked: () => {\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:accessOff', this);\n\t\t\t\t\t},\n\t\t\t\t\ttoggled: () => {\n\t\t\t\t\t\tthis.adjustChanger();\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\toffChanger(): void\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.switcher.check(!this.switcher.isChecked());\n\t\t}\n\n\t\tsuper.offChanger();\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tDom.append(this.switcher.getNode(), this.getChanger());\n\n\t\treturn this.getChanger();\n\t}\n}\n","import {EventEmitter} from \"main.core.events\";\nimport {Event, Text, Tag, Loc, Dom} from 'main.core';\nimport Base from \"./base\";\n\nimport { Menu} from \"main.popup\";\nimport Role from \"./role\";\n\nexport default class Controller extends Base\n{\n\trender(): HTMLElement\n\t{\n\t\tif (!this.controller)\n\t\t{\n\t\t\tthis.controllerLink = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-controller-link'>\n\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_CREATE_ROLE')}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tthis.controllerMenu = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-controller-link'>\n\t\t\t\t\t${Loc.getMessage('JS_UI_ACCESSRIGHTS_COPY_ROLE')}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tEvent.bind(this.controllerMenu, 'click', () => {\n\t\t\t\tif (this.popupMenu)\n\t\t\t\t{\n\t\t\t\t\tthis.popupMenu.close();\n\t\t\t\t}\n\t\t\t\telse if (this.grid.getUserGroups().length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.getPopupMenu(this.grid.getUserGroups()).show();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.toggleControllerMenu();\n\n\t\t\tthis.controller = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-controller'>\n\t\t\t\t\t${this.controllerLink}\n\t\t\t\t\t${this.controllerMenu}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tEvent.bind(this.controllerLink, 'click', () => {\n\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:addRole', [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: '0',\n\t\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_NAME'),\n\t\t\t\t\t\taccessRights: [],\n\t\t\t\t\t\tmembers: [],\n\t\t\t\t\t\taccessCodes: [],\n\t\t\t\t\t\ttype: Role.TYPE\n\t\t\t\t\t}\n\t\t\t\t]);\n\n\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\n\t\t\t\tthis.toggleControllerMenu();\n\t\t\t\tthis.grid.lock();\n\t\t\t});\n\n\t\t\tEventEmitter.subscribe('BX.UI.AccessRights.ColumnItem:removeRole', this.toggleControllerMenu.bind(this));\n\t\t}\n\n\t\treturn this.controller;\n\t}\n\n\tgetPopupMenu(options): Menu\n\t{\n\t\tif (!options)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst menuItems = [];\n\n\t\toptions.map(\n\t\t\t(data) => {\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: Text.encode(data.title),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tconst accessRightsCopy = Object.assign([], data.accessRights);\n\t\t\t\t\t\tconst accessCodesCopy =  Object.assign([], data.accessCodes);\n\n\t\t\t\t\t\tEventEmitter.emit(\n\t\t\t\t\t\t\t'BX.UI.AccessRights.ColumnItem:copyRole',\n\t\t\t\t\t\t\t[{\n\t\t\t\t\t\t\t\tid: '0',\n\t\t\t\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLE_NAME'),\n\t\t\t\t\t\t\t\taccessRights: accessRightsCopy,\n\t\t\t\t\t\t\t\taccessCodes: accessCodesCopy,\n\t\t\t\t\t\t\t\ttype: Role.TYPE,\n\t\t\t\t\t\t\t\tmembers: data.members\n\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t\t\t\t\t\tthis.popupMenu.destroy();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\treturn this.popupMenu = new Menu(\n\t\t\t'ui_accessrights_copy_role_list',\n\t\t\tthis.controllerMenu,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tthis.popupMenu.destroy();\n\t\t\t\t\t\tthis.popupMenu = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\ttoggleControllerMenu()\n\t{\n\t\tif (this.grid.getUserGroups().length === 0)\n\t\t{\n\t\t\tDom.addClass(this.controllerMenu, 'ui-access-rights-column-item-controller-link--disabled');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.controllerMenu, 'ui-access-rights-column-item-controller-link--disabled');\n\t\t}\n\t}\n}\n","import ColumnItemOptions from \"../columnitem\";\nimport {Event, Text, Tag, Dom, Loc} from 'main.core';\n\nimport {PopupMenu} from \"main.popup\";\nimport Changer from \"./changer\";\nimport {BaseEvent, EventEmitter} from \"main.core.events\";\n\ntype VariableItem = {\n\tid: number,\n\ttitle: string,\n}\n\nexport default class VariableSelector extends Changer\n{\n\tstatic TYPE = 'variables';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.selectedValues = [this.currentValue];\n\n\t\tthis.variables = options.variables || [];\n\t}\n\n\tbindEvents()\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.reset.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.refresh.bind(this));\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tconst title = this.getSelected()?.title ?? Loc.getMessage('JS_UI_ACCESSRIGHTS_ADD');\n\t\tconst variablesValue = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-text-link'>\n\t\t\t\t\t${Text.encode(title)}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\tEvent.bind(variablesValue, 'click', this.showVariablesPopup.bind(this));\n\n\t\tDom.append(variablesValue, this.getChanger());\n\n\t\treturn this.getChanger();\n\t}\n\n\trefresh(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.currentValue = this.selectedValues[0];\n\t\t\tthis.reset();\n\t\t}\n\t}\n\n\treset(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.selectedValues = [this.currentValue];\n\t\t\tthis.getChanger().innerHTML = '';\n\t\t\tthis.adjustChanger();\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tgetSelected(): VariableItem\n\t{\n\t\tconst selected = this.variables.filter(variable => this.selectedValues.includes(variable.id));\n\n\t\treturn selected[0];\n\t}\n\n\tshowVariablesPopup(event: Event): void\n\t{\n\t\tconst menuItems = [];\n\n\t\tthis.variables.map((data) => {\n\t\t\tmenuItems.push({\n\t\t\t\tid: data.id,\n\t\t\t\ttext: data.title,\n\t\t\t\tonclick: this.select.bind(this),\n\t\t\t});\n\t\t});\n\n\t\tPopupMenu.show(\n\t\t\t'ui-access-rights-column-item-popup-variables',\n\t\t\tevent.target,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tautoHide: true,\n\t\t\t\tevents : {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tPopupMenu.destroy('ui-access-rights-column-item-popup-variables');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tselect(event: BaseEvent, item: MenuItem)\n\t{\n\t\tthis.selectedValues = [item.id];\n\n\t\titem\n\t\t\t.getMenuWindow()\n\t\t\t?.close()\n\t\t;\n\n\t\tthis.getChanger().innerHTML = '';\n\t\tthis.render();\n\t\tthis.adjustChanger();\n\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:selectAccessItems', this);\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t}\n}\n","import {Tag, Text} from \"main.core\";\nimport Title from \"./title\";\n\nexport default class UserGroupTitle extends Title\n{\n\tstatic TYPE = 'userGroupTitle';\n\n\trender(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div \n\t\t\t\tclass='ui-access-rights-column-item-text'\n\t\t\t\tdata-id='${this.getId()}'\n\t\t\t>\n\t\t\t\t${Text.encode(this.text)}\n\t\t\t</div>\n\t\t`;\n\t}\n}","import {DefaultFooter, Dialog, Item} from 'ui.entity-selector';\nimport {Dom, Loc, Tag, Event} from 'main.core';\n\nexport default class Footer extends DefaultFooter\n{\n\tconstructor(dialog: Dialog, options: { [option: string]: any })\n\t{\n\t\tsuper(dialog, options);\n\n\t\tthis.selectAllButton = Tag.render`<div class=\"ui-selector-footer-link ui-selector-search-footer-label--hide\">${Loc.getMessage('JS_UI_ACCESSRIGHTS_ALL_SELECT_LABEL')}</div>`;\n\t\tEvent.bind(this.selectAllButton, 'click', this.selectAll.bind(this));\n\t\tthis.deselectAllButton = Tag.render`<div class=\"ui-selector-footer-link ui-selector-search-footer-label--hide\">${Loc.getMessage('JS_UI_ACCESSRIGHTS_ALL_DESELECT_LABEL')}</div>`;\n\t\tEvent.bind(this.deselectAllButton, 'click', this.deselectAll.bind(this));\n\n\t\tthis.getDialog().subscribe('Item:onSelect', this.onItemStatusChange.bind(this));\n\t\tthis.getDialog().subscribe('Item:onDeselect', this.onItemStatusChange.bind(this));\n\t}\n\n\tgetContent(): HTMLElement\n\t{\n\t\tthis.toggleSelectButtons();\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-selector-search-footer-box\">\n\t\t\t\t${this.selectAllButton}\n\t\t\t\t${this.deselectAllButton}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\ttoggleSelectButtons(): void\n\t{\n\t\tif (this.getDialog().getSelectedItems().length === this.getDialog().getItems().length)\n\t\t{\n\t\t\tif (Dom.hasClass(this.deselectAllButton, 'ui-selector-search-footer-label--hide'))\n\t\t\t{\n\t\t\t\tDom.addClass(this.selectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t\t\tDom.removeClass(this.deselectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t\t}\n\t\t}\n\t\telse if (Dom.hasClass(this.selectAllButton, 'ui-selector-search-footer-label--hide'))\n\t\t{\n\t\t\tDom.addClass(this.deselectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t\tDom.removeClass(this.selectAllButton, 'ui-selector-search-footer-label--hide');\n\t\t}\n\t}\n\n\tselectAll(): void\n\t{\n\t\tif (this.getDialog().getSelectedItems().length === this.getDialog().getItems().length)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis\n\t\t\t.getDialog()\n\t\t\t.getItems()\n\t\t\t.forEach((item: Item) => {\n\t\t\t\titem.select();\n\t\t\t})\n\t\t;\n\t}\n\n\tdeselectAll(): void\n\t{\n\t\tthis\n\t\t\t.getDialog()\n\t\t\t.getSelectedItems()\n\t\t\t.forEach((item: Item) => {\n\t\t\t\titem.deselect();\n\t\t\t})\n\t\t;\n\t}\n\n\tonItemStatusChange(): void\n\t{\n\t\tthis.toggleSelectButtons();\n\t}\n}","import ColumnItemOptions from \"../../columnitem\";\nimport {Event, Text, Tag, Dom, Type, Loc} from 'main.core';\nimport {Dialog, Item} from 'ui.entity-selector';\n\nimport Changer from \"../changer\";\nimport {EventEmitter} from \"main.core.events\";\nimport Footer from \"./footer\";\nimport 'ui.hint';\n\ntype VariableItem = {\n\tid: number,\n\ttitle: string,\n}\n\nexport default class MultiSelector extends Changer\n{\n\tstatic TYPE = 'multivariables';\n\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tsuper(options);\n\t\tthis.variables = options.variables || [];\n\t\tthis.enableSearch = options.enableSearch ?? false;\n\t\tthis.placeholder = options.placeholder || '';\n\t\tthis.hintTitle = options.hintTitle || '';\n\t\tthis.allSelectedCode = Text.toNumber(options.allSelectedCode || -1);\n\t\tthis.showAvatars = options.showAvatars ?? true;\n\t\tthis.compactView = options.compactView ?? false;\n\t\tthis.currentValue = Type.isArray(options.currentValue) ? options.currentValue : [];\n\t\tthis.currentValue = this.currentValue.map(value => Text.toNumber(value));\n\t\tthis.selectedValues = this.currentValue;\n\n\t\tthis.variables = this.variables.map((item) => {\n\t\t\titem.entityId = item.entityId || 'editor-right-item';\n\t\t\titem.tabs = 'recents';\n\t\t\treturn item;\n\t\t});\n\n\t\tthis.selector = this.createSelector();\n\t}\n\n\tbindEvents()\n\t{\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:reset', this.reset.bind(this));\n\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.refresh.bind(this));\n\t}\n\n\tcreateSelector(): Dialog\n\t{\n\t\treturn new Dialog({\n\t\t\theight: 300,\n\t\t\tid: this.getId(),\n\t\t\tcontext: 'editor-right-items',\n\t\t\tenableSearch: this.enableSearch,\n\t\t\tmultiple: true,\n\t\t\tdropdownMode: true,\n\t\t\tcompactView: this.compactView,\n\t\t\tshowAvatars: this.showAvatars,\n\t\t\tselectedItems: this.getSelected(),\n\t\t\tsearchOptions: {\n\t\t\t\tallowCreateItem: false\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\t'Item:onSelect': this.setSelectedInputs.bind(this),\n\t\t\t\t'Item:onDeselect': this.setSelectedInputs.bind(this),\n\t\t\t},\n\t\t\tentities: [\n\t\t\t\t{\n\t\t\t\t\tid: 'editor-right-item',\n\t\t\t\t}\n\t\t\t],\n\t\t\titems: this.variables,\n\t\t\tfooter: Footer,\n\t\t});\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tlet title = '';\n\t\tif (this.includesSelected(this.allSelectedCode))\n\t\t{\n\t\t\ttitle = Loc.getMessage('JS_UI_ACCESSRIGHTS_ALL_ACCEPTED');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst titles = [];\n\t\t\tthis.getSelected()?.forEach((item) => {\n\t\t\t\ttitles.push(item.title)\n\t\t\t});\n\n\t\t\tif (titles.length > 0 )\n\t\t\t{\n\t\t\t\tconst firstItem = titles[0];\n\t\t\t\ttitle =\n\t\t\t\t\ttitles.length - 1 > 0\n\t\t\t\t\t\t? Loc.getMessage(\n\t\t\t\t\t\t\t'JS_UI_ACCESSRIGHTS_HAS_SELECTED_ITEMS',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'#FIRST_ITEM_NAME#':\n\t\t\t\t\t\t\t\t\tfirstItem.length > 10\n\t\t\t\t\t\t\t\t\t\t? firstItem.slice(0, 10) + '...'\n\t\t\t\t\t\t\t\t\t\t: firstItem\n\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t'#COUNT_REST_ITEMS#': titles.length - 1,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: firstItem\n\t\t\t\t;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttitle = Loc.getMessage('JS_UI_ACCESSRIGHTS_ADD');\n\t\t\t}\n\t\t}\n\n\t\tlet hint = '';\n\t\tif (this.selector.getSelectedItems().length > 0)\n\t\t{\n\t\t\tconst hintTitle =\n\t\t\t\tType.isStringFilled(this.hintTitle)\n\t\t\t\t\t? this.hintTitle\n\t\t\t\t\t: Loc.getMessage('JS_UI_ACCESSRIGHTS_SELECTED_ITEMS_TITLE')\n\t\t\t;\n\t\t\thint += '<p>' + hintTitle + ':</p>';\n\t\t\thint += '<ul>';\n\t\t\tthis.selector.getSelectedItems().forEach((item: Item) => hint += '<li>' + Text.encode(item.getTitle()))\n\t\t\thint += '</ul>';\n\t\t}\n\n\t\tconst variablesValue = Tag.render`\n\t\t\t\t<div class='ui-access-rights-column-item-text-link' data-hint-html data-hint-no-icon data-hint=\"${Text.encode(hint)}\">\n\t\t\t\t\t${Text.encode(title)}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\tEvent.bind(variablesValue, 'click', this.showSelector.bind(this));\n\n\t\tDom.append(variablesValue, this.getChanger());\n\n\t\tBX.UI.Hint.init(this.getChanger());\n\t\treturn this.getChanger();\n\t}\n\n\trefresh(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.currentValue = this.selectedValues;\n\t\t\tthis.reset();\n\t\t}\n\t}\n\n\treset(): HTMLElement\n\t{\n\t\tif (this.isModify)\n\t\t{\n\t\t\tthis.selectedValues = this.currentValue;\n\t\t\tthis.selector = this.createSelector();\n\t\t\tthis.getChanger().innerHTML = '';\n\t\t\tthis.adjustChanger();\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tgetSelected(): ?VariableItem[]\n\t{\n\t\tif (this.includesSelected(this.allSelectedCode))\n\t\t{\n\t\t\treturn this.variables;\n\t\t}\n\n\t\treturn this.variables.filter(variable => this.includesSelected(variable.id));\n\t}\n\n\tincludesSelected(item): boolean\n\t{\n\t\treturn this.selectedValues.includes(Text.toNumber(item));\n\t}\n\n\tshowSelector(event: Event): void\n\t{\n\t\tthis.selector.show();\n\t}\n\n\tsetSelectedInputs(): void\n\t{\n\t\tconst selected = this.selector.getSelectedItems();\n\t\tthis.selectedValues = [];\n\t\tif (selected.length === this.variables.length)\n\t\t{\n\t\t\tthis.selectedValues.push(this.allSelectedCode);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tselected.forEach((item) => {\n\t\t\t\tthis.selectedValues.push(Text.toNumber(item.id));\n\t\t\t});\n\t\t}\n\n\t\tthis.getChanger().innerHTML = '';\n\t\tif (!this.isModify)\n\t\t{\n\t\t\tthis.adjustChanger();\n\t\t}\n\n\t\tthis.render();\n\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:update', this);\n\t\tEventEmitter.emit('BX.UI.AccessRights.ColumnItem:selectAccessItems', this);\n\t}\n}\n","import Column from \"./column\";\nimport Grid from \"./grid\";\nimport {Dom, Reflection, Tag} from 'main.core';\nimport Title from './item/title';\nimport Hint from './item/hint';\nimport Member from './item/member';\nimport Role from './item/role';\nimport Toggler from './item/toggler';\nimport Controller from './item/controller';\nimport VariableSelector from './item/variableselector';\nimport UserGroupTitle from './item/usergrouptitle';\nimport MultiSelector from \"./item/multivariable/multiselector\";\n\ntype ColumnItemOptions = {\n\tgrid: Grid;\n\tid: number;\n\ttype: string;\n\ttext: string;\n\tplaceholder: string;\n\thintTitle: string;\n\thint: string;\n\tvariables: [];\n\tenableSearch: boolean;\n\tshowAvatars: boolean;\n\tcompactView: boolean;\n\tuserGroup: null;\n\taccess: null;\n\tcurrentValue: null;\n\tcontroller: null;\n\topenPopupEvent: null;\n\tpopupContainer: null;\n\taccessCodes: null;\n\tallSelectedCode: number;\n\tcontainer: HTMLElement;\n\tcolumn: Column;\n};\n\nexport default class ColumnItem {\n\tconstructor(options: ColumnItemOptions)\n\t{\n\t\tthis.options = options;\n\t\tthis.type = options.type ? options.type : null;\n\t\tthis.hint = options.hint ? options.hint : null;\n\t\tthis.controller = options.controller ? options.controller : null;\n\t\tthis.column = options.column;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tlet item = null;\n\t\tconst container = Tag.render`<div class='ui-access-rights-column-item'></div>`;\n\t\tthis.options.container = container;\n\t\tif (this.type === Role.TYPE)\n\t\t{\n\t\t\titem = new Role(this.options);\n\t\t\tif (this.column.newColumn)\n\t\t\t{\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\titem.onRoleEditMode();\n\t\t\t\t\titem.roleInput.value = '';\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\telse if (this.type === Member.TYPE)\n\t\t{\n\t\t\titem = new Member(this.options);\n\t\t}\n\t\telse if (this.type === Title.TYPE)\n\t\t{\n\t\t\titem = new Title(this.options);\n\t\t}\n\t\telse if (this.type === VariableSelector.TYPE)\n\t\t{\n\t\t\titem = new VariableSelector(this.options);\n\t\t}\n\t\telse if (this.type === MultiSelector.TYPE)\n\t\t{\n\t\t\titem = new MultiSelector(this.options);\n\t\t}\n\t\telse if (this.type === Toggler.TYPE)\n\t\t{\n\t\t\titem = new Toggler(this.options);\n\t\t}\n\n\t\tif (item)\n\t\t{\n\t\t\tDom.append(item.render(), container);\n\t\t}\n\n\t\tif (this.hint)\n\t\t{\n\t\t\tconst hintOptions = {\n\t\t\t\tclassName: 'ui-access-rights-column-item-notify',\n\t\t\t\t...this.options\n\t\t\t};\n\t\t\tDom.append((new Hint(hintOptions)).render(), container);\n\t\t}\n\n\t\tif (this.type === UserGroupTitle.TYPE)\n\t\t{\n\t\t\tDom.append((new UserGroupTitle(this.options)).render(), container);\n\t\t}\n\n\t\tif (this.controller)\n\t\t{\n\t\t\tDom.append((new Controller(this.options)).render(), container);\n\t\t}\n\n\t\treturn container;\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI.AccessRights');\nnamespace.ColumnItem = ColumnItem;\n","import {EventEmitter} from \"main.core.events\";\nimport {Dom, Event, Reflection, Tag} from 'main.core';\n\nimport Section from \"./section\";\nimport ColumnItem from \"./columnitem\";\nimport Role from \"./item/role\";\nimport Member from \"./item/member\";\nimport Title from \"./item/title\";\nimport UserGroupTitle from \"./item/usergrouptitle\";\nimport Toggler from \"./item/toggler\";\nimport VariableSelector from \"./item/variableselector\";\nimport MultiSelector from \"./item/multivariable/multiselector\";\n\ntype ColumnOptions = {\n\tgrid: Grid;\n\titems: [];\n\tuserGroup: [];\n\taccessCodes: [];\n\tsection: Section;\n\theadSection: Section;\n\tnewColumn: Column;\n\topenPopupEvent: string;\n\tpopupContainer: HTMLElement;\n};\n\nexport default class Column {\n\tconstructor(options: ColumnOptions)\n\t{\n\t\tthis.layout = {\n\t\t\tcontainer: null\n\t\t};\n\t\tthis.grid = options.grid ? options.grid : null;\n\t\tthis.items = options.items ? options.items : [];\n\t\tthis.userGroup = options.userGroup ? options.userGroup : null;\n\t\tthis.accessCodes = options.accessCodes ? options.accessCodes : null;\n\t\tthis.section = options.section ? options.section : null;\n\t\tthis.headSection = options.headSection;\n\t\tthis.newColumn = options.newColumn ? options.newColumn : null;\n\t\tthis.openPopupEvent = options.grid.openPopupEvent ? options.grid.openPopupEvent : null;\n\t\tthis.popupContainer = options.grid.popupContainer ? options.grid.popupContainer : null;\n\t}\n\n\tgetItem(options): ColumnItem\n\t{\n\t\toptions = options || {};\n\n\t\tlet param = {};\n\n\t\tif (options.type === UserGroupTitle.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\ttext: options.title,\n\t\t\t\tcontroller: options.controller\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === Title.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\tid: options.id,\n\t\t\t\ttype: options.type,\n\t\t\t\thint: options.hint,\n\t\t\t\ttext: options.title,\n\t\t\t\tcontroller: options.controller\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === Toggler.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\taccess: options.access\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === VariableSelector.TYPE || options.type === MultiSelector.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\ttext: options.title,\n\t\t\t\tvariables: options.variables,\n\t\t\t\taccess: options.access\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === MultiSelector.TYPE)\n\t\t{\n\t\t\tparam.allSelectedCode = options.allSelectedCode;\n\t\t\tparam.enableSearch = options.enableSearch;\n\t\t\tparam.showAvatars = options.showAvatars;\n\t\t\tparam.compactView = options.compactView;\n\t\t\tparam.hintTitle = options.hintTitle;\n\t\t}\n\n\t\tif (options.type === Role.TYPE)\n\t\t{\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\ttext: options.title\n\t\t\t}\n\t\t}\n\n\t\tif (options.type === Member.TYPE)\n\t\t{\n\t\t\tconst accessCodes = [];\n\n\t\t\tfor (const item in options.members)\n\t\t\t{\n\t\t\t\taccessCodes[item] = options.members[item].type;\n\t\t\t}\n\n\t\t\tparam = {\n\t\t\t\ttype: options.type,\n\t\t\t\taccessCodes: accessCodes\n\t\t\t}\n\t\t}\n\n\t\tparam.column = this;\n\t\tparam.userGroup = this.userGroup;\n\t\tparam.openPopupEvent = this.openPopupEvent;\n\t\tparam.popupContainer = this.popupContainer;\n\t\tparam.currentValue = null;\n\n\t\tparam.grid = this.grid;\n\n\t\tif (\n\t\t\toptions.type === VariableSelector.TYPE\n\t\t\t|| options.type === MultiSelector.TYPE\n\t\t\t|| options.type === Toggler.TYPE\n\t\t)\n\t\t{\n\t\t\tconst accessId = param.access.id.toString();\n\t\t\tconst accessRights = param.userGroup?.accessRights ?? [];\n\n\t\t\tfor (let i = 0; i < accessRights.length; i++)\n\t\t\t{\n\t\t\t\tif (accessId === accessRights[i].id.toString())\n\t\t\t\t{\n\t\t\t\t\tif (options.type === MultiSelector.TYPE)\n\t\t\t\t\t{\n\t\t\t\t\t\tparam.currentValue = param.currentValue ?? [];\n\t\t\t\t\t\tparam.currentValue.push(accessRights[i].value);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tparam.currentValue = accessRights[i].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new ColumnItem(param);\n\t}\n\n\tgetUserGroup(): []\n\t{\n\t\treturn this.userGroup;\n\t}\n\n\tremove(): void\n\t{\n\t\tif (Dom.hasClass(this.layout.container, 'ui-access-rights-column-new'))\n\t\t{\n\t\t\tthis.resetClassNew();\n\t\t}\n\n\t\tDom.addClass(this.layout.container,'ui-access-rights-column-remove')\n\t\tDom.style(this.layout.container, 'width', this.layout.container.offsetWidth + 'px')\n\n\t\tEvent.bind(this.layout.container, 'animationend', () => {\n\t\t\tDom.style(this.layout.container, 'minWidth', '0px')\n\t\t\tDom.style(this.layout.container, 'maxWidth', '0px')\n\t\t});\n\n\n\t\tsetTimeout(() => {\n\t\t\tDom.remove(this.layout.container);\n\t\t}, 500);\n\t}\n\n\tresetClassNew(): void\n\t{\n\t\tDom.removeClass(this.layout.container,'ui-access-rights-column-new');\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tif (!this.layout.container)\n\t\t{\n\t\t\tconst itemsFragment = document.createDocumentFragment();\n\n\t\t\tif (this.headSection)\n\t\t\t{\n\t\t\t\tthis.userGroup.type = Role.TYPE;\n\t\t\t\tDom.append(this.getItem(this.userGroup).render(), itemsFragment);\n\n\t\t\t\tthis.userGroup.type = Member.TYPE;\n\t\t\t\tDom.append(this.getItem(this.userGroup).render(), itemsFragment);\n\t\t\t}\n\n\t\t\tthis.items.map(\n\t\t\t\t(data) => {\n\t\t\t\t\tconst item = this.getItem(data);\n\t\t\t\t\tDom.append(item.render(), itemsFragment);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.layout.container = Tag.render`<div class='ui-access-rights-column'></div>`;\n\t\t\tif (this.newColumn)\n\t\t\t{\n\t\t\t\tDom.addClass('ui-access-rights-column-new', this.layout.container)\n\t\t\t}\n\n\t\t\tEventEmitter.subscribe('BX.UI.AccessRights:refresh', this.resetClassNew.bind(this));\n\n\t\t\tDom.append(itemsFragment, this.layout.container);\n\n\t\t\treturn this.layout.container;\n\t\t}\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI.AccessRights');\nnamespace.Column = Column;","import {EventEmitter, BaseEvent} from \"main.core.events\";\nimport {PopupMenu} from 'main.popup';\nimport {Dom, Event, Reflection, Text, Tag, Loc} from 'main.core';\nimport Grid from \"./grid\";\nimport Column from \"./column\";\nimport Title from \"./item/title\";\nimport UserGroupTitle from \"./item/usergrouptitle\";\nimport VariableSelector from \"./item/variableselector\";\nimport MultiSelector from \"./item/multivariable/multiselector\";\nimport Hint from \"./item/hint\";\n\ntype SectionOptions = {\n\tid: string;\n\theadSection: Section;\n\ttitle: string;\n\thint: string;\n\trights: [];\n\tuserGroups: [];\n\tgrid: Grid;\n};\n\nexport default class Section {\n\tconstructor(options: SectionOptions)\n\t{\n\t\tthis.id = options.id ?? null;\n\t\tthis.headSection = options.headSection ? options.headSection : null;\n\t\tthis.title = options.title;\n\t\tthis.hint = options.hint;\n\t\tthis.rights = options.rights ? options.rights : [];\n\t\tthis.userGroups = options.userGroups ? options.userGroups : [];\n\t\tthis.grid = options.grid ? options.grid : null;\n\n\t\tthis.layout = {\n\t\t\ttitle: null,\n\t\t\theadColumn: null,\n\t\t\tcolumns: null,\n\t\t\tcontent: null,\n\t\t\tearLeft: null,\n\t\t\tearRight: null\n\t\t};\n\n\t\tthis.scroll = 0;\n\t\tthis.earTimer = null;\n\t\tthis.earLeftTimer = null;\n\t\tthis.earRightTimer = null;\n\t\tthis.columns = [];\n\n\t\tthis.bindEvents();\n\t}\n\n\tbindEvents(): void\n\t{\n\t\tEventEmitter.subscribe(this.grid, 'AccessRights.Section:scroll', (event: BaseEvent) => {\n\t\t\tconst [object] = event.getData();\n\t\t\tif (this.title !== object.title)\n\t\t\t{\n\t\t\t\tthis.getColumnsContainer().scrollLeft = object.getScroll()\n\t\t\t}\n\t\t\tobject.adjustEars();\n\t\t\tPopupMenu.destroy('ui-access-rights-column-item-popup-variables');\n\t\t});\n\n\t\tEvent.bind(window, 'resize', this.adjustEars.bind(this));\n\t}\n\n\tgetGrid(): Grid\n\t{\n\t\treturn this.grid;\n\t}\n\n\taddColumn(param): void\n\t{\n\t\tif(!param)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst options = Object.assign({}, param);\n\t\toptions.userGroup = param;\n\t\tconst column = this.getColumn(options);\n\n\t\tDom.append(column.render(), this.layout.columns)\n\t\tthis.columns.push(column);\n\t}\n\n\tgetColumn(options): Column\n\t{\n\t\tconst controls = [];\n\n\t\tthis.rights.map(\n\t\t\t(data) => {\n\t\t\t\tconst isVariable = (data.type === VariableSelector.TYPE || data.type === MultiSelector.TYPE);\n\n\t\t\t\tcontrols.push({\n\t\t\t\t\ttype: data.type,\n\t\t\t\t\ttitle: isVariable ? data.title : null,\n\t\t\t\t\thint: data.hint,\n\t\t\t\t\tvariables: isVariable ? data.variables : [],\n\t\t\t\t\tenableSearch: isVariable ? data.enableSearch : null,\n\t\t\t\t\tshowAvatars: isVariable ? data.showAvatars : false,\n\t\t\t\t\tcompactView: isVariable ? data.compactView : false,\n\t\t\t\t\thintTitle: isVariable ? data.hintTitle : null,\n\t\t\t\t\tallSelectedCode: isVariable ? data.allSelectedCode : null,\n\t\t\t\t\taccess: data\n\t\t\t\t})\n\t\t\t}\n\t\t);\n\n\t\treturn new Column({\n\t\t\titems: controls,\n\t\t\tuserGroup: options.userGroup ? options.userGroup : null,\n\t\t\tsection: this,\n\t\t\theadSection: options.headSection,\n\t\t\tgrid: this.grid,\n\t\t\tnewColumn: options.newColumn ? options.newColumn : null\n\t\t});\n\t}\n\n\tremoveColumn(param): void\n\t{\n\t\tif (!param)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.columns.length; i++)\n\t\t{\n\t\t\tif (param.userGroup === this.columns[i].userGroup)\n\t\t\t{\n\t\t\t\tthis.columns[i].remove();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\taddHeadColumn(): Column\n\t{\n\t\tlet titles = [];\n\n\t\tif(!this.headSection)\n\t\t{\n\t\t\tthis.rights.map((data) => {\n\t\t\t\ttitles.push({\n\t\t\t\t\tid: data.id,\n\t\t\t\t\ttype: Title.TYPE,\n\t\t\t\t\ttitle: data.title,\n\t\t\t\t\thint: data.hint\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\n\t\tif (this.headSection)\n\t\t{\n\t\t\ttitles = [\n\t\t\t\t{\n\t\t\t\t\ttype: UserGroupTitle.TYPE,\n\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_ROLES'),\n\t\t\t\t\tcontroller: true\n\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: UserGroupTitle.TYPE,\n\t\t\t\t\ttitle: Loc.getMessage('JS_UI_ACCESSRIGHTS_EMPLOYEES_AND_DEPARTMENTS'),\n\t\t\t\t\tcontroller: false\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\n\t\tconst column = new Column({\n\t\t\titems: titles,\n\t\t\tsection: this,\n\t\t\tgrid: this.grid\n\t\t});\n\n\t\tDom.append(column.render(), this.layout.headColumn);\n\n\t\treturn column;\n\t}\n\n\tgetColumnsContainer(): HTMLElement\n\t{\n\t\tif (!this.layout.columns)\n\t\t{\n\t\t\tconst column = Tag.render`<div class='ui-access-rights-section-wrapper'></div>`;\n\t\t\tEvent.bind(column, 'scroll', this.adjustScroll.bind(this));\n\t\t\tthis.layout.columns = column;\n\t\t}\n\n\t\treturn this.layout.columns;\n\t}\n\n\tgetTitleNode(): HTMLElement\n\t{\n\t\tconst node = Tag.render`<div class='ui-access-rights-section-title'>${Text.encode(this.title)}</div>`;\n\n\t\tif (this.hint)\n\t\t{\n\t\t\tconst hintNode = new Hint({\n\t\t\t\thint: this.hint,\n\t\t\t\tclassName: 'ui-access-rights-section-title-hint'\n\t\t\t});\n\t\t\tnode.appendChild(hintNode.render());\n\t\t}\n\n\t\treturn node;\n\t}\n\n\tadjustScroll(): void\n\t{\n\t\tif (Text.toNumber(this.scroll) !== Text.toNumber(this.getColumnsContainer().scrollLeft))\n\t\t{\n\t\t\tthis.scroll = this.getColumnsContainer().scrollLeft;\n\t\t\tEventEmitter.emit(this.grid, \"AccessRights.Section:scroll\", [this]);\n\t\t}\n\t}\n\n\tadjustEars(): void\n\t{\n\t\tconst container = this.getColumnsContainer();\n\t\tconst scroll = container.scrollLeft;\n\n\t\tconst isLeftVisible = scroll > 0;\n\t\tconst isRightVisible = container.scrollWidth > (Math.round(scroll + container.offsetWidth));\n\n\t\tthis.getContentContainer().classList[isLeftVisible ? 'add' : 'remove']('ui-access-rights-section-ear-left-shown');\n\t\tthis.getContentContainer().classList[isRightVisible ? 'add' : 'remove']('ui-access-rights-section-ear-right-shown');\n\t}\n\n\tgetContentContainer(): HTMLElement\n\t{\n\t\tif (!this.layout.content)\n\t\t{\n\t\t\tthis.layout.content = Tag.render`\n\t\t\t\t<div class='ui-access-rights-section-content'>\n\t\t\t\t\t${this.getColumnsContainer()}\n\t\t\t\t\t${this.getEarLeft()}\n\t\t\t\t\t${this.getEarRight()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.content;\n\t}\n\n\tgetEarLeft(): HTMLElement\n\t{\n\t\tif (!this.layout.earLeft)\n\t\t{\n\t\t\tthis.layout.earLeft = Tag.render`<div class='ui-access-rights-section-ear-left'></div>`;\n\t\t\tEvent.bind(this.layout.earLeft, 'mouseenter', () => {\n\t\t\t\tthis.stopAutoScroll();\n\t\t\t\tthis.earLeftTimer =\tsetTimeout(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.scrollToLeft()\n\t\t\t\t\t},\n\t\t\t\t\t110\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tEvent.bind(this.layout.earLeft, 'mouseleave', () => {\n\t\t\t\tclearTimeout(this.earLeftTimer);\n\t\t\t\tthis.stopAutoScroll()\n\t\t\t});\n\t\t}\n\n\t\treturn this.layout.earLeft;\n\t}\n\n\tgetEarRight(): HTMLElement\n\t{\n\t\tif (!this.layout.earRight)\n\t\t{\n\t\t\tthis.layout.earRight = Tag.render`<div class='ui-access-rights-section-ear-right'></div>`;\n\t\t\tEvent.bind(this.layout.earRight, 'mouseenter', () => {\n\t\t\t\tthis.stopAutoScroll();\n\t\t\t\tthis.earRightTimer = setTimeout(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.scrollToRight()\n\t\t\t\t\t},\n\t\t\t\t\t110\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tEvent.bind(this.layout.earRight, 'mouseleave', () => {\n\t\t\t\tclearTimeout(this.earRightTimer);\n\t\t\t\tthis.stopAutoScroll()\n\t\t\t});\n\t\t}\n\n\t\treturn this.layout.earRight;\n\t}\n\n\tscrollToRight(param: number, stop): void\n\t{\n\t\tconst interval = param ? 2 : 20;\n\n\t\tthis.earTimer = setInterval(\n\t\t\t() => {\n\t\t\t\tthis.getColumnsContainer().scrollLeft += 10;\n\t\t\t\tif(param && param <= this.getColumnsContainer().scrollLeft)\n\t\t\t\t{\n\t\t\t\t\t this.stopAutoScroll();\n\t\t\t\t}\n\t\t\t},\n\t\t\tinterval\n\t\t);\n\n\t\tif(stop === 'stop')\n\t\t{\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tthis.stopAutoScroll();\n\t\t\t\t\tthis.getGrid().unlock();\n\t\t\t\t},\n\t\t\t\tparam * 2\n\t\t\t)\n\t\t}\n\t}\n\n\tscrollToLeft(): void\n\t{\n\t\tthis.earTimer = setInterval(\n\t\t\t() => {\n\t\t\t\tthis.getColumnsContainer().scrollLeft -= 10;\n\t\t\t},\n\t\t\t20\n\t\t)\n\t}\n\n\tstopAutoScroll(): void\n\t{\n\t\tclearInterval(this.earTimer);\n\t}\n\n\tgetScroll(): number\n\t{\n\t\treturn this.scroll;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tconst title = this.title ? this.getTitleNode() : null;\n\n\t\tconst sectionContainer = Tag.render`\n\t\t\t<div class='ui-access-rights-section'>\n\t\t\t\t${title}\n\t\t\t\t${this.getMainContainer()}\n\t\t\t</div>\n\t\t`;\n\n\t\tif (this.headSection)\n\t\t{\n\t\t\tDom.addClass(sectionContainer, 'ui-access-rights--head-section')\n\t\t}\n\n\t\tthis.addHeadColumn();\n\n\t\tconst columnsFragment = document.createDocumentFragment();\n\n\t\tconst userGroups = this.grid.getUserGroups() ?? [];\n\t\tfor (let i = 0; i < userGroups.length; i++)\n\t\t{\n\t\t\tconst column = this.getColumn(\n\t\t\t\t{\n\t\t\t\t\theadSection: this.headSection ? this.headSection : null,\n\t\t\t\t\tuserGroup: userGroups[i]\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.columns.push(column);\n\t\t\tDom.append(column.render(), columnsFragment);\n\t\t}\n\n\t\tDom.append(columnsFragment, this.getColumnsContainer());\n\n\t\treturn sectionContainer;\n\t}\n\n\tgetMainContainer(): HTMLElement\n\t{\n\t\tthis.layout.headColumn = Tag.render`<div class='ui-access-rights-section-head'></div>`;\n\t\treturn Tag.render`\n\t\t\t<div class='ui-access-rights-section-container'>\n\t\t\t\t${this.layout.headColumn}\n\t\t\t\t${this.getContentContainer()}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n\nconst namespace = Reflection.namespace('BX.UI.AccessRights');\nnamespace.Section = Section;\n"],"names":["BX","Reflection","namespace","Grid","options","renderTo","buttonPanel","UI","ButtonPanel","layout","container","component","actionSave","ACTION_SAVE","actionDelete","ACTION_DELETE","actionLoad","ACTION_LOAD","mode","MODE","openPopupEvent","popupContainer","additionalSaveParams","loadParams","loader","timer","initData","userGroups","accessRights","isRequested","loadData","bindEvents","EventEmitter","subscribe","updateRole","bind","updateAccessVariationRight","updateAccessRight","adjustButtonPanel","addUserGroup","addRoleColumn","removeRoleColumn","onGetEntityTypes","accessRightsSections","headSection","members","columns","emit","title","Notification","Center","notify","content","position","autoHideDelay","setTimeout","blockGrid","needReload","dataToSave","i","length","Text","toNumber","id","push","accessCodes","type","ajax","runComponentAction","data","parameters","then","reloadGrid","showNotification","Loc","getMessage","unBlockGrid","fireEventRefresh","clearTimeout","waitContainer","getContainer","querySelector","Dom","removeClass","addClass","getMainContainer","roleId","response","ACCESS_RIGHTS","USER_GROUPS","draw","offsetTop","getBoundingClientRect","top","style","getLoader","show","hide","Loader","target","param","removeColumn","map","targetIndex","indexOf","userGroup","splice","deleteActionRequest","event","getData","sections","newColumn","addColumn","scrollToRight","getColumnsContainer","scrollWidth","offsetWidth","item","index","text","modifiedItems","querySelectorAll","modifiedRoles","modifiedUsers","modifiedVariables","accessId","access","value","switcher","checked","deleteIds","forEach","values","selectedValues","addSection","user","Section","grid","hint","sectionHint","sectionTitle","rights","Tag","render","docFragmentSections","document","createDocumentFragment","append","getHeadSection","getSections","innerHTML","afterRender","adjustEars","params","option","buildOption","state","controls","Main","selectorManagerV2","selectorInstance","Object","keys","entityTypes","USERGROUPS","enableSearch","searchById","addTab","returnItemUrl","getOption","dataColumnAttribute","node","bindOptions","hasAttribute","Type","isUndefined","columnId","getAttribute","accessItem","entityType","accessCodesResult","AccessRights","Base","currentValue","identificator","Math","random","parentContainer","Title","getId","encode","Event","adjustPopupHelper","popupHelper","close","set","cloneNode","body","remove","getPopupHelper","PopupWindowManager","create","autoHide","darkMode","maxWidth","offsetLeft","animation","Hint","className","hintNode","hintManager","createInstance","popupParameters","angle","setAttribute","attributeName","attributeHtmlName","attributeInteractivityName","initNode","Member","addToAccessCodes","removeFromAccessCodes","resetNewMembers","member","membersFragment","counter","validateVariables","reverse","userNode","avatar","userAvatar","name","encodeURI","avatarClass","emptyAvatar","getAddUserToRole","adjustPopupUserControl","getMember","newMembers","getButtonPanel","firstKey","toUpperCase","entityId","url","toLowerCase","updateMembers","key","users","groups","departments","sonetgroups","counterUsers","showUserSelectorPopup","getUserPopup","addUserToRole","popupUsers","contentTitle","onTitleClick","activate","adjustSlicker","groupTitleItem","getUserPopupTogglerGroup","footer","footerLink","preventDefault","isDomNode","slicker","titles","contents","contentPadding","padding","offset","closeEsc","events","onPopupShow","firstActiveNode","onPopupClose","destroy","array","toggler","iconClass","removeButton","itemsSelected","onCustomEvent","bindNode","selectorId","selectedItems","Role","column","window","getRole","closest","offRoleEditMode","role","roleInput","keyCode","roleValue","editControl","onRoleEditMode","removeControl","showPopupConfirm","roleControlWrapper","focus","popupConfirm","width","overlay","setButtons","Button","click","getUserGroup","innerText","Changer","isModify","changer","offChanger","refreshStatus","getChanger","toggleClass","Toggler","Switcher","size","handlers","unchecked","toggled","adjustChanger","check","isChecked","getNode","Controller","controller","controllerLink","controllerMenu","popupMenu","getUserGroups","getPopupMenu","toggleControllerMenu","TYPE","lock","menuItems","onclick","accessRightsCopy","assign","accessCodesCopy","Menu","VariableSelector","variables","reset","refresh","getSelected","variablesValue","showVariablesPopup","selected","filter","variable","includes","select","PopupMenu","getMenuWindow","UserGroupTitle","Footer","dialog","selectAllButton","selectAll","deselectAllButton","deselectAll","getDialog","onItemStatusChange","toggleSelectButtons","getSelectedItems","getItems","hasClass","deselect","DefaultFooter","MultiSelector","placeholder","hintTitle","allSelectedCode","showAvatars","compactView","isArray","tabs","selector","createSelector","Dialog","height","context","multiple","dropdownMode","searchOptions","allowCreateItem","setSelectedInputs","entities","items","includesSelected","firstItem","slice","isStringFilled","getTitle","showSelector","init","ColumnItem","hintOptions","Column","section","toString","resetClassNew","itemsFragment","getItem","headColumn","earLeft","earRight","scroll","earTimer","earLeftTimer","earRightTimer","object","scrollLeft","getScroll","getColumn","isVariable","adjustScroll","appendChild","isLeftVisible","isRightVisible","round","getContentContainer","classList","getEarLeft","getEarRight","stopAutoScroll","scrollToLeft","stop","interval","setInterval","getGrid","unlock","clearInterval","getTitleNode","sectionContainer","addHeadColumn","columnsFragment"],"mappings":"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"}