/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { BasePolicy } from './basePolicy.ts'; import type { CategoryDto, PolicyDto } from './policyDto.ts'; import { renderProfileString } from './render.ts'; import { type Category, type NlsString, PolicyType, type LanguageTranslations } from './types.ts'; export class BooleanPolicy extends BasePolicy { static from(category: CategoryDto, policy: PolicyDto): BooleanPolicy | undefined { const { name, minimumVersion, localization, type } = policy; if (type !== 'boolean') { return undefined; } return new BooleanPolicy(name, { moduleName: '', name: { nlsKey: category.name.key, value: category.name.value } }, minimumVersion, { nlsKey: localization.description.key, value: localization.description.value }, ''); } private constructor( name: string, category: Category, minimumVersion: string, description: NlsString, moduleName: string, ) { super(PolicyType.Boolean, name, category, minimumVersion, description, moduleName); } protected renderADMXElements(): string[] { return [ ``, ` `, `` ]; } renderADMLPresentationContents() { return `${this.name}`; } renderJsonValue() { return false; } renderProfileValue(): string { return ``; } renderProfileManifestValue(translations?: LanguageTranslations): string { return `pfm_default pfm_description ${renderProfileString(this.name, this.moduleName, this.description, translations)} pfm_name ${this.name} pfm_title ${this.name} pfm_type boolean`; } }