Your IP : 3.17.76.237


Current Path : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/js/ui/accessrights/dist/
Upload File :
Current File : /var/www/admin_ftp_12/data/www/httpdocs/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.isChecked() ? '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_MSGVER_1')\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","constructor","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","fireEventReset","emit","fireEventRefresh","getButtonPanel","showNotification","title","Notification","Center","notify","content","position","autoHideDelay","sendActionRequest","setTimeout","blockGrid","needReload","dataToSave","i","length","Text","toNumber","id","push","accessCodes","type","ajax","runComponentAction","data","parameters","then","reloadGrid","Loc","getMessage","unBlockGrid","clearTimeout","waitContainer","getContainer","querySelector","Dom","removeClass","lock","addClass","getMainContainer","unlock","deleteActionRequest","roleId","response","ACCESS_RIGHTS","USER_GROUPS","draw","offsetTop","getBoundingClientRect","top","style","getLoader","show","hide","Loader","target","param","removeColumn","map","targetIndex","indexOf","userGroup","splice","event","getData","sections","newColumn","addColumn","scrollToRight","getColumnsContainer","scrollWidth","offsetWidth","item","index","text","modifiedItems","querySelectorAll","modifiedRoles","modifiedUsers","modifiedVariables","accessId","access","value","switcher","isChecked","deleteIds","forEach","values","selectedValues","addSection","getColumns","getSections","getUserGroups","user","getHeadSection","Section","grid","hint","sectionHint","sectionTitle","rights","getSectionNode","Tag","render","docFragmentSections","document","createDocumentFragment","append","innerHTML","afterRender","adjustEars","onMemberSelect","params","option","buildOption","state","onMemberUnselect","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","getId","Title","encode","Event","adjustPopupHelper","popupHelper","close","set","cloneNode","body","remove","getPopupHelper","PopupWindowManager","create","autoHide","darkMode","maxWidth","offsetLeft","animation","TYPE","Hint","className","hintNode","hintManager","createInstance","popupParameters","angle","setAttribute","attributeName","attributeHtmlName","attributeInteractivityName","initNode","Member","addToAccessCodes","removeFromAccessCodes","resetNewMembers","getMember","member","membersFragment","counter","validateVariables","reverse","userNode","new","avatar","userAvatar","name","encodeURI","avatarClass","emptyAvatar","getAddUserToRole","adjustPopupUserControl","newMembers","updateMembers","firstKey","toUpperCase","entityId","url","toLowerCase","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","getChanger","changer","offChanger","refreshStatus","adjustChanger","toggleClass","Toggler","Switcher","size","checked","handlers","unchecked","toggled","check","getNode","Controller","controller","controllerLink","controllerMenu","popupMenu","getPopupMenu","toggleControllerMenu","menuItems","onclick","accessRightsCopy","assign","accessCodesCopy","Menu","VariableSelector","variables","reset","refresh","getSelected","variablesValue","showVariablesPopup","selected","filter","variable","includes","select","PopupMenu","getMenuWindow","UserGroupTitle","Footer","DefaultFooter","dialog","selectAllButton","selectAll","deselectAllButton","deselectAll","getDialog","onItemStatusChange","getContent","toggleSelectButtons","getSelectedItems","getItems","hasClass","deselect","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","getItem","toString","resetClassNew","itemsFragment","headColumn","earLeft","earRight","scroll","earTimer","earLeftTimer","earRightTimer","object","scrollLeft","getScroll","getGrid","getColumn","isVariable","addHeadColumn","adjustScroll","getTitleNode","appendChild","isLeftVisible","isRightVisible","round","getContentContainer","classList","getEarLeft","getEarRight","stopAutoScroll","scrollToLeft","stop","interval","setInterval","clearInterval","sectionContainer","columnsFragment"],"mappings":"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"}