@sumaris-net/ngx-components 2.12.16-rc8 → 2.12.16

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.
Files changed (50) hide show
  1. package/doc/changelog.md +2 -0
  2. package/esm2022/public_api.mjs +5 -3
  3. package/esm2022/src/app/admin/users/users.mjs +1 -1
  4. package/esm2022/src/app/core/account/token.table.mjs +1 -1
  5. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +3 -3
  6. package/esm2022/src/app/core/form/properties/properties.table.mjs +2 -2
  7. package/esm2022/src/app/core/home/home.mjs +4 -15
  8. package/esm2022/src/app/core/services/config.service.mjs +10 -7
  9. package/esm2022/src/app/core/table/column/actions-column.component.mjs +120 -0
  10. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +84 -0
  11. package/esm2022/src/app/core/table/{row-field.component.mjs → column/row-field.component.mjs} +8 -8
  12. package/esm2022/src/app/core/table/table.module.mjs +7 -3
  13. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +1 -1
  14. package/esm2022/src/app/core/table/testing/table.testing.mjs +4 -4
  15. package/esm2022/src/app/core/table/testing/table2.testing.mjs +1 -1
  16. package/esm2022/src/app/shared/constants.mjs +5 -2
  17. package/esm2022/src/app/shared/file/images.utils.mjs +26 -1
  18. package/esm2022/src/app/shared/inputs.mjs +34 -1
  19. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +204 -153
  20. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +142 -218
  21. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +5 -4
  22. package/esm2022/src/app/shared/material/material.testing.module.mjs +18 -4
  23. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +2 -2
  24. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +34 -55
  25. package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
  26. package/fesm2022/sumaris-net.ngx-components.mjs +1587 -1465
  27. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  28. package/package.json +1 -1
  29. package/public_api.d.ts +4 -2
  30. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  31. package/src/app/core/home/home.d.ts +3 -5
  32. package/src/app/core/table/column/actions-column.component.d.ts +52 -0
  33. package/src/app/core/table/column/nav-actions-column.component.d.ts +32 -0
  34. package/src/app/core/table/{row-field.component.d.ts → column/row-field.component.d.ts} +1 -1
  35. package/src/app/core/table/table.module.d.ts +8 -7
  36. package/src/app/shared/constants.d.ts +3 -0
  37. package/src/app/shared/file/images.utils.d.ts +17 -0
  38. package/src/app/shared/inputs.d.ts +2 -0
  39. package/src/app/shared/material/latlong/latlong.utils.d.ts +9 -1
  40. package/src/app/shared/material/latlong/material.latlong.d.ts +16 -20
  41. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +1 -1
  42. package/src/app/shared/material/material.testing.module.d.ts +11 -9
  43. package/src/app/shared/pipes/maskito.pipe.d.ts +6 -1
  44. package/src/app/shared/testing/maskito.test.d.ts +10 -0
  45. package/src/assets/i18n/en-US.json +2 -2
  46. package/src/assets/i18n/en.json +2 -2
  47. package/src/assets/i18n/fr.json +2 -2
  48. package/src/assets/manifest.json +1 -1
  49. package/esm2022/src/app/core/table/actions-column.component.mjs +0 -124
  50. package/src/app/core/table/actions-column.component.d.ts +0 -50
@@ -28,7 +28,7 @@ export class HighlightPipe {
28
28
  }
29
29
  else {
30
30
  // Default behaviour
31
- const regexp = new RegExp('[ ]?' + searchRegexp, 'gi');
31
+ const regexp = new RegExp('[ ]?' + searchRegexp, 'gi'); // TODO escape characters like '?'
32
32
  return ('' + value).replace(regexp, '<b>$&</b>');
33
33
  }
34
34
  }
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
45
45
  type: Injectable,
46
46
  args: [{ providedIn: 'root' }]
