@paperbits/core
Version:
Paperbits core components.
38 lines (30 loc) • 1.06 kB
text/typescript
import * as ko from "knockout";
import template from "./role-selector.html";
import { Component, Event, Param } from "@paperbits/common/ko/decorators";
import { RoleModel } from "@paperbits/common/user";
({
selector: "role-selector",
template: template
})
export class RoleSelector {
constructor() {
this.availableRoles = ko.observableArray();
this.selectedRoles = ko.observableArray();
}
()
public availableRoles: ko.ObservableArray<RoleModel>;
()
public selectedRoles: ko.ObservableArray<RoleModel>;
()
public readonly onSelect: (role: RoleModel[]) => void;
public selectRole(role: RoleModel): void {
const roles = [role]; // TODO: Adjust if multiple roles need to be applied.
this.selectedRoles(roles);
if (this.onSelect) {
this.onSelect(roles);
}
}
public isSelected(role: RoleModel): boolean {
return this.selectedRoles().some(x => x.key === role.key);
}
}