@fundamental-ngx/core 0.43.4 → 0.43.6

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 (41) hide show
  1. package/button/base-button.d.ts +3 -1
  2. package/button/button.component.d.ts +5 -0
  3. package/date-picker/date-picker.component.d.ts +15 -2
  4. package/datetime-picker/datetime-picker.component.d.ts +6 -0
  5. package/esm2020/button/base-button.mjs +4 -2
  6. package/esm2020/button/button.component.mjs +19 -5
  7. package/esm2020/carousel/carousel.service.mjs +5 -1
  8. package/esm2020/date-picker/date-picker.component.mjs +51 -22
  9. package/esm2020/datetime-picker/datetime-picker.component.mjs +29 -17
  10. package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
  11. package/esm2020/multi-input/multi-input.component.mjs +3 -3
  12. package/esm2020/switch/switch.component.mjs +3 -3
  13. package/fesm2015/fundamental-ngx-core-button.mjs +21 -5
  14. package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
  15. package/fesm2015/fundamental-ngx-core-carousel.mjs +4 -0
  16. package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
  17. package/fesm2015/fundamental-ngx-core-date-picker.mjs +51 -21
  18. package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  19. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +28 -16
  20. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  21. package/fesm2015/fundamental-ngx-core-multi-input.mjs +4 -4
  22. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  23. package/fesm2015/fundamental-ngx-core-switch.mjs +2 -2
  24. package/fesm2015/fundamental-ngx-core-switch.mjs.map +1 -1
  25. package/fesm2020/fundamental-ngx-core-button.mjs +21 -5
  26. package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
  27. package/fesm2020/fundamental-ngx-core-carousel.mjs +4 -0
  28. package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
  29. package/fesm2020/fundamental-ngx-core-date-picker.mjs +50 -21
  30. package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  31. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +28 -16
  32. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  33. package/fesm2020/fundamental-ngx-core-multi-input.mjs +4 -4
  34. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  35. package/fesm2020/fundamental-ngx-core-switch.mjs +2 -2
  36. package/fesm2020/fundamental-ngx-core-switch.mjs.map +1 -1
  37. package/fundamental-ngx-core-v0.43.6.tgz +0 -0
  38. package/multi-input/multi-input.component.d.ts +3 -1
  39. package/package.json +3 -3
  40. package/schematics/add-dependencies/index.js +4 -4
  41. package/fundamental-ngx-core-v0.43.4.tgz +0 -0
