@klippa/ngx-enhancy-forms 11.7.0 → 11.8.0

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.
@@ -11,11 +11,19 @@ export class FormSubmitButtonComponent {
11
11
  this.isLoading = false;
12
12
  this.fullWidth = false;
13
13
  this.variant = 'greenFilled';
14
+ this.before = () => Promise.resolve();
15
+ this.after = () => Promise.resolve();
14
16
  }
15
17
  get _() {
16
18
  return this.fullWidth;
17
19
  }
18
- submitForm() {
20
+ async submitForm() {
21
+ try {
22
+ await this.before();
23
+ }
24
+ catch (e) {
25
+ return;
26
+ }
19
27
  this.parentForm
20
28
  .trySubmit()
21
29
  .then(([renderedAndEnabledValues, renderedValues]) => {
@@ -35,10 +43,11 @@ export class FormSubmitButtonComponent {
35
43
  }
36
44
  throw e;
37
45
  });
46
+ await this.after();
38
47
  }
39
48
  }
40
49
  FormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, deps: [{ token: i1.FormComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
41
- FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant", submitCallback: "submitCallback" }, host: { properties: { "class._fullWidth": "this._" } }, ngImport: i0, template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] });
50
+ FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant", before: "before", after: "after", submitCallback: "submitCallback" }, host: { properties: { "class._fullWidth": "this._" } }, ngImport: i0, template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] });
42
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, decorators: [{
43
52
  type: Component,
44
53
  args: [{ selector: 'klp-form-submit-button', template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"] }]
@@ -52,10 +61,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
52
61
  type: Input
53
62
  }], variant: [{
54
63
  type: Input
64
+ }], before: [{
65
+ type: Input
66
+ }], after: [{
67
+ type: Input
55
68
  }], submitCallback: [{
56
69
  type: Input
57
70
  }], _: [{
58
71
  type: HostBinding,
59
72
  args: ['class._fullWidth']
60
73
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1zdWJtaXQtYnV0dG9uL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tc3VibWl0LWJ1dHRvbi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFnQixtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU9wRCxNQUFNLE9BQU8seUJBQXlCO0lBVXJDLFlBQXdDLFVBQXlCO1FBQXpCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFUakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBa0QsYUFBYSxDQUFDO0lBT1osQ0FBQztJQUpyRSxJQUFxQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBSUQsVUFBVTtRQUNULElBQUksQ0FBQyxVQUFVO2FBQ2IsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUMzRixJQUFJLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNuRTtZQUNELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsTUFBTSxDQUFDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxpRkFBaUY7YUFDekY7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBaENXLHlCQUF5QjswR0FBekIseUJBQXlCLHdPQ1R0QyxvU0FXQTsyRkRGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Msd0JBQXdCOzswQkFjckIsSUFBSTs7MEJBQUksUUFBUTs0Q0FUYixTQUFTO3NCQUF4QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBRStCLENBQUM7c0JBQXJDLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db21wb25lbnQsIGludmFsaWRGaWVsZHNTeW1ib2x9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0tc3VibWl0LWJ1dHRvbicsXG5cdHRlbXBsYXRlVXJsOiAnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVN1Ym1pdEJ1dHRvbkNvbXBvbmVudCB7XG5cdEBJbnB1dCgpIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblx0QElucHV0KCkgZnVsbFdpZHRoID0gZmFsc2U7XG5cdEBJbnB1dCgpIHZhcmlhbnQ6ICdncmVlbkZpbGxlZCcgfCAncmVkRmlsbGVkJyB8ICdncmVlbk91dGxpbmVkJyA9ICdncmVlbkZpbGxlZCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBzdWJtaXRDYWxsYmFjazogKHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlczogb2JqZWN0LCByZW5kZXJlZEJ1dERpc2FibGVkVmFsdWVzOiBvYmplY3QpID0+IFByb21pc2U8YW55PjtcblxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLl9mdWxsV2lkdGgnKSBnZXQgXygpIHtcblx0XHRyZXR1cm4gdGhpcy5mdWxsV2lkdGg7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcihASG9zdCgpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Rm9ybTogRm9ybUNvbXBvbmVudCkge31cblxuXHRzdWJtaXRGb3JtKCk6IHZvaWQge1xuXHRcdHRoaXMucGFyZW50Rm9ybVxuXHRcdFx0LnRyeVN1Ym1pdCgpXG5cdFx0XHQudGhlbigoW3JlbmRlcmVkQW5kRW5hYmxlZFZhbHVlcywgcmVuZGVyZWRWYWx1ZXNdKSA9PiB7XG5cdFx0XHRcdHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblx0XHRcdFx0Y29uc3Qgc3VibWl0Q2FsbGJhY2tSZXN1bHQgPSB0aGlzLnN1Ym1pdENhbGxiYWNrKHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlcywgcmVuZGVyZWRWYWx1ZXMpO1xuXHRcdFx0XHRpZiAoaXNOdWxsT3JVbmRlZmluZWQoc3VibWl0Q2FsbGJhY2tSZXN1bHQpKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdObyBwcm9taXNlIGlzIHJldHVybmVkIGluIHlvdXIgc3VibWl0IGZ1bmN0aW9uLicpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBzdWJtaXRDYWxsYmFja1Jlc3VsdC50aGVuKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkuY2F0Y2goKGUpID0+IHtcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaCgoZSkgPT4ge1xuXHRcdFx0XHRpZiAoZSA9PT0gaW52YWxpZEZpZWxkc1N5bWJvbCkge1xuXHRcdFx0XHRcdHJldHVybjsgLy8gc3dhbGxvdyB0aGUgZXJyb3IsIHRoZSBmcmFtZXdvcmsgd2lsbCBzY3JvbGwgdG8gdGhlIGZpZWxkIHRoYXQgbmVlZHMgYXR0ZW50aW9uXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhyb3cgZTtcblx0XHRcdH0pO1xuXHR9XG59XG4iLCI8a2xwLWZvcm0tYnV0dG9uXG5cdFx0W3ZhcmlhbnRdPVwidmFyaWFudFwiXG5cdFx0KGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXG5cdFx0W2Rpc2FibGVkXT1cImlzTG9hZGluZ1wiXG5cdFx0W2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuXHRcdFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcblx0XHR0eXBlPVwic3VibWl0XCJcblx0XHRbbmdDbGFzc109XCJmdWxsV2lkdGggPyAnZnVsbFdpZHRoJyA6ICcnXCJcblx0PlxuXHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2tscC1mb3JtLWJ1dHRvbj5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1zdWJtaXQtYnV0dG9uL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tc3VibWl0LWJ1dHRvbi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFnQixtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU9wRCxNQUFNLE9BQU8seUJBQXlCO0lBWXJDLFlBQXdDLFVBQXlCO1FBQXpCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFYakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBa0QsYUFBYSxDQUFDO1FBQ2hFLFdBQU0sR0FBdUIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JELFVBQUssR0FBdUIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBT0EsQ0FBQztJQUpyRSxJQUFxQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBSUQsS0FBSyxDQUFDLFVBQVU7UUFDZixJQUFJO1lBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDcEI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxVQUFVO2FBQ2IsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUMzRixJQUFJLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNuRTtZQUNELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsTUFBTSxDQUFDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxpRkFBaUY7YUFDekY7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0osTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7c0hBeENXLHlCQUF5QjswR0FBekIseUJBQXlCLDBRQ1R0QyxvU0FXQTsyRkRGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Msd0JBQXdCOzswQkFnQnJCLElBQUk7OzBCQUFJLFFBQVE7NENBWGIsU0FBUztzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFFK0IsQ0FBQztzQkFBckMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudCwgaW52YWxpZEZpZWxkc1N5bWJvbH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZH0gZnJvbSAnLi4vLi4vdXRpbC92YWx1ZXMnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdrbHAtZm9ybS1zdWJtaXQtYnV0dG9uJyxcblx0dGVtcGxhdGVVcmw6ICcuL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtU3VibWl0QnV0dG9uQ29tcG9uZW50IHtcblx0QElucHV0KCkgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXHRASW5wdXQoKSBmdWxsV2lkdGggPSBmYWxzZTtcblx0QElucHV0KCkgdmFyaWFudDogJ2dyZWVuRmlsbGVkJyB8ICdyZWRGaWxsZWQnIHwgJ2dyZWVuT3V0bGluZWQnID0gJ2dyZWVuRmlsbGVkJztcblx0QElucHV0KCkgcHVibGljIGJlZm9yZTogKCkgPT4gUHJvbWlzZTxhbnk+ID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdEBJbnB1dCgpIHB1YmxpYyBhZnRlcjogKCkgPT4gUHJvbWlzZTxhbnk+ID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdEBJbnB1dCgpIHB1YmxpYyBzdWJtaXRDYWxsYmFjazogKHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlczogb2JqZWN0LCByZW5kZXJlZEJ1dERpc2FibGVkVmFsdWVzOiBvYmplY3QpID0+IFByb21pc2U8YW55PjtcblxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLl9mdWxsV2lkdGgnKSBnZXQgXygpIHtcblx0XHRyZXR1cm4gdGhpcy5mdWxsV2lkdGg7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcihASG9zdCgpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Rm9ybTogRm9ybUNvbXBvbmVudCkge31cblxuXHRhc3luYyBzdWJtaXRGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCB0aGlzLmJlZm9yZSgpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5wYXJlbnRGb3JtXG5cdFx0XHQudHJ5U3VibWl0KClcblx0XHRcdC50aGVuKChbcmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzLCByZW5kZXJlZFZhbHVlc10pID0+IHtcblx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXHRcdFx0XHRjb25zdCBzdWJtaXRDYWxsYmFja1Jlc3VsdCA9IHRoaXMuc3VibWl0Q2FsbGJhY2socmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzLCByZW5kZXJlZFZhbHVlcyk7XG5cdFx0XHRcdGlmIChpc051bGxPclVuZGVmaW5lZChzdWJtaXRDYWxsYmFja1Jlc3VsdCkpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ05vIHByb21pc2UgaXMgcmV0dXJuZWQgaW4geW91ciBzdWJtaXQgZnVuY3Rpb24uJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHN1Ym1pdENhbGxiYWNrUmVzdWx0LnRoZW4oKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKS5jYXRjaCgoZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhyb3cgZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKChlKSA9PiB7XG5cdFx0XHRcdGlmIChlID09PSBpbnZhbGlkRmllbGRzU3ltYm9sKSB7XG5cdFx0XHRcdFx0cmV0dXJuOyAvLyBzd2FsbG93IHRoZSBlcnJvciwgdGhlIGZyYW1ld29yayB3aWxsIHNjcm9sbCB0byB0aGUgZmllbGQgdGhhdCBuZWVkcyBhdHRlbnRpb25cblx0XHRcdFx0fVxuXHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0fSk7XG5cdFx0YXdhaXQgdGhpcy5hZnRlcigpO1xuXHR9XG59XG4iLCI8a2xwLWZvcm0tYnV0dG9uXG5cdFx0W3ZhcmlhbnRdPVwidmFyaWFudFwiXG5cdFx0KGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXG5cdFx0W2Rpc2FibGVkXT1cImlzTG9hZGluZ1wiXG5cdFx0W2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuXHRcdFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcblx0XHR0eXBlPVwic3VibWl0XCJcblx0XHRbbmdDbGFzc109XCJmdWxsV2lkdGggPyAnZnVsbFdpZHRoJyA6ICcnXCJcblx0PlxuXHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2tscC1mb3JtLWJ1dHRvbj5cbiJdfQ==
@@ -1091,34 +1091,45 @@ class FormSubmitButtonComponent {
1091
1091
  this.isLoading = false;
1092
1092
  this.fullWidth = false;
1093
1093
  this.variant = 'greenFilled';
1094
+ this.before = () => Promise.resolve();
1095
+ this.after = () => Promise.resolve();
1094
1096
  }
1095
1097
  get _() {
1096
1098
  return this.fullWidth;
1097
1099
  }
1098
1100
  submitForm() {
1099
- this.parentForm
1100
- .trySubmit()
1101
- .then(([renderedAndEnabledValues, renderedValues]) => {
1102
- this.isLoading = true;
1103
- const submitCallbackResult = this.submitCallback(renderedAndEnabledValues, renderedValues);
1104
- if (isNullOrUndefined(submitCallbackResult)) {
1105
- throw new Error('No promise is returned in your submit function.');
1101
+ return __awaiter(this, void 0, void 0, function* () {
1102
+ try {
1103
+ yield this.before();
1104
+ }
1105
+ catch (e) {
1106
+ return;
1106
1107
  }
1107
- return submitCallbackResult.then(() => (this.isLoading = false)).catch((e) => {
1108
- this.isLoading = false;
1108
+ this.parentForm
1109
+ .trySubmit()
1110
+ .then(([renderedAndEnabledValues, renderedValues]) => {
1111
+ this.isLoading = true;
1112
+ const submitCallbackResult = this.submitCallback(renderedAndEnabledValues, renderedValues);
1113
+ if (isNullOrUndefined(submitCallbackResult)) {
1114
+ throw new Error('No promise is returned in your submit function.');
1115
+ }
1116
+ return submitCallbackResult.then(() => (this.isLoading = false)).catch((e) => {
1117
+ this.isLoading = false;
1118
+ throw e;
1119
+ });
1120
+ })
1121
+ .catch((e) => {
1122
+ if (e === invalidFieldsSymbol) {
1123
+ return; // swallow the error, the framework will scroll to the field that needs attention
1124
+ }
1109
1125
  throw e;
1110
1126
  });
1111
- })
1112
- .catch((e) => {
1113
- if (e === invalidFieldsSymbol) {
1114
- return; // swallow the error, the framework will scroll to the field that needs attention
1115
- }
1116
- throw e;
1127
+ yield this.after();
1117
1128
  });
1118
1129
  }
1119
1130
  }
1120
1131
  FormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, deps: [{ token: FormComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
1121
- FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant", submitCallback: "submitCallback" }, host: { properties: { "class._fullWidth": "this._" } }, ngImport: i0, template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] });
1132
+ FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant", before: "before", after: "after", submitCallback: "submitCallback" }, host: { properties: { "class._fullWidth": "this._" } }, ngImport: i0, template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] });
1122
1133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, decorators: [{
1123
1134
  type: Component,
1124
1135
  args: [{ selector: 'klp-form-submit-button', template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"] }]
@@ -1134,6 +1145,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
1134
1145
  type: Input
1135
1146
  }], variant: [{
1136
1147
  type: Input
1148
+ }], before: [{
1149
+ type: Input
1150
+ }], after: [{
1151
+ type: Input
1137
1152
  }], submitCallback: [{
1138
1153
  type: Input
1139
1154
  }], _: [{