@tuki-io/tuki-widgets 0.0.224 → 0.0.226
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/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
- package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
- package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
- package/esm2020/users-list/src/classes/user-list.mjs +2 -1
- package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/users-list/src/users-list.component.mjs +84 -13
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +103 -27
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +86 -14
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +96 -23
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +86 -14
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/package.json +1 -1
- package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
- package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
- package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
- package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
- package/users-list/src/classes/user-list.d.ts +4 -0
- package/users-list/src/users-list.component.d.ts +4 -1
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
/** Matches device types like `Cisco 8851`. */
|
|
2
2
|
export const CISCO_DIGIT_DEVICE_TYPE_PATTERN = /^Cisco\s+\d+$/i;
|
|
3
3
|
export const DEFAULT_SEP_DEVICE_PREFIX = 'SEP';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Extracts a literal prefix from `deviceNameExplained` patterns such as
|
|
6
|
+
* `SEP[mac]`, `TCT[0-9A-Z._-]{1,12}`, or `[A-Z0-9]{1,15}` (no prefix).
|
|
7
|
+
*/
|
|
8
|
+
export function extractDevicePrefixFromNameExplained(deviceNameExplained) {
|
|
9
|
+
const explained = deviceNameExplained?.trim() ?? '';
|
|
10
|
+
if (!explained) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const match = explained.match(/^([A-Za-z]+)\[/);
|
|
14
|
+
return match?.[1] ?? null;
|
|
15
|
+
}
|
|
16
|
+
export function applyDefaultDevicePrefixIfMissing(device, defaults) {
|
|
5
17
|
if (device.prefix?.trim()) {
|
|
6
18
|
return;
|
|
7
19
|
}
|
|
20
|
+
const prefixFromDefaults = extractDevicePrefixFromNameExplained(defaults.deviceNameExplained);
|
|
21
|
+
if (prefixFromDefaults) {
|
|
22
|
+
device.prefix = prefixFromDefaults;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
8
25
|
const deviceType = device.deviceType?.trim() ?? '';
|
|
9
26
|
if (CISCO_DIGIT_DEVICE_TYPE_PATTERN.test(deviceType)) {
|
|
10
27
|
device.prefix = DEFAULT_SEP_DEVICE_PREFIX;
|
|
11
28
|
}
|
|
12
29
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWRlZmF1bHQtcHJlZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL3V0aWxzL2RldmljZS1kZWZhdWx0LXByZWZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsZ0JBQWdCLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQ0FBb0MsQ0FBQyxtQkFBOEM7SUFDL0YsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3BELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsTUFBc0QsRUFBRSxRQUFpQztJQUN2SSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdkIsT0FBTztLQUNWO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxvQ0FBb0MsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM5RixJQUFJLGtCQUFrQixFQUFFO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUM7UUFDbkMsT0FBTztLQUNWO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkQsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDbEQsTUFBTSxDQUFDLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQztLQUM3QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXZpY2VEZWZhdWx0c0ludGVyZmFjZSwgRGV2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLWNyZWF0aW9uLXdpemFyZC5pbnRlcmZhY2VzJztcblxuLyoqIE1hdGNoZXMgZGV2aWNlIHR5cGVzIGxpa2UgYENpc2NvIDg4NTFgLiAqL1xuZXhwb3J0IGNvbnN0IENJU0NPX0RJR0lUX0RFVklDRV9UWVBFX1BBVFRFUk4gPSAvXkNpc2NvXFxzK1xcZCskL2k7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUF9ERVZJQ0VfUFJFRklYID0gJ1NFUCc7XG5cbi8qKlxuICogRXh0cmFjdHMgYSBsaXRlcmFsIHByZWZpeCBmcm9tIGBkZXZpY2VOYW1lRXhwbGFpbmVkYCBwYXR0ZXJucyBzdWNoIGFzXG4gKiBgU0VQW21hY11gLCBgVENUWzAtOUEtWi5fLV17MSwxMn1gLCBvciBgW0EtWjAtOV17MSwxNX1gIChubyBwcmVmaXgpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERldmljZVByZWZpeEZyb21OYW1lRXhwbGFpbmVkKGRldmljZU5hbWVFeHBsYWluZWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBleHBsYWluZWQgPSBkZXZpY2VOYW1lRXhwbGFpbmVkPy50cmltKCkgPz8gJyc7XG4gICAgaWYgKCFleHBsYWluZWQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2ggPSBleHBsYWluZWQubWF0Y2goL14oW0EtWmEtel0rKVxcWy8pO1xuICAgIHJldHVybiBtYXRjaD8uWzFdID8/IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseURlZmF1bHREZXZpY2VQcmVmaXhJZk1pc3NpbmcoZGV2aWNlOiBQaWNrPERldmljZUludGVyZmFjZSwgJ3ByZWZpeCcgfCAnZGV2aWNlVHlwZSc+LCBkZWZhdWx0czogRGV2aWNlRGVmYXVsdHNJbnRlcmZhY2UpOiB2b2lkIHtcbiAgICBpZiAoZGV2aWNlLnByZWZpeD8udHJpbSgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXhGcm9tRGVmYXVsdHMgPSBleHRyYWN0RGV2aWNlUHJlZml4RnJvbU5hbWVFeHBsYWluZWQoZGVmYXVsdHMuZGV2aWNlTmFtZUV4cGxhaW5lZCk7XG4gICAgaWYgKHByZWZpeEZyb21EZWZhdWx0cykge1xuICAgICAgICBkZXZpY2UucHJlZml4ID0gcHJlZml4RnJvbURlZmF1bHRzO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGV2aWNlVHlwZSA9IGRldmljZS5kZXZpY2VUeXBlPy50cmltKCkgPz8gJyc7XG4gICAgaWYgKENJU0NPX0RJR0lUX0RFVklDRV9UWVBFX1BBVFRFUk4udGVzdChkZXZpY2VUeXBlKSkge1xuICAgICAgICBkZXZpY2UucHJlZml4ID0gREVGQVVMVF9TRVBfREVWSUNFX1BSRUZJWDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function deviceNameHasDynamicTokens(name) {
|
|
2
|
+
return /\[DN\]|\[LN\]|\[FN\]/i.test(name ?? '');
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLW5hbWUtZHluYW1pYy10b2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvdXRpbHMvZGV2aWNlLW5hbWUtZHluYW1pYy10b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQStCO0lBQ3RFLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRldmljZU5hbWVIYXNEeW5hbWljVG9rZW5zKG5hbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL1xcW0ROXFxdfFxcW0xOXFxdfFxcW0ZOXFxdL2kudGVzdChuYW1lID8/ICcnKTtcbn1cbiJdfQ==
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* to validate the name field value (without matPrefix).
|
|
4
4
|
*
|
|
5
5
|
* - `([sS][eE][pP]|BAT)[0-9a-fA-F]{12}` → `[0-9a-fA-F]{12}`
|
|
6
|
+
* - `TCT[0-9A-Z._-]{1,12}` → `[0-9A-Z._-]{1,12}`
|
|
6
7
|
* - `[a-zA-Z0-9]{1,15}` → `[a-zA-Z0-9]{1,15}` (unchanged)
|
|
7
8
|
*/
|
|
8
9
|
export function parseDeviceNameRegexBody(deviceNameRegex) {
|
|
@@ -12,15 +13,17 @@ export function parseDeviceNameRegexBody(deviceNameRegex) {
|
|
|
12
13
|
}
|
|
13
14
|
return stripLeadingPrefixGroup(fullRegex);
|
|
14
15
|
}
|
|
16
|
+
/** Character class with an optional trailing quantifier, e.g. `[0-9a-fA-F]{12}`. */
|
|
17
|
+
const CHAR_CLASS_WITH_QUANTIFIER = String.raw `\[[^\]]+\](?:\{[^}]+\})?`;
|
|
15
18
|
function stripLeadingPrefixGroup(regex) {
|
|
16
|
-
const parenMatch = regex.match(
|
|
19
|
+
const parenMatch = regex.match(new RegExp(`^(\\([^)]+\\))(${CHAR_CLASS_WITH_QUANTIFIER})$`));
|
|
17
20
|
if (parenMatch?.[2]?.trim()) {
|
|
18
21
|
return parenMatch[2];
|
|
19
22
|
}
|
|
20
|
-
const literalMatch = regex.match(
|
|
23
|
+
const literalMatch = regex.match(new RegExp(`^([A-Za-z]+)(${CHAR_CLASS_WITH_QUANTIFIER})$`));
|
|
21
24
|
if (literalMatch?.[2]?.trim()) {
|
|
22
25
|
return literalMatch[2];
|
|
23
26
|
}
|
|
24
27
|
return regex;
|
|
25
28
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtZGV2aWNlLW5hbWUtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy91dGlscy9wYXJzZS1kZXZpY2UtbmFtZS1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsZUFBMEM7SUFDL0UsTUFBTSxTQUFTLEdBQUcsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNoRCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELE9BQU8sdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUEsMEJBQTBCLENBQUM7QUFFeEUsU0FBUyx1QkFBdUIsQ0FBQyxLQUFhO0lBQzFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsa0JBQWtCLDBCQUEwQixJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdGLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDekIsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7SUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLGdCQUFnQiwwQkFBMEIsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RixJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQzNCLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFCO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RyaXBzIGEgbGVhZGluZyBkZXZpY2UtcHJlZml4IGdyb3VwIGZyb20gYGRldmljZU5hbWVSZWdleGAsIHJldHVybmluZyB0aGUgcGF0dGVyblxuICogdG8gdmFsaWRhdGUgdGhlIG5hbWUgZmllbGQgdmFsdWUgKHdpdGhvdXQgbWF0UHJlZml4KS5cbiAqXG4gKiAtIGAoW3NTXVtlRV1bcFBdfEJBVClbMC05YS1mQS1GXXsxMn1gIOKGkiBgWzAtOWEtZkEtRl17MTJ9YFxuICogLSBgVENUWzAtOUEtWi5fLV17MSwxMn1gIOKGkiBgWzAtOUEtWi5fLV17MSwxMn1gXG4gKiAtIGBbYS16QS1aMC05XXsxLDE1fWAg4oaSIGBbYS16QS1aMC05XXsxLDE1fWAgKHVuY2hhbmdlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGV2aWNlTmFtZVJlZ2V4Qm9keShkZXZpY2VOYW1lUmVnZXg6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZ1bGxSZWdleCA9IGRldmljZU5hbWVSZWdleD8udHJpbSgpID8/ICcnO1xuICAgIGlmICghZnVsbFJlZ2V4KSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaXBMZWFkaW5nUHJlZml4R3JvdXAoZnVsbFJlZ2V4KTtcbn1cblxuLyoqIENoYXJhY3RlciBjbGFzcyB3aXRoIGFuIG9wdGlvbmFsIHRyYWlsaW5nIHF1YW50aWZpZXIsIGUuZy4gYFswLTlhLWZBLUZdezEyfWAuICovXG5jb25zdCBDSEFSX0NMQVNTX1dJVEhfUVVBTlRJRklFUiA9IFN0cmluZy5yYXdgXFxbW15cXF1dK1xcXSg/Olxce1tefV0rXFx9KT9gO1xuXG5mdW5jdGlvbiBzdHJpcExlYWRpbmdQcmVmaXhHcm91cChyZWdleDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJlbk1hdGNoID0gcmVnZXgubWF0Y2gobmV3IFJlZ0V4cChgXihcXFxcKFteKV0rXFxcXCkpKCR7Q0hBUl9DTEFTU19XSVRIX1FVQU5USUZJRVJ9KSRgKSk7XG4gICAgaWYgKHBhcmVuTWF0Y2g/LlsyXT8udHJpbSgpKSB7XG4gICAgICAgIHJldHVybiBwYXJlbk1hdGNoWzJdO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdGVyYWxNYXRjaCA9IHJlZ2V4Lm1hdGNoKG5ldyBSZWdFeHAoYF4oW0EtWmEtel0rKSgke0NIQVJfQ0xBU1NfV0lUSF9RVUFOVElGSUVSfSkkYCkpO1xuICAgIGlmIChsaXRlcmFsTWF0Y2g/LlsyXT8udHJpbSgpKSB7XG4gICAgICAgIHJldHVybiBsaXRlcmFsTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZ2V4O1xufVxuIl19
|