UNPKG

@quick-game/cli

Version:

Command line interface for rapid qg development

124 lines 5.2 kB
// Copyright 2021 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as Common from '../../core/common/common.js'; import * as i18n from '../../core/i18n/i18n.js'; import * as IssuesManager from '../../models/issues_manager/issues_manager.js'; import * as Adorners from '../../ui/components/adorners/adorners.js'; import * as IconButton from '../../ui/components/icon_button/icon_button.js'; import * as IssueCounter from '../../ui/components/issue_counter/issue_counter.js'; import * as UI from '../../ui/legacy/legacy.js'; import * as Components from './components/components.js'; const UIStrings = { /** * @description Menu entry for hiding all current Page Errors. */ hideAllCurrentPageErrors: 'Hide all current Page Errors', /** * @description Menu entry for hiding all current Breaking Changes. */ hideAllCurrentBreakingChanges: 'Hide all current Breaking Changes', /** * @description Menu entry for hiding all current Page Errors. */ hideAllCurrentImprovements: 'Hide all current Improvements', }; const str_ = i18n.i18n.registerUIStrings('panels/issues/IssueKindView.ts', UIStrings); const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_); export function getGroupIssuesByKindSetting() { return Common.Settings.Settings.instance().createSetting('groupIssuesByKind', false); } export function issueKindViewSortPriority(a, b) { if (a.getKind() === b.getKind()) { return 0; } if (a.getKind() === IssuesManager.Issue.IssueKind.PageError) { return -1; } if (a.getKind() === IssuesManager.Issue.IssueKind.BreakingChange && b.getKind() === IssuesManager.Issue.IssueKind.Improvement) { return -1; } return 1; } export function getClassNameFromKind(kind) { switch (kind) { case IssuesManager.Issue.IssueKind.BreakingChange: return 'breaking-changes'; case IssuesManager.Issue.IssueKind.Improvement: return 'improvements'; case IssuesManager.Issue.IssueKind.PageError: return 'page-errors'; } } export class IssueKindView extends UI.TreeOutline.TreeElement { #kind; #issueCount; constructor(kind) { super(undefined, true); this.#kind = kind; this.#issueCount = document.createElement('span'); this.toggleOnClick = true; this.listItemElement.classList.add('issue-kind'); this.listItemElement.classList.add(getClassNameFromKind(kind)); this.childrenListElement.classList.add('issue-kind-body'); } getKind() { return this.#kind; } getHideAllCurrentKindString() { switch (this.#kind) { case IssuesManager.Issue.IssueKind.PageError: return i18nString(UIStrings.hideAllCurrentPageErrors); case IssuesManager.Issue.IssueKind.Improvement: return i18nString(UIStrings.hideAllCurrentImprovements); case IssuesManager.Issue.IssueKind.BreakingChange: return i18nString(UIStrings.hideAllCurrentBreakingChanges); } } #appendHeader() { const header = document.createElement('div'); header.classList.add('header'); const issueKindIcon = new IconButton.Icon.Icon(); issueKindIcon.data = IssueCounter.IssueCounter.getIssueKindIconData(this.#kind); issueKindIcon.classList.add('leading-issue-icon'); const countAdorner = new Adorners.Adorner.Adorner(); countAdorner.data = { name: 'countWrapper', content: this.#issueCount, }; countAdorner.classList.add('aggregated-issues-count'); this.#issueCount.textContent = '0'; const title = document.createElement('div'); title.classList.add('title'); title.textContent = IssuesManager.Issue.getIssueKindName(this.#kind); const hideAvailableIssuesBtn = new Components.HideIssuesMenu.HideIssuesMenu(); hideAvailableIssuesBtn.classList.add('hide-available-issues'); hideAvailableIssuesBtn.data = { menuItemLabel: this.getHideAllCurrentKindString(), menuItemAction: () => { const setting = IssuesManager.IssuesManager.getHideIssueByCodeSetting(); const values = setting.get(); for (const issue of IssuesManager.IssuesManager.IssuesManager.instance().issues()) { if (issue.getKind() === this.#kind) { values[issue.code()] = "Hidden" /* IssuesManager.IssuesManager.IssueStatus.Hidden */; } } setting.set(values); }, }; header.appendChild(issueKindIcon); header.appendChild(countAdorner); header.appendChild(title); header.appendChild(hideAvailableIssuesBtn); this.listItemElement.appendChild(header); } onattach() { this.#appendHeader(); this.expand(); } update(count) { this.#issueCount.textContent = `${count}`; } } //# sourceMappingURL=IssueKindView.js.map