@seniorsistemas/angular-components 19.9.11 → 19.9.12-develop-18460917

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 (52) hide show
  1. package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +12 -0
  2. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +5 -0
  3. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +0 -1
  4. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -0
  5. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
  6. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -0
  7. package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +4 -0
  8. package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -0
  9. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +2 -2
  10. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
  11. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
  12. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
  13. package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +29 -2
  14. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  15. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  16. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +8 -7
  17. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +6 -5
  18. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +8 -7
  19. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +14 -5
  20. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +8 -7
  21. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  22. package/esm2022/input-group/lib/input-group/input-group.component.mjs +37 -0
  23. package/esm2022/input-group/lib/input-group/input-group.module.mjs +16 -0
  24. package/esm2022/input-group/lib/input-group/types/input-group-addon.mjs +2 -0
  25. package/esm2022/input-group/public-api.mjs +3 -0
  26. package/esm2022/input-group/seniorsistemas-angular-components-input-group.mjs +5 -0
  27. package/esm2022/select/lib/select/select.component.mjs +3 -3
  28. package/esm2022/text-area/lib/text-area/text-area.component.mjs +21 -6
  29. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
  30. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  31. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +2 -2
  32. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  33. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +2 -2
  34. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  35. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +62 -22
  36. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  37. package/fesm2022/seniorsistemas-angular-components-input-group.mjs +57 -0
  38. package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -0
  39. package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
  40. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  41. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +20 -5
  42. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  43. package/input-group/README.md +106 -0
  44. package/input-group/index.d.ts +5 -0
  45. package/input-group/lib/input-group/input-group.component.d.ts +27 -0
  46. package/input-group/lib/input-group/input-group.module.d.ts +7 -0
  47. package/input-group/lib/input-group/types/input-group-addon.d.ts +10 -0
  48. package/input-group/package.json +3 -0
  49. package/input-group/public-api.d.ts +3 -0
  50. package/package.json +7 -1
  51. package/styles.css +1 -0
  52. package/text-area/lib/text-area/text-area.component.d.ts +12 -3
