@abp/ng.core 8.2.1 → 8.2.3

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.
@@ -1,3 +1,4 @@
1
+ import { ConfigStateService } from '../services';
1
2
  export function uuid(a) {
2
3
  return a
3
4
  ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
@@ -13,7 +14,10 @@ export function generateHash(value) {
13
14
  }
14
15
  return hashed;
15
16
  }
16
- export function generatePassword(length = 8) {
17
+ export function generatePassword(injector, length = 8) {
18
+ if (injector) {
19
+ length = getRequiredPasswordLength(injector);
20
+ }
17
21
  length = Math.min(Math.max(4, length), 128);
18
22
  const lowers = 'abcdefghijklmnopqrstuvwxyz';
19
23
  const uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
@@ -31,4 +35,9 @@ export function generatePassword(length = 8) {
31
35
  }
32
36
  return password.sort(() => 0.5 - Math.random()).join('');
33
37
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSSxDQUFDLENBQU87SUFDMUIsT0FBTyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYTtJQUN4QyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixJQUFJLFFBQWdCLENBQUM7SUFFckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUMzQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUM7SUFDekMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNUMsTUFBTSxNQUFNLEdBQUcsNEJBQTRCLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUcsNEJBQTRCLENBQUM7SUFDNUMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzdCLE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUFDO0lBQ3hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXhGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiB1dWlkKGE/OiBhbnkpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhXHJcbiAgICA/IChhIF4gKChNYXRoLnJhbmRvbSgpICogMTYpID4+IChhIC8gNCkpKS50b1N0cmluZygxNilcclxuICAgIDogKCcnICsgMWU3ICsgLTFlMyArIC00ZTMgKyAtOGUzICsgLTFlMTEpLnJlcGxhY2UoL1swMThdL2csIHV1aWQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVIYXNoKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gIGxldCBoYXNoZWQgPSAwO1xyXG4gIGxldCBjaGFyQ29kZTogbnVtYmVyO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjaGFyQ29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICBoYXNoZWQgPSAoaGFzaGVkIDw8IDUpIC0gaGFzaGVkICsgY2hhckNvZGU7XHJcbiAgICBoYXNoZWQgfD0gMDtcclxuICB9XHJcbiAgcmV0dXJuIGhhc2hlZDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUGFzc3dvcmQobGVuZ3RoID0gOCkge1xyXG4gIGxlbmd0aCA9IE1hdGgubWluKE1hdGgubWF4KDQsIGxlbmd0aCksIDEyOCk7XHJcblxyXG4gIGNvbnN0IGxvd2VycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XHJcbiAgY29uc3QgdXBwZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJztcclxuICBjb25zdCBudW1iZXJzID0gJzAxMjM0NTY3ODknO1xyXG4gIGNvbnN0IHNwZWNpYWxzID0gJyFAIyQlJiooKV8re308Pj9bXS4vJztcclxuICBjb25zdCBhbGwgPSBsb3dlcnMgKyB1cHBlcnMgKyBudW1iZXJzICsgc3BlY2lhbHM7XHJcblxyXG4gIGNvbnN0IGdldFJhbmRvbSA9IChjaHJTZXQ6IHN0cmluZykgPT4gY2hyU2V0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoclNldC5sZW5ndGgpXTtcclxuXHJcbiAgY29uc3QgcGFzc3dvcmQgPSBBcnJheSh7IGxlbmd0aCB9KTtcclxuICBwYXNzd29yZFswXSA9IGdldFJhbmRvbShsb3dlcnMpO1xyXG4gIHBhc3N3b3JkWzFdID0gZ2V0UmFuZG9tKHVwcGVycyk7XHJcbiAgcGFzc3dvcmRbMl0gPSBnZXRSYW5kb20obnVtYmVycyk7XHJcbiAgcGFzc3dvcmRbM10gPSBnZXRSYW5kb20oc3BlY2lhbHMpO1xyXG5cclxuICBmb3IgKGxldCBpID0gNDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICBwYXNzd29yZFtpXSA9IGdldFJhbmRvbShhbGwpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBhc3N3b3JkLnNvcnQoKCkgPT4gMC41IC0gTWF0aC5yYW5kb20oKSkuam9pbignJyk7XHJcbn1cclxuIl19
38
+ function getRequiredPasswordLength(injector) {
39
+ const configState = injector.get(ConfigStateService);
40
+ const passwordRules = configState.getSettings('Identity.Password');
41
+ return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsTUFBTSxVQUFVLElBQUksQ0FBQyxDQUFPO0lBQzFCLE9BQU8sQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxRQUFnQixDQUFDO0lBRXJCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQW1CLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDOUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNUMsTUFBTSxNQUFNLEdBQUcsNEJBQTRCLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUcsNEJBQTRCLENBQUM7SUFDNUMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzdCLE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUFDO0lBQ3hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXhGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsUUFBa0I7SUFDbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sYUFBYSxHQUEyQixXQUFXLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0YsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1dWlkKGE/OiBhbnkpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhXHJcbiAgICA/IChhIF4gKChNYXRoLnJhbmRvbSgpICogMTYpID4+IChhIC8gNCkpKS50b1N0cmluZygxNilcclxuICAgIDogKCcnICsgMWU3ICsgLTFlMyArIC00ZTMgKyAtOGUzICsgLTFlMTEpLnJlcGxhY2UoL1swMThdL2csIHV1aWQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVIYXNoKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gIGxldCBoYXNoZWQgPSAwO1xyXG4gIGxldCBjaGFyQ29kZTogbnVtYmVyO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjaGFyQ29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICBoYXNoZWQgPSAoaGFzaGVkIDw8IDUpIC0gaGFzaGVkICsgY2hhckNvZGU7XHJcbiAgICBoYXNoZWQgfD0gMDtcclxuICB9XHJcbiAgcmV0dXJuIGhhc2hlZDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUGFzc3dvcmQoaW5qZWN0b3I/OiBJbmplY3RvciwgbGVuZ3RoID0gOCkge1xyXG4gIGlmIChpbmplY3Rvcikge1xyXG4gICAgbGVuZ3RoID0gZ2V0UmVxdWlyZWRQYXNzd29yZExlbmd0aChpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBsZW5ndGggPSBNYXRoLm1pbihNYXRoLm1heCg0LCBsZW5ndGgpLCAxMjgpO1xyXG5cclxuICBjb25zdCBsb3dlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonO1xyXG4gIGNvbnN0IHVwcGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7XHJcbiAgY29uc3QgbnVtYmVycyA9ICcwMTIzNDU2Nzg5JztcclxuICBjb25zdCBzcGVjaWFscyA9ICchQCMkJSYqKClfK3t9PD4/W10uLyc7XHJcbiAgY29uc3QgYWxsID0gbG93ZXJzICsgdXBwZXJzICsgbnVtYmVycyArIHNwZWNpYWxzO1xyXG5cclxuICBjb25zdCBnZXRSYW5kb20gPSAoY2hyU2V0OiBzdHJpbmcpID0+IGNoclNldFtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaHJTZXQubGVuZ3RoKV07XHJcblxyXG4gIGNvbnN0IHBhc3N3b3JkID0gQXJyYXkoeyBsZW5ndGggfSk7XHJcbiAgcGFzc3dvcmRbMF0gPSBnZXRSYW5kb20obG93ZXJzKTtcclxuICBwYXNzd29yZFsxXSA9IGdldFJhbmRvbSh1cHBlcnMpO1xyXG4gIHBhc3N3b3JkWzJdID0gZ2V0UmFuZG9tKG51bWJlcnMpO1xyXG4gIHBhc3N3b3JkWzNdID0gZ2V0UmFuZG9tKHNwZWNpYWxzKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDQ7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgcGFzc3dvcmRbaV0gPSBnZXRSYW5kb20oYWxsKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBwYXNzd29yZC5zb3J0KCgpID0+IDAuNSAtIE1hdGgucmFuZG9tKCkpLmpvaW4oJycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSZXF1aXJlZFBhc3N3b3JkTGVuZ3RoKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gIGNvbnN0IGNvbmZpZ1N0YXRlID0gaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgY29uc3QgcGFzc3dvcmRSdWxlczogQUJQLkRpY3Rpb25hcnk8c3RyaW5nPiA9IGNvbmZpZ1N0YXRlLmdldFNldHRpbmdzKCdJZGVudGl0eS5QYXNzd29yZCcpO1xyXG4gIHJldHVybiBOdW1iZXIocGFzc3dvcmRSdWxlc1snQWJwLklkZW50aXR5LlBhc3N3b3JkLlJlcXVpcmVkTGVuZ3RoJ10pIHx8IDg7XHJcbn1cclxuIl19
@@ -582,7 +582,10 @@ function generateHash(value) {
582
582
  }
583
583
  return hashed;
584
584
  }
585
- function generatePassword(length = 8) {
585
+ function generatePassword(injector, length = 8) {
586
+ if (injector) {
587
+ length = getRequiredPasswordLength(injector);
588
+ }
586
589
  length = Math.min(Math.max(4, length), 128);
587
590
  const lowers = 'abcdefghijklmnopqrstuvwxyz';
588
591
  const uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
@@ -600,6 +603,11 @@ function generatePassword(length = 8) {
600
603
  }
601
604
  return password.sort(() => 0.5 - Math.random()).join('');
602
605
  }
606
+ function getRequiredPasswordLength(injector) {
607
+ const configState = injector.get(ConfigStateService);
608
+ const passwordRules = configState.getSettings('Identity.Password');
609
+ return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;
610
+ }
603
611
 
604
612
  function getPathName(url) {
605
613
  const { pathname } = new URL(url, window.location.origin);