47
47
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9oaWdobGlnaHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLGFBQWE7SUFDeEIsNkNBQTZDO0lBQzdDLFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBd0Q7UUFDNUUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pGLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsK0JBQStCO1FBRXhFLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZiw2REFBNkQ7WUFDN0QsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2RSxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQixPQUFPLENBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO29CQUN6QixLQUFLO29CQUNMLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7b0JBQ3hELE1BQU07b0JBQ04sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQ2xELENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNOLG9CQUFvQjtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQzt3R0E3QlUsYUFBYTtzR0FBYixhQUFhOzRHQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEI7O2tCQUNBLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVtb3ZlRGlhY3JpdGljcywgdG9Cb29sZWFuIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaGlnaGxpZ2h0Jyxcbn0pXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLy8gUmVwbGFjZSBzZWFyY2ggdGV4dCBieSBib2xkIHJlcHJlc2VudGF0aW9uXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhcmdzPzogc3RyaW5nIHwgeyBzZWFyY2g6IHN0cmluZzsgd2l0aEFjY2VudD86IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgIWFyZ3MpIHJldHVybiB2YWx1ZTtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gdHlwZW9mIGFyZ3MgPT09ICdzdHJpbmcnID8gYXJncyA6IGFyZ3Muc2VhcmNoO1xuICAgIGNvbnN0IHdpdGhBY2NlbnQgPSB0eXBlb2YgYXJncyAhPT0gJ3N0cmluZycgPyB0b0Jvb2xlYW4oYXJncz8ud2l0aEFjY2VudCwgZmFsc2UpIDogZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBzZWFyY2hUZXh0ICE9PSAnc3RyaW5nJykgcmV0dXJuIHZhbHVlO1xuICAgIGNvbnN0IHNlYXJjaFJlZ2V4cCA9IHNlYXJjaFRleHQucmVwbGFjZSgvWy5dL2csICdbLl0nKS5yZXBsYWNlKC9bKl0rL2csICcuKicpO1xuICAgIGlmIChzZWFyY2hSZWdleHAgPT09ICcuKicpIHJldHVybiB2YWx1ZTsgLy8gc2tpcCBpZiBjYW4gbWF0Y2ggZXZlcnl0aGluZ1xuXG4gICAgaWYgKHdpdGhBY2NlbnQpIHtcbiAgICAgIC8vIFJlbW92ZSBhbGwgYWNjZW50IGNoYXJhY3RlcnMgdG8gYWxsb3cgdmVyc2F0aWxlIGNvbXBhcmlzb25cbiAgICAgIGNvbnN0IGNsZWFuZWRTZWFyY2hUZXh0ID0gcmVtb3ZlRGlhY3JpdGljcyhzZWFyY2hSZWdleHApLnRvVXBwZXJDYXNlKCk7XG4gICAgICBjb25zdCBpbmRleCA9IHJlbW92ZURpYWNyaXRpY3ModmFsdWUudG9VcHBlckNhc2UoKSkuaW5kZXhPZihjbGVhbmVkU2VhcmNoVGV4dCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdmFsdWUuc3Vic3RyaW5nKDAsIGluZGV4KSArXG4gICAgICAgICAgJzxiPicgK1xuICAgICAgICAgIHZhbHVlLnN1YnN0cmluZyhpbmRleCwgaW5kZXggKyBjbGVhbmVkU2VhcmNoVGV4dC5sZW5ndGgpICtcbiAgICAgICAgICAnPC9iPicgK1xuICAgICAgICAgIHZhbHVlLnN1YnN0cmluZyhpbmRleCArIGNsZWFuZWRTZWFyY2hUZXh0Lmxlbmd0aClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXJcbiAgICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoJ1sgXT8nICsgc2VhcmNoUmVnZXhwLCAnZ2knKTtcbiAgICAgIHJldHVybiAoJycgKyB2YWx1ZSkucmVwbGFjZShyZWdleHAsICc8Yj4kJjwvYj4nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9oaWdobGlnaHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLGFBQWE7SUFDeEIsNkNBQTZDO0lBQzdDLFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBd0Q7UUFDNUUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pGLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsK0JBQStCO1FBRXhFLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZiw2REFBNkQ7WUFDN0QsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2RSxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQixPQUFPLENBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO29CQUN6QixLQUFLO29CQUNMLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7b0JBQ3hELE1BQU07b0JBQ04sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQ2xELENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNOLG9CQUFvQjtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsa0NBQWtDO1lBQzFGLE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQzt3R0E3QlUsYUFBYTtzR0FBYixhQUFhOzRHQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEI7O2tCQUNBLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVtb3ZlRGlhY3JpdGljcywgdG9Cb29sZWFuIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaGlnaGxpZ2h0Jyxcbn0pXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEhpZ2hsaWdodFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLy8gUmVwbGFjZSBzZWFyY2ggdGV4dCBieSBib2xkIHJlcHJlc2VudGF0aW9uXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBhcmdzPzogc3RyaW5nIHwgeyBzZWFyY2g6IHN0cmluZzsgd2l0aEFjY2VudD86IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgIWFyZ3MpIHJldHVybiB2YWx1ZTtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gdHlwZW9mIGFyZ3MgPT09ICdzdHJpbmcnID8gYXJncyA6IGFyZ3Muc2VhcmNoO1xuICAgIGNvbnN0IHdpdGhBY2NlbnQgPSB0eXBlb2YgYXJncyAhPT0gJ3N0cmluZycgPyB0b0Jvb2xlYW4oYXJncz8ud2l0aEFjY2VudCwgZmFsc2UpIDogZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBzZWFyY2hUZXh0ICE9PSAnc3RyaW5nJykgcmV0dXJuIHZhbHVlO1xuICAgIGNvbnN0IHNlYXJjaFJlZ2V4cCA9IHNlYXJjaFRleHQucmVwbGFjZSgvWy5dL2csICdbLl0nKS5yZXBsYWNlKC9bKl0rL2csICcuKicpO1xuICAgIGlmIChzZWFyY2hSZWdleHAgPT09ICcuKicpIHJldHVybiB2YWx1ZTsgLy8gc2tpcCBpZiBjYW4gbWF0Y2ggZXZlcnl0aGluZ1xuXG4gICAgaWYgKHdpdGhBY2NlbnQpIHtcbiAgICAgIC8vIFJlbW92ZSBhbGwgYWNjZW50IGNoYXJhY3RlcnMgdG8gYWxsb3cgdmVyc2F0aWxlIGNvbXBhcmlzb25cbiAgICAgIGNvbnN0IGNsZWFuZWRTZWFyY2hUZXh0ID0gcmVtb3ZlRGlhY3JpdGljcyhzZWFyY2hSZWdleHApLnRvVXBwZXJDYXNlKCk7XG4gICAgICBjb25zdCBpbmRleCA9IHJlbW92ZURpYWNyaXRpY3ModmFsdWUudG9VcHBlckNhc2UoKSkuaW5kZXhPZihjbGVhbmVkU2VhcmNoVGV4dCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdmFsdWUuc3Vic3RyaW5nKDAsIGluZGV4KSArXG4gICAgICAgICAgJzxiPicgK1xuICAgICAgICAgIHZhbHVlLnN1YnN0cmluZyhpbmRleCwgaW5kZXggKyBjbGVhbmVkU2VhcmNoVGV4dC5sZW5ndGgpICtcbiAgICAgICAgICAnPC9iPicgK1xuICAgICAgICAgIHZhbHVlLnN1YnN0cmluZyhpbmRleCArIGNsZWFuZWRTZWFyY2hUZXh0Lmxlbmd0aClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXJcbiAgICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoJ1sgXT8nICsgc2VhcmNoUmVnZXhwLCAnZ2knKTsgLy8gVE9ETyBlc2NhcGUgY2hhcmFjdGVycyBsaWtlICc/J1xuICAgICAgcmV0dXJuICgnJyArIHZhbHVlKS5yZXBsYWNlKHJlZ2V4cCwgJzxiPiQmPC9iPicpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,66 +1,33 @@
1
1
  import { Pipe } from '@angular/core';
