@microsoft/windows-admin-center-sdk 2.510.2 → 2.523.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/assets/strings/id-ID/strings.json +1 -0
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +53 -14
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
- package/angular/esm2015/src/controls/accordion/accordion-panel/accordion-panel.component.js +30 -5
- package/angular/esm2015/src/controls/details/details.component.js +18 -5
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +52 -14
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
- package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +26 -1
- package/angular/src/controls/details/details.component.d.ts +5 -1
- package/core/assets/strings/id-ID/strings.json +1 -0
- package/core/data/wdac-operations.d.ts +0 -48
- package/core/data/wdac-operations.js +1 -37
- package/core/data/wdac-operations.js.map +1 -1
- package/core/manifest/module-schema.json +1 -0
- package/core/security/sign-on-manager.d.ts +1 -1
- package/core/security/sign-on-manager.js +1 -1
- package/core/security/sign-on-manager.js.map +1 -1
- package/e2e/assets/strings/cs-CZ/strings.json +1 -1
- package/e2e/assets/strings/de-DE/strings.json +1 -1
- package/e2e/assets/strings/es-ES/strings.json +1 -1
- package/e2e/assets/strings/fr-FR/strings.json +1 -1
- package/e2e/assets/strings/hu-HU/strings.json +1 -1
- package/e2e/assets/strings/id-ID/strings.json +1 -0
- package/e2e/assets/strings/it-IT/strings.json +1 -1
- package/e2e/assets/strings/ja-JP/strings.json +1 -1
- package/e2e/assets/strings/ko-KR/strings.json +1 -1
- package/e2e/assets/strings/nl-NL/strings.json +1 -1
- package/e2e/assets/strings/pl-PL/strings.json +1 -1
- package/e2e/assets/strings/pt-BR/strings.json +1 -1
- package/e2e/assets/strings/pt-PT/strings.json +1 -1
- package/e2e/assets/strings/ru-RU/strings.json +1 -1
- package/e2e/assets/strings/strings.json +1 -1
- package/e2e/assets/strings/sv-SE/strings.json +1 -1
- package/e2e/assets/strings/tr-TR/strings.json +1 -1
- package/e2e/assets/strings/zh-CN/strings.json +1 -1
- package/e2e/assets/strings/zh-TW/strings.json +1 -1
- package/package.json +1 -1
- package/styles/css/main-v2.css +1 -1
- package/tools/gulp-ps-resjson/index.js +1 -1
- package/tools/gulp-ps-resjson/index.js.map +1 -1
|
@@ -163,7 +163,7 @@ function gulpPsResjson(options) {
|
|
|
163
163
|
// validate the folder name once again. It could happen when different folder structure is used in future.
|
|
164
164
|
var checkSegments = fullDir.split('\\');
|
|
165
165
|
var locale = checkSegments[checkSegments.length - 1];
|
|
166
|
-
var localeList = ['en-US', 'cs-CZ', 'de-DE', 'es-ES', 'fr-FR', 'hu-HU', 'it-IT', 'ja-JP', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'zh-CN', 'zh-TW'];
|
|
166
|
+
var localeList = ['en-US', 'cs-CZ', 'de-DE', 'es-ES', 'fr-FR', 'hu-HU', 'id-ID', 'it-IT', 'ja-JP', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'zh-CN', 'zh-TW'];
|
|
167
167
|
if (localeList.indexOf(locale) < 0 || fullDir !== baseDir + "\\" + locale) {
|
|
168
168
|
throw new Error("Output folder includes a wrong locale name. " + locale);
|
|
169
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/tools/gulp-ps-resjson/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport { Buffer } from 'buffer';\r\nimport Path = require('path');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\n\r\nconst PLUGIN_NAME = 'gulp-ps-resjson';\r\n\r\ninterface Options {\r\n /**\r\n * specify the resource name.\r\n */\r\n resourceName: string;\r\n\r\n /**\r\n * specify the conversion is Localized file with folder offset.\r\n */\r\n localeOffset?: number;\r\n}\r\n\r\nfunction gulpPsResjson(options: Options) {\r\n // first file is not loc file but original strings.resjson\r\n // if there is any missing property, add the property to output psd1 file.\r\n let masterEnglish = true;\r\n let masterData = {};\r\n\r\n // override options settings if not specified.\r\n options = options || <Options>{};\r\n if (typeof options.localeOffset !== 'number') {\r\n options.localeOffset = 1;\r\n }\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n let error = null;\r\n try {\r\n if (file.isNull()) {\r\n // nothing to do\r\n return callback(null, file);\r\n }\r\n\r\n if (file.isStream()) {\r\n // file.contents is a Stream - https://nodejs.org/api/stream.html\r\n // tslint:disable-next-line:no-invalid-this\r\n this.emit('error', new pluginError(PLUGIN_NAME, 'Streams not supported!'));\r\n return callback(null, file);\r\n } else if (file.isBuffer()) {\r\n let nestedObject = null;\r\n const lines = [];\r\n const prefix = options.resourceName + '_PowerShell_';\r\n let content = file.contents.toString('utf8');\r\n // Remove comments, /* multiline comment */ and // one line comment and \"//\": \"JSON element comment\"\r\n content = content.replace(/(\\/\\*([^*]|[\\n]|(\\*+([^*/]|[\\n])))*\\*\\/+)|( +\\/\\/.*)|( +\\\"\\/\\/\\\".*)/g, '');\r\n const dataObject = JSON.parse(content);\r\n if (dataObject[options.resourceName] && dataObject[options.resourceName]['PowerShell']) {\r\n // if nested format, use nestedObject.\r\n nestedObject = dataObject[options.resourceName]['PowerShell'];\r\n }\r\n\r\n const path = Path.parse(file.path);\r\n const segments = path.dir.split('\\\\');\r\n if (masterEnglish) {\r\n // collect master data, no output from the first file.\r\n if (nestedObject) {\r\n masterData = nestedObject;\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n masterData[name] = dataObject[key];\r\n }\r\n }\r\n }\r\n\r\n masterEnglish = false;\r\n segments.push('en-US');\r\n }\r\n\r\n const fullDir = segments.join('\\\\');\r\n segments.length--;\r\n const baseDir = segments.join('\\\\');\r\n\r\n const copyData = { ...{}, ...masterData };\r\n if (fullDir.endsWith('en-US')) {\r\n // override en-US string by current strings.resjson\r\n const names = Object.keys(masterData);\r\n for (const name of names) {\r\n lines.push(name + '=' + masterData[name]);\r\n }\r\n } else {\r\n if (nestedObject) {\r\n const names2 = Object.keys(nestedObject);\r\n for (const name of names2) {\r\n lines.push(name + '=' + nestedObject[name]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n lines.push(name + '=' + dataObject[key]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if there is any missing data, add into the lines.\r\n // when changed a string but not changed the key, it needs to wait for localization\r\n // build to update locale language strings.\r\n const names = Object.keys(copyData);\r\n for (const name of names) {\r\n lines.push(name + '=' + copyData[name]);\r\n }\r\n }\r\n\r\n if (lines.length > 0) {\r\n // if there is no data, don't create locale file.\r\n\r\n // validate the folder name once again. It could happen when different folder structure is used in future.\r\n const checkSegments = fullDir.split('\\\\');\r\n const locale = checkSegments[checkSegments.length - 1];\r\n const localeList = ['en-US', 'cs-CZ', 'de-DE', 'es-ES', 'fr-FR', 'hu-HU', 'it-IT', 'ja-JP', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'zh-CN', 'zh-TW'];\r\n if (localeList.indexOf(locale) < 0 || fullDir !== `${baseDir}\\\\${locale}`) {\r\n throw new Error(`Output folder includes a wrong locale name. ${locale}`);\r\n }\r\n\r\n content = 'ConvertFrom-StringData @\\'\\r\\n' + lines.join('\\r\\n') + '\\r\\n\\'@\\r\\n';\r\n const jsonFile = new Vinyl({\r\n cwd: '/',\r\n base: baseDir,\r\n path: fullDir + '\\\\' + path.name + '.psd1',\r\n contents: Buffer.from(content, 'utf8')\r\n });\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(jsonFile);\r\n }\r\n }\r\n } catch (e) {\r\n error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n }\r\n\r\n callback(error);\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsResjson;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/tools/gulp-ps-resjson/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport { Buffer } from 'buffer';\r\nimport Path = require('path');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\n\r\nconst PLUGIN_NAME = 'gulp-ps-resjson';\r\n\r\ninterface Options {\r\n /**\r\n * specify the resource name.\r\n */\r\n resourceName: string;\r\n\r\n /**\r\n * specify the conversion is Localized file with folder offset.\r\n */\r\n localeOffset?: number;\r\n}\r\n\r\nfunction gulpPsResjson(options: Options) {\r\n // first file is not loc file but original strings.resjson\r\n // if there is any missing property, add the property to output psd1 file.\r\n let masterEnglish = true;\r\n let masterData = {};\r\n\r\n // override options settings if not specified.\r\n options = options || <Options>{};\r\n if (typeof options.localeOffset !== 'number') {\r\n options.localeOffset = 1;\r\n }\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n let error = null;\r\n try {\r\n if (file.isNull()) {\r\n // nothing to do\r\n return callback(null, file);\r\n }\r\n\r\n if (file.isStream()) {\r\n // file.contents is a Stream - https://nodejs.org/api/stream.html\r\n // tslint:disable-next-line:no-invalid-this\r\n this.emit('error', new pluginError(PLUGIN_NAME, 'Streams not supported!'));\r\n return callback(null, file);\r\n } else if (file.isBuffer()) {\r\n let nestedObject = null;\r\n const lines = [];\r\n const prefix = options.resourceName + '_PowerShell_';\r\n let content = file.contents.toString('utf8');\r\n // Remove comments, /* multiline comment */ and // one line comment and \"//\": \"JSON element comment\"\r\n content = content.replace(/(\\/\\*([^*]|[\\n]|(\\*+([^*/]|[\\n])))*\\*\\/+)|( +\\/\\/.*)|( +\\\"\\/\\/\\\".*)/g, '');\r\n const dataObject = JSON.parse(content);\r\n if (dataObject[options.resourceName] && dataObject[options.resourceName]['PowerShell']) {\r\n // if nested format, use nestedObject.\r\n nestedObject = dataObject[options.resourceName]['PowerShell'];\r\n }\r\n\r\n const path = Path.parse(file.path);\r\n const segments = path.dir.split('\\\\');\r\n if (masterEnglish) {\r\n // collect master data, no output from the first file.\r\n if (nestedObject) {\r\n masterData = nestedObject;\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n masterData[name] = dataObject[key];\r\n }\r\n }\r\n }\r\n\r\n masterEnglish = false;\r\n segments.push('en-US');\r\n }\r\n\r\n const fullDir = segments.join('\\\\');\r\n segments.length--;\r\n const baseDir = segments.join('\\\\');\r\n\r\n const copyData = { ...{}, ...masterData };\r\n if (fullDir.endsWith('en-US')) {\r\n // override en-US string by current strings.resjson\r\n const names = Object.keys(masterData);\r\n for (const name of names) {\r\n lines.push(name + '=' + masterData[name]);\r\n }\r\n } else {\r\n if (nestedObject) {\r\n const names2 = Object.keys(nestedObject);\r\n for (const name of names2) {\r\n lines.push(name + '=' + nestedObject[name]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n lines.push(name + '=' + dataObject[key]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if there is any missing data, add into the lines.\r\n // when changed a string but not changed the key, it needs to wait for localization\r\n // build to update locale language strings.\r\n const names = Object.keys(copyData);\r\n for (const name of names) {\r\n lines.push(name + '=' + copyData[name]);\r\n }\r\n }\r\n\r\n if (lines.length > 0) {\r\n // if there is no data, don't create locale file.\r\n\r\n // validate the folder name once again. It could happen when different folder structure is used in future.\r\n const checkSegments = fullDir.split('\\\\');\r\n const locale = checkSegments[checkSegments.length - 1];\r\n const localeList = ['en-US', 'cs-CZ', 'de-DE', 'es-ES', 'fr-FR', 'hu-HU', 'id-ID', 'it-IT', 'ja-JP', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'zh-CN', 'zh-TW'];\r\n if (localeList.indexOf(locale) < 0 || fullDir !== `${baseDir}\\\\${locale}`) {\r\n throw new Error(`Output folder includes a wrong locale name. ${locale}`);\r\n }\r\n\r\n content = 'ConvertFrom-StringData @\\'\\r\\n' + lines.join('\\r\\n') + '\\r\\n\\'@\\r\\n';\r\n const jsonFile = new Vinyl({\r\n cwd: '/',\r\n base: baseDir,\r\n path: fullDir + '\\\\' + path.name + '.psd1',\r\n contents: Buffer.from(content, 'utf8')\r\n });\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(jsonFile);\r\n }\r\n }\r\n } catch (e) {\r\n error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n }\r\n\r\n callback(error);\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsResjson;\r\n"]}
|