@sebgroup/green-angular 4.2.0 → 4.2.1

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.
@@ -61,6 +61,7 @@ export class NggDropdownComponent {
61
61
  this.loop = false;
62
62
  this.display = 'label';
63
63
  this.useValue = 'value';
64
+ this.maxHeight = 500;
64
65
  this._multiSelect = false;
65
66
  this._searchable = false;
66
67
  this.valueChange = new EventEmitter();
@@ -211,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
211
212
  type: ViewChild,
212
213
  args: ['gdsDropdown', { static: false }]
213
214
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUV4RSxPQUFPLG1EQUFtRCxDQUFBO0FBTTFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxtRUFBbUUsQ0FBQTs7OztBQWtDeEcsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsRUFBRTtJQUNGLElBQWEsT0FBTyxDQUFDLEtBQW1DO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzdDLENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFHRCxFQUFFO0lBQ0YsSUFB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QUFTOytCQUNFLGNBQWMsYUFHYjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQStHNUMsTUFBTTsyQkFBQyxRQUFROzRFQTVHVCxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR08sT0FBTztzQkFBbkIsS0FBSztnQkFhTyxXQUFXO3NCQUF2QixLQUFLO2dCQVNPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBU08sS0FBSztzQkFBakIsS0FBSztnQkF5QmEsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQywwQkFBMEI7Z0JBSXhDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQywwQkFBMEI7Z0JBR0ssV0FBVztzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOZ0NvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLW9wdGlvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBOZ2dEcm9wZG93bkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24tYnV0dG9uLmRpcmVjdGl2ZSdcblxuaW1wb3J0ICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2Ryb3Bkb3duL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUge1xuICBHZHNEcm9wZG93bixcbiAgR2RzT3B0aW9uLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2Ryb3Bkb3duL2luZGV4LmpzJ1xuXG5pbXBvcnQgKiBhcyBEcm9wZG93blRyYW5zU3R5bGVzIGZyb20gJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24udHJhbnMuc3R5bGVzLmpzJ1xuXG5leHBvcnQgdHlwZSBDb21wYXJlV2l0aDxUID0gYW55PiA9IChvMTogVCwgbzI6IFQpID0+IGJvb2xlYW5cbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlcjxUID0gYW55PiA9IChzZWFyY2g6IHN0cmluZywgdmFsdWU6IFQpID0+IGJvb2xlYW5cbmV4cG9ydCB0eXBlIERyb3Bkb3duUGxhY2VtZW50cyA9ICdib3R0b20tc3RhcnQnIHwgJ3RvcC1zdGFydCdcbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25UZXh0cyB7XG4gIHNlbGVjdD86IHN0cmluZ1xuICBzZWxlY3RlZD86IHN0cmluZ1xuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBzZWFyY2hQbGFjZWhvbGRlcj86IHN0cmluZ1xuICBjbG9zZT86IHN0cmluZ1xuICBvcHRpb25zRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICBsYWJlbD86IHN0cmluZ1xuICB2YWx1ZT86IGFueVxuICBzZWxlY3RlZD86IGJvb2xlYW5cbiAgaGVhZGluZz86IGJvb2xlYW5cbiAgW2tleTogc3RyaW5nXTogYW55XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZy1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTmdnRHJvcGRvd25Db21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmdnRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgaWQ/OiBzdHJpbmdcbiAgQElucHV0KCkgdGV4dHM/OiBEcm9wZG93blRleHRzXG4gIEBJbnB1dCgpIGxvb3A/OiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgZGlzcGxheSA9ICdsYWJlbCdcbiAgQElucHV0KCkgdXNlVmFsdWUgPSAndmFsdWUnXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIHZhbGlkPzogYm9vbGVhblxuICBASW5wdXQoKSBpbnZhbGlkPzogYm9vbGVhblxuICBASW5wdXQoKSBjb21wYXJlV2l0aD86IENvbXBhcmVXaXRoXG4gIEBJbnB1dCgpIHNlYXJjaEZpbHRlcj86IFNlYXJjaEZpbHRlclxuICBASW5wdXQoKSBzeW5jUG9wb3ZlcldpZHRoPzogYm9vbGVhblxuICBASW5wdXQoKSBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nXG4gIEBJbnB1dCgpIGhpZGVMYWJlbD86IGJvb2xlYW5cbiAgQElucHV0KCkgbWF4SGVpZ2h0PzogbnVtYmVyXG4gIEBJbnB1dCgpIGRpc2FibGVNb2JpbGVTdHlsZXM/OiBib29sZWFuXG5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIEBJbnB1dCgpIGZpeGVkUGxhY2VtZW50PzogRHJvcGRvd25QbGFjZW1lbnRzXG5cbiAgLy9cbiAgQElucHV0KCkgc2V0IG9wdGlvbnModmFsdWU6IERyb3Bkb3duT3B0aW9uW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBEcm9wZG93bk9wdGlvbltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uc1xuICB9XG4gIHByaXZhdGUgX29wdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gfCB1bmRlZmluZWRcblxuICAvL1xuICBASW5wdXQoKSBzZXQgbXVsdGlTZWxlY3QodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tdWx0aVNlbGVjdCA9IHRoaXMuY29udmVydFRvQm9vbGVhbih2YWx1ZSlcbiAgfVxuICBnZXQgbXVsdGlTZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpU2VsZWN0XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlTZWxlY3QgPSBmYWxzZVxuXG4gIC8vXG4gIEBJbnB1dCgpIHNldCBzZWFyY2hhYmxlKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VhcmNoYWJsZSA9IHRoaXMuY29udmVydFRvQm9vbGVhbih2YWx1ZSlcbiAgfVxuICBnZXQgc2VhcmNoYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoYWJsZVxuICB9XG4gIHByaXZhdGUgX3NlYXJjaGFibGUgPSBmYWxzZVxuXG4gIC8vXG4gIEBJbnB1dCgpIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVyblxuXG4gICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZVxuXG4gICAgdGhpcy50ZXh0cyA9IHtcbiAgICAgIC4uLnRoaXMudGV4dHMsXG4gICAgICBzZWxlY3Q6IHRoaXMuZGlzcGxheVRleHRCeVZhbHVlKHRoaXMuX3ZhbHVlKSxcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlXG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IERyb3Bkb3duT3B0aW9uIHwgRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZFxuXG4gIC8vXG4gIGdldCBzZWxlY3RlZE9wdGlvbigpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKVxuICAgICAgPyB0aGlzLnZhbHVlLm1hcCgodjogYW55KSA9PiB0aGlzLm9wdGlvbkJ5VmFsdWUodikpXG4gICAgICA6IHRoaXMub3B0aW9uQnlWYWx1ZSh0aGlzLnZhbHVlKVxuICB9XG5cbiAgb25DaGFuZ2VGbj86ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZFxuICBvblRvdWNoZWRGbj86ICgpID0+IHZvaWRcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRvdWNoZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgQENvbnRlbnRDaGlsZChOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSlcbiAgY3VzdG9tT3B0aW9uPzogTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmVcblxuICBAQ29udGVudENoaWxkKE5nZ0Ryb3Bkb3duQnV0dG9uRGlyZWN0aXZlKVxuICBjdXN0b21CdXR0b24/OiBOZ2dEcm9wZG93bkJ1dHRvbkRpcmVjdGl2ZVxuXG4gIEBWaWV3Q2hpbGQoJ2dkc0Ryb3Bkb3duJywgeyBzdGF0aWM6IGZhbHNlIH0pIGdkc0Ryb3Bkb3duPzogRWxlbWVudFJlZlxuXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEdkc0Ryb3Bkb3duPERyb3Bkb3duT3B0aW9uPlxuICAgIHRoaXMuX3ZhbHVlID0gdGFyZ2V0LnZhbHVlXG5cbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2VGbj8uKHRoaXMudmFsdWUpXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpXG5cbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBnZXQgY29udHJvbCgpOiBOZ0NvbnRyb2wgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBEcm9wZG93blRyYW5zU3R5bGVzLnJlZ2lzdGVyKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KVxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMub3B0aW9uc1xuICAgICAgICAgID8uZmlsdGVyKChvKSA9PiBvLnNlbGVjdGVkID09PSB0cnVlKVxuICAgICAgICAgID8ubWFwKChvKSA9PiBvW3RoaXMudXNlVmFsdWVdKVxuICAgICAgZWxzZVxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMub3B0aW9ucz8uZmluZCgobykgPT4gby5zZWxlY3RlZCA9PT0gdHJ1ZSk/LltcbiAgICAgICAgICB0aGlzLnVzZVZhbHVlXG4gICAgICAgIF1cblxuICAgICAgdGhpcy50ZXh0cyA9IHtcbiAgICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgICAgc2VsZWN0OiB0aGlzLmRpc3BsYXlUZXh0QnlWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0cyA9IHtcbiAgICAgIGNsb3NlOiB0aGlzLnRleHRzPy5jbG9zZSA/PyAnQ2xvc2UnLFxuICAgICAgb3B0aW9uc0Rlc2NyaXB0aW9uOiB0aGlzLnRleHRzPy5vcHRpb25zRGVzY3JpcHRpb24gPz8gJ09wdGlvbnMnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudGV4dHM/LnBsYWNlaG9sZGVyID8/ICdTZWxlY3QnLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6IHRoaXMudGV4dHM/LnNlYXJjaFBsYWNlaG9sZGVyID8/ICdTZWFyY2gnLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMudGV4dHM/LnNlbGVjdGVkID8/ICdzZWxlY3RlZCcsXG4gICAgICBzZWxlY3Q6IHRoaXMuZGlzcGxheVRleHRCeVZhbHVlKHRoaXMuX3ZhbHVlKSxcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUZuID0gZm5cbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuXG4gIH1cblxuICAvLyBUaGVzZSBhZGFwdGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCB0byBtYWludGFpbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQgaW50ZXJmYWNlXG4gIGNvbXBhcmVXaXRoQWRhcHRlciA9IChvMTogYW55LCBvMjogYW55KSA9PiB7XG4gICAgY29uc3QgY29tcGFyZUZuID0gdGhpcy5jb21wYXJlV2l0aCB8fCAoKGEsIGIpID0+IGEgPT09IGIpXG4gICAgcmV0dXJuIGNvbXBhcmVGbihvMSwgbzIpXG4gIH1cbiAgc2VhcmNoRmlsdGVyQWRhcHRlciA9IChxOiBzdHJpbmcsIG86IEdkc09wdGlvbikgPT4ge1xuICAgIGlmICh0aGlzLnNlYXJjaEZpbHRlcikgcmV0dXJuIHRoaXMuc2VhcmNoRmlsdGVyKHEsIG8udmFsdWUpXG4gICAgZWxzZVxuICAgICAgcmV0dXJuICgocTogc3RyaW5nLCBvOiBHZHNPcHRpb24pID0+XG4gICAgICAgIG8uaW5uZXJIVE1MLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocS50b0xvd2VyQ2FzZSgpKSkocSwgbylcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvQm9vbGVhbih2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZS50b1N0cmluZygpID09PSAndHJ1ZScgfHwgZmFsc2VcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG9wdGlvbkJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbmQoKG8pID0+IG9bdGhpcy51c2VWYWx1ZV0gPT09IHZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5VGV4dEJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLm9wdGlvbkJ5VmFsdWUodmFsdWUpPy5bdGhpcy5kaXNwbGF5XSB8fFxuICAgICAgICAodGhpcy50ZXh0cz8ucGxhY2Vob2xkZXIgPz8gJ1NlbGVjdCcpXG4gICAgICApXG5cbiAgICBjb25zdCBkaXNwbGF5VmFsdWVzID0gdmFsdWUubWFwKFxuICAgICAgKHYpID0+IHRoaXMub3B0aW9uQnlWYWx1ZSh2KT8uW3RoaXMuZGlzcGxheV0sXG4gICAgKVxuICAgIHJldHVybiBkaXNwbGF5VmFsdWVzPy5sZW5ndGggPiAyXG4gICAgICA/IGAke2Rpc3BsYXlWYWx1ZXMubGVuZ3RofSAke3RoaXMudGV4dHM/LnNlbGVjdGVkfSBgXG4gICAgICA6IGRpc3BsYXlWYWx1ZXM/LmpvaW4oJywgJykgfHwgKHRoaXMudGV4dHM/LnBsYWNlaG9sZGVyID8/ICdTZWxlY3QnKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8Z2RzLWRyb3Bkb3duXG4gICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgI2dkc0Ryb3Bkb3duXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlTZWxlY3RcIlxuICAgIFtpbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aEFkYXB0ZXJcIlxuICAgIFtzZWFyY2hGaWx0ZXJdPVwic2VhcmNoRmlsdGVyQWRhcHRlclwiXG4gICAgW3N5bmNQb3BvdmVyV2lkdGhdPVwic3luY1BvcG92ZXJXaWR0aFwiXG4gICAgW3NpemVdPVwic2l6ZVwiXG4gICAgW2hpZGVMYWJlbF09XCJoaWRlTGFiZWxcIlxuICAgIFttYXhIZWlnaHRdPVwibWF4SGVpZ2h0XCJcbiAgICBbZGlzYWJsZU1vYmlsZVN0eWxlc109XCJkaXNhYmxlTW9iaWxlU3R5bGVzXCJcbiAgPlxuICAgIDxzcGFuIHNsb3Q9XCJtZXNzYWdlXCIgI2Zvcm1JbmZvXG4gICAgICA+PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGEtZm9ybS1pbmZvXVwiPjwvbmctY29udGVudFxuICAgID48L3NwYW4+XG5cbiAgICA8c3BhbiBzbG90PVwidHJpZ2dlclwiXG4gICAgICA+PG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGN1c3RvbUJ1dHRvbj8udGVtcGxhdGVSZWYgJiYgc2VsZWN0ZWRPcHRpb25cbiAgICAgICAgICAgID8gY3VzdG9tQnV0dG9uIS50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgOiBkZWZhdWx0QnV0dG9uO1xuICAgICAgICAgIGNvbnRleHQ6IHsgb3B0aW9uOiBzZWxlY3RlZE9wdGlvbiB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXJcbiAgICA+PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdGlvbi5oZWFkaW5nOyBlbHNlIG9wdGlvbkhlYWRpbmdcIj5cbiAgICAgICAgPGdkcy1vcHRpb24gKm5nZ0NvcmVFbGVtZW50IFt2YWx1ZV09XCJvcHRpb25bdXNlVmFsdWVdXCJcbiAgICAgICAgICA+PG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY3VzdG9tT3B0aW9uPy50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgID8gY3VzdG9tT3B0aW9uIS50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgIDogZGVmYXVsdE9wdGlvbjtcbiAgICAgICAgICAgICAgY29udGV4dDogeyBvcHRpb246IG9wdGlvbiwgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyXG4gICAgICAgID48L2dkcy1vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjb3B0aW9uSGVhZGluZz5cbiAgICAgICAgPGdkcy1tZW51LWhlYWRpbmcgKm5nZ0NvcmVFbGVtZW50Pnt7IG9wdGlvbi5sYWJlbCB9fTwvZ2RzLW1lbnUtaGVhZGluZz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZ2RzLWRyb3Bkb3duPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbiBsZXQtc2VsZWN0ZWQ9XCJvcHRpb25cIj5cbiAgPHNwYW4gY2xhc3M9XCJ0cmlnZ2VyXCI+e3sgdGV4dHM/LnNlbGVjdCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvbiBsZXQtb3B0aW9uPVwib3B0aW9uXCI+XG4gIHt7IGRpc3BsYXkgPyBvcHRpb25bZGlzcGxheV0gOiBvcHRpb24ubmFtZSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUV4RSxPQUFPLG1EQUFtRCxDQUFBO0FBTTFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxtRUFBbUUsQ0FBQTs7OztBQWtDeEcsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsRUFBRTtJQUNGLElBQWEsT0FBTyxDQUFDLEtBQW1DO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzdDLENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFHRCxFQUFFO0lBQ0YsSUFB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NERBOzs0RkRHYSxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0UsY0FBYyxhQUdiO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsc0JBQXNCOzRCQUNqQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBK0c1QyxNQUFNOzJCQUFDLFFBQVE7NEVBNUdULEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHTyxPQUFPO3NCQUFuQixLQUFLO2dCQWFPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBU08sVUFBVTtzQkFBdEIsS0FBSztnQkFTTyxLQUFLO3NCQUFqQixLQUFLO2dCQXlCYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLE9BQU87c0JBQXpCLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLDBCQUEwQjtnQkFJeEMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLDBCQUEwQjtnQkFHSyxXQUFXO3NCQUF2RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgeyBOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24tb3B0aW9uLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE5nZ0Ryb3Bkb3duQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1idXR0b24uZGlyZWN0aXZlJ1xuXG5pbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7XG4gIEdkc0Ryb3Bkb3duLFxuICBHZHNPcHRpb24sXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vaW5kZXguanMnXG5cbmltcG9ydCAqIGFzIERyb3Bkb3duVHJhbnNTdHlsZXMgZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi50cmFucy5zdHlsZXMuanMnXG5cbmV4cG9ydCB0eXBlIENvbXBhcmVXaXRoPFQgPSBhbnk+ID0gKG8xOiBULCBvMjogVCkgPT4gYm9vbGVhblxuZXhwb3J0IHR5cGUgU2VhcmNoRmlsdGVyPFQgPSBhbnk+ID0gKHNlYXJjaDogc3RyaW5nLCB2YWx1ZTogVCkgPT4gYm9vbGVhblxuZXhwb3J0IHR5cGUgRHJvcGRvd25QbGFjZW1lbnRzID0gJ2JvdHRvbS1zdGFydCcgfCAndG9wLXN0YXJ0J1xuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93blRleHRzIHtcbiAgc2VsZWN0Pzogc3RyaW5nXG4gIHNlbGVjdGVkPzogc3RyaW5nXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIGNsb3NlPzogc3RyaW5nXG4gIG9wdGlvbnNEZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbiB7XG4gIGxhYmVsPzogc3RyaW5nXG4gIHZhbHVlPzogYW55XG4gIHNlbGVjdGVkPzogYm9vbGVhblxuICBoZWFkaW5nPzogYm9vbGVhblxuICBba2V5OiBzdHJpbmddOiBhbnlcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICdkcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOZ2dEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBpZD86IHN0cmluZ1xuICBASW5wdXQoKSB0ZXh0cz86IERyb3Bkb3duVGV4dHNcbiAgQElucHV0KCkgbG9vcD86IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBkaXNwbGF5ID0gJ2xhYmVsJ1xuICBASW5wdXQoKSB1c2VWYWx1ZSA9ICd2YWx1ZSdcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmdcbiAgQElucHV0KCkgdmFsaWQ/OiBib29sZWFuXG4gIEBJbnB1dCgpIGludmFsaWQ/OiBib29sZWFuXG4gIEBJbnB1dCgpIGNvbXBhcmVXaXRoPzogQ29tcGFyZVdpdGhcbiAgQElucHV0KCkgc2VhcmNoRmlsdGVyPzogU2VhcmNoRmlsdGVyXG4gIEBJbnB1dCgpIHN5bmNQb3BvdmVyV2lkdGg/OiBib29sZWFuXG4gIEBJbnB1dCgpIHNpemU/OiAnc21hbGwnIHwgJ21lZGl1bSdcbiAgQElucHV0KCkgaGlkZUxhYmVsPzogYm9vbGVhblxuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBudW1iZXIgPSA1MDBcbiAgQElucHV0KCkgZGlzYWJsZU1vYmlsZVN0eWxlcz86IGJvb2xlYW5cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgQElucHV0KCkgZml4ZWRQbGFjZW1lbnQ/OiBEcm9wZG93blBsYWNlbWVudHNcblxuICAvL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZVxuICAgIHRoaXMudGV4dHMgPSB7XG4gICAgICAuLi50aGlzLnRleHRzLFxuICAgICAgc2VsZWN0OiB0aGlzLmRpc3BsYXlUZXh0QnlWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IERyb3Bkb3duT3B0aW9uW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cbiAgcHJpdmF0ZSBfb3B0aW9uczogRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZFxuXG4gIC8vXG4gIEBJbnB1dCgpIHNldCBtdWx0aVNlbGVjdCh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpU2VsZWN0ID0gdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHZhbHVlKVxuICB9XG4gIGdldCBtdWx0aVNlbGVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlTZWxlY3RcbiAgfVxuICBwcml2YXRlIF9tdWx0aVNlbGVjdCA9IGZhbHNlXG5cbiAgLy9cbiAgQElucHV0KCkgc2V0IHNlYXJjaGFibGUodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zZWFyY2hhYmxlID0gdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHZhbHVlKVxuICB9XG4gIGdldCBzZWFyY2hhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hhYmxlXG4gIH1cbiAgcHJpdmF0ZSBfc2VhcmNoYWJsZSA9IGZhbHNlXG5cbiAgLy9cbiAgQElucHV0KCkgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykgcmV0dXJuXG5cbiAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlXG5cbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cbiAgfVxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogRHJvcGRvd25PcHRpb24gfCBEcm9wZG93bk9wdGlvbltdIHwgdW5kZWZpbmVkXG5cbiAgLy9cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpXG4gICAgICA/IHRoaXMudmFsdWUubWFwKCh2OiBhbnkpID0+IHRoaXMub3B0aW9uQnlWYWx1ZSh2KSlcbiAgICAgIDogdGhpcy5vcHRpb25CeVZhbHVlKHRoaXMudmFsdWUpXG4gIH1cblxuICBvbkNoYW5nZUZuPzogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkXG4gIG9uVG91Y2hlZEZuPzogKCkgPT4gdm9pZFxuXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdG91Y2hlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBAQ29udGVudENoaWxkKE5nZ0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlKVxuICBjdXN0b21PcHRpb24/OiBOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZVxuXG4gIEBDb250ZW50Q2hpbGQoTmdnRHJvcGRvd25CdXR0b25EaXJlY3RpdmUpXG4gIGN1c3RvbUJ1dHRvbj86IE5nZ0Ryb3Bkb3duQnV0dG9uRGlyZWN0aXZlXG5cbiAgQFZpZXdDaGlsZCgnZ2RzRHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgZ2RzRHJvcGRvd24/OiBFbGVtZW50UmVmXG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2U6IChldmVudDogRXZlbnQpID0+IHZvaWQgPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgR2RzRHJvcGRvd248RHJvcGRvd25PcHRpb24+XG4gICAgdGhpcy5fdmFsdWUgPSB0YXJnZXQudmFsdWVcblxuICAgIHRoaXMudGV4dHMgPSB7XG4gICAgICAuLi50aGlzLnRleHRzLFxuICAgICAgc2VsZWN0OiB0aGlzLmRpc3BsYXlUZXh0QnlWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUZuPy4odGhpcy52YWx1ZSlcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSlcblxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIGdldCBjb250cm9sKCk6IE5nQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIERyb3Bkb3duVHJhbnNTdHlsZXMucmVnaXN0ZXIoKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl92YWx1ZSkge1xuICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5vcHRpb25zXG4gICAgICAgICAgPy5maWx0ZXIoKG8pID0+IG8uc2VsZWN0ZWQgPT09IHRydWUpXG4gICAgICAgICAgPy5tYXAoKG8pID0+IG9bdGhpcy51c2VWYWx1ZV0pXG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5vcHRpb25zPy5maW5kKChvKSA9PiBvLnNlbGVjdGVkID09PSB0cnVlKT8uW1xuICAgICAgICAgIHRoaXMudXNlVmFsdWVcbiAgICAgICAgXVxuXG4gICAgICB0aGlzLnRleHRzID0ge1xuICAgICAgICAuLi50aGlzLnRleHRzLFxuICAgICAgICBzZWxlY3Q6IHRoaXMuZGlzcGxheVRleHRCeVZhbHVlKHRoaXMuX3ZhbHVlKSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgY2xvc2U6IHRoaXMudGV4dHM/LmNsb3NlID8/ICdDbG9zZScsXG4gICAgICBvcHRpb25zRGVzY3JpcHRpb246IHRoaXMudGV4dHM/Lm9wdGlvbnNEZXNjcmlwdGlvbiA/PyAnT3B0aW9ucycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50ZXh0cz8ucGxhY2Vob2xkZXIgPz8gJ1NlbGVjdCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogdGhpcy50ZXh0cz8uc2VhcmNoUGxhY2Vob2xkZXIgPz8gJ1NlYXJjaCcsXG4gICAgICBzZWxlY3RlZDogdGhpcy50ZXh0cz8uc2VsZWN0ZWQgPz8gJ3NlbGVjdGVkJyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm5cbiAgfVxuXG4gIC8vIFRoZXNlIGFkYXB0ZXIgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZCBpbnRlcmZhY2VcbiAgY29tcGFyZVdpdGhBZGFwdGVyID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IHtcbiAgICBjb25zdCBjb21wYXJlRm4gPSB0aGlzLmNvbXBhcmVXaXRoIHx8ICgoYSwgYikgPT4gYSA9PT0gYilcbiAgICByZXR1cm4gY29tcGFyZUZuKG8xLCBvMilcbiAgfVxuICBzZWFyY2hGaWx0ZXJBZGFwdGVyID0gKHE6IHN0cmluZywgbzogR2RzT3B0aW9uKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VhcmNoRmlsdGVyKSByZXR1cm4gdGhpcy5zZWFyY2hGaWx0ZXIocSwgby52YWx1ZSlcbiAgICBlbHNlXG4gICAgICByZXR1cm4gKChxOiBzdHJpbmcsIG86IEdkc09wdGlvbikgPT5cbiAgICAgICAgby5pbm5lckhUTUwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxLnRvTG93ZXJDYXNlKCkpKShxLCBvKVxuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlLnRvU3RyaW5nKCkgPT09ICd0cnVlJyB8fCBmYWxzZVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgb3B0aW9uQnlWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uZmluZCgobykgPT4gb1t0aGlzLnVzZVZhbHVlXSA9PT0gdmFsdWUpXG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlUZXh0QnlWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMub3B0aW9uQnlWYWx1ZSh2YWx1ZSk/Llt0aGlzLmRpc3BsYXldIHx8XG4gICAgICAgICh0aGlzLnRleHRzPy5wbGFjZWhvbGRlciA/PyAnU2VsZWN0JylcbiAgICAgIClcblxuICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXMgPSB2YWx1ZS5tYXAoXG4gICAgICAodikgPT4gdGhpcy5vcHRpb25CeVZhbHVlKHYpPy5bdGhpcy5kaXNwbGF5XSxcbiAgICApXG4gICAgcmV0dXJuIGRpc3BsYXlWYWx1ZXM/Lmxlbmd0aCA+IDJcbiAgICAgID8gYCR7ZGlzcGxheVZhbHVlcy5sZW5ndGh9ICR7dGhpcy50ZXh0cz8uc2VsZWN0ZWR9IGBcbiAgICAgIDogZGlzcGxheVZhbHVlcz8uam9pbignLCAnKSB8fCAodGhpcy50ZXh0cz8ucGxhY2Vob2xkZXIgPz8gJ1NlbGVjdCcpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxnZHMtZHJvcGRvd25cbiAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAjZ2RzRHJvcGRvd25cbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFtzZWFyY2hhYmxlXT1cInNlYXJjaGFibGVcIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aVNlbGVjdFwiXG4gICAgW2ludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoQWRhcHRlclwiXG4gICAgW3NlYXJjaEZpbHRlcl09XCJzZWFyY2hGaWx0ZXJBZGFwdGVyXCJcbiAgICBbc3luY1BvcG92ZXJXaWR0aF09XCJzeW5jUG9wb3ZlcldpZHRoXCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBbaGlkZUxhYmVsXT1cImhpZGVMYWJlbFwiXG4gICAgW21heEhlaWdodF09XCJtYXhIZWlnaHRcIlxuICAgIFtkaXNhYmxlTW9iaWxlU3R5bGVzXT1cImRpc2FibGVNb2JpbGVTdHlsZXNcIlxuICA+XG4gICAgPHNwYW4gc2xvdD1cIm1lc3NhZ2VcIiAjZm9ybUluZm9cbiAgICAgID48bmctY29udGVudCBzZWxlY3Q9XCJbZGF0YS1mb3JtLWluZm9dXCI+PC9uZy1jb250ZW50XG4gICAgPjwvc3Bhbj5cblxuICAgIDxzcGFuIHNsb3Q9XCJ0cmlnZ2VyXCJcbiAgICAgID48bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgY3VzdG9tQnV0dG9uPy50ZW1wbGF0ZVJlZiAmJiBzZWxlY3RlZE9wdGlvblxuICAgICAgICAgICAgPyBjdXN0b21CdXR0b24hLnRlbXBsYXRlUmVmXG4gICAgICAgICAgICA6IGRlZmF1bHRCdXR0b247XG4gICAgICAgICAgY29udGV4dDogeyBvcHRpb246IHNlbGVjdGVkT3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lclxuICAgID48L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uLmhlYWRpbmc7IGVsc2Ugb3B0aW9uSGVhZGluZ1wiPlxuICAgICAgICA8Z2RzLW9wdGlvbiAqbmdnQ29yZUVsZW1lbnQgW3ZhbHVlXT1cIm9wdGlvblt1c2VWYWx1ZV1cIlxuICAgICAgICAgID48bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBjdXN0b21PcHRpb24/LnRlbXBsYXRlUmVmXG4gICAgICAgICAgICAgICAgPyBjdXN0b21PcHRpb24hLnRlbXBsYXRlUmVmXG4gICAgICAgICAgICAgICAgOiBkZWZhdWx0T3B0aW9uO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7IG9wdGlvbjogb3B0aW9uLCBpbmRleDogaW5kZXggfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXJcbiAgICAgICAgPjwvZ2RzLW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNvcHRpb25IZWFkaW5nPlxuICAgICAgICA8Z2RzLW1lbnUtaGVhZGluZyAqbmdnQ29yZUVsZW1lbnQ+e3sgb3B0aW9uLmxhYmVsIH19PC9nZHMtbWVudS1oZWFkaW5nPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9nZHMtZHJvcGRvd24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0QnV0dG9uIGxldC1zZWxlY3RlZD1cIm9wdGlvblwiPlxuICA8c3BhbiBjbGFzcz1cInRyaWdnZXJcIj57eyB0ZXh0cz8uc2VsZWN0IH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uIGxldC1vcHRpb249XCJvcHRpb25cIj5cbiAge3sgZGlzcGxheSA/IG9wdGlvbltkaXNwbGF5XSA6IG9wdGlvbi5uYW1lIH19XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -61,6 +61,7 @@ export class NggDropdownComponent {
61
61
  this.loop = false;
62
62
  this.display = 'label';
63
63
  this.useValue = 'value';
64
+ this.maxHeight = 500;
64
65
  this._multiSelect = false;
65
66
  this._searchable = false;
66
67
  this.valueChange = new EventEmitter();
@@ -211,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
211
212
  type: ViewChild,
212
213
  args: ['gdsDropdown', { static: false }]
213
214
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUV4RSxPQUFPLG1EQUFtRCxDQUFBO0FBTTFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxtRUFBbUUsQ0FBQTs7OztBQWtDeEcsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsRUFBRTtJQUNGLElBQWEsT0FBTyxDQUFDLEtBQW1DO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzdDLENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFHRCxFQUFFO0lB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QWJoQyxTQUFTOytCQUNFLGNBQWMsYUFHYjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQStHNUMsTUFBTTsyQkFBQyxRQUFROzRFQTVHVCxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR08sT0FBTztzQkFBbkIsS0FBSztnQkFhTyxXQUFXO3NCQUF2QixLQUFLO2dCQVNPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBU08sS0FBSztzQkFBakIsS0FBSztnQkF5QmEsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQywwQkFBMEI7Z0JBSXhDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQywwQkFBMEI7Z0JBR0ssV0FBVztzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOZ0NvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLW9wdGlvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBOZ2dEcm9wZG93bkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24tYnV0dG9uLmRpcmVjdGl2ZSdcblxuaW1wb3J0ICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2Ryb3Bkb3duL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUge1xuICBHZHNEcm9wZG93bixcbiAgR2RzT3B0aW9uLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tY29yZS9jb21wb25lbnRzL2Ryb3Bkb3duL2luZGV4LmpzJ1xuXG5pbXBvcnQgKiBhcyBEcm9wZG93blRyYW5zU3R5bGVzIGZyb20gJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24udHJhbnMuc3R5bGVzLmpzJ1xuXG5leHBvcnQgdHlwZSBDb21wYXJlV2l0aDxUID0gYW55PiA9IChvMTogVCwgbzI6IFQpID0+IGJvb2xlYW5cbmV4cG9ydCB0eXBlIFNlYXJjaEZpbHRlcjxUID0gYW55PiA9IChzZWFyY2g6IHN0cmluZywgdmFsdWU6IFQpID0+IGJvb2xlYW5cbmV4cG9ydCB0eXBlIERyb3Bkb3duUGxhY2VtZW50cyA9ICdib3R0b20tc3RhcnQnIHwgJ3RvcC1zdGFydCdcbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25UZXh0cyB7XG4gIHNlbGVjdD86IHN0cmluZ1xuICBzZWxlY3RlZD86IHN0cmluZ1xuICBwbGFjZWhvbGRlcj86IHN0cmluZ1xuICBzZWFyY2hQbGFjZWhvbGRlcj86IHN0cmluZ1xuICBjbG9zZT86IHN0cmluZ1xuICBvcHRpb25zRGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICBsYWJlbD86IHN0cmluZ1xuICB2YWx1ZT86IGFueVxuICBzZWxlY3RlZD86IGJvb2xlYW5cbiAgaGVhZGluZz86IGJvb2xlYW5cbiAgW2tleTogc3RyaW5nXTogYW55XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZy1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTmdnRHJvcGRvd25Db21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmdnRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgaWQ/OiBzdHJpbmdcbiAgQElucHV0KCkgdGV4dHM/OiBEcm9wZG93blRleHRzXG4gIEBJbnB1dCgpIGxvb3A/OiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgZGlzcGxheSA9ICdsYWJlbCdcbiAgQElucHV0KCkgdXNlVmFsdWUgPSAndmFsdWUnXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIHZhbGlkPzogYm9vbGVhblxuICBASW5wdXQoKSBpbnZhbGlkPzogYm9vbGVhblxuICBASW5wdXQoKSBjb21wYXJlV2l0aD86IENvbXBhcmVXaXRoXG4gIEBJbnB1dCgpIHNlYXJjaEZpbHRlcj86IFNlYXJjaEZpbHRlclxuICBASW5wdXQoKSBzeW5jUG9wb3ZlcldpZHRoPzogYm9vbGVhblxuICBASW5wdXQoKSBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nXG4gIEBJbnB1dCgpIGhpZGVMYWJlbD86IGJvb2xlYW5cbiAgQElucHV0KCkgbWF4SGVpZ2h0PzogbnVtYmVyXG4gIEBJbnB1dCgpIGRpc2FibGVNb2JpbGVTdHlsZXM/OiBib29sZWFuXG5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIEBJbnB1dCgpIGZpeGVkUGxhY2VtZW50PzogRHJvcGRvd25QbGFjZW1lbnRzXG5cbiAgLy9cbiAgQElucHV0KCkgc2V0IG9wdGlvbnModmFsdWU6IERyb3Bkb3duT3B0aW9uW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBEcm9wZG93bk9wdGlvbltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uc1xuICB9XG4gIHByaXZhdGUgX29wdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gfCB1bmRlZmluZWRcblxuICAvL1xuICBASW5wdXQoKSBzZXQgbXVsdGlTZWxlY3QodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tdWx0aVNlbGVjdCA9IHRoaXMuY29udmVydFRvQm9vbGVhbih2YWx1ZSlcbiAgfVxuICBnZXQgbXVsdGlTZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpU2VsZWN0XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlTZWxlY3QgPSBmYWxzZVxuXG4gIC8vXG4gIEBJbnB1dCgpIHNldCBzZWFyY2hhYmxlKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VhcmNoYWJsZSA9IHRoaXMuY29udmVydFRvQm9vbGVhbih2YWx1ZSlcbiAgfVxuICBnZXQgc2VhcmNoYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoYWJsZVxuICB9XG4gIHByaXZhdGUgX3NlYXJjaGFibGUgPSBmYWxzZVxuXG4gIC8vXG4gIEBJbnB1dCgpIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVyblxuXG4gICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZVxuXG4gICAgdGhpcy50ZXh0cyA9IHtcbiAgICAgIC4uLnRoaXMudGV4dHMsXG4gICAgICBzZWxlY3Q6IHRoaXMuZGlzcGxheVRleHRCeVZhbHVlKHRoaXMuX3ZhbHVlKSxcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlXG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IERyb3Bkb3duT3B0aW9uIHwgRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZFxuXG4gIC8vXG4gIGdldCBzZWxlY3RlZE9wdGlvbigpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKVxuICAgICAgPyB0aGlzLnZhbHVlLm1hcCgodjogYW55KSA9PiB0aGlzLm9wdGlvbkJ5VmFsdWUodikpXG4gICAgICA6IHRoaXMub3B0aW9uQnlWYWx1ZSh0aGlzLnZhbHVlKVxuICB9XG5cbiAgb25DaGFuZ2VGbj86ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZFxuICBvblRvdWNoZWRGbj86ICgpID0+IHZvaWRcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRvdWNoZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgQENvbnRlbnRDaGlsZChOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSlcbiAgY3VzdG9tT3B0aW9uPzogTmdnRHJvcGRvd25PcHRpb25EaXJlY3RpdmVcblxuICBAQ29udGVudENoaWxkKE5nZ0Ryb3Bkb3duQnV0dG9uRGlyZWN0aXZlKVxuICBjdXN0b21CdXR0b24/OiBOZ2dEcm9wZG93bkJ1dHRvbkRpcmVjdGl2ZVxuXG4gIEBWaWV3Q2hpbGQoJ2dkc0Ryb3Bkb3duJywgeyBzdGF0aWM6IGZhbHNlIH0pIGdkc0Ryb3Bkb3duPzogRWxlbWVudFJlZlxuXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkID0gKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEdkc0Ryb3Bkb3duPERyb3Bkb3duT3B0aW9uPlxuICAgIHRoaXMuX3ZhbHVlID0gdGFyZ2V0LnZhbHVlXG5cbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2VGbj8uKHRoaXMudmFsdWUpXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpXG5cbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBnZXQgY29udHJvbCgpOiBOZ0NvbnRyb2wgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBEcm9wZG93blRyYW5zU3R5bGVzLnJlZ2lzdGVyKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KVxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMub3B0aW9uc1xuICAgICAgICAgID8uZmlsdGVyKChvKSA9PiBvLnNlbGVjdGVkID09PSB0cnVlKVxuICAgICAgICAgID8ubWFwKChvKSA9PiBvW3RoaXMudXNlVmFsdWVdKVxuICAgICAgZWxzZVxuICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMub3B0aW9ucz8uZmluZCgobykgPT4gby5zZWxlY3RlZCA9PT0gdHJ1ZSk/LltcbiAgICAgICAgICB0aGlzLnVzZVZhbHVlXG4gICAgICAgIF1cblxuICAgICAgdGhpcy50ZXh0cyA9IHtcbiAgICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgICAgc2VsZWN0OiB0aGlzLmRpc3BsYXlUZXh0QnlWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0cyA9IHtcbiAgICAgIGNsb3NlOiB0aGlzLnRleHRzPy5jbG9zZSA/PyAnQ2xvc2UnLFxuICAgICAgb3B0aW9uc0Rlc2NyaXB0aW9uOiB0aGlzLnRleHRzPy5vcHRpb25zRGVzY3JpcHRpb24gPz8gJ09wdGlvbnMnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudGV4dHM/LnBsYWNlaG9sZGVyID8/ICdTZWxlY3QnLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6IHRoaXMudGV4dHM/LnNlYXJjaFBsYWNlaG9sZGVyID8/ICdTZWFyY2gnLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMudGV4dHM/LnNlbGVjdGVkID8/ICdzZWxlY3RlZCcsXG4gICAgICBzZWxlY3Q6IHRoaXMuZGlzcGxheVRleHRCeVZhbHVlKHRoaXMuX3ZhbHVlKSxcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUZuID0gZm5cbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuXG4gIH1cblxuICAvLyBUaGVzZSBhZGFwdGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCB0byBtYWludGFpbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQgaW50ZXJmYWNlXG4gIGNvbXBhcmVXaXRoQWRhcHRlciA9IChvMTogYW55LCBvMjogYW55KSA9PiB7XG4gICAgY29uc3QgY29tcGFyZUZuID0gdGhpcy5jb21wYXJlV2l0aCB8fCAoKGEsIGIpID0+IGEgPT09IGIpXG4gICAgcmV0dXJuIGNvbXBhcmVGbihvMSwgbzIpXG4gIH1cbiAgc2VhcmNoRmlsdGVyQWRhcHRlciA9IChxOiBzdHJpbmcsIG86IEdkc09wdGlvbikgPT4ge1xuICAgIGlmICh0aGlzLnNlYXJjaEZpbHRlcikgcmV0dXJuIHRoaXMuc2VhcmNoRmlsdGVyKHEsIG8udmFsdWUpXG4gICAgZWxzZVxuICAgICAgcmV0dXJuICgocTogc3RyaW5nLCBvOiBHZHNPcHRpb24pID0+XG4gICAgICAgIG8uaW5uZXJIVE1MLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocS50b0xvd2VyQ2FzZSgpKSkocSwgbylcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvQm9vbGVhbih2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZS50b1N0cmluZygpID09PSAndHJ1ZScgfHwgZmFsc2VcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG9wdGlvbkJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbmQoKG8pID0+IG9bdGhpcy51c2VWYWx1ZV0gPT09IHZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5VGV4dEJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLm9wdGlvbkJ5VmFsdWUodmFsdWUpPy5bdGhpcy5kaXNwbGF5XSB8fFxuICAgICAgICAodGhpcy50ZXh0cz8ucGxhY2Vob2xkZXIgPz8gJ1NlbGVjdCcpXG4gICAgICApXG5cbiAgICBjb25zdCBkaXNwbGF5VmFsdWVzID0gdmFsdWUubWFwKFxuICAgICAgKHYpID0+IHRoaXMub3B0aW9uQnlWYWx1ZSh2KT8uW3RoaXMuZGlzcGxheV0sXG4gICAgKVxuICAgIHJldHVybiBkaXNwbGF5VmFsdWVzPy5sZW5ndGggPiAyXG4gICAgICA/IGAke2Rpc3BsYXlWYWx1ZXMubGVuZ3RofSAke3RoaXMudGV4dHM/LnNlbGVjdGVkfSBgXG4gICAgICA6IGRpc3BsYXlWYWx1ZXM/LmpvaW4oJywgJykgfHwgKHRoaXMudGV4dHM/LnBsYWNlaG9sZGVyID8/ICdTZWxlY3QnKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICA8Z2RzLWRyb3Bkb3duXG4gICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgI2dkc0Ryb3Bkb3duXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbc2VhcmNoYWJsZV09XCJzZWFyY2hhYmxlXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlTZWxlY3RcIlxuICAgIFtpbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aEFkYXB0ZXJcIlxuICAgIFtzZWFyY2hGaWx0ZXJdPVwic2VhcmNoRmlsdGVyQWRhcHRlclwiXG4gICAgW3N5bmNQb3BvdmVyV2lkdGhdPVwic3luY1BvcG92ZXJXaWR0aFwiXG4gICAgW3NpemVdPVwic2l6ZVwiXG4gICAgW2hpZGVMYWJlbF09XCJoaWRlTGFiZWxcIlxuICAgIFttYXhIZWlnaHRdPVwibWF4SGVpZ2h0XCJcbiAgICBbZGlzYWJsZU1vYmlsZVN0eWxlc109XCJkaXNhYmxlTW9iaWxlU3R5bGVzXCJcbiAgPlxuICAgIDxzcGFuIHNsb3Q9XCJtZXNzYWdlXCIgI2Zvcm1JbmZvXG4gICAgICA+PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RhdGEtZm9ybS1pbmZvXVwiPjwvbmctY29udGVudFxuICAgID48L3NwYW4+XG5cbiAgICA8c3BhbiBzbG90PVwidHJpZ2dlclwiXG4gICAgICA+PG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGN1c3RvbUJ1dHRvbj8udGVtcGxhdGVSZWYgJiYgc2VsZWN0ZWRPcHRpb25cbiAgICAgICAgICAgID8gY3VzdG9tQnV0dG9uIS50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgOiBkZWZhdWx0QnV0dG9uO1xuICAgICAgICAgIGNvbnRleHQ6IHsgb3B0aW9uOiBzZWxlY3RlZE9wdGlvbiB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXJcbiAgICA+PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdGlvbi5oZWFkaW5nOyBlbHNlIG9wdGlvbkhlYWRpbmdcIj5cbiAgICAgICAgPGdkcy1vcHRpb24gKm5nZ0NvcmVFbGVtZW50IFt2YWx1ZV09XCJvcHRpb25bdXNlVmFsdWVdXCJcbiAgICAgICAgICA+PG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY3VzdG9tT3B0aW9uPy50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgID8gY3VzdG9tT3B0aW9uIS50ZW1wbGF0ZVJlZlxuICAgICAgICAgICAgICAgIDogZGVmYXVsdE9wdGlvbjtcbiAgICAgICAgICAgICAgY29udGV4dDogeyBvcHRpb246IG9wdGlvbiwgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyXG4gICAgICAgID48L2dkcy1vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjb3B0aW9uSGVhZGluZz5cbiAgICAgICAgPGdkcy1tZW51LWhlYWRpbmcgKm5nZ0NvcmVFbGVtZW50Pnt7IG9wdGlvbi5sYWJlbCB9fTwvZ2RzLW1lbnUtaGVhZGluZz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZ2RzLWRyb3Bkb3duPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbiBsZXQtc2VsZWN0ZWQ9XCJvcHRpb25cIj5cbiAgPHNwYW4gY2xhc3M9XCJ0cmlnZ2VyXCI+e3sgdGV4dHM/LnNlbGVjdCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvbiBsZXQtb3B0aW9uPVwib3B0aW9uXCI+XG4gIHt7IGRpc3BsYXkgPyBvcHRpb25bZGlzcGxheV0gOiBvcHRpb24ubmFtZSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUV4RSxPQUFPLG1EQUFtRCxDQUFBO0FBTTFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxtRUFBbUUsQ0FBQTs7OztBQWtDeEcsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsRUFBRTtJQUNGLElBQWEsT0FBTyxDQUFDLEtBQW1DO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzdDLENBQUE7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFHRCxFQUFFO0lB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Qyw4M0RBNERBOzs0RkRHYSxvQkFBb0I7a0JBYmhDLFNBQVM7K0JBQ0UsY0FBYyxhQUdiO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsc0JBQXNCOzRCQUNqQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBK0c1QyxNQUFNOzJCQUFDLFFBQVE7NEVBNUdULEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHTyxPQUFPO3NCQUFuQixLQUFLO2dCQWFPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBU08sVUFBVTtzQkFBdEIsS0FBSztnQkFTTyxLQUFLO3NCQUFqQixLQUFLO2dCQXlCYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLE9BQU87c0JBQXpCLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLDBCQUEwQjtnQkFJeEMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLDBCQUEwQjtnQkFHSyxXQUFXO3NCQUF2RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgeyBOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24tb3B0aW9uLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE5nZ0Ryb3Bkb3duQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1idXR0b24uZGlyZWN0aXZlJ1xuXG5pbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7XG4gIEdkc0Ryb3Bkb3duLFxuICBHZHNPcHRpb24sXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vaW5kZXguanMnXG5cbmltcG9ydCAqIGFzIERyb3Bkb3duVHJhbnNTdHlsZXMgZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi50cmFucy5zdHlsZXMuanMnXG5cbmV4cG9ydCB0eXBlIENvbXBhcmVXaXRoPFQgPSBhbnk+ID0gKG8xOiBULCBvMjogVCkgPT4gYm9vbGVhblxuZXhwb3J0IHR5cGUgU2VhcmNoRmlsdGVyPFQgPSBhbnk+ID0gKHNlYXJjaDogc3RyaW5nLCB2YWx1ZTogVCkgPT4gYm9vbGVhblxuZXhwb3J0IHR5cGUgRHJvcGRvd25QbGFjZW1lbnRzID0gJ2JvdHRvbS1zdGFydCcgfCAndG9wLXN0YXJ0J1xuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93blRleHRzIHtcbiAgc2VsZWN0Pzogc3RyaW5nXG4gIHNlbGVjdGVkPzogc3RyaW5nXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIGNsb3NlPzogc3RyaW5nXG4gIG9wdGlvbnNEZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbiB7XG4gIGxhYmVsPzogc3RyaW5nXG4gIHZhbHVlPzogYW55XG4gIHNlbGVjdGVkPzogYm9vbGVhblxuICBoZWFkaW5nPzogYm9vbGVhblxuICBba2V5OiBzdHJpbmddOiBhbnlcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICdkcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOZ2dEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBpZD86IHN0cmluZ1xuICBASW5wdXQoKSB0ZXh0cz86IERyb3Bkb3duVGV4dHNcbiAgQElucHV0KCkgbG9vcD86IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBkaXNwbGF5ID0gJ2xhYmVsJ1xuICBASW5wdXQoKSB1c2VWYWx1ZSA9ICd2YWx1ZSdcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmdcbiAgQElucHV0KCkgdmFsaWQ/OiBib29sZWFuXG4gIEBJbnB1dCgpIGludmFsaWQ/OiBib29sZWFuXG4gIEBJbnB1dCgpIGNvbXBhcmVXaXRoPzogQ29tcGFyZVdpdGhcbiAgQElucHV0KCkgc2VhcmNoRmlsdGVyPzogU2VhcmNoRmlsdGVyXG4gIEBJbnB1dCgpIHN5bmNQb3BvdmVyV2lkdGg/OiBib29sZWFuXG4gIEBJbnB1dCgpIHNpemU/OiAnc21hbGwnIHwgJ21lZGl1bSdcbiAgQElucHV0KCkgaGlkZUxhYmVsPzogYm9vbGVhblxuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBudW1iZXIgPSA1MDBcbiAgQElucHV0KCkgZGlzYWJsZU1vYmlsZVN0eWxlcz86IGJvb2xlYW5cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgQElucHV0KCkgZml4ZWRQbGFjZW1lbnQ/OiBEcm9wZG93blBsYWNlbWVudHNcblxuICAvL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZVxuICAgIHRoaXMudGV4dHMgPSB7XG4gICAgICAuLi50aGlzLnRleHRzLFxuICAgICAgc2VsZWN0OiB0aGlzLmRpc3BsYXlUZXh0QnlWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IERyb3Bkb3duT3B0aW9uW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cbiAgcHJpdmF0ZSBfb3B0aW9uczogRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZFxuXG4gIC8vXG4gIEBJbnB1dCgpIHNldCBtdWx0aVNlbGVjdCh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpU2VsZWN0ID0gdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHZhbHVlKVxuICB9XG4gIGdldCBtdWx0aVNlbGVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlTZWxlY3RcbiAgfVxuICBwcml2YXRlIF9tdWx0aVNlbGVjdCA9IGZhbHNlXG5cbiAgLy9cbiAgQElucHV0KCkgc2V0IHNlYXJjaGFibGUodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zZWFyY2hhYmxlID0gdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHZhbHVlKVxuICB9XG4gIGdldCBzZWFyY2hhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hhYmxlXG4gIH1cbiAgcHJpdmF0ZSBfc2VhcmNoYWJsZSA9IGZhbHNlXG5cbiAgLy9cbiAgQElucHV0KCkgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykgcmV0dXJuXG5cbiAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlXG5cbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgLi4udGhpcy50ZXh0cyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cbiAgfVxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogRHJvcGRvd25PcHRpb24gfCBEcm9wZG93bk9wdGlvbltdIHwgdW5kZWZpbmVkXG5cbiAgLy9cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpXG4gICAgICA/IHRoaXMudmFsdWUubWFwKCh2OiBhbnkpID0+IHRoaXMub3B0aW9uQnlWYWx1ZSh2KSlcbiAgICAgIDogdGhpcy5vcHRpb25CeVZhbHVlKHRoaXMudmFsdWUpXG4gIH1cblxuICBvbkNoYW5nZUZuPzogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkXG4gIG9uVG91Y2hlZEZuPzogKCkgPT4gdm9pZFxuXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdG91Y2hlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBAQ29udGVudENoaWxkKE5nZ0Ryb3Bkb3duT3B0aW9uRGlyZWN0aXZlKVxuICBjdXN0b21PcHRpb24/OiBOZ2dEcm9wZG93bk9wdGlvbkRpcmVjdGl2ZVxuXG4gIEBDb250ZW50Q2hpbGQoTmdnRHJvcGRvd25CdXR0b25EaXJlY3RpdmUpXG4gIGN1c3RvbUJ1dHRvbj86IE5nZ0Ryb3Bkb3duQnV0dG9uRGlyZWN0aXZlXG5cbiAgQFZpZXdDaGlsZCgnZ2RzRHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgZ2RzRHJvcGRvd24/OiBFbGVtZW50UmVmXG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2U6IChldmVudDogRXZlbnQpID0+IHZvaWQgPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgR2RzRHJvcGRvd248RHJvcGRvd25PcHRpb24+XG4gICAgdGhpcy5fdmFsdWUgPSB0YXJnZXQudmFsdWVcblxuICAgIHRoaXMudGV4dHMgPSB7XG4gICAgICAuLi50aGlzLnRleHRzLFxuICAgICAgc2VsZWN0OiB0aGlzLmRpc3BsYXlUZXh0QnlWYWx1ZSh0aGlzLl92YWx1ZSksXG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUZuPy4odGhpcy52YWx1ZSlcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSlcblxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIGdldCBjb250cm9sKCk6IE5nQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIERyb3Bkb3duVHJhbnNTdHlsZXMucmVnaXN0ZXIoKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl92YWx1ZSkge1xuICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5vcHRpb25zXG4gICAgICAgICAgPy5maWx0ZXIoKG8pID0+IG8uc2VsZWN0ZWQgPT09IHRydWUpXG4gICAgICAgICAgPy5tYXAoKG8pID0+IG9bdGhpcy51c2VWYWx1ZV0pXG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5vcHRpb25zPy5maW5kKChvKSA9PiBvLnNlbGVjdGVkID09PSB0cnVlKT8uW1xuICAgICAgICAgIHRoaXMudXNlVmFsdWVcbiAgICAgICAgXVxuXG4gICAgICB0aGlzLnRleHRzID0ge1xuICAgICAgICAuLi50aGlzLnRleHRzLFxuICAgICAgICBzZWxlY3Q6IHRoaXMuZGlzcGxheVRleHRCeVZhbHVlKHRoaXMuX3ZhbHVlKSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRleHRzID0ge1xuICAgICAgY2xvc2U6IHRoaXMudGV4dHM/LmNsb3NlID8/ICdDbG9zZScsXG4gICAgICBvcHRpb25zRGVzY3JpcHRpb246IHRoaXMudGV4dHM/Lm9wdGlvbnNEZXNjcmlwdGlvbiA/PyAnT3B0aW9ucycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50ZXh0cz8ucGxhY2Vob2xkZXIgPz8gJ1NlbGVjdCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogdGhpcy50ZXh0cz8uc2VhcmNoUGxhY2Vob2xkZXIgPz8gJ1NlYXJjaCcsXG4gICAgICBzZWxlY3RlZDogdGhpcy50ZXh0cz8uc2VsZWN0ZWQgPz8gJ3NlbGVjdGVkJyxcbiAgICAgIHNlbGVjdDogdGhpcy5kaXNwbGF5VGV4dEJ5VmFsdWUodGhpcy5fdmFsdWUpLFxuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm5cbiAgfVxuXG4gIC8vIFRoZXNlIGFkYXB0ZXIgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZCBpbnRlcmZhY2VcbiAgY29tcGFyZVdpdGhBZGFwdGVyID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IHtcbiAgICBjb25zdCBjb21wYXJlRm4gPSB0aGlzLmNvbXBhcmVXaXRoIHx8ICgoYSwgYikgPT4gYSA9PT0gYilcbiAgICByZXR1cm4gY29tcGFyZUZuKG8xLCBvMilcbiAgfVxuICBzZWFyY2hGaWx0ZXJBZGFwdGVyID0gKHE6IHN0cmluZywgbzogR2RzT3B0aW9uKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VhcmNoRmlsdGVyKSByZXR1cm4gdGhpcy5zZWFyY2hGaWx0ZXIocSwgby52YWx1ZSlcbiAgICBlbHNlXG4gICAgICByZXR1cm4gKChxOiBzdHJpbmcsIG86IEdkc09wdGlvbikgPT5cbiAgICAgICAgby5pbm5lckhUTUwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxLnRvTG93ZXJDYXNlKCkpKShxLCBvKVxuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlLnRvU3RyaW5nKCkgPT09ICd0cnVlJyB8fCBmYWxzZVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgb3B0aW9uQnlWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uZmluZCgobykgPT4gb1t0aGlzLnVzZVZhbHVlXSA9PT0gdmFsdWUpXG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlUZXh0QnlWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMub3B0aW9uQnlWYWx1ZSh2YWx1ZSk/Llt0aGlzLmRpc3BsYXldIHx8XG4gICAgICAgICh0aGlzLnRleHRzPy5wbGFjZWhvbGRlciA/PyAnU2VsZWN0JylcbiAgICAgIClcblxuICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXMgPSB2YWx1ZS5tYXAoXG4gICAgICAodikgPT4gdGhpcy5vcHRpb25CeVZhbHVlKHYpPy5bdGhpcy5kaXNwbGF5XSxcbiAgICApXG4gICAgcmV0dXJuIGRpc3BsYXlWYWx1ZXM/Lmxlbmd0aCA+IDJcbiAgICAgID8gYCR7ZGlzcGxheVZhbHVlcy5sZW5ndGh9ICR7dGhpcy50ZXh0cz8uc2VsZWN0ZWR9IGBcbiAgICAgIDogZGlzcGxheVZhbHVlcz8uam9pbignLCAnKSB8fCAodGhpcy50ZXh0cz8ucGxhY2Vob2xkZXIgPz8gJ1NlbGVjdCcpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxnZHMtZHJvcGRvd25cbiAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAjZ2RzRHJvcGRvd25cbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFtzZWFyY2hhYmxlXT1cInNlYXJjaGFibGVcIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aVNlbGVjdFwiXG4gICAgW2ludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoQWRhcHRlclwiXG4gICAgW3NlYXJjaEZpbHRlcl09XCJzZWFyY2hGaWx0ZXJBZGFwdGVyXCJcbiAgICBbc3luY1BvcG92ZXJXaWR0aF09XCJzeW5jUG9wb3ZlcldpZHRoXCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBbaGlkZUxhYmVsXT1cImhpZGVMYWJlbFwiXG4gICAgW21heEhlaWdodF09XCJtYXhIZWlnaHRcIlxuICAgIFtkaXNhYmxlTW9iaWxlU3R5bGVzXT1cImRpc2FibGVNb2JpbGVTdHlsZXNcIlxuICA+XG4gICAgPHNwYW4gc2xvdD1cIm1lc3NhZ2VcIiAjZm9ybUluZm9cbiAgICAgID48bmctY29udGVudCBzZWxlY3Q9XCJbZGF0YS1mb3JtLWluZm9dXCI+PC9uZy1jb250ZW50XG4gICAgPjwvc3Bhbj5cblxuICAgIDxzcGFuIHNsb3Q9XCJ0cmlnZ2VyXCJcbiAgICAgID48bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgY3VzdG9tQnV0dG9uPy50ZW1wbGF0ZVJlZiAmJiBzZWxlY3RlZE9wdGlvblxuICAgICAgICAgICAgPyBjdXN0b21CdXR0b24hLnRlbXBsYXRlUmVmXG4gICAgICAgICAgICA6IGRlZmF1bHRCdXR0b247XG4gICAgICAgICAgY29udGV4dDogeyBvcHRpb246IHNlbGVjdGVkT3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lclxuICAgID48L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uLmhlYWRpbmc7IGVsc2Ugb3B0aW9uSGVhZGluZ1wiPlxuICAgICAgICA8Z2RzLW9wdGlvbiAqbmdnQ29yZUVsZW1lbnQgW3ZhbHVlXT1cIm9wdGlvblt1c2VWYWx1ZV1cIlxuICAgICAgICAgID48bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBjdXN0b21PcHRpb24/LnRlbXBsYXRlUmVmXG4gICAgICAgICAgICAgICAgPyBjdXN0b21PcHRpb24hLnRlbXBsYXRlUmVmXG4gICAgICAgICAgICAgICAgOiBkZWZhdWx0T3B0aW9uO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7IG9wdGlvbjogb3B0aW9uLCBpbmRleDogaW5kZXggfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXJcbiAgICAgICAgPjwvZ2RzLW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNvcHRpb25IZWFkaW5nPlxuICAgICAgICA8Z2RzLW1lbnUtaGVhZGluZyAqbmdnQ29yZUVsZW1lbnQ+e3sgb3B0aW9uLmxhYmVsIH19PC9nZHMtbWVudS1oZWFkaW5nPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9nZHMtZHJvcGRvd24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0QnV0dG9uIGxldC1zZWxlY3RlZD1cIm9wdGlvblwiPlxuICA8c3BhbiBjbGFzcz1cInRyaWdnZXJcIj57eyB0ZXh0cz8uc2VsZWN0IH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uIGxldC1vcHRpb249XCJvcHRpb25cIj5cbiAge3sgZGlzcGxheSA/IG9wdGlvbltkaXNwbGF5XSA6IG9wdGlvbi5uYW1lIH19XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -90,6 +90,7 @@ class NggDropdownComponent {
90
90
  this.loop = false;
91
91
  this.display = 'label';
92
92
  this.useValue = 'value';
93
+ this.maxHeight = 500;
93
94
  this._multiSelect = false;
94
95
  this._searchable = false;
95
96
  this.valueChange = new EventEmitter();
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-lib-dropdown.mjs","sources":["../../../../libs/angular/src/lib/dropdown/dropdown-option.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown-button.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.html","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownOption]',\n})\nexport class NggDropdownOptionDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownButton]',\n})\nexport class NggDropdownButtonDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms'\n\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\n\nimport '@sebgroup/green-core/components/dropdown/index.js'\nimport type {\n GdsDropdown,\n GdsOption,\n} from '@sebgroup/green-core/components/dropdown/index.js'\n\nimport * as DropdownTransStyles from '@sebgroup/green-core/components/dropdown/dropdown.trans.styles.js'\n\nexport type CompareWith<T = any> = (o1: T, o2: T) => boolean\nexport type SearchFilter<T = any> = (search: string, value: T) => boolean\nexport type DropdownPlacements = 'bottom-start' | 'top-start'\nexport interface DropdownTexts {\n select?: string\n selected?: string\n placeholder?: string\n searchPlaceholder?: string\n close?: string\n optionsDescription?: string\n}\nexport interface DropdownOption {\n label?: string\n value?: any\n selected?: boolean\n heading?: boolean\n [key: string]: any\n}\n\n@Component({\n selector: 'ngg-dropdown',\n templateUrl: 'dropdown.component.html',\n styleUrls: ['dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent implements ControlValueAccessor, OnInit {\n @Input() id?: string\n @Input() texts?: DropdownTexts\n @Input() loop?: boolean = false\n @Input() display = 'label'\n @Input() useValue = 'value'\n @Input() label?: string\n @Input() valid?: boolean\n @Input() invalid?: boolean\n @Input() compareWith?: CompareWith\n @Input() searchFilter?: SearchFilter\n @Input() syncPopoverWidth?: boolean\n @Input() size?: 'small' | 'medium'\n @Input() hideLabel?: boolean\n @Input() maxHeight?: number\n @Input() disableMobileStyles?: boolean\n\n /** @deprecated */\n @Input() fixedPlacement?: DropdownPlacements\n\n //\n @Input() set options(value: DropdownOption[] | undefined) {\n this._options = value\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get options(): DropdownOption[] | undefined {\n return this._options\n }\n private _options: DropdownOption[] | undefined\n\n //\n @Input() set multiSelect(value: string | boolean) {\n this._multiSelect = this.convertToBoolean(value)\n }\n get multiSelect(): boolean {\n return this._multiSelect\n }\n private _multiSelect = false\n\n //\n @Input() set searchable(value: string | boolean) {\n this._searchable = this.convertToBoolean(value)\n }\n get searchable(): boolean {\n return this._searchable\n }\n private _searchable = false\n\n //\n @Input() set value(newValue: any) {\n if (!this.options) return\n\n this._value = newValue\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get value(): any {\n return this._value\n }\n private _value: DropdownOption | DropdownOption[] | undefined\n\n //\n get selectedOption() {\n return Array.isArray(this.value)\n ? this.value.map((v: any) => this.optionByValue(v))\n : this.optionByValue(this.value)\n }\n\n onChangeFn?: (value: unknown) => void\n onTouchedFn?: () => void\n\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @Output() readonly touched: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n\n @ContentChild(NggDropdownOptionDirective)\n customOption?: NggDropdownOptionDirective\n\n @ContentChild(NggDropdownButtonDirective)\n customButton?: NggDropdownButtonDirective\n\n @ViewChild('gdsDropdown', { static: false }) gdsDropdown?: ElementRef\n\n public onValueChange: (event: Event) => void = (event) => {\n const target = event.target as GdsDropdown<DropdownOption>\n this._value = target.value\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n\n this.onChangeFn?.(this.value)\n this.valueChange.emit(this.value)\n\n this._cdr.detectChanges()\n }\n\n get control(): NgControl | undefined {\n return this.injector.get(NgControl)\n }\n\n constructor(\n @Inject(Injector) private injector: Injector,\n private _cdr: ChangeDetectorRef,\n ) {\n DropdownTransStyles.register()\n }\n\n ngOnInit(): void {\n if (!this._value) {\n if (this.multiSelect)\n this._value = this.options\n ?.filter((o) => o.selected === true)\n ?.map((o) => o[this.useValue])\n else\n this._value = this.options?.find((o) => o.selected === true)?.[\n this.useValue\n ]\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n\n this.texts = {\n close: this.texts?.close ?? 'Close',\n optionsDescription: this.texts?.optionsDescription ?? 'Options',\n placeholder: this.texts?.placeholder ?? 'Select',\n searchPlaceholder: this.texts?.searchPlaceholder ?? 'Search',\n selected: this.texts?.selected ?? 'selected',\n select: this.displayTextByValue(this._value),\n }\n }\n\n writeValue(value: any): void {\n this.value = value\n this._cdr.detectChanges()\n }\n\n registerOnChange(fn: () => unknown): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn\n }\n\n // These adapter functions are used to maintain backwards compatibility with the old interface\n compareWithAdapter = (o1: any, o2: any) => {\n const compareFn = this.compareWith || ((a, b) => a === b)\n return compareFn(o1, o2)\n }\n searchFilterAdapter = (q: string, o: GdsOption) => {\n if (this.searchFilter) return this.searchFilter(q, o.value)\n else\n return ((q: string, o: GdsOption) =>\n o.innerHTML.toLowerCase().includes(q.toLowerCase()))(q, o)\n }\n\n private convertToBoolean(value: string | boolean): boolean {\n return (\n value === '' || value === 'true' || value.toString() === 'true' || false\n )\n }\n\n private optionByValue = (value: any) => {\n return this.options?.find((o) => o[this.useValue] === value)\n }\n\n private displayTextByValue = (value: any) => {\n if (!Array.isArray(value))\n return (\n this.optionByValue(value)?.[this.display] ||\n (this.texts?.placeholder ?? 'Select')\n )\n\n const displayValues = value.map(\n (v) => this.optionByValue(v)?.[this.display],\n )\n return displayValues?.length > 2\n ? `${displayValues.length} ${this.texts?.selected} `\n : displayValues?.join(', ') || (this.texts?.placeholder ?? 'Select')\n }\n}\n","<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n [syncPopoverWidth]=\"syncPopoverWidth\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [maxHeight]=\"maxHeight\"\n [disableMobileStyles]=\"disableMobileStyles\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <ng-container *ngIf=\"!option.heading; else optionHeading\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n <ng-template #optionHeading>\n <gds-menu-heading *nggCoreElement>{{ option.label }}</gds-menu-heading>\n </ng-template>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span class=\"trigger\">{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-lib-dropdown.mjs","sources":["../../../../libs/angular/src/lib/dropdown/dropdown-option.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown-button.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.html","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownOption]',\n})\nexport class NggDropdownOptionDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownButton]',\n})\nexport class NggDropdownButtonDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms'\n\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\n\nimport '@sebgroup/green-core/components/dropdown/index.js'\nimport type {\n GdsDropdown,\n GdsOption,\n} from '@sebgroup/green-core/components/dropdown/index.js'\n\nimport * as DropdownTransStyles from '@sebgroup/green-core/components/dropdown/dropdown.trans.styles.js'\n\nexport type CompareWith<T = any> = (o1: T, o2: T) => boolean\nexport type SearchFilter<T = any> = (search: string, value: T) => boolean\nexport type DropdownPlacements = 'bottom-start' | 'top-start'\nexport interface DropdownTexts {\n select?: string\n selected?: string\n placeholder?: string\n searchPlaceholder?: string\n close?: string\n optionsDescription?: string\n}\nexport interface DropdownOption {\n label?: string\n value?: any\n selected?: boolean\n heading?: boolean\n [key: string]: any\n}\n\n@Component({\n selector: 'ngg-dropdown',\n templateUrl: 'dropdown.component.html',\n styleUrls: ['dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent implements ControlValueAccessor, OnInit {\n @Input() id?: string\n @Input() texts?: DropdownTexts\n @Input() loop?: boolean = false\n @Input() display = 'label'\n @Input() useValue = 'value'\n @Input() label?: string\n @Input() valid?: boolean\n @Input() invalid?: boolean\n @Input() compareWith?: CompareWith\n @Input() searchFilter?: SearchFilter\n @Input() syncPopoverWidth?: boolean\n @Input() size?: 'small' | 'medium'\n @Input() hideLabel?: boolean\n @Input() maxHeight?: number = 500\n @Input() disableMobileStyles?: boolean\n\n /** @deprecated */\n @Input() fixedPlacement?: DropdownPlacements\n\n //\n @Input() set options(value: DropdownOption[] | undefined) {\n this._options = value\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get options(): DropdownOption[] | undefined {\n return this._options\n }\n private _options: DropdownOption[] | undefined\n\n //\n @Input() set multiSelect(value: string | boolean) {\n this._multiSelect = this.convertToBoolean(value)\n }\n get multiSelect(): boolean {\n return this._multiSelect\n }\n private _multiSelect = false\n\n //\n @Input() set searchable(value: string | boolean) {\n this._searchable = this.convertToBoolean(value)\n }\n get searchable(): boolean {\n return this._searchable\n }\n private _searchable = false\n\n //\n @Input() set value(newValue: any) {\n if (!this.options) return\n\n this._value = newValue\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get value(): any {\n return this._value\n }\n private _value: DropdownOption | DropdownOption[] | undefined\n\n //\n get selectedOption() {\n return Array.isArray(this.value)\n ? this.value.map((v: any) => this.optionByValue(v))\n : this.optionByValue(this.value)\n }\n\n onChangeFn?: (value: unknown) => void\n onTouchedFn?: () => void\n\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @Output() readonly touched: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n\n @ContentChild(NggDropdownOptionDirective)\n customOption?: NggDropdownOptionDirective\n\n @ContentChild(NggDropdownButtonDirective)\n customButton?: NggDropdownButtonDirective\n\n @ViewChild('gdsDropdown', { static: false }) gdsDropdown?: ElementRef\n\n public onValueChange: (event: Event) => void = (event) => {\n const target = event.target as GdsDropdown<DropdownOption>\n this._value = target.value\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n\n this.onChangeFn?.(this.value)\n this.valueChange.emit(this.value)\n\n this._cdr.detectChanges()\n }\n\n get control(): NgControl | undefined {\n return this.injector.get(NgControl)\n }\n\n constructor(\n @Inject(Injector) private injector: Injector,\n private _cdr: ChangeDetectorRef,\n ) {\n DropdownTransStyles.register()\n }\n\n ngOnInit(): void {\n if (!this._value) {\n if (this.multiSelect)\n this._value = this.options\n ?.filter((o) => o.selected === true)\n ?.map((o) => o[this.useValue])\n else\n this._value = this.options?.find((o) => o.selected === true)?.[\n this.useValue\n ]\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n\n this.texts = {\n close: this.texts?.close ?? 'Close',\n optionsDescription: this.texts?.optionsDescription ?? 'Options',\n placeholder: this.texts?.placeholder ?? 'Select',\n searchPlaceholder: this.texts?.searchPlaceholder ?? 'Search',\n selected: this.texts?.selected ?? 'selected',\n select: this.displayTextByValue(this._value),\n }\n }\n\n writeValue(value: any): void {\n this.value = value\n this._cdr.detectChanges()\n }\n\n registerOnChange(fn: () => unknown): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn\n }\n\n // These adapter functions are used to maintain backwards compatibility with the old interface\n compareWithAdapter = (o1: any, o2: any) => {\n const compareFn = this.compareWith || ((a, b) => a === b)\n return compareFn(o1, o2)\n }\n searchFilterAdapter = (q: string, o: GdsOption) => {\n if (this.searchFilter) return this.searchFilter(q, o.value)\n else\n return ((q: string, o: GdsOption) =>\n o.innerHTML.toLowerCase().includes(q.toLowerCase()))(q, o)\n }\n\n private convertToBoolean(value: string | boolean): boolean {\n return (\n value === '' || value === 'true' || value.toString() === 'true' || false\n )\n }\n\n private optionByValue = (value: any) => {\n return this.options?.find((o) => o[this.useValue] === value)\n }\n\n private displayTextByValue = (value: any) => {\n if (!Array.isArray(value))\n return (\n this.optionByValue(value)?.[this.display] ||\n (this.texts?.placeholder ?? 'Select')\n )\n\n const displayValues = value.map(\n (v) => this.optionByValue(v)?.[this.display],\n )\n return displayValues?.length > 2\n ? `${displayValues.length} ${this.texts?.selected} `\n : displayValues?.join(', ') || (this.texts?.placeholder ?? 'Select')\n }\n}\n","<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n [syncPopoverWidth]=\"syncPopoverWidth\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [maxHeight]=\"maxHeight\"\n [disableMobileStyles]=\"disableMobileStyles\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <ng-container *ngIf=\"!option.heading; else optionHeading\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n <ng-template #optionHeading>\n <gds-menu-heading *nggCoreElement>{{ option.label }}</gds-menu-heading>\n </ng-template>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span class=\"trigger\">{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -600,6 +600,7 @@ class NggDropdownComponent {
600
600
  this.loop = false;
601
601
  this.display = 'label';
602
602
  this.useValue = 'value';
603
+ this.maxHeight = 500;
603
604
  this._multiSelect = false;
604
605
  this._searchable = false;
605
606
  this.valueChange = new EventEmitter();
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular.mjs","sources":["../../../../libs/angular/src/lib/accordion/accordion-list-item.component.ts","../../../../libs/angular/src/lib/accordion/accordion-list-item.component.html","../../../../libs/angular/src/lib/accordion/accordion.component.ts","../../../../libs/angular/src/lib/accordion/accordion.component.html","../../../../libs/angular/src/lib/accordion/accordion.module.ts","../../../../libs/angular/src/lib/badge/badge.component.ts","../../../../libs/angular/src/lib/badge/badge.module.ts","../../../../libs/angular/src/lib/button/button.component.ts","../../../../libs/angular/src/lib/button/button.module.ts","../../../../libs/angular/src/lib/context-menu/context-menu.component.ts","../../../../libs/angular/src/lib/context-menu/context-menu.component.html","../../../../libs/angular/src/lib/context-menu/context-menu.module.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.html","../../../../libs/angular/src/lib/datepicker/datepicker.module.ts","../../../../libs/angular/src/lib/dropdown/dropdown-option.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown-button.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.html","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/in-page-wizard/in-page-wizard-step-card.component.ts","../../../../libs/angular/src/lib/in-page-wizard/in-page-wizard-step-card.component.html","../../../../libs/angular/src/lib/in-page-wizard/in-page-wizard.module.ts","../../../../libs/angular/src/lib/modal/modal-header.directive.ts","../../../../libs/angular/src/lib/modal/modal-footer.directive.ts","../../../../libs/angular/src/lib/modal/modal.component.ts","../../../../libs/angular/src/lib/modal/modal.component.html","../../../../libs/angular/src/lib/modal/modal.module.ts","../../../../libs/angular/src/lib/progress-circle/progress-circle.component.ts","../../../../libs/angular/src/lib/progress-circle/progress-circle.component.html","../../../../libs/angular/src/lib/progress-circle/progress-circle.module.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/shared/on-scroll.directive.ts","../../../../libs/angular/src/lib/shared/shared.module.ts","../../../../libs/angular/src/lib/slider/slider.component.ts","../../../../libs/angular/src/lib/slider/slider.component.html","../../../../libs/angular/src/lib/slider/slider.module.ts","../../../../libs/angular/src/lib/sortable-list/sortable-list.component.ts","../../../../libs/angular/src/lib/sortable-list/sortable-list.component.html","../../../../libs/angular/src/lib/sortable-list/sortable-list.module.ts","../../../../libs/angular/src/lib/cell-table/cell-underline.directive.ts","../../../../libs/angular/src/lib/cell-table/cell-table-item.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.html","../../../../libs/angular/src/lib/cell-table/cell-table.module.ts","../../../../libs/angular/src/lib/cell-table/cell-table.types.ts","../../../../libs/angular/src/lib/green-angular.module.ts","../../../../libs/angular/src/lib/pagination/pagination.component.ts","../../../../libs/angular/src/lib/pagination/pagination.component.html","../../../../libs/angular/src/lib/pagination/pagination.module.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.directive.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.module.ts","../../../../libs/angular/src/sebgroup-green-angular.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core'\nimport { randomId } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[ngg-accordion-list-item]',\n templateUrl: './accordion-list-item.component.html',\n})\nexport class NggAccordionListItemComponent {\n @Input() public id: string = randomId()\n @Input() public listItemHeader = ''\n @Input() public listItemSubHeader = ''\n @Output() public expandedChange: EventEmitter<NggAccordionListItemComponent> =\n new EventEmitter<NggAccordionListItemComponent>()\n\n public contentHeight = '0px'\n public isExpanded = false\n\n public shrink(): void {\n this.isExpanded = false\n this.contentHeight = '0px'\n }\n\n public expand(): void {\n this.isExpanded = true\n this.contentHeight = 'auto'\n }\n\n public toggleExpanded(): void {\n this.isExpanded = !this.isExpanded\n if (this.isExpanded) {\n this.contentHeight = 'auto'\n } else {\n this.contentHeight = '0px'\n }\n\n this.expandedChange.emit(this)\n }\n}\n","<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n","import {\n AfterContentChecked,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n QueryList,\n} from '@angular/core'\nimport { Observable, Subscription } from 'rxjs'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\n\n@Component({\n selector: 'ngg-accordion',\n templateUrl: './accordion.component.html',\n})\nexport class NggAccordionComponent implements AfterContentChecked, OnDestroy {\n @ContentChildren(NggAccordionListItemComponent) private items:\n | QueryList<NggAccordionListItemComponent>\n | undefined\n private _expandAll: Observable<void> | undefined\n private expandAllSubscription: Subscription | undefined\n @Input() public closeOthers = false\n @Input()\n public get expandAll(): Observable<void> | undefined {\n return this._expandAll\n }\n public set expandAll(value: Observable<void> | undefined) {\n if (value === this._expandAll) return\n if (this._expandAll) {\n this.expandAllSubscription?.unsubscribe()\n }\n\n this._expandAll = value\n this.expandAllSubscription = this._expandAll?.subscribe(() => {\n if (this.closeOthers === false) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expand()\n }\n }\n }\n })\n }\n\n public ngAfterContentChecked(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.subscribe((child) => this.onChildExpanded(child))\n }\n }\n }\n }\n\n public ngOnDestroy(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.unsubscribe()\n }\n }\n }\n\n this.expandAllSubscription?.unsubscribe()\n }\n\n private onChildExpanded(childIdentity: NggAccordionListItemComponent) {\n if (this.closeOthers && childIdentity.isExpanded && this.items) {\n this.items.forEach((item) => {\n if (item !== childIdentity) item.shrink()\n })\n }\n }\n}\n","<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\nimport { NggAccordionComponent } from './accordion.component'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggAccordionListItemComponent, NggAccordionComponent],\n declarations: [NggAccordionListItemComponent, NggAccordionComponent],\n})\nexport class NggAccordionModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core'\nimport { BadgeType } from '@sebgroup/extract'\n\n@Component({\n // we need to disable this warning since we don't want the badge component to create a new element\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-badge]',\n template: `\n <strong>\n <ng-content></ng-content>\n </strong>\n <button *ngIf=\"isCloseable\" class=\"close\" (click)=\"close($event)\">\n {{ closeText }}\n <i></i>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggBadgeComponent implements OnInit {\n /** The color of the component */\n @Input() badgeType?: BadgeType | '' = ''\n /** Flag whether the component can be dismissed */\n @Input() set isCloseable(value: boolean | '') {\n this._isCloseable = value\n }\n get isCloseable(): boolean {\n return this._isCloseable === '' || !!this._isCloseable\n }\n /** Close text */\n @Input() closeText?: string\n /** Custom text color */\n @HostBinding('style.color') @Input() customColor?: string\n /** Custom background color */\n @HostBinding('style.background-color') @Input() customBackgroundColor?: string\n\n @HostBinding('class') get class(): string {\n return ['badge', this.badgeType].join(' ')\n }\n\n /** Callback when component is dismissed */\n @Output() handleClose: EventEmitter<Event> = new EventEmitter()\n\n private _isCloseable?: boolean | ''\n\n //eslint-disable-next-line\n constructor() {}\n\n ngOnInit(): void {\n if (!!this.customColor || !!this.customBackgroundColor) {\n this.badgeType = ''\n }\n }\n\n close(e: Event) {\n this.handleClose.emit(e)\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggBadgeComponent } from './badge.component'\n\n@NgModule({\n declarations: [NggBadgeComponent],\n imports: [CommonModule],\n exports: [NggBadgeComponent],\n})\nexport class NggBadgeModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core'\nimport { ButtonSize, ButtonVariant } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-button]',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggButtonComponent {\n @Input() variant?: ButtonVariant\n @Input() size?: ButtonSize\n\n @HostBinding('class') get classes(): string {\n return [this.variant, this.size ? this.size : false]\n .filter(Boolean)\n .join(' ')\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggButtonComponent } from './button.component'\n\n@NgModule({\n declarations: [NggButtonComponent],\n imports: [CommonModule],\n exports: [NggButtonComponent],\n})\nexport class NggButtonModule {}\n","import {\n Input,\n Output,\n Component,\n ViewChild,\n ElementRef,\n EventEmitter,\n TemplateRef,\n} from '@angular/core'\nimport { DropdownOption } from '@sebgroup/green-angular/src/lib/dropdown'\n\n/**\n * MenuItems extends DropDown option and adds the posibility to pass a custom template for just one item.\n */\ninterface MenuItems extends DropdownOption {\n template?: TemplateRef<unknown>\n}\n\nimport '@sebgroup/green-core/components/context-menu/index.js'\nimport * as ContextMenuTransStyles from '@sebgroup/green-core/components/context-menu/context-menu.trans.styles.js'\n\n@Component({\n selector: 'ngg-context-menu',\n templateUrl: './context-menu.component.html',\n})\nexport class NggContextMenuComponent {\n /**\n * Placement of the popover relative to the anchor element.\n */\n @Input() direction: 'ltr' | 'rtl' = 'ltr'\n\n /**\n * List of items to be displayed in the context menu.\n */\n @Input() menuItems: MenuItems[] = []\n\n /**\n * Custom menu item template.\n */\n @Input() menuItemTemplate: TemplateRef<unknown> | null = null\n\n /**\n * Custom menu trigger template.\n */\n @Input() menuAnchorTemplate: TemplateRef<unknown> | null = null\n\n /**\n * @deprecated\n * This property no longer has any effect and will be removed in a future version.\n */\n @Input() closeOnScroll = false\n\n /**\n * Emits when a menu item is clicked.\n */\n @Output() contextMenuItemClicked: EventEmitter<DropdownOption> =\n new EventEmitter<DropdownOption>()\n\n @ViewChild('contextMenuPopover') popover!: ElementRef<HTMLElement>\n @ViewChild('contextMenuAnchor') anchor!: ElementRef<HTMLElement>\n\n isActive = false\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n ContextMenuTransStyles.register()\n }\n\n get placement(): string {\n return this.direction === 'ltr' ? 'bottom-start' : 'bottom-end'\n }\n\n open(): void {\n if (this.isActive) {\n this.close()\n return\n }\n\n this.isActive = true\n }\n\n close(): void {\n this.isActive = false\n }\n\n onItemClick(item: DropdownOption): void {\n this.contextMenuItemClicked.emit(item)\n this.close()\n }\n}\n","<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <div style=\"display: contents\" slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </div>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { NggContextMenuComponent } from './context-menu.component'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [NggContextMenuComponent],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [NggContextMenuComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggContextMenuModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms'\nimport { randomId } from '@sebgroup/extract'\nimport { endOfDay, startOfDay } from 'date-fns'\n\nimport '@sebgroup/green-core/components/datepicker/index.js'\nimport * as DatepickerTransStyles from '@sebgroup/green-core/components/datepicker/datepicker.trans.styles.js'\n\nexport interface Attributes {\n id?: string\n role?: string\n style?: CSSStyleDeclaration\n tabIndex?: number\n}\n\nexport interface ElementProps {\n attributes: Attributes\n classes: string[]\n}\n\nexport interface DatepickerOptions {\n label?: string\n locale?: string\n currentDate?: Date | string\n selectedDate?: Date | string\n closeOnSelect?: boolean\n useCurrentTime?: boolean\n weekName?: { abbr: string; displayText: string }\n showWeeks?: boolean\n minDate?: Date\n maxDate?: Date\n dateFormat?: string\n onChange?: (selectedDate: Date) => void\n}\n\n@Component({\n selector: 'ngg-datepicker',\n templateUrl: 'datepicker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDatepickerComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDatepickerComponent\n implements ControlValueAccessor, AfterViewInit\n{\n @Input() size?: 'small' | 'medium'\n @Input() hideLabel?: boolean\n @Input() disabledWeekends?: boolean\n @Input() disabledDates?: Date[]\n\n @Input()\n get options(): DatepickerOptions {\n return <DatepickerOptions>this._options\n }\n set options(value: DatepickerOptions) {\n this._options = value\n }\n\n get showWeekNumbers(): boolean {\n return this.options?.showWeeks ?? false\n }\n\n get dateFormat(): string {\n return this.options?.dateFormat ?? 'y-m-d'\n }\n\n @Input()\n get value(): string | Date | undefined {\n return this._value\n }\n set value(newValue: string | Date | undefined) {\n if (typeof newValue === 'string') {\n newValue = new Date(newValue)\n }\n if (newValue !== this._value) {\n this._value = newValue || undefined\n }\n }\n\n @Input() id?: string = randomId()\n @Input() label?: string\n @Input() isValid: boolean | null = null\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n\n onChangeFn?: (value: any) => void\n onTouchedFn?: any\n\n _value: Date | undefined\n private _options?: DatepickerOptions\n\n get min(): Date | undefined {\n const minDate = this.options?.minDate\n return minDate ? minDate : new Date(new Date().getFullYear() - 10, 0, 1)\n }\n\n get max(): Date | undefined {\n const maxDate = this.options?.maxDate\n return maxDate ? maxDate : new Date(new Date().getFullYear() + 10, 0, 1)\n }\n\n constructor(private _cdr: ChangeDetectorRef) {\n DatepickerTransStyles.register()\n }\n\n writeValue(value: any): void {\n this.value = value\n this._cdr.detectChanges()\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n onDateChange(evt: Event) {\n const e = evt as CustomEvent\n\n this.value = e.detail.value\n\n this.valueChange.emit(e.detail.value)\n this.onChangeFn && this.onChangeFn(e.detail.value)\n }\n\n ngAfterViewInit(): void {\n this._cdr.detectChanges()\n }\n}\n\nexport function dateValidator(dates?: { min?: Date; max?: Date }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n if (!value) {\n return null\n }\n const newDate = new Date(value)\n const isValidDate = !isNaN(newDate.getTime())\n if (!isValidDate) {\n return { validDate: true }\n }\n\n const validMinDate = dates?.min ? newDate >= startOfDay(dates.min) : true\n const validMaxDate = dates?.max ? newDate <= endOfDay(dates.max) : true\n\n if (!validMinDate && dates?.min) {\n return {\n validDate: {\n minDate: startOfDay(dates.min),\n actualDate: newDate,\n },\n }\n }\n if (!validMaxDate && dates?.max) {\n return {\n validDate: {\n maxDate: endOfDay(dates.max),\n actualDate: newDate,\n },\n }\n }\n\n return null\n }\n}\n","<div class=\"form-group\">\n <gds-datepicker\n *nggCoreElement\n [attr.id]=\"id\"\n [label]=\"label\"\n [value]=\"value\"\n (change)=\"onDateChange($event)\"\n [invalid]=\"isValid === false\"\n [min]=\"min\"\n [max]=\"max\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [dateformat]=\"dateFormat\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [disabledWeekends]=\"disabledWeekends\"\n [disabledDates]=\"disabledDates\"\n >\n <span slot=\"message\">\n <ng-content select=\"[data-form-info]\"></ng-content>\n </span>\n </gds-datepicker>\n</div>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDatepickerComponent } from './datepicker.component'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [NggDatepickerComponent],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [NggDatepickerComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggDatepickerModule {}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownOption]',\n})\nexport class NggDropdownOptionDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownButton]',\n})\nexport class NggDropdownButtonDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms'\n\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\n\nimport '@sebgroup/green-core/components/dropdown/index.js'\nimport type {\n GdsDropdown,\n GdsOption,\n} from '@sebgroup/green-core/components/dropdown/index.js'\n\nimport * as DropdownTransStyles from '@sebgroup/green-core/components/dropdown/dropdown.trans.styles.js'\n\nexport type CompareWith<T = any> = (o1: T, o2: T) => boolean\nexport type SearchFilter<T = any> = (search: string, value: T) => boolean\nexport type DropdownPlacements = 'bottom-start' | 'top-start'\nexport interface DropdownTexts {\n select?: string\n selected?: string\n placeholder?: string\n searchPlaceholder?: string\n close?: string\n optionsDescription?: string\n}\nexport interface DropdownOption {\n label?: string\n value?: any\n selected?: boolean\n heading?: boolean\n [key: string]: any\n}\n\n@Component({\n selector: 'ngg-dropdown',\n templateUrl: 'dropdown.component.html',\n styleUrls: ['dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent implements ControlValueAccessor, OnInit {\n @Input() id?: string\n @Input() texts?: DropdownTexts\n @Input() loop?: boolean = false\n @Input() display = 'label'\n @Input() useValue = 'value'\n @Input() label?: string\n @Input() valid?: boolean\n @Input() invalid?: boolean\n @Input() compareWith?: CompareWith\n @Input() searchFilter?: SearchFilter\n @Input() syncPopoverWidth?: boolean\n @Input() size?: 'small' | 'medium'\n @Input() hideLabel?: boolean\n @Input() maxHeight?: number\n @Input() disableMobileStyles?: boolean\n\n /** @deprecated */\n @Input() fixedPlacement?: DropdownPlacements\n\n //\n @Input() set options(value: DropdownOption[] | undefined) {\n this._options = value\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get options(): DropdownOption[] | undefined {\n return this._options\n }\n private _options: DropdownOption[] | undefined\n\n //\n @Input() set multiSelect(value: string | boolean) {\n this._multiSelect = this.convertToBoolean(value)\n }\n get multiSelect(): boolean {\n return this._multiSelect\n }\n private _multiSelect = false\n\n //\n @Input() set searchable(value: string | boolean) {\n this._searchable = this.convertToBoolean(value)\n }\n get searchable(): boolean {\n return this._searchable\n }\n private _searchable = false\n\n //\n @Input() set value(newValue: any) {\n if (!this.options) return\n\n this._value = newValue\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get value(): any {\n return this._value\n }\n private _value: DropdownOption | DropdownOption[] | undefined\n\n //\n get selectedOption() {\n return Array.isArray(this.value)\n ? this.value.map((v: any) => this.optionByValue(v))\n : this.optionByValue(this.value)\n }\n\n onChangeFn?: (value: unknown) => void\n onTouchedFn?: () => void\n\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @Output() readonly touched: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n\n @ContentChild(NggDropdownOptionDirective)\n customOption?: NggDropdownOptionDirective\n\n @ContentChild(NggDropdownButtonDirective)\n customButton?: NggDropdownButtonDirective\n\n @ViewChild('gdsDropdown', { static: false }) gdsDropdown?: ElementRef\n\n public onValueChange: (event: Event) => void = (event) => {\n const target = event.target as GdsDropdown<DropdownOption>\n this._value = target.value\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n\n this.onChangeFn?.(this.value)\n this.valueChange.emit(this.value)\n\n this._cdr.detectChanges()\n }\n\n get control(): NgControl | undefined {\n return this.injector.get(NgControl)\n }\n\n constructor(\n @Inject(Injector) private injector: Injector,\n private _cdr: ChangeDetectorRef,\n ) {\n DropdownTransStyles.register()\n }\n\n ngOnInit(): void {\n if (!this._value) {\n if (this.multiSelect)\n this._value = this.options\n ?.filter((o) => o.selected === true)\n ?.map((o) => o[this.useValue])\n else\n this._value = this.options?.find((o) => o.selected === true)?.[\n this.useValue\n ]\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n\n this.texts = {\n close: this.texts?.close ?? 'Close',\n optionsDescription: this.texts?.optionsDescription ?? 'Options',\n placeholder: this.texts?.placeholder ?? 'Select',\n searchPlaceholder: this.texts?.searchPlaceholder ?? 'Search',\n selected: this.texts?.selected ?? 'selected',\n select: this.displayTextByValue(this._value),\n }\n }\n\n writeValue(value: any): void {\n this.value = value\n this._cdr.detectChanges()\n }\n\n registerOnChange(fn: () => unknown): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn\n }\n\n // These adapter functions are used to maintain backwards compatibility with the old interface\n compareWithAdapter = (o1: any, o2: any) => {\n const compareFn = this.compareWith || ((a, b) => a === b)\n return compareFn(o1, o2)\n }\n searchFilterAdapter = (q: string, o: GdsOption) => {\n if (this.searchFilter) return this.searchFilter(q, o.value)\n else\n return ((q: string, o: GdsOption) =>\n o.innerHTML.toLowerCase().includes(q.toLowerCase()))(q, o)\n }\n\n private convertToBoolean(value: string | boolean): boolean {\n return (\n value === '' || value === 'true' || value.toString() === 'true' || false\n )\n }\n\n private optionByValue = (value: any) => {\n return this.options?.find((o) => o[this.useValue] === value)\n }\n\n private displayTextByValue = (value: any) => {\n if (!Array.isArray(value))\n return (\n this.optionByValue(value)?.[this.display] ||\n (this.texts?.placeholder ?? 'Select')\n )\n\n const displayValues = value.map(\n (v) => this.optionByValue(v)?.[this.display],\n )\n return displayValues?.length > 2\n ? `${displayValues.length} ${this.texts?.selected} `\n : displayValues?.join(', ') || (this.texts?.placeholder ?? 'Select')\n }\n}\n","<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n [syncPopoverWidth]=\"syncPopoverWidth\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [maxHeight]=\"maxHeight\"\n [disableMobileStyles]=\"disableMobileStyles\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <ng-container *ngIf=\"!option.heading; else optionHeading\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n <ng-template #optionHeading>\n <gds-menu-heading *nggCoreElement>{{ option.label }}</gds-menu-heading>\n </ng-template>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span class=\"trigger\">{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggDropdownModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\n\n@Component({\n selector: 'ngg-in-page-wizard-step-card',\n templateUrl: './in-page-wizard-step-card.component.html',\n})\nexport class NggInPageWizardStepCardComponent {\n @Output()\n readonly handleNextClick: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n\n @Output()\n readonly handleEditClick: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n\n @Input() public stepText = ''\n\n @Input() public title = ''\n\n @Input() public editBtnText = ''\n\n @Input() public nextBtnText = ''\n\n @Input() public isCompleted = false\n\n @Input() public disableNext = false\n\n @Input() public isActive = false\n\n handleOnEditBtnClick(event: MouseEvent): void {\n this.isActive = !this.isActive\n this.handleEditClick.emit(event)\n }\n handleOnNextBtnClick(event: MouseEvent) {\n this.isActive = false\n this.isCompleted = true\n this.handleNextClick.emit(event)\n }\n}\n","<section\n class=\"gds-in-page-wizard-step-card card\"\n data-testid=\"in-page-wizard-step-card-root\"\n [class.active]=\"!!isActive\"\n [class.completed]=\"!!isCompleted\"\n>\n <header class=\"gds-in-page-wizard-step-card__header\">\n <div class=\"gds-in-page-wizard-step-card__header__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) -->\n <path\n d=\"M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z\"\n />\n </svg>\n </div>\n <div\n class=\"gds-in-page-wizard-step-card__header__progress\"\n data-testid=\"in-page-wizard-step-card-step-text\"\n >\n {{ stepText }}\n </div>\n <div\n class=\"gds-in-page-wizard-step-card__header__title\"\n data-testid=\"in-page-wizard-step-card-title\"\n >\n <h2 class=\"h4\">{{ title }}</h2>\n </div>\n\n <div\n class=\"gds-in-page-wizard-step-card__header__edit\"\n *ngIf=\"isCompleted && !isActive\"\n >\n <button\n class=\"secondary small\"\n (click)=\"handleOnEditBtnClick($event)\"\n data-testid=\"in-page-wizard-step-card-edit-btn\"\n >\n {{ editBtnText }}\n </button>\n </div>\n </header>\n\n <div\n class=\"gds-in-page-wizard-step-card__content\"\n *ngIf=\"!!isActive || !!isCompleted\"\n data-testid=\"in-page-wizard-step-card-content\"\n >\n <ng-content></ng-content>\n </div>\n <footer class=\"gds-in-page-wizard-step-card__footer\" *ngIf=\"isActive\">\n <button\n class=\"primary\"\n [disabled]=\"disableNext\"\n (click)=\"handleOnNextBtnClick($event)\"\n data-testid=\"in-page-wizard-step-card-next-btn\"\n >\n {{ nextBtnText }}\n </button>\n </footer>\n</section>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggInPageWizardStepCardComponent } from './in-page-wizard-step-card.component'\n\n@NgModule({\n declarations: [NggInPageWizardStepCardComponent],\n imports: [CommonModule],\n exports: [NggInPageWizardStepCardComponent],\n})\nexport class NggInPageWizardModule {}\n","import { Directive, ViewContainerRef } from '@angular/core'\n\n@Directive({\n selector: '[nggModalHeader]',\n})\nexport class NggModalHeaderDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Directive, ViewContainerRef } from '@angular/core'\n\n@Directive({\n selector: '[nggModalFooter]',\n})\nexport class NggModalFooterDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport {\n trigger,\n query,\n style,\n animate,\n transition,\n group,\n} from '@angular/animations'\nimport { ModalType, Size } from '@sebgroup/extract'\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y'\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'\nimport { NggModalHeaderDirective } from './modal-header.directive'\nimport { NggModalFooterDirective } from './modal-footer.directive'\n\n@Component({\n selector: 'ngg-modal',\n styleUrls: ['./modal.component.scss'],\n templateUrl: './modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('modalAnimation', [\n transition(':enter', [\n query('aside', style({ transform: 'translateX(100%)' }), {\n optional: true,\n }),\n query('.backdrop, [role=dialog]', style({ opacity: '0' }), {\n optional: true,\n }),\n group([\n query(\n 'aside',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(0)' }),\n ),\n { optional: true },\n ),\n query(\n '.backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '1' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n transition(':leave', [\n query('aside', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query(\n 'aside',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(100%)' }),\n ),\n { optional: true },\n ),\n query(\n '.backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '0' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NggModalComponent implements OnDestroy, OnInit {\n @Input() public modalType?: ModalType\n @Input() public header?: string\n @Input() public confirmLabel?: string\n @Input() public dismissLabel?: string\n @Input() public size?: Size\n @Input() public hideHeader?: boolean\n @Input() public hideFooter?: boolean\n @Input() public disableBodyScroll?: boolean = true\n @Input() public get trapFocus(): boolean | undefined {\n return this._trapFocus\n }\n public set trapFocus(value: boolean | undefined) {\n this._trapFocus = value\n\n if (value) {\n if (this._isOpen) {\n this.enableFocusTrap()\n }\n } else {\n this.disableFocusTrap()\n }\n }\n\n @Input()\n public get isOpen(): boolean | undefined {\n return this._isOpen\n }\n public set isOpen(value: boolean | undefined) {\n this._isOpen = value\n\n if (value) {\n if (this.trapFocus) {\n this.enableFocusTrap()\n }\n\n if (this.disableBodyScroll) {\n disableBodyScroll(this.ref.nativeElement, {\n allowTouchMove: (el) => {\n // Allow touchmove for elements inside modal, its required for scroll to work on iOS devices\n return this.ref.nativeElement.contains(el)\n },\n })\n }\n } else {\n this.disableFocusTrap()\n if (this.disableBodyScroll) {\n enableBodyScroll(this.ref.nativeElement)\n }\n }\n }\n\n @Output() public isOpenChange: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n @Output() public closed: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n @Output() public confirm: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n @Output() public dismiss: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n\n @HostBinding('class.open') get open() {\n return this.isOpen\n }\n @ViewChild('backdrop') private backdropRef?: ElementRef<HTMLInputElement>\n @ContentChild(NggModalHeaderDirective)\n public modalHeaderContent?: NggModalHeaderDirective\n @ContentChild(NggModalFooterDirective)\n public modalFooterContent?: NggModalFooterDirective\n private _isOpen?: boolean\n private _trapFocus?: boolean\n private configurableFocusTrap: ConfigurableFocusTrap\n\n constructor(\n private ref: ElementRef<HTMLElement>,\n private configurableFocusTrapFactory: ConfigurableFocusTrapFactory,\n ) {\n this.configurableFocusTrap = this.configurableFocusTrapFactory.create(\n this.ref.nativeElement,\n )\n }\n\n ngOnInit(): void {\n if (this._isOpen && this.trapFocus) this.enableFocusTrap()\n else this.disableFocusTrap()\n }\n\n public handleCloseClick(event: MouseEvent) {\n this.closeModal(event)\n }\n\n public handleBackdropClick(event: MouseEvent) {\n if (event.target == this.backdropRef?.nativeElement) this.closeModal(event)\n }\n\n public handleDismiss(event: MouseEvent) {\n this.dismiss.emit(event)\n }\n\n public handleConfirm(event: MouseEvent) {\n this.confirm.emit(event)\n }\n\n private closeModal(event: MouseEvent) {\n if (this.closed.observers.length > 0) {\n this.closed.emit(event)\n } else {\n this.isOpen = false\n this.isOpenChange.emit(this.isOpen)\n }\n }\n\n private enableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = true\n this.configurableFocusTrap.focusInitialElementWhenReady()\n }\n }\n\n private disableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = false\n }\n }\n\n ngOnDestroy(): void {\n this.configurableFocusTrap?.destroy()\n enableBodyScroll(this.ref.nativeElement)\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-header]',\n styleUrls: ['./modal.component.scss'],\n template: `\n <h3 data-testid=\"modal-header-text\">{{ header }}</h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.handleClose($event)\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n `,\n})\nexport class NggModalHeaderComponent {\n @Input() header?: string\n @Output() closed: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>()\n\n handleClose(event: MouseEvent) {\n this.closed.emit(event)\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-body]',\n styleUrls: ['./modal.component.scss'],\n template: `<ng-content></ng-content>`,\n})\nexport class NggModalBodyComponent {}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-footer]',\n styleUrls: ['./modal.component.scss'],\n template: `\n <button\n data-testid=\"modal-dismiss-button\"\n *ngIf=\"dismissLabel\"\n class=\"secondary\"\n (click)=\"this.handleDismiss($event)\"\n >\n {{ dismissLabel }}\n </button>\n <button\n data-testid=\"modal-confirm-button\"\n *ngIf=\"confirmLabel\"\n class=\"primary\"\n (click)=\"this.handleConfirm($event)\"\n >\n {{ confirmLabel }}\n </button>\n `,\n})\nexport class NggModalFooterComponent {\n @Input() dismissLabel?: string\n @Input() confirmLabel?: string\n @Output() dismiss: EventEmitter<MouseEvent> = new EventEmitter()\n @Output() confirm: EventEmitter<MouseEvent> = new EventEmitter()\n\n handleDismiss(event: MouseEvent) {\n this.dismiss.emit(event)\n }\n\n handleConfirm(event: MouseEvent) {\n this.confirm.emit(event)\n }\n}\n","<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <div class=\"gds-dialog-wrapper\" [@modalAnimation]>\n <aside\n data-testid=\"modal\"\n *ngSwitchCase=\"'slideout'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main\n data-testid=\"modal\"\n *ngSwitchCase=\"'takeover'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section\n data-testid=\"modal\"\n *ngSwitchDefault\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header\n *ngIf=\"!modalHeaderContent; else headerContentTemplate\"\n ngg-modal-header\n data-testid=\"modal-header\"\n [header]=\"header\"\n (closed)=\"this.handleCloseClick($event)\"\n ></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer\n *ngIf=\"!modalFooterContent; else footerContentTemplate\"\n ngg-modal-footer\n data-testid=\"modal-footer\"\n [dismissLabel]=\"dismissLabel\"\n [confirmLabel]=\"confirmLabel\"\n (dismiss)=\"this.handleDismiss($event)\"\n (confirm)=\"this.handleConfirm($event)\"\n ></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div\n #backdrop\n data-testid=\"modal-backdrop\"\n class=\"backdrop entered\"\n (click)=\"this.handleBackdropClick($event)\"\n [attr.aria-hidden]=\"true\"\n ></div>\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { A11yModule } from '@angular/cdk/a11y'\nimport {\n NggModalBodyComponent,\n NggModalComponent,\n NggModalFooterComponent,\n NggModalHeaderComponent,\n} from './modal.component'\nimport { NggModalHeaderDirective } from './modal-header.directive'\nimport { NggModalFooterDirective } from './modal-footer.directive'\n\nconst DECLARATIONS = [\n NggModalComponent,\n NggModalHeaderComponent,\n NggModalBodyComponent,\n NggModalFooterComponent,\n NggModalHeaderDirective,\n NggModalFooterDirective,\n]\n\nconst EXPORTS = [\n NggModalComponent,\n NggModalHeaderDirective,\n NggModalFooterDirective,\n]\n\n@NgModule({\n imports: [A11yModule, CommonModule],\n exports: EXPORTS,\n declarations: DECLARATIONS,\n})\nexport class NggModalModule {}\n","import { Component, HostBinding, Input } from '@angular/core'\nimport {\n calculateDegrees,\n ProgressCircleThemes,\n randomId,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-progress-circle',\n templateUrl: './progress-circle.component.html',\n})\nexport class NggProgressCircleComponent {\n @HostBinding('style.--start-value') private _startValue = '0deg'\n @HostBinding('style.--end-value') private _endValue = '0deg'\n\n /** id of the progress circle */\n @Input() id?: string = `${randomId()}-progress-circle`\n /** theme of the progress circle */\n @Input() theme: ProgressCircleThemes = 'warning'\n /** progress circle value in percentage */\n @Input() set value(val: number) {\n const degrees = `${calculateDegrees(val)}deg`\n this._endValue = degrees\n if (this.theme === 'disabled') {\n this._startValue = degrees\n }\n }\n}\n","<div\n class=\"gds-progress-circle\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"id\"\n>\n <div class=\"ring full-ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"inner-circle\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggProgressCircleComponent } from './progress-circle.component'\n\n@NgModule({\n declarations: [NggProgressCircleComponent],\n imports: [CommonModule],\n exports: [NggProgressCircleComponent],\n})\nexport class NggProgressCircleModule {}\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n} from '@angular/core'\nimport { Subject, fromEvent, interval } from 'rxjs'\nimport { takeUntil, throttle } from 'rxjs/operators'\n\nexport const ON_SCROLL_TOKEN = new InjectionToken<string>('ON_SCROLL_TOKEN')\n\n@Directive({\n selector: '[nggOnScroll]',\n providers: [\n {\n provide: ON_SCROLL_TOKEN,\n useFactory: (component: NggOnScrollDirective): Subject<unknown> =>\n component?.onScroll$,\n deps: [NggOnScrollDirective],\n },\n ],\n})\nexport class NggOnScrollDirective implements AfterViewInit, OnDestroy {\n onScroll$ = new Subject()\n destroy$ = new Subject()\n\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.elementRef) {\n fromEvent(this.elementRef?.nativeElement, 'scroll')\n .pipe(\n takeUntil(this.destroy$),\n throttle(() => interval(30)),\n )\n .subscribe(() => {\n this.onScroll$.next()\n })\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(null)\n this.destroy$.complete()\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggOnScrollDirective } from './on-scroll.directive'\n\n@NgModule({\n declarations: [NggOnScrollDirective],\n imports: [CommonModule],\n exports: [NggOnScrollDirective],\n})\nexport class NggSharedModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n getSliderTrackBackground,\n randomId,\n sliderColors,\n} from '@sebgroup/extract'\n\ninterface SliderStyle {\n background?: string\n}\n\n@Component({\n selector: 'ngg-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggSliderComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSliderComponent\n implements ControlValueAccessor, OnInit, OnChanges\n{\n @Input() name = `${randomId()}-slider`\n @Input() min = 0\n @Input() max = 100\n @Input() step = 1\n @Input() label = ''\n @Input() instruction = ''\n @Input() placeholder = ''\n @Input() errorMessage = ''\n @Input() hasTextbox = false\n @Input() unitLabel = 'kr'\n @Input() disabled = false\n @Input() value = 0\n @Input() enterkeyhint?:\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send'\n\n @Output() sliderChange = new EventEmitter<number>()\n @Output() sliderTouch = new EventEmitter<boolean>()\n\n onChangeFn?: (val: number) => void\n onTouchedFn?: VoidFunction\n style: SliderStyle = {}\n\n ngOnInit(): void {\n this.setTrackBackground()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n ['min', 'max', 'value'].some((x: string) =>\n Object.prototype.hasOwnProperty.call(changes, x),\n )\n ) {\n this.setTrackBackground()\n }\n }\n\n onBlur(): void {\n this.sliderTouch.emit(true)\n this.onTouchedFn && this.onTouchedFn()\n }\n\n handleChange(): void {\n this.value = this.value ?? 0\n this.setTrackBackground()\n this.sliderChange.emit(this.value)\n this.onChangeFn && this.onChangeFn(this.value)\n }\n\n setTrackBackground(): void {\n if (this.disabled) {\n this.style.background = sliderColors.disabled\n return\n }\n\n const percent = ((this.value - this.min) / (this.max - this.min)) * 100\n this.style.background = getSliderTrackBackground(percent)\n }\n\n /** control value accessor functions */\n writeValue(val: number): void {\n if (this.value !== val) {\n this.value = val ?? 0\n this.handleChange()\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n}\n","<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\n\nimport { NggSliderComponent } from './slider.component'\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n exports: [NggSliderComponent],\n declarations: [NggSliderComponent],\n})\nexport class NggSliderModule {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core'\nimport {\n CdkDragDrop,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop'\n\nexport interface SortableListItem {\n id: any\n name: string\n description?: string\n selected?: boolean\n hasCustomSuffix?: boolean\n}\n\nexport interface SortableListGroup {\n items: SortableListItem[]\n title: string\n description?: string\n}\n\n@Component({\n selector: 'ngg-sortable-list',\n templateUrl: './sortable-list.component.html',\n styleUrls: ['./sortable-list.component.scss'],\n})\nexport class NggSortableListComponent {\n @Input() groups: SortableListGroup[] = []\n @Input() shouldDisplayCheckboxes = false\n @Input() isReadOnly = false\n @Input() isDraggable = true\n @Input() description = ''\n @Input() suffixTemplate: TemplateRef<any> | null = null\n\n @Output() itemSelectionChanged = new EventEmitter<{\n changedItem: SortableListItem\n groups: SortableListGroup[]\n }>()\n @Output() itemOrderChanged = new EventEmitter<{\n previousIndex: [number, number]\n currentIndex: [number, number]\n groups: SortableListGroup[]\n }>()\n\n @ViewChild('sortableListGroups') sortableListGroups!: ElementRef\n\n focusedIndex: Record<number, number> = { 0: 0 }\n\n /**\n * Toggles the selection of a checklist item and updates its position in the list.\n *\n * @param item - The checklist item to update.\n */\n toggleSelection(item: SortableListItem) {\n item.selected = !item.selected\n this.emitCheckListItem(item)\n }\n\n /**\n * Handles the onDragDrop event.\n *\n * @param event - The drag and drop event.\n */\n onDragDrop(event: CdkDragDrop<SortableListItem[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n )\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n )\n }\n\n this.emitItemOrderChanged(\n [Number(event.previousContainer.id), event.previousIndex],\n [Number(event.container.id), event.currentIndex],\n )\n }\n\n /**\n * Handles moving items up or down using the alt + arrow up or alt + arrow down keys.\n *\n * @param groupIndex - The index of the group.\n * @param currentItemIndex - The current index of the item.\n * @param newItemIndex - The new index of the item.\n */\n onAltArrowKeydown(\n groupIndex: number,\n currentItemIndex: number,\n newItemIndex: number,\n event: any,\n ) {\n event.preventDefault()\n\n let newIndex = newItemIndex\n let newGroupIndex = groupIndex\n let transfer = false\n\n if (newIndex > this.groups[groupIndex].items.length - 1) {\n newIndex = 0\n newGroupIndex = groupIndex + 1\n transfer = true\n this.focusedIndex[groupIndex] = this.groups[groupIndex].items.length - 2\n } else if (newIndex < 0) {\n newGroupIndex = groupIndex - 1\n newIndex = this.groups[newGroupIndex].items.length\n transfer = true\n this.focusedIndex[groupIndex] = 0\n }\n\n if (transfer) {\n transferArrayItem(\n this.groups[groupIndex].items,\n this.groups[newGroupIndex].items,\n currentItemIndex,\n newIndex,\n )\n } else {\n moveItemInArray(this.groups[groupIndex].items, currentItemIndex, newIndex)\n }\n\n this.emitItemOrderChanged(\n [groupIndex, currentItemIndex],\n [newGroupIndex, newIndex],\n )\n\n setTimeout(() => {\n this.focusItem(newGroupIndex, newIndex)\n })\n }\n\n /**\n * Handles focus by arrow keydown event.\n *\n * @param groupIndex - The index of the group.\n * @param itemIndex - The index of the item.\n * @param event - The keyboard event.\n */\n onArrowKeydown(groupIndex: number, itemIndex: number, event: Event) {\n event.preventDefault()\n setTimeout(() => {\n let gi = groupIndex\n\n if (itemIndex > this.groups[groupIndex].items.length - 1) {\n gi = groupIndex + 1\n itemIndex = 0\n }\n\n if (itemIndex < 0) {\n gi = groupIndex - 1\n if (gi < 0) {\n return\n }\n itemIndex = this.groups[gi].items.length - 1\n }\n\n this.focusItem(gi, itemIndex)\n })\n }\n\n /**\n * Emits the item order changed event.\n *\n * @param previousIndex - The previous index of the item.\n * @param currentIndex - The current index of the item.\n */\n private emitItemOrderChanged(\n previousIndex: [number, number],\n currentIndex: [number, number],\n ) {\n this.itemOrderChanged.emit({\n previousIndex,\n currentIndex,\n groups: [...this.groups],\n })\n }\n\n /**\n * Emits the selected checklist item through an event.\n *\n * @param item - The checklist item to emit.\n */\n private emitCheckListItem(item: SortableListItem) {\n this.itemSelectionChanged.emit({ changedItem: item, groups: this.groups })\n }\n\n /**\n * Focuses on a specific item in the sortable list.\n *\n * @param groupIndex - The index of the group.\n * @param itemIndex - The index of the item.\n */\n private focusItem(groupIndex: number, itemIndex: number): void {\n const groupElements =\n this.sortableListGroups.nativeElement.querySelectorAll('.item-list-group')\n\n if (groupElements && groupElements.length > groupIndex) {\n const itemElements = groupElements[groupIndex].querySelectorAll('.item')\n if (itemElements && itemElements.length > itemIndex) {\n if (this.shouldDisplayCheckboxes) {\n itemElements[itemIndex].querySelector('input').focus()\n } else {\n itemElements[itemIndex].focus()\n }\n this.focusedIndex[groupIndex] = itemIndex\n }\n }\n }\n\n /**\n * Checks if an item has focus.\n *\n * @param groupIndex - The index of the group.\n * @param itemIndex - The index of the item.\n */\n itemHasFocus(groupIndex: number, itemIndex: number) {\n if (!this.focusedIndex[groupIndex]) {\n this.focusedIndex[groupIndex] = 0\n }\n return this.focusedIndex[groupIndex] === itemIndex\n }\n}\n","<div class=\"item-list\">\n <ng-container>\n <p class=\"item-list-header\">\n <span class=\"item-list-header-title\">{{ description }}</span>\n </p>\n <div #sortableListGroups cdkDropListGroup>\n <div\n *ngFor=\"let group of groups; let g_i = index\"\n class=\"item-list-group\"\n [class.drag-enabled]=\"isDraggable && !isReadOnly\"\n role=\"list\"\n cdkDropList\n [cdkDropListData]=\"group.items\"\n [id]=\"g_i.toString()\"\n (cdkDropListDropped)=\"onDragDrop($event)\"\n >\n <p\n *ngIf=\"group.title && group.title.length > 0\"\n class=\"item-list-header\"\n >\n <span class=\"item-list-header-title\">{{ group.title }}</span>\n </p>\n <p\n *ngIf=\"group.description && group.description.length > 0\"\n class=\"item-list-header-description\"\n >\n {{ group.description }}\n </p>\n <div\n *ngFor=\"let checklistItem of group.items; let i = index\"\n [cdkDragDisabled]=\"!isDraggable || isReadOnly\"\n [cdkDragData]=\"checklistItem\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n class=\"item-box\"\n role=\"listitem\"\n >\n <div *cdkDragPlaceholder class=\"item-custom-placeholder\"></div>\n <label\n (keydown.alt.arrowDown)=\"onAltArrowKeydown(g_i, i, i + 1, $event)\"\n (keydown.alt.arrowUp)=\"onAltArrowKeydown(g_i, i, i - 1, $event)\"\n (keydown.arrowDown)=\"onArrowKeydown(g_i, i + 1, $event)\"\n (keydown.arrowUp)=\"onArrowKeydown(g_i, i - 1, $event)\"\n class=\"form-control item-control align-items-center item\"\n [tabindex]=\"shouldDisplayCheckboxes ? '-1' : '0'\"\n >\n <div class=\"form-control\">\n <input\n (change)=\"toggleSelection(checklistItem)\"\n [checked]=\"checklistItem.selected\"\n [disabled]=\"isReadOnly\"\n [type]=\"shouldDisplayCheckboxes ? 'checkbox' : 'hidden'\"\n />\n <div class=\"item-box-title\">\n <span name=\"agendaItemName\"\n >{{ checklistItem.name }}\n <span\n *ngIf=\"checklistItem.hasCustomSuffix\"\n class=\"item-list-suffix\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n suffixTemplate;\n context: { $implicit: checklistItem }\n \"\n class=\"user-icon\"\n >\n </ng-container>\n </span>\n </span>\n <br />\n <span *ngIf=\"!!checklistItem.description\">\n <span class=\"item-list-suffix\" name=\"agendaItemToolTip\">\n {{ checklistItem.description }}\n </span>\n <br />\n </span>\n </div>\n <i></i>\n </div>\n <div *ngIf=\"isDraggable && !isReadOnly\" class=\"item-grip-icon\">\n <i class=\"sg-icon sg-icon-grip-vertical text-primary\"></i>\n </div>\n </label>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\nimport { NggSortableListComponent } from './sortable-list.component'\nimport { DragDropModule } from '@angular/cdk/drag-drop'\n\n@NgModule({\n imports: [CommonModule, FormsModule, DragDropModule],\n exports: [NggSortableListComponent],\n declarations: [NggSortableListComponent],\n})\nexport class NggSortableListModule {}\n","import {\n Directive,\n ElementRef,\n Input,\n SimpleChanges,\n OnChanges,\n OnInit,\n} from '@angular/core'\n\n@Directive({\n selector: '[nggSlidingUnderline]',\n})\nexport class SlidingUnderlineDirective implements OnInit, OnChanges {\n constructor(private element: ElementRef<HTMLElement>) {}\n\n @Input() public nggSlidingUnderline: any\n @Input() public key?: any\n @Input() public disabled?: boolean\n\n ngOnInit(): void {\n if (this.element?.nativeElement) {\n this.element.nativeElement.classList.add('slider')\n\n this.element.nativeElement.addEventListener('animationend', () => {\n this.element.nativeElement.classList.remove(\n 'left',\n 'slider-positive',\n 'slider-negative',\n )\n })\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.disabled) {\n if (\n changes.slidingUnderline &&\n changes.key &&\n !changes.slidingUnderline.isFirstChange() &&\n !changes?.key?.isFirstChange()\n ) {\n if (changes.key.currentValue === changes.key.previousValue) {\n this.addAnimation(\n changes.slidingUnderline.currentValue,\n changes.slidingUnderline.previousValue,\n )\n }\n } else {\n if (\n changes.slidingUnderline &&\n !changes.slidingUnderline.isFirstChange()\n ) {\n this.addAnimation(\n changes.slidingUnderline.currentValue,\n changes.slidingUnderline.previousValue,\n )\n }\n }\n }\n }\n\n addAnimation(current: any, previous: any) {\n if (current > previous)\n this.element.nativeElement.classList.add('slider-positive')\n else this.element.nativeElement.classList.add('slider-negative')\n this.element.nativeElement.classList.add('left')\n }\n}\n","import { Component, Input } from '@angular/core'\nimport { TableHeaderListValueType } from './cell-table.types'\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[nggCellTableItem]',\n template: `\n <ng-container [ngSwitch]=\"valueType\">\n <span *ngSwitchCase=\"'string'\">{{ row || '–' }}</span>\n <span *ngSwitchCase=\"'number'\">{{ (row | number) || '–' }}</span>\n <span *ngSwitchCase=\"'datetime'\">{{\n (row | date: 'HH:mm:ss') || '–'\n }}</span>\n <span *ngSwitchCase=\"'date'\">{{\n (row | date: 'YYYY-MM-dd') || '–'\n }}</span>\n <span\n *ngSwitchCase=\"'custom-html'\"\n [innerHtml]=\"transformHTML(row) || '–'\"\n ></span>\n <span *ngSwitchCase=\"'sign'\" [ngClass]=\"getSignColor(row)\">{{\n row || '–'\n }}</span>\n <span *ngSwitchCase=\"'pct'\">{{ row || '–' }}</span>\n <span *ngSwitchCase=\"'streamSign'\" [nggSlidingUnderline]=\"row\">{{\n row || '–'\n }}</span>\n <span *ngSwitchDefault>–</span>\n </ng-container>\n `,\n})\nexport class CellTableItemComponent {\n @Input() row: any\n @Input() valueType: TableHeaderListValueType = 'string'\n @Input() id = ''\n\n constructor(private sanitizer: DomSanitizer) {}\n\n getSignColor = (value: string | number) => {\n if (/[−-]/.test(String(value))) return 'text-danger'\n else if (/[1-9]/.test(String(value))) return 'text-success'\n return ''\n }\n\n transformHTML(value: string): SafeHtml {\n if (value && value.length) {\n return this.sanitizer.bypassSecurityTrustHtml(value)\n } else {\n return ''\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core'\nimport {\n TableHeaderListItem,\n TableHeaderListValueType,\n TableRow,\n} from './cell-table.types'\n\n@Component({\n selector: 'ngg-cell-table',\n templateUrl: './cell-table.component.html',\n styleUrls: ['./cell-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggCellTableComponent {\n @ViewChildren('items') items: QueryList<ElementRef> =\n new QueryList<ElementRef>()\n\n /** Cell min-width to force same width on small screens */\n @Input() minWidth?: number\n\n /** Make the most left element wrap */\n @Input() overflowReverse = false\n\n /** Element class name */\n @Input() className?: string\n\n /** List of table headers */\n @Input() headerList: TableHeaderListItem[] = []\n\n /** List of data */\n @Input() rows: TableRow[] = []\n\n /** Make rows clickable and add arrow to the right */\n @Input() clickableRows = false\n\n /** Label for the chevron of clickable rows */\n @Input() clickLabel = 'View details'\n\n /** Callback when a row is clicked */\n @Output() rowClicked: EventEmitter<TableRow> = new EventEmitter()\n\n // ------------- EVENTS ------------------\n /**\n * handles the logic for when a row is clicked\n * @param {TableRowClickedEvent} value the TableRowClickedEvent\n */\n handleClickRow = (value: TableRow): void => {\n if (this.clickableRows) this.rowClicked.emit(value)\n }\n\n getValueTypeFromMain = (): TableHeaderListValueType => {\n const getMain = this.headerList.find((x) => x.main)\n if (getMain) return getMain.valueType || ''\n return ''\n }\n\n getTableHeaderListValueFromNonMain = (\n header: TableHeaderListItem,\n ): TableHeaderListValueType => {\n if (header.valueType) return header.valueType || ''\n return ''\n }\n\n mainHeader = (row: TableRow) => {\n const getMain = this.headerList.find((x) => x.main)\n if (row && getMain) {\n return {\n value: row[getMain.tableKeySelector],\n valueType: getMain.valueType || 'string',\n tableKeySelector: getMain.tableKeySelector,\n }\n }\n return {\n value: '-',\n valueType: 'string',\n tableKeySelector: '-',\n }\n }\n\n headerNoneMain = (headers: TableHeaderListItem[]) => {\n if (this.overflowReverse) return headers.filter((x) => !x.main).reverse()\n return headers.filter((x) => !x.main)\n }\n\n getTableKeySelector = (row: TableRow) => {\n return this.mainHeader(row).tableKeySelector + row.rowId\n }\n\n // ------- TRACKBY FOR STREAM ------------\n trackByrowId(_: any, b: TableRow) {\n return b.rowId\n }\n KeySelector(_: any, b: TableHeaderListItem) {\n return b.tableKeySelector\n }\n}\n","<div #targetElement role=\"table\" [ngClass]=\"className\">\n <div class=\"cell-table-table d-flex flex-column\">\n <div\n *ngFor=\"let row of rows; trackBy: trackByrowId\"\n (click)=\"handleClickRow(row)\"\n class=\"cell-table--row-wrapper\"\n role=\"rowgroup\"\n [class.is-clickable]=\"clickableRows\"\n >\n <div>\n <div #items [class.overflow-reverse]=\"overflowReverse\">\n <!-- Main header -->\n <div role=\"row\">\n <div\n nggCellTableItem\n [row]=\"mainHeader(row).value\"\n [valueType]=\"getValueTypeFromMain()\"\n [attr.valueType]=\"getValueTypeFromMain()\"\n [attr.id]=\"getTableKeySelector(row)\"\n role=\"rowheader\"\n aria-rowspan=\"3\"\n aria-colspan=\"3\"\n ></div>\n </div>\n <div role=\"row\">\n <div class=\"d-flex\">\n <!-- Sub Header -->\n <div\n nggCellTableItem\n class=\"sub-header py-0 fw-bold\"\n [row]=\"header.label\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n role=\"columnheader\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n\n <div role=\"row\">\n <!-- Sub Values -->\n <div class=\"d-flex\">\n <div\n nggCellTableItem\n class=\"sub-value py-0\"\n [row]=\"row[header.tableKeySelector]\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n [attr.valueType]=\"header.valueType\"\n role=\"cell\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"clickableRows\"\n role=\"row\"\n class=\"d-grid align-items-center ms-4 me-4 cell-table--arrow-container\"\n >\n <div role=\"cell\">\n <div\n role=\"button\"\n [attr.aria-label]=\"clickLabel\"\n tabindex=\"0\"\n [attr.aria-describedby]=\"getTableKeySelector(row)\"\n (keydown.enter)=\"handleClickRow(row)\"\n >\n <svg\n data-prefix=\"far\"\n data-icon=\"chevron-right\"\n class=\"svg-inline--fa fa-chevron-right fa-w-10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M113.3 47.41l183.1 191.1c4.469 4.625 6.688 10.62 6.688 16.59s-2.219 11.97-6.688 16.59l-183.1 191.1c-9.152 9.594-24.34 9.906-33.9 .7187c-9.625-9.125-9.938-24.38-.7187-33.91l168-175.4L78.71 80.6c-9.219-9.5-8.906-24.78 .7187-33.91C88.99 37.5 104.2 37.82 113.3 47.41z\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NggCellTableComponent } from './cell-table.component'\nimport { CellTableItemComponent } from './cell-table-item.component'\nimport { SlidingUnderlineDirective } from './cell-underline.directive'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggCellTableComponent],\n declarations: [\n NggCellTableComponent,\n CellTableItemComponent,\n SlidingUnderlineDirective,\n ],\n})\nexport class NggCellTableModule {}\n","export default class Table {\n constructor(table: { data: TableRow[]; header: TableHeaderListItem[] }) {\n this.data = table.data\n this.header = table.header\n }\n data: TableRow[]\n header: TableHeaderListItem[]\n}\n\n/** The type of a data the values in a column represent */\nexport type TableHeaderListValueType =\n | 'number'\n | 'string'\n | 'date'\n | 'datetime'\n | 'bool'\n | 'custom-html'\n | 'sign'\n | 'streamSign'\n | ''\n\n/** Table Header List Item Interface */\nexport interface TableHeaderListItem<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n /** The label displayed */\n label: string\n /** the key selector corresponding to to the TableList Item which this column is targeting */\n // tableKeySelector: keyof T;\n tableKeySelector: string\n /** the type of value: string, date or number */\n valueType?: TableHeaderListValueType\n\n /** the main field for stacked table */\n main?: boolean\n}\n\nexport interface TableRow {\n [prop: string]: any\n rowId: string | number\n}\n\n/** The information on the currently selected sort: column name, type and asc/desc */\nexport interface SortInfo<\n T extends Record<string, unknown> = { [k: string]: any },\n> {\n /** column name */\n column: keyof T\n /** is ascending (false for descending) */\n isAscending: boolean\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggAccordionModule } from './accordion'\nimport { NggBadgeModule } from './badge/badge.module'\nimport { NggButtonModule } from './button/button.module'\nimport { NggContextMenuModule } from './context-menu'\nimport { NggDatepickerModule } from './datepicker/datepicker.module'\nimport { NggDropdownModule } from './dropdown/dropdown.module'\nimport { NggInPageWizardModule } from './in-page-wizard'\nimport { NggModalModule } from './modal'\nimport { NggProgressCircleModule } from './progress-circle/progress-circle.module'\nimport { NggSegmentedControlModule } from './segmented-control/segmented-control.module'\nimport { NggSharedModule } from './shared/shared.module'\nimport { NggSliderModule } from './slider/slider.module'\nimport { NggSortableListModule } from './sortable-list/sortable-list.module'\nimport { NggCellTableModule } from './cell-table'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [\n NggAccordionModule,\n NggBadgeModule,\n NggButtonModule,\n NggDatepickerModule,\n NggDropdownModule,\n NggModalModule,\n NggProgressCircleModule,\n NggSegmentedControlModule,\n NggSliderModule,\n NggContextMenuModule,\n NggInPageWizardModule,\n NggCellTableModule,\n NggSharedModule,\n NggSortableListModule,\n ],\n})\nexport class NggModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n} from '@angular/core'\nimport {\n IPaginationEvent,\n IPaginationI18n,\n PaginationI18n,\n PaginationSize,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggPaginationComponent implements OnChanges {\n /** Internationalization labels */\n @Input() i18n: IPaginationI18n = PaginationI18n\n\n /** Rendered size */\n @Input() size: PaginationSize = 'small'\n\n /** Amount of pages to be displayed between the first and last */\n @Input() displayPages = 5\n\n /** Total amount of items to be paginated */\n @Input() length = 0\n\n /** Displayed items per page */\n @Input() pageSize = 10\n\n /** The zero-based page index of the displayed list of pages. Defaulted to 0. */\n @Input()\n get pageIndex(): number {\n return this._pageIndex\n }\n set pageIndex(value: number) {\n this._pageIndex = Math.max(value, 0)\n }\n private _pageIndex = 0\n\n /** All centric page indicies to be displayed. */\n get pageIndicies(): number[] {\n return this._pageIndicies\n }\n private _pageIndicies: number[] = []\n\n get totalPages(): number {\n if (!this.pageSize) {\n return 0\n }\n\n return Math.ceil(this.length / this.pageSize)\n }\n\n /** Event emitted when a new page index is selected */\n @Output() page = new EventEmitter<IPaginationEvent>()\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.displayPages ||\n changes.pageIndex ||\n changes.pageSize ||\n changes.length\n ) {\n this._pageIndicies = this.getDisplayedPageIndicies()\n }\n }\n\n hasPrevious(): boolean {\n return this.pageIndex >= 1\n }\n\n hasNext(): boolean {\n return this.pageIndex < this.totalPages - 1\n }\n\n gotoFirst(): void {\n if (!this.hasPrevious()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = 0\n this.emit(previous)\n }\n\n gotoLast(): void {\n if (!this.hasNext()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = this.totalPages - 1\n this.emit(previous)\n }\n\n gotoPrevious(): void {\n if (!this.hasPrevious()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = previous - 1\n this.emit(previous)\n }\n\n gotoNext(): void {\n if (!this.hasNext()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = previous + 1\n this.emit(previous)\n }\n\n goto(index: number): void {\n if (index === this.pageIndex || index < 0 || index >= this.totalPages) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = index\n this.emit(previous)\n }\n\n private emit(previous: number) {\n this._pageIndicies = this.getDisplayedPageIndicies()\n this.page.emit({ pageIndex: this.pageIndex, previousPageIndex: previous })\n }\n\n private getDisplayedPageIndicies(): number[] {\n // Do not render\n if (this.totalPages <= 1) {\n return []\n }\n\n // All pages can fit\n if (this.totalPages <= this.displayPages)\n return [...Array(this.totalPages - 2).keys()].map((index) => index + 1)\n\n // Only first & last\n if (this.totalPages === 2) return []\n\n return this.getCenteredPageIndicies()\n }\n\n /**\n * Find X (displayPages) amount of page indicies that are centered from the currently selected page index,\n * but exclude the first and last indicies if they are within the range.\n */\n private getCenteredPageIndicies(): number[] {\n const pages: number[] = []\n\n if (this.pageIndex === 0) {\n pages.push(this.pageIndex + 1)\n } else if (this.pageIndex === this.totalPages - 1) {\n pages.push(this.pageIndex - 1)\n } else {\n pages.push(this.pageIndex)\n }\n\n const addAfter = () => {\n const next = pages[pages.length - 1] + 1\n if (next < this.totalPages - 1 && counter > 0) {\n pages.push(next)\n return true\n }\n return false\n }\n const addBefore = () => {\n const previous = pages[0] - 1\n if (previous > 0 && counter > 0) {\n pages.unshift(previous)\n return true\n }\n return false\n }\n\n let counter = this.displayPages - 1\n while (counter > 0) {\n const addedAfter = addAfter()\n if (addedAfter) counter--\n\n const addedBefore = addBefore()\n if (addedBefore) counter--\n\n if (!addedAfter && !addedBefore) break\n }\n\n return pages\n }\n}\n","<nav\n [class]=\"'pagination ' + size\"\n role=\"navigation\"\n [attr.aria-label]=\"i18n.paginationLabel\"\n *ngIf=\"totalPages > 1\"\n>\n <ul class=\"gds-reset\">\n <li *ngIf=\"hasPrevious()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoPrevious()\"\n (keydown.enter)=\"gotoPrevious()\"\n [attr.aria-label]=\"i18n.previousPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"\n />\n </svg>\n </a>\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoFirst()\"\n (keydown.enter)=\"gotoFirst()\"\n [attr.aria-current]=\"pageIndex === 0 ? 'page' : null\"\n [attr.aria-label]=\"i18n.firstPageLabel\"\n role=\"button\"\n >\n 1\n </a>\n </li>\n <li *ngIf=\"pageIndicies[0] > 1\" aria-hidden=\"true\">...</li>\n\n <li *ngFor=\"let index of pageIndicies\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"goto(index)\"\n (keydown.enter)=\"goto(index)\"\n [attr.aria-current]=\"pageIndex === index ? 'page' : null\"\n [attr.aria-label]=\"i18n.getPageLabel(index)\"\n role=\"button\"\n >\n {{ index + 1 }}\n </a>\n </li>\n\n <li\n *ngIf=\"pageIndicies[pageIndicies.length - 1] < totalPages - 2\"\n aria-hidden=\"true\"\n >\n ...\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoLast()\"\n (keydown.enter)=\"gotoLast()\"\n [attr.aria-current]=\"pageIndex === totalPages - 1 ? 'page' : null\"\n [attr.aria-label]=\"i18n.lastPageLabel\"\n role=\"button\"\n >\n {{ totalPages }}\n </a>\n </li>\n <li *ngIf=\"hasNext()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoNext()\"\n (keydown.enter)=\"gotoNext()\"\n [attr.aria-label]=\"i18n.nextPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\n />\n </svg>\n </a>\n </li>\n </ul>\n</nav>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggPaginationComponent } from './pagination.component'\n\n@NgModule({\n declarations: [NggPaginationComponent],\n imports: [CommonModule],\n exports: [NggPaginationComponent],\n})\nexport class NggPaginationModule {}\n","import { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core'\n\nimport { getScopedTagName } from '@sebgroup/green-core/scoping'\n\n@Directive({\n selector: '[nggCoreElement]',\n})\nexport class NggCoreElementDirective implements OnInit {\n private viewRef: EmbeddedViewRef<any> | null = null\n private readonly document = inject(DOCUMENT)\n private readonly renderer = inject(Renderer2)\n private readonly vcr = inject(ViewContainerRef)\n private readonly cdr = inject(ChangeDetectorRef)\n private readonly template = inject(TemplateRef<any>)\n\n ngOnInit() {\n this.vcr.clear()\n const originalCreateElement = this.renderer.createElement\n\n this.renderer.createElement = (name: string, _namespace: string) => {\n return this.document.createElement(getScopedTagName(name))\n }\n\n this.viewRef = this.vcr.createEmbeddedView(this.template)\n this.renderer.createElement = originalCreateElement\n this.cdr.markForCheck()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggCoreElementDirective } from './core-element.directive'\n\n@NgModule({\n declarations: [NggCoreElementDirective],\n imports: [CommonModule],\n exports: [NggCoreElementDirective],\n})\nexport class NggCoreWrapperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NggCoreWrapperModule","i1","i2","i3.SlidingUnderlineDirective","i2.CellTableItemComponent"],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular.mjs","sources":["../../../../libs/angular/src/lib/accordion/accordion-list-item.component.ts","../../../../libs/angular/src/lib/accordion/accordion-list-item.component.html","../../../../libs/angular/src/lib/accordion/accordion.component.ts","../../../../libs/angular/src/lib/accordion/accordion.component.html","../../../../libs/angular/src/lib/accordion/accordion.module.ts","../../../../libs/angular/src/lib/badge/badge.component.ts","../../../../libs/angular/src/lib/badge/badge.module.ts","../../../../libs/angular/src/lib/button/button.component.ts","../../../../libs/angular/src/lib/button/button.module.ts","../../../../libs/angular/src/lib/context-menu/context-menu.component.ts","../../../../libs/angular/src/lib/context-menu/context-menu.component.html","../../../../libs/angular/src/lib/context-menu/context-menu.module.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.ts","../../../../libs/angular/src/lib/datepicker/datepicker.component.html","../../../../libs/angular/src/lib/datepicker/datepicker.module.ts","../../../../libs/angular/src/lib/dropdown/dropdown-option.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown-button.directive.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.ts","../../../../libs/angular/src/lib/dropdown/dropdown.component.html","../../../../libs/angular/src/lib/dropdown/dropdown.module.ts","../../../../libs/angular/src/lib/in-page-wizard/in-page-wizard-step-card.component.ts","../../../../libs/angular/src/lib/in-page-wizard/in-page-wizard-step-card.component.html","../../../../libs/angular/src/lib/in-page-wizard/in-page-wizard.module.ts","../../../../libs/angular/src/lib/modal/modal-header.directive.ts","../../../../libs/angular/src/lib/modal/modal-footer.directive.ts","../../../../libs/angular/src/lib/modal/modal.component.ts","../../../../libs/angular/src/lib/modal/modal.component.html","../../../../libs/angular/src/lib/modal/modal.module.ts","../../../../libs/angular/src/lib/progress-circle/progress-circle.component.ts","../../../../libs/angular/src/lib/progress-circle/progress-circle.component.html","../../../../libs/angular/src/lib/progress-circle/progress-circle.module.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.component.ts","../../../../libs/angular/src/lib/segmented-control/segmented-control.module.ts","../../../../libs/angular/src/lib/shared/on-scroll.directive.ts","../../../../libs/angular/src/lib/shared/shared.module.ts","../../../../libs/angular/src/lib/slider/slider.component.ts","../../../../libs/angular/src/lib/slider/slider.component.html","../../../../libs/angular/src/lib/slider/slider.module.ts","../../../../libs/angular/src/lib/sortable-list/sortable-list.component.ts","../../../../libs/angular/src/lib/sortable-list/sortable-list.component.html","../../../../libs/angular/src/lib/sortable-list/sortable-list.module.ts","../../../../libs/angular/src/lib/cell-table/cell-underline.directive.ts","../../../../libs/angular/src/lib/cell-table/cell-table-item.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.html","../../../../libs/angular/src/lib/cell-table/cell-table.module.ts","../../../../libs/angular/src/lib/cell-table/cell-table.types.ts","../../../../libs/angular/src/lib/green-angular.module.ts","../../../../libs/angular/src/lib/pagination/pagination.component.ts","../../../../libs/angular/src/lib/pagination/pagination.component.html","../../../../libs/angular/src/lib/pagination/pagination.module.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.directive.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.module.ts","../../../../libs/angular/src/sebgroup-green-angular.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core'\nimport { randomId } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[ngg-accordion-list-item]',\n templateUrl: './accordion-list-item.component.html',\n})\nexport class NggAccordionListItemComponent {\n @Input() public id: string = randomId()\n @Input() public listItemHeader = ''\n @Input() public listItemSubHeader = ''\n @Output() public expandedChange: EventEmitter<NggAccordionListItemComponent> =\n new EventEmitter<NggAccordionListItemComponent>()\n\n public contentHeight = '0px'\n public isExpanded = false\n\n public shrink(): void {\n this.isExpanded = false\n this.contentHeight = '0px'\n }\n\n public expand(): void {\n this.isExpanded = true\n this.contentHeight = 'auto'\n }\n\n public toggleExpanded(): void {\n this.isExpanded = !this.isExpanded\n if (this.isExpanded) {\n this.contentHeight = 'auto'\n } else {\n this.contentHeight = '0px'\n }\n\n this.expandedChange.emit(this)\n }\n}\n","<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n","import {\n AfterContentChecked,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n QueryList,\n} from '@angular/core'\nimport { Observable, Subscription } from 'rxjs'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\n\n@Component({\n selector: 'ngg-accordion',\n templateUrl: './accordion.component.html',\n})\nexport class NggAccordionComponent implements AfterContentChecked, OnDestroy {\n @ContentChildren(NggAccordionListItemComponent) private items:\n | QueryList<NggAccordionListItemComponent>\n | undefined\n private _expandAll: Observable<void> | undefined\n private expandAllSubscription: Subscription | undefined\n @Input() public closeOthers = false\n @Input()\n public get expandAll(): Observable<void> | undefined {\n return this._expandAll\n }\n public set expandAll(value: Observable<void> | undefined) {\n if (value === this._expandAll) return\n if (this._expandAll) {\n this.expandAllSubscription?.unsubscribe()\n }\n\n this._expandAll = value\n this.expandAllSubscription = this._expandAll?.subscribe(() => {\n if (this.closeOthers === false) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expand()\n }\n }\n }\n })\n }\n\n public ngAfterContentChecked(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.subscribe((child) => this.onChildExpanded(child))\n }\n }\n }\n }\n\n public ngOnDestroy(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.unsubscribe()\n }\n }\n }\n\n this.expandAllSubscription?.unsubscribe()\n }\n\n private onChildExpanded(childIdentity: NggAccordionListItemComponent) {\n if (this.closeOthers && childIdentity.isExpanded && this.items) {\n this.items.forEach((item) => {\n if (item !== childIdentity) item.shrink()\n })\n }\n }\n}\n","<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\nimport { NggAccordionComponent } from './accordion.component'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggAccordionListItemComponent, NggAccordionComponent],\n declarations: [NggAccordionListItemComponent, NggAccordionComponent],\n})\nexport class NggAccordionModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core'\nimport { BadgeType } from '@sebgroup/extract'\n\n@Component({\n // we need to disable this warning since we don't want the badge component to create a new element\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-badge]',\n template: `\n <strong>\n <ng-content></ng-content>\n </strong>\n <button *ngIf=\"isCloseable\" class=\"close\" (click)=\"close($event)\">\n {{ closeText }}\n <i></i>\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggBadgeComponent implements OnInit {\n /** The color of the component */\n @Input() badgeType?: BadgeType | '' = ''\n /** Flag whether the component can be dismissed */\n @Input() set isCloseable(value: boolean | '') {\n this._isCloseable = value\n }\n get isCloseable(): boolean {\n return this._isCloseable === '' || !!this._isCloseable\n }\n /** Close text */\n @Input() closeText?: string\n /** Custom text color */\n @HostBinding('style.color') @Input() customColor?: string\n /** Custom background color */\n @HostBinding('style.background-color') @Input() customBackgroundColor?: string\n\n @HostBinding('class') get class(): string {\n return ['badge', this.badgeType].join(' ')\n }\n\n /** Callback when component is dismissed */\n @Output() handleClose: EventEmitter<Event> = new EventEmitter()\n\n private _isCloseable?: boolean | ''\n\n //eslint-disable-next-line\n constructor() {}\n\n ngOnInit(): void {\n if (!!this.customColor || !!this.customBackgroundColor) {\n this.badgeType = ''\n }\n }\n\n close(e: Event) {\n this.handleClose.emit(e)\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggBadgeComponent } from './badge.component'\n\n@NgModule({\n declarations: [NggBadgeComponent],\n imports: [CommonModule],\n exports: [NggBadgeComponent],\n})\nexport class NggBadgeModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core'\nimport { ButtonSize, ButtonVariant } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-button]',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggButtonComponent {\n @Input() variant?: ButtonVariant\n @Input() size?: ButtonSize\n\n @HostBinding('class') get classes(): string {\n return [this.variant, this.size ? this.size : false]\n .filter(Boolean)\n .join(' ')\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggButtonComponent } from './button.component'\n\n@NgModule({\n declarations: [NggButtonComponent],\n imports: [CommonModule],\n exports: [NggButtonComponent],\n})\nexport class NggButtonModule {}\n","import {\n Input,\n Output,\n Component,\n ViewChild,\n ElementRef,\n EventEmitter,\n TemplateRef,\n} from '@angular/core'\nimport { DropdownOption } from '@sebgroup/green-angular/src/lib/dropdown'\n\n/**\n * MenuItems extends DropDown option and adds the posibility to pass a custom template for just one item.\n */\ninterface MenuItems extends DropdownOption {\n template?: TemplateRef<unknown>\n}\n\nimport '@sebgroup/green-core/components/context-menu/index.js'\nimport * as ContextMenuTransStyles from '@sebgroup/green-core/components/context-menu/context-menu.trans.styles.js'\n\n@Component({\n selector: 'ngg-context-menu',\n templateUrl: './context-menu.component.html',\n})\nexport class NggContextMenuComponent {\n /**\n * Placement of the popover relative to the anchor element.\n */\n @Input() direction: 'ltr' | 'rtl' = 'ltr'\n\n /**\n * List of items to be displayed in the context menu.\n */\n @Input() menuItems: MenuItems[] = []\n\n /**\n * Custom menu item template.\n */\n @Input() menuItemTemplate: TemplateRef<unknown> | null = null\n\n /**\n * Custom menu trigger template.\n */\n @Input() menuAnchorTemplate: TemplateRef<unknown> | null = null\n\n /**\n * @deprecated\n * This property no longer has any effect and will be removed in a future version.\n */\n @Input() closeOnScroll = false\n\n /**\n * Emits when a menu item is clicked.\n */\n @Output() contextMenuItemClicked: EventEmitter<DropdownOption> =\n new EventEmitter<DropdownOption>()\n\n @ViewChild('contextMenuPopover') popover!: ElementRef<HTMLElement>\n @ViewChild('contextMenuAnchor') anchor!: ElementRef<HTMLElement>\n\n isActive = false\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n ContextMenuTransStyles.register()\n }\n\n get placement(): string {\n return this.direction === 'ltr' ? 'bottom-start' : 'bottom-end'\n }\n\n open(): void {\n if (this.isActive) {\n this.close()\n return\n }\n\n this.isActive = true\n }\n\n close(): void {\n this.isActive = false\n }\n\n onItemClick(item: DropdownOption): void {\n this.contextMenuItemClicked.emit(item)\n this.close()\n }\n}\n","<gds-context-menu\n *nggCoreElement\n data-testid=\"context-menu\"\n [placement]=\"placement\"\n [open]=\"isActive\"\n>\n <div style=\"display: contents\" slot=\"trigger\">\n <ng-container\n [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n >\n </ng-container>\n </div>\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n <ng-container\n [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n >\n </ng-container>\n </gds-menu-item>\n </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n <i class=\"sg-icon sg-icon-ellipsis\">Open context menu</i>\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { NggContextMenuComponent } from './context-menu.component'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [NggContextMenuComponent],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [NggContextMenuComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggContextMenuModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms'\nimport { randomId } from '@sebgroup/extract'\nimport { endOfDay, startOfDay } from 'date-fns'\n\nimport '@sebgroup/green-core/components/datepicker/index.js'\nimport * as DatepickerTransStyles from '@sebgroup/green-core/components/datepicker/datepicker.trans.styles.js'\n\nexport interface Attributes {\n id?: string\n role?: string\n style?: CSSStyleDeclaration\n tabIndex?: number\n}\n\nexport interface ElementProps {\n attributes: Attributes\n classes: string[]\n}\n\nexport interface DatepickerOptions {\n label?: string\n locale?: string\n currentDate?: Date | string\n selectedDate?: Date | string\n closeOnSelect?: boolean\n useCurrentTime?: boolean\n weekName?: { abbr: string; displayText: string }\n showWeeks?: boolean\n minDate?: Date\n maxDate?: Date\n dateFormat?: string\n onChange?: (selectedDate: Date) => void\n}\n\n@Component({\n selector: 'ngg-datepicker',\n templateUrl: 'datepicker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDatepickerComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDatepickerComponent\n implements ControlValueAccessor, AfterViewInit\n{\n @Input() size?: 'small' | 'medium'\n @Input() hideLabel?: boolean\n @Input() disabledWeekends?: boolean\n @Input() disabledDates?: Date[]\n\n @Input()\n get options(): DatepickerOptions {\n return <DatepickerOptions>this._options\n }\n set options(value: DatepickerOptions) {\n this._options = value\n }\n\n get showWeekNumbers(): boolean {\n return this.options?.showWeeks ?? false\n }\n\n get dateFormat(): string {\n return this.options?.dateFormat ?? 'y-m-d'\n }\n\n @Input()\n get value(): string | Date | undefined {\n return this._value\n }\n set value(newValue: string | Date | undefined) {\n if (typeof newValue === 'string') {\n newValue = new Date(newValue)\n }\n if (newValue !== this._value) {\n this._value = newValue || undefined\n }\n }\n\n @Input() id?: string = randomId()\n @Input() label?: string\n @Input() isValid: boolean | null = null\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n\n onChangeFn?: (value: any) => void\n onTouchedFn?: any\n\n _value: Date | undefined\n private _options?: DatepickerOptions\n\n get min(): Date | undefined {\n const minDate = this.options?.minDate\n return minDate ? minDate : new Date(new Date().getFullYear() - 10, 0, 1)\n }\n\n get max(): Date | undefined {\n const maxDate = this.options?.maxDate\n return maxDate ? maxDate : new Date(new Date().getFullYear() + 10, 0, 1)\n }\n\n constructor(private _cdr: ChangeDetectorRef) {\n DatepickerTransStyles.register()\n }\n\n writeValue(value: any): void {\n this.value = value\n this._cdr.detectChanges()\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n\n onDateChange(evt: Event) {\n const e = evt as CustomEvent\n\n this.value = e.detail.value\n\n this.valueChange.emit(e.detail.value)\n this.onChangeFn && this.onChangeFn(e.detail.value)\n }\n\n ngAfterViewInit(): void {\n this._cdr.detectChanges()\n }\n}\n\nexport function dateValidator(dates?: { min?: Date; max?: Date }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n if (!value) {\n return null\n }\n const newDate = new Date(value)\n const isValidDate = !isNaN(newDate.getTime())\n if (!isValidDate) {\n return { validDate: true }\n }\n\n const validMinDate = dates?.min ? newDate >= startOfDay(dates.min) : true\n const validMaxDate = dates?.max ? newDate <= endOfDay(dates.max) : true\n\n if (!validMinDate && dates?.min) {\n return {\n validDate: {\n minDate: startOfDay(dates.min),\n actualDate: newDate,\n },\n }\n }\n if (!validMaxDate && dates?.max) {\n return {\n validDate: {\n maxDate: endOfDay(dates.max),\n actualDate: newDate,\n },\n }\n }\n\n return null\n }\n}\n","<div class=\"form-group\">\n <gds-datepicker\n *nggCoreElement\n [attr.id]=\"id\"\n [label]=\"label\"\n [value]=\"value\"\n (change)=\"onDateChange($event)\"\n [invalid]=\"isValid === false\"\n [min]=\"min\"\n [max]=\"max\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [dateformat]=\"dateFormat\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [disabledWeekends]=\"disabledWeekends\"\n [disabledDates]=\"disabledDates\"\n >\n <span slot=\"message\">\n <ng-content select=\"[data-form-info]\"></ng-content>\n </span>\n </gds-datepicker>\n</div>\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDatepickerComponent } from './datepicker.component'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [NggDatepickerComponent],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [NggDatepickerComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggDatepickerModule {}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownOption]',\n})\nexport class NggDropdownOptionDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[nggDropdownButton]',\n})\nexport class NggDropdownButtonDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport {\n ControlValueAccessor,\n NgControl,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms'\n\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\n\nimport '@sebgroup/green-core/components/dropdown/index.js'\nimport type {\n GdsDropdown,\n GdsOption,\n} from '@sebgroup/green-core/components/dropdown/index.js'\n\nimport * as DropdownTransStyles from '@sebgroup/green-core/components/dropdown/dropdown.trans.styles.js'\n\nexport type CompareWith<T = any> = (o1: T, o2: T) => boolean\nexport type SearchFilter<T = any> = (search: string, value: T) => boolean\nexport type DropdownPlacements = 'bottom-start' | 'top-start'\nexport interface DropdownTexts {\n select?: string\n selected?: string\n placeholder?: string\n searchPlaceholder?: string\n close?: string\n optionsDescription?: string\n}\nexport interface DropdownOption {\n label?: string\n value?: any\n selected?: boolean\n heading?: boolean\n [key: string]: any\n}\n\n@Component({\n selector: 'ngg-dropdown',\n templateUrl: 'dropdown.component.html',\n styleUrls: ['dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggDropdownComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggDropdownComponent implements ControlValueAccessor, OnInit {\n @Input() id?: string\n @Input() texts?: DropdownTexts\n @Input() loop?: boolean = false\n @Input() display = 'label'\n @Input() useValue = 'value'\n @Input() label?: string\n @Input() valid?: boolean\n @Input() invalid?: boolean\n @Input() compareWith?: CompareWith\n @Input() searchFilter?: SearchFilter\n @Input() syncPopoverWidth?: boolean\n @Input() size?: 'small' | 'medium'\n @Input() hideLabel?: boolean\n @Input() maxHeight?: number = 500\n @Input() disableMobileStyles?: boolean\n\n /** @deprecated */\n @Input() fixedPlacement?: DropdownPlacements\n\n //\n @Input() set options(value: DropdownOption[] | undefined) {\n this._options = value\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get options(): DropdownOption[] | undefined {\n return this._options\n }\n private _options: DropdownOption[] | undefined\n\n //\n @Input() set multiSelect(value: string | boolean) {\n this._multiSelect = this.convertToBoolean(value)\n }\n get multiSelect(): boolean {\n return this._multiSelect\n }\n private _multiSelect = false\n\n //\n @Input() set searchable(value: string | boolean) {\n this._searchable = this.convertToBoolean(value)\n }\n get searchable(): boolean {\n return this._searchable\n }\n private _searchable = false\n\n //\n @Input() set value(newValue: any) {\n if (!this.options) return\n\n this._value = newValue\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n get value(): any {\n return this._value\n }\n private _value: DropdownOption | DropdownOption[] | undefined\n\n //\n get selectedOption() {\n return Array.isArray(this.value)\n ? this.value.map((v: any) => this.optionByValue(v))\n : this.optionByValue(this.value)\n }\n\n onChangeFn?: (value: unknown) => void\n onTouchedFn?: () => void\n\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>()\n @Output() readonly touched: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n\n @ContentChild(NggDropdownOptionDirective)\n customOption?: NggDropdownOptionDirective\n\n @ContentChild(NggDropdownButtonDirective)\n customButton?: NggDropdownButtonDirective\n\n @ViewChild('gdsDropdown', { static: false }) gdsDropdown?: ElementRef\n\n public onValueChange: (event: Event) => void = (event) => {\n const target = event.target as GdsDropdown<DropdownOption>\n this._value = target.value\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n\n this.onChangeFn?.(this.value)\n this.valueChange.emit(this.value)\n\n this._cdr.detectChanges()\n }\n\n get control(): NgControl | undefined {\n return this.injector.get(NgControl)\n }\n\n constructor(\n @Inject(Injector) private injector: Injector,\n private _cdr: ChangeDetectorRef,\n ) {\n DropdownTransStyles.register()\n }\n\n ngOnInit(): void {\n if (!this._value) {\n if (this.multiSelect)\n this._value = this.options\n ?.filter((o) => o.selected === true)\n ?.map((o) => o[this.useValue])\n else\n this._value = this.options?.find((o) => o.selected === true)?.[\n this.useValue\n ]\n\n this.texts = {\n ...this.texts,\n select: this.displayTextByValue(this._value),\n }\n }\n\n this.texts = {\n close: this.texts?.close ?? 'Close',\n optionsDescription: this.texts?.optionsDescription ?? 'Options',\n placeholder: this.texts?.placeholder ?? 'Select',\n searchPlaceholder: this.texts?.searchPlaceholder ?? 'Search',\n selected: this.texts?.selected ?? 'selected',\n select: this.displayTextByValue(this._value),\n }\n }\n\n writeValue(value: any): void {\n this.value = value\n this._cdr.detectChanges()\n }\n\n registerOnChange(fn: () => unknown): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedFn = fn\n }\n\n // These adapter functions are used to maintain backwards compatibility with the old interface\n compareWithAdapter = (o1: any, o2: any) => {\n const compareFn = this.compareWith || ((a, b) => a === b)\n return compareFn(o1, o2)\n }\n searchFilterAdapter = (q: string, o: GdsOption) => {\n if (this.searchFilter) return this.searchFilter(q, o.value)\n else\n return ((q: string, o: GdsOption) =>\n o.innerHTML.toLowerCase().includes(q.toLowerCase()))(q, o)\n }\n\n private convertToBoolean(value: string | boolean): boolean {\n return (\n value === '' || value === 'true' || value.toString() === 'true' || false\n )\n }\n\n private optionByValue = (value: any) => {\n return this.options?.find((o) => o[this.useValue] === value)\n }\n\n private displayTextByValue = (value: any) => {\n if (!Array.isArray(value))\n return (\n this.optionByValue(value)?.[this.display] ||\n (this.texts?.placeholder ?? 'Select')\n )\n\n const displayValues = value.map(\n (v) => this.optionByValue(v)?.[this.display],\n )\n return displayValues?.length > 2\n ? `${displayValues.length} ${this.texts?.selected} `\n : displayValues?.join(', ') || (this.texts?.placeholder ?? 'Select')\n }\n}\n","<div class=\"form-group\">\n <gds-dropdown\n *nggCoreElement\n #gdsDropdown\n [value]=\"value\"\n [searchable]=\"searchable\"\n [label]=\"label\"\n (change)=\"onValueChange($event)\"\n [multiple]=\"multiSelect\"\n [invalid]=\"invalid\"\n [compareWith]=\"compareWithAdapter\"\n [searchFilter]=\"searchFilterAdapter\"\n [syncPopoverWidth]=\"syncPopoverWidth\"\n [size]=\"size\"\n [hideLabel]=\"hideLabel\"\n [maxHeight]=\"maxHeight\"\n [disableMobileStyles]=\"disableMobileStyles\"\n >\n <span slot=\"message\" #formInfo\n ><ng-content select=\"[data-form-info]\"></ng-content\n ></span>\n\n <span slot=\"trigger\"\n ><ng-container\n *ngTemplateOutlet=\"\n customButton?.templateRef && selectedOption\n ? customButton!.templateRef\n : defaultButton;\n context: { option: selectedOption }\n \"\n ></ng-container\n ></span>\n\n <ng-container *ngFor=\"let option of options; let index = index\">\n <ng-container *ngIf=\"!option.heading; else optionHeading\">\n <gds-option *nggCoreElement [value]=\"option[useValue]\"\n ><ng-container\n *ngTemplateOutlet=\"\n customOption?.templateRef\n ? customOption!.templateRef\n : defaultOption;\n context: { option: option, index: index }\n \"\n ></ng-container\n ></gds-option>\n </ng-container>\n <ng-template #optionHeading>\n <gds-menu-heading *nggCoreElement>{{ option.label }}</gds-menu-heading>\n </ng-template>\n </ng-container>\n </gds-dropdown>\n</div>\n\n<ng-template #defaultButton let-selected=\"option\">\n <span class=\"trigger\">{{ texts?.select }}</span>\n</ng-template>\n\n<ng-template #defaultOption let-option=\"option\">\n {{ display ? option[display] : option.name }}\n</ng-template>\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggDropdownComponent } from './dropdown.component'\nimport { NggDropdownOptionDirective } from './dropdown-option.directive'\nimport { NggDropdownButtonDirective } from './dropdown-button.directive'\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\n\n@NgModule({\n declarations: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n imports: [CommonModule, NggCoreWrapperModule],\n exports: [\n NggDropdownComponent,\n NggDropdownOptionDirective,\n NggDropdownButtonDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggDropdownModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core'\n\n@Component({\n selector: 'ngg-in-page-wizard-step-card',\n templateUrl: './in-page-wizard-step-card.component.html',\n})\nexport class NggInPageWizardStepCardComponent {\n @Output()\n readonly handleNextClick: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n\n @Output()\n readonly handleEditClick: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n\n @Input() public stepText = ''\n\n @Input() public title = ''\n\n @Input() public editBtnText = ''\n\n @Input() public nextBtnText = ''\n\n @Input() public isCompleted = false\n\n @Input() public disableNext = false\n\n @Input() public isActive = false\n\n handleOnEditBtnClick(event: MouseEvent): void {\n this.isActive = !this.isActive\n this.handleEditClick.emit(event)\n }\n handleOnNextBtnClick(event: MouseEvent) {\n this.isActive = false\n this.isCompleted = true\n this.handleNextClick.emit(event)\n }\n}\n","<section\n class=\"gds-in-page-wizard-step-card card\"\n data-testid=\"in-page-wizard-step-card-root\"\n [class.active]=\"!!isActive\"\n [class.completed]=\"!!isCompleted\"\n>\n <header class=\"gds-in-page-wizard-step-card__header\">\n <div class=\"gds-in-page-wizard-step-card__header__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) -->\n <path\n d=\"M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z\"\n />\n </svg>\n </div>\n <div\n class=\"gds-in-page-wizard-step-card__header__progress\"\n data-testid=\"in-page-wizard-step-card-step-text\"\n >\n {{ stepText }}\n </div>\n <div\n class=\"gds-in-page-wizard-step-card__header__title\"\n data-testid=\"in-page-wizard-step-card-title\"\n >\n <h2 class=\"h4\">{{ title }}</h2>\n </div>\n\n <div\n class=\"gds-in-page-wizard-step-card__header__edit\"\n *ngIf=\"isCompleted && !isActive\"\n >\n <button\n class=\"secondary small\"\n (click)=\"handleOnEditBtnClick($event)\"\n data-testid=\"in-page-wizard-step-card-edit-btn\"\n >\n {{ editBtnText }}\n </button>\n </div>\n </header>\n\n <div\n class=\"gds-in-page-wizard-step-card__content\"\n *ngIf=\"!!isActive || !!isCompleted\"\n data-testid=\"in-page-wizard-step-card-content\"\n >\n <ng-content></ng-content>\n </div>\n <footer class=\"gds-in-page-wizard-step-card__footer\" *ngIf=\"isActive\">\n <button\n class=\"primary\"\n [disabled]=\"disableNext\"\n (click)=\"handleOnNextBtnClick($event)\"\n data-testid=\"in-page-wizard-step-card-next-btn\"\n >\n {{ nextBtnText }}\n </button>\n </footer>\n</section>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggInPageWizardStepCardComponent } from './in-page-wizard-step-card.component'\n\n@NgModule({\n declarations: [NggInPageWizardStepCardComponent],\n imports: [CommonModule],\n exports: [NggInPageWizardStepCardComponent],\n})\nexport class NggInPageWizardModule {}\n","import { Directive, ViewContainerRef } from '@angular/core'\n\n@Directive({\n selector: '[nggModalHeader]',\n})\nexport class NggModalHeaderDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Directive, ViewContainerRef } from '@angular/core'\n\n@Directive({\n selector: '[nggModalFooter]',\n})\nexport class NggModalFooterDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport {\n trigger,\n query,\n style,\n animate,\n transition,\n group,\n} from '@angular/animations'\nimport { ModalType, Size } from '@sebgroup/extract'\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y'\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'\nimport { NggModalHeaderDirective } from './modal-header.directive'\nimport { NggModalFooterDirective } from './modal-footer.directive'\n\n@Component({\n selector: 'ngg-modal',\n styleUrls: ['./modal.component.scss'],\n templateUrl: './modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('modalAnimation', [\n transition(':enter', [\n query('aside', style({ transform: 'translateX(100%)' }), {\n optional: true,\n }),\n query('.backdrop, [role=dialog]', style({ opacity: '0' }), {\n optional: true,\n }),\n group([\n query(\n 'aside',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(0)' }),\n ),\n { optional: true },\n ),\n query(\n '.backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '1' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n transition(':leave', [\n query('aside', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query(\n 'aside',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(100%)' }),\n ),\n { optional: true },\n ),\n query(\n '.backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '0' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NggModalComponent implements OnDestroy, OnInit {\n @Input() public modalType?: ModalType\n @Input() public header?: string\n @Input() public confirmLabel?: string\n @Input() public dismissLabel?: string\n @Input() public size?: Size\n @Input() public hideHeader?: boolean\n @Input() public hideFooter?: boolean\n @Input() public disableBodyScroll?: boolean = true\n @Input() public get trapFocus(): boolean | undefined {\n return this._trapFocus\n }\n public set trapFocus(value: boolean | undefined) {\n this._trapFocus = value\n\n if (value) {\n if (this._isOpen) {\n this.enableFocusTrap()\n }\n } else {\n this.disableFocusTrap()\n }\n }\n\n @Input()\n public get isOpen(): boolean | undefined {\n return this._isOpen\n }\n public set isOpen(value: boolean | undefined) {\n this._isOpen = value\n\n if (value) {\n if (this.trapFocus) {\n this.enableFocusTrap()\n }\n\n if (this.disableBodyScroll) {\n disableBodyScroll(this.ref.nativeElement, {\n allowTouchMove: (el) => {\n // Allow touchmove for elements inside modal, its required for scroll to work on iOS devices\n return this.ref.nativeElement.contains(el)\n },\n })\n }\n } else {\n this.disableFocusTrap()\n if (this.disableBodyScroll) {\n enableBodyScroll(this.ref.nativeElement)\n }\n }\n }\n\n @Output() public isOpenChange: EventEmitter<boolean> =\n new EventEmitter<boolean>()\n @Output() public closed: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n @Output() public confirm: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n @Output() public dismiss: EventEmitter<MouseEvent> =\n new EventEmitter<MouseEvent>()\n\n @HostBinding('class.open') get open() {\n return this.isOpen\n }\n @ViewChild('backdrop') private backdropRef?: ElementRef<HTMLInputElement>\n @ContentChild(NggModalHeaderDirective)\n public modalHeaderContent?: NggModalHeaderDirective\n @ContentChild(NggModalFooterDirective)\n public modalFooterContent?: NggModalFooterDirective\n private _isOpen?: boolean\n private _trapFocus?: boolean\n private configurableFocusTrap: ConfigurableFocusTrap\n\n constructor(\n private ref: ElementRef<HTMLElement>,\n private configurableFocusTrapFactory: ConfigurableFocusTrapFactory,\n ) {\n this.configurableFocusTrap = this.configurableFocusTrapFactory.create(\n this.ref.nativeElement,\n )\n }\n\n ngOnInit(): void {\n if (this._isOpen && this.trapFocus) this.enableFocusTrap()\n else this.disableFocusTrap()\n }\n\n public handleCloseClick(event: MouseEvent) {\n this.closeModal(event)\n }\n\n public handleBackdropClick(event: MouseEvent) {\n if (event.target == this.backdropRef?.nativeElement) this.closeModal(event)\n }\n\n public handleDismiss(event: MouseEvent) {\n this.dismiss.emit(event)\n }\n\n public handleConfirm(event: MouseEvent) {\n this.confirm.emit(event)\n }\n\n private closeModal(event: MouseEvent) {\n if (this.closed.observers.length > 0) {\n this.closed.emit(event)\n } else {\n this.isOpen = false\n this.isOpenChange.emit(this.isOpen)\n }\n }\n\n private enableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = true\n this.configurableFocusTrap.focusInitialElementWhenReady()\n }\n }\n\n private disableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = false\n }\n }\n\n ngOnDestroy(): void {\n this.configurableFocusTrap?.destroy()\n enableBodyScroll(this.ref.nativeElement)\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-header]',\n styleUrls: ['./modal.component.scss'],\n template: `\n <h3 data-testid=\"modal-header-text\">{{ header }}</h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.handleClose($event)\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n `,\n})\nexport class NggModalHeaderComponent {\n @Input() header?: string\n @Output() closed: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>()\n\n handleClose(event: MouseEvent) {\n this.closed.emit(event)\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-body]',\n styleUrls: ['./modal.component.scss'],\n template: `<ng-content></ng-content>`,\n})\nexport class NggModalBodyComponent {}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[ngg-modal-footer]',\n styleUrls: ['./modal.component.scss'],\n template: `\n <button\n data-testid=\"modal-dismiss-button\"\n *ngIf=\"dismissLabel\"\n class=\"secondary\"\n (click)=\"this.handleDismiss($event)\"\n >\n {{ dismissLabel }}\n </button>\n <button\n data-testid=\"modal-confirm-button\"\n *ngIf=\"confirmLabel\"\n class=\"primary\"\n (click)=\"this.handleConfirm($event)\"\n >\n {{ confirmLabel }}\n </button>\n `,\n})\nexport class NggModalFooterComponent {\n @Input() dismissLabel?: string\n @Input() confirmLabel?: string\n @Output() dismiss: EventEmitter<MouseEvent> = new EventEmitter()\n @Output() confirm: EventEmitter<MouseEvent> = new EventEmitter()\n\n handleDismiss(event: MouseEvent) {\n this.dismiss.emit(event)\n }\n\n handleConfirm(event: MouseEvent) {\n this.confirm.emit(event)\n }\n}\n","<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <div class=\"gds-dialog-wrapper\" [@modalAnimation]>\n <aside\n data-testid=\"modal\"\n *ngSwitchCase=\"'slideout'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main\n data-testid=\"modal\"\n *ngSwitchCase=\"'takeover'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section\n data-testid=\"modal\"\n *ngSwitchDefault\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header\n *ngIf=\"!modalHeaderContent; else headerContentTemplate\"\n ngg-modal-header\n data-testid=\"modal-header\"\n [header]=\"header\"\n (closed)=\"this.handleCloseClick($event)\"\n ></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer\n *ngIf=\"!modalFooterContent; else footerContentTemplate\"\n ngg-modal-footer\n data-testid=\"modal-footer\"\n [dismissLabel]=\"dismissLabel\"\n [confirmLabel]=\"confirmLabel\"\n (dismiss)=\"this.handleDismiss($event)\"\n (confirm)=\"this.handleConfirm($event)\"\n ></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div\n #backdrop\n data-testid=\"modal-backdrop\"\n class=\"backdrop entered\"\n (click)=\"this.handleBackdropClick($event)\"\n [attr.aria-hidden]=\"true\"\n ></div>\n </div>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { A11yModule } from '@angular/cdk/a11y'\nimport {\n NggModalBodyComponent,\n NggModalComponent,\n NggModalFooterComponent,\n NggModalHeaderComponent,\n} from './modal.component'\nimport { NggModalHeaderDirective } from './modal-header.directive'\nimport { NggModalFooterDirective } from './modal-footer.directive'\n\nconst DECLARATIONS = [\n NggModalComponent,\n NggModalHeaderComponent,\n NggModalBodyComponent,\n NggModalFooterComponent,\n NggModalHeaderDirective,\n NggModalFooterDirective,\n]\n\nconst EXPORTS = [\n NggModalComponent,\n NggModalHeaderDirective,\n NggModalFooterDirective,\n]\n\n@NgModule({\n imports: [A11yModule, CommonModule],\n exports: EXPORTS,\n declarations: DECLARATIONS,\n})\nexport class NggModalModule {}\n","import { Component, HostBinding, Input } from '@angular/core'\nimport {\n calculateDegrees,\n ProgressCircleThemes,\n randomId,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-progress-circle',\n templateUrl: './progress-circle.component.html',\n})\nexport class NggProgressCircleComponent {\n @HostBinding('style.--start-value') private _startValue = '0deg'\n @HostBinding('style.--end-value') private _endValue = '0deg'\n\n /** id of the progress circle */\n @Input() id?: string = `${randomId()}-progress-circle`\n /** theme of the progress circle */\n @Input() theme: ProgressCircleThemes = 'warning'\n /** progress circle value in percentage */\n @Input() set value(val: number) {\n const degrees = `${calculateDegrees(val)}deg`\n this._endValue = degrees\n if (this.theme === 'disabled') {\n this._startValue = degrees\n }\n }\n}\n","<div\n class=\"gds-progress-circle\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"id\"\n>\n <div class=\"ring full-ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"ring\">\n <div class=\"ring-progress\" [ngClass]=\"theme\"></div>\n </div>\n <div class=\"inner-circle\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggProgressCircleComponent } from './progress-circle.component'\n\n@NgModule({\n declarations: [NggProgressCircleComponent],\n imports: [CommonModule],\n exports: [NggProgressCircleComponent],\n})\nexport class NggProgressCircleModule {}\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core'\nimport { Observable } from 'rxjs'\nexport interface SegmentedControl {\n url: string\n text: Observable<string> | string\n}\n@Component({\n selector: 'ngg-segmented-control',\n template: `\n <div class=\"group\">\n <a\n *ngFor=\"let control of $controls | async\"\n [routerLink]=\"control.url\"\n routerLinkActive=\"active\"\n class=\"button\"\n >{{ control.text }}</a\n >\n </div>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSegmentedControlComponent {\n @Input() $controls: Observable<Array<SegmentedControl>> | undefined\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { NggSegmentedControlComponent } from './segmented-control.component'\nimport { RouterModule } from '@angular/router'\n\n@NgModule({\n declarations: [NggSegmentedControlComponent],\n imports: [RouterModule, CommonModule],\n exports: [NggSegmentedControlComponent],\n})\nexport class NggSegmentedControlModule {}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n} from '@angular/core'\nimport { Subject, fromEvent, interval } from 'rxjs'\nimport { takeUntil, throttle } from 'rxjs/operators'\n\nexport const ON_SCROLL_TOKEN = new InjectionToken<string>('ON_SCROLL_TOKEN')\n\n@Directive({\n selector: '[nggOnScroll]',\n providers: [\n {\n provide: ON_SCROLL_TOKEN,\n useFactory: (component: NggOnScrollDirective): Subject<unknown> =>\n component?.onScroll$,\n deps: [NggOnScrollDirective],\n },\n ],\n})\nexport class NggOnScrollDirective implements AfterViewInit, OnDestroy {\n onScroll$ = new Subject()\n destroy$ = new Subject()\n\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.elementRef) {\n fromEvent(this.elementRef?.nativeElement, 'scroll')\n .pipe(\n takeUntil(this.destroy$),\n throttle(() => interval(30)),\n )\n .subscribe(() => {\n this.onScroll$.next()\n })\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(null)\n this.destroy$.complete()\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggOnScrollDirective } from './on-scroll.directive'\n\n@NgModule({\n declarations: [NggOnScrollDirective],\n imports: [CommonModule],\n exports: [NggOnScrollDirective],\n})\nexport class NggSharedModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport {\n getSliderTrackBackground,\n randomId,\n sliderColors,\n} from '@sebgroup/extract'\n\ninterface SliderStyle {\n background?: string\n}\n\n@Component({\n selector: 'ngg-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NggSliderComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggSliderComponent\n implements ControlValueAccessor, OnInit, OnChanges\n{\n @Input() name = `${randomId()}-slider`\n @Input() min = 0\n @Input() max = 100\n @Input() step = 1\n @Input() label = ''\n @Input() instruction = ''\n @Input() placeholder = ''\n @Input() errorMessage = ''\n @Input() hasTextbox = false\n @Input() unitLabel = 'kr'\n @Input() disabled = false\n @Input() value = 0\n @Input() enterkeyhint?:\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send'\n\n @Output() sliderChange = new EventEmitter<number>()\n @Output() sliderTouch = new EventEmitter<boolean>()\n\n onChangeFn?: (val: number) => void\n onTouchedFn?: VoidFunction\n style: SliderStyle = {}\n\n ngOnInit(): void {\n this.setTrackBackground()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n ['min', 'max', 'value'].some((x: string) =>\n Object.prototype.hasOwnProperty.call(changes, x),\n )\n ) {\n this.setTrackBackground()\n }\n }\n\n onBlur(): void {\n this.sliderTouch.emit(true)\n this.onTouchedFn && this.onTouchedFn()\n }\n\n handleChange(): void {\n this.value = this.value ?? 0\n this.setTrackBackground()\n this.sliderChange.emit(this.value)\n this.onChangeFn && this.onChangeFn(this.value)\n }\n\n setTrackBackground(): void {\n if (this.disabled) {\n this.style.background = sliderColors.disabled\n return\n }\n\n const percent = ((this.value - this.min) / (this.max - this.min)) * 100\n this.style.background = getSliderTrackBackground(percent)\n }\n\n /** control value accessor functions */\n writeValue(val: number): void {\n if (this.value !== val) {\n this.value = val ?? 0\n this.handleChange()\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedFn = fn\n }\n}\n","<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\n\nimport { NggSliderComponent } from './slider.component'\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n exports: [NggSliderComponent],\n declarations: [NggSliderComponent],\n})\nexport class NggSliderModule {}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core'\nimport {\n CdkDragDrop,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop'\n\nexport interface SortableListItem {\n id: any\n name: string\n description?: string\n selected?: boolean\n hasCustomSuffix?: boolean\n}\n\nexport interface SortableListGroup {\n items: SortableListItem[]\n title: string\n description?: string\n}\n\n@Component({\n selector: 'ngg-sortable-list',\n templateUrl: './sortable-list.component.html',\n styleUrls: ['./sortable-list.component.scss'],\n})\nexport class NggSortableListComponent {\n @Input() groups: SortableListGroup[] = []\n @Input() shouldDisplayCheckboxes = false\n @Input() isReadOnly = false\n @Input() isDraggable = true\n @Input() description = ''\n @Input() suffixTemplate: TemplateRef<any> | null = null\n\n @Output() itemSelectionChanged = new EventEmitter<{\n changedItem: SortableListItem\n groups: SortableListGroup[]\n }>()\n @Output() itemOrderChanged = new EventEmitter<{\n previousIndex: [number, number]\n currentIndex: [number, number]\n groups: SortableListGroup[]\n }>()\n\n @ViewChild('sortableListGroups') sortableListGroups!: ElementRef\n\n focusedIndex: Record<number, number> = { 0: 0 }\n\n /**\n * Toggles the selection of a checklist item and updates its position in the list.\n *\n * @param item - The checklist item to update.\n */\n toggleSelection(item: SortableListItem) {\n item.selected = !item.selected\n this.emitCheckListItem(item)\n }\n\n /**\n * Handles the onDragDrop event.\n *\n * @param event - The drag and drop event.\n */\n onDragDrop(event: CdkDragDrop<SortableListItem[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n )\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex,\n )\n }\n\n this.emitItemOrderChanged(\n [Number(event.previousContainer.id), event.previousIndex],\n [Number(event.container.id), event.currentIndex],\n )\n }\n\n /**\n * Handles moving items up or down using the alt + arrow up or alt + arrow down keys.\n *\n * @param groupIndex - The index of the group.\n * @param currentItemIndex - The current index of the item.\n * @param newItemIndex - The new index of the item.\n */\n onAltArrowKeydown(\n groupIndex: number,\n currentItemIndex: number,\n newItemIndex: number,\n event: any,\n ) {\n event.preventDefault()\n\n let newIndex = newItemIndex\n let newGroupIndex = groupIndex\n let transfer = false\n\n if (newIndex > this.groups[groupIndex].items.length - 1) {\n newIndex = 0\n newGroupIndex = groupIndex + 1\n transfer = true\n this.focusedIndex[groupIndex] = this.groups[groupIndex].items.length - 2\n } else if (newIndex < 0) {\n newGroupIndex = groupIndex - 1\n newIndex = this.groups[newGroupIndex].items.length\n transfer = true\n this.focusedIndex[groupIndex] = 0\n }\n\n if (transfer) {\n transferArrayItem(\n this.groups[groupIndex].items,\n this.groups[newGroupIndex].items,\n currentItemIndex,\n newIndex,\n )\n } else {\n moveItemInArray(this.groups[groupIndex].items, currentItemIndex, newIndex)\n }\n\n this.emitItemOrderChanged(\n [groupIndex, currentItemIndex],\n [newGroupIndex, newIndex],\n )\n\n setTimeout(() => {\n this.focusItem(newGroupIndex, newIndex)\n })\n }\n\n /**\n * Handles focus by arrow keydown event.\n *\n * @param groupIndex - The index of the group.\n * @param itemIndex - The index of the item.\n * @param event - The keyboard event.\n */\n onArrowKeydown(groupIndex: number, itemIndex: number, event: Event) {\n event.preventDefault()\n setTimeout(() => {\n let gi = groupIndex\n\n if (itemIndex > this.groups[groupIndex].items.length - 1) {\n gi = groupIndex + 1\n itemIndex = 0\n }\n\n if (itemIndex < 0) {\n gi = groupIndex - 1\n if (gi < 0) {\n return\n }\n itemIndex = this.groups[gi].items.length - 1\n }\n\n this.focusItem(gi, itemIndex)\n })\n }\n\n /**\n * Emits the item order changed event.\n *\n * @param previousIndex - The previous index of the item.\n * @param currentIndex - The current index of the item.\n */\n private emitItemOrderChanged(\n previousIndex: [number, number],\n currentIndex: [number, number],\n ) {\n this.itemOrderChanged.emit({\n previousIndex,\n currentIndex,\n groups: [...this.groups],\n })\n }\n\n /**\n * Emits the selected checklist item through an event.\n *\n * @param item - The checklist item to emit.\n */\n private emitCheckListItem(item: SortableListItem) {\n this.itemSelectionChanged.emit({ changedItem: item, groups: this.groups })\n }\n\n /**\n * Focuses on a specific item in the sortable list.\n *\n * @param groupIndex - The index of the group.\n * @param itemIndex - The index of the item.\n */\n private focusItem(groupIndex: number, itemIndex: number): void {\n const groupElements =\n this.sortableListGroups.nativeElement.querySelectorAll('.item-list-group')\n\n if (groupElements && groupElements.length > groupIndex) {\n const itemElements = groupElements[groupIndex].querySelectorAll('.item')\n if (itemElements && itemElements.length > itemIndex) {\n if (this.shouldDisplayCheckboxes) {\n itemElements[itemIndex].querySelector('input').focus()\n } else {\n itemElements[itemIndex].focus()\n }\n this.focusedIndex[groupIndex] = itemIndex\n }\n }\n }\n\n /**\n * Checks if an item has focus.\n *\n * @param groupIndex - The index of the group.\n * @param itemIndex - The index of the item.\n */\n itemHasFocus(groupIndex: number, itemIndex: number) {\n if (!this.focusedIndex[groupIndex]) {\n this.focusedIndex[groupIndex] = 0\n }\n return this.focusedIndex[groupIndex] === itemIndex\n }\n}\n","<div class=\"item-list\">\n <ng-container>\n <p class=\"item-list-header\">\n <span class=\"item-list-header-title\">{{ description }}</span>\n </p>\n <div #sortableListGroups cdkDropListGroup>\n <div\n *ngFor=\"let group of groups; let g_i = index\"\n class=\"item-list-group\"\n [class.drag-enabled]=\"isDraggable && !isReadOnly\"\n role=\"list\"\n cdkDropList\n [cdkDropListData]=\"group.items\"\n [id]=\"g_i.toString()\"\n (cdkDropListDropped)=\"onDragDrop($event)\"\n >\n <p\n *ngIf=\"group.title && group.title.length > 0\"\n class=\"item-list-header\"\n >\n <span class=\"item-list-header-title\">{{ group.title }}</span>\n </p>\n <p\n *ngIf=\"group.description && group.description.length > 0\"\n class=\"item-list-header-description\"\n >\n {{ group.description }}\n </p>\n <div\n *ngFor=\"let checklistItem of group.items; let i = index\"\n [cdkDragDisabled]=\"!isDraggable || isReadOnly\"\n [cdkDragData]=\"checklistItem\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n class=\"item-box\"\n role=\"listitem\"\n >\n <div *cdkDragPlaceholder class=\"item-custom-placeholder\"></div>\n <label\n (keydown.alt.arrowDown)=\"onAltArrowKeydown(g_i, i, i + 1, $event)\"\n (keydown.alt.arrowUp)=\"onAltArrowKeydown(g_i, i, i - 1, $event)\"\n (keydown.arrowDown)=\"onArrowKeydown(g_i, i + 1, $event)\"\n (keydown.arrowUp)=\"onArrowKeydown(g_i, i - 1, $event)\"\n class=\"form-control item-control align-items-center item\"\n [tabindex]=\"shouldDisplayCheckboxes ? '-1' : '0'\"\n >\n <div class=\"form-control\">\n <input\n (change)=\"toggleSelection(checklistItem)\"\n [checked]=\"checklistItem.selected\"\n [disabled]=\"isReadOnly\"\n [type]=\"shouldDisplayCheckboxes ? 'checkbox' : 'hidden'\"\n />\n <div class=\"item-box-title\">\n <span name=\"agendaItemName\"\n >{{ checklistItem.name }}\n <span\n *ngIf=\"checklistItem.hasCustomSuffix\"\n class=\"item-list-suffix\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n suffixTemplate;\n context: { $implicit: checklistItem }\n \"\n class=\"user-icon\"\n >\n </ng-container>\n </span>\n </span>\n <br />\n <span *ngIf=\"!!checklistItem.description\">\n <span class=\"item-list-suffix\" name=\"agendaItemToolTip\">\n {{ checklistItem.description }}\n </span>\n <br />\n </span>\n </div>\n <i></i>\n </div>\n <div *ngIf=\"isDraggable && !isReadOnly\" class=\"item-grip-icon\">\n <i class=\"sg-icon sg-icon-grip-vertical text-primary\"></i>\n </div>\n </label>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\nimport { NggSortableListComponent } from './sortable-list.component'\nimport { DragDropModule } from '@angular/cdk/drag-drop'\n\n@NgModule({\n imports: [CommonModule, FormsModule, DragDropModule],\n exports: [NggSortableListComponent],\n declarations: [NggSortableListComponent],\n})\nexport class NggSortableListModule {}\n","import {\n Directive,\n ElementRef,\n Input,\n SimpleChanges,\n OnChanges,\n OnInit,\n} from '@angular/core'\n\n@Directive({\n selector: '[nggSlidingUnderline]',\n})\nexport class SlidingUnderlineDirective implements OnInit, OnChanges {\n constructor(private element: ElementRef<HTMLElement>) {}\n\n @Input() public nggSlidingUnderline: any\n @Input() public key?: any\n @Input() public disabled?: boolean\n\n ngOnInit(): void {\n if (this.element?.nativeElement) {\n this.element.nativeElement.classList.add('slider')\n\n this.element.nativeElement.addEventListener('animationend', () => {\n this.element.nativeElement.classList.remove(\n 'left',\n 'slider-positive',\n 'slider-negative',\n )\n })\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.disabled) {\n if (\n changes.slidingUnderline &&\n changes.key &&\n !changes.slidingUnderline.isFirstChange() &&\n !changes?.key?.isFirstChange()\n ) {\n if (changes.key.currentValue === changes.key.previousValue) {\n this.addAnimation(\n changes.slidingUnderline.currentValue,\n changes.slidingUnderline.previousValue,\n )\n }\n } else {\n if (\n changes.slidingUnderline &&\n !changes.slidingUnderline.isFirstChange()\n ) {\n this.addAnimation(\n changes.slidingUnderline.currentValue,\n changes.slidingUnderline.previousValue,\n )\n }\n }\n }\n }\n\n addAnimation(current: any, previous: any) {\n if (current > previous)\n this.element.nativeElement.classList.add('slider-positive')\n else this.element.nativeElement.classList.add('slider-negative')\n this.element.nativeElement.classList.add('left')\n }\n}\n","import { Component, Input } from '@angular/core'\nimport { TableHeaderListValueType } from './cell-table.types'\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[nggCellTableItem]',\n template: `\n <ng-container [ngSwitch]=\"valueType\">\n <span *ngSwitchCase=\"'string'\">{{ row || '–' }}</span>\n <span *ngSwitchCase=\"'number'\">{{ (row | number) || '–' }}</span>\n <span *ngSwitchCase=\"'datetime'\">{{\n (row | date: 'HH:mm:ss') || '–'\n }}</span>\n <span *ngSwitchCase=\"'date'\">{{\n (row | date: 'YYYY-MM-dd') || '–'\n }}</span>\n <span\n *ngSwitchCase=\"'custom-html'\"\n [innerHtml]=\"transformHTML(row) || '–'\"\n ></span>\n <span *ngSwitchCase=\"'sign'\" [ngClass]=\"getSignColor(row)\">{{\n row || '–'\n }}</span>\n <span *ngSwitchCase=\"'pct'\">{{ row || '–' }}</span>\n <span *ngSwitchCase=\"'streamSign'\" [nggSlidingUnderline]=\"row\">{{\n row || '–'\n }}</span>\n <span *ngSwitchDefault>–</span>\n </ng-container>\n `,\n})\nexport class CellTableItemComponent {\n @Input() row: any\n @Input() valueType: TableHeaderListValueType = 'string'\n @Input() id = ''\n\n constructor(private sanitizer: DomSanitizer) {}\n\n getSignColor = (value: string | number) => {\n if (/[−-]/.test(String(value))) return 'text-danger'\n else if (/[1-9]/.test(String(value))) return 'text-success'\n return ''\n }\n\n transformHTML(value: string): SafeHtml {\n if (value && value.length) {\n return this.sanitizer.bypassSecurityTrustHtml(value)\n } else {\n return ''\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren,\n} from '@angular/core'\nimport {\n TableHeaderListItem,\n TableHeaderListValueType,\n TableRow,\n} from './cell-table.types'\n\n@Component({\n selector: 'ngg-cell-table',\n templateUrl: './cell-table.component.html',\n styleUrls: ['./cell-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggCellTableComponent {\n @ViewChildren('items') items: QueryList<ElementRef> =\n new QueryList<ElementRef>()\n\n /** Cell min-width to force same width on small screens */\n @Input() minWidth?: number\n\n /** Make the most left element wrap */\n @Input() overflowReverse = false\n\n /** Element class name */\n @Input() className?: string\n\n /** List of table headers */\n @Input() headerList: TableHeaderListItem[] = []\n\n /** List of data */\n @Input() rows: TableRow[] = []\n\n /** Make rows clickable and add arrow to the right */\n @Input() clickableRows = false\n\n /** Label for the chevron of clickable rows */\n @Input() clickLabel = 'View details'\n\n /** Callback when a row is clicked */\n @Output() rowClicked: EventEmitter<TableRow> = new EventEmitter()\n\n // ------------- EVENTS ------------------\n /**\n * handles the logic for when a row is clicked\n * @param {TableRowClickedEvent} value the TableRowClickedEvent\n */\n handleClickRow = (value: TableRow): void => {\n if (this.clickableRows) this.rowClicked.emit(value)\n }\n\n getValueTypeFromMain = (): TableHeaderListValueType => {\n const getMain = this.headerList.find((x) => x.main)\n if (getMain) return getMain.valueType || ''\n return ''\n }\n\n getTableHeaderListValueFromNonMain = (\n header: TableHeaderListItem,\n ): TableHeaderListValueType => {\n if (header.valueType) return header.valueType || ''\n return ''\n }\n\n mainHeader = (row: TableRow) => {\n const getMain = this.headerList.find((x) => x.main)\n if (row && getMain) {\n return {\n value: row[getMain.tableKeySelector],\n valueType: getMain.valueType || 'string',\n tableKeySelector: getMain.tableKeySelector,\n }\n }\n return {\n value: '-',\n valueType: 'string',\n tableKeySelector: '-',\n }\n }\n\n headerNoneMain = (headers: TableHeaderListItem[]) => {\n if (this.overflowReverse) return headers.filter((x) => !x.main).reverse()\n return headers.filter((x) => !x.main)\n }\n\n getTableKeySelector = (row: TableRow) => {\n return this.mainHeader(row).tableKeySelector + row.rowId\n }\n\n // ------- TRACKBY FOR STREAM ------------\n trackByrowId(_: any, b: TableRow) {\n return b.rowId\n }\n KeySelector(_: any, b: TableHeaderListItem) {\n return b.tableKeySelector\n }\n}\n","<div #targetElement role=\"table\" [ngClass]=\"className\">\n <div class=\"cell-table-table d-flex flex-column\">\n <div\n *ngFor=\"let row of rows; trackBy: trackByrowId\"\n (click)=\"handleClickRow(row)\"\n class=\"cell-table--row-wrapper\"\n role=\"rowgroup\"\n [class.is-clickable]=\"clickableRows\"\n >\n <div>\n <div #items [class.overflow-reverse]=\"overflowReverse\">\n <!-- Main header -->\n <div role=\"row\">\n <div\n nggCellTableItem\n [row]=\"mainHeader(row).value\"\n [valueType]=\"getValueTypeFromMain()\"\n [attr.valueType]=\"getValueTypeFromMain()\"\n [attr.id]=\"getTableKeySelector(row)\"\n role=\"rowheader\"\n aria-rowspan=\"3\"\n aria-colspan=\"3\"\n ></div>\n </div>\n <div role=\"row\">\n <div class=\"d-flex\">\n <!-- Sub Header -->\n <div\n nggCellTableItem\n class=\"sub-header py-0 fw-bold\"\n [row]=\"header.label\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n role=\"columnheader\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n\n <div role=\"row\">\n <!-- Sub Values -->\n <div class=\"d-flex\">\n <div\n nggCellTableItem\n class=\"sub-value py-0\"\n [row]=\"row[header.tableKeySelector]\"\n [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n [attr.valueType]=\"header.valueType\"\n role=\"cell\"\n *ngFor=\"\n let header of headerNoneMain(headerList);\n trackBy: KeySelector\n \"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"clickableRows\"\n role=\"row\"\n class=\"d-grid align-items-center ms-4 me-4 cell-table--arrow-container\"\n >\n <div role=\"cell\">\n <div\n role=\"button\"\n [attr.aria-label]=\"clickLabel\"\n tabindex=\"0\"\n [attr.aria-describedby]=\"getTableKeySelector(row)\"\n (keydown.enter)=\"handleClickRow(row)\"\n >\n <svg\n data-prefix=\"far\"\n data-icon=\"chevron-right\"\n class=\"svg-inline--fa fa-chevron-right fa-w-10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n >\n <path\n fill=\"currentColor\"\n d=\"M113.3 47.41l183.1 191.1c4.469 4.625 6.688 10.62 6.688 16.59s-2.219 11.97-6.688 16.59l-183.1 191.1c-9.152 9.594-24.34 9.906-33.9 .7187c-9.625-9.125-9.938-24.38-.7187-33.91l168-175.4L78.71 80.6c-9.219-9.5-8.906-24.78 .7187-33.91C88.99 37.5 104.2 37.82 113.3 47.41z\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NggCellTableComponent } from './cell-table.component'\nimport { CellTableItemComponent } from './cell-table-item.component'\nimport { SlidingUnderlineDirective } from './cell-underline.directive'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggCellTableComponent],\n declarations: [\n NggCellTableComponent,\n CellTableItemComponent,\n SlidingUnderlineDirective,\n ],\n})\nexport class NggCellTableModule {}\n","export default class Table {\n constructor(table: { data: TableRow[]; header: TableHeaderListItem[] }) {\n this.data = table.data\n this.header = table.header\n }\n data: TableRow[]\n header: TableHeaderListItem[]\n}\n\n/** The type of a data the values in a column represent */\nexport type TableHeaderListValueType =\n | 'number'\n | 'string'\n | 'date'\n | 'datetime'\n | 'bool'\n | 'custom-html'\n | 'sign'\n | 'streamSign'\n | ''\n\n/** Table Header List Item Interface */\nexport interface TableHeaderListItem<\n T extends Record<string, unknown> = Record<string, unknown>,\n> {\n /** The label displayed */\n label: string\n /** the key selector corresponding to to the TableList Item which this column is targeting */\n // tableKeySelector: keyof T;\n tableKeySelector: string\n /** the type of value: string, date or number */\n valueType?: TableHeaderListValueType\n\n /** the main field for stacked table */\n main?: boolean\n}\n\nexport interface TableRow {\n [prop: string]: any\n rowId: string | number\n}\n\n/** The information on the currently selected sort: column name, type and asc/desc */\nexport interface SortInfo<\n T extends Record<string, unknown> = { [k: string]: any },\n> {\n /** column name */\n column: keyof T\n /** is ascending (false for descending) */\n isAscending: boolean\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggAccordionModule } from './accordion'\nimport { NggBadgeModule } from './badge/badge.module'\nimport { NggButtonModule } from './button/button.module'\nimport { NggContextMenuModule } from './context-menu'\nimport { NggDatepickerModule } from './datepicker/datepicker.module'\nimport { NggDropdownModule } from './dropdown/dropdown.module'\nimport { NggInPageWizardModule } from './in-page-wizard'\nimport { NggModalModule } from './modal'\nimport { NggProgressCircleModule } from './progress-circle/progress-circle.module'\nimport { NggSegmentedControlModule } from './segmented-control/segmented-control.module'\nimport { NggSharedModule } from './shared/shared.module'\nimport { NggSliderModule } from './slider/slider.module'\nimport { NggSortableListModule } from './sortable-list/sortable-list.module'\nimport { NggCellTableModule } from './cell-table'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [\n NggAccordionModule,\n NggBadgeModule,\n NggButtonModule,\n NggDatepickerModule,\n NggDropdownModule,\n NggModalModule,\n NggProgressCircleModule,\n NggSegmentedControlModule,\n NggSliderModule,\n NggContextMenuModule,\n NggInPageWizardModule,\n NggCellTableModule,\n NggSharedModule,\n NggSortableListModule,\n ],\n})\nexport class NggModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n} from '@angular/core'\nimport {\n IPaginationEvent,\n IPaginationI18n,\n PaginationI18n,\n PaginationSize,\n} from '@sebgroup/extract'\n\n@Component({\n selector: 'ngg-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NggPaginationComponent implements OnChanges {\n /** Internationalization labels */\n @Input() i18n: IPaginationI18n = PaginationI18n\n\n /** Rendered size */\n @Input() size: PaginationSize = 'small'\n\n /** Amount of pages to be displayed between the first and last */\n @Input() displayPages = 5\n\n /** Total amount of items to be paginated */\n @Input() length = 0\n\n /** Displayed items per page */\n @Input() pageSize = 10\n\n /** The zero-based page index of the displayed list of pages. Defaulted to 0. */\n @Input()\n get pageIndex(): number {\n return this._pageIndex\n }\n set pageIndex(value: number) {\n this._pageIndex = Math.max(value, 0)\n }\n private _pageIndex = 0\n\n /** All centric page indicies to be displayed. */\n get pageIndicies(): number[] {\n return this._pageIndicies\n }\n private _pageIndicies: number[] = []\n\n get totalPages(): number {\n if (!this.pageSize) {\n return 0\n }\n\n return Math.ceil(this.length / this.pageSize)\n }\n\n /** Event emitted when a new page index is selected */\n @Output() page = new EventEmitter<IPaginationEvent>()\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.displayPages ||\n changes.pageIndex ||\n changes.pageSize ||\n changes.length\n ) {\n this._pageIndicies = this.getDisplayedPageIndicies()\n }\n }\n\n hasPrevious(): boolean {\n return this.pageIndex >= 1\n }\n\n hasNext(): boolean {\n return this.pageIndex < this.totalPages - 1\n }\n\n gotoFirst(): void {\n if (!this.hasPrevious()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = 0\n this.emit(previous)\n }\n\n gotoLast(): void {\n if (!this.hasNext()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = this.totalPages - 1\n this.emit(previous)\n }\n\n gotoPrevious(): void {\n if (!this.hasPrevious()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = previous - 1\n this.emit(previous)\n }\n\n gotoNext(): void {\n if (!this.hasNext()) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = previous + 1\n this.emit(previous)\n }\n\n goto(index: number): void {\n if (index === this.pageIndex || index < 0 || index >= this.totalPages) {\n return\n }\n const previous = this.pageIndex\n this.pageIndex = index\n this.emit(previous)\n }\n\n private emit(previous: number) {\n this._pageIndicies = this.getDisplayedPageIndicies()\n this.page.emit({ pageIndex: this.pageIndex, previousPageIndex: previous })\n }\n\n private getDisplayedPageIndicies(): number[] {\n // Do not render\n if (this.totalPages <= 1) {\n return []\n }\n\n // All pages can fit\n if (this.totalPages <= this.displayPages)\n return [...Array(this.totalPages - 2).keys()].map((index) => index + 1)\n\n // Only first & last\n if (this.totalPages === 2) return []\n\n return this.getCenteredPageIndicies()\n }\n\n /**\n * Find X (displayPages) amount of page indicies that are centered from the currently selected page index,\n * but exclude the first and last indicies if they are within the range.\n */\n private getCenteredPageIndicies(): number[] {\n const pages: number[] = []\n\n if (this.pageIndex === 0) {\n pages.push(this.pageIndex + 1)\n } else if (this.pageIndex === this.totalPages - 1) {\n pages.push(this.pageIndex - 1)\n } else {\n pages.push(this.pageIndex)\n }\n\n const addAfter = () => {\n const next = pages[pages.length - 1] + 1\n if (next < this.totalPages - 1 && counter > 0) {\n pages.push(next)\n return true\n }\n return false\n }\n const addBefore = () => {\n const previous = pages[0] - 1\n if (previous > 0 && counter > 0) {\n pages.unshift(previous)\n return true\n }\n return false\n }\n\n let counter = this.displayPages - 1\n while (counter > 0) {\n const addedAfter = addAfter()\n if (addedAfter) counter--\n\n const addedBefore = addBefore()\n if (addedBefore) counter--\n\n if (!addedAfter && !addedBefore) break\n }\n\n return pages\n }\n}\n","<nav\n [class]=\"'pagination ' + size\"\n role=\"navigation\"\n [attr.aria-label]=\"i18n.paginationLabel\"\n *ngIf=\"totalPages > 1\"\n>\n <ul class=\"gds-reset\">\n <li *ngIf=\"hasPrevious()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoPrevious()\"\n (keydown.enter)=\"gotoPrevious()\"\n [attr.aria-label]=\"i18n.previousPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"\n />\n </svg>\n </a>\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoFirst()\"\n (keydown.enter)=\"gotoFirst()\"\n [attr.aria-current]=\"pageIndex === 0 ? 'page' : null\"\n [attr.aria-label]=\"i18n.firstPageLabel\"\n role=\"button\"\n >\n 1\n </a>\n </li>\n <li *ngIf=\"pageIndicies[0] > 1\" aria-hidden=\"true\">...</li>\n\n <li *ngFor=\"let index of pageIndicies\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"goto(index)\"\n (keydown.enter)=\"goto(index)\"\n [attr.aria-current]=\"pageIndex === index ? 'page' : null\"\n [attr.aria-label]=\"i18n.getPageLabel(index)\"\n role=\"button\"\n >\n {{ index + 1 }}\n </a>\n </li>\n\n <li\n *ngIf=\"pageIndicies[pageIndicies.length - 1] < totalPages - 2\"\n aria-hidden=\"true\"\n >\n ...\n </li>\n\n <li>\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoLast()\"\n (keydown.enter)=\"gotoLast()\"\n [attr.aria-current]=\"pageIndex === totalPages - 1 ? 'page' : null\"\n [attr.aria-label]=\"i18n.lastPageLabel\"\n role=\"button\"\n >\n {{ totalPages }}\n </a>\n </li>\n <li *ngIf=\"hasNext()\">\n <a\n class=\"gds-reset\"\n tabindex=\"0\"\n (click)=\"gotoNext()\"\n (keydown.enter)=\"gotoNext()\"\n [attr.aria-label]=\"i18n.nextPageLabel\"\n role=\"button\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path\n d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\n />\n </svg>\n </a>\n </li>\n </ul>\n</nav>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggPaginationComponent } from './pagination.component'\n\n@NgModule({\n declarations: [NggPaginationComponent],\n imports: [CommonModule],\n exports: [NggPaginationComponent],\n})\nexport class NggPaginationModule {}\n","import { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core'\n\nimport { getScopedTagName } from '@sebgroup/green-core/scoping'\n\n@Directive({\n selector: '[nggCoreElement]',\n})\nexport class NggCoreElementDirective implements OnInit {\n private viewRef: EmbeddedViewRef<any> | null = null\n private readonly document = inject(DOCUMENT)\n private readonly renderer = inject(Renderer2)\n private readonly vcr = inject(ViewContainerRef)\n private readonly cdr = inject(ChangeDetectorRef)\n private readonly template = inject(TemplateRef<any>)\n\n ngOnInit() {\n this.vcr.clear()\n const originalCreateElement = this.renderer.createElement\n\n this.renderer.createElement = (name: string, _namespace: string) => {\n return this.document.createElement(getScopedTagName(name))\n }\n\n this.viewRef = this.vcr.createEmbeddedView(this.template)\n this.renderer.createElement = originalCreateElement\n this.cdr.markForCheck()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggCoreElementDirective } from './core-element.directive'\n\n@NgModule({\n declarations: [NggCoreElementDirective],\n imports: [CommonModule],\n exports: [NggCoreElementDirective],\n})\nexport class NggCoreWrapperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NggCoreWrapperModule","i1","i2","i3.SlidingUnderlineDirective","i2.CellTableItemComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebgroup/green-angular",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": ">=16.2.14",
6
6
  "@angular/common": ">=16.2.12",
@@ -14,7 +14,7 @@
14
14
  "date-fns": "^2.28.0"
15
15
  },
16
16
  "dependencies": {
17
- "@sebgroup/green-core": "^1.23.0",
17
+ "@sebgroup/green-core": "^1.24.0",
18
18
  "@sebgroup/chlorophyll": "^3.4.1",
19
19
  "@sebgroup/extract": "^3.0.2",
20
20
  "tslib": "^2.3.1"