@@ -1,2 +1,29 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2FkZG9uLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9uUHJpb3JpdHkgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBZGRvbkNvbmZpZyB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBjYWxsYmFjaz86IFZvaWRGdW5jdGlvbjtcbiAgICBwcmlvcml0eT86IEJ1dHRvblByaW9yaXR5O1xuICAgIGRpc2FibGVkPzogKCgpID0+IGJvb2xlYW4pIHwgYm9vbGVhbjtcbn1cblxuIl19
1
+ /**
2
+ * Cria uma função que converte um `AddonConfig` em `InputGroupAddon`, reaproveitando o mesmo objeto
3
+ * enquanto o `AddonConfig` for o mesmo (evita reatribuir o input do `s-input-group` a cada ciclo de detecção).
4
+ *
5
+ * O addon fica desabilitado quando o próprio `disabled` do addon for verdadeiro ou quando o form control estiver desabilitado.
6
+ */
7
+ export function createAddonResolver(fieldUtils, isFormDisabled) {
8
+ const cache = new WeakMap();
9
+ return (addon) => {
10
+ if (!addon)
11
+ return undefined;
12
+ let resolved = cache.get(addon);
13
+ if (!resolved) {
14
+ resolved = {
15
+ get label() {
16
+ return addon.label;
17
+ },
18
+ get icon() {
19
+ return addon.icon;
20
+ },
21
+ callback: () => addon.callback?.(),
22
+ disabled: () => fieldUtils.fieldPropertyIsDisabled(addon) || isFormDisabled(),
23
+ };
24
+ cache.set(addon, resolved);
25
+ }
26
+ return resolved;
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2FkZG9uLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkE7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLFVBQWlDLEVBQ2pDLGNBQTZCO0lBRTdCLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxFQUFnQyxDQUFDO0lBRTFELE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNiLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFN0IsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixRQUFRLEdBQUc7Z0JBQ1AsSUFBSSxLQUFLO29CQUNMLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDdkIsQ0FBQztnQkFDRCxJQUFJLElBQUk7b0JBQ0osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUN0QixDQUFDO2dCQUNELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2xDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLElBQUksY0FBYyxFQUFFO2FBQ2hGLENBQUM7WUFDRixLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uXCI7XG5pbXBvcnQgeyBJbnB1dEdyb3VwQWRkb24gfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC1ncm91cFwiO1xuXG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZm9ybS1maWVsZC11dGlscy5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkb25Db25maWcge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgY2FsbGJhY2s/OiBWb2lkRnVuY3Rpb247XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTsOjbyB0ZW0gbWFpcyBlZmVpdG86IG9zIGFkZG9ucyBzw6NvIHJlbmRlcml6YWRvcyBwZWxvIGBzLWlucHV0LWdyb3VwYCwgcXVlIG7Do28gcG9zc3VpIHByaW9yaWRhZGUuXG4gICAgICovXG4gICAgcHJpb3JpdHk/OiBCdXR0b25Qcmlvcml0eTtcbiAgICBkaXNhYmxlZD86ICgoKSA9PiBib29sZWFuKSB8IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ3JpYSB1bWEgZnVuw6fDo28gcXVlIGNvbnZlcnRlIHVtIGBBZGRvbkNvbmZpZ2AgZW0gYElucHV0R3JvdXBBZGRvbmAsIHJlYXByb3ZlaXRhbmRvIG8gbWVzbW8gb2JqZXRvXG4gKiBlbnF1YW50byBvIGBBZGRvbkNvbmZpZ2AgZm9yIG8gbWVzbW8gKGV2aXRhIHJlYXRyaWJ1aXIgbyBpbnB1dCBkbyBgcy1pbnB1dC1ncm91cGAgYSBjYWRhIGNpY2xvIGRlIGRldGVjw6fDo28pLlxuICpcbiAqIE8gYWRkb24gZmljYSBkZXNhYmlsaXRhZG8gcXVhbmRvIG8gcHLDs3ByaW8gYGRpc2FibGVkYCBkbyBhZGRvbiBmb3IgdmVyZGFkZWlybyBvdSBxdWFuZG8gbyBmb3JtIGNvbnRyb2wgZXN0aXZlciBkZXNhYmlsaXRhZG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBZGRvblJlc29sdmVyKFxuICAgIGZpZWxkVXRpbHM6IEZvcm1GaWVsZFV0aWxzU2VydmljZSxcbiAgICBpc0Zvcm1EaXNhYmxlZDogKCkgPT4gYm9vbGVhbixcbik6IChhZGRvbjogQWRkb25Db25maWcgfCB1bmRlZmluZWQpID0+IElucHV0R3JvdXBBZGRvbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY2FjaGUgPSBuZXcgV2Vha01hcDxBZGRvbkNvbmZpZywgSW5wdXRHcm91cEFkZG9uPigpO1xuXG4gICAgcmV0dXJuIChhZGRvbikgPT4ge1xuICAgICAgICBpZiAoIWFkZG9uKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGxldCByZXNvbHZlZCA9IGNhY2hlLmdldChhZGRvbik7XG4gICAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0ge1xuICAgICAgICAgICAgICAgIGdldCBsYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb24ubGFiZWw7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBnZXQgaWNvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWRkb24uaWNvbjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiBhZGRvbi5jYWxsYmFjaz8uKCksXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICgpID0+IGZpZWxkVXRpbHMuZmllbGRQcm9wZXJ0eUlzRGlzYWJsZWQoYWRkb24pIHx8IGlzRm9ybURpc2FibGVkKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FjaGUuc2V0KGFkZG9uLCByZXNvbHZlZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgIH07XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy90ZXh0LWFyZWEtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkQ29uZmlnIH0gZnJvbSAnLi9maWVsZCc7XG5cbi8qKlxuICogQ29uZmlndXJhw6fDo28gcGFyYSBjYW1wbyBkZSDDoXJlYSBkZSB0ZXh0byBtdWx0aWxpbmhhLlxuICpcbiAqIEV4aWJlIHVtIHRleHRhcmVhIGNvbSBzdXBvcnRlIGEgcmVjb25oZWNpbWVudG8gZGUgdm96LCBjb250cm9sZSBkZSBsaW5oYXMvY29sdW5hcyxcbiAqIG1vZG8gc29tZW50ZS1sZWl0dXJhIGUgbGltaXRlIGRlIGNhcmFjdGVyZXMuXG4gKlxuICogUGFyYSBmdW5jaW9uYWxpZGFkZXMgZGUgZ2VyYcOnw6NvIGRlIHRleHRvIHBvciBJQSwgdXNlIGB0eXBlOiAnY29udGVudEdlbmVyYXRvcidgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRBcmVhRmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgLyoqIFRpcG8gZG8gY2FtcG86IHNlbXByZSBgJ3RleHRBcmVhJ2AuICovXG4gICAgdHlwZTogJ3RleHRBcmVhJztcbiAgICAvKipcbiAgICAgKiBOw7ptZXJvIGRlIGNvbHVuYXMgZGUgdGV4dG8gZG8gdGV4dGFyZWEgKGxhcmd1cmEpLlxuICAgICAqL1xuICAgIGNvbHM/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogTsO6bWVybyBkZSBsaW5oYXMgdmlzw612ZWlzIGRvIHRleHRhcmVhIChhbHR1cmEgaW5pY2lhbCkuXG4gICAgICovXG4gICAgcm93cz86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBGaWx0cm8gZGUgdGVjbGFzIGFjZWl0YXMgbm8gY2FtcG8uIEFjZWl0YSByZWdleCBvdSBzdHJpbmcuXG4gICAgICovXG4gICAga2V5RmlsdGVyPzogYW55O1xuICAgIC8qKlxuICAgICAqIEVzdGlsb3MgQ1NTIGlubGluZSBhcGxpY2Fkb3MgZGlyZXRhbWVudGUgbm8gZWxlbWVudG8gdGV4dGFyZWEuXG4gICAgICovXG4gICAgc3R5bGU/OiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+O1xuICAgIC8qKlxuICAgICAqIEZ1bsOnw6NvIHF1ZSByZXRvcm5hIGB0cnVlYCBxdWFuZG8gbyBjYW1wbyBkZXZlIGVzdGFyIGVtIG1vZG8gc29tZW50ZS1sZWl0dXJhLlxuICAgICAqL1xuICAgIHJlYWRvbmx5PzogKCkgPT4gYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBRdWFuZG8gYHRydWVgLCBleGliZSBvIGJvdMOjbyBkZSByZWNvbmhlY2ltZW50byBkZSB2b3ogKHNwZWVjaC10by10ZXh0KS5cbiAgICAgKi9cbiAgICBzcGVlY2hSZWNvZ25pdGlvbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUXVhbmRvIGB0cnVlYCwgbWFudMOpbSBvIGNvbnRleHRvIGRhcyBpbnRlcmHDp8O1ZXMgYW50ZXJpb3JlcyBkZSB2b3ovSUEuXG4gICAgICovXG4gICAga2VlcENvbnRleHQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRleHRvIGRlIHBsYWNlaG9sZGVyIGV4aWJpZG8gbmEgw6FyZWEgZGUgcmVjb25oZWNpbWVudG8gZGUgdm96IGVucXVhbnRvIG8gbWljcm9mb25lIGVzdMOhIGF0aXZvLlxuICAgICAqL1xuICAgIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogTsO6bWVybyBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBubyBjYW1wby5cbiAgICAgKi9cbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG59XG5cbmRlY2xhcmUgbW9kdWxlICcuL2ZpZWxkJyB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGVNYXAge1xuICAgICAgICB0ZXh0QXJlYTogVGV4dEFyZWFGaWVsZENvbmZpZztcbiAgICB9XG59XG5cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy90ZXh0LWFyZWEtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkQ29uZmlnIH0gZnJvbSAnLi9maWVsZCc7XG5cbi8qKlxuICogQ29uZmlndXJhw6fDo28gcGFyYSBjYW1wbyBkZSDDoXJlYSBkZSB0ZXh0byBtdWx0aWxpbmhhLlxuICpcbiAqIEV4aWJlIHVtIHRleHRhcmVhIGNvbSBzdXBvcnRlIGEgcmVjb25oZWNpbWVudG8gZGUgdm96LCBjb250cm9sZSBkZSBsaW5oYXMvY29sdW5hcyxcbiAqIG1vZG8gc29tZW50ZS1sZWl0dXJhIGUgbGltaXRlIGRlIGNhcmFjdGVyZXMuXG4gKlxuICogUGFyYSBmdW5jaW9uYWxpZGFkZXMgZGUgZ2VyYcOnw6NvIGRlIHRleHRvIHBvciBJQSwgdXNlIGB0eXBlOiAnY29udGVudEdlbmVyYXRvcidgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRBcmVhRmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgLyoqIFRpcG8gZG8gY2FtcG86IHNlbXByZSBgJ3RleHRBcmVhJ2AuICovXG4gICAgdHlwZTogJ3RleHRBcmVhJztcbiAgICAvKipcbiAgICAgKiBOw7ptZXJvIGRlIGNvbHVuYXMgZGUgdGV4dG8gZG8gdGV4dGFyZWEgKGxhcmd1cmEpLlxuICAgICAqL1xuICAgIGNvbHM/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogTsO6bWVybyBkZSBsaW5oYXMgdmlzw612ZWlzIGRvIHRleHRhcmVhIChhbHR1cmEgaW5pY2lhbCkuXG4gICAgICovXG4gICAgcm93cz86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBGaWx0cm8gZGUgdGVjbGFzIGFjZWl0YXMgbm8gY2FtcG8uIEFjZWl0YSByZWdleCBvdSBzdHJpbmcuXG4gICAgICovXG4gICAga2V5RmlsdGVyPzogYW55O1xuICAgIC8qKlxuICAgICAqIEVzdGlsb3MgQ1NTIGlubGluZSBhcGxpY2Fkb3MgZGlyZXRhbWVudGUgbm8gZWxlbWVudG8gdGV4dGFyZWEuXG4gICAgICovXG4gICAgc3R5bGU/OiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+O1xuICAgIC8qKlxuICAgICAqIEZ1bsOnw6NvIHF1ZSByZXRvcm5hIGB0cnVlYCBxdWFuZG8gbyBjYW1wbyBkZXZlIGVzdGFyIGVtIG1vZG8gc29tZW50ZS1sZWl0dXJhLlxuICAgICAqL1xuICAgIHJlYWRvbmx5PzogKCkgPT4gYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBRdWFuZG8gYHRydWVgLCBleGliZSBvIGJvdMOjbyBkZSByZWNvbmhlY2ltZW50byBkZSB2b3ogKHNwZWVjaC10by10ZXh0KS5cbiAgICAgKi9cbiAgICBzcGVlY2hSZWNvZ25pdGlvbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUXVhbmRvIGB0cnVlYCwgbWFudMOpbSBvIGNvbnRleHRvIGRhcyBpbnRlcmHDp8O1ZXMgYW50ZXJpb3JlcyBkZSB2b3ovSUEuXG4gICAgICovXG4gICAga2VlcENvbnRleHQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRleHRvIGRlIHBsYWNlaG9sZGVyIGV4aWJpZG8gbmEgw6FyZWEgZGUgcmVjb25oZWNpbWVudG8gZGUgdm96IGVucXVhbnRvIG8gbWljcm9mb25lIGVzdMOhIGF0aXZvLlxuICAgICAqL1xuICAgIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogTsO6bWVybyBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBubyBjYW1wby5cbiAgICAgKi9cbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogSWQgZG8ocykgZWxlbWVudG8ocykgcXVlIGRlc2NyZXZlbSBvIGNhbXBvIChleC46IHRleHRvIGRlIGFqdWRhKS5cbiAgICAgKiBFbmNhbWluaGFkbyBjb21vIGBhcmlhLWRlc2NyaWJlZGJ5YCBhbyBgPHRleHRhcmVhPmAgaW50ZXJuby5cbiAgICAgKi9cbiAgICBhcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG59XG5cbmRlY2xhcmUgbW9kdWxlICcuL2ZpZWxkJyB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGVNYXAge1xuICAgICAgICB0ZXh0QXJlYTogVGV4dEFyZWFGaWVsZENvbmZpZztcbiAgICB9XG59XG5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9jb25maWd1cmF0aW9ucy9maWVsZHMvdGV4dC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkb25Db25maWcgfSBmcm9tICcuLi8uLi9hZGRvbi1jb25maWcnO1xuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuL2ZpZWxkJztcblxudHlwZSBzdHJpbmdGbiA9ICgpID0+IHN0cmluZztcbnR5cGUgYm9vbGVhbkZuID0gKCkgPT4gYm9vbGVhbjtcblxuLyoqXG4gKiBDb25maWd1cmHDp8OjbyBwYXJhIGNhbXBvcyBkZSB0ZXh0byBzaW1wbGVzLlxuICpcbiAqIFVzZSBgdHlwZTogJ3N0cmluZydgIHBhcmEgdGV4dG8gbGl2cmUgZ2VyYWwuXG4gKiBVc2UgYHR5cGU6ICdiaW5hcnknYCBwYXJhIGNhbXBvcyBxdWUgYXJtYXplbmFtIGRhZG9zIGJpbsOhcmlvcyBjb21vIHRleHRvIChleDogYmFzZTY0KS5cbiAqXG4gKiBTdXBvcnRhIG3DoXNjYXJhcyBkZSBlbnRyYWRhLCBhZGRvbnMgbGF0ZXJhaXMsIGZpbHRybyBkZSBjYXJhY3RlcmVzIGUgZXZlbnRvcyBkbyBpbnB1dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0RmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgLyoqXG4gICAgICogYCdzdHJpbmcnYCDigJQgY2FtcG8gZGUgdGV4dG8gbGl2cmUgcGFkcsOjby5cbiAgICAgKiBgJ2JpbmFyeSdgIOKAlCBjYW1wbyBkZSB0ZXh0byB0cmF0YWRvIGNvbW8gZGFkbyBiaW7DoXJpbyAoZXg6IGJhc2U2NCBlbmNvZGluZykuXG4gICAgICovXG4gICAgdHlwZTogJ3N0cmluZycgfCAnYmluYXJ5JztcbiAgICAvKipcbiAgICAgKiBNw6FzY2FyYSBkZSBlbnRyYWRhIGFwbGljYWRhIGFvIGNhbXBvLiBQb2RlIHNlciB1bWEgc3RyaW5nIGZpeGEgb3UgdW1hIGZ1bsOnw6NvIHF1ZSByZXRvcm5hIGEgbcOhc2NhcmEgZGluYW1pY2FtZW50ZS5cbiAgICAgKiBFeGVtcGxvIGRlIG3DoXNjYXJhOiBgJzk5OS45OTkuOTk5LTk5J2AgKENQRiksIGAnKDk5KSA5OTk5OS05OTk5J2AgKHRlbGVmb25lKS5cbiAgICAgKiBRdWFuZG8gZGVmaW5pZGEsIGBsZWZ0QWRkb25gIGUgYHJpZ2h0QWRkb25gIG7Do28gZnVuY2lvbmFtLlxuICAgICAqL1xuICAgIG1hc2s/OiBzdHJpbmdGbiB8IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBGdW7Dp8OjbyBxdWUgcmV0b3JuYSBgdHJ1ZWAgcXVhbmRvIG8gY2FtcG8gZGV2ZSBlc3RhciBlbSBtb2RvIHNvbWVudGUtbGVpdHVyYS5cbiAgICAgKiBVc2UgdW1hIGZ1bsOnw6NvIHBhcmEgY29udHJvbGUgZGluw6JtaWNvIGJhc2VhZG8gbm8gZXN0YWRvIGRvIGZvcm11bMOhcmlvLlxuICAgICAqIEBleGFtcGxlICgpID0+ICF0aGlzLm1vZGVsLmVkaXRhdmVsXG4gICAgICovXG4gICAgcmVhZG9ubHk/OiAoKSA9PiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFBhZHLDo28gcmVnZXggcGFyYSBmaWx0cmFyIG9zIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBuYSBkaWdpdGHDp8Ojby5cbiAgICAgKiBQb2RlIHNlciB1bWEgc3RyaW5nIGRlIHBhdHRlcm4gb3UgdW1hIGZ1bsOnw6NvIHF1ZSByZXRvcm5hIG8gcGFkcsOjby5cbiAgICAgKiBFeGVtcGxvOiBgJ1thLXpBLVpdJ2AgcGVybWl0ZSBhcGVuYXMgbGV0cmFzLlxuICAgICAqL1xuICAgIGNoYXJhY3RlclBhdHRlcm4/OiBzdHJpbmdGbiB8IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBRdWFuZG8gYHRydWVgLCByZW1vdmUgb3MgY2FyYWN0ZXJlcyBkYSBtw6FzY2FyYSBkbyB2YWxvciBlbnZpYWRvIGFvIG1vZGVsby5cbiAgICAgKiBFeGVtcGxvOiBjb20gbcOhc2NhcmEgQ1BGIGAnOTk5Ljk5OS45OTktOTknYCwgbyB2YWxvciBhcm1hemVuYWRvIHNlcsOhIGFwZW5hcyBvcyBkw61naXRvcy5cbiAgICAgKi9cbiAgICB1bm1hc2s/OiBib29sZWFuRm4gfCBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRpcG8gSFRNTCBkbyBpbnB1dCAoZXg6IGAndGV4dCdgLCBgJ2VtYWlsJ2AsIGAndGVsJ2AsIGAndXJsJ2ApLlxuICAgICAqIEFmZXRhIG8gdGVjbGFkbyBleGliaWRvIGVtIGRpc3Bvc2l0aXZvcyBtw7N2ZWlzIGUgYSB2YWxpZGHDp8OjbyBuYXRpdmEgZG8gYnJvd3Nlci5cbiAgICAgKi9cbiAgICBpbnB1dFR5cGU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRmlsdHJvIGRlIHRlY2xhcyBhY2VpdGFzIG5vIGNhbXBvLiBBY2VpdGEgdW1hIGV4cHJlc3PDo28gcmVndWxhciBvdSBzdHJpbmcuXG4gICAgICogRXhlbXBsbzogYC9bMC05XS9gIHBhcmEgYWNlaXRhciBhcGVuYXMgbsO6bWVyb3MuXG4gICAgICovXG4gICAga2V5RmlsdGVyPzogYW55O1xuICAgIC8qKlxuICAgICAqIEFkZG9uIGV4aWJpZG8gw6AgZXNxdWVyZGEgZG8gaW5wdXQgKGV4OiDDrWNvbmUsIHRleHRvLCBib3TDo28pLlxuICAgICAqICoqTsOjbyBmdW5jaW9uYSBxdWFuZG8gYG1hc2tgIGVzdMOhIGRlZmluaWRhLioqXG4gICAgICovXG4gICAgbGVmdEFkZG9uPzogQWRkb25Db25maWc7XG4gICAgLyoqXG4gICAgICogQWRkb24gZXhpYmlkbyDDoCBkaXJlaXRhIGRvIGlucHV0IChleDogw61jb25lLCB0ZXh0bywgYm90w6NvKS5cbiAgICAgKiAqKk7Do28gZnVuY2lvbmEgcXVhbmRvIGBtYXNrYCBlc3TDoSBkZWZpbmlkYS4qKlxuICAgICAqL1xuICAgIHJpZ2h0QWRkb24/OiBBZGRvbkNvbmZpZztcbiAgICAvKipcbiAgICAgKiBOw7ptZXJvIG3DoXhpbW8gZGUgY2FyYWN0ZXJlcyBwZXJtaXRpZG9zIG5vIGNhbXBvLlxuICAgICAqL1xuICAgIG1heExlbmd0aD86IHN0cmluZyB8IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBDb250cm9sYSBvIGF1dG9jb21wbGV0ZSBuYXRpdm8gZG8gYnJvd3Nlci5cbiAgICAgKiBgdHJ1ZWAgYXRpdmEgbyBhdXRvY29tcGxldGU7IGBmYWxzZWAgZGVzYXRpdmEuXG4gICAgICovXG4gICAgYnJvd3NlckF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogRXN0aWxvcyBDU1MgaW5saW5lIGFwbGljYWRvcyBkaXJldGFtZW50ZSBubyBlbGVtZW50byBkZSBpbnB1dC5cbiAgICAgKi9cbiAgICBzdHlsZT86IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBjaGFtYWRvIHF1YW5kbyBvIGNhbXBvIHBlcmRlIG8gZm9jby5cbiAgICAgKi9cbiAgICBvbkJsdXI/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGNoYW1hZG8gcXVhbmRvIG8gY2FtcG8gcmVjZWJlIGZvY28uXG4gICAgICovXG4gICAgb25Gb2N1cz86IChldmVudDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBjaGFtYWRvIHF1YW5kbyBhIG3DoXNjYXJhIMOpIGNvbXBsZXRhbWVudGUgcHJlZW5jaGlkYS5cbiAgICAgKi9cbiAgICBvbkNvbXBsZXRlPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIGNoYW1hZG8gYSBjYWRhIGFsdGVyYcOnw6NvIG5vIHZhbG9yIGRvIGlucHV0LlxuICAgICAqL1xuICAgIG9uSW5wdXQ/OiAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG59XG5cbmRlY2xhcmUgbW9kdWxlICcuL2ZpZWxkJyB7XG4gICAgZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGVNYXAge1xuICAgICAgICBzdHJpbmc6IFRleHRGaWVsZENvbmZpZztcbiAgICAgICAgYmluYXJ5OiBUZXh0RmllbGRDb25maWc7XG4gICAgfVxufVxuXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9jb25maWd1cmF0aW9ucy9maWVsZHMvdGV4dC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkb25Db25maWcgfSBmcm9tICcuLi8uLi9hZGRvbi1jb25maWcnO1xuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuL2ZpZWxkJztcblxudHlwZSBzdHJpbmdGbiA9ICgpID0+IHN0cmluZztcbnR5cGUgYm9vbGVhbkZuID0gKCkgPT4gYm9vbGVhbjtcblxuLyoqXG4gKiBDb25maWd1cmHDp8OjbyBwYXJhIGNhbXBvcyBkZSB0ZXh0byBzaW1wbGVzLlxuICpcbiAqIFVzZSBgdHlwZTogJ3N0cmluZydgIHBhcmEgdGV4dG8gbGl2cmUgZ2VyYWwuXG4gKiBVc2UgYHR5cGU6ICdiaW5hcnknYCBwYXJhIGNhbXBvcyBxdWUgYXJtYXplbmFtIGRhZG9zIGJpbsOhcmlvcyBjb21vIHRleHRvIChleDogYmFzZTY0KS5cbiAqXG4gKiBTdXBvcnRhIG3DoXNjYXJhcyBkZSBlbnRyYWRhLCBhZGRvbnMgbGF0ZXJhaXMsIGZpbHRybyBkZSBjYXJhY3RlcmVzIGUgZXZlbnRvcyBkbyBpbnB1dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0RmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgLyoqXG4gICAgICogYCdzdHJpbmcnYCDigJQgY2FtcG8gZGUgdGV4dG8gbGl2cmUgcGFkcsOjby5cbiAgICAgKiBgJ2JpbmFyeSdgIOKAlCBjYW1wbyBkZSB0ZXh0byB0cmF0YWRvIGNvbW8gZGFkbyBiaW7DoXJpbyAoZXg6IGJhc2U2NCBlbmNvZGluZykuXG4gICAgICovXG4gICAgdHlwZTogJ3N0cmluZycgfCAnYmluYXJ5JztcbiAgICAvKipcbiAgICAgKiBNw6FzY2FyYSBkZSBlbnRyYWRhIGFwbGljYWRhIGFvIGNhbXBvLiBQb2RlIHNlciB1bWEgc3RyaW5nIGZpeGEgb3UgdW1hIGZ1bsOnw6NvIHF1ZSByZXRvcm5hIGEgbcOhc2NhcmEgZGluYW1pY2FtZW50ZS5cbiAgICAgKiBFeGVtcGxvIGRlIG3DoXNjYXJhOiBgJzk5OS45OTkuOTk5LTk5J2AgKENQRiksIGAnKDk5KSA5OTk5OS05OTk5J2AgKHRlbGVmb25lKS5cbiAgICAgKi9cbiAgICBtYXNrPzogc3RyaW5nRm4gfCBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRnVuw6fDo28gcXVlIHJldG9ybmEgYHRydWVgIHF1YW5kbyBvIGNhbXBvIGRldmUgZXN0YXIgZW0gbW9kbyBzb21lbnRlLWxlaXR1cmEuXG4gICAgICogVXNlIHVtYSBmdW7Dp8OjbyBwYXJhIGNvbnRyb2xlIGRpbsOibWljbyBiYXNlYWRvIG5vIGVzdGFkbyBkbyBmb3JtdWzDoXJpby5cbiAgICAgKiBAZXhhbXBsZSAoKSA9PiAhdGhpcy5tb2RlbC5lZGl0YXZlbFxuICAgICAqL1xuICAgIHJlYWRvbmx5PzogKCkgPT4gYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBQYWRyw6NvIHJlZ2V4IHBhcmEgZmlsdHJhciBvcyBjYXJhY3RlcmVzIHBlcm1pdGlkb3MgbmEgZGlnaXRhw6fDo28uXG4gICAgICogUG9kZSBzZXIgdW1hIHN0cmluZyBkZSBwYXR0ZXJuIG91IHVtYSBmdW7Dp8OjbyBxdWUgcmV0b3JuYSBvIHBhZHLDo28uXG4gICAgICogRXhlbXBsbzogYCdbYS16QS1aXSdgIHBlcm1pdGUgYXBlbmFzIGxldHJhcy5cbiAgICAgKi9cbiAgICBjaGFyYWN0ZXJQYXR0ZXJuPzogc3RyaW5nRm4gfCBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUXVhbmRvIGB0cnVlYCwgcmVtb3ZlIG9zIGNhcmFjdGVyZXMgZGEgbcOhc2NhcmEgZG8gdmFsb3IgZW52aWFkbyBhbyBtb2RlbG8uXG4gICAgICogRXhlbXBsbzogY29tIG3DoXNjYXJhIENQRiBgJzk5OS45OTkuOTk5LTk5J2AsIG8gdmFsb3IgYXJtYXplbmFkbyBzZXLDoSBhcGVuYXMgb3MgZMOtZ2l0b3MuXG4gICAgICovXG4gICAgdW5tYXNrPzogYm9vbGVhbkZuIHwgYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaXBvIEhUTUwgZG8gaW5wdXQgKGV4OiBgJ3RleHQnYCwgYCdlbWFpbCdgLCBgJ3RlbCdgLCBgJ3VybCdgKS5cbiAgICAgKiBBZmV0YSBvIHRlY2xhZG8gZXhpYmlkbyBlbSBkaXNwb3NpdGl2b3MgbcOzdmVpcyBlIGEgdmFsaWRhw6fDo28gbmF0aXZhIGRvIGJyb3dzZXIuXG4gICAgICovXG4gICAgaW5wdXRUeXBlPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEZpbHRybyBkZSB0ZWNsYXMgYWNlaXRhcyBubyBjYW1wby4gQWNlaXRhIHVtYSBleHByZXNzw6NvIHJlZ3VsYXIgb3Ugc3RyaW5nLlxuICAgICAqIEV4ZW1wbG86IGAvWzAtOV0vYCBwYXJhIGFjZWl0YXIgYXBlbmFzIG7Dum1lcm9zLlxuICAgICAqL1xuICAgIGtleUZpbHRlcj86IGFueTtcbiAgICAvKipcbiAgICAgKiBBZGRvbiBleGliaWRvIMOgIGVzcXVlcmRhIGRvIGlucHV0IChleDogw61jb25lLCB0ZXh0bywgYm90w6NvKS5cbiAgICAgKiAqKk7Do28gZnVuY2lvbmEgcXVhbmRvIGBtYXNrYCBlc3TDoSBkZWZpbmlkYS4qKlxuICAgICAqL1xuICAgIGxlZnRBZGRvbj86IEFkZG9uQ29uZmlnO1xuICAgIC8qKlxuICAgICAqIEFkZG9uIGV4aWJpZG8gw6AgZGlyZWl0YSBkbyBpbnB1dCAoZXg6IMOtY29uZSwgdGV4dG8sIGJvdMOjbykuXG4gICAgICogKipOw6NvIGZ1bmNpb25hIHF1YW5kbyBgbWFza2AgZXN0w6EgZGVmaW5pZGEuKipcbiAgICAgKi9cbiAgICByaWdodEFkZG9uPzogQWRkb25Db25maWc7XG4gICAgLyoqXG4gICAgICogTsO6bWVybyBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBubyBjYW1wby5cbiAgICAgKi9cbiAgICBtYXhMZW5ndGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgLyoqXG4gICAgICogQ29udHJvbGEgbyBhdXRvY29tcGxldGUgbmF0aXZvIGRvIGJyb3dzZXIuXG4gICAgICogYHRydWVgIGF0aXZhIG8gYXV0b2NvbXBsZXRlOyBgZmFsc2VgIGRlc2F0aXZhLlxuICAgICAqL1xuICAgIGJyb3dzZXJBdXRvY29tcGxldGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEVzdGlsb3MgQ1NTIGlubGluZSBhcGxpY2Fkb3MgZGlyZXRhbWVudGUgbm8gZWxlbWVudG8gZGUgaW5wdXQuXG4gICAgICovXG4gICAgc3R5bGU/OiB7IFtrbGFzczogc3RyaW5nXTogYW55IH07XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgY2hhbWFkbyBxdWFuZG8gbyBjYW1wbyBwZXJkZSBvIGZvY28uXG4gICAgICovXG4gICAgb25CbHVyPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBjaGFtYWRvIHF1YW5kbyBvIGNhbXBvIHJlY2ViZSBmb2NvLlxuICAgICAqL1xuICAgIG9uRm9jdXM/OiAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgY2hhbWFkbyBxdWFuZG8gYSBtw6FzY2FyYSDDqSBjb21wbGV0YW1lbnRlIHByZWVuY2hpZGEuXG4gICAgICovXG4gICAgb25Db21wbGV0ZT86IChldmVudDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBjaGFtYWRvIGEgY2FkYSBhbHRlcmHDp8OjbyBubyB2YWxvciBkbyBpbnB1dC5cbiAgICAgKi9cbiAgICBvbklucHV0PzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnLi9maWVsZCcge1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlTWFwIHtcbiAgICAgICAgc3RyaW5nOiBUZXh0RmllbGRDb25maWc7XG4gICAgICAgIGJpbmFyeTogVGV4dEZpZWxkQ29uZmlnO1xuICAgIH1cbn1cblxuIl19
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, Component, EventEmitter, inject, input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
- import { NgClass, NgTemplateOutlet } from '@angular/common';
3
+ import { NgClass } from '@angular/common';
4
4
  import { BignumberInputModule } from '@seniorsistemas/angular-components/bignumber-input';
5
- import { ButtonComponent } from '@seniorsistemas/angular-components/button';
5
+ import { InputGroupComponent } from '@seniorsistemas/angular-components/input-group';
6
6
  import { InputMaskDirective } from '@seniorsistemas/angular-components/input-mask';
7
7
  import { InputTextModule } from '@seniorsistemas/angular-components/input-text';
8
8
  import { LocaleService, NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';
@@ -10,6 +10,7 @@ import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
10
10
  import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
11
11
  import { Subject } from 'rxjs';
12
12
  import { first, takeUntil } from 'rxjs/operators';
13
+ import { createAddonResolver } from '../../addon-config';
13
14
  import { FieldLabelComponent } from '../../../components/field-label/field-label.component';
14
15
  import { FormFieldUtilsService } from '../../../services/form-field-utils.service';
15
16
  import * as i0 from "@angular/core";
@@ -22,6 +23,7 @@ export class BignumberFieldComponent {
22
23
  field = input.required();
23
24
  formControl = input.required();
24
25
  fieldUtils = inject(FormFieldUtilsService);
26
+ toAddon = createAddonResolver(this.fieldUtils, () => this.formControl().disabled);
25
27
  onInput = new EventEmitter();
26
28
  onFocus = new EventEmitter();
27
29
  onComplete = new EventEmitter();
@@ -100,7 +102,7 @@ export class BignumberFieldComponent {
100
102
  }
101
103
  }
102
104
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BignumberFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onInput: "onInput", onFocus: "onFocus", onComplete: "onComplete" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "@let _field = field();\n@let isFormDisabled = formControl().disabled;\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n @let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n <input\n #inputRef\n sInputText\n class=\"input-text mousetrap\"\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sInputMask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [autoClear]=\"autoClear\"\n [formControl]=\"formControl()\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (maskComplete)=\"onComplete.next($event)\"\n (input)=\"onInput.next($event)\"\n />\n} @else {\n <div class=\"bignumber-field\">\n @if (_field.leftAddon) {\n <div class=\"button-left\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.leftAddon }\"></ng-container>\n </div>\n }\n @let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n @let scale = fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale;\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [minDecimalPlaces]=\"scale\"\n [maxDecimalPlaces]=\"scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [blockDecimalOverflow]=\"true\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n sInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n <div class=\"button-right\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.rightAddon }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template\n #addonRender\n let-button=\"button\"\n>\n <s-button\n [label]=\"button.label\"\n [priority]=\"button.priority ?? 'default'\"\n [iconClass]=\"button.icon\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(button) || isFormDisabled\"\n [auxiliary]=\"false\"\n (clicked)=\"button.callback?.()\"\n />\n</ng-template>\n\n", styles: [".bignumber-field{display:flex;width:100%}.bignumber-field .input-text{width:auto;flex-grow:1}.bignumber-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.bignumber-field:has(.button-left) s-button,.bignumber-field:has(.button-left) .button-left button.s-button-with-text{min-width:40px!important}.bignumber-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.bignumber-field:has(input:focus-visible) .button-left button{outline:2px solid var(--s-focus-ring-color)!important;outline-offset:-2px}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.bignumber-field:has(.button-left button:focus) .input-text{border-color:#428bca!important}.bignumber-field:has(.button-left button:focus) .button-right button{border-color:#428bca!important}.bignumber-field:has(.button-right) .input-text{border-top-right-radius:0;border-bottom-right-radius:0}.bignumber-field:has(.button-right) s-button,.bignumber-field:has(.button-right) .button-right button.s-button-with-text{min-width:40px!important}.bignumber-field:has(.button-right) .button-right button{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.bignumber-field:has(input:focus-visible) .button-right button{outline:2px solid var(--s-focus-ring-color)!important;outline-offset:-2px}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-right button{border-color:#c13018!important}.bignumber-field:has(.button-right button:focus) .input-text{border-color:#428bca!important}.bignumber-field:has(.button-right button:focus) .button-left button{border-color:#428bca!important}\n"], dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "directive", type: InputMaskDirective, selector: "input[sInputMask]", inputs: ["sInputMask", "slotChar", "unmask", "characterPattern", "autoClear"], outputs: ["maskComplete"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: BignumberInputModule }, { kind: "directive", type: i2.BignumberInputDirective, selector: "input[sBignumberInput]", inputs: ["precision", "scale", "minDecimalPlaces", "maxDecimalPlaces", "decimalSeparator", "thousandsSeparator", "thousandSeparator", "alignTo", "allowNegative", "blockDecimalOverflow", "placeholder"], outputs: ["minDecimalPlacesChange", "maxDecimalPlacesChange", "decimalSeparatorChange", "thousandSeparatorChange", "placeholderChange", "pasteRejected"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i3.InputTextDirective, selector: "input[sInputText]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BignumberFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onInput: "onInput", onFocus: "onFocus", onComplete: "onComplete" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n\n@let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n@let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n@let scale = fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale;\n\n<s-input-group\n [leftAddon]=\"toAddon(_field.leftAddon)\"\n [rightAddon]=\"toAddon(_field.rightAddon)\"\n>\n @if (_field.mask) {\n <input\n #inputRef\n sInputText\n class=\"input-text mousetrap\"\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sInputMask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [autoClear]=\"autoClear\"\n [formControl]=\"formControl()\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (maskComplete)=\"onComplete.next($event)\"\n (input)=\"onInput.next($event)\"\n />\n } @else {\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [minDecimalPlaces]=\"scale\"\n [maxDecimalPlaces]=\"scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [blockDecimalOverflow]=\"true\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n sInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n }\n</s-input-group>\n", dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "directive", type: InputMaskDirective, selector: "input[sInputMask]", inputs: ["sInputMask", "slotChar", "unmask", "characterPattern", "autoClear"], outputs: ["maskComplete"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: InputGroupComponent, selector: "s-input-group", inputs: ["leftAddon", "rightAddon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: BignumberInputModule }, { kind: "directive", type: i2.BignumberInputDirective, selector: "input[sBignumberInput]", inputs: ["precision", "scale", "minDecimalPlaces", "maxDecimalPlaces", "decimalSeparator", "thousandsSeparator", "thousandSeparator", "alignTo", "allowNegative", "blockDecimalOverflow", "placeholder"], outputs: ["minDecimalPlacesChange", "maxDecimalPlacesChange", "decimalSeparatorChange", "thousandSeparatorChange", "placeholderChange", "pasteRejected"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i3.InputTextDirective, selector: "input[sInputText]" }], encapsulation: i0.ViewEncapsulation.None });
104
106
  }
105
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberFieldComponent, decorators: [{
106
108
  type: Component,
@@ -109,12 +111,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
109
111
  InputMaskDirective,
110
112
  TooltipDirective,
111
113
  ReactiveFormsModule,
112
- ButtonComponent,
114
+ InputGroupComponent,
113
115
  NgClass,
114
116
  BignumberInputModule,
115
117
  InputTextModule,
116
- NgTemplateOutlet,
117
- ], template: "@let _field = field();\n@let isFormDisabled = formControl().disabled;\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n @let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n <input\n #inputRef\n sInputText\n class=\"input-text mousetrap\"\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sInputMask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [autoClear]=\"autoClear\"\n [formControl]=\"formControl()\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (maskComplete)=\"onComplete.next($event)\"\n (input)=\"onInput.next($event)\"\n />\n} @else {\n <div class=\"bignumber-field\">\n @if (_field.leftAddon) {\n <div class=\"button-left\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.leftAddon }\"></ng-container>\n </div>\n }\n @let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n @let scale = fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale;\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [minDecimalPlaces]=\"scale\"\n [maxDecimalPlaces]=\"scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [blockDecimalOverflow]=\"true\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n sInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n <div class=\"button-right\">\n <ng-container *ngTemplateOutlet=\"addonRender; context: { button: _field.rightAddon }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template\n #addonRender\n let-button=\"button\"\n>\n <s-button\n [label]=\"button.label\"\n [priority]=\"button.priority ?? 'default'\"\n [iconClass]=\"button.icon\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(button) || isFormDisabled\"\n [auxiliary]=\"false\"\n (clicked)=\"button.callback?.()\"\n />\n</ng-template>\n\n", styles: [".bignumber-field{display:flex;width:100%}.bignumber-field .input-text{width:auto;flex-grow:1}.bignumber-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.bignumber-field:has(.button-left) s-button,.bignumber-field:has(.button-left) .button-left button.s-button-with-text{min-width:40px!important}.bignumber-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.bignumber-field:has(input:focus-visible) .button-left button{outline:2px solid var(--s-focus-ring-color)!important;outline-offset:-2px}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.bignumber-field:has(.button-left button:focus) .input-text{border-color:#428bca!important}.bignumber-field:has(.button-left button:focus) .button-right button{border-color:#428bca!important}.bignumber-field:has(.button-right) .input-text{border-top-right-radius:0;border-bottom-right-radius:0}.bignumber-field:has(.button-right) s-button,.bignumber-field:has(.button-right) .button-right button.s-button-with-text{min-width:40px!important}.bignumber-field:has(.button-right) .button-right button{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.bignumber-field:has(input:focus-visible) .button-right button{outline:2px solid var(--s-focus-ring-color)!important;outline-offset:-2px}.bignumber-field:has(input.ng-invalid.ng-dirty) .button-right button{border-color:#c13018!important}.bignumber-field:has(.button-right button:focus) .input-text{border-color:#428bca!important}.bignumber-field:has(.button-right button:focus) .button-left button{border-color:#428bca!important}\n"] }]
118
+ ], template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n\n@let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n@let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n@let scale = fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale;\n\n<s-input-group\n [leftAddon]=\"toAddon(_field.leftAddon)\"\n [rightAddon]=\"toAddon(_field.rightAddon)\"\n>\n @if (_field.mask) {\n <input\n #inputRef\n sInputText\n class=\"input-text mousetrap\"\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sInputMask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [autoClear]=\"autoClear\"\n [formControl]=\"formControl()\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (maskComplete)=\"onComplete.next($event)\"\n (input)=\"onInput.next($event)\"\n />\n } @else {\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [minDecimalPlaces]=\"scale\"\n [maxDecimalPlaces]=\"scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [blockDecimalOverflow]=\"true\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n sInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n class=\"input-text\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n }\n</s-input-group>\n" }]
118
119
  }], propDecorators: { onInput: [{
119
120
  type: Output
120
121
  }], onFocus: [{
@@ -125,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
125
126
  type: ViewChild,
126
127
  args: ['inputRef']
127
128
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2JpZ251bWJlci9iaWdudW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFB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LG1CQUFtQiwwa0JBQ25CLGVBQWUsNFhBQ2YsT0FBTyxtRkFDUCxvQkFBb0IsK2RBQ3BCLGVBQWUsa0hBQ2YsZ0JBQWdCOzs0RkFHWCx1QkFBdUI7a0JBakJuQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ25COzhCQWNNLE9BQU87c0JBRmIsTUFBTTtnQkFNQSxPQUFPO3NCQUZiLE1BQU07Z0JBTUEsVUFBVTtzQkFGaEIsTUFBTTtnQkFJZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmlnbnVtYmVySW5wdXRNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2JpZ251bWJlci1pbnB1dCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBJbnB1dE1hc2tEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2lucHV0LW1hc2snO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC10ZXh0JztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UsIE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGaWVsZExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9maWVsZC1sYWJlbC9maWVsZC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZC11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZCc7XG5pbXBvcnQgeyBOdW1iZXJGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9udW1iZXItZmllbGQnO1xuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi4vYmFzZS1maWVsZC1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJ2JpZ251bWJlci1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRmllbGRMYWJlbENvbXBvbmVudCxcbiAgICAgICAgSW5wdXRNYXNrRGlyZWN0aXZlLFxuICAgICAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEJpZ251bWJlcklucHV0TW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnbnVtYmVyRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBmaWVsZCA9IGlucHV0LnJlcXVpcmVkPEJpZ251bWJlckZpZWxkQ29uZmlnIHwgTnVtYmVyRmllbGRDb25maWc+KCk7XG5cbiAgICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuXG4gICAgZmllbGRVdGlscyA9IGluamVjdChGb3JtRmllbGRVdGlsc1NlcnZpY2UpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcHVibGljIG9uSW5wdXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcHVibGljIG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBpbnB1dFJlZjogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkKCk7XG4gICAgICAgIHRoaXMub25TY2FsZSgpO1xuICAgICAgICBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0gZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA/PyBuZXcgTnVtYmVyTG9jYWxlT3B0aW9ucygpO1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGZpZWxkLmF1dG9DbGVhciA9IGZpZWxkLmF1dG9DbGVhciA/PyB0cnVlO1xuICAgICAgICAgICAgZmllbGQuYWxsb3dOZWdhdGl2ZSA9IGZpZWxkLmFsbG93TmVnYXRpdmUgPz8gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBmaWVsZC5hbGlnblRvID0gZmllbGQuc2NhbGUgPyAncmlnaHQnIDogJ2xlZnQnO1xuXG4gICAgICAgIHRoaXMub25Mb2NhbGVTZXJ2aWNlKCk7XG5cbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKCkub25Gb2N1cykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5vbkZvY3VzPy4oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uSW5wdXQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZCgpLm9uSW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkub25JbnB1dD8uKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5vbkNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm9uQ29tcGxldGU/LihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxvY2FsZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgfHwgdGhpcy5maWVsZCgpLnR5cGUgPT09ICdkb3VibGUnID8gJycgOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID8/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6IHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgfHwgdGhpcy5maWVsZCgpLnR5cGUgPT09ICdkb3VibGUnID8gJycgOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25TY2FsZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gQ3VycmVudGx5LCB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGZvciB0aGUgZm9sbG93aW5nIHR5cGVzXG4gICAgICAgIC8vICdpbnRlZ2VyJywgJ2RlY2ltYWwnLCAnbnVtYmVyJ1xuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5maWVsZCgpLnNjYWxlKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZCgpLnNjYWxlID0gdGhpcy5maWVsZCgpLnR5cGUgPT09ICdpbnRlZ2VyJyA/IDAgOiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AbGV0IGlzRm9ybURpc2FibGVkID0gZm9ybUNvbnRyb2woKS5kaXNhYmxlZDtcbkBpZiAoaW5wdXRSZWYpIHtcbiAgICA8cy1maWVsZC1sYWJlbFxuICAgICAgICBbZmllbGRdPVwiX2ZpZWxkXCJcbiAgICAgICAgW2ZpZWxkQ29udGFpbmVyUmVmXT1cImlucHV0UmVmIS5uYXRpdmVFbGVtZW50XCJcbiAgICAvPlxufVxuQGlmIChfZmllbGQubWFzaykge1xuICAgIEBsZXQgYXV0b0NsZWFyID0gX2ZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gKF9maWVsZC5hdXRvQ2xlYXIgPz8gdHJ1ZSkgOiBmYWxzZTtcbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0UmVmXG4gICAgICAgIHNJbnB1dFRleHRcbiAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0IG1vdXNldHJhcFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgW3NJbnB1dE1hc2tdPVwiZmllbGRVdGlscy5nZXRGaWVsZFByb3BlcnR5TWFzayhfZmllbGQubWFzaylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyID8/ICcnXCJcbiAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBbYXV0b0NsZWFyXT1cImF1dG9DbGVhclwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAgICAgKGJsdXIpPVwiX2ZpZWxkLm9uQmx1ciA/IF9maWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cy5uZXh0KCRldmVudClcIlxuICAgICAgICAobWFza0NvbXBsZXRlKT1cIm9uQ29tcGxldGUubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQubmV4dCgkZXZlbnQpXCJcbiAgICAvPlxufSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImJpZ251bWJlci1maWVsZFwiPlxuICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRvblJlbmRlcjsgY29udGV4dDogeyBidXR0b246IF9maWVsZC5sZWZ0QWRkb24gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGxldCBhbGxvd05lZ2F0aXZlID0gX2ZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gKF9maWVsZC5hbGxvd05lZ2F0aXZlID8/IHRydWUpIDogZmFsc2U7XG4gICAgICAgIEBsZXQgc2NhbGUgPSBmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnNjYWxlKSA/IGZpZWxkVXRpbHMudHJpZ2dlcihfZmllbGQuc2NhbGUpIDogX2ZpZWxkLnNjYWxlO1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFJlZlxuICAgICAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICBzQmlnbnVtYmVySW5wdXRcbiAgICAgICAgICAgIFthbGxvd05lZ2F0aXZlXT1cImFsbG93TmVnYXRpdmVcIlxuICAgICAgICAgICAgW3ByZWNpc2lvbl09XCJcbiAgICAgICAgICAgICAgICBmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnByZWNpc2lvbikgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnByZWNpc2lvbikgOiBfZmllbGQucHJlY2lzaW9uXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW21pbkRlY2ltYWxQbGFjZXNdPVwic2NhbGVcIlxuICAgICAgICAgICAgW21heERlY2ltYWxQbGFjZXNdPVwic2NhbGVcIlxuICAgICAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IgPz8gJydcIlxuICAgICAgICAgICAgW3Rob3VzYW5kU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IgPz8gJydcIlxuICAgICAgICAgICAgW2Jsb2NrRGVjaW1hbE92ZXJmbG93XT1cInRydWVcIlxuICAgICAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcbiAgICAgICAgICAgIHNJbnB1dFRleHRcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiX2ZpZWxkLmJyb3dzZXJBdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ21vdXNldHJhcCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0XCJcbiAgICAgICAgICAgIChibHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAoX2ZpZWxkLnJpZ2h0QWRkb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWRkb25SZW5kZXI7IGNvbnRleHQ6IHsgYnV0dG9uOiBfZmllbGQucmlnaHRBZGRvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGVcbiAgICAjYWRkb25SZW5kZXJcbiAgICBsZXQtYnV0dG9uPVwiYnV0dG9uXCJcbj5cbiAgICA8cy1idXR0b25cbiAgICAgICAgW2xhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgIFtwcmlvcml0eV09XCJidXR0b24ucHJpb3JpdHkgPz8gJ2RlZmF1bHQnXCJcbiAgICAgICAgW2ljb25DbGFzc109XCJidXR0b24uaWNvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZFV0aWxzLmZpZWxkUHJvcGVydHlJc0Rpc2FibGVkKGJ1dHRvbikgfHwgaXNGb3JtRGlzYWJsZWRcIlxuICAgICAgICBbYXV4aWxpYXJ5XT1cImZhbHNlXCJcbiAgICAgICAgKGNsaWNrZWQpPVwiYnV0dG9uLmNhbGxiYWNrPy4oKVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2JpZ251bWJlci9iaWdudW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQW9CbkYsTUFBTSxPQUFPLHVCQUF1QjtJQUNmLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFL0QsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTRDLENBQUM7SUFFbkUsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWUsQ0FBQztJQUU1QyxVQUFVLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFeEIsT0FBTyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBSTlGLE9BQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUloRCxPQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFJaEQsVUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRW5DLFFBQVEsR0FBc0IsSUFBSSxDQUFDO0lBRWxELGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXJDLFFBQVE7UUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsS0FBSyxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDbkYsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7WUFDMUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztRQUN0RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUUvQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM3RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN0RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN6RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsYUFBYTthQUNiLFNBQVMsRUFBRTthQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNiLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO29CQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CLEdBQUc7d0JBQy9CLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLG1CQUFtQjt3QkFDbkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUU7cUJBQ25FLENBQUM7Z0JBQ04sQ0FBQztnQkFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLENBQUM7b0JBQ3hELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUIsR0FBRzt3QkFDL0IsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CO3dCQUNuQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLElBQUksRUFBRTtxQkFDdEUsQ0FBQztnQkFDTixDQUFDO2dCQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLENBQUM7b0JBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUIsR0FBRzt3QkFDL0IsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CO3dCQUNuQyxjQUFjLEVBQ1YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTtxQkFDcEYsQ0FBQztnQkFDTixDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FDUixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CLElBQUk7Z0JBQ3BFLGtCQUFrQixFQUFFLEdBQUc7Z0JBQ3ZCLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3JCLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hHLENBQUM7U0FDVCxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sT0FBTztRQUNYLDREQUE0RDtRQUM1RCxpQ0FBaUM7UUFDakMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0wsQ0FBQzt3R0EvR1EsdUJBQXVCOzRGQUF2Qix1QkFBdUIseWdCQ2xEcEMscWpGQW1FQSw0Q0QzQlEsbUJBQW1CLGtHQUNuQixrQkFBa0Isd0tBQ2xCLGdCQUFnQiwyTkFDaEIsbUJBQW1CLDBrQkFDbkIsbUJBQW1CLCtGQUNuQixPQUFPLG1GQUNQLG9CQUFvQiwrZEFDcEIsZUFBZTs7NEZBR1YsdUJBQXVCO2tCQWZuQyxTQUFTO29DQUVTLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDbEI7OEJBZ0JNLE9BQU87c0JBRmIsTUFBTTtnQkFNQSxPQUFPO3NCQUZiLE1BQU07Z0JBTUEsVUFBVTtzQkFGaEIsTUFBTTtnQkFJZ0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmlnbnVtYmVySW5wdXRNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2JpZ251bWJlci1pbnB1dCc7XG5pbXBvcnQgeyBJbnB1dEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC1ncm91cCc7XG5pbXBvcnQgeyBJbnB1dE1hc2tEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2lucHV0LW1hc2snO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC10ZXh0JztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UsIE51bWJlckxvY2FsZU9wdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjcmVhdGVBZGRvblJlc29sdmVyIH0gZnJvbSAnLi4vLi4vYWRkb24tY29uZmlnJztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmlnbnVtYmVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvYmlnbnVtYmVyLWZpZWxkJztcbmltcG9ydCB7IE51bWJlckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL251bWJlci1maWVsZCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGaWVsZExhYmVsQ29tcG9uZW50LFxuICAgICAgICBJbnB1dE1hc2tEaXJlY3RpdmUsXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEJpZ251bWJlcklucHV0TW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQmlnbnVtYmVyRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBmaWVsZCA9IGlucHV0LnJlcXVpcmVkPEJpZ251bWJlckZpZWxkQ29uZmlnIHwgTnVtYmVyRmllbGRDb25maWc+KCk7XG5cbiAgICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuXG4gICAgZmllbGRVdGlscyA9IGluamVjdChGb3JtRmllbGRVdGlsc1NlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvQWRkb24gPSBjcmVhdGVBZGRvblJlc29sdmVyKHRoaXMuZmllbGRVdGlscywgKCkgPT4gdGhpcy5mb3JtQ29udHJvbCgpLmRpc2FibGVkKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbklucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHB1YmxpYyBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJykgaW5wdXRSZWY6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZCgpO1xuICAgICAgICB0aGlzLm9uU2NhbGUoKTtcbiAgICAgICAgZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPz8gbmV3IE51bWJlckxvY2FsZU9wdGlvbnMoKTtcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBmaWVsZC5hdXRvQ2xlYXIgPSBmaWVsZC5hdXRvQ2xlYXIgPz8gdHJ1ZTtcbiAgICAgICAgICAgIGZpZWxkLmFsbG93TmVnYXRpdmUgPSBmaWVsZC5hbGxvd05lZ2F0aXZlID8/IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZmllbGQuYWxpZ25UbyA9IGZpZWxkLnNjYWxlID8gJ3JpZ2h0JyA6ICdsZWZ0JztcblxuICAgICAgICB0aGlzLm9uTG9jYWxlU2VydmljZSgpO1xuXG4gICAgICAgIHRoaXMub25Gb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZCgpLm9uRm9jdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkub25Gb2N1cz8uKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vbklucHV0LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5vbklucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm9uSW5wdXQ/LihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25Db21wbGV0ZS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKCkub25Db21wbGV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5vbkNvbXBsZXRlPy4oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Mb2NhbGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRMb2NhbGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkudHlwZSA9PT0gJ2ludGVnZXInIHx8IHRoaXMuZmllbGQoKS50eXBlID09PSAnZG91YmxlJyA/ICcnIDogJ1IkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAodGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA/PyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiB0aGlzLmZpZWxkKCkudHlwZSA9PT0gJ2ludGVnZXInIHx8IHRoaXMuZmllbGQoKS50eXBlID09PSAnZG91YmxlJyA/ICcnIDogJ1IkJyxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2NhbGUoKTogdm9pZCB7XG4gICAgICAgIC8vIEN1cnJlbnRseSwgdGhpcyBjb21wb25lbnQgaXMgdXNlZCBmb3IgdGhlIGZvbGxvd2luZyB0eXBlc1xuICAgICAgICAvLyAnaW50ZWdlcicsICdkZWNpbWFsJywgJ251bWJlcidcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuZmllbGQoKS5zY2FsZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQoKS5zY2FsZSA9IHRoaXMuZmllbGQoKS50eXBlID09PSAnaW50ZWdlcicgPyAwIDogMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiQGxldCBfZmllbGQgPSBmaWVsZCgpO1xuQGlmIChpbnB1dFJlZikge1xuICAgIDxzLWZpZWxkLWxhYmVsXG4gICAgICAgIFtmaWVsZF09XCJfZmllbGRcIlxuICAgICAgICBbZmllbGRDb250YWluZXJSZWZdPVwiaW5wdXRSZWYhLm5hdGl2ZUVsZW1lbnRcIlxuICAgIC8+XG59XG5cbkBsZXQgYXV0b0NsZWFyID0gX2ZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gKF9maWVsZC5hdXRvQ2xlYXIgPz8gdHJ1ZSkgOiBmYWxzZTtcbkBsZXQgYWxsb3dOZWdhdGl2ZSA9IF9maWVsZC50eXBlID09PSAnbnVtYmVyJyA/IChfZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyB0cnVlKSA6IGZhbHNlO1xuQGxldCBzY2FsZSA9IGZpZWxkVXRpbHMuaXNGdW5jdGlvbihfZmllbGQuc2NhbGUpID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5zY2FsZSkgOiBfZmllbGQuc2NhbGU7XG5cbjxzLWlucHV0LWdyb3VwXG4gICAgW2xlZnRBZGRvbl09XCJ0b0FkZG9uKF9maWVsZC5sZWZ0QWRkb24pXCJcbiAgICBbcmlnaHRBZGRvbl09XCJ0b0FkZG9uKF9maWVsZC5yaWdodEFkZG9uKVwiXG4+XG4gICAgQGlmIChfZmllbGQubWFzaykge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFJlZlxuICAgICAgICAgICAgc0lucHV0VGV4dFxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0IG1vdXNldHJhcFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIFtzSW5wdXRNYXNrXT1cImZpZWxkVXRpbHMuZ2V0RmllbGRQcm9wZXJ0eU1hc2soX2ZpZWxkLm1hc2spXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgW2F1dG9DbGVhcl09XCJhdXRvQ2xlYXJcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAgICAgKGJsdXIpPVwiX2ZpZWxkLm9uQmx1ciA/IF9maWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtYXNrQ29tcGxldGUpPVwib25Db21wbGV0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICAgIFtpZF09XCJfZmllbGQuaWQgfHwgX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgc0JpZ251bWJlcklucHV0XG4gICAgICAgICAgICBbYWxsb3dOZWdhdGl2ZV09XCJhbGxvd05lZ2F0aXZlXCJcbiAgICAgICAgICAgIFtwcmVjaXNpb25dPVwiXG4gICAgICAgICAgICAgICAgZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5wcmVjaXNpb24pID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5wcmVjaXNpb24pIDogX2ZpZWxkLnByZWNpc2lvblxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFttaW5EZWNpbWFsUGxhY2VzXT1cInNjYWxlXCJcbiAgICAgICAgICAgIFttYXhEZWNpbWFsUGxhY2VzXT1cInNjYWxlXCJcbiAgICAgICAgICAgIFtkZWNpbWFsU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yID8/ICcnXCJcbiAgICAgICAgICAgIFt0aG91c2FuZFNlcGFyYXRvcl09XCJfZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yID8/ICcnXCJcbiAgICAgICAgICAgIFtibG9ja0RlY2ltYWxPdmVyZmxvd109XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICBzSW5wdXRUZXh0XG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIl9maWVsZC5icm93c2VyQXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidtb3VzZXRyYXAnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dFwiXG4gICAgICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cy5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAvPlxuICAgIH1cbjwvcy1pbnB1dC1ncm91cD5cbiJdfQ==
@@ -2,8 +2,8 @@ import { NgClass } from '@angular/common';
2
2
  import { ChangeDetectorRef, Component, computed, DestroyRef, inject, input, viewChild, ViewEncapsulation, } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { ReactiveFormsModule } from '@angular/forms';
5
- import { ButtonComponent } from '@seniorsistemas/angular-components/button';
6
5
  import { currencies, CurrencyService } from '@seniorsistemas/angular-components/currency';
6
+ import { InputGroupComponent } from '@seniorsistemas/angular-components/input-group';
7
7
  import { InputMaskDirective } from '@seniorsistemas/angular-components/input-mask';
8
8
  import { InputTextDirective } from '@seniorsistemas/angular-components/input-text';
9
9
  import { LocaleService } from '@seniorsistemas/angular-components/locale';
@@ -29,6 +29,7 @@ export class CurrencyFieldComponent {
29
29
  fieldUtils = inject(FormFieldUtilsService);
30
30
  currencies = currencies;
31
31
  mask;
32
+ isFormDisabled = () => this.formControl().disabled;
32
33
  inputRef = computed(() => this.inputRefComponent()?.nativeElement);
33
34
  ngOnInit() {
34
35
  this.onLocaleService();
@@ -77,7 +78,7 @@ export class CurrencyFieldComponent {
77
78
  return field.alignTo === 'right' ? NumberAlignmentOption.RIGHT : NumberAlignmentOption.LEFT;
78
79
  }
79
80
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CurrencyFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "inputRefComponent", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@let _field = field();\r\n@let isFormDisabled = formControl().disabled;\r\n@if (inputRef()) {\r\n <s-field-label\r\n [field]=\"_field\"\r\n [fieldContainerRef]=\"inputRef()\"\r\n ></s-field-label>\r\n}\r\n@let hasMask = !!_field.mask;\r\n@let currencySymbol = _field.currency\r\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\r\n : _field.numberLocaleOptions?.currencySymbol;\r\n\r\n<div class=\"currency-field\">\r\n @if (currencySymbol) {\r\n <div class=\"button-left\">\r\n <s-button\r\n [label]=\"currencySymbol\"\r\n priority=\"default\"\r\n [disabled]=\"isFormDisabled\"\r\n [auxiliary]=\"false\"\r\n />\r\n </div>\r\n }\r\n\r\n @if (hasMask) {\r\n <input\r\n #inputRef\r\n class=\"input-text mousetrap\"\r\n sInputText\r\n type=\"text\"\r\n [id]=\"_field.id || _field.name\"\r\n [name]=\"_field.name\"\r\n [formControl]=\"formControl()\"\r\n [sInputMask]=\"mask\"\r\n [placeholder]=\"_field.placeholder ?? ''\"\r\n slotChar=\"_\"\r\n [sTooltip]=\"_field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\r\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\r\n (maskComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\r\n (input)=\"_field.onInput ? _field.onInput($event) : null\"\r\n />\r\n } @else if (!hasMask) {\r\n <input\r\n #inputRef\r\n type=\"text\"\r\n [id]=\"_field.id || _field.name\"\r\n class=\"input-text\"\r\n sInputText\r\n [name]=\"_field.name\"\r\n [formControl]=\"formControl()\"\r\n sNumberInput\r\n [precision]=\"\r\n _field.precision\r\n ? fieldUtils.isFunction(_field.precision)\r\n ? fieldUtils.trigger(_field.precision)\r\n : _field.precision\r\n : _field.currency && _field.currency()\r\n ? currencies[_field.currency()].precision\r\n : 15\r\n \"\r\n [scale]=\"\r\n _field.scale\r\n ? fieldUtils.isFunction(_field.scale)\r\n ? fieldUtils.trigger(_field.scale)\r\n : _field.scale\r\n : _field.currency && _field.currency()\r\n ? currencies[_field.currency()].scale\r\n : 2\r\n \"\r\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\r\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\r\n [alignTo]=\"parseAlignTo(_field)\"\r\n [sTooltip]=\"_field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [placeholder]=\"_field.placeholder ?? ''\"\r\n [showDelay]=\"500\"\r\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\r\n [ngClass]=\"'mousetrap'\"\r\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\r\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\r\n />\r\n }\r\n</div>\r\n", styles: [".currency-field{display:flex;width:100%}.currency-field .input-text{width:auto;flex-grow:1}.currency-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.currency-field:has(.button-left) s-button,.currency-field:has(.button-left) .button-left button.s-button-with-text{min-width:40px!important}.currency-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.currency-field:has(input:focus-visible) .button-left button{outline:2px solid var(--s-focus-ring-color)!important;outline-offset:-2px}.currency-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.currency-field:has(.button-left button:focus) .input-text{border-color:#428bca!important}.currency-field:has(.button-left button:focus) .button-right button{border-color:#428bca!important}\n"], dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: InputMaskDirective, selector: "input[sInputMask]", inputs: ["sInputMask", "slotChar", "unmask", "characterPattern", "autoClear"], outputs: ["maskComplete"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: NumberInputModule }, { kind: "directive", type: i2.NumberInputDirective, selector: "input[sNumberInput]" }, { kind: "directive", type: InputTextDirective, selector: "input[sInputText]" }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }], encapsulation: i0.ViewEncapsulation.None });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CurrencyFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "inputRefComponent", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n@let currencySymbol =\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol;\n\n@let currencyAddon = currencySymbol ? { label: currencySymbol, disabled: isFormDisabled } : undefined;\n\n<s-input-group [leftAddon]=\"currencyAddon\">\n @if (hasMask) {\n <input\n #inputRef\n class=\"input-text mousetrap\"\n sInputText\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [sInputMask]=\"mask\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (maskComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (input)=\"_field.onInput ? _field.onInput($event) : null\"\n />\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"input-text\"\n sInputText\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [blockDecimalOverflow]=\"true\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</s-input-group>\n", dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: InputMaskDirective, selector: "input[sInputMask]", inputs: ["sInputMask", "slotChar", "unmask", "characterPattern", "autoClear"], outputs: ["maskComplete"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: NumberInputModule }, { kind: "directive", type: i2.NumberInputDirective, selector: "input[sNumberInput]" }, { kind: "directive", type: InputTextDirective, selector: "input[sInputText]" }, { kind: "component", type: InputGroupComponent, selector: "s-input-group", inputs: ["leftAddon", "rightAddon"] }], encapsulation: i0.ViewEncapsulation.None });
81
82
  }