@@ -72,8 +72,7 @@ export class SwitchComponent {
72
72
  /** Checked property of the switch. */
73
73
  set isChecked(value) {
74
74
  this._switchLabelWrapperEl.nativeElement.classList.remove('fd-switch-no-animate');
75
- this.checked = value;
76
- this.onChange(value);
75
+ this.writeValue(value);
77
76
  this.checkedChange.emit(value);
78
77
  setTimeout(() => {
79
78
  // add the no-animate class after the transition duration, 100ms
@@ -89,6 +88,7 @@ export class SwitchComponent {
89
88
  */
90
89
  writeValue(value) {
91
90
  this.checked = value;
91
+ this.onChange(value);
92
92
  this._changeDetectorRef.detectChanges();
93
93
  }
94
94
  /**
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
174
174
  type: ViewChild,
175
175
  args: ['switchEl', { read: ElementRef }]
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQUVoSCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFDdkIsSUFBSSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7QUFFckM7OztHQUdHO0FBc0JILE1BQU0sT0FBTyxlQUFlO0lBeUN4Qiw4Q0FBOEM7SUFDOUMsSUFDSSxjQUFjLENBQUMsS0FBdUI7UUFDdEMsSUFBSSxTQUFTLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztZQUMvRix3QkFBd0IsR0FBRyxJQUFJLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBd0NELGNBQWM7SUFDZCxZQUNxQixrQkFBcUMsRUFD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RUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1JdGVtQ29udHJvbCwgcmVnaXN0ZXJGb3JtSXRlbUNvbnRyb2wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5cbmxldCBzd2l0Y2hVbmlxdWVJZCA9IDA7XG5sZXQgd2FybmVkQWJvdXRBcmlhTGFiZWxlZEJ5ID0gZmFsc2U7XG5cbi8qKlxuICogVGhlIFN3aXRjaCBjb21wb25lbnQgaXMgdXNlZCB0byBhY3RpdmF0ZSBvciBkZWFjdGl2YXRlIGFuIGVsZW1lbnQuXG4gKiBJdCB1c2VzIGEgdmlzdWFsIG1ldGFwaG9yIHRvIGluZm9ybSB0aGUgdXNlciBvZiB0aGUgc3RhdGUgb2YgdGhlIHN3aXRjaC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zd2l0Y2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N3aXRjaC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN3aXRjaENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICByZWdpc3RlckZvcm1JdGVtQ29udHJvbChTd2l0Y2hDb21wb25lbnQpLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKClcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1mb3JtX19pdGVtIGZkLWZvcm1fX2l0ZW0tLWNoZWNrIGZkLXN3aXRjaC1jdXN0b20nLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnb25Ub3VjaGVkKCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIEZvcm1JdGVtQ29udHJvbCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzd2l0Y2hJbnB1dCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgLyoqIE9wdGlvbmFsIHRleHQgZm9yIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIHN3aXRjaC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZVRleHQgPSAnJztcblxuICAgIC8qKiBPcHRpb25hbCB0ZXh0IGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgb2YgdGhlIHN3aXRjaC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGluYWN0aXZlVGV4dCA9ICcnO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHN3aXRjaCBpcyBkaXNhYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogSWQgZm9yIHRoZSBzd2l0Y2ggY29tcG9uZW50LiBJZiBvbWl0dGVkLCBhIHVuaXF1ZSBvbmUgaXMgZ2VuZXJhdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSBgZmQtc3dpdGNoLSR7c3dpdGNoVW5pcXVlSWQrK31gO1xuXG4gICAgLyoqIFNldHMgaW5wdXQgbmFtZSBhdHRyaWJ1dGUuICovXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKiogSWYgaXQgaXMgbWFuZGF0b3J5IGZpZWxkICovXG4gICAgQElucHV0KClcbiAgICByZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHN3aXRjaCBpcyBjaGVja2VkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2hlY2tlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHN3aXRjaCBpcyBzZW1hbnRpYyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VtYW50aWMgPSBmYWxzZTtcblxuICAgIC8qKiBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBAZGVwcmVjYXRlZCByZW5hbWVkIHRvIFwiYXJpYUxhYmVsbGVkQnlcIiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFyaWFMYWJlbGxlZGJ5KHZhbHVlOiBOdWxsYWJsZTxzdHJpbmc+KSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhd2FybmVkQWJvdXRBcmlhTGFiZWxlZEJ5KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2ZkLXN3aXRjaFthcmlhTGFiZWxsZWRieV0gaXMgZGVwcmVjYXRlZC4gVXNlIGZkLXN3aXRjaFthcmlhTGFiZWxsZWRCeV0gaW5zdGVhZCcpO1xuICAgICAgICAgICAgd2FybmVkQWJvdXRBcmlhTGFiZWxlZEJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGUgb2YgdGhlIGlubmVyIGlucHV0IGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkXG4gICAgICogU2VtYW50aWMgTGFiZWwgQWNjZXB0IHNldCBmb3IgQWNjZXNzaWJpbGl0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VtYW50aWNBY2NlcHRMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBTZW1hbnRpYyBMYWJlbCBEZWNsaW5lIHNldCBmb3IgQWNjZXNzaWJpbGl0eVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VtYW50aWNEZWNsaW5lTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBzd2l0Y2ggY2hhbmdlcy5cbiAgICAgKiAqJGV2ZW50KiBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgbmV3IHN0YXRlIG9mIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2hlY2tlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzd2l0Y2hFbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIF9zd2l0Y2hMYWJlbFdyYXBwZXJFbDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcmVhZG9ubHkgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBmb2N1cyBvbiB0aGUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBHZXQgdGhlIGlkIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50IG9mIHRoZSBzd2l0Y2guICovXG4gICAgZ2V0IGlubmVySW5wdXRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH0taW5wdXRgO1xuICAgIH1cblxuICAgIC8qKiBHZXQgdGhlIGlkIG9mIHRoZSBzZW1hbnRpYyBsYWJlbCBlbGVtZW50IG9mIHRoZSBzd2l0Y2guICovXG4gICAgZ2V0IF9zZW1hbnRpY0xhYmVsSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuaWR9LXNlbWFudGljLWxhYmVsYDtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2tlZCBwcm9wZXJ0eSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIHNldCBpc0NoZWNrZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fc3dpdGNoTGFiZWxXcmFwcGVyRWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmZC1zd2l0Y2gtbm8tYW5pbWF0ZScpO1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBhZGQgdGhlIG5vLWFuaW1hdGUgY2xhc3MgYWZ0ZXIgdGhlIHRyYW5zaXRpb24gZHVyYXRpb24sIDEwMG1zXG4gICAgICAgICAgICB0aGlzLl9zd2l0Y2hMYWJlbFdyYXBwZXJFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZkLXN3aXRjaC1uby1hbmltYXRlJyk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuICAgIGdldCBpc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSB2YWx1ZSBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgKmNoZWNrZWQqIHByb3BlcnR5IG9mIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmbiBVc2VyIGRlZmluZWQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSAqb25DaGFuZ2UqIGV2ZW50IG9mIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGZuIFVzZXIgZGVmaW5lZCBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgdGhlICpvblRvdWNoKiBldmVudCBvZiB0aGUgc3dpdGNoLlxuICAgICAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBpc0Rpc2FibGVkIFNldHMgdGhlIHZhbHVlIG9mIHRoZSAqZGlzYWJsZWQqIHByb3BlcnR5IG9mIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPGxhYmVsXG4gICAgY2xhc3M9XCJmZC1zd2l0Y2ggZmQtc3dpdGNoLW5vLWFuaW1hdGVcIlxuICAgIChjbGljayk9XCJmb2N1cygpXCJcbiAgICBbc3R5bGUuY3Vyc29yXT1cImRpc2FibGVkID8gJ2F1dG8nIDogJ3BvaW50ZXInXCJcbiAgICBbY2xhc3MuaXMtY29tcGFjdF09XCJfY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QkIHwgYXN5bmNcIlxuICAgIFtjbGFzcy5mZC1zd2l0Y2gtLXNlbWFudGljXT1cInNlbWFudGljXCJcbiAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAjc3dpdGNoRWxcbj5cbiAgICA8c3BhbiAqbmdJZj1cImlzQ2hlY2tlZCA/IGFjdGl2ZVRleHQgOiBpbmFjdGl2ZVRleHQgYXMgdGV4dFwiIGNsYXNzPVwiZmQtc3dpdGNoX190ZXh0XCI+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJmZC1zd2l0Y2hfX2NvbnRyb2xcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjc3dpdGNoSW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtc3dpdGNoX19pbnB1dFwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiXG4gICAgICAgICAgICBbaWRdPVwiaW5uZXJJbnB1dElkXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ICsgJyAnICsgKHNlbWFudGljID8gX3NlbWFudGljTGFiZWxJZCA6ICcnKVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1zd2l0Y2hfX3NsaWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLXN3aXRjaF9fdHJhY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbWFudGljXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtc3dpdGNoX19pY29uIGZkLXN3aXRjaF9faWNvbi0tb24gc2FwLWljb24tLWFjY2VwdFwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLXN3aXRjaF9faGFuZGxlXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbWFudGljXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtc3dpdGNoX19pY29uLS1vZmYgZmQtc3dpdGNoX19pY29uIHNhcC1pY29uLS1kZWNsaW5lXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VtYW50aWNcIiBbaWRdPVwiX3NlbWFudGljTGFiZWxJZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZmQtc3dpdGNoX19pbnZpc2libGUtdGV4dFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VtYW50aWNBY2NlcHRMYWJlbCB8fCAoJ2NvcmVTd2l0Y2guc2VtYW50aWNBY2NlcHRMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VtYW50aWNEZWNsaW5lTGFiZWwgfHwgKCdjb3JlU3dpdGNoLnNlbWFudGljQWNjZXB0TGFiZWwnIHwgZmRUcmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQUVoSCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFDdkIsSUFBSSx3QkFBd0IsR0FBRyxLQUFLLENBQUM7QUFFckM7OztHQUdHO0FBc0JILE1BQU0sT0FBTyxlQUFlO0lBeUN4Qiw4Q0FBOEM7SUFDOUMsSUFDSSxjQUFjLENBQUMsS0FBdUI7UUFDdEMsSUFBSSxTQUFTLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztZQUMvRix3QkFBd0IsR0FBRyxJQUFJLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBd0NELGNBQWM7SUFDZCxZQUNxQixrQkFBcUMsRUFD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VUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBpc0Rldk1vZGUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db250cm9sLCByZWdpc3RlckZvcm1JdGVtQ29udHJvbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcblxubGV0IHN3aXRjaFVuaXF1ZUlkID0gMDtcbmxldCB3YXJuZWRBYm91dEFyaWFMYWJlbGVkQnkgPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgU3dpdGNoIGNvbXBvbmVudCBpcyB1c2VkIHRvIGFjdGl2YXRlIG9yIGRlYWN0aXZhdGUgYW4gZWxlbWVudC5cbiAqIEl0IHVzZXMgYSB2aXN1YWwgbWV0YXBob3IgdG8gaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSBzdGF0ZSBvZiB0aGUgc3dpdGNoLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXN3aXRjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3dpdGNoLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3dpdGNoQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lzdGVyRm9ybUl0ZW1Db250cm9sKFN3aXRjaENvbXBvbmVudCksXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWZvcm1fX2l0ZW0gZmQtZm9ybV9faXRlbS0tY2hlY2sgZmQtc3dpdGNoLWN1c3RvbScsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdvblRvdWNoZWQoKSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgRm9ybUl0ZW1Db250cm9sIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3N3aXRjaElucHV0JylcbiAgICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKiogT3B0aW9uYWwgdGV4dCBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZlVGV4dCA9ICcnO1xuXG4gICAgLyoqIE9wdGlvbmFsIHRleHQgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5hY3RpdmVUZXh0ID0gJyc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgc3dpdGNoIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZCBmb3IgdGhlIHN3aXRjaCBjb21wb25lbnQuIElmIG9taXR0ZWQsIGEgdW5pcXVlIG9uZSBpcyBnZW5lcmF0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBpZCA9IGBmZC1zd2l0Y2gtJHtzd2l0Y2hVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogU2V0cyBpbnB1dCBuYW1lIGF0dHJpYnV0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgc3dpdGNoIGlzIGNoZWNrZWQuICovXG4gICAgQElucHV0KClcbiAgICBjaGVja2VkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgc3dpdGNoIGlzIHNlbWFudGljICovXG4gICAgQElucHV0KClcbiAgICBzZW1hbnRpYyA9IGZhbHNlO1xuXG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gXCJhcmlhTGFiZWxsZWRCeVwiICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXJpYUxhYmVsbGVkYnkodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpICYmICF3YXJuZWRBYm91dEFyaWFMYWJlbGVkQnkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignZmQtc3dpdGNoW2FyaWFMYWJlbGxlZGJ5XSBpcyBkZXByZWNhdGVkLiBVc2UgZmQtc3dpdGNoW2FyaWFMYWJlbGxlZEJ5XSBpbnN0ZWFkJyk7XG4gICAgICAgICAgICB3YXJuZWRBYm91dEFyaWFMYWJlbGVkQnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJpYUxhYmVsbGVkQnkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBTZW1hbnRpYyBMYWJlbCBBY2NlcHQgc2V0IGZvciBBY2Nlc3NpYmlsaXR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZW1hbnRpY0FjY2VwdExhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqIFNlbWFudGljIExhYmVsIERlY2xpbmUgc2V0IGZvciBBY2Nlc3NpYmlsaXR5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZW1hbnRpY0RlY2xpbmVMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZmlyZWQgd2hlbiB0aGUgc3RhdGUgb2YgdGhlIHN3aXRjaCBjaGFuZ2VzLlxuICAgICAqICokZXZlbnQqIGNhbiBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBuZXcgc3RhdGUgb2YgdGhlIHN3aXRjaC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjaGVja2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3N3aXRjaEVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgX3N3aXRjaExhYmVsV3JhcHBlckVsOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlclxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IGZvY3VzIG9uIHRoZSBpbnB1dCBlbGVtZW50LiAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgaWQgb2YgdGhlIGlubmVyIGlucHV0IGVsZW1lbnQgb2YgdGhlIHN3aXRjaC4gKi9cbiAgICBnZXQgaW5uZXJJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkfS1pbnB1dGA7XG4gICAgfVxuXG4gICAgLyoqIEdldCB0aGUgaWQgb2YgdGhlIHNlbWFudGljIGxhYmVsIGVsZW1lbnQgb2YgdGhlIHN3aXRjaC4gKi9cbiAgICBnZXQgX3NlbWFudGljTGFiZWxJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH0tc2VtYW50aWMtbGFiZWxgO1xuICAgIH1cblxuICAgIC8qKiBDaGVja2VkIHByb3BlcnR5IG9mIHRoZSBzd2l0Y2guICovXG4gICAgc2V0IGlzQ2hlY2tlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9zd2l0Y2hMYWJlbFdyYXBwZXJFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2ZkLXN3aXRjaC1uby1hbmltYXRlJyk7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBhZGQgdGhlIG5vLWFuaW1hdGUgY2xhc3MgYWZ0ZXIgdGhlIHRyYW5zaXRpb24gZHVyYXRpb24sIDEwMG1zXG4gICAgICAgICAgICB0aGlzLl9zd2l0Y2hMYWJlbFdyYXBwZXJFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZkLXN3aXRjaC1uby1hbmltYXRlJyk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuICAgIGdldCBpc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSB2YWx1ZSBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgKmNoZWNrZWQqIHByb3BlcnR5IG9mIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZm4gVXNlciBkZWZpbmVkIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyB0aGUgKm9uQ2hhbmdlKiBldmVudCBvZiB0aGUgc3dpdGNoLlxuICAgICAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmbiBVc2VyIGRlZmluZWQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSAqb25Ub3VjaCogZXZlbnQgb2YgdGhlIHN3aXRjaC5cbiAgICAgKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgKmRpc2FibGVkKiBwcm9wZXJ0eSBvZiB0aGUgc3dpdGNoLlxuICAgICAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjxsYWJlbFxuICAgIGNsYXNzPVwiZmQtc3dpdGNoIGZkLXN3aXRjaC1uby1hbmltYXRlXCJcbiAgICAoY2xpY2spPVwiZm9jdXMoKVwiXG4gICAgW3N0eWxlLmN1cnNvcl09XCJkaXNhYmxlZCA/ICdhdXRvJyA6ICdwb2ludGVyJ1wiXG4gICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuaXNDb21wYWN0JCB8IGFzeW5jXCJcbiAgICBbY2xhc3MuZmQtc3dpdGNoLS1zZW1hbnRpY109XCJzZW1hbnRpY1wiXG4gICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgI3N3aXRjaEVsXG4+XG4gICAgPHNwYW4gKm5nSWY9XCJpc0NoZWNrZWQgPyBhY3RpdmVUZXh0IDogaW5hY3RpdmVUZXh0IGFzIHRleHRcIiBjbGFzcz1cImZkLXN3aXRjaF9fdGV4dFwiPlxuICAgICAgICB7eyB0ZXh0IH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZmQtc3dpdGNoX19jb250cm9sXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI3N3aXRjaElucHV0XG4gICAgICAgICAgICBjbGFzcz1cImZkLXN3aXRjaF9faW5wdXRcIlxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIHJvbGU9XCJzd2l0Y2hcIlxuICAgICAgICAgICAgW2lkXT1cImlubmVySW5wdXRJZFwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSArICcgJyArIChzZW1hbnRpYyA/IF9zZW1hbnRpY0xhYmVsSWQgOiAnJylcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpc0NoZWNrZWRcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtc3dpdGNoX19zbGlkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1zd2l0Y2hfX3RyYWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZW1hbnRpY1wiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXN3aXRjaF9faWNvbiBmZC1zd2l0Y2hfX2ljb24tLW9uIHNhcC1pY29uLS1hY2NlcHRcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1zd2l0Y2hfX2hhbmRsZVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZW1hbnRpY1wiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXN3aXRjaF9faWNvbi0tb2ZmIGZkLXN3aXRjaF9faWNvbiBzYXAtaWNvbi0tZGVjbGluZVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbWFudGljXCIgW2lkXT1cIl9zZW1hbnRpY0xhYmVsSWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZkLXN3aXRjaF9faW52aXNpYmxlLXRleHRcIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICBjaGVja2VkXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlbWFudGljQWNjZXB0TGFiZWwgfHwgKCdjb3JlU3dpdGNoLnNlbWFudGljQWNjZXB0TGFiZWwnIHwgZmRUcmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHNlbWFudGljRGVjbGluZUxhYmVsIHx8ICgnY29yZVN3aXRjaC5zZW1hbnRpY0FjY2VwdExhYmVsJyB8IGZkVHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc3Bhbj5cbjwvbGFiZWw+XG4iXX0=
@@ -60,7 +60,7 @@ class BaseButton {
60
60
  }
61
61
  }
62
62
  BaseButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseButton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
63
- BaseButton.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseButton, inputs: { type: "type", glyphPosition: "glyphPosition", glyph: "glyph", fdType: "fdType", label: "label", fdMenu: "fdMenu", ariaLabel: "ariaLabel", toggled: "toggled", disabled: "disabled", ariaDisabled: ["aria-disabled", "ariaDisabled"] }, host: { properties: { "class.fd-button--toggled": "this._toggled", "attr.aria-pressed": "this._toggled" } }, ngImport: i0 });
63
+ BaseButton.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseButton, inputs: { type: "type", glyphPosition: "glyphPosition", glyph: "glyph", fdType: "fdType", label: "label", fdMenu: "fdMenu", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", toggled: "toggled", disabled: "disabled", ariaDisabled: ["aria-disabled", "ariaDisabled"] }, host: { properties: { "class.fd-button--toggled": "this._toggled", "attr.aria-pressed": "this._toggled" } }, ngImport: i0 });
64
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseButton, decorators: [{
65
65
  type: Directive
66
66
  }], propDecorators: { type: [{
@@ -77,6 +77,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
77
77
  type: Input
78
78
  }], ariaLabel: [{
79
79
  type: Input
80
+ }], ariaDescription: [{
81
+ type: Input
80
82
  }], _toggled: [{
81
83
  type: HostBinding,
82
84
  args: ['class.fd-button--toggled']
@@ -115,14 +117,27 @@ class ButtonComponent extends BaseButton {
115
117
  }
116
118
  if (this.specialButtonType.includes(this.fdType)) {
117
119
  if (this.label != null) {
118
- return this.label + ', ' + this.fdType;
120
+ return this.label;
119
121
  }
120
122
  if (this.glyph != null) {
121
- return this.fdType + ', ' + this.glyph.split('-').join(' ');
123
+ return this.glyph.split('-').join(' ');
122
124
  }
123
125
  }
124
126
  return null;
125
127
  }
128
+ /**
129
+ * Calculate aria-description attribute
130
+ * @hidden
131
+ */
132
+ get buttonAriaDescription() {
133
+ if (this.ariaDescription) {
134
+ return this.ariaDescription;
135
+ }
136
+ if (this.specialButtonType.includes(this.fdType)) {
137
+ return this.fdType;
138
+ }
139
+ return null;
140
+ }
126
141
  /** Forces the focus outline around the button, which is not default behavior in Safari. */
127
142
  clicked(event) {
128
143
  const target = event === null || event === void 0 ? void 0 : event.target;
@@ -181,7 +196,7 @@ class ButtonComponent extends BaseButton {
181
196
  }
182
197
  }
183
198
  ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component });
184
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: { class: "class" }, host: { listeners: { "click": "clicked($event)" }, properties: { "attr.type": "type", "attr.disabled": "_disabled || null", "attr.aria-label": "buttonArialabel" } }, providers: [
199
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: { class: "class" }, host: { listeners: { "click": "clicked($event)" }, properties: { "attr.type": "type", "attr.disabled": "_disabled || null", "attr.aria-label": "buttonArialabel", "attr.aria-description": "buttonAriaDescription" } }, providers: [
185
200
  contentDensityObserverProviders(),
186
201
  {
187
202
  provide: FD_BUTTON_COMPONENT,
@@ -199,7 +214,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
199
214
  args: [{ selector: 'button[fd-button], a[fd-button]', exportAs: 'fd-button', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
200
215
  '[attr.type]': 'type',
201
216
  '[attr.disabled]': '_disabled || null',
202
- '[attr.aria-label]': 'buttonArialabel'
217
+ '[attr.aria-label]': 'buttonArialabel',
218
+ '[attr.aria-description]': 'buttonAriaDescription'
203
219
  }, providers: [
204
220
  contentDensityObserverProviders(),
205
221
  {
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-button.mjs","sources":["../../../../libs/core/src/lib/button/base-button.ts","../../../../libs/core/src/lib/button/tokens.ts","../../../../libs/core/src/lib/button/button.component.ts","../../../../libs/core/src/lib/button/button.component.html","../../../../libs/core/src/lib/button/deprecated-button-content-density.directive.ts","../../../../libs/core/src/lib/button/button.module.ts","../../../../libs/core/src/lib/button/fundamental-ngx-core-button.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\nimport { Directive, HostBinding, Input } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport type GlyphPosition = 'before' | 'after';\n\nexport type ButtonType =\n | ''\n | 'standard'\n | 'positive'\n | 'negative'\n | 'attention'\n | 'half'\n | 'ghost'\n | 'transparent'\n | 'emphasized'\n | 'menu';\n\n@Directive()\nexport class BaseButton {\n /**\n * Native type of button element\n */\n @Input()\n type: Nullable<string> = 'button';\n\n /** Position of glyph related to text */\n @Input()\n glyphPosition: GlyphPosition = 'before';\n\n /** The icon to include in the button. See the icon page for the list of icons.\n * Setter is used to control when css class have to be rebuilded.\n * Default value is set to ''.\n */\n @Input()\n glyph: Nullable<string>;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Leave empty for default (Standard button).'\n * Default value is set to 'standard'\n */\n @Input()\n fdType: ButtonType = 'standard';\n\n /**\n * Text rendered inside button component\n */\n @Input()\n label: string;\n\n /** Whether to apply menu mode to the button.\n * Default value is set to false\n */\n @Input()\n fdMenu = false;\n\n /** adding native aria-label to the component */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** @hidden */\n @HostBinding('class.fd-button--toggled')\n @HostBinding('attr.aria-pressed')\n _toggled: boolean;\n\n /** @hidden */\n _disabled = false;\n\n /** @hidden */\n _ariaDisabled: boolean;\n\n /** Whether button is in toggled state. */\n @Input()\n set toggled(value: BooleanInput) {\n this._toggled = coerceBooleanProperty(value);\n }\n get toggled(): boolean {\n return this._toggled;\n }\n\n /**\n * Native disabled attribute of button element\n */\n @Input()\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Native aria-disabled attribute of button element\n */\n @Input('aria-disabled')\n set ariaDisabled(value: BooleanInput) {\n this._ariaDisabled = coerceBooleanProperty(value);\n }\n get ariaDisabled(): boolean {\n return this._ariaDisabled;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_BUTTON_COMPONENT = new InjectionToken('FdButtonComponent');\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { BaseButton } from './base-button';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nimport { FD_BUTTON_COMPONENT } from './tokens';\n\n/**\n * Button directive, used to enhance standard HTML buttons.\n *\n * ``` selector: button[fd-button], a[fd-button] ```\n *\n * ```html\n * <button fd-button label=\"Button Text\"></button>\n * <a fd-button label=\"Button Text\"></a>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[fd-button], a[fd-button]',\n exportAs: 'fd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.type]': 'type',\n '[attr.disabled]': '_disabled || null',\n '[attr.aria-label]': 'buttonArialabel'\n },\n providers: [\n contentDensityObserverProviders(),\n {\n provide: FD_BUTTON_COMPONENT,\n useExisting: ButtonComponent\n }\n ]\n})\nexport class ButtonComponent extends BaseButton implements OnChanges, CssClassBuilder, OnInit, OnDestroy {\n /** The property allows user to pass additional css classes. */\n @Input()\n class = '';\n\n /** @hidden */\n specialButtonType: Array<string> = ['emphasized', 'positive', 'negative', 'attention'];\n\n /**\n * Calculate aria-label attribute\n * @hidden\n */\n get buttonArialabel(): string | null {\n if (this.ariaLabel) {\n return this.ariaLabel;\n }\n\n if (this.specialButtonType.includes(this.fdType)) {\n if (this.label != null) {\n return this.label + ', ' + this.fdType;\n }\n\n if (this.glyph != null) {\n return this.fdType + ', ' + this.glyph.split('-').join(' ');\n }\n }\n\n return null;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** Forces the focus outline around the button, which is not default behavior in Safari. */\n @HostListener('click', ['$event'])\n clicked(event: MouseEvent): void {\n const target = event?.target as HTMLElement;\n // Target can be empty during unit tests execution.\n if (target && document.activeElement !== target) {\n target.focus();\n }\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n super();\n _contentDensityObserver.subscribe();\n }\n\n /** Function runs when component is initialized\n * function should build component css class\n * function should build css style\n */\n public ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n public ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-button',\n this.fdType ? `fd-button--${this.fdType}` : '',\n this.fdMenu ? 'fd-button--menu' : '',\n this._disabled || this._ariaDisabled ? 'is-disabled' : '',\n this.toggled ? `fd-button--toggled` : '',\n this.class\n ];\n }\n\n /** @hidden */\n detectChanges(): void {\n this._changeDetectorRef.detectChanges();\n }\n}\n","<ng-container *ngIf=\"glyph && glyphPosition === 'before'\">\n <fd-icon [glyph]=\"glyph\"></fd-icon>\n</ng-container>\n\n<span class=\"fd-button__text\" *ngIf=\"label\">\n {{ label }}\n</span>\n<ng-content></ng-content>\n\n<ng-container *ngIf=\"glyph && glyphPosition === 'after'\">\n <fd-icon [glyph]=\"glyph\"></fd-icon>\n</ng-container>\n\n<fd-icon glyph=\"slim-arrow-down\" *ngIf=\"fdMenu\"></fd-icon>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-button][compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedButtonContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedButtonContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('[fd-button]');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonComponent } from './button.component';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { DeprecatedButtonContentDensityDirective } from './deprecated-button-content-density.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, IconModule, ContentDensityModule],\n exports: [ButtonComponent, DeprecatedButtonContentDensityDirective, ContentDensityModule],\n declarations: [ButtonComponent, DeprecatedButtonContentDensityDirective]\n})\nexport class ButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-button.mjs","sources":["../../../../libs/core/src/lib/button/base-button.ts","../../../../libs/core/src/lib/button/tokens.ts","../../../../libs/core/src/lib/button/button.component.ts","../../../../libs/core/src/lib/button/button.component.html","../../../../libs/core/src/lib/button/deprecated-button-content-density.directive.ts","../../../../libs/core/src/lib/button/button.module.ts","../../../../libs/core/src/lib/button/fundamental-ngx-core-button.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\nimport { Directive, HostBinding, Input } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nexport type GlyphPosition = 'before' | 'after';\n\nexport type ButtonType =\n | ''\n | 'standard'\n | 'positive'\n | 'negative'\n | 'attention'\n | 'half'\n | 'ghost'\n | 'transparent'\n | 'emphasized'\n | 'menu';\n\n@Directive()\nexport class BaseButton {\n /**\n * Native type of button element\n */\n @Input()\n type: Nullable<string> = 'button';\n\n /** Position of glyph related to text */\n @Input()\n glyphPosition: GlyphPosition = 'before';\n\n /** The icon to include in the button. See the icon page for the list of icons.\n * Setter is used to control when css class have to be rebuilded.\n * Default value is set to ''.\n */\n @Input()\n glyph: Nullable<string>;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Leave empty for default (Standard button).'\n * Default value is set to 'standard'\n */\n @Input()\n fdType: ButtonType = 'standard';\n\n /**\n * Text rendered inside button component\n */\n @Input()\n label: string;\n\n /** Whether to apply menu mode to the button.\n * Default value is set to false\n */\n @Input()\n fdMenu = false;\n\n /** adding native aria-label to the component */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** adding native aria-description to the componenet */\n @Input()\n ariaDescription: Nullable<string>;\n\n /** @hidden */\n @HostBinding('class.fd-button--toggled')\n @HostBinding('attr.aria-pressed')\n _toggled: boolean;\n\n /** @hidden */\n _disabled = false;\n\n /** @hidden */\n _ariaDisabled: boolean;\n\n /** Whether button is in toggled state. */\n @Input()\n set toggled(value: BooleanInput) {\n this._toggled = coerceBooleanProperty(value);\n }\n get toggled(): boolean {\n return this._toggled;\n }\n\n /**\n * Native disabled attribute of button element\n */\n @Input()\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Native aria-disabled attribute of button element\n */\n @Input('aria-disabled')\n set ariaDisabled(value: BooleanInput) {\n this._ariaDisabled = coerceBooleanProperty(value);\n }\n get ariaDisabled(): boolean {\n return this._ariaDisabled;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_BUTTON_COMPONENT = new InjectionToken('FdButtonComponent');\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { BaseButton } from './base-button';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\nimport { FD_BUTTON_COMPONENT } from './tokens';\n\n/**\n * Button directive, used to enhance standard HTML buttons.\n *\n * ``` selector: button[fd-button], a[fd-button] ```\n *\n * ```html\n * <button fd-button label=\"Button Text\"></button>\n * <a fd-button label=\"Button Text\"></a>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[fd-button], a[fd-button]',\n exportAs: 'fd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.type]': 'type',\n '[attr.disabled]': '_disabled || null',\n '[attr.aria-label]': 'buttonArialabel',\n '[attr.aria-description]': 'buttonAriaDescription'\n },\n providers: [\n contentDensityObserverProviders(),\n {\n provide: FD_BUTTON_COMPONENT,\n useExisting: ButtonComponent\n }\n ]\n})\nexport class ButtonComponent extends BaseButton implements OnChanges, CssClassBuilder, OnInit, OnDestroy {\n /** The property allows user to pass additional css classes. */\n @Input()\n class = '';\n\n /** @hidden */\n specialButtonType: Array<string> = ['emphasized', 'positive', 'negative', 'attention'];\n\n /**\n * Calculate aria-label attribute\n * @hidden\n */\n get buttonArialabel(): string | null {\n if (this.ariaLabel) {\n return this.ariaLabel;\n }\n\n if (this.specialButtonType.includes(this.fdType)) {\n if (this.label != null) {\n return this.label;\n }\n\n if (this.glyph != null) {\n return this.glyph.split('-').join(' ');\n }\n }\n\n return null;\n }\n\n /**\n * Calculate aria-description attribute\n * @hidden\n */\n get buttonAriaDescription(): string | null {\n if (this.ariaDescription) {\n return this.ariaDescription;\n }\n\n if (this.specialButtonType.includes(this.fdType)) {\n return this.fdType;\n }\n\n return null;\n }\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** Forces the focus outline around the button, which is not default behavior in Safari. */\n @HostListener('click', ['$event'])\n clicked(event: MouseEvent): void {\n const target = event?.target as HTMLElement;\n // Target can be empty during unit tests execution.\n if (target && document.activeElement !== target) {\n target.focus();\n }\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n super();\n _contentDensityObserver.subscribe();\n }\n\n /** Function runs when component is initialized\n * function should build component css class\n * function should build css style\n */\n public ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n public ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-button',\n this.fdType ? `fd-button--${this.fdType}` : '',\n this.fdMenu ? 'fd-button--menu' : '',\n this._disabled || this._ariaDisabled ? 'is-disabled' : '',\n this.toggled ? `fd-button--toggled` : '',\n this.class\n ];\n }\n\n /** @hidden */\n detectChanges(): void {\n this._changeDetectorRef.detectChanges();\n }\n}\n","<ng-container *ngIf=\"glyph && glyphPosition === 'before'\">\n <fd-icon [glyph]=\"glyph\"></fd-icon>\n</ng-container>\n\n<span class=\"fd-button__text\" *ngIf=\"label\">\n {{ label }}\n</span>\n<ng-content></ng-content>\n\n<ng-container *ngIf=\"glyph && glyphPosition === 'after'\">\n <fd-icon [glyph]=\"glyph\"></fd-icon>\n</ng-container>\n\n<fd-icon glyph=\"slim-arrow-down\" *ngIf=\"fdMenu\"></fd-icon>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-button][compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedButtonContentDensityDirective)\n }\n ]\n})\nexport class DeprecatedButtonContentDensityDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('[fd-button]');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonComponent } from './button.component';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { DeprecatedButtonContentDensityDirective } from './deprecated-button-content-density.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, IconModule, ContentDensityModule],\n exports: [ButtonComponent, DeprecatedButtonContentDensityDirective, ContentDensityModule],\n declarations: [ButtonComponent, DeprecatedButtonContentDensityDirective]\n})\nexport class ButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -166,6 +166,10 @@ class CarouselService {
166
166
  }
167
167
  /** @hidden */
168
168
  _centerActive(index) {
169
+ const size = this._getSize(this.items.first);
170
+ if (isNaN(size)) {
171
+ return;
172
+ }
169
173
  const middleIndex = Math.ceil(this.items.length / 2);
170
174
  const offset = Math.ceil(this.elementsAtOnce / 2);
171
175
  const missingItems = index + offset - middleIndex;