2
- import { isNilOrBlank } from '../functions';
2
+ import { isNilOrBlank, isNotNil } from '../functions';
3
3
  import { maskitoEventHandler, maskitoWithPlaceholder } from '@maskito/kit';
4
+ import { getCaretPosition, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, selectInputRange } from '../inputs';
4
5
  import * as i0 from "@angular/core";
5
6
  export class MaskitoPlaceholderPipe {
6
- transform(placeholder, mask, defaultPrefix) {
7
+ transform(placeholder, mask, opts) {
7
8
  if (isNilOrBlank(placeholder))
8
9
  return { mask };
9
- const placeholderOptions = maskitoWithPlaceholder(placeholder, true);
10
- const plugins = [...placeholderOptions.plugins];
11
- if (defaultPrefix) {
12
- plugins.push(maskitoPrefixPlugin(defaultPrefix, placeholder));
10
+ const plugins = [];
11
+ const preprocessors = [];
12
+ const postprocessors = [];
13
+ if (!opts?.noDefaults) {
14
+ const placeholderOptions = maskitoWithPlaceholder(placeholder, true);
15
+ plugins.push(...placeholderOptions.plugins);
16
+ preprocessors.push(...placeholderOptions.preprocessors);
17
+ postprocessors.push(...placeholderOptions.postprocessors);
13
18
  }
19
+ plugins.push(...(opts?.plugins || []));
20
+ preprocessors.push(...(opts?.preprocessors || []));
21
+ postprocessors.push(...(opts?.postprocessors || []));
22
+ if (isNotNil(opts?.defaultPrefix)) {
23
+ plugins.push(maskitoPrefixPlugin(opts.defaultPrefix, placeholder));
24
+ }
25
+ plugins.push(maskitoAutoSelectByMaskPattern());
14
26
  return {
15
- overwriteMode: 'replace',
16
- ...placeholderOptions,
27
+ overwriteMode: opts?.overwriteMode || 'replace',
17
28
  plugins,
18
- preprocessors: [
19
- ({ elementState }, actionType) => {
20
- const { value, selection } = elementState;
21
- if (!value?.length) {
22
- return { elementState };
23
- }
24
- const [from, to] = selection;
25
- const isDeleteAction = actionType === 'deleteBackward' || actionType === 'deleteForward';
26
- const zeroes = value.slice(from, to).replace(/\d/g, isDeleteAction ? '' : '0');
27
- const newValue = value.slice(0, from) + zeroes + value.slice(to);
28
- if (actionType === 'validation' || (actionType === 'insert' && from === to)) {
29
- return {
30
- elementState: { selection, value: newValue },
31
- };
32
- }
33
- return {
34
- elementState: {
35
- selection: actionType === 'deleteBackward' || actionType === 'insert' ? [from, from] : [to, to],
36
- value: newValue,
37
- },
38
- };
39
- },
40
- // FIXME : find a way to deleteBackward, on a special character ('.', ' ', '°')
41
- // ({ elementState, data }, actionType) => {
42
- // // eslint-disable-next-line prefer-const
43
- // let { value, selection } = elementState;
44
- // if (!value.length) return { elementState, data }; // Skip if empty
45
- //
46
- // const [start, end] = selection;
47
- // let selectionMax = value.length - 1;
48
- //
49
- // if (value.length < placeholder.length) {
50
- // value = value + placeholder.substring(value.length).replace(/[DSM]/g, EMPTY_PLACEHOLDER_CHAR);
51
- // } else if (value.indexOf(EMPTY_PLACEHOLDER_CHAR) !== -1) {
52
- // selectionMax = value.indexOf(EMPTY_PLACEHOLDER_CHAR);
53
- // }
54
- // return {
55
- // elementState: {
56
- // selection: [Math.min(selectionMax, start), Math.min(selectionMax, end)],
57
- // value,
58
- // },
59
- // data,
60
- // };
61
- // },
62
- ...placeholderOptions.preprocessors,
63
- ],
29
+ preprocessors,
30
+ postprocessors,
64
31
  mask,
65
32
  };
66
33
  }
@@ -85,4 +52,16 @@ export function maskitoPrefixPlugin(prefix, placeholder) {
85
52
  }
86
53
  });
87
54
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2l0by5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbWFza2l0by5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUszRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFNBQVMsQ0FBQyxXQUFtQixFQUFFLElBQWlCLEVBQUUsYUFBc0I7UUFDdEUsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBRS9DLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELE9BQU87WUFDTCxhQUFhLEVBQUUsU0FBUztZQUN4QixHQUFHLGtCQUFrQjtZQUNyQixPQUFPO1lBQ1AsYUFBYSxFQUFFO2dCQUNiLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRTtvQkFDL0IsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxZQUFZLENBQUM7b0JBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7d0JBQ25CLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztvQkFDMUIsQ0FBQztvQkFDRCxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDN0IsTUFBTSxjQUFjLEdBQUksVUFBVSxLQUFLLGdCQUFnQixJQUFJLFVBQVUsS0FBSyxlQUFlLENBQUM7b0JBQzFGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMvRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDakUsSUFBSSxVQUFVLEtBQUssWUFBWSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDNUUsT0FBTzs0QkFDTCxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTt5QkFDN0MsQ0FBQztvQkFDSixDQUFDO29CQUVELE9BQU87d0JBQ0wsWUFBWSxFQUFFOzRCQUNaLFNBQVMsRUFBRSxVQUFVLEtBQUssZ0JBQWdCLElBQUksVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQzs0QkFDL0YsS0FBSyxFQUFFLFFBQVE7eUJBQ2hCO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCwrRUFBK0U7Z0JBQy9FLDRDQUE0QztnQkFDNUMsNkNBQTZDO2dCQUM3Qyw2Q0FBNkM7Z0JBQzdDLHVFQUF1RTtnQkFDdkUsRUFBRTtnQkFDRixvQ0FBb0M7Z0JBQ3BDLHlDQUF5QztnQkFDekMsRUFBRTtnQkFDRiw2Q0FBNkM7Z0JBQzdDLHFHQUFxRztnQkFDckcsK0RBQStEO2dCQUMvRCw0REFBNEQ7Z0JBQzVELE1BQU07Z0JBQ04sYUFBYTtnQkFDYixzQkFBc0I7Z0JBQ3RCLGlGQUFpRjtnQkFDakYsZUFBZTtnQkFDZixTQUFTO2dCQUNULFlBQVk7Z0JBQ1osT0FBTztnQkFDUCxLQUFLO2dCQUNMLEdBQUcsa0JBQWtCLENBQUMsYUFBYTthQUNwQztZQUNELElBQUk7U0FDTCxDQUFDO0lBQ0osQ0FBQzt3R0FoRVUsc0JBQXNCO3NHQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSGxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtpQkFDM0I7O0FBb0VELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsV0FBb0I7SUFDdEUsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUErQyxFQUFFLE9BQWlDLEVBQUUsRUFBRTtRQUN6SCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7WUFDdkIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbE9yQmxhbmsgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTWFza2l0b01hc2ssIE1hc2tpdG9PcHRpb25zLCBNYXNraXRvUGx1Z2luIH0gZnJvbSAnQG1hc2tpdG8vY29yZSc7XG5pbXBvcnQgeyBtYXNraXRvRXZlbnRIYW5kbGVyLCBtYXNraXRvV2l0aFBsYWNlaG9sZGVyIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcblxuQFBpcGUoe1xuICBuYW1lOiAnbWFza2l0b1BsYWNlaG9sZGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0ocGxhY2Vob2xkZXI6IHN0cmluZywgbWFzazogTWFza2l0b01hc2ssIGRlZmF1bHRQcmVmaXg/OiBzdHJpbmcpOiBNYXNraXRvT3B0aW9ucyB7XG4gICAgaWYgKGlzTmlsT3JCbGFuayhwbGFjZWhvbGRlcikpIHJldHVybiB7IG1hc2sgfTtcblxuICAgIGNvbnN0IHBsYWNlaG9sZGVyT3B0aW9ucyA9IG1hc2tpdG9XaXRoUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHRydWUpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSBbLi4ucGxhY2Vob2xkZXJPcHRpb25zLnBsdWdpbnNdO1xuICAgIGlmIChkZWZhdWx0UHJlZml4KSB7XG4gICAgICBwbHVnaW5zLnB1c2gobWFza2l0b1ByZWZpeFBsdWdpbihkZWZhdWx0UHJlZml4LCBwbGFjZWhvbGRlcikpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvdmVyd3JpdGVNb2RlOiAncmVwbGFjZScsXG4gICAgICAuLi5wbGFjZWhvbGRlck9wdGlvbnMsXG4gICAgICBwbHVnaW5zLFxuICAgICAgcHJlcHJvY2Vzc29yczogW1xuICAgICAgICAoeyBlbGVtZW50U3RhdGUgfSwgYWN0aW9uVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgdmFsdWUsIHNlbGVjdGlvbiB9ID0gZWxlbWVudFN0YXRlO1xuICAgICAgICAgIGlmICghdmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgZWxlbWVudFN0YXRlIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IFtmcm9tLCB0b10gPSBzZWxlY3Rpb247XG4gICAgICAgICAgY29uc3QgaXNEZWxldGVBY3Rpb24gPSAgYWN0aW9uVHlwZSA9PT0gJ2RlbGV0ZUJhY2t3YXJkJyB8fCBhY3Rpb25UeXBlID09PSAnZGVsZXRlRm9yd2FyZCc7XG4gICAgICAgICAgY29uc3QgemVyb2VzID0gdmFsdWUuc2xpY2UoZnJvbSwgdG8pLnJlcGxhY2UoL1xcZC9nLCBpc0RlbGV0ZUFjdGlvbiA/ICcnIDogJzAnKTtcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnNsaWNlKDAsIGZyb20pICsgemVyb2VzICsgdmFsdWUuc2xpY2UodG8pO1xuICAgICAgICAgIGlmIChhY3Rpb25UeXBlID09PSAndmFsaWRhdGlvbicgfHwgKGFjdGlvblR5cGUgPT09ICdpbnNlcnQnICYmIGZyb20gPT09IHRvKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZWxlbWVudFN0YXRlOiB7IHNlbGVjdGlvbiwgdmFsdWU6IG5ld1ZhbHVlIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbGVtZW50U3RhdGU6IHtcbiAgICAgICAgICAgICAgc2VsZWN0aW9uOiBhY3Rpb25UeXBlID09PSAnZGVsZXRlQmFja3dhcmQnIHx8IGFjdGlvblR5cGUgPT09ICdpbnNlcnQnID8gW2Zyb20sIGZyb21dIDogW3RvLCB0b10sXG4gICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBGSVhNRSA6IGZpbmQgYSB3YXkgdG8gZGVsZXRlQmFja3dhcmQsIG9uIGEgc3BlY2lhbCBjaGFyYWN0ZXIgKCcuJywgJyAnLCAnwrAnKVxuICAgICAgICAvLyAoeyBlbGVtZW50U3RhdGUsIGRhdGEgfSwgYWN0aW9uVHlwZSkgPT4ge1xuICAgICAgICAvLyAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgICAgLy8gICBsZXQgeyB2YWx1ZSwgc2VsZWN0aW9uIH0gPSBlbGVtZW50U3RhdGU7XG4gICAgICAgIC8vICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHJldHVybiB7IGVsZW1lbnRTdGF0ZSwgZGF0YSB9OyAvLyBTa2lwIGlmIGVtcHR5XG4gICAgICAgIC8vXG4gICAgICAgIC8vICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gc2VsZWN0aW9uO1xuICAgICAgICAvLyAgIGxldCBzZWxlY3Rpb25NYXggPSB2YWx1ZS5sZW5ndGggLSAxO1xuICAgICAgICAvL1xuICAgICAgICAvLyAgIGlmICh2YWx1ZS5sZW5ndGggPCBwbGFjZWhvbGRlci5sZW5ndGgpIHtcbiAgICAgICAgLy8gICAgIHZhbHVlID0gdmFsdWUgKyBwbGFjZWhvbGRlci5zdWJzdHJpbmcodmFsdWUubGVuZ3RoKS5yZXBsYWNlKC9bRFNNXS9nLCBFTVBUWV9QTEFDRUhPTERFUl9DSEFSKTtcbiAgICAgICAgLy8gICB9IGVsc2UgaWYgKHZhbHVlLmluZGV4T2YoRU1QVFlfUExBQ0VIT0xERVJfQ0hBUikgIT09IC0xKSB7XG4gICAgICAgIC8vICAgICBzZWxlY3Rpb25NYXggPSB2YWx1ZS5pbmRleE9mKEVNUFRZX1BMQUNFSE9MREVSX0NIQVIpO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgZWxlbWVudFN0YXRlOiB7XG4gICAgICAgIC8vICAgICAgIHNlbGVjdGlvbjogW01hdGgubWluKHNlbGVjdGlvbk1heCwgc3RhcnQpLCBNYXRoLm1pbihzZWxlY3Rpb25NYXgsIGVuZCldLFxuICAgICAgICAvLyAgICAgICB2YWx1ZSxcbiAgICAgICAgLy8gICAgIH0sXG4gICAgICAgIC8vICAgICBkYXRhLFxuICAgICAgICAvLyAgIH07XG4gICAgICAgIC8vIH0sXG4gICAgICAgIC4uLnBsYWNlaG9sZGVyT3B0aW9ucy5wcmVwcm9jZXNzb3JzLFxuICAgICAgXSxcbiAgICAgIG1hc2ssXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFza2l0b1ByZWZpeFBsdWdpbihwcmVmaXg6IHN0cmluZywgcGxhY2Vob2xkZXI/OiBzdHJpbmcpOiBNYXNraXRvUGx1Z2luIHtcbiAgcmV0dXJuIG1hc2tpdG9FdmVudEhhbmRsZXIoJ2ZvY3VzJywgKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50LCBvcHRpb25zOiBSZXF1aXJlZDxNYXNraXRvT3B0aW9ucz4pID0+IHtcbiAgICBpZiAoZWxlbWVudC52YWx1ZSA9PT0gJycpIHtcbiAgICAgIGVsZW1lbnQudmFsdWUgPSBwcmVmaXg7XG4gICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQudmFsdWUgPT09IHBsYWNlaG9sZGVyKSB7XG4gICAgICBlbGVtZW50LnZhbHVlID0gcHJlZml4ICsgcGxhY2Vob2xkZXIuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xuICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
55
+ export function maskitoAutoSelectByMaskPattern() {
56
+ return maskitoEventHandler('click', (element, options) => {
57
+ if (options.mask instanceof Array) {
58
+ const caretIndex = getCaretPosition(element);
59
+ const maskPatternInputRanges = getInputSelectionRangesFromMask(options?.mask);
60
+ const selectedInputRange = getInputRangeFromCaretIndex(caretIndex, maskPatternInputRanges);
61
+ if (isNotNil(selectedInputRange)) {
62
+ selectInputRange(element, selectedInputRange[0], selectedInputRange[1] + 1);
63
+ }
64
+ }
65
+ });
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2l0by5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvbWFza2l0by5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBTzdILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsU0FBUyxDQUFDLFdBQW1CLEVBQUUsSUFBaUIsRUFBRSxJQUFvQztRQUNwRixJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN6QixNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUN0QixNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRCxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckQsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxDQUFDO1FBRS9DLE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxFQUFFLGFBQWEsSUFBSSxTQUFTO1lBQy9DLE9BQU87WUFDUCxhQUFhO1lBQ2IsY0FBYztZQUNkLElBQUk7U0FDTCxDQUFDO0lBQ0osQ0FBQzt3R0E5QlUsc0JBQXNCO3NHQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSGxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtpQkFDM0I7O0FBa0NELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsV0FBb0I7SUFDdEUsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUErQyxFQUFFLE9BQWlDLEVBQUUsRUFBRTtRQUN6SCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7WUFDdkIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCO0lBQzVDLE9BQU8sbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBK0MsRUFBRSxPQUFpQyxFQUFFLEVBQUU7UUFDekgsSUFBSSxPQUFPLENBQUMsSUFBSSxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQ2xDLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sc0JBQXNCLEdBQUcsK0JBQStCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlFLE1BQU0sa0JBQWtCLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDM0YsSUFBSSxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDOUUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbE9yQmxhbmssIGlzTm90TmlsIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IE1hc2tpdG9NYXNrLCBNYXNraXRvT3B0aW9ucywgTWFza2l0b1BsdWdpbiB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHsgbWFza2l0b0V2ZW50SGFuZGxlciwgbWFza2l0b1dpdGhQbGFjZWhvbGRlciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XG5pbXBvcnQgeyBnZXRDYXJldFBvc2l0aW9uLCBnZXRJbnB1dFJhbmdlRnJvbUNhcmV0SW5kZXgsIGdldElucHV0U2VsZWN0aW9uUmFuZ2VzRnJvbU1hc2ssIHNlbGVjdElucHV0UmFuZ2UgfSBmcm9tICcuLi9pbnB1dHMnO1xuXG5leHBvcnQgdHlwZSBNYXNraXRvUGxhY2Vob2xkZXJQaXBlT3B0aW9ucyA9IHsgZGVmYXVsdFByZWZpeD86IHN0cmluZzsgbm9EZWZhdWx0cz86IGJvb2xlYW4gfSAmIFBhcnRpYWw8TWFza2l0b09wdGlvbnM+O1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdtYXNraXRvUGxhY2Vob2xkZXInLFxufSlcbmV4cG9ydCBjbGFzcyBNYXNraXRvUGxhY2Vob2xkZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShwbGFjZWhvbGRlcjogc3RyaW5nLCBtYXNrOiBNYXNraXRvTWFzaywgb3B0cz86IE1hc2tpdG9QbGFjZWhvbGRlclBpcGVPcHRpb25zKTogTWFza2l0b09wdGlvbnMge1xuICAgIGlmIChpc05pbE9yQmxhbmsocGxhY2Vob2xkZXIpKSByZXR1cm4geyBtYXNrIH07XG5cbiAgICBjb25zdCBwbHVnaW5zID0gW107XG4gICAgY29uc3QgcHJlcHJvY2Vzc29ycyA9IFtdO1xuICAgIGNvbnN0IHBvc3Rwcm9jZXNzb3JzID0gW107XG5cbiAgICBpZiAoIW9wdHM/Lm5vRGVmYXVsdHMpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyT3B0aW9ucyA9IG1hc2tpdG9XaXRoUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHRydWUpO1xuICAgICAgcGx1Z2lucy5wdXNoKC4uLnBsYWNlaG9sZGVyT3B0aW9ucy5wbHVnaW5zKTtcbiAgICAgIHByZXByb2Nlc3NvcnMucHVzaCguLi5wbGFjZWhvbGRlck9wdGlvbnMucHJlcHJvY2Vzc29ycyk7XG4gICAgICBwb3N0cHJvY2Vzc29ycy5wdXNoKC4uLnBsYWNlaG9sZGVyT3B0aW9ucy5wb3N0cHJvY2Vzc29ycyk7XG4gICAgfVxuICAgIHBsdWdpbnMucHVzaCguLi4ob3B0cz8ucGx1Z2lucyB8fCBbXSkpO1xuICAgIHByZXByb2Nlc3NvcnMucHVzaCguLi4ob3B0cz8ucHJlcHJvY2Vzc29ycyB8fCBbXSkpO1xuICAgIHBvc3Rwcm9jZXNzb3JzLnB1c2goLi4uKG9wdHM/LnBvc3Rwcm9jZXNzb3JzIHx8IFtdKSk7XG5cbiAgICBpZiAoaXNOb3ROaWwob3B0cz8uZGVmYXVsdFByZWZpeCkpIHtcbiAgICAgIHBsdWdpbnMucHVzaChtYXNraXRvUHJlZml4UGx1Z2luKG9wdHMuZGVmYXVsdFByZWZpeCwgcGxhY2Vob2xkZXIpKTtcbiAgICB9XG4gICAgcGx1Z2lucy5wdXNoKG1hc2tpdG9BdXRvU2VsZWN0QnlNYXNrUGF0dGVybigpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvdmVyd3JpdGVNb2RlOiBvcHRzPy5vdmVyd3JpdGVNb2RlIHx8ICdyZXBsYWNlJyxcbiAgICAgIHBsdWdpbnMsXG4gICAgICBwcmVwcm9jZXNzb3JzLFxuICAgICAgcG9zdHByb2Nlc3NvcnMsXG4gICAgICBtYXNrLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hc2tpdG9QcmVmaXhQbHVnaW4ocHJlZml4OiBzdHJpbmcsIHBsYWNlaG9sZGVyPzogc3RyaW5nKTogTWFza2l0b1BsdWdpbiB7XG4gIHJldHVybiBtYXNraXRvRXZlbnRIYW5kbGVyKCdmb2N1cycsIChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCwgb3B0aW9uczogUmVxdWlyZWQ8TWFza2l0b09wdGlvbnM+KSA9PiB7XG4gICAgaWYgKGVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICBlbGVtZW50LnZhbHVlID0gcHJlZml4O1xuICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XG4gICAgfSBlbHNlIGlmIChlbGVtZW50LnZhbHVlID09PSBwbGFjZWhvbGRlcikge1xuICAgICAgZWxlbWVudC52YWx1ZSA9IHByZWZpeCArIHBsYWNlaG9sZGVyLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTtcbiAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JykpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXNraXRvQXV0b1NlbGVjdEJ5TWFza1BhdHRlcm4oKTogTWFza2l0b1BsdWdpbiB7XG4gIHJldHVybiBtYXNraXRvRXZlbnRIYW5kbGVyKCdjbGljaycsIChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCwgb3B0aW9uczogUmVxdWlyZWQ8TWFza2l0b09wdGlvbnM+KSA9PiB7XG4gICAgaWYgKG9wdGlvbnMubWFzayBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBjb25zdCBjYXJldEluZGV4ID0gZ2V0Q2FyZXRQb3NpdGlvbihlbGVtZW50KTtcbiAgICAgIGNvbnN0IG1hc2tQYXR0ZXJuSW5wdXRSYW5nZXMgPSBnZXRJbnB1dFNlbGVjdGlvblJhbmdlc0Zyb21NYXNrKG9wdGlvbnM/Lm1hc2spO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJbnB1dFJhbmdlID0gZ2V0SW5wdXRSYW5nZUZyb21DYXJldEluZGV4KGNhcmV0SW5kZXgsIG1hc2tQYXR0ZXJuSW5wdXRSYW5nZXMpO1xuICAgICAgaWYgKGlzTm90TmlsKHNlbGVjdGVkSW5wdXRSYW5nZSkpIHtcbiAgICAgICAgc2VsZWN0SW5wdXRSYW5nZShlbGVtZW50LCBzZWxlY3RlZElucHV0UmFuZ2VbMF0sIHNlbGVjdGVkSW5wdXRSYW5nZVsxXSArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@ionic/angular";
5
+ import * as i3 from "@angular/material/form-field";
6
+ import * as i4 from "@angular/material/input";
7
+ import * as i5 from "@maskito/angular";
8
+ import * as i6 from "../pipes/maskito.pipe";
9
+ export class MaskitoTestPage {
10
+ formBuilder;
11
+ form;
12
+ labelMask = [
13
+ /\d/,
14
+ /\d/,
15
+ ' ',
16
+ /^[a-zA-Z]$/,
17
+ /^[a-zA-Z]$/,
18
+ /^[a-zA-Z]$/,
19
+ /^[a-zA-Z]$/,
20
+ /^[a-zA-Z]$/,
21
+ /^[a-zA-Z]$/,
22
+ /^[a-zA-Z]$/,
23
+ ' ',
24
+ /\d/,
25
+ /\d/,
26
+ /\d/,
27
+ ];
28
+ constructor(formBuilder) {
29
+ this.formBuilder = formBuilder;
30
+ this.form = formBuilder.group({
31
+ strategy: [null],
32
+ });
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaskitoTestPage, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MaskitoTestPage, selector: "app-maskito-test", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Maskito test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <form [formGroup]=\"form\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Test Strategy Pattern</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field>\n <input\n matInput\n #strategyInput\n formControlName=\"strategy\"\n autocomplete=\"off\"\n type=\"text\"\n [maskito]=\"'__ _______ ___' | maskitoPlaceholder: labelMask\"\n placeholder=\"Strategy field\"\n />\n </mat-form-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "pipe", type: i6.MaskitoPlaceholderPipe, name: "maskitoPlaceholder" }] });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaskitoTestPage, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'app-maskito-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Maskito test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <form [formGroup]=\"form\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Test Strategy Pattern</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-form-field>\n <input\n matInput\n #strategyInput\n formControlName=\"strategy\"\n autocomplete=\"off\"\n type=\"text\"\n [maskito]=\"'__ _______ ___' | maskitoPlaceholder: labelMask\"\n placeholder=\"Strategy field\"\n />\n </mat-form-field>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n" }]
40
+ }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2l0by50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdGVzdGluZy9tYXNraXRvLnRlc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90ZXN0aW5nL21hc2tpdG8udGVzdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxlQUFlO0lBb0JKO0lBbkJ0QixJQUFJLENBQW1CO0lBRXZCLFNBQVMsR0FBd0I7UUFDL0IsSUFBSTtRQUNKLElBQUk7UUFDSixHQUFHO1FBQ0gsWUFBWTtRQUNaLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTtRQUNaLEdBQUc7UUFDSCxJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7S0FDTCxDQUFDO0lBRUYsWUFBc0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F4QlUsZUFBZTs0RkFBZixlQUFlLHdEQ1A1Qixpb0NBd0NBOzs0RkRqQ2EsZUFBZTtrQkFKM0IsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1hc2tpdG8tdGVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXNraXRvLnRlc3QuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hc2tpdG9UZXN0UGFnZSB7XG4gIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgbGFiZWxNYXNrOiAoc3RyaW5nIHwgUmVnRXhwKVtdID0gW1xuICAgIC9cXGQvLFxuICAgIC9cXGQvLFxuICAgICcgJyxcbiAgICAvXlthLXpBLVpdJC8sXG4gICAgL15bYS16QS1aXSQvLFxuICAgIC9eW2EtekEtWl0kLyxcbiAgICAvXlthLXpBLVpdJC8sXG4gICAgL15bYS16QS1aXSQvLFxuICAgIC9eW2EtekEtWl0kLyxcbiAgICAvXlthLXpBLVpdJC8sXG4gICAgJyAnLFxuICAgIC9cXGQvLFxuICAgIC9cXGQvLFxuICAgIC9cXGQvLFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgc3RyYXRlZ3k6IFtudWxsXSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJhY2stYnV0dG9uPjwvaW9uLWJhY2stYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICA8aW9uLXRpdGxlPk1hc2tpdG8gdGVzdCBwYWdlPC9pb24tdGl0bGU+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudD5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGlvbi1ncmlkPlxuICAgICAgPGlvbi1yb3c+XG4gICAgICAgIDxpb24tY29sPlxuICAgICAgICAgIDxpb24tY2FyZD5cbiAgICAgICAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwicHJpbWFyeVwiPlRlc3QgU3RyYXRlZ3kgUGF0dGVybjwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICNzdHJhdGVneUlucHV0XG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdHJhdGVneVwiXG4gICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwiJ19fIF9fX19fX18gX19fJyB8IG1hc2tpdG9QbGFjZWhvbGRlcjogbGFiZWxNYXNrXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RyYXRlZ3kgZmllbGRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24tY2FyZD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgIDwvaW9uLWdyaWQ+XG4gIDwvZm9ybT5cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=