@bcgov/nr-ngx-component-lib 0.0.5 → 0.0.7

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.
@@ -16,6 +16,7 @@ export class ButtonComponent extends ConfigurationSubscriberBase {
16
16
  onClick(ev) {
17
17
  if (this.disabled)
18
18
  return;
19
+ ev.stopPropagation();
19
20
  this.click.emit(ev);
20
21
  }
21
22
  onConfigurationChange() {
@@ -71,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
71
72
  }], click: [{
72
73
  type: Output
73
74
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25yLW5neC1jb21wb25lbnQtbGliL3NyYy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7O0FBZ0I3RixNQUFNLE9BQU8sZUFBZ0IsU0FBUSwyQkFBMkI7SUFkaEU7O1FBcUI4QyxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFFaEQsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFBO1FBSWxELFNBQUksR0FBRyxNQUFNLENBQUUsTUFBTSxDQUFFLENBQUE7S0F3QjFCO0lBdEJHLE9BQU8sQ0FBRSxFQUFnQjtRQUNyQixJQUFLLElBQUksQ0FBQyxRQUFRO1lBQUcsT0FBTTtRQUUzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxFQUFFLENBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLDZFQUE2RTtRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxHQUFHLEVBQUU7WUFDaEIsSUFBSyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssRUFBRyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtZQUMxQixDQUFDO2lCQUNJLElBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUcsQ0FBQztnQkFDckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7WUFDekIsQ0FBQztpQkFDSSxDQUFDO2dCQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQTtZQUNuRSxDQUFDO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3pDLENBQUMsQ0FBRSxDQUFBO0lBQ1AsQ0FBQzsrR0F0Q1EsZUFBZTttR0FBZixlQUFlLCtMQU9ILGdCQUFnQixtQ0FDaEIsZ0JBQWdCLHNDQUNoQixnQkFBZ0Isb1dDMUJ6QyxzeUJBNkJBOzs0RkRaYSxlQUFlO2tCQWQzQixTQUFTOytCQUNJLGFBQWEsUUFHakI7d0JBQ0YsaUJBQWlCLEVBQUUsU0FBUzt3QkFDNUIsaUJBQWlCLEVBQUUscUJBQXFCO3dCQUN4QyxrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixpQkFBaUIsRUFBRSxXQUFXO3dCQUM5QixtQkFBbUIsRUFBRSxvQkFBb0I7d0JBQ3pDLG9CQUFvQixFQUFFLGtDQUFrQzt3QkFDeEQsZUFBZSxFQUFFLE9BQU87cUJBQzNCOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ29DLE9BQU87c0JBQWhELEtBQUs7dUJBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0csT0FBTztzQkFBaEQsS0FBSzt1QkFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRyxRQUFRO3NCQUFqRCxLQUFLO3VCQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgTmdab25lLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TdWJzY3JpYmVyQmFzZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZmlndXJhdGlvbi1zdWJzY3JpYmVyLmJhc2UnO1xuXG5AQ29tcG9uZW50KCB7XG4gICAgc2VsZWN0b3I6ICducmNsLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnByaW1hcnldJzogJ3ByaW1hcnknLFxuICAgICAgICAnW2NsYXNzLm91dGxpbmVdJzogJ291dGxpbmUgJiYgIXByaW1hcnknLFxuICAgICAgICAnW2NsYXNzLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbY2xhc3MuY29tcGFjdF0nOiAnaXNDb21wYWN0JyxcbiAgICAgICAgJ1tjbGFzcy5pY29uLWxlZnRdJzogJyFpc0NvbXBhY3QgJiYgaWNvbicsXG4gICAgICAgICdbY2xhc3MuaWNvbi1yaWdodF0nOiAnIWlzQ29tcGFjdCAmJiBpY29uUmlnaHQgJiYgbGFiZWwnLFxuICAgICAgICAnW2NsYXNzLmxhYmVsXSc6ICdsYWJlbCdcbiAgICB9XG59IClcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBDb25maWd1cmF0aW9uU3Vic2NyaWJlckJhc2UgeyAgICBcbiAgICBASW5wdXQoKSBsYWJlbFxuICAgIEBJbnB1dCgpIGljb25cbiAgICBASW5wdXQoKSBpY29uUmlnaHRcbiAgICBASW5wdXQoKSBpY29uQ29tcGFjdFxuICAgIEBJbnB1dCgpIHRvb2x0aXBcbiAgICBASW5wdXQoKSBjb21wYWN0XG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgcHJpbWFyeSA9IGZhbHNlXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgb3V0bGluZSA9IGZhbHNlXG4gICAgQElucHV0KCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9ICkgZGlzYWJsZWQgPSBmYWxzZVxuXG4gICAgQE91dHB1dCgpIGNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxQb2ludGVyRXZlbnQ+KClcblxuICAgIGlzQ29tcGFjdFxuXG4gICAgem9uZSA9IGluamVjdCggTmdab25lIClcblxuICAgIG9uQ2xpY2soIGV2OiBQb2ludGVyRXZlbnQgKSB7XG4gICAgICAgIGlmICggdGhpcy5kaXNhYmxlZCApIHJldHVyblxuXG4gICAgICAgIHRoaXMuY2xpY2suZW1pdCggZXYgKVxuICAgIH1cblxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gYXBwYXJlbnRseSB0aGlzIGlzIG5lZWRlZCB0byBlbnN1cmUgdGhhdCB0aGUgaG9zdCBiaW5kaW5nIHVwZGF0ZXMgcHJvcGVybHlcbiAgICAgICAgdGhpcy56b25lLnJ1biggKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCB0aGlzLmNvbXBhY3QgPT0gbnVsbCB8fCB0aGlzLmNvbXBhY3QgPT09IGZhbHNlICkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDb21wYWN0ID0gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCB0aGlzLmNvbXBhY3QgPT0gJycgfHwgdGhpcy5jb21wYWN0ID09PSB0cnVlICkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDb21wYWN0ID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0NvbXBhY3QgPSB0aGlzLmNvbXBhY3QgPT0gdGhpcy5jb25maWd1cmF0aW9uLmRpc3BsYXlNb2RlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICAgICAgfSApXG4gICAgfVxufVxuIiwiPGJ1dHRvbiBcbiAgICBtYXRSaXBwbGVcbiAgICAoY2xpY2spPVwib25DbGljayggJGV2ZW50IClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiXG4+XG4gICAgQGlmICggaWNvbiB8fCBpY29uUmlnaHQgfHwgaWNvbkNvbXBhY3QgfHwgbGFiZWwgKSB7XG4gICAgICAgIEBpZiAoIGljb24gJiYgKCAhaXNDb21wYWN0IHx8ICFpY29uQ29tcGFjdCApICkgeyBcbiAgICAgICAgICAgIDxucmNsLWljb24gY2xhc3M9XCJsZWZ0XCI+e3sgaWNvbiB9fTwvbnJjbC1pY29uPiBcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoICFpc0NvbXBhY3QgJiYgaWNvblJpZ2h0ICYmIGxhYmVsICkgeyBcbiAgICAgICAgICAgIDxucmNsLWljb24gY2xhc3M9XCJyaWdodFwiPnt7IGljb25SaWdodCB9fTwvbnJjbC1pY29uPiBcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoIGlzQ29tcGFjdCAmJiBpY29uQ29tcGFjdCApIHsgXG4gICAgICAgICAgICA8bnJjbC1pY29uIGNsYXNzPVwiY29tcGFjdFwiPnt7IGljb25Db21wYWN0IH19PC9ucmNsLWljb24+IFxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICggbGFiZWwgKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+ICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvYnV0dG9uPlxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25yLW5neC1jb21wb25lbnQtbGliL3NyYy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7O0FBZ0I3RixNQUFNLE9BQU8sZUFBZ0IsU0FBUSwyQkFBMkI7SUFkaEU7O1FBcUI4QyxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFFaEQsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFBO1FBSWxELFNBQUksR0FBRyxNQUFNLENBQUUsTUFBTSxDQUFFLENBQUE7S0F5QjFCO0lBdkJHLE9BQU8sQ0FBRSxFQUFnQjtRQUNyQixJQUFLLElBQUksQ0FBQyxRQUFRO1lBQUcsT0FBTTtRQUUzQixFQUFFLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUUsRUFBRSxDQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELHFCQUFxQjtRQUNqQiw2RUFBNkU7UUFDN0UsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUUsR0FBRyxFQUFFO1lBQ2hCLElBQUssSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUcsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7WUFDMUIsQ0FBQztpQkFDSSxJQUFLLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFHLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1lBQ3pCLENBQUM7aUJBQ0ksQ0FBQztnQkFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUE7WUFDbkUsQ0FBQztZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUN6QyxDQUFDLENBQUUsQ0FBQTtJQUNQLENBQUM7K0dBdkNRLGVBQWU7bUdBQWYsZUFBZSwrTEFPSCxnQkFBZ0IsbUNBQ2hCLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLG9XQzFCekMsc3lCQTZCQTs7NEZEWmEsZUFBZTtrQkFkM0IsU0FBUzsrQkFDSSxhQUFhLFFBR2pCO3dCQUNGLGlCQUFpQixFQUFFLFNBQVM7d0JBQzVCLGlCQUFpQixFQUFFLHFCQUFxQjt3QkFDeEMsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsaUJBQWlCLEVBQUUsV0FBVzt3QkFDOUIsbUJBQW1CLEVBQUUsb0JBQW9CO3dCQUN6QyxvQkFBb0IsRUFBRSxrQ0FBa0M7d0JBQ3hELGVBQWUsRUFBRSxPQUFPO3FCQUMzQjs4QkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNvQyxPQUFPO3NCQUFoRCxLQUFLO3VCQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNHLE9BQU87c0JBQWhELEtBQUs7dUJBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0csUUFBUTtzQkFBakQsS0FBSzt1QkFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU3Vic2NyaWJlckJhc2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmZpZ3VyYXRpb24tc3Vic2NyaWJlci5iYXNlJztcblxuQENvbXBvbmVudCgge1xuICAgIHNlbGVjdG9yOiAnbnJjbC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9idXR0b24uY29tcG9uZW50LnNjc3MnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wcmltYXJ5XSc6ICdwcmltYXJ5JyxcbiAgICAgICAgJ1tjbGFzcy5vdXRsaW5lXSc6ICdvdXRsaW5lICYmICFwcmltYXJ5JyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnW2NsYXNzLmNvbXBhY3RdJzogJ2lzQ29tcGFjdCcsXG4gICAgICAgICdbY2xhc3MuaWNvbi1sZWZ0XSc6ICchaXNDb21wYWN0ICYmIGljb24nLFxuICAgICAgICAnW2NsYXNzLmljb24tcmlnaHRdJzogJyFpc0NvbXBhY3QgJiYgaWNvblJpZ2h0ICYmIGxhYmVsJyxcbiAgICAgICAgJ1tjbGFzcy5sYWJlbF0nOiAnbGFiZWwnXG4gICAgfVxufSApXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQ29uZmlndXJhdGlvblN1YnNjcmliZXJCYXNlIHsgICAgXG4gICAgQElucHV0KCkgbGFiZWxcbiAgICBASW5wdXQoKSBpY29uXG4gICAgQElucHV0KCkgaWNvblJpZ2h0XG4gICAgQElucHV0KCkgaWNvbkNvbXBhY3RcbiAgICBASW5wdXQoKSB0b29sdGlwXG4gICAgQElucHV0KCkgY29tcGFjdFxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSApIHByaW1hcnkgPSBmYWxzZVxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSApIG91dGxpbmUgPSBmYWxzZVxuICAgIEBJbnB1dCggeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSApIGRpc2FibGVkID0gZmFsc2VcblxuICAgIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UG9pbnRlckV2ZW50PigpXG5cbiAgICBpc0NvbXBhY3RcblxuICAgIHpvbmUgPSBpbmplY3QoIE5nWm9uZSApXG5cbiAgICBvbkNsaWNrKCBldjogUG9pbnRlckV2ZW50ICkge1xuICAgICAgICBpZiAoIHRoaXMuZGlzYWJsZWQgKSByZXR1cm5cblxuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICB0aGlzLmNsaWNrLmVtaXQoIGV2IClcbiAgICB9XG5cbiAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIC8vIGFwcGFyZW50bHkgdGhpcyBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGhvc3QgYmluZGluZyB1cGRhdGVzIHByb3Blcmx5XG4gICAgICAgIHRoaXMuem9uZS5ydW4oICgpID0+IHtcbiAgICAgICAgICAgIGlmICggdGhpcy5jb21wYWN0ID09IG51bGwgfHwgdGhpcy5jb21wYWN0ID09PSBmYWxzZSApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ29tcGFjdCA9IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICggdGhpcy5jb21wYWN0ID09ICcnIHx8IHRoaXMuY29tcGFjdCA9PT0gdHJ1ZSApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ29tcGFjdCA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDb21wYWN0ID0gdGhpcy5jb21wYWN0ID09IHRoaXMuY29uZmlndXJhdGlvbi5kaXNwbGF5TW9kZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgICAgIH0gKVxuICAgIH1cbn1cbiIsIjxidXR0b24gXG4gICAgbWF0UmlwcGxlXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soICRldmVudCApXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuPlxuICAgIEBpZiAoIGljb24gfHwgaWNvblJpZ2h0IHx8IGljb25Db21wYWN0IHx8IGxhYmVsICkge1xuICAgICAgICBAaWYgKCBpY29uICYmICggIWlzQ29tcGFjdCB8fCAhaWNvbkNvbXBhY3QgKSApIHsgXG4gICAgICAgICAgICA8bnJjbC1pY29uIGNsYXNzPVwibGVmdFwiPnt7IGljb24gfX08L25yY2wtaWNvbj4gXG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCAhaXNDb21wYWN0ICYmIGljb25SaWdodCAmJiBsYWJlbCApIHsgXG4gICAgICAgICAgICA8bnJjbC1pY29uIGNsYXNzPVwicmlnaHRcIj57eyBpY29uUmlnaHQgfX08L25yY2wtaWNvbj4gXG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCBpc0NvbXBhY3QgJiYgaWNvbkNvbXBhY3QgKSB7IFxuICAgICAgICAgICAgPG5yY2wtaWNvbiBjbGFzcz1cImNvbXBhY3RcIj57eyBpY29uQ29tcGFjdCB9fTwvbnJjbC1pY29uPiBcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoIGxhYmVsICkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPiAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2J1dHRvbj5cbiJdfQ==
@@ -44,13 +44,11 @@ export class DeviceViewComponent extends ConfigurationSubscriberBase {
44
44
  @if ( desktopVisible && desktopContent ) {
45
45
  <ng-container [ngTemplateOutlet]="desktopContent.templateRef"></ng-container>
46
46
  }
47
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
47
+ `, isInline: true, styles: [":host:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceViewComponent, decorators: [{
50
50
  type: Component,
51
- args: [{
52
- selector: "nrcl-device-view",
53
- template: `
51
+ args: [{ selector: "nrcl-device-view", template: `
54
52
  @if ( mobileVisible && mobileContent ) {
55
53
  <ng-container [ngTemplateOutlet]="mobileContent.templateRef"></ng-container>
56
54
  }
@@ -58,8 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
58
56
  @if ( desktopVisible && desktopContent ) {
59
57
  <ng-container [ngTemplateOutlet]="desktopContent.templateRef"></ng-container>
60
58
  }
61
- `,
62
- }]
59
+ `, styles: [":host:empty{display:none}\n"] }]
63
60
  }], propDecorators: { desktopContent: [{
64
61
  type: ContentChild,
65
62
  args: [DesktopViewDirective]
@@ -67,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
67
64
  type: ContentChild,
68
65
  args: [MobileViewDirective]
69
66
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvZGV2aWNlLXZpZXcvZGV2aWNlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFLN0YsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNXLFdBQWlDO1FBQWpDLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtJQUN6QyxDQUFDOytHQUhLLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCOztBQVdELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFDVyxXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFDekMsQ0FBQzsrR0FISyxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtpQkFDNUI7O0FBb0JELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwyQkFBMkI7SUFacEU7O1FBZ0JJLHNCQUFpQixHQUFHLE1BQU0sQ0FBRSxpQkFBaUIsQ0FBRSxDQUFBO0tBSWxEO0lBRkcsSUFBSSxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUEsQ0FBQyxDQUFDO0lBQzNFLElBQUksYUFBYSxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFBLENBQUMsQ0FBQzsrR0FQaEUsbUJBQW1CO21HQUFuQixtQkFBbUIsb0dBQ2Isb0JBQW9CLGdGQUNwQixtQkFBbUIsdUVBWnhCOzs7Ozs7OztLQVFUOzs0RkFFUSxtQkFBbUI7a0JBWi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7OztLQVFUO2lCQUNKOzhCQUV5QyxjQUFjO3NCQUFuRCxZQUFZO3VCQUFFLG9CQUFvQjtnQkFDRSxhQUFhO3NCQUFqRCxZQUFZO3VCQUFFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblN1YnNjcmliZXJCYXNlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvY29uZmlndXJhdGlvbi1zdWJzY3JpYmVyLmJhc2VcIjtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwiW2Rlc2t0b3Atdmlld11cIlxufSlcbmV4cG9ydCBjbGFzcyBEZXNrdG9wVmlld0RpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj5cbiAgICApIHt9XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwiW21vYmlsZS12aWV3XVwiXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZVZpZXdEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+XG4gICAgKSB7fVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtZGV2aWNlLXZpZXdcIixcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKCBtb2JpbGVWaXNpYmxlICYmIG1vYmlsZUNvbnRlbnQgKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vYmlsZUNvbnRlbnQudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoIGRlc2t0b3BWaXNpYmxlICYmIGRlc2t0b3BDb250ZW50ICkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNrdG9wQ29udGVudC50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlVmlld0NvbXBvbmVudCBleHRlbmRzIENvbmZpZ3VyYXRpb25TdWJzY3JpYmVyQmFzZSB7XG4gICAgQENvbnRlbnRDaGlsZCggRGVza3RvcFZpZXdEaXJlY3RpdmUgKSBkZXNrdG9wQ29udGVudCE6IERlc2t0b3BWaWV3RGlyZWN0aXZlO1xuICAgIEBDb250ZW50Q2hpbGQoIE1vYmlsZVZpZXdEaXJlY3RpdmUgKSBtb2JpbGVDb250ZW50ITogTW9iaWxlVmlld0RpcmVjdGl2ZTtcblxuICAgIGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KCBDaGFuZ2VEZXRlY3RvclJlZiApXG5cbiAgICBnZXQgZGVza3RvcFZpc2libGUoKSB7IHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uZGlzcGxheU1vZGUgPT0gJ2Rlc2t0b3AnIH1cbiAgICBnZXQgbW9iaWxlVmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5kaXNwbGF5TW9kZSA9PSAnbW9iaWxlJyB9XG59XG5cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvZGV2aWNlLXZpZXcvZGV2aWNlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFLN0YsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNXLFdBQWlDO1FBQWpDLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtJQUN6QyxDQUFDOytHQUhLLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzdCOztBQVdELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFDVyxXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFDekMsQ0FBQzsrR0FISyxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtpQkFDNUI7O0FBeUJELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwyQkFBMkI7SUFqQnBFOztRQXFCSSxzQkFBaUIsR0FBRyxNQUFNLENBQUUsaUJBQWlCLENBQUUsQ0FBQTtLQUlsRDtJQUZHLElBQUksY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFBLENBQUMsQ0FBQztJQUMzRSxJQUFJLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQSxDQUFDLENBQUM7K0dBUGhFLG1CQUFtQjttR0FBbkIsbUJBQW1CLG9HQUNiLG9CQUFvQixnRkFDcEIsbUJBQW1CLHVFQWpCeEI7Ozs7Ozs7O0tBUVQ7OzRGQU9RLG1CQUFtQjtrQkFqQi9CLFNBQVM7K0JBQ0ksa0JBQWtCLFlBQ2xCOzs7Ozs7OztLQVFUOzhCQVFxQyxjQUFjO3NCQUFuRCxZQUFZO3VCQUFFLG9CQUFvQjtnQkFDRSxhQUFhO3NCQUFqRCxZQUFZO3VCQUFFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblN1YnNjcmliZXJCYXNlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvY29uZmlndXJhdGlvbi1zdWJzY3JpYmVyLmJhc2VcIjtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwiW2Rlc2t0b3Atdmlld11cIlxufSlcbmV4cG9ydCBjbGFzcyBEZXNrdG9wVmlld0RpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj5cbiAgICApIHt9XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IFwiW21vYmlsZS12aWV3XVwiXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZVZpZXdEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+XG4gICAgKSB7fVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtZGV2aWNlLXZpZXdcIixcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKCBtb2JpbGVWaXNpYmxlICYmIG1vYmlsZUNvbnRlbnQgKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1vYmlsZUNvbnRlbnQudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoIGRlc2t0b3BWaXNpYmxlICYmIGRlc2t0b3BDb250ZW50ICkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNrdG9wQ29udGVudC50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIDpob3N0OmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICBgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VWaWV3Q29tcG9uZW50IGV4dGVuZHMgQ29uZmlndXJhdGlvblN1YnNjcmliZXJCYXNlIHtcbiAgICBAQ29udGVudENoaWxkKCBEZXNrdG9wVmlld0RpcmVjdGl2ZSApIGRlc2t0b3BDb250ZW50ITogRGVza3RvcFZpZXdEaXJlY3RpdmU7XG4gICAgQENvbnRlbnRDaGlsZCggTW9iaWxlVmlld0RpcmVjdGl2ZSApIG1vYmlsZUNvbnRlbnQhOiBNb2JpbGVWaWV3RGlyZWN0aXZlO1xuXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoIENoYW5nZURldGVjdG9yUmVmIClcblxuICAgIGdldCBkZXNrdG9wVmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5kaXNwbGF5TW9kZSA9PSAnZGVza3RvcCcgfVxuICAgIGdldCBtb2JpbGVWaXNpYmxlKCkgeyByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLmRpc3BsYXlNb2RlID09ICdtb2JpbGUnIH1cbn1cblxuIl19
@@ -32,11 +32,13 @@ export class FiltersPanelComponent {
32
32
  this.showAdvancedFiltersChange.emit(true);
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FiltersPanelComponent, selector: "nrcl-filters-panel", inputs: { showClear: "showClear", showFilters: "showFilters", hasAdvancedFilters: "hasAdvancedFilters", showAdvancedFilters: "showAdvancedFilters" }, outputs: { clearFilters: "clearFilters", showFiltersChange: "showFiltersChange", showAdvancedFiltersChange: "showAdvancedFiltersChange" }, ngImport: i0, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <!-- <div class=\"spacer\"></div> -->\n\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "nrcl-button", inputs: ["label", "icon", "iconRight", "iconCompact", "tooltip", "compact", "primary", "outline", "disabled"], outputs: ["click"] }, { kind: "directive", type: i2.MobileViewDirective, selector: "[mobile-view]" }, { kind: "component", type: i2.DeviceViewComponent, selector: "nrcl-device-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FiltersPanelComponent, selector: "nrcl-filters-panel", inputs: { showClear: "showClear", showFilters: "showFilters", hasAdvancedFilters: "hasAdvancedFilters", showAdvancedFilters: "showAdvancedFilters" }, outputs: { clearFilters: "clearFilters", showFiltersChange: "showFiltersChange", showAdvancedFiltersChange: "showAdvancedFiltersChange" }, host: { properties: { "class.hide-filters": "!showFilters" } }, ngImport: i0, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row-reverse;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host.hide-filters .actions{flex-direction:row}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "nrcl-button", inputs: ["label", "icon", "iconRight", "iconCompact", "tooltip", "compact", "primary", "outline", "disabled"], outputs: ["click"] }, { kind: "directive", type: i2.MobileViewDirective, selector: "[mobile-view]" }, { kind: "component", type: i2.DeviceViewComponent, selector: "nrcl-device-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersPanelComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: "nrcl-filters-panel", changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <!-- <div class=\"spacer\"></div> -->\n\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"] }]
39
+ args: [{ selector: "nrcl-filters-panel", changeDetection: ChangeDetectionStrategy.OnPush, host: {
40
+ '[class.hide-filters]': '!showFilters'
41
+ }, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row-reverse;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host.hide-filters .actions{flex-direction:row}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"] }]
40
42
  }], propDecorators: { showClear: [{
41
43
  type: Input
42
44
  }], showFilters: [{
@@ -52,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
52
54
  }], showAdvancedFiltersChange: [{
53
55
  type: Output
54
56
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDOzs7O0FBUXZCLE1BQU0sT0FBTyxxQkFBcUI7SUFObEM7UUFPYSxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLGdCQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ2xCLHVCQUFrQixHQUFHLEtBQUssQ0FBQTtRQUMxQix3QkFBbUIsR0FBRyxLQUFLLENBQUE7UUFFMUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ2pDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7UUFDL0MsOEJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQXlCcEU7SUF2QkcsWUFBWTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBRSxDQUFBO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQTtRQUNoQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBRSxDQUFBO0lBQ2hELENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFFLENBQUE7SUFDL0MsQ0FBQzsrR0FoQ1EscUJBQXFCO21HQUFyQixxQkFBcUIsMlZDZGxDLG92REE0REE7OzRGRDlDYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLHlCQUF5QjtzQkFBbEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCgge1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtZmlsdGVycy1wYW5lbFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZmlsdGVycy1wYW5lbC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsOiBcIi4vZmlsdGVycy1wYW5lbC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSApXG5leHBvcnQgY2xhc3MgRmlsdGVyc1BhbmVsQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzaG93Q2xlYXIgPSB0cnVlXG4gICAgQElucHV0KCkgc2hvd0ZpbHRlcnMgPSB0cnVlXG4gICAgQElucHV0KCkgaGFzQWR2YW5jZWRGaWx0ZXJzID0gZmFsc2VcbiAgICBASW5wdXQoKSBzaG93QWR2YW5jZWRGaWx0ZXJzID0gZmFsc2VcblxuICAgIEBPdXRwdXQoKSBjbGVhckZpbHRlcnMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgICBAT3V0cHV0KCkgc2hvd0ZpbHRlcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgICBAT3V0cHV0KCkgc2hvd0FkdmFuY2VkRmlsdGVyc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuXG4gICAgb25DbGVhckNsaWNrKCkge1xuICAgICAgICB0aGlzLmNsZWFyRmlsdGVycy5lbWl0KClcbiAgICB9XG5cbiAgICBvbkhpZGVDbGljaygpIHtcbiAgICAgICAgdGhpcy5zaG93RmlsdGVycyA9IGZhbHNlXG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlcnNDaGFuZ2UuZW1pdCggZmFsc2UgKVxuICAgIH1cblxuICAgIG9uU2hvd0NsaWNrKCkge1xuICAgICAgICB0aGlzLnNob3dGaWx0ZXJzID0gdHJ1ZVxuICAgICAgICB0aGlzLnNob3dGaWx0ZXJzQ2hhbmdlLmVtaXQoIHRydWUgKVxuICAgIH1cblxuICAgIG9uSGlkZUFkdmFuY2VkQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuc2hvd0FkdmFuY2VkRmlsdGVycyA9IGZhbHNlXG4gICAgICAgIHRoaXMuc2hvd0FkdmFuY2VkRmlsdGVyc0NoYW5nZS5lbWl0KCBmYWxzZSApXG4gICAgfVxuXG4gICAgb25TaG93QWR2YW5jZWRDbGljaygpIHtcbiAgICAgICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXJzID0gdHJ1ZVxuICAgICAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlcnNDaGFuZ2UuZW1pdCggdHJ1ZSApXG4gICAgfVxufVxuIiwiQGlmICggc2hvd0ZpbHRlcnMgKSB7XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxufVxuXG5AaWYgKCBzaG93RmlsdGVycyAmJiBoYXNBZHZhbmNlZEZpbHRlcnMgJiYgc2hvd0FkdmFuY2VkRmlsdGVycyApIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYWR2YW5jZWRdXCI+PC9uZy1jb250ZW50PlxufVxuXG48ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgIDxucmNsLWRldmljZS12aWV3PlxuICAgICAgICA8bmctdGVtcGxhdGUgbW9iaWxlLXZpZXc+XG4gICAgICAgICAgICBAaWYgKCBzaG93RmlsdGVycyApIHtcbiAgICAgICAgICAgICAgICA8bnJjbC1idXR0b24gb3V0bGluZSBcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJIaWRlIEZpbHRlcnNcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXhwYW5kX2xlc3NcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IaWRlQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbXBhY3Q9XCJtb2JpbGVcIlxuICAgICAgICAgICAgICAgID48L25yY2wtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxucmNsLWJ1dHRvbiBvdXRsaW5lIFxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlNob3cgRmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJleHBhbmRfbW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgY29tcGFjdD1cIm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgPjwvbnJjbC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9ucmNsLWRldmljZS12aWV3PlxuXG4gICAgQGlmICggc2hvd0ZpbHRlcnMgJiYgaGFzQWR2YW5jZWRGaWx0ZXJzICkge1xuICAgICAgICBAaWYgKCBzaG93QWR2YW5jZWRGaWx0ZXJzICkge1xuICAgICAgICAgICAgPG5yY2wtYnV0dG9uIG91dGxpbmUgXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJMZXNzIEZpbHRlcnNcIlxuICAgICAgICAgICAgICAgIGljb249XCJyZW1vdmVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkhpZGVBZHZhbmNlZENsaWNrKClcIlxuICAgICAgICAgICAgICAgIGNvbXBhY3Q9XCJtb2JpbGVcIlxuICAgICAgICAgICAgPjwvbnJjbC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgPG5yY2wtYnV0dG9uIG91dGxpbmUgXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJNb3JlIEZpbHRlcnNcIlxuICAgICAgICAgICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dBZHZhbmNlZENsaWNrKClcIlxuICAgICAgICAgICAgICAgIGNvbXBhY3Q9XCJtb2JpbGVcIlxuICAgICAgICAgICAgPjwvbnJjbC1idXR0b24+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj4gICAgICAgICAtLT5cblxuICAgIEBpZiAoIHNob3dDbGVhciAmJiBzaG93RmlsdGVycyApIHtcbiAgICAgICAgPG5yY2wtYnV0dG9uIG91dGxpbmUgXG4gICAgICAgICAgICBsYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICAgIGljb249XCJjbGVhci1maWx0ZXJzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyQ2xpY2soKVwiXG4gICAgICAgICAgICBjb21wYWN0PVwibW9iaWxlXCJcbiAgICAgICAgPjwvbnJjbC1idXR0b24+XG4gICAgfVxuPC9kaXY+XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDOzs7O0FBV3ZCLE1BQU0sT0FBTyxxQkFBcUI7SUFUbEM7UUFVYSxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLGdCQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ2xCLHVCQUFrQixHQUFHLEtBQUssQ0FBQTtRQUMxQix3QkFBbUIsR0FBRyxLQUFLLENBQUE7UUFFMUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ2pDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7UUFDL0MsOEJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtLQXlCcEU7SUF2QkcsWUFBWTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBRSxDQUFBO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQTtRQUNoQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBRSxDQUFBO0lBQ2hELENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFFLENBQUE7SUFDL0MsQ0FBQzsrR0FoQ1EscUJBQXFCO21HQUFyQixxQkFBcUIsMlpDakJsQywrckRBMERBOzs0RkR6Q2EscUJBQXFCO2tCQVRqQyxTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLHNCQUFzQixFQUFFLGNBQWM7cUJBQ3pDOzhCQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLHlCQUF5QjtzQkFBbEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCgge1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtZmlsdGVycy1wYW5lbFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZmlsdGVycy1wYW5lbC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsOiBcIi4vZmlsdGVycy1wYW5lbC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5oaWRlLWZpbHRlcnNdJzogJyFzaG93RmlsdGVycydcbiAgICB9XG59IClcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzUGFuZWxDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNob3dDbGVhciA9IHRydWVcbiAgICBASW5wdXQoKSBzaG93RmlsdGVycyA9IHRydWVcbiAgICBASW5wdXQoKSBoYXNBZHZhbmNlZEZpbHRlcnMgPSBmYWxzZVxuICAgIEBJbnB1dCgpIHNob3dBZHZhbmNlZEZpbHRlcnMgPSBmYWxzZVxuXG4gICAgQE91dHB1dCgpIGNsZWFyRmlsdGVycyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICAgIEBPdXRwdXQoKSBzaG93RmlsdGVyc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuICAgIEBPdXRwdXQoKSBzaG93QWR2YW5jZWRGaWx0ZXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgICBvbkNsZWFyQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY2xlYXJGaWx0ZXJzLmVtaXQoKVxuICAgIH1cblxuICAgIG9uSGlkZUNsaWNrKCkge1xuICAgICAgICB0aGlzLnNob3dGaWx0ZXJzID0gZmFsc2VcbiAgICAgICAgdGhpcy5zaG93RmlsdGVyc0NoYW5nZS5lbWl0KCBmYWxzZSApXG4gICAgfVxuXG4gICAgb25TaG93Q2xpY2soKSB7XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlcnMgPSB0cnVlXG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlcnNDaGFuZ2UuZW1pdCggdHJ1ZSApXG4gICAgfVxuXG4gICAgb25IaWRlQWR2YW5jZWRDbGljaygpIHtcbiAgICAgICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXJzID0gZmFsc2VcbiAgICAgICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXJzQ2hhbmdlLmVtaXQoIGZhbHNlIClcbiAgICB9XG5cbiAgICBvblNob3dBZHZhbmNlZENsaWNrKCkge1xuICAgICAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlcnMgPSB0cnVlXG4gICAgICAgIHRoaXMuc2hvd0FkdmFuY2VkRmlsdGVyc0NoYW5nZS5lbWl0KCB0cnVlIClcbiAgICB9XG59XG4iLCJAaWYgKCBzaG93RmlsdGVycyApIHtcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG59XG5cbkBpZiAoIHNob3dGaWx0ZXJzICYmIGhhc0FkdmFuY2VkRmlsdGVycyAmJiBzaG93QWR2YW5jZWRGaWx0ZXJzICkge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthZHZhbmNlZF1cIj48L25nLWNvbnRlbnQ+XG59XG5cbjxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgQGlmICggc2hvd0NsZWFyICYmIHNob3dGaWx0ZXJzICkge1xuICAgICAgICA8bnJjbC1idXR0b24gb3V0bGluZSBcbiAgICAgICAgICAgIGxhYmVsPVwiQ2xlYXJcIlxuICAgICAgICAgICAgaWNvbj1cImNsZWFyLWZpbHRlcnNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJDbGljaygpXCJcbiAgICAgICAgICAgIGNvbXBhY3Q9XCJtb2JpbGVcIlxuICAgICAgICA+PC9ucmNsLWJ1dHRvbj5cbiAgICB9XG5cbiAgICBAaWYgKCBzaG93RmlsdGVycyAmJiBoYXNBZHZhbmNlZEZpbHRlcnMgKSB7XG4gICAgICAgIEBpZiAoIHNob3dBZHZhbmNlZEZpbHRlcnMgKSB7XG4gICAgICAgICAgICA8bnJjbC1idXR0b24gb3V0bGluZSBcbiAgICAgICAgICAgICAgICBsYWJlbD1cIkxlc3MgRmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgaWNvbj1cInJlbW92ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGlkZUFkdmFuY2VkQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgY29tcGFjdD1cIm1vYmlsZVwiXG4gICAgICAgICAgICA+PC9ucmNsLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICA8bnJjbC1idXR0b24gb3V0bGluZSBcbiAgICAgICAgICAgICAgICBsYWJlbD1cIk1vcmUgRmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgaWNvbj1cImFkZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0FkdmFuY2VkQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgY29tcGFjdD1cIm1vYmlsZVwiXG4gICAgICAgICAgICA+PC9ucmNsLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIDxucmNsLWRldmljZS12aWV3PlxuICAgICAgICA8bmctdGVtcGxhdGUgbW9iaWxlLXZpZXc+XG4gICAgICAgICAgICBAaWYgKCBzaG93RmlsdGVycyApIHtcbiAgICAgICAgICAgICAgICA8bnJjbC1idXR0b24gb3V0bGluZSBcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJIaWRlIEZpbHRlcnNcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXhwYW5kX2xlc3NcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IaWRlQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbXBhY3Q9XCJtb2JpbGVcIlxuICAgICAgICAgICAgICAgID48L25yY2wtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxucmNsLWJ1dHRvbiBvdXRsaW5lIFxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlNob3cgRmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJleHBhbmRfbW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNob3dDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgY29tcGFjdD1cIm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgPjwvbnJjbC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9ucmNsLWRldmljZS12aWV3PlxuPC9kaXY+XG4iXX0=
@@ -160,6 +160,7 @@ class ButtonComponent extends ConfigurationSubscriberBase {
160
160
  onClick(ev) {
161
161
  if (this.disabled)
162
162
  return;
163
+ ev.stopPropagation();
163
164
  this.click.emit(ev);
164
165
  }
165
166
  onConfigurationChange() {
@@ -289,13 +290,11 @@ class DeviceViewComponent extends ConfigurationSubscriberBase {
289
290
  @if ( desktopVisible && desktopContent ) {
290
291
  <ng-container [ngTemplateOutlet]="desktopContent.templateRef"></ng-container>
291
292
  }
292
- `, isInline: true, dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
293
+ `, isInline: true, styles: [":host:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
293
294
  }
294
295
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceViewComponent, decorators: [{
295
296
  type: Component,
296
- args: [{
297
- selector: "nrcl-device-view",
298
- template: `
297
+ args: [{ selector: "nrcl-device-view", template: `
299
298
  @if ( mobileVisible && mobileContent ) {
300
299
  <ng-container [ngTemplateOutlet]="mobileContent.templateRef"></ng-container>
301
300
  }
@@ -303,8 +302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
303
302
  @if ( desktopVisible && desktopContent ) {
304
303
  <ng-container [ngTemplateOutlet]="desktopContent.templateRef"></ng-container>
305
304
  }
306
- `,
307
- }]
305
+ `, styles: [":host:empty{display:none}\n"] }]
308
306
  }], propDecorators: { desktopContent: [{
309
307
  type: ContentChild,
310
308
  args: [DesktopViewDirective]
@@ -858,11 +856,13 @@ class FiltersPanelComponent {
858
856
  this.showAdvancedFiltersChange.emit(true);
859
857
  }
860
858
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
861
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FiltersPanelComponent, selector: "nrcl-filters-panel", inputs: { showClear: "showClear", showFilters: "showFilters", hasAdvancedFilters: "hasAdvancedFilters", showAdvancedFilters: "showAdvancedFilters" }, outputs: { clearFilters: "clearFilters", showFiltersChange: "showFiltersChange", showAdvancedFiltersChange: "showAdvancedFiltersChange" }, ngImport: i0, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <!-- <div class=\"spacer\"></div> -->\n\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "nrcl-button", inputs: ["label", "icon", "iconRight", "iconCompact", "tooltip", "compact", "primary", "outline", "disabled"], outputs: ["click"] }, { kind: "directive", type: MobileViewDirective, selector: "[mobile-view]" }, { kind: "component", type: DeviceViewComponent, selector: "nrcl-device-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
859
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FiltersPanelComponent, selector: "nrcl-filters-panel", inputs: { showClear: "showClear", showFilters: "showFilters", hasAdvancedFilters: "hasAdvancedFilters", showAdvancedFilters: "showAdvancedFilters" }, outputs: { clearFilters: "clearFilters", showFiltersChange: "showFiltersChange", showAdvancedFiltersChange: "showAdvancedFiltersChange" }, host: { properties: { "class.hide-filters": "!showFilters" } }, ngImport: i0, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row-reverse;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host.hide-filters .actions{flex-direction:row}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "nrcl-button", inputs: ["label", "icon", "iconRight", "iconCompact", "tooltip", "compact", "primary", "outline", "disabled"], outputs: ["click"] }, { kind: "directive", type: MobileViewDirective, selector: "[mobile-view]" }, { kind: "component", type: DeviceViewComponent, selector: "nrcl-device-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
862
860
  }
863
861
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersPanelComponent, decorators: [{
864
862
  type: Component,
865
- args: [{ selector: "nrcl-filters-panel", changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <!-- <div class=\"spacer\"></div> -->\n\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"] }]
863
+ args: [{ selector: "nrcl-filters-panel", changeDetection: ChangeDetectionStrategy.OnPush, host: {
864
+ '[class.hide-filters]': '!showFilters'
865
+ }, template: "@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n", styles: [":host{display:flex;flex-flow:row wrap;gap:8px;position:relative;border:1px solid #c6c8cb;padding:8px;background-color:#f2f2f2}:host .actions{flex-grow:1;flex-direction:row-reverse;justify-content:space-between;align-items:flex-end;width:unset;display:flex}:host .actions button{height:40px}:host .actions nrcl-button{--nrcl-button-height: 40px}:host .actions .spacer{flex-grow:1}:host.hide-filters .actions{flex-direction:row}:host-context(.nrcl-device-mobile) :host{display:grid;grid-template-columns:1fr 1fr}:host-context(.nrcl-device-mobile) :host .actions{grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-search{--nrcl-filter-search-width: auto;grid-row:1;grid-column:1/span 2}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-select{--nrcl-filter-select-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-date{--nrcl-filter-date-width: auto}:host-context(.nrcl-device-mobile) :host ::ng-deep nrcl-filter-container{--nrcl-filter-container-width: auto}\n"] }]
866
866
  }], propDecorators: { showClear: [{
867
867
  type: Input
868
868
  }], showFilters: [{
@@ -1 +1 @@
1
- {"version":3,"file":"bcgov-nr-ngx-component-lib.mjs","sources":["../../../projects/nr-ngx-component-lib/src/services/configuration.service.ts","../../../projects/nr-ngx-component-lib/src/directives/configuration-subscriber.base.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.html","../../../projects/nr-ngx-component-lib/src/components/button/button.component.ts","../../../projects/nr-ngx-component-lib/src/components/button/button.component.html","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.ts","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.html","../../../projects/nr-ngx-component-lib/src/components/device-view/device-view.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.html","../../../projects/nr-ngx-component-lib/src/utils/date.util.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.html","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/form-field/form-field.component.ts","../../../projects/nr-ngx-component-lib/src/components/form-layout/form-layout.component.ts","../../../projects/nr-ngx-component-lib/src/components/gap/gap.component.ts","../../../projects/nr-ngx-component-lib/src/services/page-state.service.ts","../../../projects/nr-ngx-component-lib/src/utils/row-list.util.ts","../../../projects/nr-ngx-component-lib/src/directives/row-list.base.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.html","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.html","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.html","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.html","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.html","../../../projects/nr-ngx-component-lib/src/utils/filter.util.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.html","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.ts","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.html","../../../projects/nr-ngx-component-lib/src/services/snackbar-util.service.ts","../../../projects/nr-ngx-component-lib/src/utils/code-table.util.ts","../../../projects/nr-ngx-component-lib/src/nr-ngx-component-lib.module.ts","../../../projects/nr-ngx-component-lib/src/public-api.ts","../../../projects/nr-ngx-component-lib/src/bcgov-nr-ngx-component-lib.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport type DisplayMode = 'desktop' | 'mobile'\n\nexport type Configuration = {\n displayMode: DisplayMode \n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationService {\n private _defaultConfiguration: Configuration = {\n displayMode: 'desktop'\n }\n\n private configSubject = new BehaviorSubject<Configuration>(this._defaultConfiguration);\n \n // Observable that components can subscribe to\n public configurationObservable: Observable<Configuration> = this.configSubject.asObservable();\n\n constructor() {\n this.configurationObservable.subscribe( ( c ) => {\n let el = document.querySelector( 'body' ) as HTMLElement\n el.classList.toggle( 'nrcl-device-desktop', c.displayMode == 'desktop' )\n el.classList.toggle( 'nrcl-device-mobile', c.displayMode == 'mobile' )\n } )\n }\n\n // Get current config value synchronously\n get configuration(): Configuration {\n return this.configSubject.value;\n }\n\n // Update entire config\n update( configuration: Partial<Configuration> ): void {\n this.configSubject.next( {\n ...this.configSubject.value,\n ...configuration\n } )\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { Configuration, ConfigurationService } from \"../services/configuration.service\";\n\n@Directive()\nexport class ConfigurationSubscriberBase implements OnInit, OnDestroy { \n configurationSubscription\n configuration: Configuration\n\n configurationService = inject( ConfigurationService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n ngOnInit(): void {\n this.configurationSubscription = this.configurationService.configurationObservable.subscribe( ( c ) => {\n this.configuration = c\n this.onConfigurationChange()\n this.changeDetectorRef.detectChanges()\n } )\n this.configuration = this.configurationService.configuration\n }\n\n ngOnDestroy(): void {\n if ( this.configurationSubscription ) this.configurationSubscription.unsubscribe()\n }\n\n onConfigurationChange() {}\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, ElementRef, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component( {\n selector: 'nrcl-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n host: {\n '[class.show-icon]': '!svg',\n '[class.show-svg]': '!!svg',\n }\n} )\nexport class IconComponent implements AfterContentInit { \n name: keyof( typeof ICON )\n svg: SafeHtml\n\n elementRef = inject( ElementRef )\n domSanitizer = inject( DomSanitizer ) \n\n ngAfterContentInit(): void {\n this.name = this.elementRef?.nativeElement?.textContent\n if ( ICON[ this.name ] ) this.svg = this.domSanitizer.bypassSecurityTrustHtml( ICON[ this.name ] )\n }\n}\n\nconst ICON = {\n 'clear-filters': `\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 -7.934265 133.15887 133.15887\" height=\"100%\" width=\"100%\">\n <g transform=\"translate(-34.473864,-66.676034)\">\n <g>\n <g>\n <path d=\"M 94.473677,137.49393 34.473864,66.783005 34.564632,66.676034 H 154.38314 l 0.0907,0.106971 z\" />\n <rect y=\"129.02737\" x=\"88.416046\" height=\"45.357258\" width=\"12.115609\" />\n </g>\n <rect width=\"29.482143\" height=\"76.351196\" x=\"79.73278\" y=\"107.61517\" />\n </g>\n <g transform=\"translate(500.06128,136.57473)\">\n <rect width=\"14.363094\" height=\"49.892857\" x=\"-249.284\" y=\"235.20406\" transform=\"rotate(45)\" />\n <rect width=\"14.363095\" height=\"49.892857\" x=\"-267.59927\" y=\"-266.99539\" transform=\"rotate(-45)\" />\n </g>\n </g>\n </svg>\n `\n}","<mat-icon><ng-content></ng-content></mat-icon>\n<div class=\"svg\" [innerHTML]=\"svg\"></div>\n","import { booleanAttribute, Component, EventEmitter, inject, Input, NgZone, Output } from '@angular/core';\nimport { ConfigurationSubscriberBase } from '../../directives/configuration-subscriber.base';\n\n@Component( {\n selector: 'nrcl-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n '[class.primary]': 'primary',\n '[class.outline]': 'outline && !primary',\n '[class.disabled]': 'disabled',\n '[class.compact]': 'isCompact',\n '[class.icon-left]': '!isCompact && icon',\n '[class.icon-right]': '!isCompact && iconRight && label',\n '[class.label]': 'label'\n }\n} )\nexport class ButtonComponent extends ConfigurationSubscriberBase { \n @Input() label\n @Input() icon\n @Input() iconRight\n @Input() iconCompact\n @Input() tooltip\n @Input() compact\n @Input( { transform: booleanAttribute } ) primary = false\n @Input( { transform: booleanAttribute } ) outline = false\n @Input( { transform: booleanAttribute } ) disabled = false\n\n @Output() click = new EventEmitter<PointerEvent>()\n\n isCompact\n\n zone = inject( NgZone )\n\n onClick( ev: PointerEvent ) {\n if ( this.disabled ) return\n\n this.click.emit( ev )\n }\n\n onConfigurationChange(): void {\n // apparently this is needed to ensure that the host binding updates properly\n this.zone.run( () => {\n if ( this.compact == null || this.compact === false ) {\n this.isCompact = false\n }\n else if ( this.compact == '' || this.compact === true ) {\n this.isCompact = true\n }\n else {\n this.isCompact = this.compact == this.configuration.displayMode\n }\n\n this.changeDetectorRef.markForCheck()\n } )\n }\n}\n","<button \n matRipple\n (click)=\"onClick( $event )\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n>\n @if ( icon || iconRight || iconCompact || label ) {\n @if ( icon && ( !isCompact || !iconCompact ) ) { \n <nrcl-icon class=\"left\">{{ icon }}</nrcl-icon> \n }\n\n @if ( !isCompact && iconRight && label ) { \n <nrcl-icon class=\"right\">{{ iconRight }}</nrcl-icon> \n }\n\n @if ( isCompact && iconCompact ) { \n <nrcl-icon class=\"compact\">{{ iconCompact }}</nrcl-icon> \n }\n\n @if ( label ) {\n <span class=\"label\">{{ label }}</span> \n }\n }\n @else {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n }\n</button>\n","import { AfterContentInit, booleanAttribute, ChangeDetectorRef, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component( {\n selector: 'nrcl-cell-content',\n templateUrl: './cell-content.component.html',\n styleUrl: './cell-content.component.scss',\n} )\nexport class CellContentComponent implements AfterContentInit {\n @Input() tooltip\n @Input() content\n \n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n tooltipContent\n\n ngAfterContentInit(): void {\n setTimeout( () => {\n if ( this.tooltip == null || this.tooltip === false ) {\n // no tooltip \n }\n else if ( this.tooltip == '' || this.tooltip === true ) {\n this.tooltipContent = this.content || this.elementRef?.nativeElement?.textContent\n }\n else {\n this.tooltipContent = this.tooltip\n }\n \n this.changeDetectorRef.detectChanges()\n } )\n }\n}\n","<div [matTooltip]=\"tooltipContent\" class=\"content\">\n @if ( content ) {\n {{ content }}\n }\n @else {\n <ng-content></ng-content>\n }\n</div>\n","import { ChangeDetectorRef, Component, ContentChild, Directive, HostListener, inject, TemplateRef } from \"@angular/core\";\nimport { ConfigurationSubscriberBase } from \"../../directives/configuration-subscriber.base\";\n\n@Directive({\n selector: \"[desktop-view]\"\n})\nexport class DesktopViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Directive({\n selector: \"[mobile-view]\"\n})\nexport class MobileViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Component({\n selector: \"nrcl-device-view\",\n template: `\n @if ( mobileVisible && mobileContent ) {\n <ng-container [ngTemplateOutlet]=\"mobileContent.templateRef\"></ng-container>\n }\n\n @if ( desktopVisible && desktopContent ) {\n <ng-container [ngTemplateOutlet]=\"desktopContent.templateRef\"></ng-container>\n }\n `,\n})\nexport class DeviceViewComponent extends ConfigurationSubscriberBase {\n @ContentChild( DesktopViewDirective ) desktopContent!: DesktopViewDirective;\n @ContentChild( MobileViewDirective ) mobileContent!: MobileViewDirective;\n\n changeDetectorRef = inject( ChangeDetectorRef )\n\n get desktopVisible() { return this.configuration.displayMode == 'desktop' }\n get mobileVisible() { return this.configuration.displayMode == 'mobile' }\n}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\nimport { MatExpansionPanel } from \"@angular/material/expansion\";\n\n@Component({\n selector: \"nrcl-expansion-panel\",\n templateUrl: \"./expansion-panel.component.html\",\n styleUrl: \"./expansion-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.is-loading]': 'isLoading',\n '[class.expanded]': 'matExpansionPanel?.expanded',\n '[class.disabled]': 'disabled',\n }\n})\nexport class ExpansionPanelComponent {\n @Input() isLoading: boolean = false;\n @Input() disabled = false;\n @Input() expanded = false\n\n @Output() expandedChange = new EventEmitter<boolean>()\n\n @ViewChild( 'panel' ) matExpansionPanel: MatExpansionPanel\n}\n\n@Component({\n selector: \"nrcl-expansion-panel-header\",\n template: `\n <div class=\"left-side\">\n <ng-content select=\"[left-side],h2,h3\"></ng-content>\n </div>\n\n <div class=\"right-side\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n :host {\n display: flex;\n color: #212121;\n width: 100%;\n }\n\n .left-side {\n display: flex;\n flex-direction: column;\n padding: 10px 0; \n align-self: flex-start;\n }\n\n .left-side ::ng-deep h2 {\n font-size: var( --nrcl-font-size-h2);\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .left-side ::ng-deep h3 {\n font-size: var( --nrcl-font-size-h3 );\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .right-side {\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n align-self: center;\n }\n `],\n})\nexport class ExpansionPanelHeaderComponent {}\n\n@Component({\n selector: \"nrcl-expansion-panel-footer\",\n template: `\n @if ( showWarning ) {\n <div class=\"warning\">\n <nrcl-icon>warning</nrcl-icon>\n <span>{{ warningMessage }}</span>\n </div>\n }\n\n @if ( cancelEnabled != null ) {\n <nrcl-button\n label=\"Cancel\"\n iconCompact=\"cancel\"\n compact=\"mobile\"\n [disabled]=\"!cancelEnabled\"\n (click)=\"cancelClick.emit( $event )\"\n ></nrcl-button>\n }\n\n @if ( saveEnabled != null ) {\n <nrcl-button primary\n label=\"Save\"\n iconCompact=\"save\"\n compact=\"mobile\"\n [disabled]=\"!saveEnabled\"\n (click)=\"saveClick.emit( $event )\"\n ></nrcl-button>\n }\n\n <ng-content></ng-content>\n `,\n styles: [`\n :host {\n border-top: 1px solid #c6c8cb;\n padding: var(--nrcl-gutter-space);\n background-color: #f2f2f2;\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n :host:empty {\n display: none;\n }\n\n .warning {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .warning nrcl-icon {\n color: #FCBA19; \n }\n `],\n})\nexport class ExpansionPanelFooterComponent {\n @Input() saveEnabled \n @Input() cancelEnabled \n @Input() warningMessage = 'Unsaved Changes'\n @Input() showWarning = false\n\n @Output() saveClick = new EventEmitter<PointerEvent>()\n @Output() cancelClick = new EventEmitter<PointerEvent>()\n}\n","<mat-expansion-panel #panel \n togglePosition=\"before\"\n [expanded]=\"expanded\" \n [disabled]=\"disabled\" \n (opened)=\"expandedChange.emit( true )\" \n (closed)=\"expandedChange.emit( false )\" \n>\n <mat-expansion-panel-header>\n <mat-panel-description>\n <ng-content select=\"nrcl-expansion-panel-header\"></ng-content>\n\n @if ( isLoading ) {\n <mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"nrcl-expansion-panel-footer\"></ng-content>\n</mat-expansion-panel>","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filter-container\",\n templateUrl: \"./filter-container.component.html\",\n styleUrl: \"./filter-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterContainerComponent {\n @Input() label = '[label]'\n @Input() hint\n}\n","<mat-form-field\n floatLabel=\"always\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput>\n\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field>\n","export const DATE_FORMATS = {\n fullPickerInput: \"Y-MM-DD HH:mm\",\n datePickerInput: \"Y-MM-DD\",\n timePickerInput: \"HH:mm\",\n monthYearLabel: \"Y-MM\",\n dateA11yLabel: \"Y-MMM-DD\",\n monthYearA11yLabel: \"YYYY-MMM\",\n simplifiedDate: \"MMM DD\",\n simplifiedMonthDate: \"MM-DD\",\n fullPickerInputWithSlash: \"Y-MM-DD/ HH:mm\",\n API_DATE: \"Y-MM-DD\",\n API_TIMESTAMP: 'Y-MM-DD HH:mm:ss',\n API_TIMESTAMP_WITH_SEP: 'Y-MM-DDTHH:mm:ss'\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport moment from \"moment\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\n@Component( {\n selector: \"nrcl-filter-date\",\n templateUrl: \"./filter-date.component.html\",\n styleUrl: \"./filter-date.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterDateComponent {\n @Input() label = '[label]]'\n @Input() placeholder = 'Select...'\n @Input() hint\n @Input() value = moment().format( DATE_FORMATS.datePickerInput )\n\n @Output() valueChange = new EventEmitter<string>();\n\n onDateChange( ev ) {\n if ( !ev ) {\n this.valueChange.emit( null )\n return\n }\n\n let date = ev.format( DATE_FORMATS.datePickerInput )\n this.valueChange.emit( date )\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput class=\"search-input\" \n [ngModel]=\"value\" \n (ngModelChange)=\"onDateChange( $event )\"\n [placeholder]=\"placeholder\"\n [owlDateTime]=\"selectedDateDT\" \n maxlength=\"10\" \n appWFDateMask\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <button class=\"select-date\"\n [owlDateTimeTrigger]=\"selectedDateDT\" \n aria-label=\"Open Select Date Picker\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>event</nrcl-icon>\n </button>\n</mat-form-field>\n\n<owl-date-time #selectedDateDT pickerType=\"calendar\"></owl-date-time>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewChild\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filter-search\",\n templateUrl: \"./filter-search.component.html\",\n styleUrl: \"./filter-search.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\"\n }\n} )\nexport class FilterSearchComponent {\n @Input() label = 'Search'\n @Input() placeholder = 'Search...'\n @Input() hint\n @Input() value: string\n\n @Output() valueChange = new EventEmitter<string>();\n\n @ViewChild( 'input' ) inputEl: ElementRef\n\n hasValue = false\n changeDetectorRef = inject( ChangeDetectorRef )\n\n emitValueChange( val? ) {\n this.hasValue = !!val\n this.valueChange.emit( val )\n }\n\n onInput( ev ) {\n this.value = ev?.target?.value\n this.emitValueChange( ev?.target?.value )\n }\n\n onCancelClick() {\n this.value = null\n this.emitValueChange()\n }\n\n focus() {\n this.inputEl.nativeElement.focus()\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input class=\"search-input\" #input\n matInput\n [value]=\"value || ''\"\n (input)=\"onInput( $event )\"\n [placeholder]=\"placeholder\"\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if ( value ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n } \n</mat-form-field>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { MatSelectionListChange } from \"@angular/material/list\";\nimport { fromEvent } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\n\n\n/**\n * A filter select component that allows users to select multiple options from a list.\n *\n * Features:\n * - Multi-select with optional maximum selection limit\n * - Search/filter functionality\n * - Tooltips for long descriptions\n * - Summary display of selected items\n */\n@Component( {\n selector: \"nrcl-filter-select\",\n templateUrl: \"./filter-select.component.html\",\n styleUrl: \"./filter-select.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\",\n '[class.is-open]': \"isOpen\",\n '[class.is-closed]': \"!isOpen\",\n '[class.use-filter]': \"filter\",\n }\n} )\nexport class FilterSelectComponent implements OnChanges {\n @Input() label\n @Input() placeholder = 'Filter...'\n @Input() hint\n @Input() options: CodeDescription[]\n @Input() value: string[]\n @Input( { transform: numberAttribute } ) selectMax = 0\n @Input( { transform: booleanAttribute } ) tooltips = true\n @Input( { transform: booleanAttribute } ) summary = true\n @Input( { transform: booleanAttribute } ) clear = true\n @Input( { transform: booleanAttribute } ) filter = true\n\n @Output() valueChange = new EventEmitter<string[]>();\n\n floatLabel = 'auto'\n inputValue\n openingValue\n isFiltered = false\n isOpen = false\n hasValue = false\n overlayRef: OverlayRef\n selection = new FormControl()\n match: ( option: CodeDescription ) => boolean = ( o ) => true\n clickSubscription\n\n changeDetectorRef = inject( ChangeDetectorRef )\n overlay = inject( Overlay )\n viewContainerRef = inject( ViewContainerRef )\n\n @ViewChild( 'trigger', { read: ElementRef } ) trigger!: ElementRef\n @ViewChild( 'filterInput' ) filterInput!: ElementRef\n @ViewChild( 'overlayTemplate' ) overlayTemplate!: TemplateRef<any>\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( this.isOpen ) return\n\n if ( changes.options ) {\n let pv = JSON.stringify( changes.options.previousValue )\n let cv = JSON.stringify( changes.options.currentValue )\n if ( pv != cv ) {\n this.selection.setValue( null )\n this.setInputToSelection()\n this.setFilter()\n }\n }\n\n if ( changes.value ) {\n let pv = JSON.stringify( changes.value.previousValue )\n let cv = JSON.stringify( changes.value.currentValue )\n if ( pv != cv ) {\n if ( this.value ) {\n this.hasValue = this.value.length > 0\n this.selection.setValue( this.value )\n if ( this.selectMax > 1 && this.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n else {\n this.hasValue = false\n this.selection.setValue( null )\n this.selection.enable()\n }\n\n this.setFilter()\n this.setInputToSelection()\n this.changeDetectorRef.detectChanges()\n }\n }\n }\n\n get single() {\n return this.selectMax == 1\n }\n\n emitValueChange() {\n this.hasValue = ( this.selection.value || [] ).length > 0\n this.valueChange.emit( this.selection.value || [] )\n }\n\n open() {\n if ( this.isOpen ) return\n\n this.isOpen = true\n this.floatLabel = 'always'\n if ( this.filter ) {\n this.inputValue = ''\n }\n else {\n\n }\n\n // Create overlay\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo( this.trigger )\n .withPositions( [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 0\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 0\n }\n ] )\n .withPush( false )\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition()\n\n this.overlayRef = this.overlay.create( {\n positionStrategy,\n scrollStrategy,\n hasBackdrop: false,\n maxWidth: this.trigger.nativeElement.offsetWidth * 2,\n minWidth: this.trigger.nativeElement.offsetWidth,\n maxHeight: 300,\n } )\n\n // Attach template\n const portal = new TemplatePortal( this.overlayTemplate, this.viewContainerRef )\n this.overlayRef.attach( portal )\n\n // Listen to document clicks after a small delay to avoid closing immediately\n setTimeout( () => {\n this.clickSubscription = fromEvent<MouseEvent>( document, 'click' )\n .pipe( filter( ( event: MouseEvent ) => {\n const clickTarget = event.target as HTMLElement\n const triggerEl = this.trigger.nativeElement\n const overlayEl = this.overlayRef?.overlayElement\n\n // Only close if click is outside both trigger and overlay\n return !triggerEl.contains(clickTarget)\n && !overlayEl?.contains(clickTarget)\n } ) )\n .subscribe( () => {\n this.close()\n } )\n } )\n\n // Focus input after overlay is attached\n setTimeout( () => {\n this.filterInput?.nativeElement.focus();\n\n // prevent list from scrolling when selection changes\n this.overlayRef.overlayElement.children[0].scroll( 0, 1 )\n } )\n\n this.setFilter()\n\n this.openingValue = JSON.stringify( this.selection.value )\n }\n\n close() {\n if ( !this.isOpen ) return\n\n this.isOpen = false\n this.setInputToSelection()\n this.floatLabel = 'auto'\n\n if ( this.clickSubscription ) {\n this.clickSubscription.unsubscribe()\n this.clickSubscription = null\n }\n\n if ( this.overlayRef ) {\n this.overlayRef.dispose()\n this.overlayRef = null\n }\n\n this.changeDetectorRef.detectChanges()\n\n let closingValue = JSON.stringify( this.selection.value )\n if ( this.openingValue != closingValue )\n this.emitValueChange()\n }\n\n setInputToSelection() {\n this.inputValue = this.selection?.value?.map( c => this.descriptionForCode( c ) ).join( ', ' ) || null\n }\n\n onInput( ev?) {\n this.setFilter( ev?.target?.value )\n }\n\n setFilter( text?: string ) {\n let t = text?.trim().toLowerCase()\n\n if ( t ) {\n this.isFiltered = true\n this.match = ( option ) => option.description.toLowerCase().includes( t )\n }\n else {\n this.isFiltered = false\n this.match = ( o ) => true\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n matchesFilter( option: CodeDescription ) {\n return this.match( option )\n }\n\n onSelectionChange( ev ) {\n if ( this.single ) {\n this.close()\n }\n else {\n this.filterInput?.nativeElement.focus()\n }\n\n if ( this.selectMax > 1 ) {\n if ( this.selection.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n onUpperSelectionChange( ev: MatSelectionListChange ) {\n setTimeout(() => {\n let codes = this.selection.value.filter( c => c != ev.options[ 0 ].value )\n this.selection.setValue( codes )\n\n this.onSelectionChange( ev )\n })\n }\n\n onCancelClick() {\n this.selection.setValue( null )\n this.selection.enable()\n this.setInputToSelection()\n this.emitValueChange()\n }\n\n onInputFocus() {\n this.open()\n }\n\n onCloseClick() {\n this.close()\n }\n\n descriptionForCode( code: string ): string {\n return this.options.find( o => o.code == code )?.description\n }\n}\n","<mat-form-field #trigger\n [floatLabel]=\"floatLabel\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n @if ( label ) {\n <mat-label>{{ label }}</mat-label>\n }\n\n <input class=\"filter-input\" #searchInput\n matInput \n [placeholder]=\"placeholder\" \n [value]=\"inputValue\"\n (input)=\"onInput( $event )\"\n (keydown.escape)=\"close()\"\n (focus)=\"onInputFocus()\"\n [matTooltip]=\"inputValue\"\n [readonly]=\"!filter\"\n >\n\n @if ( isOpen ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCloseClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>arrow_drop_up</nrcl-icon>\n </button>\n }\n @else if ( selection?.value?.length > 0 && clear ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n }\n @else {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>arrow_drop_down</nrcl-icon>\n </button>\n } \n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field> \n\n<ng-template #overlayTemplate>\n <div class=\"filter-select-options\" [class.multiple]=\"!single\" [class.single]=\"single\">\n @if ( !isFiltered && !single && summary ) {\n @if ( selection?.value?.length > 0 && selection?.value?.length < options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">{{ selection?.value?.length }} selected of {{ options?.length }}</div>\n\n <mat-selection-list\n (selectionChange)=\"onUpperSelectionChange( $event )\"\n >\n @for ( code of selection?.value; track code ) {\n <mat-list-option \n [value]=\"code\" \n togglePosition=\"before\"\n selected\n [matTooltip]=\"tooltips ? descriptionForCode( code ) : null\"\n matTooltipPosition=\"after\"\n >\n {{ descriptionForCode( code ) }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n }\n\n @if ( selection?.value?.length == options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">All options selected</div>\n </div>\n }\n }\n\n <mat-selection-list\n [formControl]=\"selection\"\n (selectionChange)=\"onSelectionChange( $event )\"\n [multiple]=\"!single\"\n hideSingleSelectionIndicator\n >\n @for ( option of options; track option ) {\n <mat-list-option [class.hide]=\"!matchesFilter( option )\"\n [value]=\"option.code\" \n togglePosition=\"before\" \n [matTooltip]=\"tooltips ? option.description : null\"\n matTooltipPosition=\"after\" \n >\n {{ option.description }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filters-panel\",\n templateUrl: \"./filters-panel.component.html\",\n styleUrl: \"./filters-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FiltersPanelComponent {\n @Input() showClear = true\n @Input() showFilters = true\n @Input() hasAdvancedFilters = false\n @Input() showAdvancedFilters = false\n\n @Output() clearFilters = new EventEmitter()\n @Output() showFiltersChange = new EventEmitter<boolean>()\n @Output() showAdvancedFiltersChange = new EventEmitter<boolean>()\n\n onClearClick() {\n this.clearFilters.emit()\n }\n\n onHideClick() {\n this.showFilters = false\n this.showFiltersChange.emit( false )\n }\n\n onShowClick() {\n this.showFilters = true\n this.showFiltersChange.emit( true )\n }\n\n onHideAdvancedClick() {\n this.showAdvancedFilters = false\n this.showAdvancedFiltersChange.emit( false )\n }\n\n onShowAdvancedClick() {\n this.showAdvancedFilters = true\n this.showAdvancedFiltersChange.emit( true )\n }\n}\n","@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <!-- <div class=\"spacer\"></div> -->\n\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n</div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-form-field\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-field.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.required]': \"required\",\n '[class.readonly]': \"readonly\",\n }\n})\nexport class FormFieldComponent implements OnChanges {\n @Input( { transform: booleanAttribute } ) required\n @Input( { transform: booleanAttribute } ) readonly\n\n element = inject( ElementRef )\n renderer = inject( Renderer2 )\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( changes.readonly ) {\n if ( this.readonly ) {\n makeFormFieldReadonly( this.renderer, this.element.nativeElement )\n }\n else {\n makeFormFieldNotReadonly( this.renderer, this.element.nativeElement )\n }\n }\n }\n}\n\nfunction makeFormFieldReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(inputHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(textareaHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.addClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.setAttribute(selectHtmlElement, \"readonly\", \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = true;\n }\n });\n }\n}\n\nfunction makeFormFieldNotReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n // renderer.removeClass(formFieldEl, \"readonly\");\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(inputHtmlElement, \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(textareaHtmlElement, \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.removeAttribute(selectHtmlElement, \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = undefined;\n }\n });\n }\n}","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-form-layout\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-layout.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormLayoutComponent {\n}\n","import { booleanAttribute, Component, Input } from '@angular/core';\n\n@Component( {\n selector: 'nrcl-gap',\n template: '',\n styleUrl: './gap.component.scss',\n} )\nexport class GapComponent {\n @Input( { transform: booleanAttribute } ) horizontal = false\n @Input( { transform: booleanAttribute } ) vertical = false\n}\n","import { Injectable } from \"@angular/core\";\n\ntype StateContainer = {\n label: string\n state: any\n}\n\n@Injectable( {\n providedIn: \"root\"\n} )\nexport class PageStateService {\n private readonly classRegistry = new WeakMap<Function, StateContainer>();\n\n constructor() {\n }\n\n getPageState<S>( classConstructor: Function, defaultState: S, label?: string ): S {\n if ( this.classRegistry.has( classConstructor ) ) {\n let sc = this.classRegistry.get( classConstructor )\n return sc.state\n }\n\n this.setPageState( classConstructor, defaultState, label )\n return defaultState\n }\n\n setPageState<S>( classConstructor: Function, state: S, label?: string ) {\n let sc: StateContainer = { label, state }\n this.classRegistry.set( classConstructor, sc )\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport class Aborted {\n constructor( public reason: string ) {}\n}\n\nexport class ObservableAborter<T> {\n private _promise: Promise<T>\n private _abort: () => void\n private _aborted: boolean\n\n constructor( \n private observable: () => Observable<T>,\n private delay: number = 500\n ) {\n this._promise = new Promise( ( res, rej ) => {\n let timer = setTimeout(() => {\n let sub = this.observable().subscribe( {\n next: res,\n error: rej\n } )\n\n this._abort = () => {\n sub.unsubscribe()\n rej( new Aborted( 'aborted request' ) )\n this._abort = null\n }\n }, this.delay);\n\n this._abort = () => {\n clearTimeout( timer )\n rej( new Aborted( 'aborted timer' ) ) \n this._abort = null\n }\n } )\n }\n\n abort() {\n if ( this._aborted ) return\n this._aborted = true\n if ( !this._abort ) return\n this._abort()\n }\n\n get aborted(): boolean {\n return this._aborted\n }\n\n get promise(): Promise<T> {\n return this._promise\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, inject, Output } from \"@angular/core\";\nimport { SortDirection } from \"@angular/material/sort\";\nimport { Observable } from \"rxjs\";\nimport { PageStateService } from \"../services/page-state.service\";\nimport { ObservableAborter, Aborted } from \"../utils/row-list.util\";\nimport { CodeDescription } from \"../public-api\";\n\nexport type RowListState<F> = {\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n}\n\nexport type LoadRowListResult<R> = { \n rows: R[], \n totalRowCount: number \n}\n\n@Directive()\nexport class RowListBase<F,R,L=any> implements RowListState<F>, AfterViewInit {\n @Output() isLoadingChange = new EventEmitter<boolean>()\n \n private _isLoading = false\n get isLoading() { return this._isLoading }\n set isLoading( v: boolean ) { \n if ( v == this._isLoading ) return \n this._isLoading = v \n this.isLoadingChange.emit( v )\n } \n\n rows: R[] = []\n totalRowCount: number\n\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n\n sortColumns: CodeDescription[]\n summaryMobile: string\n showPagingMobile: boolean\n \n pageStateService = inject( PageStateService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n private _loadRowListRequest: ObservableAborter<L>\n\n constructor() {\n this.initializeRowList()\n }\n\n initializeRowList() {\n this.loadPageState() \n }\n\n ngAfterViewInit(): void {\n this.refreshRowList()\n }\n\n refreshRowList(): Promise<void> {\n this.isLoading = true\n\n return Promise.resolve()\n .then( () => {\n return this.loadRowList()\n } )\n .then( ( { rows, totalRowCount } ) => {\n this.rows = rows\n this.totalRowCount = totalRowCount\n this.isLoading = false\n } )\n .catch( ( e ) => {\n if ( e instanceof Aborted ) return\n\n this.loadRowListPageFailed( e )\n this.isLoading = false\n } )\n .finally( () => {\n this.updateSummaryMobile()\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n loadRowList(): Promise<LoadRowListResult<R>> {\n if ( this._loadRowListRequest )\n this._loadRowListRequest.abort()\n\n this._loadRowListRequest = new ObservableAborter<L>( () => { \n return this.fetchRowListPage()\n } )\n\n return this._loadRowListRequest.promise\n .then( res => {\n return this.displayRowListPage( res )\n } )\n }\n\n fetchRowListPage(): Observable<L> {\n throw 'unimplemented'\n }\n \n displayRowListPage( res: L ): LoadRowListResult<R> {\n throw 'unimplemented'\n }\n\n loadRowListPageFailed( error ) {\n console.warn( error )\n this.rows = []\n this.totalRowCount = 0\n }\n\n onFilterChange( ev ) {\n this.filter = ev\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onSortChange( ev ) {\n this.sortActive = ev.active\n this.sortDirection = ev.direction\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumber = ev\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageSizeChange( ev ) {\n this.pageSize = ev \n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n updateSummaryMobile() {\n [ this.summaryMobile, this.showPagingMobile ] = makeSummary( this.totalRowCount, this.pageNumber, this.pageSize )\n }\n\n get initialPageState(): RowListState<F> {\n throw 'unimplemented'\n }\n\n loadPageState() {\n let state = this.pageStateService.getPageState<RowListState<F>>( this.constructor, this.initialPageState )\n\n this.filter = state.filter\n this.pageSize = state.pageSize\n this.pageNumber = state.pageNumber\n this.sortActive = state.sortActive\n this.sortDirection = state.sortDirection\n }\n\n savePageState() {\n let state: RowListState<F> = JSON.parse( JSON.stringify( {\n filter: this.filter,\n pageSize: this.pageSize,\n pageNumber: this.pageNumber,\n sortActive: this.sortActive,\n sortDirection: this.sortDirection,\n } ) )\n \n this.pageStateService.setPageState<RowListState<F>>( this.constructor, state )\n }\n}\n\nexport function makeSummary( rowCount, pageNumber, pageSize ): [ string, boolean ] {\n if ( rowCount && pageSize ) {\n let pageCount = Math.ceil( rowCount / pageSize )\n\n let first = ( Math.min( pageCount, pageNumber ) - 1 ) * pageSize + 1\n let last = Math.min( first + pageSize - 1, rowCount )\n\n return [ `Showing ${ first } to ${ last } of ${ rowCount }`, true ]\n }\n else {\n return [ \"No records to display.\", false ]\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-row-list-desktop\",\n templateUrl: \"./row-list-desktop.component.html\",\n styleUrl: \"./row-list-desktop.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListDesktopComponent {\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-row-list-mobile\",\n templateUrl: \"./row-list-mobile.component.html\",\n styleUrl: \"./row-list-mobile.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListMobileComponent {\n}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output\n} from \"@angular/core\";\n\nexport type RowListPaginationWidth = 'sufficient'|'tight'|'restrictive'\n\n@Component({\n selector: \"nrcl-row-list-pagination\",\n templateUrl: \"./row-list-pagination.component.html\",\n styleUrl: \"./row-list-pagination.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.width-sufficient]': \"componentWidth == 'sufficient'\",\n '[class.width-tight]': \"componentWidth == 'tight'\",\n '[class.width-restrictive]': \"componentWidth == 'restrictive'\",\n }\n})\nexport class RowListPaginationComponent implements AfterViewInit {\n @Input() paginationId = '1'\n @Input() pageSizeOptions = [ \n { code: 5, description: '5 Rows' },\n { code: 10, description: '10 Rows' },\n { code: 20, description: '20 Rows' },\n { code: 50, description: '50 Rows' },\n { code: 100, description: '100 Rows' },\n ]\n @Input() pageSize = 20\n @Input() pageNumber\n @Input() rowCount\n @Input() showPageSize = true \n @Input() noRowsMessage = 'No records to display.'\n\n @Output() pageSizeChange = new EventEmitter<number>();\n @Output() pageNumberChange = new EventEmitter<number>();\n\n componentWidth: RowListPaginationWidth = 'sufficient'\n paginationMaxSize = 5\n\n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n \n ngAfterViewInit(): void {\n this.checkWidth()\n }\n \n onPageSizeChange( ev ) { \n this.pageSizeChange.emit( Number( ev ) )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumberChange.emit( Number( ev ) )\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event) {\n this.checkWidth()\n }\n\n checkWidth() {\n setTimeout( () => {\n let w = this.elementRef?.nativeElement.offsetWidth \n if ( !w ) return\n\n switch ( true ) {\n case w > 600: \n this.componentWidth = 'sufficient'\n this.paginationMaxSize = 5\n break\n\n case w > 500: \n this.componentWidth = 'tight'; \n this.paginationMaxSize = 3\n break\n\n default: \n this.componentWidth = 'restrictive'\n this.paginationMaxSize = 4\n }\n\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n get pageCount() {\n if ( !this.hasRows ) return 0\n return Math.ceil( this.rowCount / this.pageSize )\n }\n\n get firstRow() {\n if ( !this.hasRows ) return 0\n return ( Math.min( this.pageCount, this.pageNumber ) - 1 ) * this.pageSize + 1\n }\n\n get lastRow() {\n if ( !this.hasRows ) return 0\n return Math.min( this.firstRow + this.pageSize - 1, this.rowCount )\n }\n\n get hasRows() {\n return this.rowCount\n }\n}\n","@if ( hasRows ) {\n <nrcl-filter-container class=\"summary\"\n label=\"Showing Rows\"\n >\n <span>{{ firstRow }} to {{ lastRow }} <small>(of {{ rowCount }})</small></span>\n </nrcl-filter-container>\n}\n@else {\n <div class=\"no-rows\">{{ noRowsMessage }}</div>\n}\n\n@if ( hasRows ) {\n <div class=\"pagination\">\n <pagination-controls \n [id]=\"paginationId\" \n [maxSize]=\"paginationMaxSize\"\n [responsive]=\"false\"\n [directionLinks]=\"true\"\n previousLabel=\"\"\n nextLabel=\"\"\n [autoHide]=\"false\"\n (pageChange)=\"onPageNumberChange( $event )\"\n ></pagination-controls>\n </div>\n}\n\n@if ( hasRows && showPageSize ) {\n <nrcl-filter-select class=\"page-size\"\n label=\"Page Size\"\n [value]=\"[ pageSize ]\"\n [options]=\"pageSizeOptions\"\n (valueChange)=\"onPageSizeChange( $event[ 0 ] )\"\n selectMax=\"1\"\n [clear]=\"false\"\n [filter]=\"false\"\n placeholder=\"Select...\"\n ></nrcl-filter-select>\n}\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type AttachmentsTableRow = {\n attachmentTypeDescription: string\n fileName: string\n fileExtension: string\n uploadedBy: string\n uploadedTimestamp: string\n attachmentDescription: string\n attachmentId: string \n fileId: string\n sourceObjectUniqueId: string\n}\n\nexport type FetchAttachmentsParameters = { \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface AttachmentRowListProvider<R,L=any> {\n fetchAttachments( x: FetchAttachmentsParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n downloadItem( item: R )\n deleteItem( item: R )\n}\n\n@Component({\n selector: \"nrcl-list-attachments\",\n templateUrl: \"./list-attachments.component.html\",\n styleUrl: \"./list-attachments.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListAttachmentsComponent extends RowListBase<{},AttachmentsTableRow> {\n @Input() rowListProvider: AttachmentRowListProvider<AttachmentsTableRow>\n @Input() canDelete = true\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'attachmentTypeCode', 'fileName', 'sourceObjectNameCode', 'uploadedBy', 'uploadedTimestamp', 'description', 'download' ]\n\n initializeRowList(): void {\n super.initializeRowList()\n }\n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 5,\n pageNumber: 1,\n sortActive: null,\n sortDirection: 'desc',\n }\n }\n\n ngAfterViewInit() {\n if ( this.canDelete )\n this.columns.push( 'delete' )\n \n super.ngAfterViewInit()\n }\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchAttachments ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchAttachments({\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n })\n }\n \n displayRowListPage( res: any ): LoadRowListResult<AttachmentsTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n }\n\n onDownloadClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.downloadItem ) throw Error( 'no provider' )\n\n return this.rowListProvider.downloadItem( item )\n }\n\n onDeleteClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.deleteItem ) throw Error( 'no provider' )\n \n return this.rowListProvider.deleteItem( item )\n }\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }\"\n >\n <ng-container matColumnDef=\"attachmentTypeCode\">\n <th mat-header-cell *matHeaderCellDef>Attachment Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>File Name</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileName }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"sourceObjectNameCode\">\n <th mat-header-cell *matHeaderCellDef>File Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileExtension }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedBy\">\n <th mat-header-cell *matHeaderCellDef>Uploaded By</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedBy }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedTimestamp\">\n <th mat-header-cell *matHeaderCellDef>Uploaded At</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef>Description</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"download\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"delete\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"8\">No records to display.</td>\n </tr> \n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.fileName }}</h2>\n </section>\n\n <section actions>\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n\n @if ( canDelete ) {\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n }\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>Attachment Type</mat-label>\n <div class=\"value\">{{ item.attachmentTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>File Type</mat-label>\n <div class=\"value\">{{ item.fileExtension }}</div>\n </section>\n\n <section>\n <mat-label>Uploaded By</mat-label>\n <div class=\"value\">{{ item.uploadedBy }}</div>\n </section> \n\n <section>\n <mat-label>Uploaded At</mat-label>\n <div class=\"value\">{{ item.uploadedTimestamp }}</div>\n </section> \n\n <section full-width>\n <mat-label>Description</mat-label>\n <div class=\"value\">{{ item.attachmentDescription }}</div>\n </section> \n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type EventHistoryTableRow = {\n eventTimestamp: string\n createdByUserId: string\n eventHistoryTypeDescription: string\n sourceObjectNameDescription: string\n comment: string\n}\n\nexport type FetchEventHistoryParameters = { \n isSupplier: boolean \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface EventHistoryRowListProvider<R,L=any> {\n fetchEventHistory( x: FetchEventHistoryParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n}\n\n@Component({\n selector: \"nrcl-list-event-history\",\n templateUrl: \"./list-event-history.component.html\",\n styleUrl: \"./list-event-history.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListEventHistoryComponent extends RowListBase<{},EventHistoryTableRow> {\n @Input() rowListProvider: EventHistoryRowListProvider<EventHistoryTableRow>\n @Input() canDelete = true\n @Input() showPagination = false\n @Input() isSupplier: boolean = false\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'dateTime', 'changedBy', 'type', 'section', 'comment' ]\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchEventHistory ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchEventHistory( {\n isSupplier: this.isSupplier,\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n } )\n }\n\n displayRowListPage( res: any ): LoadRowListResult<EventHistoryTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n } \n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 20,\n pageNumber: 1,\n sortActive: 'dateTime',\n sortDirection: 'desc',\n }\n }\n\n\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }\"\n matSort \n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n (matSortChange)=\"onSortChange( $event )\">\n >\n <ng-container matColumnDef=\"dateTime\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Date and Time</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changedBy\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>User ID</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.createdByUserId }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventHistoryTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"section\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Section</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.sourceObjectNameDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"comment\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Comment</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.comment }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.comment }}</h2>\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>User ID</mat-label>\n <div class=\"value\">{{ item.createdByUserId }}</div>\n </section>\n\n <section>\n <mat-label>Time</mat-label>\n <div class=\"value\">{{ item.eventTimestamp }}</div>\n </section>\n\n <section>\n <mat-label>Type</mat-label>\n <div class=\"value\">{{ item.eventHistoryTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>Section</mat-label>\n <div class=\"value\">{{ item.sourceObjectNameDescription }}</div>\n </section> \n\n <!-- <section full-width>\n <mat-label>Comment</mat-label>\n <div class=\"value\">{{ item.comment }}</div>\n </section> -->\n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-page-container\",\n templateUrl: \"./page-container.component.html\",\n styleUrl: \"./page-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class PageContainerComponent {}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-page-header\",\n templateUrl: \"./page-header.component.html\",\n styleUrl: \"./page-header.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.isLoading]': 'isLoading',\n }\n})\nexport class PageHeaderComponent {\n @Input() isLoading = false\n}\n","<div class=\"left-side\">\n <ng-content select=\"[left-side],h1,h2\"></ng-content>\n</div>\n\n<div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n <ng-content></ng-content>\n</div>\n\n<mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n","import { CodeDescription } from \"./code-table.util\"\n\nexport function wrapFilterValue( val ) {\n if ( !val ) return []\n if ( Array.isArray( val ) ) return val\n return [ val ]\n}\n\nexport function unwrapFilterValue( val ) {\n if ( !val ) return ''\n if ( Array.isArray( val ) ) return val[ 0 ] || ''\n return val\n}\n\nexport function mapToCodeDescription( list: Array<any>, codeField: string, descriptionField: string ): CodeDescription[] {\n if ( !list ) return list\n return list.map( v => {\n return {\n code: v[ codeField ],\n description: v[ descriptionField ]\n }\n } )\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\nimport { Sort, SortDirection } from \"@angular/material/sort\";\nimport { unwrapFilterValue, wrapFilterValue } from \"../../utils/filter.util\";\n\n@Component({\n selector: \"nrcl-row-list-sorting\",\n templateUrl: \"./row-list-sorting.component.html\",\n styleUrl: \"./row-list-sorting.component.scss\",\n})\nexport class RowListSortingComponent {\n @Input() sortColumn: string\n @Input() sortColumnOptions: CodeDescription[] = []\n @Input() sortDirection: SortDirection = 'asc'\n\n @Output() sortChange = new EventEmitter<Sort>();\n\n wrapFilterValue = wrapFilterValue \n unwrapFilterValue = unwrapFilterValue\n \n onSortColumnChange( ev ) {\n this.sortColumn = ev\n this.emitSortChange()\n }\n\n onSortDirectionChange() {\n this.emitSortChange()\n }\n\n emitSortChange() {\n this.sortChange.emit( { \n active: this.sortColumn,\n direction: this.sortDirection\n } )\n }\n}\n","<nrcl-filter-select class=\"sort-order\" \n label=\"Sort By\"\n [value]=\"wrapFilterValue( sortColumn )\"\n [options]=\"sortColumnOptions\"\n (valueChange)=\"onSortColumnChange( unwrapFilterValue( $event ) )\"\n selectMax=\"1\" \n></nrcl-filter-select>\n\n<nrcl-filter-container class=\"sort-direction\" \n label=\"Sort Order\"\n>\n <mat-radio-group\n [(ngModel)]=\"sortDirection\" \n (ngModelChange)=\"onSortDirectionChange()\"\n [disabled]=\"!sortColumn\"\n >\n <mat-radio-button aria-label=\"Sort A to Z\" value=\"asc\">A &rarr; Z</mat-radio-button>\n <mat-radio-button aria-label=\"Sort Z to A\" value=\"desc\">Z &rarr; A</mat-radio-button>\n </mat-radio-group>\n</nrcl-filter-container>\n","import { Component, Inject } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from \"@angular/material/snack-bar\";\n\nexport type SnackbarType = 'success'|'error'|'info'|'update'\n\nexport type SnackbarConfig = {\n message: string\n type: SnackbarType\n}\n\n@Component({\n selector: 'nrcl-snackbar',\n templateUrl: \"./snackbar.component.html\",\n styleUrl: \"./snackbar.component.scss\",\n host: {\n '[class]': 'className'\n }\n})\nexport class SnackbarComponent {\n constructor(\n public snackBarRef: MatSnackBarRef<SnackbarComponent>,\n @Inject(MAT_SNACK_BAR_DATA) public config: SnackbarConfig\n ) { }\n\n get className() {\n return 'snackbar-type-' + this.config.type\n }\n}\n","<div class=\"icon\">\n @switch ( config.type ) {\n @case ( 'success' ) {\n <nrcl-icon>check_circle</nrcl-icon>\n }\n @case ( 'error' ) {\n <nrcl-icon>cancel</nrcl-icon>\n }\n @case ( 'info' ) {\n <nrcl-icon>info</nrcl-icon>\n }\n @case ( 'update' ) {\n <nrcl-icon>error</nrcl-icon>\n }\n }\n</div>\n\n<div class=\"message\">\n <span>{{ config.message }}</span>\n</div>\n\n<div class=\"button\">\n <button (click)=\"snackBarRef.dismissWithAction()\">Close</button>\n</div>\n","import { inject, Injectable } from \"@angular/core\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { SnackbarComponent, SnackbarConfig } from \"../components/snackbar/snackbar.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarUtilService {\n snackbar = inject( MatSnackBar )\n\n successful( message: string, duration = 5000 ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'success',\n message: message\n }\n }\n )\n }\n\n successfullySaved( message: string, duration = 5000 ) {\n this.successful( `${ message } saved successfully.`, duration )\n }\n\n successfullyDeleted( message: string, duration = 5000 ) {\n this.successful( `${ message } deleted successfully.`, duration )\n }\n\n successfullyRemoved( message: string, duration = 5000 ) {\n this.successful( `${ message } removed successfully.`, duration )\n }\n\n successfullyCreated( message: string, duration = 5000 ) {\n this.successful( `${ message } created successfully.`, duration )\n }\n\n successfullyAdded( message: string, duration = 5000 ) {\n this.successful( `${ message } added successfully.`, duration )\n }\n\n information( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'info',\n message: message\n }\n }\n )\n }\n\n error( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'error',\n message: message\n }\n }\n )\n }\n\n updated( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'update',\n message: message\n }\n }\n )\n }\n}\n","export type CodeDescription = {\n code: string\n description: string\n}\n\nexport class CodeTable {\n constructor( \n // private _items: ( CodeDescription | CodeData | Option )[], \n private _items: ( CodeDescription )[], \n private _reload?: () => Promise<CodeDescription[]> \n ) {}\n\n get items(): readonly CodeDescription[] {\n return this._items\n }\n\n forCode( code: string ): CodeDescription {\n return this._items.find( o => o.code == code )\n }\n\n reload(): Promise<void> {\n if ( !this._reload ) return Promise.reject( 'no reload defined' )\n\n return this._reload()\n .then( res => {\n this._items = res\n } )\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { OWL_DATE_TIME_FORMATS, OwlDateTimeModule, OwlMomentDateTimeModule } from \"@busacca/ng-pick-datetime\";\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CellContentComponent } from './components/cell-content/cell-content.component';\nimport { DesktopViewDirective, DeviceViewComponent, MobileViewDirective } from './components/device-view/device-view.component';\nimport { ExpansionPanelComponent, ExpansionPanelFooterComponent, ExpansionPanelHeaderComponent } from './components/expansion-panel/expansion-panel.component';\nimport { FilterContainerComponent } from './components/filter-container/filter-container.component';\nimport { FilterDateComponent } from './components/filter-date/filter-date.component';\nimport { FilterSearchComponent } from './components/filter-search/filter-search.component';\nimport { FilterSelectComponent } from './components/filter-select/filter-select.component';\nimport { FiltersPanelComponent } from './components/filters-panel/filters-panel.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { FormLayoutComponent } from './components/form-layout/form-layout.component';\nimport { GapComponent } from './components/gap/gap.component';\nimport { ListAttachmentsComponent } from './components/list-attachments/list-attachments.component';\nimport { ListEventHistoryComponent } from './components/list-event-history/list-event-history.component';\nimport { PageContainerComponent } from './components/page-container/page-container.component';\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\nimport { RowListDesktopComponent } from './components/row-list-desktop/row-list-desktop.component';\nimport { RowListMobileComponent } from './components/row-list-mobile/row-list-mobile.component';\nimport { RowListPaginationComponent } from './components/row-list-pagination/row-list-pagination.component';\nimport { RowListSortingComponent } from './components/row-list-sorting/row-list-sorting.component';\nimport { SnackbarComponent } from './components/snackbar/snackbar.component';\nimport { ConfigurationService } from './services/configuration.service';\nimport { PageStateService } from './services/page-state.service';\nimport { SnackbarUtilService } from './services/snackbar-util.service';\nimport { DATE_FORMATS } from './utils/date.util';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconComponent } from './components/icon/icon.component';\n\n@NgModule({\n imports: [\n BrowserAnimationsModule,\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatRadioModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatRippleModule,\n MatSortModule,\n MatTableModule,\n MatTooltipModule,\n ReactiveFormsModule,\n RouterModule,\n OwlDateTimeModule,\n OwlMomentDateTimeModule,\n NgxPaginationModule,\n ],\n declarations: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent\n ],\n exports: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent\n ],\n providers: [\n SnackbarUtilService,\n ConfigurationService,\n PageStateService,\n { provide: OWL_DATE_TIME_FORMATS, useValue: DATE_FORMATS },\n ]\n})\nexport class NrNgxComponentLibModule {\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n this.matIconRegistry.addSvgIcon(\n \"filter-cancel\",\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/app-icons/filter-cancel.svg\")\n );\n\n }\n}\n","/*\n * Public API Surface of wfcc-application-ui\n */\nexport * from './components/button/button.component'\nexport * from './components/cell-content/cell-content.component'\nexport * from './components/device-view/device-view.component'\nexport * from './components/expansion-panel/expansion-panel.component'\nexport * from './components/filter-container/filter-container.component'\nexport * from './components/filter-date/filter-date.component'\nexport * from './components/filter-search/filter-search.component'\nexport * from './components/filter-select/filter-select.component'\nexport * from './components/filters-panel/filters-panel.component'\nexport * from './components/form-field/form-field.component'\nexport * from './components/form-layout/form-layout.component'\nexport * from './components/icon/icon.component'\nexport * from './components/gap/gap.component'\nexport * from './components/list-attachments/list-attachments.component'\nexport * from './components/list-event-history/list-event-history.component'\nexport * from './components/page-container/page-container.component'\nexport * from './components/page-header/page-header.component'\nexport * from './components/row-list-desktop/row-list-desktop.component'\nexport * from './components/row-list-mobile/row-list-mobile.component'\nexport * from './components/row-list-pagination/row-list-pagination.component'\nexport * from './components/row-list-sorting/row-list-sorting.component'\nexport * from './components/snackbar/snackbar.component'\n\nexport * from './directives/configuration-subscriber.base'\nexport * from './directives/row-list.base'\n\nexport * from './services/snackbar-util.service'\nexport * from './services/configuration.service'\nexport * from './services/page-state.service'\n\nexport * from './utils/code-table.util'\nexport * from './utils/date.util'\nexport * from './utils/filter.util'\nexport * from './utils/row-list.util'\n\nexport * from './nr-ngx-component-lib.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.IconComponent","i2","i3.ButtonComponent","i4.IconComponent","i6.IconComponent","i3","i5","i6","i7.IconComponent","i1.ButtonComponent","i2.MobileViewDirective","i2.DeviceViewComponent","i2.FilterContainerComponent","i3.FilterSelectComponent","i4.ButtonComponent","i5.CellContentComponent","i6.GapComponent","i7.RowListDesktopComponent","i8.RowListMobileComponent","i9.RowListPaginationComponent","i10.DesktopViewDirective","i10.MobileViewDirective","i10.DeviceViewComponent","i4","i3.FilterContainerComponent","i4.FilterSelectComponent","i2.IconComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAYa,oBAAoB,CAAA;AAU7B,IAAA,WAAA,GAAA;AATQ,QAAA,IAAA,CAAA,qBAAqB,GAAkB;AAC3C,YAAA,WAAW,EAAE,SAAS;SACzB,CAAA;QAEO,IAAa,CAAA,aAAA,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,qBAAqB,CAAC,CAAC;;AAGhF,QAAA,IAAA,CAAA,uBAAuB,GAA8B,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAG1F,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAE,CAAE,CAAC,KAAK;YAC5C,IAAI,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAE,MAAM,CAAiB,CAAA;AACxD,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAE,qBAAqB,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS,CAAE,CAAA;AACxE,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAE,oBAAoB,EAAE,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAE,CAAA;AAC1E,SAAC,CAAE,CAAA;KACN;;AAGD,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACnC;;AAGD,IAAA,MAAM,CAAE,aAAqC,EAAA;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAE;AACrB,YAAA,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;AAC3B,YAAA,GAAG,aAAa;AACnB,SAAA,CAAE,CAAA;KACN;+GA7BQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCCY,2BAA2B,CAAA;AADxC,IAAA,WAAA,GAAA;AAKI,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAE,oBAAoB,CAAE,CAAA;AACrD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAgBlD,KAAA;IAdG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,SAAS,CAAE,CAAE,CAAC,KAAK;AAClG,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAA;KAC/D;IAED,WAAW,GAAA;QACP,IAAK,IAAI,CAAC,yBAAyB;AAAG,YAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAA;KACrF;AAED,IAAA,qBAAqB,MAAK;+GApBjB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;;;MCCG,aAAa,CAAA;AAT1B,IAAA,WAAA,GAAA;AAaI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAE,YAAY,CAAE,CAAA;AAMxC,KAAA;IAJG,kBAAkB,GAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAA;AACvD,QAAA,IAAK,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE;AAAG,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAE,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAE,CAAA;KACrG;+GAVQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,iICZ1B,iGAEA,EAAA,MAAA,EAAA,CAAA,8gCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGf,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,kBAAkB,EAAG,OAAO;AAC/B,qBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,MAAA,EAAA,CAAA,8gCAAA,CAAA,EAAA,CAAA;;AAeL,MAAM,IAAI,GAAG;AACT,IAAA,eAAe,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBhB,IAAA,CAAA;CACJ;;AE1BK,MAAO,eAAgB,SAAQ,2BAA2B,CAAA;AAdhE,IAAA,WAAA,GAAA;;QAqB8C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;QACf,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;QACf,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEhD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAgB,CAAA;AAIlD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAE,MAAM,CAAE,CAAA;AAwB1B,KAAA;AAtBG,IAAA,OAAO,CAAE,EAAgB,EAAA;QACrB,IAAK,IAAI,CAAC,QAAQ;YAAG,OAAM;AAE3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;KACxB;IAED,qBAAqB,GAAA;;AAEjB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,MAAK;AAChB,YAAA,IAAK,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAG;AAClD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACzB;AACI,iBAAA,IAAK,IAAI,CAAC,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAG;AACpD,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;aACxB;iBACI;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAA;aAClE;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAA;AACzC,SAAC,CAAE,CAAA;KACN;+GAtCQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,+LAOH,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAChB,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,oWC1BzC,syBA6BA,EAAA,MAAA,EAAA,CAAA,65GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGjB,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,SAAS;AAC5B,wBAAA,iBAAiB,EAAE,qBAAqB;AACxC,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,iBAAiB,EAAE,WAAW;AAC9B,wBAAA,mBAAmB,EAAE,oBAAoB;AACzC,wBAAA,oBAAoB,EAAE,kCAAkC;AACxD,wBAAA,eAAe,EAAE,OAAO;AAC3B,qBAAA,EAAA,QAAA,EAAA,syBAAA,EAAA,MAAA,EAAA,CAAA,65GAAA,CAAA,EAAA,CAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACoC,OAAO,EAAA,CAAA;sBAAhD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,OAAO,EAAA,CAAA;sBAAhD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAE7B,KAAK,EAAA,CAAA;sBAAd,MAAM;;;MErBE,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AASI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AACjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAmBlD,KAAA;IAfG,kBAAkB,GAAA;QACd,UAAU,CAAE,MAAK;AACb,YAAA,IAAK,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAG;;aAErD;AACI,iBAAA,IAAK,IAAI,CAAC,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAG;AACpD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAA;aACpF;iBACI;AACD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAA;aACrC;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;KACN;+GAvBQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6GCPjC,+KAQA,EAAA,MAAA,EAAA,CAAA,iLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,+KAAA,EAAA,MAAA,EAAA,CAAA,iLAAA,CAAA,EAAA,CAAA;8BAKpB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEHG,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CACW,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;KACxC;+GAHK,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;;MAWY,mBAAmB,CAAA;AAC5B,IAAA,WAAA,CACW,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;KACxC;+GAHK,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;;AAoBK,MAAO,mBAAoB,SAAQ,2BAA2B,CAAA;AAZpE,IAAA,WAAA,GAAA;;AAgBI,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAIlD,KAAA;AAFG,IAAA,IAAI,cAAc,GAAA,EAAK,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,SAAS,CAAA,EAAE;AAC3E,IAAA,IAAI,aAAa,GAAA,EAAK,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,QAAQ,CAAA,EAAE;+GAPhE,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EACb,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EACpB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EAZxB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,IAAA,CAAA;AACJ,iBAAA,CAAA;8BAEyC,cAAc,EAAA,CAAA;sBAAnD,YAAY;uBAAE,oBAAoB,CAAA;gBACE,aAAa,EAAA,CAAA;sBAAjD,YAAY;uBAAE,mBAAmB,CAAA;;;MCvBzB,uBAAuB,CAAA;AAXpC,IAAA,WAAA,GAAA;QAYa,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEf,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAA;AAGzD,KAAA;+GARY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,ibCdpC,muBAsBsB,EAAA,MAAA,EAAA,CAAA,y7CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRT,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,oBAAoB,EAAI,WAAW;AACnC,wBAAA,kBAAkB,EAAM,6BAA6B;AACrD,wBAAA,kBAAkB,EAAM,UAAU;AACrC,qBAAA,EAAA,QAAA,EAAA,muBAAA,EAAA,MAAA,EAAA,CAAA,y7CAAA,CAAA,EAAA,CAAA;8BAGQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEe,iBAAiB,EAAA,CAAA;sBAAtC,SAAS;uBAAE,OAAO,CAAA;;MAkDV,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EA7C5B,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAqCQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA/CzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAC7B,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,CAAA;;MAgGQ,6BAA6B,CAAA;AAzD1C,IAAA,WAAA,GAAA;QA4Da,IAAc,CAAA,cAAA,GAAG,iBAAiB,CAAA;QAClC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAA;AAElB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAgB,CAAA;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAgB,CAAA;AAC3D,KAAA;+GARY,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAvD5B,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA0BQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAzDzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAC7B,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0PAAA,CAAA,EAAA,CAAA;8BA2BQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;ME7HE,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;QAOa,IAAK,CAAA,KAAA,GAAG,SAAS,CAAA;AAE7B,KAAA;+GAHY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,uGCZrC,qVAiBA,EAAA,MAAA,EAAA,CAAA,qoHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qVAAA,EAAA,MAAA,EAAA,CAAA,qoHAAA,CAAA,EAAA,CAAA;8BAGtC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;AEdG,MAAA,YAAY,GAAG;AACxB,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,kBAAkB,EAAE,UAAU;AAC9B,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,mBAAmB,EAAE,OAAO;AAC5B,IAAA,wBAAwB,EAAE,gBAAgB;AAC1C,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,sBAAsB,EAAE,kBAAkB;;;MCIjC,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;QAOa,IAAK,CAAA,KAAA,GAAG,UAAU,CAAA;QAClB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;QAEzB,IAAK,CAAA,KAAA,GAAG,MAAM,EAAE,CAAC,MAAM,CAAE,YAAY,CAAC,eAAe,CAAE,CAAA;AAEtD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AAWtD,KAAA;AATG,IAAA,YAAY,CAAE,EAAE,EAAA;QACZ,IAAK,CAAC,EAAE,EAAG;AACP,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC7B,OAAM;SACT;QAED,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAE,YAAY,CAAC,eAAe,CAAE,CAAA;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;KAChC;+GAhBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uLChBhC,8zBA+BA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8zBAAA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,CAAA;8BAGtC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEDE,qBAAqB,CAAA;AATlC,IAAA,WAAA,GAAA;QAUa,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;AAIxB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QAInD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAChB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAoBlD,KAAA;AAlBG,IAAA,eAAe,CAAE,GAAI,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;KAC/B;AAED,IAAA,OAAO,CAAE,EAAE,EAAA;QACP,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAA;QAC9B,IAAI,CAAC,eAAe,CAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAE,CAAA;KAC5C;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,eAAe,EAAE,CAAA;KACzB;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACrC;+GA9BQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,oVCrBlC,srBA4BA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,UAAU;AAClC,qBAAA,EAAA,QAAA,EAAA,srBAAA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA,CAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEe,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAE,OAAO,CAAA;;;AEHvB;;;;;;;;AAQG;MAaU,qBAAqB,CAAA;AAZlC,IAAA,WAAA,GAAA;QAca,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;QAIO,IAAS,CAAA,SAAA,GAAG,CAAC,CAAA;QACZ,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAA;QACf,IAAO,CAAA,OAAA,GAAG,IAAI,CAAA;QACd,IAAK,CAAA,KAAA,GAAG,IAAI,CAAA;QACZ,IAAM,CAAA,MAAA,GAAG,IAAI,CAAA;AAE7C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAY,CAAC;QAErD,IAAU,CAAA,UAAA,GAAG,MAAM,CAAA;QAGnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;QACd,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEhB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,WAAW,EAAE,CAAA;AAC7B,QAAA,IAAA,CAAA,KAAK,GAA2C,CAAE,CAAC,KAAM,IAAI,CAAA;AAG7D,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAC/C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAE,OAAO,CAAE,CAAA;AAC3B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;AAwOhD,KAAA;AAlOG,IAAA,WAAW,CAAE,OAAsB,EAAA;QAC/B,IAAK,IAAI,CAAC,MAAM;YAAG,OAAM;AAEzB,QAAA,IAAK,OAAO,CAAC,OAAO,EAAG;AACnB,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;AACxD,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAE,CAAA;AACvD,YAAA,IAAK,EAAE,IAAI,EAAE,EAAG;AACZ,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;gBAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAA;gBAC1B,IAAI,CAAC,SAAS,EAAE,CAAA;aACnB;SACJ;AAED,QAAA,IAAK,OAAO,CAAC,KAAK,EAAG;AACjB,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAE,CAAA;AACtD,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAE,CAAA;AACrD,YAAA,IAAK,EAAE,IAAI,EAAE,EAAG;AACZ,gBAAA,IAAK,IAAI,CAAC,KAAK,EAAG;oBACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;oBACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;AACrC,oBAAA,IAAK,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAG;AAC7D,wBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;qBAC3B;yBACI;AACD,wBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;qBAC1B;iBACJ;qBACI;AACD,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;AACrB,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;AAC/B,oBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;iBAC1B;gBAED,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;aACzC;SACJ;KACJ;AAED,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;KAC7B;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,EAAG,MAAM,GAAG,CAAC,CAAA;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAE,CAAA;KACtD;IAED,IAAI,GAAA;QACA,IAAK,IAAI,CAAC,MAAM;YAAG,OAAM;AAEzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;AAC1B,QAAA,IAAK,IAAI,CAAC,MAAM,EAAG;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;SACvB;aACI;SAEJ;;AAGD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;AAChC,aAAA,QAAQ,EAAE;AACV,aAAA,mBAAmB,CAAE,IAAI,CAAC,OAAO,CAAE;AACnC,aAAA,aAAa,CAAE;AACZ,YAAA;AACI,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;SACJ,CAAE;aACF,QAAQ,CAAE,KAAK,CAAE,CAAA;QAEtB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAA;QAEjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAE;YACnC,gBAAgB;YAChB,cAAc;AACd,YAAA,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC;AACpD,YAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AAChD,YAAA,SAAS,EAAE,GAAG;AACjB,SAAA,CAAE,CAAA;;AAGH,QAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAE,CAAA;AAChF,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;;QAGhC,UAAU,CAAE,MAAK;YACb,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAc,QAAQ,EAAE,OAAO,CAAE;AAC9D,iBAAA,IAAI,CAAE,MAAM,CAAE,CAAE,KAAiB,KAAK;AACnC,gBAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAqB,CAAA;AAC/C,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;AAC5C,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAA;;AAGjD,gBAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;AAChC,uBAAA,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC5C,aAAC,CAAE,CAAE;iBACJ,SAAS,CAAE,MAAK;gBACb,IAAI,CAAC,KAAK,EAAE,CAAA;AAChB,aAAC,CAAE,CAAA;AACX,SAAC,CAAE,CAAA;;QAGH,UAAU,CAAE,MAAK;AACb,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;;AAGxC,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;AAC7D,SAAC,CAAE,CAAA;QAEH,IAAI,CAAC,SAAS,EAAE,CAAA;AAEhB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAA;KAC7D;IAED,KAAK,GAAA;QACD,IAAK,CAAC,IAAI,CAAC,MAAM;YAAG,OAAM;AAE1B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AAExB,QAAA,IAAK,IAAI,CAAC,iBAAiB,EAAG;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAA;AACpC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;SAChC;AAED,QAAA,IAAK,IAAI,CAAC,UAAU,EAAG;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;SACzB;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAEtC,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAA;AACzD,QAAA,IAAK,IAAI,CAAC,YAAY,IAAI,YAAY;YAClC,IAAI,CAAC,eAAe,EAAE,CAAA;KAC7B;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAE,CAAC,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;KACzG;AAED,IAAA,OAAO,CAAE,EAAG,EAAA;QACR,IAAI,CAAC,SAAS,CAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAE,CAAA;KACtC;AAED,IAAA,SAAS,CAAE,IAAa,EAAA;QACpB,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAElC,IAAK,CAAC,EAAG;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAE,MAAM,KAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAA;SAC5E;aACI;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC,KAAK,GAAG,CAAE,CAAC,KAAM,IAAI,CAAA;SAC7B;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;KACzC;AAED,IAAA,aAAa,CAAE,MAAuB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAE,MAAM,CAAE,CAAA;KAC9B;AAED,IAAA,iBAAiB,CAAE,EAAE,EAAA;AACjB,QAAA,IAAK,IAAI,CAAC,MAAM,EAAG;YACf,IAAI,CAAC,KAAK,EAAE,CAAA;SACf;aACI;AACD,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SAC1C;AAED,QAAA,IAAK,IAAI,CAAC,SAAS,GAAG,CAAC,EAAG;AACtB,YAAA,IAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAG;AACjD,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;aAC3B;iBACI;AACD,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;aAC1B;SACJ;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;KACzC;AAED,IAAA,sBAAsB,CAAE,EAA0B,EAAA;QAC9C,UAAU,CAAC,MAAK;YACZ,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,CAAC,CAAE,CAAC,KAAK,CAAE,CAAA;AAC1E,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAA;AAEhC,YAAA,IAAI,CAAC,iBAAiB,CAAE,EAAE,CAAE,CAAA;AAChC,SAAC,CAAC,CAAA;KACL;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAA;KACzB;IAED,YAAY,GAAA;QACR,IAAI,CAAC,IAAI,EAAE,CAAA;KACd;IAED,YAAY,GAAA;QACR,IAAI,CAAC,KAAK,EAAE,CAAA;KACf;AAED,IAAA,kBAAkB,CAAE,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAE,EAAE,WAAW,CAAA;KAC/D;+GAlQQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAMT,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,eAAe,CACf,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CAChB,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,gBAAgB,CAChB,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,gBAAgB,CAmBN,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,oPC5E7C,unHAuGA,EAAA,MAAA,EAAA,CAAA,mvFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDxDa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,iBAAiB,EAAE,QAAQ;AAC3B,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,oBAAoB,EAAE,QAAQ;AACjC,qBAAA,EAAA,QAAA,EAAA,unHAAA,EAAA,MAAA,EAAA,CAAA,mvFAAA,CAAA,EAAA,CAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACmC,SAAS,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBACI,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,OAAO,EAAA,CAAA;sBAAhD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,KAAK,EAAA,CAAA;sBAA9C,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,MAAM,EAAA,CAAA;sBAA/C,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAE7B,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAiBuC,OAAO,EAAA,CAAA;sBAApD,SAAS;AAAE,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBACf,WAAW,EAAA,CAAA;sBAAtC,SAAS;uBAAE,aAAa,CAAA;gBACO,eAAe,EAAA,CAAA;sBAA9C,SAAS;uBAAE,iBAAiB,CAAA;;;MEhEpB,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;QAOa,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAA;QAClB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAA;QAC1B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAA;AAE1B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;AACjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAA;AAC/C,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,YAAY,EAAW,CAAA;AAyBpE,KAAA;IAvBG,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;KACvC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;KACtC;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;AAChC,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;KAC/C;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;AAC/B,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;KAC9C;+GAhCQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,2VCdlC,ovDA4DA,EAAA,MAAA,EAAA,CAAA,g9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Ca,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACI,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ovDAAA,EAAA,MAAA,EAAA,CAAA,g9BAAA,CAAA,EAAA,CAAA;8BAGtC,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,yBAAyB,EAAA,CAAA;sBAAlC,MAAM;;;MEAE,kBAAkB,CAAA;AAV/B,IAAA,WAAA,GAAA;AAcI,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAE,SAAS,CAAE,CAAA;AAYjC,KAAA;AAVG,IAAA,WAAW,CAAE,OAAsB,EAAA;AAC/B,QAAA,IAAK,OAAO,CAAC,QAAQ,EAAG;AACpB,YAAA,IAAK,IAAI,CAAC,QAAQ,EAAG;gBACjB,qBAAqB,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;aACrE;iBACI;gBACD,wBAAwB,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;aACxE;SACJ;KACJ;+GAhBQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EACN,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,wIAV3B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2/CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAQ5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,YACjB,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,kBAAkB,EAAE,UAAU;AACjC,qBAAA,EAAA,MAAA,EAAA,CAAA,2/CAAA,CAAA,EAAA,CAAA;8BAGyC,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;AAiB3C,SAAS,qBAAqB,CAAC,QAAmB,EAAE,WAAwB,EAAA;AACxE,IAAA,IAAI,gBAAgB,CAAC;;AAErB,IAAA,IAAI,gBAAkC,CAAC;AACvC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC7D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,MAAK;YACZ,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACpE,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,mBAAwC,CAAC;AAC7C,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAChE,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1C,UAAU,CAAC,MAAK;YACZ,QAAQ,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,iBAAoC,CAAC;AACzC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;YAChE,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aAChD;AACL,SAAC,CAAC,CAAC;KACN;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAmB,EAAE,WAAwB,EAAA;;AAE3E,IAAA,IAAI,gBAAgB,CAAC;;AAErB,IAAA,IAAI,gBAAkC,CAAC;AACvC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC7D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,mBAAwC,CAAC;AAC7C,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAChE,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1C,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,iBAAoC,CAAC;AACzC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AACnE,YAAA,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AACxD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;aACrD;AACL,SAAC,CAAC,CAAC;KACN;AACL;;MCvGa,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wDAJlB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAI5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,2BAA2B,EAEpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,CAAA;;;MCFtC,YAAY,CAAA;AALzB,IAAA,WAAA,GAAA;QAM8C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAC7D,KAAA;+GAHY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EACA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,6BAL3B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGH,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,YACV,EAAE,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,CAAA;8BAI8B,UAAU,EAAA,CAAA;sBAAnD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;MCC9B,gBAAgB,CAAA;AAGzB,IAAA,WAAA,GAAA;AAFiB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAA4B,CAAC;KAGxE;AAED,IAAA,YAAY,CAAK,gBAA0B,EAAE,YAAe,EAAE,KAAc,EAAA;QACxE,IAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,gBAAgB,CAAE,EAAG;YAC9C,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,gBAAgB,CAAE,CAAA;YACnD,OAAO,EAAE,CAAC,KAAK,CAAA;SAClB;QAED,IAAI,CAAC,YAAY,CAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAE,CAAA;AAC1D,QAAA,OAAO,YAAY,CAAA;KACtB;AAED,IAAA,YAAY,CAAK,gBAA0B,EAAE,KAAQ,EAAE,KAAc,EAAA;AACjE,QAAA,IAAI,EAAE,GAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,gBAAgB,EAAE,EAAE,CAAE,CAAA;KACjD;+GAnBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAE,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCPY,OAAO,CAAA;AAChB,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAK;AAC1C,CAAA;MAEY,iBAAiB,CAAA;IAK1B,WACY,CAAA,UAA+B,EAC/B,KAAA,GAAgB,GAAG,EAAA;QADnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;QAC/B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QAE3B,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAE,CAAE,GAAG,EAAE,GAAG,KAAK;AACxC,YAAA,IAAI,KAAK,GAAG,UAAU,CAAC,MAAK;gBACxB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAE;AACnC,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,KAAK,EAAE,GAAG;AACb,iBAAA,CAAE,CAAA;AAEH,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAK;oBACf,GAAG,CAAC,WAAW,EAAE,CAAA;AACjB,oBAAA,GAAG,CAAE,IAAI,OAAO,CAAE,iBAAiB,CAAE,CAAE,CAAA;AACvC,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AACtB,iBAAC,CAAA;AACL,aAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAEf,YAAA,IAAI,CAAC,MAAM,GAAG,MAAK;gBACf,YAAY,CAAE,KAAK,CAAE,CAAA;AACrB,gBAAA,GAAG,CAAE,IAAI,OAAO,CAAE,eAAe,CAAE,CAAE,CAAA;AACrC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AACtB,aAAC,CAAA;AACL,SAAC,CAAE,CAAA;KACN;IAED,KAAK,GAAA;QACD,IAAK,IAAI,CAAC,QAAQ;YAAG,OAAM;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAK,CAAC,IAAI,CAAC,MAAM;YAAG,OAAM;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAA;KAChB;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;KACvB;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;KACvB;AACJ;;MC9BY,WAAW,CAAA;IAIpB,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,CAAA,EAAE;IAC1C,IAAI,SAAS,CAAE,CAAU,EAAA;AACrB,QAAA,IAAK,CAAC,IAAI,IAAI,CAAC,UAAU;YAAG,OAAM;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;KACjC;AAoBD,IAAA,WAAA,GAAA;AA5BU,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAA;QAE/C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAQ1B,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAA;AAad,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;AAC7C,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;QAK3C,IAAI,CAAC,iBAAiB,EAAE,CAAA;KAC3B;IAED,iBAAiB,GAAA;QACb,IAAI,CAAC,aAAa,EAAE,CAAA;KACvB;IAED,eAAe,GAAA;QACX,IAAI,CAAC,cAAc,EAAE,CAAA;KACxB;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAE,MAAK;AACR,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC7B,SAAC,CAAE;aACF,IAAI,CAAE,CAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AAC1B,SAAC,CAAE;AACF,aAAA,KAAK,CAAE,CAAE,CAAC,KAAK;YACZ,IAAK,CAAC,YAAY,OAAO;gBAAG,OAAM;AAElC,YAAA,IAAI,CAAC,qBAAqB,CAAE,CAAC,CAAE,CAAA;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AAC1B,SAAC,CAAE;aACF,OAAO,CAAE,MAAK;YACX,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;KACV;IAED,WAAW,GAAA;QACP,IAAK,IAAI,CAAC,mBAAmB;AACzB,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;AAEpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,iBAAiB,CAAK,MAAK;AACtD,YAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;AAClC,SAAC,CAAE,CAAA;AAEH,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO;aAClC,IAAI,CAAE,GAAG,IAAG;AACT,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAE,GAAG,CAAE,CAAA;AACzC,SAAC,CAAE,CAAA;KACV;IAED,gBAAgB,GAAA;AACZ,QAAA,MAAM,eAAe,CAAA;KACxB;AAED,IAAA,kBAAkB,CAAE,GAAM,EAAA;AACtB,QAAA,MAAM,eAAe,CAAA;KACxB;AAED,IAAA,qBAAqB,CAAE,KAAK,EAAA;AACxB,QAAA,OAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;AACd,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;KACzB;AAED,IAAA,cAAc,CAAE,EAAE,EAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;AAED,IAAA,YAAY,CAAE,EAAE,EAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM,CAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,SAAS,CAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;AAED,IAAA,kBAAkB,CAAE,EAAE,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QAEpB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;AAED,IAAA,gBAAgB,CAAE,EAAE,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;IAED,mBAAmB,GAAA;QACf,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAE,GAAG,WAAW,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;KACpH;AAED,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,MAAM,eAAe,CAAA;KACxB;IAED,aAAa,GAAA;AACT,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAmB,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAE,CAAA;AAE1G,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;KAC3C;IAED,aAAa,GAAA;QACT,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,SAAS,CAAE;YACrD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,SAAA,CAAE,CAAE,CAAA;QAEL,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAmB,IAAI,CAAC,WAAW,EAAE,KAAK,CAAE,CAAA;KACjF;+GArKQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAX,WAAW,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,SAAS;wDAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;SAuKK,WAAW,CAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAA;AACvD,IAAA,IAAK,QAAQ,IAAI,QAAQ,EAAG;QACxB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,QAAQ,CAAE,CAAA;AAEhD,QAAA,IAAI,KAAK,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,SAAS,EAAE,UAAU,CAAE,GAAG,CAAC,IAAK,QAAQ,GAAG,CAAC,CAAA;AACpE,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAE,CAAA;QAErD,OAAO,CAAE,CAAY,QAAA,EAAA,KAAM,CAAQ,IAAA,EAAA,IAAK,CAAQ,IAAA,EAAA,QAAS,CAAE,CAAA,EAAE,IAAI,CAAE,CAAA;KACtE;SACI;AACD,QAAA,OAAO,CAAE,wBAAwB,EAAE,KAAK,CAAE,CAAA;KAC7C;AACL;;MC9La,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,6DCXpC,6BACA,EAAA,MAAA,EAAA,CAAA,i9BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,i9BAAA,CAAA,EAAA,CAAA;;;MEEtC,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4DCXnC,6BACA,EAAA,MAAA,EAAA,CAAA,w8DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,w8DAAA,CAAA,EAAA,CAAA;;;MEiBtC,0BAA0B,CAAA;AAXvC,IAAA,WAAA,GAAA;QAYa,IAAY,CAAA,YAAA,GAAG,GAAG,CAAA;AAClB,QAAA,IAAA,CAAA,eAAe,GAAG;AACvB,YAAA,EAAE,IAAI,EAAE,CAAC,EAAI,WAAW,EAAE,QAAQ,EAAE;AACpC,YAAA,EAAE,IAAI,EAAE,EAAE,EAAG,WAAW,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,EAAE,EAAG,WAAW,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,EAAE,EAAG,WAAW,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE;SACzC,CAAA;QACQ,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAA;QAGb,IAAY,CAAA,YAAA,GAAG,IAAI,CAAA;QACnB,IAAa,CAAA,aAAA,GAAG,wBAAwB,CAAA;AAEvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAC5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;QAExD,IAAc,CAAA,cAAA,GAA2B,YAAY,CAAA;QACrD,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAA;AAErB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AACjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AA8DlD,KAAA;IA5DG,eAAe,GAAA;QACX,IAAI,CAAC,UAAU,EAAE,CAAA;KACpB;AAED,IAAA,gBAAgB,CAAE,EAAE,EAAA;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAA;KAC3C;AAED,IAAA,kBAAkB,CAAE,EAAE,EAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAA;KAC7C;AAGD,IAAA,QAAQ,CAAC,KAAK,EAAA;QACV,IAAI,CAAC,UAAU,EAAE,CAAA;KACpB;IAED,UAAU,GAAA;QACN,UAAU,CAAE,MAAK;YACb,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAA;AAClD,YAAA,IAAK,CAAC,CAAC;gBAAG,OAAM;YAEhB,QAAS,IAAI;gBACT,KAAK,CAAC,GAAG,GAAG;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAA;AAClC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;oBAC1B,MAAK;gBAET,KAAK,CAAC,GAAG,GAAG;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9B,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;oBAC1B,MAAK;AAET,gBAAA;AACI,oBAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;AACnC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;aACjC;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;KACN;AAED,IAAA,IAAI,SAAS,GAAA;QACT,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,CAAC,CAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAA;KACpD;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,CAAC,CAAA;QAC7B,OAAO,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAE,GAAG,CAAC,IAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;KACjF;AAED,IAAA,IAAI,OAAO,GAAA;QACP,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,CAAC,CAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;KACtE;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;KACvB;+GAnFQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,imBC1BvC,omCAsCA,EAAA,MAAA,EAAA,CAAA,w8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,GAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,6BAAA,EAAA,uBAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAXtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,0BAA0B,EAAE,gCAAgC;AAC5D,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,2BAA2B,EAAE,iCAAiC;AACjE,qBAAA,EAAA,QAAA,EAAA,omCAAA,EAAA,MAAA,EAAA,CAAA,w8FAAA,CAAA,EAAA,CAAA;8BAGQ,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAqBP,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEzBvC,MAAO,wBAAyB,SAAQ,WAAmC,CAAA;AANjF,IAAA,WAAA,GAAA;;QAQa,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAEzB,IAAY,CAAA,YAAA,GAAG,YAAY,CAAA;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,CAAE,oBAAoB,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,UAAU,CAAE,CAAA;AAmDvI,KAAA;IAjDG,iBAAiB,GAAA;QACb,KAAK,CAAC,iBAAiB,EAAE,CAAA;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO;AACH,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,aAAa,EAAE,MAAM;SACxB,CAAA;KACJ;IAED,eAAe,GAAA;QACX,IAAK,IAAI,CAAC,SAAS;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAA;QAEjC,KAAK,CAAC,eAAe,EAAE,CAAA;KAC1B;IAED,gBAAgB,GAAA;AACZ,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;AAE3E,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,SAAA,CAAC,CAAA;KACL;AAED,IAAA,kBAAkB,CAAE,GAAQ,EAAA;AACxB,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAE7E,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAE,GAAG,CAAE,CAAA;KACxD;AAED,IAAA,eAAe,CAAE,IAAyB,EAAA;AACtC,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAEvE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAE,IAAI,CAAE,CAAA;KACnD;AAED,IAAA,aAAa,CAAE,IAAyB,EAAA;AACpC,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAErE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;KACjD;+GAvDQ,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4JCrCrC,qiQA+KA,EAAA,MAAA,EAAA,CAAA,suBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ia,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qiQAAA,EAAA,MAAA,EAAA,CAAA,suBAAA,CAAA,EAAA,CAAA;8BAGtC,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;AEPJ,MAAO,yBAA0B,SAAQ,WAAoC,CAAA;AANnF,IAAA,WAAA,GAAA;;QAQa,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAChB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAA;QACtB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAA;QAEpC,IAAY,CAAA,YAAA,GAAG,YAAY,CAAA;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,CAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAE,CAAA;AA+BtE,KAAA;IA7BG,gBAAgB,GAAA;AACZ,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;AAE5E,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAE;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,SAAA,CAAE,CAAA;KACN;AAED,IAAA,kBAAkB,CAAE,GAAQ,EAAA;AACxB,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAE7E,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAE,GAAG,CAAE,CAAA;KACxD;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO;AACH,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,aAAa,EAAE,MAAM;SACxB,CAAA;KACJ;+GAnCQ,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,0NChCtC,ojLA8HA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Fa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ojLAAA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,CAAA;8BAGtC,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEzBG,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2DCXnC,6BACA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;;;MEMtC,mBAAmB,CAAA;AAThC,IAAA,WAAA,GAAA;QAUa,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;AAC7B,KAAA;+GAFY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,sJCfhC,gSAUA,EAAA,MAAA,EAAA,CAAA,0oBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,WAAW;AACnC,qBAAA,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,CAAA,0oBAAA,CAAA,EAAA,CAAA;8BAGQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;AEdJ,SAAU,eAAe,CAAE,GAAG,EAAA;AAChC,IAAA,IAAK,CAAC,GAAG;AAAG,QAAA,OAAO,EAAE,CAAA;AACrB,IAAA,IAAK,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;AAAG,QAAA,OAAO,GAAG,CAAA;IACtC,OAAO,CAAE,GAAG,CAAE,CAAA;AAClB,CAAC;AAEK,SAAU,iBAAiB,CAAE,GAAG,EAAA;AAClC,IAAA,IAAK,CAAC,GAAG;AAAG,QAAA,OAAO,EAAE,CAAA;AACrB,IAAA,IAAK,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;AAAG,QAAA,OAAO,GAAG,CAAE,CAAC,CAAE,IAAI,EAAE,CAAA;AACjD,IAAA,OAAO,GAAG,CAAA;AACd,CAAC;SAEe,oBAAoB,CAAE,IAAgB,EAAE,SAAiB,EAAE,gBAAwB,EAAA;AAC/F,IAAA,IAAK,CAAC,IAAI;AAAG,QAAA,OAAO,IAAI,CAAA;AACxB,IAAA,OAAO,IAAI,CAAC,GAAG,CAAE,CAAC,IAAG;QACjB,OAAO;AACH,YAAA,IAAI,EAAE,CAAC,CAAE,SAAS,CAAE;AACpB,YAAA,WAAW,EAAE,CAAC,CAAE,gBAAgB,CAAE;SACrC,CAAA;AACL,KAAC,CAAE,CAAA;AACP;;MCPa,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAOa,IAAiB,CAAA,iBAAA,GAAsB,EAAE,CAAA;QACzC,IAAa,CAAA,aAAA,GAAkB,KAAK,CAAA;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ,CAAC;QAEhD,IAAe,CAAA,eAAA,GAAG,eAAe,CAAA;QACjC,IAAiB,CAAA,iBAAA,GAAG,iBAAiB,CAAA;AAiBxC,KAAA;AAfG,IAAA,kBAAkB,CAAE,EAAE,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,cAAc,EAAE,CAAA;KACxB;IAED,qBAAqB,GAAA;QACjB,IAAI,CAAC,cAAc,EAAE,CAAA;KACxB;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE;YAClB,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,SAAS,EAAE,IAAI,CAAC,aAAa;AAChC,SAAA,CAAE,CAAA;KACN;+GAxBQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,kNCfpC,4vBAoBA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuB,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,4vBAAA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA,CAAA;8BAKxB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEFE,iBAAiB,CAAA;IAC1B,WACW,CAAA,WAA8C,EAClB,MAAsB,EAAA;QADlD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmC;QAClB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;KACxD;AAEL,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;KAC7C;AARQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kDAGd,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAHrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qGClB9B,2kBAwBA,EAAA,MAAA,EAAA,CAAA,y1DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGnB,IAAA,EAAA;AACF,wBAAA,SAAS,EAAE,WAAW;AACzB,qBAAA,EAAA,QAAA,EAAA,2kBAAA,EAAA,MAAA,EAAA,CAAA,y1DAAA,CAAA,EAAA,CAAA;;0BAKI,MAAM;2BAAC,kBAAkB,CAAA;;;MEdrB,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAII,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAE,WAAW,CAAE,CAAA;AAyEnC,KAAA;AAvEG,IAAA,UAAU,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;AAED,IAAA,iBAAiB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QAC/C,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAsB,oBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KAClE;AAED,IAAA,mBAAmB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAwB,sBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KACpE;AAED,IAAA,mBAAmB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAwB,sBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KACpE;AAED,IAAA,mBAAmB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAwB,sBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KACpE;AAED,IAAA,iBAAiB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QAC/C,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAsB,oBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KAClE;AAED,IAAA,WAAW,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;AAED,IAAA,KAAK,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;AAED,IAAA,OAAO,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;+GAzEQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCDY,SAAS,CAAA;AAClB,IAAA,WAAA;;AAEY,IAAA,MAA6B,EAC7B,OAA0C,EAAA;QAD1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QAC7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmC;KAClD;AAEJ,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAA;KACrB;AAED,IAAA,OAAO,CAAE,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAE,CAAA;KACjD;IAED,MAAM,GAAA;QACF,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,OAAO,CAAC,MAAM,CAAE,mBAAmB,CAAE,CAAA;QAEjE,OAAO,IAAI,CAAC,OAAO,EAAE;aAChB,IAAI,CAAE,GAAG,IAAG;AACT,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;AACrB,SAAC,CAAE,CAAA;KACV;AACJ;;MC+GY,uBAAuB,CAAA;IAChC,WACY,CAAA,eAAgC,EAChC,YAA0B,EAAA;QAD1B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAC3B,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,oCAAoC,CAAC,CACzF,CAAC;KAEL;+GAVQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAzB,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBA9D5B,eAAe;YACf,oBAAoB;YACpB,uBAAuB;YACvB,6BAA6B;YAC7B,6BAA6B;YAC7B,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,YAAY;YACZ,wBAAwB;YACxB,yBAAyB;YACzB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,sBAAsB;YACtB,0BAA0B;YAC1B,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;AACnB,YAAA,aAAa,aAlDb,uBAAuB;YACvB,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,cAAc;YACd,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,eAAe;YACf,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;YACZ,iBAAiB;YACjB,uBAAuB;AACvB,YAAA,mBAAmB,aA+BnB,eAAe;YACf,oBAAoB;YACpB,uBAAuB;YACvB,6BAA6B;YAC7B,6BAA6B;YAC7B,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,YAAY;YACZ,wBAAwB;YACxB,yBAAyB;YACzB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,sBAAsB;YACtB,0BAA0B;YAC1B,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;AASR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAPrB,SAAA,EAAA;YACP,mBAAmB;YACnB,oBAAoB;YACpB,gBAAgB;AAChB,YAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC7D,SAAA,EAAA,OAAA,EAAA,CArFG,uBAAuB;YACvB,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,cAAc;YACd,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,eAAe;YACf,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;YACZ,iBAAiB;YACjB,uBAAuB;YACvB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAiEd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAzFnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,uBAAuB;wBACvB,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjB,kBAAkB;wBAClB,cAAc;wBACd,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,YAAY;wBACZ,iBAAiB;wBACjB,uBAAuB;wBACvB,mBAAmB;AACtB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,oBAAoB;wBACpB,uBAAuB;wBACvB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,YAAY;wBACZ,wBAAwB;wBACxB,yBAAyB;wBACzB,sBAAsB;wBACtB,mBAAmB;wBACnB,uBAAuB;wBACvB,sBAAsB;wBACtB,0BAA0B;wBAC1B,uBAAuB;wBACvB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,aAAa;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,oBAAoB;wBACpB,uBAAuB;wBACvB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,YAAY;wBACZ,wBAAwB;wBACxB,yBAAyB;wBACzB,sBAAsB;wBACtB,mBAAmB;wBACnB,uBAAuB;wBACvB,sBAAsB;wBACtB,0BAA0B;wBAC1B,uBAAuB;wBACvB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,aAAa;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,mBAAmB;wBACnB,oBAAoB;wBACpB,gBAAgB;AAChB,wBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC7D,qBAAA;AACJ,iBAAA,CAAA;;;AC1ID;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"bcgov-nr-ngx-component-lib.mjs","sources":["../../../projects/nr-ngx-component-lib/src/services/configuration.service.ts","../../../projects/nr-ngx-component-lib/src/directives/configuration-subscriber.base.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.html","../../../projects/nr-ngx-component-lib/src/components/button/button.component.ts","../../../projects/nr-ngx-component-lib/src/components/button/button.component.html","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.ts","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.html","../../../projects/nr-ngx-component-lib/src/components/device-view/device-view.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.html","../../../projects/nr-ngx-component-lib/src/utils/date.util.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.html","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/form-field/form-field.component.ts","../../../projects/nr-ngx-component-lib/src/components/form-layout/form-layout.component.ts","../../../projects/nr-ngx-component-lib/src/components/gap/gap.component.ts","../../../projects/nr-ngx-component-lib/src/services/page-state.service.ts","../../../projects/nr-ngx-component-lib/src/utils/row-list.util.ts","../../../projects/nr-ngx-component-lib/src/directives/row-list.base.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.html","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.html","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.html","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.html","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.html","../../../projects/nr-ngx-component-lib/src/utils/filter.util.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.html","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.ts","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.html","../../../projects/nr-ngx-component-lib/src/services/snackbar-util.service.ts","../../../projects/nr-ngx-component-lib/src/utils/code-table.util.ts","../../../projects/nr-ngx-component-lib/src/nr-ngx-component-lib.module.ts","../../../projects/nr-ngx-component-lib/src/public-api.ts","../../../projects/nr-ngx-component-lib/src/bcgov-nr-ngx-component-lib.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport type DisplayMode = 'desktop' | 'mobile'\n\nexport type Configuration = {\n displayMode: DisplayMode \n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationService {\n private _defaultConfiguration: Configuration = {\n displayMode: 'desktop'\n }\n\n private configSubject = new BehaviorSubject<Configuration>(this._defaultConfiguration);\n \n // Observable that components can subscribe to\n public configurationObservable: Observable<Configuration> = this.configSubject.asObservable();\n\n constructor() {\n this.configurationObservable.subscribe( ( c ) => {\n let el = document.querySelector( 'body' ) as HTMLElement\n el.classList.toggle( 'nrcl-device-desktop', c.displayMode == 'desktop' )\n el.classList.toggle( 'nrcl-device-mobile', c.displayMode == 'mobile' )\n } )\n }\n\n // Get current config value synchronously\n get configuration(): Configuration {\n return this.configSubject.value;\n }\n\n // Update entire config\n update( configuration: Partial<Configuration> ): void {\n this.configSubject.next( {\n ...this.configSubject.value,\n ...configuration\n } )\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { Configuration, ConfigurationService } from \"../services/configuration.service\";\n\n@Directive()\nexport class ConfigurationSubscriberBase implements OnInit, OnDestroy { \n configurationSubscription\n configuration: Configuration\n\n configurationService = inject( ConfigurationService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n ngOnInit(): void {\n this.configurationSubscription = this.configurationService.configurationObservable.subscribe( ( c ) => {\n this.configuration = c\n this.onConfigurationChange()\n this.changeDetectorRef.detectChanges()\n } )\n this.configuration = this.configurationService.configuration\n }\n\n ngOnDestroy(): void {\n if ( this.configurationSubscription ) this.configurationSubscription.unsubscribe()\n }\n\n onConfigurationChange() {}\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, ElementRef, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component( {\n selector: 'nrcl-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n host: {\n '[class.show-icon]': '!svg',\n '[class.show-svg]': '!!svg',\n }\n} )\nexport class IconComponent implements AfterContentInit { \n name: keyof( typeof ICON )\n svg: SafeHtml\n\n elementRef = inject( ElementRef )\n domSanitizer = inject( DomSanitizer ) \n\n ngAfterContentInit(): void {\n this.name = this.elementRef?.nativeElement?.textContent\n if ( ICON[ this.name ] ) this.svg = this.domSanitizer.bypassSecurityTrustHtml( ICON[ this.name ] )\n }\n}\n\nconst ICON = {\n 'clear-filters': `\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 -7.934265 133.15887 133.15887\" height=\"100%\" width=\"100%\">\n <g transform=\"translate(-34.473864,-66.676034)\">\n <g>\n <g>\n <path d=\"M 94.473677,137.49393 34.473864,66.783005 34.564632,66.676034 H 154.38314 l 0.0907,0.106971 z\" />\n <rect y=\"129.02737\" x=\"88.416046\" height=\"45.357258\" width=\"12.115609\" />\n </g>\n <rect width=\"29.482143\" height=\"76.351196\" x=\"79.73278\" y=\"107.61517\" />\n </g>\n <g transform=\"translate(500.06128,136.57473)\">\n <rect width=\"14.363094\" height=\"49.892857\" x=\"-249.284\" y=\"235.20406\" transform=\"rotate(45)\" />\n <rect width=\"14.363095\" height=\"49.892857\" x=\"-267.59927\" y=\"-266.99539\" transform=\"rotate(-45)\" />\n </g>\n </g>\n </svg>\n `\n}","<mat-icon><ng-content></ng-content></mat-icon>\n<div class=\"svg\" [innerHTML]=\"svg\"></div>\n","import { booleanAttribute, Component, EventEmitter, inject, Input, NgZone, Output } from '@angular/core';\nimport { ConfigurationSubscriberBase } from '../../directives/configuration-subscriber.base';\n\n@Component( {\n selector: 'nrcl-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n '[class.primary]': 'primary',\n '[class.outline]': 'outline && !primary',\n '[class.disabled]': 'disabled',\n '[class.compact]': 'isCompact',\n '[class.icon-left]': '!isCompact && icon',\n '[class.icon-right]': '!isCompact && iconRight && label',\n '[class.label]': 'label'\n }\n} )\nexport class ButtonComponent extends ConfigurationSubscriberBase { \n @Input() label\n @Input() icon\n @Input() iconRight\n @Input() iconCompact\n @Input() tooltip\n @Input() compact\n @Input( { transform: booleanAttribute } ) primary = false\n @Input( { transform: booleanAttribute } ) outline = false\n @Input( { transform: booleanAttribute } ) disabled = false\n\n @Output() click = new EventEmitter<PointerEvent>()\n\n isCompact\n\n zone = inject( NgZone )\n\n onClick( ev: PointerEvent ) {\n if ( this.disabled ) return\n\n ev.stopPropagation()\n this.click.emit( ev )\n }\n\n onConfigurationChange(): void {\n // apparently this is needed to ensure that the host binding updates properly\n this.zone.run( () => {\n if ( this.compact == null || this.compact === false ) {\n this.isCompact = false\n }\n else if ( this.compact == '' || this.compact === true ) {\n this.isCompact = true\n }\n else {\n this.isCompact = this.compact == this.configuration.displayMode\n }\n\n this.changeDetectorRef.markForCheck()\n } )\n }\n}\n","<button \n matRipple\n (click)=\"onClick( $event )\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n>\n @if ( icon || iconRight || iconCompact || label ) {\n @if ( icon && ( !isCompact || !iconCompact ) ) { \n <nrcl-icon class=\"left\">{{ icon }}</nrcl-icon> \n }\n\n @if ( !isCompact && iconRight && label ) { \n <nrcl-icon class=\"right\">{{ iconRight }}</nrcl-icon> \n }\n\n @if ( isCompact && iconCompact ) { \n <nrcl-icon class=\"compact\">{{ iconCompact }}</nrcl-icon> \n }\n\n @if ( label ) {\n <span class=\"label\">{{ label }}</span> \n }\n }\n @else {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n }\n</button>\n","import { AfterContentInit, booleanAttribute, ChangeDetectorRef, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component( {\n selector: 'nrcl-cell-content',\n templateUrl: './cell-content.component.html',\n styleUrl: './cell-content.component.scss',\n} )\nexport class CellContentComponent implements AfterContentInit {\n @Input() tooltip\n @Input() content\n \n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n tooltipContent\n\n ngAfterContentInit(): void {\n setTimeout( () => {\n if ( this.tooltip == null || this.tooltip === false ) {\n // no tooltip \n }\n else if ( this.tooltip == '' || this.tooltip === true ) {\n this.tooltipContent = this.content || this.elementRef?.nativeElement?.textContent\n }\n else {\n this.tooltipContent = this.tooltip\n }\n \n this.changeDetectorRef.detectChanges()\n } )\n }\n}\n","<div [matTooltip]=\"tooltipContent\" class=\"content\">\n @if ( content ) {\n {{ content }}\n }\n @else {\n <ng-content></ng-content>\n }\n</div>\n","import { ChangeDetectorRef, Component, ContentChild, Directive, HostListener, inject, TemplateRef } from \"@angular/core\";\nimport { ConfigurationSubscriberBase } from \"../../directives/configuration-subscriber.base\";\n\n@Directive({\n selector: \"[desktop-view]\"\n})\nexport class DesktopViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Directive({\n selector: \"[mobile-view]\"\n})\nexport class MobileViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Component({\n selector: \"nrcl-device-view\",\n template: `\n @if ( mobileVisible && mobileContent ) {\n <ng-container [ngTemplateOutlet]=\"mobileContent.templateRef\"></ng-container>\n }\n\n @if ( desktopVisible && desktopContent ) {\n <ng-container [ngTemplateOutlet]=\"desktopContent.templateRef\"></ng-container>\n }\n `,\n styles: [`\n :host:empty {\n display: none;\n }\n `]\n})\nexport class DeviceViewComponent extends ConfigurationSubscriberBase {\n @ContentChild( DesktopViewDirective ) desktopContent!: DesktopViewDirective;\n @ContentChild( MobileViewDirective ) mobileContent!: MobileViewDirective;\n\n changeDetectorRef = inject( ChangeDetectorRef )\n\n get desktopVisible() { return this.configuration.displayMode == 'desktop' }\n get mobileVisible() { return this.configuration.displayMode == 'mobile' }\n}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\nimport { MatExpansionPanel } from \"@angular/material/expansion\";\n\n@Component({\n selector: \"nrcl-expansion-panel\",\n templateUrl: \"./expansion-panel.component.html\",\n styleUrl: \"./expansion-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.is-loading]': 'isLoading',\n '[class.expanded]': 'matExpansionPanel?.expanded',\n '[class.disabled]': 'disabled',\n }\n})\nexport class ExpansionPanelComponent {\n @Input() isLoading: boolean = false;\n @Input() disabled = false;\n @Input() expanded = false\n\n @Output() expandedChange = new EventEmitter<boolean>()\n\n @ViewChild( 'panel' ) matExpansionPanel: MatExpansionPanel\n}\n\n@Component({\n selector: \"nrcl-expansion-panel-header\",\n template: `\n <div class=\"left-side\">\n <ng-content select=\"[left-side],h2,h3\"></ng-content>\n </div>\n\n <div class=\"right-side\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n :host {\n display: flex;\n color: #212121;\n width: 100%;\n }\n\n .left-side {\n display: flex;\n flex-direction: column;\n padding: 10px 0; \n align-self: flex-start;\n }\n\n .left-side ::ng-deep h2 {\n font-size: var( --nrcl-font-size-h2);\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .left-side ::ng-deep h3 {\n font-size: var( --nrcl-font-size-h3 );\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .right-side {\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n align-self: center;\n }\n `],\n})\nexport class ExpansionPanelHeaderComponent {}\n\n@Component({\n selector: \"nrcl-expansion-panel-footer\",\n template: `\n @if ( showWarning ) {\n <div class=\"warning\">\n <nrcl-icon>warning</nrcl-icon>\n <span>{{ warningMessage }}</span>\n </div>\n }\n\n @if ( cancelEnabled != null ) {\n <nrcl-button\n label=\"Cancel\"\n iconCompact=\"cancel\"\n compact=\"mobile\"\n [disabled]=\"!cancelEnabled\"\n (click)=\"cancelClick.emit( $event )\"\n ></nrcl-button>\n }\n\n @if ( saveEnabled != null ) {\n <nrcl-button primary\n label=\"Save\"\n iconCompact=\"save\"\n compact=\"mobile\"\n [disabled]=\"!saveEnabled\"\n (click)=\"saveClick.emit( $event )\"\n ></nrcl-button>\n }\n\n <ng-content></ng-content>\n `,\n styles: [`\n :host {\n border-top: 1px solid #c6c8cb;\n padding: var(--nrcl-gutter-space);\n background-color: #f2f2f2;\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n :host:empty {\n display: none;\n }\n\n .warning {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .warning nrcl-icon {\n color: #FCBA19; \n }\n `],\n})\nexport class ExpansionPanelFooterComponent {\n @Input() saveEnabled \n @Input() cancelEnabled \n @Input() warningMessage = 'Unsaved Changes'\n @Input() showWarning = false\n\n @Output() saveClick = new EventEmitter<PointerEvent>()\n @Output() cancelClick = new EventEmitter<PointerEvent>()\n}\n","<mat-expansion-panel #panel \n togglePosition=\"before\"\n [expanded]=\"expanded\" \n [disabled]=\"disabled\" \n (opened)=\"expandedChange.emit( true )\" \n (closed)=\"expandedChange.emit( false )\" \n>\n <mat-expansion-panel-header>\n <mat-panel-description>\n <ng-content select=\"nrcl-expansion-panel-header\"></ng-content>\n\n @if ( isLoading ) {\n <mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"nrcl-expansion-panel-footer\"></ng-content>\n</mat-expansion-panel>","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filter-container\",\n templateUrl: \"./filter-container.component.html\",\n styleUrl: \"./filter-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterContainerComponent {\n @Input() label = '[label]'\n @Input() hint\n}\n","<mat-form-field\n floatLabel=\"always\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput>\n\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field>\n","export const DATE_FORMATS = {\n fullPickerInput: \"Y-MM-DD HH:mm\",\n datePickerInput: \"Y-MM-DD\",\n timePickerInput: \"HH:mm\",\n monthYearLabel: \"Y-MM\",\n dateA11yLabel: \"Y-MMM-DD\",\n monthYearA11yLabel: \"YYYY-MMM\",\n simplifiedDate: \"MMM DD\",\n simplifiedMonthDate: \"MM-DD\",\n fullPickerInputWithSlash: \"Y-MM-DD/ HH:mm\",\n API_DATE: \"Y-MM-DD\",\n API_TIMESTAMP: 'Y-MM-DD HH:mm:ss',\n API_TIMESTAMP_WITH_SEP: 'Y-MM-DDTHH:mm:ss'\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport moment from \"moment\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\n@Component( {\n selector: \"nrcl-filter-date\",\n templateUrl: \"./filter-date.component.html\",\n styleUrl: \"./filter-date.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterDateComponent {\n @Input() label = '[label]]'\n @Input() placeholder = 'Select...'\n @Input() hint\n @Input() value = moment().format( DATE_FORMATS.datePickerInput )\n\n @Output() valueChange = new EventEmitter<string>();\n\n onDateChange( ev ) {\n if ( !ev ) {\n this.valueChange.emit( null )\n return\n }\n\n let date = ev.format( DATE_FORMATS.datePickerInput )\n this.valueChange.emit( date )\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput class=\"search-input\" \n [ngModel]=\"value\" \n (ngModelChange)=\"onDateChange( $event )\"\n [placeholder]=\"placeholder\"\n [owlDateTime]=\"selectedDateDT\" \n maxlength=\"10\" \n appWFDateMask\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <button class=\"select-date\"\n [owlDateTimeTrigger]=\"selectedDateDT\" \n aria-label=\"Open Select Date Picker\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>event</nrcl-icon>\n </button>\n</mat-form-field>\n\n<owl-date-time #selectedDateDT pickerType=\"calendar\"></owl-date-time>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewChild\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filter-search\",\n templateUrl: \"./filter-search.component.html\",\n styleUrl: \"./filter-search.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\"\n }\n} )\nexport class FilterSearchComponent {\n @Input() label = 'Search'\n @Input() placeholder = 'Search...'\n @Input() hint\n @Input() value: string\n\n @Output() valueChange = new EventEmitter<string>();\n\n @ViewChild( 'input' ) inputEl: ElementRef\n\n hasValue = false\n changeDetectorRef = inject( ChangeDetectorRef )\n\n emitValueChange( val? ) {\n this.hasValue = !!val\n this.valueChange.emit( val )\n }\n\n onInput( ev ) {\n this.value = ev?.target?.value\n this.emitValueChange( ev?.target?.value )\n }\n\n onCancelClick() {\n this.value = null\n this.emitValueChange()\n }\n\n focus() {\n this.inputEl.nativeElement.focus()\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input class=\"search-input\" #input\n matInput\n [value]=\"value || ''\"\n (input)=\"onInput( $event )\"\n [placeholder]=\"placeholder\"\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if ( value ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n } \n</mat-form-field>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { MatSelectionListChange } from \"@angular/material/list\";\nimport { fromEvent } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\n\n\n/**\n * A filter select component that allows users to select multiple options from a list.\n *\n * Features:\n * - Multi-select with optional maximum selection limit\n * - Search/filter functionality\n * - Tooltips for long descriptions\n * - Summary display of selected items\n */\n@Component( {\n selector: \"nrcl-filter-select\",\n templateUrl: \"./filter-select.component.html\",\n styleUrl: \"./filter-select.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\",\n '[class.is-open]': \"isOpen\",\n '[class.is-closed]': \"!isOpen\",\n '[class.use-filter]': \"filter\",\n }\n} )\nexport class FilterSelectComponent implements OnChanges {\n @Input() label\n @Input() placeholder = 'Filter...'\n @Input() hint\n @Input() options: CodeDescription[]\n @Input() value: string[]\n @Input( { transform: numberAttribute } ) selectMax = 0\n @Input( { transform: booleanAttribute } ) tooltips = true\n @Input( { transform: booleanAttribute } ) summary = true\n @Input( { transform: booleanAttribute } ) clear = true\n @Input( { transform: booleanAttribute } ) filter = true\n\n @Output() valueChange = new EventEmitter<string[]>();\n\n floatLabel = 'auto'\n inputValue\n openingValue\n isFiltered = false\n isOpen = false\n hasValue = false\n overlayRef: OverlayRef\n selection = new FormControl()\n match: ( option: CodeDescription ) => boolean = ( o ) => true\n clickSubscription\n\n changeDetectorRef = inject( ChangeDetectorRef )\n overlay = inject( Overlay )\n viewContainerRef = inject( ViewContainerRef )\n\n @ViewChild( 'trigger', { read: ElementRef } ) trigger!: ElementRef\n @ViewChild( 'filterInput' ) filterInput!: ElementRef\n @ViewChild( 'overlayTemplate' ) overlayTemplate!: TemplateRef<any>\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( this.isOpen ) return\n\n if ( changes.options ) {\n let pv = JSON.stringify( changes.options.previousValue )\n let cv = JSON.stringify( changes.options.currentValue )\n if ( pv != cv ) {\n this.selection.setValue( null )\n this.setInputToSelection()\n this.setFilter()\n }\n }\n\n if ( changes.value ) {\n let pv = JSON.stringify( changes.value.previousValue )\n let cv = JSON.stringify( changes.value.currentValue )\n if ( pv != cv ) {\n if ( this.value ) {\n this.hasValue = this.value.length > 0\n this.selection.setValue( this.value )\n if ( this.selectMax > 1 && this.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n else {\n this.hasValue = false\n this.selection.setValue( null )\n this.selection.enable()\n }\n\n this.setFilter()\n this.setInputToSelection()\n this.changeDetectorRef.detectChanges()\n }\n }\n }\n\n get single() {\n return this.selectMax == 1\n }\n\n emitValueChange() {\n this.hasValue = ( this.selection.value || [] ).length > 0\n this.valueChange.emit( this.selection.value || [] )\n }\n\n open() {\n if ( this.isOpen ) return\n\n this.isOpen = true\n this.floatLabel = 'always'\n if ( this.filter ) {\n this.inputValue = ''\n }\n else {\n\n }\n\n // Create overlay\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo( this.trigger )\n .withPositions( [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 0\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 0\n }\n ] )\n .withPush( false )\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition()\n\n this.overlayRef = this.overlay.create( {\n positionStrategy,\n scrollStrategy,\n hasBackdrop: false,\n maxWidth: this.trigger.nativeElement.offsetWidth * 2,\n minWidth: this.trigger.nativeElement.offsetWidth,\n maxHeight: 300,\n } )\n\n // Attach template\n const portal = new TemplatePortal( this.overlayTemplate, this.viewContainerRef )\n this.overlayRef.attach( portal )\n\n // Listen to document clicks after a small delay to avoid closing immediately\n setTimeout( () => {\n this.clickSubscription = fromEvent<MouseEvent>( document, 'click' )\n .pipe( filter( ( event: MouseEvent ) => {\n const clickTarget = event.target as HTMLElement\n const triggerEl = this.trigger.nativeElement\n const overlayEl = this.overlayRef?.overlayElement\n\n // Only close if click is outside both trigger and overlay\n return !triggerEl.contains(clickTarget)\n && !overlayEl?.contains(clickTarget)\n } ) )\n .subscribe( () => {\n this.close()\n } )\n } )\n\n // Focus input after overlay is attached\n setTimeout( () => {\n this.filterInput?.nativeElement.focus();\n\n // prevent list from scrolling when selection changes\n this.overlayRef.overlayElement.children[0].scroll( 0, 1 )\n } )\n\n this.setFilter()\n\n this.openingValue = JSON.stringify( this.selection.value )\n }\n\n close() {\n if ( !this.isOpen ) return\n\n this.isOpen = false\n this.setInputToSelection()\n this.floatLabel = 'auto'\n\n if ( this.clickSubscription ) {\n this.clickSubscription.unsubscribe()\n this.clickSubscription = null\n }\n\n if ( this.overlayRef ) {\n this.overlayRef.dispose()\n this.overlayRef = null\n }\n\n this.changeDetectorRef.detectChanges()\n\n let closingValue = JSON.stringify( this.selection.value )\n if ( this.openingValue != closingValue )\n this.emitValueChange()\n }\n\n setInputToSelection() {\n this.inputValue = this.selection?.value?.map( c => this.descriptionForCode( c ) ).join( ', ' ) || null\n }\n\n onInput( ev?) {\n this.setFilter( ev?.target?.value )\n }\n\n setFilter( text?: string ) {\n let t = text?.trim().toLowerCase()\n\n if ( t ) {\n this.isFiltered = true\n this.match = ( option ) => option.description.toLowerCase().includes( t )\n }\n else {\n this.isFiltered = false\n this.match = ( o ) => true\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n matchesFilter( option: CodeDescription ) {\n return this.match( option )\n }\n\n onSelectionChange( ev ) {\n if ( this.single ) {\n this.close()\n }\n else {\n this.filterInput?.nativeElement.focus()\n }\n\n if ( this.selectMax > 1 ) {\n if ( this.selection.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n onUpperSelectionChange( ev: MatSelectionListChange ) {\n setTimeout(() => {\n let codes = this.selection.value.filter( c => c != ev.options[ 0 ].value )\n this.selection.setValue( codes )\n\n this.onSelectionChange( ev )\n })\n }\n\n onCancelClick() {\n this.selection.setValue( null )\n this.selection.enable()\n this.setInputToSelection()\n this.emitValueChange()\n }\n\n onInputFocus() {\n this.open()\n }\n\n onCloseClick() {\n this.close()\n }\n\n descriptionForCode( code: string ): string {\n return this.options.find( o => o.code == code )?.description\n }\n}\n","<mat-form-field #trigger\n [floatLabel]=\"floatLabel\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n @if ( label ) {\n <mat-label>{{ label }}</mat-label>\n }\n\n <input class=\"filter-input\" #searchInput\n matInput \n [placeholder]=\"placeholder\" \n [value]=\"inputValue\"\n (input)=\"onInput( $event )\"\n (keydown.escape)=\"close()\"\n (focus)=\"onInputFocus()\"\n [matTooltip]=\"inputValue\"\n [readonly]=\"!filter\"\n >\n\n @if ( isOpen ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCloseClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>arrow_drop_up</nrcl-icon>\n </button>\n }\n @else if ( selection?.value?.length > 0 && clear ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n }\n @else {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>arrow_drop_down</nrcl-icon>\n </button>\n } \n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field> \n\n<ng-template #overlayTemplate>\n <div class=\"filter-select-options\" [class.multiple]=\"!single\" [class.single]=\"single\">\n @if ( !isFiltered && !single && summary ) {\n @if ( selection?.value?.length > 0 && selection?.value?.length < options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">{{ selection?.value?.length }} selected of {{ options?.length }}</div>\n\n <mat-selection-list\n (selectionChange)=\"onUpperSelectionChange( $event )\"\n >\n @for ( code of selection?.value; track code ) {\n <mat-list-option \n [value]=\"code\" \n togglePosition=\"before\"\n selected\n [matTooltip]=\"tooltips ? descriptionForCode( code ) : null\"\n matTooltipPosition=\"after\"\n >\n {{ descriptionForCode( code ) }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n }\n\n @if ( selection?.value?.length == options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">All options selected</div>\n </div>\n }\n }\n\n <mat-selection-list\n [formControl]=\"selection\"\n (selectionChange)=\"onSelectionChange( $event )\"\n [multiple]=\"!single\"\n hideSingleSelectionIndicator\n >\n @for ( option of options; track option ) {\n <mat-list-option [class.hide]=\"!matchesFilter( option )\"\n [value]=\"option.code\" \n togglePosition=\"before\" \n [matTooltip]=\"tooltips ? option.description : null\"\n matTooltipPosition=\"after\" \n >\n {{ option.description }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filters-panel\",\n templateUrl: \"./filters-panel.component.html\",\n styleUrl: \"./filters-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.hide-filters]': '!showFilters'\n }\n} )\nexport class FiltersPanelComponent {\n @Input() showClear = true\n @Input() showFilters = true\n @Input() hasAdvancedFilters = false\n @Input() showAdvancedFilters = false\n\n @Output() clearFilters = new EventEmitter()\n @Output() showFiltersChange = new EventEmitter<boolean>()\n @Output() showAdvancedFiltersChange = new EventEmitter<boolean>()\n\n onClearClick() {\n this.clearFilters.emit()\n }\n\n onHideClick() {\n this.showFilters = false\n this.showFiltersChange.emit( false )\n }\n\n onShowClick() {\n this.showFilters = true\n this.showFiltersChange.emit( true )\n }\n\n onHideAdvancedClick() {\n this.showAdvancedFilters = false\n this.showAdvancedFiltersChange.emit( false )\n }\n\n onShowAdvancedClick() {\n this.showAdvancedFilters = true\n this.showAdvancedFiltersChange.emit( true )\n }\n}\n","@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-form-field\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-field.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.required]': \"required\",\n '[class.readonly]': \"readonly\",\n }\n})\nexport class FormFieldComponent implements OnChanges {\n @Input( { transform: booleanAttribute } ) required\n @Input( { transform: booleanAttribute } ) readonly\n\n element = inject( ElementRef )\n renderer = inject( Renderer2 )\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( changes.readonly ) {\n if ( this.readonly ) {\n makeFormFieldReadonly( this.renderer, this.element.nativeElement )\n }\n else {\n makeFormFieldNotReadonly( this.renderer, this.element.nativeElement )\n }\n }\n }\n}\n\nfunction makeFormFieldReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(inputHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(textareaHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.addClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.setAttribute(selectHtmlElement, \"readonly\", \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = true;\n }\n });\n }\n}\n\nfunction makeFormFieldNotReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n // renderer.removeClass(formFieldEl, \"readonly\");\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(inputHtmlElement, \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(textareaHtmlElement, \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.removeAttribute(selectHtmlElement, \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = undefined;\n }\n });\n }\n}","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-form-layout\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-layout.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormLayoutComponent {\n}\n","import { booleanAttribute, Component, Input } from '@angular/core';\n\n@Component( {\n selector: 'nrcl-gap',\n template: '',\n styleUrl: './gap.component.scss',\n} )\nexport class GapComponent {\n @Input( { transform: booleanAttribute } ) horizontal = false\n @Input( { transform: booleanAttribute } ) vertical = false\n}\n","import { Injectable } from \"@angular/core\";\n\ntype StateContainer = {\n label: string\n state: any\n}\n\n@Injectable( {\n providedIn: \"root\"\n} )\nexport class PageStateService {\n private readonly classRegistry = new WeakMap<Function, StateContainer>();\n\n constructor() {\n }\n\n getPageState<S>( classConstructor: Function, defaultState: S, label?: string ): S {\n if ( this.classRegistry.has( classConstructor ) ) {\n let sc = this.classRegistry.get( classConstructor )\n return sc.state\n }\n\n this.setPageState( classConstructor, defaultState, label )\n return defaultState\n }\n\n setPageState<S>( classConstructor: Function, state: S, label?: string ) {\n let sc: StateContainer = { label, state }\n this.classRegistry.set( classConstructor, sc )\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport class Aborted {\n constructor( public reason: string ) {}\n}\n\nexport class ObservableAborter<T> {\n private _promise: Promise<T>\n private _abort: () => void\n private _aborted: boolean\n\n constructor( \n private observable: () => Observable<T>,\n private delay: number = 500\n ) {\n this._promise = new Promise( ( res, rej ) => {\n let timer = setTimeout(() => {\n let sub = this.observable().subscribe( {\n next: res,\n error: rej\n } )\n\n this._abort = () => {\n sub.unsubscribe()\n rej( new Aborted( 'aborted request' ) )\n this._abort = null\n }\n }, this.delay);\n\n this._abort = () => {\n clearTimeout( timer )\n rej( new Aborted( 'aborted timer' ) ) \n this._abort = null\n }\n } )\n }\n\n abort() {\n if ( this._aborted ) return\n this._aborted = true\n if ( !this._abort ) return\n this._abort()\n }\n\n get aborted(): boolean {\n return this._aborted\n }\n\n get promise(): Promise<T> {\n return this._promise\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, inject, Output } from \"@angular/core\";\nimport { SortDirection } from \"@angular/material/sort\";\nimport { Observable } from \"rxjs\";\nimport { PageStateService } from \"../services/page-state.service\";\nimport { ObservableAborter, Aborted } from \"../utils/row-list.util\";\nimport { CodeDescription } from \"../public-api\";\n\nexport type RowListState<F> = {\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n}\n\nexport type LoadRowListResult<R> = { \n rows: R[], \n totalRowCount: number \n}\n\n@Directive()\nexport class RowListBase<F,R,L=any> implements RowListState<F>, AfterViewInit {\n @Output() isLoadingChange = new EventEmitter<boolean>()\n \n private _isLoading = false\n get isLoading() { return this._isLoading }\n set isLoading( v: boolean ) { \n if ( v == this._isLoading ) return \n this._isLoading = v \n this.isLoadingChange.emit( v )\n } \n\n rows: R[] = []\n totalRowCount: number\n\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n\n sortColumns: CodeDescription[]\n summaryMobile: string\n showPagingMobile: boolean\n \n pageStateService = inject( PageStateService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n private _loadRowListRequest: ObservableAborter<L>\n\n constructor() {\n this.initializeRowList()\n }\n\n initializeRowList() {\n this.loadPageState() \n }\n\n ngAfterViewInit(): void {\n this.refreshRowList()\n }\n\n refreshRowList(): Promise<void> {\n this.isLoading = true\n\n return Promise.resolve()\n .then( () => {\n return this.loadRowList()\n } )\n .then( ( { rows, totalRowCount } ) => {\n this.rows = rows\n this.totalRowCount = totalRowCount\n this.isLoading = false\n } )\n .catch( ( e ) => {\n if ( e instanceof Aborted ) return\n\n this.loadRowListPageFailed( e )\n this.isLoading = false\n } )\n .finally( () => {\n this.updateSummaryMobile()\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n loadRowList(): Promise<LoadRowListResult<R>> {\n if ( this._loadRowListRequest )\n this._loadRowListRequest.abort()\n\n this._loadRowListRequest = new ObservableAborter<L>( () => { \n return this.fetchRowListPage()\n } )\n\n return this._loadRowListRequest.promise\n .then( res => {\n return this.displayRowListPage( res )\n } )\n }\n\n fetchRowListPage(): Observable<L> {\n throw 'unimplemented'\n }\n \n displayRowListPage( res: L ): LoadRowListResult<R> {\n throw 'unimplemented'\n }\n\n loadRowListPageFailed( error ) {\n console.warn( error )\n this.rows = []\n this.totalRowCount = 0\n }\n\n onFilterChange( ev ) {\n this.filter = ev\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onSortChange( ev ) {\n this.sortActive = ev.active\n this.sortDirection = ev.direction\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumber = ev\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageSizeChange( ev ) {\n this.pageSize = ev \n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n updateSummaryMobile() {\n [ this.summaryMobile, this.showPagingMobile ] = makeSummary( this.totalRowCount, this.pageNumber, this.pageSize )\n }\n\n get initialPageState(): RowListState<F> {\n throw 'unimplemented'\n }\n\n loadPageState() {\n let state = this.pageStateService.getPageState<RowListState<F>>( this.constructor, this.initialPageState )\n\n this.filter = state.filter\n this.pageSize = state.pageSize\n this.pageNumber = state.pageNumber\n this.sortActive = state.sortActive\n this.sortDirection = state.sortDirection\n }\n\n savePageState() {\n let state: RowListState<F> = JSON.parse( JSON.stringify( {\n filter: this.filter,\n pageSize: this.pageSize,\n pageNumber: this.pageNumber,\n sortActive: this.sortActive,\n sortDirection: this.sortDirection,\n } ) )\n \n this.pageStateService.setPageState<RowListState<F>>( this.constructor, state )\n }\n}\n\nexport function makeSummary( rowCount, pageNumber, pageSize ): [ string, boolean ] {\n if ( rowCount && pageSize ) {\n let pageCount = Math.ceil( rowCount / pageSize )\n\n let first = ( Math.min( pageCount, pageNumber ) - 1 ) * pageSize + 1\n let last = Math.min( first + pageSize - 1, rowCount )\n\n return [ `Showing ${ first } to ${ last } of ${ rowCount }`, true ]\n }\n else {\n return [ \"No records to display.\", false ]\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-row-list-desktop\",\n templateUrl: \"./row-list-desktop.component.html\",\n styleUrl: \"./row-list-desktop.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListDesktopComponent {\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-row-list-mobile\",\n templateUrl: \"./row-list-mobile.component.html\",\n styleUrl: \"./row-list-mobile.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListMobileComponent {\n}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output\n} from \"@angular/core\";\n\nexport type RowListPaginationWidth = 'sufficient'|'tight'|'restrictive'\n\n@Component({\n selector: \"nrcl-row-list-pagination\",\n templateUrl: \"./row-list-pagination.component.html\",\n styleUrl: \"./row-list-pagination.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.width-sufficient]': \"componentWidth == 'sufficient'\",\n '[class.width-tight]': \"componentWidth == 'tight'\",\n '[class.width-restrictive]': \"componentWidth == 'restrictive'\",\n }\n})\nexport class RowListPaginationComponent implements AfterViewInit {\n @Input() paginationId = '1'\n @Input() pageSizeOptions = [ \n { code: 5, description: '5 Rows' },\n { code: 10, description: '10 Rows' },\n { code: 20, description: '20 Rows' },\n { code: 50, description: '50 Rows' },\n { code: 100, description: '100 Rows' },\n ]\n @Input() pageSize = 20\n @Input() pageNumber\n @Input() rowCount\n @Input() showPageSize = true \n @Input() noRowsMessage = 'No records to display.'\n\n @Output() pageSizeChange = new EventEmitter<number>();\n @Output() pageNumberChange = new EventEmitter<number>();\n\n componentWidth: RowListPaginationWidth = 'sufficient'\n paginationMaxSize = 5\n\n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n \n ngAfterViewInit(): void {\n this.checkWidth()\n }\n \n onPageSizeChange( ev ) { \n this.pageSizeChange.emit( Number( ev ) )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumberChange.emit( Number( ev ) )\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event) {\n this.checkWidth()\n }\n\n checkWidth() {\n setTimeout( () => {\n let w = this.elementRef?.nativeElement.offsetWidth \n if ( !w ) return\n\n switch ( true ) {\n case w > 600: \n this.componentWidth = 'sufficient'\n this.paginationMaxSize = 5\n break\n\n case w > 500: \n this.componentWidth = 'tight'; \n this.paginationMaxSize = 3\n break\n\n default: \n this.componentWidth = 'restrictive'\n this.paginationMaxSize = 4\n }\n\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n get pageCount() {\n if ( !this.hasRows ) return 0\n return Math.ceil( this.rowCount / this.pageSize )\n }\n\n get firstRow() {\n if ( !this.hasRows ) return 0\n return ( Math.min( this.pageCount, this.pageNumber ) - 1 ) * this.pageSize + 1\n }\n\n get lastRow() {\n if ( !this.hasRows ) return 0\n return Math.min( this.firstRow + this.pageSize - 1, this.rowCount )\n }\n\n get hasRows() {\n return this.rowCount\n }\n}\n","@if ( hasRows ) {\n <nrcl-filter-container class=\"summary\"\n label=\"Showing Rows\"\n >\n <span>{{ firstRow }} to {{ lastRow }} <small>(of {{ rowCount }})</small></span>\n </nrcl-filter-container>\n}\n@else {\n <div class=\"no-rows\">{{ noRowsMessage }}</div>\n}\n\n@if ( hasRows ) {\n <div class=\"pagination\">\n <pagination-controls \n [id]=\"paginationId\" \n [maxSize]=\"paginationMaxSize\"\n [responsive]=\"false\"\n [directionLinks]=\"true\"\n previousLabel=\"\"\n nextLabel=\"\"\n [autoHide]=\"false\"\n (pageChange)=\"onPageNumberChange( $event )\"\n ></pagination-controls>\n </div>\n}\n\n@if ( hasRows && showPageSize ) {\n <nrcl-filter-select class=\"page-size\"\n label=\"Page Size\"\n [value]=\"[ pageSize ]\"\n [options]=\"pageSizeOptions\"\n (valueChange)=\"onPageSizeChange( $event[ 0 ] )\"\n selectMax=\"1\"\n [clear]=\"false\"\n [filter]=\"false\"\n placeholder=\"Select...\"\n ></nrcl-filter-select>\n}\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type AttachmentsTableRow = {\n attachmentTypeDescription: string\n fileName: string\n fileExtension: string\n uploadedBy: string\n uploadedTimestamp: string\n attachmentDescription: string\n attachmentId: string \n fileId: string\n sourceObjectUniqueId: string\n}\n\nexport type FetchAttachmentsParameters = { \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface AttachmentRowListProvider<R,L=any> {\n fetchAttachments( x: FetchAttachmentsParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n downloadItem( item: R )\n deleteItem( item: R )\n}\n\n@Component({\n selector: \"nrcl-list-attachments\",\n templateUrl: \"./list-attachments.component.html\",\n styleUrl: \"./list-attachments.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListAttachmentsComponent extends RowListBase<{},AttachmentsTableRow> {\n @Input() rowListProvider: AttachmentRowListProvider<AttachmentsTableRow>\n @Input() canDelete = true\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'attachmentTypeCode', 'fileName', 'sourceObjectNameCode', 'uploadedBy', 'uploadedTimestamp', 'description', 'download' ]\n\n initializeRowList(): void {\n super.initializeRowList()\n }\n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 5,\n pageNumber: 1,\n sortActive: null,\n sortDirection: 'desc',\n }\n }\n\n ngAfterViewInit() {\n if ( this.canDelete )\n this.columns.push( 'delete' )\n \n super.ngAfterViewInit()\n }\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchAttachments ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchAttachments({\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n })\n }\n \n displayRowListPage( res: any ): LoadRowListResult<AttachmentsTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n }\n\n onDownloadClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.downloadItem ) throw Error( 'no provider' )\n\n return this.rowListProvider.downloadItem( item )\n }\n\n onDeleteClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.deleteItem ) throw Error( 'no provider' )\n \n return this.rowListProvider.deleteItem( item )\n }\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }\"\n >\n <ng-container matColumnDef=\"attachmentTypeCode\">\n <th mat-header-cell *matHeaderCellDef>Attachment Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>File Name</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileName }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"sourceObjectNameCode\">\n <th mat-header-cell *matHeaderCellDef>File Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileExtension }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedBy\">\n <th mat-header-cell *matHeaderCellDef>Uploaded By</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedBy }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedTimestamp\">\n <th mat-header-cell *matHeaderCellDef>Uploaded At</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef>Description</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"download\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"delete\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"8\">No records to display.</td>\n </tr> \n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.fileName }}</h2>\n </section>\n\n <section actions>\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n\n @if ( canDelete ) {\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n }\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>Attachment Type</mat-label>\n <div class=\"value\">{{ item.attachmentTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>File Type</mat-label>\n <div class=\"value\">{{ item.fileExtension }}</div>\n </section>\n\n <section>\n <mat-label>Uploaded By</mat-label>\n <div class=\"value\">{{ item.uploadedBy }}</div>\n </section> \n\n <section>\n <mat-label>Uploaded At</mat-label>\n <div class=\"value\">{{ item.uploadedTimestamp }}</div>\n </section> \n\n <section full-width>\n <mat-label>Description</mat-label>\n <div class=\"value\">{{ item.attachmentDescription }}</div>\n </section> \n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type EventHistoryTableRow = {\n eventTimestamp: string\n createdByUserId: string\n eventHistoryTypeDescription: string\n sourceObjectNameDescription: string\n comment: string\n}\n\nexport type FetchEventHistoryParameters = { \n isSupplier: boolean \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface EventHistoryRowListProvider<R,L=any> {\n fetchEventHistory( x: FetchEventHistoryParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n}\n\n@Component({\n selector: \"nrcl-list-event-history\",\n templateUrl: \"./list-event-history.component.html\",\n styleUrl: \"./list-event-history.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListEventHistoryComponent extends RowListBase<{},EventHistoryTableRow> {\n @Input() rowListProvider: EventHistoryRowListProvider<EventHistoryTableRow>\n @Input() canDelete = true\n @Input() showPagination = false\n @Input() isSupplier: boolean = false\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'dateTime', 'changedBy', 'type', 'section', 'comment' ]\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchEventHistory ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchEventHistory( {\n isSupplier: this.isSupplier,\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n } )\n }\n\n displayRowListPage( res: any ): LoadRowListResult<EventHistoryTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n } \n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 20,\n pageNumber: 1,\n sortActive: 'dateTime',\n sortDirection: 'desc',\n }\n }\n\n\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }\"\n matSort \n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n (matSortChange)=\"onSortChange( $event )\">\n >\n <ng-container matColumnDef=\"dateTime\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Date and Time</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changedBy\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>User ID</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.createdByUserId }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventHistoryTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"section\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Section</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.sourceObjectNameDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"comment\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Comment</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.comment }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.comment }}</h2>\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>User ID</mat-label>\n <div class=\"value\">{{ item.createdByUserId }}</div>\n </section>\n\n <section>\n <mat-label>Time</mat-label>\n <div class=\"value\">{{ item.eventTimestamp }}</div>\n </section>\n\n <section>\n <mat-label>Type</mat-label>\n <div class=\"value\">{{ item.eventHistoryTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>Section</mat-label>\n <div class=\"value\">{{ item.sourceObjectNameDescription }}</div>\n </section> \n\n <!-- <section full-width>\n <mat-label>Comment</mat-label>\n <div class=\"value\">{{ item.comment }}</div>\n </section> -->\n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-page-container\",\n templateUrl: \"./page-container.component.html\",\n styleUrl: \"./page-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class PageContainerComponent {}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-page-header\",\n templateUrl: \"./page-header.component.html\",\n styleUrl: \"./page-header.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.isLoading]': 'isLoading',\n }\n})\nexport class PageHeaderComponent {\n @Input() isLoading = false\n}\n","<div class=\"left-side\">\n <ng-content select=\"[left-side],h1,h2\"></ng-content>\n</div>\n\n<div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n <ng-content></ng-content>\n</div>\n\n<mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n","import { CodeDescription } from \"./code-table.util\"\n\nexport function wrapFilterValue( val ) {\n if ( !val ) return []\n if ( Array.isArray( val ) ) return val\n return [ val ]\n}\n\nexport function unwrapFilterValue( val ) {\n if ( !val ) return ''\n if ( Array.isArray( val ) ) return val[ 0 ] || ''\n return val\n}\n\nexport function mapToCodeDescription( list: Array<any>, codeField: string, descriptionField: string ): CodeDescription[] {\n if ( !list ) return list\n return list.map( v => {\n return {\n code: v[ codeField ],\n description: v[ descriptionField ]\n }\n } )\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\nimport { Sort, SortDirection } from \"@angular/material/sort\";\nimport { unwrapFilterValue, wrapFilterValue } from \"../../utils/filter.util\";\n\n@Component({\n selector: \"nrcl-row-list-sorting\",\n templateUrl: \"./row-list-sorting.component.html\",\n styleUrl: \"./row-list-sorting.component.scss\",\n})\nexport class RowListSortingComponent {\n @Input() sortColumn: string\n @Input() sortColumnOptions: CodeDescription[] = []\n @Input() sortDirection: SortDirection = 'asc'\n\n @Output() sortChange = new EventEmitter<Sort>();\n\n wrapFilterValue = wrapFilterValue \n unwrapFilterValue = unwrapFilterValue\n \n onSortColumnChange( ev ) {\n this.sortColumn = ev\n this.emitSortChange()\n }\n\n onSortDirectionChange() {\n this.emitSortChange()\n }\n\n emitSortChange() {\n this.sortChange.emit( { \n active: this.sortColumn,\n direction: this.sortDirection\n } )\n }\n}\n","<nrcl-filter-select class=\"sort-order\" \n label=\"Sort By\"\n [value]=\"wrapFilterValue( sortColumn )\"\n [options]=\"sortColumnOptions\"\n (valueChange)=\"onSortColumnChange( unwrapFilterValue( $event ) )\"\n selectMax=\"1\" \n></nrcl-filter-select>\n\n<nrcl-filter-container class=\"sort-direction\" \n label=\"Sort Order\"\n>\n <mat-radio-group\n [(ngModel)]=\"sortDirection\" \n (ngModelChange)=\"onSortDirectionChange()\"\n [disabled]=\"!sortColumn\"\n >\n <mat-radio-button aria-label=\"Sort A to Z\" value=\"asc\">A &rarr; Z</mat-radio-button>\n <mat-radio-button aria-label=\"Sort Z to A\" value=\"desc\">Z &rarr; A</mat-radio-button>\n </mat-radio-group>\n</nrcl-filter-container>\n","import { Component, Inject } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from \"@angular/material/snack-bar\";\n\nexport type SnackbarType = 'success'|'error'|'info'|'update'\n\nexport type SnackbarConfig = {\n message: string\n type: SnackbarType\n}\n\n@Component({\n selector: 'nrcl-snackbar',\n templateUrl: \"./snackbar.component.html\",\n styleUrl: \"./snackbar.component.scss\",\n host: {\n '[class]': 'className'\n }\n})\nexport class SnackbarComponent {\n constructor(\n public snackBarRef: MatSnackBarRef<SnackbarComponent>,\n @Inject(MAT_SNACK_BAR_DATA) public config: SnackbarConfig\n ) { }\n\n get className() {\n return 'snackbar-type-' + this.config.type\n }\n}\n","<div class=\"icon\">\n @switch ( config.type ) {\n @case ( 'success' ) {\n <nrcl-icon>check_circle</nrcl-icon>\n }\n @case ( 'error' ) {\n <nrcl-icon>cancel</nrcl-icon>\n }\n @case ( 'info' ) {\n <nrcl-icon>info</nrcl-icon>\n }\n @case ( 'update' ) {\n <nrcl-icon>error</nrcl-icon>\n }\n }\n</div>\n\n<div class=\"message\">\n <span>{{ config.message }}</span>\n</div>\n\n<div class=\"button\">\n <button (click)=\"snackBarRef.dismissWithAction()\">Close</button>\n</div>\n","import { inject, Injectable } from \"@angular/core\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { SnackbarComponent, SnackbarConfig } from \"../components/snackbar/snackbar.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarUtilService {\n snackbar = inject( MatSnackBar )\n\n successful( message: string, duration = 5000 ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'success',\n message: message\n }\n }\n )\n }\n\n successfullySaved( message: string, duration = 5000 ) {\n this.successful( `${ message } saved successfully.`, duration )\n }\n\n successfullyDeleted( message: string, duration = 5000 ) {\n this.successful( `${ message } deleted successfully.`, duration )\n }\n\n successfullyRemoved( message: string, duration = 5000 ) {\n this.successful( `${ message } removed successfully.`, duration )\n }\n\n successfullyCreated( message: string, duration = 5000 ) {\n this.successful( `${ message } created successfully.`, duration )\n }\n\n successfullyAdded( message: string, duration = 5000 ) {\n this.successful( `${ message } added successfully.`, duration )\n }\n\n information( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'info',\n message: message\n }\n }\n )\n }\n\n error( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'error',\n message: message\n }\n }\n )\n }\n\n updated( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'update',\n message: message\n }\n }\n )\n }\n}\n","export type CodeDescription = {\n code: string\n description: string\n}\n\nexport class CodeTable {\n constructor( \n // private _items: ( CodeDescription | CodeData | Option )[], \n private _items: ( CodeDescription )[], \n private _reload?: () => Promise<CodeDescription[]> \n ) {}\n\n get items(): readonly CodeDescription[] {\n return this._items\n }\n\n forCode( code: string ): CodeDescription {\n return this._items.find( o => o.code == code )\n }\n\n reload(): Promise<void> {\n if ( !this._reload ) return Promise.reject( 'no reload defined' )\n\n return this._reload()\n .then( res => {\n this._items = res\n } )\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { OWL_DATE_TIME_FORMATS, OwlDateTimeModule, OwlMomentDateTimeModule } from \"@busacca/ng-pick-datetime\";\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CellContentComponent } from './components/cell-content/cell-content.component';\nimport { DesktopViewDirective, DeviceViewComponent, MobileViewDirective } from './components/device-view/device-view.component';\nimport { ExpansionPanelComponent, ExpansionPanelFooterComponent, ExpansionPanelHeaderComponent } from './components/expansion-panel/expansion-panel.component';\nimport { FilterContainerComponent } from './components/filter-container/filter-container.component';\nimport { FilterDateComponent } from './components/filter-date/filter-date.component';\nimport { FilterSearchComponent } from './components/filter-search/filter-search.component';\nimport { FilterSelectComponent } from './components/filter-select/filter-select.component';\nimport { FiltersPanelComponent } from './components/filters-panel/filters-panel.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { FormLayoutComponent } from './components/form-layout/form-layout.component';\nimport { GapComponent } from './components/gap/gap.component';\nimport { ListAttachmentsComponent } from './components/list-attachments/list-attachments.component';\nimport { ListEventHistoryComponent } from './components/list-event-history/list-event-history.component';\nimport { PageContainerComponent } from './components/page-container/page-container.component';\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\nimport { RowListDesktopComponent } from './components/row-list-desktop/row-list-desktop.component';\nimport { RowListMobileComponent } from './components/row-list-mobile/row-list-mobile.component';\nimport { RowListPaginationComponent } from './components/row-list-pagination/row-list-pagination.component';\nimport { RowListSortingComponent } from './components/row-list-sorting/row-list-sorting.component';\nimport { SnackbarComponent } from './components/snackbar/snackbar.component';\nimport { ConfigurationService } from './services/configuration.service';\nimport { PageStateService } from './services/page-state.service';\nimport { SnackbarUtilService } from './services/snackbar-util.service';\nimport { DATE_FORMATS } from './utils/date.util';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconComponent } from './components/icon/icon.component';\n\n@NgModule({\n imports: [\n BrowserAnimationsModule,\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatRadioModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatRippleModule,\n MatSortModule,\n MatTableModule,\n MatTooltipModule,\n ReactiveFormsModule,\n RouterModule,\n OwlDateTimeModule,\n OwlMomentDateTimeModule,\n NgxPaginationModule,\n ],\n declarations: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent\n ],\n exports: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent\n ],\n providers: [\n SnackbarUtilService,\n ConfigurationService,\n PageStateService,\n { provide: OWL_DATE_TIME_FORMATS, useValue: DATE_FORMATS },\n ]\n})\nexport class NrNgxComponentLibModule {\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n this.matIconRegistry.addSvgIcon(\n \"filter-cancel\",\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/app-icons/filter-cancel.svg\")\n );\n\n }\n}\n","/*\n * Public API Surface of wfcc-application-ui\n */\nexport * from './components/button/button.component'\nexport * from './components/cell-content/cell-content.component'\nexport * from './components/device-view/device-view.component'\nexport * from './components/expansion-panel/expansion-panel.component'\nexport * from './components/filter-container/filter-container.component'\nexport * from './components/filter-date/filter-date.component'\nexport * from './components/filter-search/filter-search.component'\nexport * from './components/filter-select/filter-select.component'\nexport * from './components/filters-panel/filters-panel.component'\nexport * from './components/form-field/form-field.component'\nexport * from './components/form-layout/form-layout.component'\nexport * from './components/icon/icon.component'\nexport * from './components/gap/gap.component'\nexport * from './components/list-attachments/list-attachments.component'\nexport * from './components/list-event-history/list-event-history.component'\nexport * from './components/page-container/page-container.component'\nexport * from './components/page-header/page-header.component'\nexport * from './components/row-list-desktop/row-list-desktop.component'\nexport * from './components/row-list-mobile/row-list-mobile.component'\nexport * from './components/row-list-pagination/row-list-pagination.component'\nexport * from './components/row-list-sorting/row-list-sorting.component'\nexport * from './components/snackbar/snackbar.component'\n\nexport * from './directives/configuration-subscriber.base'\nexport * from './directives/row-list.base'\n\nexport * from './services/snackbar-util.service'\nexport * from './services/configuration.service'\nexport * from './services/page-state.service'\n\nexport * from './utils/code-table.util'\nexport * from './utils/date.util'\nexport * from './utils/filter.util'\nexport * from './utils/row-list.util'\n\nexport * from './nr-ngx-component-lib.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.IconComponent","i2","i3.ButtonComponent","i4.IconComponent","i6.IconComponent","i3","i5","i6","i7.IconComponent","i1.ButtonComponent","i2.MobileViewDirective","i2.DeviceViewComponent","i2.FilterContainerComponent","i3.FilterSelectComponent","i4.ButtonComponent","i5.CellContentComponent","i6.GapComponent","i7.RowListDesktopComponent","i8.RowListMobileComponent","i9.RowListPaginationComponent","i10.DesktopViewDirective","i10.MobileViewDirective","i10.DeviceViewComponent","i4","i3.FilterContainerComponent","i4.FilterSelectComponent","i2.IconComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bcgov/nr-ngx-component-lib",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "dependencies": {
5
5
  "tslib": "^2.5.1"
6
6
  },