82
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyFieldComponent, decorators: [{
83
84
  type: Component,
@@ -89,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
89
90
  TooltipDirective,
90
91
  NumberInputModule,
91
92
  InputTextDirective,
92
- ButtonComponent,
93
- ], encapsulation: ViewEncapsulation.None, template: "@let _field = field();\r\n@let isFormDisabled = formControl().disabled;\r\n@if (inputRef()) {\r\n <s-field-label\r\n [field]=\"_field\"\r\n [fieldContainerRef]=\"inputRef()\"\r\n ></s-field-label>\r\n}\r\n@let hasMask = !!_field.mask;\r\n@let currencySymbol = _field.currency\r\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\r\n : _field.numberLocaleOptions?.currencySymbol;\r\n\r\n<div class=\"currency-field\">\r\n @if (currencySymbol) {\r\n <div class=\"button-left\">\r\n <s-button\r\n [label]=\"currencySymbol\"\r\n priority=\"default\"\r\n [disabled]=\"isFormDisabled\"\r\n [auxiliary]=\"false\"\r\n />\r\n </div>\r\n }\r\n\r\n @if (hasMask) {\r\n <input\r\n #inputRef\r\n class=\"input-text mousetrap\"\r\n sInputText\r\n type=\"text\"\r\n [id]=\"_field.id || _field.name\"\r\n [name]=\"_field.name\"\r\n [formControl]=\"formControl()\"\r\n [sInputMask]=\"mask\"\r\n [placeholder]=\"_field.placeholder ?? ''\"\r\n slotChar=\"_\"\r\n [sTooltip]=\"_field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\r\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\r\n (maskComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\r\n (input)=\"_field.onInput ? _field.onInput($event) : null\"\r\n />\r\n } @else if (!hasMask) {\r\n <input\r\n #inputRef\r\n type=\"text\"\r\n [id]=\"_field.id || _field.name\"\r\n class=\"input-text\"\r\n sInputText\r\n [name]=\"_field.name\"\r\n [formControl]=\"formControl()\"\r\n sNumberInput\r\n [precision]=\"\r\n _field.precision\r\n ? fieldUtils.isFunction(_field.precision)\r\n ? fieldUtils.trigger(_field.precision)\r\n : _field.precision\r\n : _field.currency && _field.currency()\r\n ? currencies[_field.currency()].precision\r\n : 15\r\n \"\r\n [scale]=\"\r\n _field.scale\r\n ? fieldUtils.isFunction(_field.scale)\r\n ? fieldUtils.trigger(_field.scale)\r\n : _field.scale\r\n : _field.currency && _field.currency()\r\n ? currencies[_field.currency()].scale\r\n : 2\r\n \"\r\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\r\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\r\n [alignTo]=\"parseAlignTo(_field)\"\r\n [sTooltip]=\"_field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [placeholder]=\"_field.placeholder ?? ''\"\r\n [showDelay]=\"500\"\r\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\r\n [ngClass]=\"'mousetrap'\"\r\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\r\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\r\n />\r\n }\r\n</div>\r\n", styles: [".currency-field{display:flex;width:100%}.currency-field .input-text{width:auto;flex-grow:1}.currency-field:has(.button-left) .input-text{border-top-left-radius:0;border-bottom-left-radius:0}.currency-field:has(.button-left) s-button,.currency-field:has(.button-left) .button-left button.s-button-with-text{min-width:40px!important}.currency-field:has(.button-left) .button-left button{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.currency-field:has(input:focus-visible) .button-left button{outline:2px solid var(--s-focus-ring-color)!important;outline-offset:-2px}.currency-field:has(input.ng-invalid.ng-dirty) .button-left button{border-color:#c13018!important}.currency-field:has(.button-left button:focus) .input-text{border-color:#428bca!important}.currency-field:has(.button-left button:focus) .button-right button{border-color:#428bca!important}\n"] }]
93
+ InputGroupComponent,
94
+ ], encapsulation: ViewEncapsulation.None, template: "@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n@let currencySymbol =\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol;\n\n@let currencyAddon = currencySymbol ? { label: currencySymbol, disabled: isFormDisabled } : undefined;\n\n<s-input-group [leftAddon]=\"currencyAddon\">\n @if (hasMask) {\n <input\n #inputRef\n class=\"input-text mousetrap\"\n sInputText\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [sInputMask]=\"mask\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (maskComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (input)=\"_field.onInput ? _field.onInput($event) : null\"\n />\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"input-text\"\n sInputText\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator ?? ''\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator ?? ''\"\n [blockDecimalOverflow]=\"true\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</s-input-group>\n" }]
94
95
  }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUVWLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFF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QUFlO3FCQUNsQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxuICAgIHZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgY3VycmVuY2llcywgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jdXJyZW5jeSc7XG5pbXBvcnQgeyBJbnB1dE1hc2tEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2lucHV0LW1hc2snO1xuaW1wb3J0IHsgSW5wdXRUZXh0RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC10ZXh0JztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBOdW1iZXJBbGlnbm1lbnRPcHRpb24sIE51bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9udW1iZXItaW5wdXQnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRmllbGRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGQtdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBDdXJyZW5jeUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2N1cnJlbmN5LWZpZWxkJztcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uL2Jhc2UtZmllbGQtY29tcG9uZW50JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBTaG91bGQgdXNlIGJpZ251bWJlciBpbnN0ZWFkXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGaWVsZExhYmVsQ29tcG9uZW50LFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBJbnB1dE1hc2tEaXJlY3RpdmUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIE51bWJlcklucHV0TW9kdWxlLFxuICAgICAgICBJbnB1dFRleHREaXJlY3RpdmUsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICByZWFkb25seSBjdXJyZW5jeVNlcnZpY2UgPSBpbmplY3QoQ3VycmVuY3lTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRSZWZDb21wb25lbnQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2lucHV0UmVmJyk7XG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxDdXJyZW5jeUZpZWxkQ29uZmlnPigpO1xuICAgIGZvcm1Db250cm9sID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2w+KCk7XG5cbiAgICBmaWVsZFV0aWxzID0gaW5qZWN0KEZvcm1GaWVsZFV0aWxzU2VydmljZSk7XG5cbiAgICBwdWJsaWMgY3VycmVuY2llcyA9IGN1cnJlbmNpZXM7XG4gICAgcHVibGljIG1hc2s/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgaW5wdXRSZWYgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0UmVmQ29tcG9uZW50KCk/Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Mb2NhbGVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZCgpO1xuICAgICAgICB0aGlzLm1hc2sgPSB0eXBlb2YgZmllbGQubWFzayA9PT0gJ2Z1bmN0aW9uJyA/IGZpZWxkLm1hc2soKSA6IGZpZWxkLm1hc2s7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxvY2FsZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMubG9jYWxlU2VydmljZS5nZXREZWNpbWFsU2VwYXJhdG9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMhLmN1cnJlbmN5U3ltYm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zIS5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldEdyb3VwaW5nU2VwYXJhdG9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zIS5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMhLnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogJ1IkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAodGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA/PyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHBhcnNlQWxpZ25UbyhmaWVsZDogQ3VycmVuY3lGaWVsZENvbmZpZykge1xuICAgICAgICByZXR1cm4gZmllbGQuYWxpZ25UbyA9PT0gJ3JpZ2h0JyA/IE51bWJlckFsaWdubWVudE9wdGlvbi5SSUdIVCA6IE51bWJlckFsaWdubWVudE9wdGlvbi5MRUZUO1xuICAgIH1cbn1cbiIsIkBsZXQgX2ZpZWxkID0gZmllbGQoKTtcclxuQGxldCBpc0Zvcm1EaXNhYmxlZCA9IGZvcm1Db250cm9sKCkuZGlzYWJsZWQ7XHJcbkBpZiAoaW5wdXRSZWYoKSkge1xyXG4gICAgPHMtZmllbGQtbGFiZWxcclxuICAgICAgICBbZmllbGRdPVwiX2ZpZWxkXCJcclxuICAgICAgICBbZmllbGRDb250YWluZXJSZWZdPVwiaW5wdXRSZWYoKVwiXHJcbiAgICA+PC9zLWZpZWxkLWxhYmVsPlxyXG59XHJcbkBsZXQgaGFzTWFzayA9ICEhX2ZpZWxkLm1hc2s7XHJcbkBsZXQgY3VycmVuY3lTeW1ib2wgPSBfZmllbGQuY3VycmVuY3lcclxuICAgID8gY3VycmVuY3lTZXJ2aWNlLmdldEN1cnJlbmN5U3ltYm9sKHsgY3VycmVuY3k6IF9maWVsZC5jdXJyZW5jeSgpIH0pXHJcbiAgICA6IF9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbDtcclxuXHJcbjxkaXYgY2xhc3M9XCJjdXJyZW5jeS1maWVsZFwiPlxyXG4gICAgQGlmIChjdXJyZW5jeVN5bWJvbCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tbGVmdFwiPlxyXG4gICAgICAgICAgICA8cy1idXR0b25cclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjdXJyZW5jeVN5bWJvbFwiXHJcbiAgICAgICAgICAgICAgICBwcmlvcml0eT1cImRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRm9ybURpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgIFthdXhpbGlhcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoaGFzTWFzaykge1xyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjaW5wdXRSZWZcclxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0IG1vdXNldHJhcFwiXHJcbiAgICAgICAgICAgIHNJbnB1dFRleHRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXHJcbiAgICAgICAgICAgIFtzSW5wdXRNYXNrXT1cIm1hc2tcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyID8/ICcnXCJcclxuICAgICAgICAgICAgc2xvdENoYXI9XCJfXCJcclxuICAgICAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcclxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJfZmllbGQub25Gb2N1cyA/IF9maWVsZC5vbkZvY3VzKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgICAgKG1hc2tDb21wbGV0ZSk9XCJfZmllbGQub25Db21wbGV0ZSA/IF9maWVsZC5vbkNvbXBsZXRlKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgICAgKGlucHV0KT1cIl9maWVsZC5vbklucHV0ID8gX2ZpZWxkLm9uSW5wdXQoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgIC8+XHJcbiAgICB9IEBlbHNlIGlmICghaGFzTWFzaykge1xyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjaW5wdXRSZWZcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC10ZXh0XCJcclxuICAgICAgICAgICAgc0lucHV0VGV4dFxyXG4gICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcclxuICAgICAgICAgICAgc051bWJlcklucHV0XHJcbiAgICAgICAgICAgIFtwcmVjaXNpb25dPVwiXHJcbiAgICAgICAgICAgICAgICBfZmllbGQucHJlY2lzaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnByZWNpc2lvbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnByZWNpc2lvbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQucHJlY2lzaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQuY3VycmVuY3kgJiYgX2ZpZWxkLmN1cnJlbmN5KClcclxuICAgICAgICAgICAgICAgICAgICAgID8gY3VycmVuY2llc1tfZmllbGQuY3VycmVuY3koKV0ucHJlY2lzaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IDE1XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIFtzY2FsZV09XCJcclxuICAgICAgICAgICAgICAgIF9maWVsZC5zY2FsZVxyXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5zY2FsZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnNjYWxlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9maWVsZC5zY2FsZVxyXG4gICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLmN1cnJlbmN5ICYmIF9maWVsZC5jdXJyZW5jeSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbmNpZXNbX2ZpZWxkLmN1cnJlbmN5KCldLnNjYWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IDJcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IgPz8gJydcIlxyXG4gICAgICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IgPz8gJydcIlxyXG4gICAgICAgICAgICBbYWxpZ25Ub109XCJwYXJzZUFsaWduVG8oX2ZpZWxkKVwiXHJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXIgPz8gJydcIlxyXG4gICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjUwMFwiXHJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiX2ZpZWxkLmJyb3dzZXJBdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXHJcbiAgICAgICAgICAgIChibHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIl9maWVsZC5vbkZvY3VzID8gX2ZpZWxkLm9uRm9jdXMoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgIC8+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUVWLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVB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QWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDdEIsaUJBRWMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGN1cnJlbmNpZXMsIEN1cnJlbmN5U2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY3VycmVuY3knO1xuaW1wb3J0IHsgSW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtZ3JvdXAnO1xuaW1wb3J0IHsgSW5wdXRNYXNrRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC1tYXNrJztcbmltcG9ydCB7IElucHV0VGV4dERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtdGV4dCc7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2NhbGUnO1xuaW1wb3J0IHsgTnVtYmVyQWxpZ25tZW50T3B0aW9uLCBOdW1iZXJJbnB1dE1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbnVtYmVyLWlucHV0JztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9jdXJyZW5jeS1maWVsZCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU2hvdWxkIHVzZSBiaWdudW1iZXIgaW5zdGVhZFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRmllbGRMYWJlbENvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgSW5wdXRNYXNrRGlyZWN0aXZlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgICAgICBOdW1iZXJJbnB1dE1vZHVsZSxcbiAgICAgICAgSW5wdXRUZXh0RGlyZWN0aXZlLFxuICAgICAgICBJbnB1dEdyb3VwQ29tcG9uZW50LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICdjdXJyZW5jeS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICByZWFkb25seSBjdXJyZW5jeVNlcnZpY2UgPSBpbmplY3QoQ3VycmVuY3lTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRSZWZDb21wb25lbnQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2lucHV0UmVmJyk7XG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxDdXJyZW5jeUZpZWxkQ29uZmlnPigpO1xuICAgIGZvcm1Db250cm9sID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2w+KCk7XG5cbiAgICBmaWVsZFV0aWxzID0gaW5qZWN0KEZvcm1GaWVsZFV0aWxzU2VydmljZSk7XG5cbiAgICBwdWJsaWMgY3VycmVuY2llcyA9IGN1cnJlbmNpZXM7XG4gICAgcHVibGljIG1hc2s/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGb3JtRGlzYWJsZWQgPSAoKTogYm9vbGVhbiA9PiB0aGlzLmZvcm1Db250cm9sKCkuZGlzYWJsZWQ7XG5cbiAgICBwdWJsaWMgaW5wdXRSZWYgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0UmVmQ29tcG9uZW50KCk/Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Mb2NhbGVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZCgpO1xuICAgICAgICB0aGlzLm1hc2sgPSB0eXBlb2YgZmllbGQubWFzayA9PT0gJ2Z1bmN0aW9uJyA/IGZpZWxkLm1hc2soKSA6IGZpZWxkLm1hc2s7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxvY2FsZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMubG9jYWxlU2VydmljZS5nZXREZWNpbWFsU2VwYXJhdG9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMhLmN1cnJlbmN5U3ltYm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zIS5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldEdyb3VwaW5nU2VwYXJhdG9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zIS5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMhLnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogJ1IkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAodGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA/PyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6ICcuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHBhcnNlQWxpZ25UbyhmaWVsZDogQ3VycmVuY3lGaWVsZENvbmZpZykge1xuICAgICAgICByZXR1cm4gZmllbGQuYWxpZ25UbyA9PT0gJ3JpZ2h0JyA/IE51bWJlckFsaWdubWVudE9wdGlvbi5SSUdIVCA6IE51bWJlckFsaWdubWVudE9wdGlvbi5MRUZUO1xuICAgIH1cbn1cbiIsIkBsZXQgX2ZpZWxkID0gZmllbGQoKTtcbkBpZiAoaW5wdXRSZWYoKSkge1xuICAgIDxzLWZpZWxkLWxhYmVsXG4gICAgICAgIFtmaWVsZF09XCJfZmllbGRcIlxuICAgICAgICBbZmllbGRDb250YWluZXJSZWZdPVwiaW5wdXRSZWYoKVwiXG4gICAgPjwvcy1maWVsZC1sYWJlbD5cbn1cbkBsZXQgaGFzTWFzayA9ICEhX2ZpZWxkLm1hc2s7XG5AbGV0IGN1cnJlbmN5U3ltYm9sID1cbiAgICBfZmllbGQuY3VycmVuY3lcbiAgICAgICAgPyBjdXJyZW5jeVNlcnZpY2UuZ2V0Q3VycmVuY3lTeW1ib2woeyBjdXJyZW5jeTogX2ZpZWxkLmN1cnJlbmN5KCkgfSlcbiAgICAgICAgOiBfZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2w7XG5cbkBsZXQgY3VycmVuY3lBZGRvbiA9IGN1cnJlbmN5U3ltYm9sID8geyBsYWJlbDogY3VycmVuY3lTeW1ib2wsIGRpc2FibGVkOiBpc0Zvcm1EaXNhYmxlZCB9IDogdW5kZWZpbmVkO1xuXG48cy1pbnB1dC1ncm91cCBbbGVmdEFkZG9uXT1cImN1cnJlbmN5QWRkb25cIj5cbiAgICBAaWYgKGhhc01hc2spIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtdGV4dCBtb3VzZXRyYXBcIlxuICAgICAgICAgICAgc0lucHV0VGV4dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgICBbc0lucHV0TWFza109XCJtYXNrXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgKGJsdXIpPVwiX2ZpZWxkLm9uQmx1ciA/IF9maWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIl9maWVsZC5vbkZvY3VzID8gX2ZpZWxkLm9uRm9jdXMoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgKG1hc2tDb21wbGV0ZSk9XCJfZmllbGQub25Db21wbGV0ZSA/IF9maWVsZC5vbkNvbXBsZXRlKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJfZmllbGQub25JbnB1dCA/IF9maWVsZC5vbklucHV0KCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgLz5cbiAgICB9IEBlbHNlIGlmICghaGFzTWFzaykge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFJlZlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LXRleHRcIlxuICAgICAgICAgICAgc0lucHV0VGV4dFxuICAgICAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAgICAgc051bWJlcklucHV0XG4gICAgICAgICAgICBbcHJlY2lzaW9uXT1cIlxuICAgICAgICAgICAgICAgIF9maWVsZC5wcmVjaXNpb25cbiAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnByZWNpc2lvbilcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5wcmVjaXNpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9maWVsZC5wcmVjaXNpb25cbiAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQuY3VycmVuY3kgJiYgX2ZpZWxkLmN1cnJlbmN5KClcbiAgICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbmNpZXNbX2ZpZWxkLmN1cnJlbmN5KCldLnByZWNpc2lvblxuICAgICAgICAgICAgICAgICAgICAgIDogMTVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc2NhbGVdPVwiXG4gICAgICAgICAgICAgICAgX2ZpZWxkLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5zY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5zY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLmN1cnJlbmN5ICYmIF9maWVsZC5jdXJyZW5jeSgpXG4gICAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW5jaWVzW19maWVsZC5jdXJyZW5jeSgpXS5zY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIDogMlxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtkZWNpbWFsU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yID8/ICcnXCJcbiAgICAgICAgICAgIFt0aG91c2FuZHNTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvciA/PyAnJ1wiXG4gICAgICAgICAgICBbYmxvY2tEZWNpbWFsT3ZlcmZsb3ddPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWxpZ25Ub109XCJwYXJzZUFsaWduVG8oX2ZpZWxkKVwiXG4gICAgICAgICAgICBbc1Rvb2x0aXBdPVwiX2ZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJfZmllbGQuYnJvd3NlckF1dG9jb21wbGV0ZSA/ICdvbicgOiAnb2ZmJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXG4gICAgICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiX2ZpZWxkLm9uRm9jdXMgPyBfZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIC8+XG4gICAgfVxuPC9zLWlucHV0LWdyb3VwPlxuIl19