{"version":3,"file":"real-tech-brick.mjs","sources":["../../../projects/brick/src/lib/brick.service.ts","../../../projects/brick/src/lib/message-container/message.service.ts","../../../projects/brick/src/lib/brick.component.ts","../../../projects/brick/src/lib/message/message.module.ts","../../../projects/brick/src/lib/image-viewer/viewer.service.ts","../../../projects/brick/src/lib/image-viewer/image-viewer.module.ts","../../../projects/brick/src/style/default_theme.ts","../../../projects/brick/src/lib/add-button/add-button.component.ts","../../../projects/brick/src/lib/add-button/add-button.component.html","../../../projects/brick/src/lib/flex/flex.component.ts","../../../projects/brick/src/lib/flex/flex.component.html","../../../projects/brick/src/lib/icon/icon.component.ts","../../../projects/brick/src/lib/icon/icon.component.html","../../../projects/brick/src/lib/placement.service.ts","../../../projects/brick/src/lib/popover/popover.component.ts","../../../projects/brick/src/lib/popover/popover.component.html","../../../projects/brick/src/lib/input/toggle-eye-password.directive.ts","../../../projects/brick/src/lib/input/input.component.ts","../../../projects/brick/src/lib/input/input.component.html","../../../projects/brick/src/lib/animations.ts","../../../projects/brick/src/lib/message/message.component.ts","../../../projects/brick/src/lib/message/message.component.html","../../../projects/brick/src/lib/address-input/address-input.component.ts","../../../projects/brick/src/lib/address-input/address-input.component.html","../../../projects/brick/src/lib/bar-graph/bar-graph.component.ts","../../../projects/brick/src/lib/bar-graph/bar-graph.component.html","../../../projects/brick/src/lib/bottom-bar/bottom-bar.component.ts","../../../projects/brick/src/lib/bottom-bar/bottom-bar.component.html","../../../projects/brick/src/lib/loader/loader.component.ts","../../../projects/brick/src/lib/loader/loader.component.html","../../../projects/brick/src/lib/button/button.component.ts","../../../projects/brick/src/lib/button/button.component.html","../../../projects/brick/src/lib/card/card.component.ts","../../../projects/brick/src/lib/card/card.component.html","../../../projects/brick/src/lib/image/image.component.ts","../../../projects/brick/src/lib/image/image.component.html","../../../projects/brick/src/lib/carousel/carousel.component.ts","../../../projects/brick/src/lib/carousel/carousel.component.html","../../../projects/brick/src/lib/checkbox/checkbox.component.ts","../../../projects/brick/src/lib/checkbox/checkbox.component.html","../../../projects/brick/src/lib/tag/tag.component.ts","../../../projects/brick/src/lib/tag/tag.component.html","../../../projects/brick/src/lib/check-card/check-card.component.ts","../../../projects/brick/src/lib/check-card/check-card.component.html","../../../projects/brick/src/lib/code-example/code-example.component.ts","../../../projects/brick/src/lib/code-example/code-example.component.html","../../../projects/brick/src/lib/_animations/smooth-height.directive.ts","../../../projects/brick/src/lib/collapse/collapse.component.ts","../../../projects/brick/src/lib/collapse/collapse.component.html","../../../projects/brick/src/lib/stack/stack.component.ts","../../../projects/brick/src/lib/stack/stack.component.html","../../../projects/brick/src/lib/toggle/toggle.component.ts","../../../projects/brick/src/lib/toggle/toggle.component.html","../../../projects/brick/src/lib/color-swatch/color-swatch.component.ts","../../../projects/brick/src/lib/color-swatch/color-swatch.component.html","../../../projects/brick/src/lib/confetti/confetti.component.ts","../../../projects/brick/src/lib/confetti/confetti.component.html","../../../projects/brick/src/lib/control-group/control-group.component.ts","../../../projects/brick/src/lib/control-group/control-group.component.html","../../../projects/brick/src/lib/cookie-consent/cookie-consent.component.ts","../../../projects/brick/src/lib/cookie-consent/cookie-consent.component.html","../../../projects/brick/src/lib/icon-button/icon-button.component.ts","../../../projects/brick/src/lib/icon-button/icon-button.component.html","../../../projects/brick/src/lib/pagination/pagination.component.ts","../../../projects/brick/src/lib/pagination/pagination.component.html","../../../projects/brick/src/lib/data-table/data-table.component.ts","../../../projects/brick/src/lib/data-table/data-table.component.html","../../../projects/brick/src/lib/date-picker/date-picker.component.ts","../../../projects/brick/src/lib/date-picker/date-picker.component.html","../../../projects/brick/src/lib/data-well/data-well.component.ts","../../../projects/brick/src/lib/data-well/data-well.component.html","../../../projects/brick/src/lib/grid/grid.component.ts","../../../projects/brick/src/lib/grid/grid.component.html","../../../projects/brick/src/lib/filter/filter.component.ts","../../../projects/brick/src/lib/filter/filter.component.html","../../../projects/brick/src/lib/flex-item/flex-item.component.ts","../../../projects/brick/src/lib/flex-item/flex-item.component.html","../../../projects/brick/src/lib/footer/footer.component.ts","../../../projects/brick/src/lib/footer/footer.component.html","../../../projects/brick/src/lib/flag/flag.component.ts","../../../projects/brick/src/lib/flag/flag.component.html","../../../projects/brick/src/lib/flag/flags/flag.us.ts","../../../projects/brick/src/lib/flag/flags/us.svg","../../../projects/brick/src/lib/hero/hero.component.ts","../../../projects/brick/src/lib/hero/hero.component.html","../../../projects/brick/src/lib/indicator/indicator.component.ts","../../../projects/brick/src/lib/indicator/indicator.component.html","../../../projects/brick/src/lib/image-viewer/image-viewer.component.ts","../../../projects/brick/src/lib/image-viewer/image-viewer.component.html","../../../projects/brick/src/lib/info-panel/info-panel.component.ts","../../../projects/brick/src/lib/info-panel/info-panel.component.html","../../../projects/brick/src/lib/logo-bar/logo-bar.component.ts","../../../projects/brick/src/lib/logo-bar/logo-bar.component.html","../../../projects/brick/src/lib/map/map.component.ts","../../../projects/brick/src/lib/map/map.component.html","../../../projects/brick/src/lib/menu/menu.component.ts","../../../projects/brick/src/lib/menu/menu.component.html","../../../projects/brick/src/lib/menu-item/menu-item.component.ts","../../../projects/brick/src/lib/menu-item/menu-item.component.html","../../../projects/brick/src/lib/menu-item-dropdown/menu-item-dropdown.component.ts","../../../projects/brick/src/lib/menu-item-dropdown/menu-item-dropdown.component.html","../../../projects/brick/src/lib/modal/modal.component.ts","../../../projects/brick/src/lib/modal/modal.component.html","../../../projects/brick/src/lib/message-container/message-container.component.ts","../../../projects/brick/src/lib/message-container/message-container.component.html","../../../projects/brick/src/lib/navbar/navbar.component.ts","../../../projects/brick/src/lib/navbar/navbar.component.html","../../../projects/brick/src/lib/page-layout/page-layout.component.ts","../../../projects/brick/src/lib/page-layout/page-layout.component.html","../../../projects/brick/src/lib/phonenumber-input/phonenumber-input.component.ts","../../../projects/brick/src/lib/phonenumber-input/phonenumber-input.component.html","../../../projects/brick/src/lib/radio-button/radio-button.component.ts","../../../projects/brick/src/lib/radio-button/radio-button.component.html","../../../projects/brick/src/lib/rating/rating.component.ts","../../../projects/brick/src/lib/rating/rating.component.html","../../../projects/brick/src/lib/section/section.component.ts","../../../projects/brick/src/lib/section/section.component.html","../../../projects/brick/src/lib/select/select.component.ts","../../../projects/brick/src/lib/select/select.component.html","../../../projects/brick/src/lib/showcase-carousel/showcase-carousel.component.ts","../../../projects/brick/src/lib/showcase-carousel/showcase-carousel.component.html","../../../projects/brick/src/lib/sidebar/sidebar.component.ts","../../../projects/brick/src/lib/sidebar/sidebar.component.html","../../../projects/brick/src/lib/signature-pad/signature-pad.component.ts","../../../projects/brick/src/lib/signature-pad/signature-pad.component.html","../../../projects/brick/src/lib/slider/slider.component.ts","../../../projects/brick/src/lib/slider/slider.component.html","../../../projects/brick/src/lib/sort/drag.directive.ts","../../../projects/brick/src/lib/sort/sort.component.ts","../../../projects/brick/src/lib/sort/sort.component.html","../../../projects/brick/src/lib/sort/sort-item/sort-item.component.ts","../../../projects/brick/src/lib/sort/sort-item/sort-item.component.html","../../../projects/brick/src/lib/sticky/sticky.component.ts","../../../projects/brick/src/lib/sticky/sticky.component.html","../../../projects/brick/src/lib/tabs/tab/tab.component.ts","../../../projects/brick/src/lib/tabs/tab/tab.component.html","../../../projects/brick/src/lib/tabs/tabs.component.ts","../../../projects/brick/src/lib/tabs/tabs.component.html","../../../projects/brick/src/lib/textarea/textarea.component.ts","../../../projects/brick/src/lib/textarea/textarea.component.html","../../../projects/brick/src/lib/tree-editor/tree-editor-item/tree-editor-item.component.ts","../../../projects/brick/src/lib/tree-editor/tree-editor-item/tree-editor-item.component.html","../../../projects/brick/src/lib/tree-editor/tree-editor.component.ts","../../../projects/brick/src/lib/tree-editor/tree-editor.component.html","../../../projects/brick/src/lib/timeline-item/timeline-item.component.ts","../../../projects/brick/src/lib/timeline-item/timeline-item.component.html","../../../projects/brick/src/lib/upload-box/upload-task/upload-task.component.ts","../../../projects/brick/src/lib/upload-box/upload-task/upload-task.component.html","../../../projects/brick/src/lib/upload-box/drop-zone.directive.ts","../../../projects/brick/src/lib/upload-box/upload-box.component.ts","../../../projects/brick/src/lib/upload-box/upload-box.component.html","../../../projects/brick/src/lib/upload-box/upload-item/upload-item.component.ts","../../../projects/brick/src/lib/upload-box/upload-item/upload-item.component.html","../../../projects/brick/src/lib/wizard/wizard.component.ts","../../../projects/brick/src/lib/wizard/wizard.component.html","../../../projects/brick/src/lib/brick.module.ts","../../../projects/brick/src/public-api.ts","../../../projects/brick/src/real-tech-brick.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BrickService {\r\n\r\n  constructor() { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\nexport interface IMessage {\r\n  type: string;\r\n  title: string;\r\n  message: string;\r\n  id: number;\r\n  out: boolean;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class MessageService {\r\n  messagesSubject$: BehaviorSubject<Array<IMessage>>;\r\n\r\n  messagesArray: Array<IMessage>;\r\n\r\n  id: number = 0;\r\n\r\n  get messages() {\r\n    console.log(\"sjaak?\");\r\n    return this.messagesSubject$.asObservable();\r\n  }\r\n\r\n  constructor() {\r\n    this.messagesArray = [];\r\n    this.messagesSubject$ = new BehaviorSubject<Array<IMessage>>(\r\n      this.messagesArray\r\n    );\r\n  }\r\n\r\n  addMessage(type = \"info\", title = null, message = null) {\r\n    let id = this.id;\r\n    this.messagesArray.push({\r\n      type,\r\n      title,\r\n      message,\r\n      id,\r\n      out: false,\r\n    });\r\n    if (type !== \"alert\") setTimeout(this.removeMessage, 5000, id);\r\n    this.id += 1;\r\n    this.messagesSubject$.next([...this.messagesArray]);\r\n  }\r\n\r\n  removeMessage = (id) => {\r\n    let idx = this.messagesArray.findIndex((x) => x.id == id);\r\n    this.messagesArray[idx].out = true;\r\n    setTimeout(this.removeFromArray, 1000, id);\r\n  };\r\n\r\n  removeFromArray = (id) => {\r\n    this.messagesArray = this.messagesArray.filter((m) => id !== m.id);\r\n    this.messagesSubject$.next([...this.messagesArray]);\r\n  };\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-brick\",\r\n  template: `\r\n    <p>\r\n      brick works!\r\n    </p>\r\n  `,\r\n  styleUrls: [\"./brick.component.scss\"]\r\n})\r\nexport class BrickComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { ModuleWithProviders, NgModule, Injectable } from \"@angular/core\";\r\nimport { MessageService } from \"../message-container/message.service\";\r\n\r\n@Injectable()\r\n@NgModule({})\r\nexport class MessageModule {\r\n  static forRoot(): ModuleWithProviders<MessageModule> {\r\n    return {\r\n      ngModule: MessageModule,\r\n      providers: [MessageService]\r\n    };\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\n\r\nexport interface IImage {\r\n  path: string;\r\n  title: string;\r\n  id: number;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ViewerService {\r\n  imagesSubject$: BehaviorSubject<Array<IImage>>;\r\n  imagesArray: Array<IImage>;\r\n\r\n  showViewer: boolean = true;\r\n  showViewerChange: Subject<any> = new Subject<any>();\r\n\r\n  id: number = 0;\r\n\r\n  get images() {\r\n    return this.imagesSubject$.asObservable();\r\n  }\r\n\r\n  constructor() {\r\n    this.clear();\r\n  }\r\n\r\n  addImage(path = null, title = null) {\r\n    let id = this.id;\r\n    this.imagesArray.push({\r\n      path,\r\n      title,\r\n      id\r\n    });\r\n    this.id += 1;\r\n    this.imagesSubject$.next([...this.imagesArray]);\r\n    return id;\r\n  }\r\n\r\n  updateImagePath(id, path) {\r\n    let idx = this.imagesArray.findIndex(x => x.id == id);\r\n    this.imagesArray[idx].path = path;\r\n  }\r\n\r\n  clear() {\r\n    this.imagesArray = [];\r\n    this.id = 0;\r\n    this.imagesSubject$ = new BehaviorSubject<Array<IImage>>(this.imagesArray);\r\n  }\r\n\r\n  setViewerVisability(value, id = 0) {\r\n    this.showViewerChange.next({ value, id });\r\n  }\r\n}\r\n","import { ModuleWithProviders, NgModule, Injectable } from \"@angular/core\";\r\nimport { ViewerService } from \"./viewer.service\";\r\n\r\nimport { MessageService } from \"../message-container/message.service\";\r\n\r\n@Injectable()\r\n@NgModule({})\r\nexport class ImageViewerModule {\r\n  static forRoot(): ModuleWithProviders<ImageViewerModule> {\r\n    return {\r\n      ngModule: ImageViewerModule,\r\n      providers: [ViewerService]\r\n    };\r\n  }\r\n}\r\n","export default `\r\n@import url(\"https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700,800\");\r\n@import url(\"https://fonts.googleapis.com/css?family=Roboto+Mono:400,700\");\r\n\r\nbody {\r\n  --font: \"Montserrat\", sans-serif;\r\n  --font-header: var(--font);\r\n  --font-size-small: 0.8rem;\r\n  --font-size-regular: 1rem;\r\n  --font-size-big: 1.25rem;\r\n  --font-size-huge: 1.5625rem;\r\n  --font-size-gigantic: 1.953rem;\r\n  --font-size-colosal: 2.441rem;\r\n\r\n  --primary: #4bb4e0;\r\n  --primary-dark: #2d91c6;\r\n  --primary-medium: #80c6dd;\r\n  --primary-light: #e5f6f9;\r\n  --primary-white: #f2fdff;\r\n\r\n  --success: #94d82d;\r\n  --success-dark: #7ab125;\r\n  --success-medium: #c4e98c;\r\n  --success-light: #ebf7d8;\r\n  --success-white: #FAFFF2;\r\n\r\n  --warning: #f8b64a;\r\n  --warning-dark: #e2a644;\r\n  --warning-medium: #fbddac;\r\n  --warning-light: #fdf1de;\r\n  --warning-white: #FFF9F2;\r\n\r\n  --alert: #e2574f;\r\n  --alert-dark: #c93232;\r\n  --alert-medium: #e29188;\r\n  --alert-light: #f9f3f2;\r\n  --alert-white: #FFF3F2;\r\n\r\n  --gray-0: #ffffff;\r\n  --gray-5: #f4f7f9;\r\n  --gray-10: #e8edf4;\r\n  --gray-20: #dee1ea;\r\n  --gray-30: #c3cad8;\r\n  --gray-40: #9095a5;\r\n  --gray-50: #74757F;\r\n  --gray-60: #5C5D66;\r\n  --gray-70: #44454C;\r\n  --gray-80: #2e2e33;\r\n  --gray-100: #000000;\r\n\r\n  --shadow-color: 0, 0, 20;\r\n\r\n  --pixel: 0.0625rem;\r\n\r\n  --tiny: 0.25rem;\r\n  --small: 0.5rem;\r\n  --less: 0.75rem;\r\n  --regular: 1rem;\r\n  --more: 1.5rem;\r\n  --big: 2rem;\r\n  --huge: 4rem;\r\n\r\n  --radius-tiny: 0.125rem;\r\n  --radius-regular: 0.25rem;\r\n  --radius-huge: 0.5rem;\r\n\r\n  --break-small: 25rem;\r\n  --break-medium: 40rem;\r\n  --break-large: 64rem;\r\n\r\n  --very-fast: 100ms;\r\n  --fast: 200ms;\r\n  --normal: 300ms;\r\n  --slow: 400ms;\r\n  --very-slow: 600ms;\r\n\r\n  --close: 0px 1px var(--tiny) calc(-1 * var(--tiny)) rgba(var(--shadow-color), 0.1), 0px 1px var(--tiny) 0 rgba(var(--shadow-color), 0.1);\r\n  --medium: 0px var(--tiny) var(--tiny) 0 rgba(var(--shadow-color), 0.04), 0px var(--tiny) var(--regular) 0 rgba(var(--shadow-color), 0.05);\r\n  --far: 0px var(--small) var(--regular) calc(-1 * var(--small)) rgba(var(--shadow-color), 0.03), 0px var(--small) var(--less) 0 rgba(var(--shadow-color), 0.04), 0px var(--less) var(--huge) var(--small) rgba(var(--shadow-color), 0.05);\r\n  --text-shadow: 0px 0 1px rgba(var(--shadow-color), 0.5), 0px 0 var(--tiny) rgba(var(--shadow-color), 0.5);\r\n}`;\r\n\r\n// --medium: 0px var(--tiny) var(--tiny) 0 rgba(var(--gray-80), 0.04), 0px var(--tiny var(--regular) 0 rgba(var(--gray-80), 0.05);\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-add-button\",\r\n  templateUrl: \"./add-button.component.html\",\r\n  styleUrls: [\"./add-button.component.scss\"]\r\n})\r\nexport class AddButtonComponent {\r\n  @Output() action = new EventEmitter();\r\n\r\n  triggerAction() {\r\n    this.action.emit();\r\n  }\r\n}\r\n","<div class=\"add-button\">\r\n  <button class=\"icon-button\" (click)=\"triggerAction()\">\r\n    <i class=\"fas fa-plus\"></i>\r\n  </button>\r\n  <h4><ng-content></ng-content></h4>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewChild,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  AfterViewInit\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-flex\",\r\n  templateUrl: \"./flex.component.html\",\r\n  styleUrls: [\"./flex.component.scss\"]\r\n})\r\nexport class FlexComponent implements OnChanges, AfterViewInit {\r\n  @Input() alignment: string;\r\n  @Input() justify: string;\r\n  @Input() direction: string;\r\n  @Input() mobileRow: boolean;\r\n  @Input() wrap: boolean;\r\n  @Input() spacing: string;\r\n\r\n  @ViewChild(\"container\") container;\r\n\r\n  didInit: boolean;\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => this.setMargin(), 20);\r\n    this.didInit = true;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (this.didInit && changes.spacing) this.setMargin();\r\n  }\r\n\r\n  setMargin() {\r\n    if (this.spacing) {\r\n      let children = [...this.container.nativeElement.children];\r\n      children.forEach(c => {\r\n        c.firstChild.style.marginRight = this.spacing;\r\n      });\r\n    }\r\n  }\r\n\r\n  get align() {\r\n    switch (this.alignment) {\r\n      case \"baseline\":\r\n        return \"baseline\";\r\n      case \"center\":\r\n        return \"center\";\r\n      case \"start\":\r\n        return \"flex-start\";\r\n      case \"end\":\r\n        return \"flex-end\";\r\n      case \"stretch\":\r\n        return \"stretch\";\r\n      default:\r\n        return \"\";\r\n    }\r\n  }\r\n\r\n  get justification() {\r\n    switch (this.justify) {\r\n      case \"around\":\r\n        return \"space-around\";\r\n      case \"between\":\r\n        return \"space-between\";\r\n      case \"center\":\r\n        return \"center\";\r\n      case \"start\":\r\n        return \"flex-start\";\r\n      case \"end\":\r\n        return \"flex-end\";\r\n      case \"stretch\":\r\n        return \"stretch\";\r\n      default:\r\n        return \"\";\r\n    }\r\n  }\r\n\r\n  get flexDirection() {\r\n    switch (this.direction) {\r\n      case \"column\":\r\n        return \"column\";\r\n      case \"row\":\r\n        return \"row\";\r\n      default:\r\n        return \"\";\r\n    }\r\n  }\r\n\r\n  get flexWrap() {\r\n    if (this.wrap) return \"wrap\";\r\n    return \"nowrap\";\r\n  }\r\n\r\n  get flexMargin() {\r\n    return \"calc(-1 * \" + this.spacing + \")\";\r\n  }\r\n}\r\n","<div\r\n  class=\"flex\"\r\n  [ngStyle]=\"{\r\n    'align-items': align,\r\n    'justify-content': justification,\r\n    'flex-direction': flexDirection,\r\n    'flex-wrap': flexWrap,\r\n    'margin-right': flexMargin\r\n  }\"\r\n  [ngClass]=\"{ 'mobile-row': mobileRow }\"\r\n  #container\r\n>\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-icon\",\r\n  templateUrl: \"./icon.component.html\",\r\n  styleUrls: [\"./icon.component.scss\"]\r\n})\r\nexport class IconComponent implements OnInit {\r\n  @Input() name: string;\r\n  @Input() type: string = \"regular\";\r\n  @Input() style: string;\r\n  @Input() class: string;\r\n  @Input() color: string;\r\n  @Input() flush: boolean;\r\n\r\n  ngOnInit() {\r\n    if (this.style) {\r\n      console.warn(\r\n        \"Using `style` is deprecated and will be removed in `br-icon` in the future, please use `type`. Brick will do this for now.\",\r\n        this.style,\r\n        this.name\r\n      );\r\n      this.style = this.type;\r\n    }\r\n  }\r\n\r\n  classes() {\r\n    let s;\r\n    switch (this.type) {\r\n      case \"solid\":\r\n        s = \"fas\";\r\n        break;\r\n      case \"regular\":\r\n        s = \"far\";\r\n        break;\r\n      case \"light\":\r\n        s = \"fal\";\r\n        break;\r\n      case \"duotone\":\r\n        s = \"fad\";\r\n        break;\r\n      case \"brands\":\r\n        s = \"fab\";\r\n        break;\r\n      default:\r\n        s = \"far\";\r\n        break;\r\n    }\r\n    return `${this.class} ${s} fa-${this.name}`;\r\n  }\r\n}\r\n","<i\r\n  [class]=\"classes()\"\r\n  [ngClass]=\"{ flush: flush }\"\r\n  [ngStyle]=\"{ color: color }\"\r\n></i>\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\"\r\n})\r\nexport class PlacementService {\r\n  constructor() {}\r\n\r\n  placeNextToElement(parent, child, position, fixed = false) {\r\n    return new Promise((resolve, reject) => {\r\n      var curPos = position;\r\n      var fit = false;\r\n      var attempts = 0;\r\n\r\n      while (!fit) {\r\n        var placement = this.place(parent, child, curPos);\r\n        fit = this.checkFit(child, placement, position, curPos);\r\n\r\n        if (!fit) {\r\n          switch (curPos) {\r\n            case \"top\":\r\n              curPos = \"bottom\";\r\n              if (position === \"bottom\") curPos = \"right\";\r\n              break;\r\n            case \"bottom\":\r\n              curPos = \"top\";\r\n              if (position === \"top\") curPos = \"right\";\r\n              break;\r\n            case \"left\":\r\n              curPos = \"right\";\r\n              if (position === \"right\") curPos = \"bottom\";\r\n              break;\r\n            case \"right\":\r\n              curPos = \"left\";\r\n              if (position === \"left\") curPos = \"bottom\";\r\n              break;\r\n          }\r\n\r\n          attempts++;\r\n\r\n          if (attempts > 4) {\r\n            fit = true;\r\n            curPos = position;\r\n            placement = this.place(parent, child, curPos);\r\n          }\r\n        }\r\n      }\r\n\r\n      if (fixed) {\r\n        placement.top -= window.scrollY;\r\n      }\r\n      resolve({\r\n        top: placement.top + \"px\",\r\n        left: placement.left + \"px\",\r\n        position: curPos\r\n      });\r\n    });\r\n  }\r\n\r\n  place(parent, child, position) {\r\n    let placement = { top: 0, left: 0 };\r\n\r\n    if ([\"top\", \"bottom\"].includes(position)) {\r\n      placement.left =\r\n        window.pageXOffset + parent.left - (child.width - parent.width) / 2;\r\n    } else if ([\"left\", \"right\"].includes(position)) {\r\n      placement.top =\r\n        window.pageYOffset + parent.top - (child.height - parent.height) / 2;\r\n    }\r\n\r\n    switch (position) {\r\n      case \"top\":\r\n        placement.top = window.pageYOffset + parent.top - child.height;\r\n        break;\r\n      case \"right\":\r\n        placement.left = window.pageXOffset + parent.left + parent.width;\r\n        break;\r\n      case \"bottom\":\r\n        placement.top = window.pageYOffset + parent.top + parent.height;\r\n        break;\r\n      case \"left\":\r\n        placement.left = window.pageXOffset + parent.left - child.width;\r\n        break;\r\n    }\r\n\r\n    return placement;\r\n  }\r\n\r\n  checkFit(child, placement, prefered, current) {\r\n    if (\r\n      placement.top < 0 ||\r\n      placement.top + child.height > window.scrollY + window.innerHeight ||\r\n      placement.left < 0 ||\r\n      placement.left + child.width > window.scrollX + window.innerWidth\r\n    ) {\r\n      return false;\r\n    }\r\n\r\n    return true;\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  ViewChild,\r\n  ElementRef,\r\n  Renderer2,\r\n  AfterViewInit,\r\n  ChangeDetectorRef\r\n} from \"@angular/core\";\r\nimport { PlacementService } from \"../placement.service\";\r\n\r\n@Component({\r\n  selector: \"br-popover\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./popover.component.html\",\r\n  styleUrls: [\"./popover.component.scss\"]\r\n})\r\nexport class PopoverComponent implements AfterViewInit {\r\n  @Input() position: string = \"bottom\";\r\n  @Input() dark: boolean;\r\n  @Input() clickToOpen: boolean;\r\n  @Input() padded: boolean = true;\r\n  @Input() arrow: boolean = true;\r\n  @Input() parentWidth: boolean;\r\n  @Input() parentFullWidth: boolean;\r\n  @Input() parentDisplayUnset: boolean;\r\n  @Input() open: boolean;\r\n  @Input() fixed: boolean;\r\n  @Input() orientationSwap: boolean = true;\r\n  @Input() mobile: boolean = true;\r\n\r\n  @ViewChild(\"parent\") parent: ElementRef;\r\n  @ViewChild(\"content\") content: ElementRef;\r\n\r\n  finalPosition: string;\r\n  popoverClasses: string;\r\n  invokeHide = null;\r\n  overParent = false;\r\n  overChild = false;\r\n\r\n  constructor(\r\n    public placementService: PlacementService,\r\n    public elRef: ElementRef,\r\n    public renderer: Renderer2,\r\n    private cd: ChangeDetectorRef\r\n  ) {}\r\n\r\n  ngAfterViewInit() {\r\n    this.setPopoverClasses();\r\n    setTimeout(() => {\r\n      if (this.open) {\r\n        this.openPopover(this.parent.nativeElement);\r\n      }\r\n    }, 1);\r\n    this.cd.detectChanges();\r\n  }\r\n\r\n  onClickParent(t) {\r\n    if (!this.open) {\r\n      this.openPopover(t.currentTarget);\r\n      document.body.addEventListener(\"mousedown\", this.clickAway);\r\n    }\r\n  }\r\n\r\n  clickAway = () => {\r\n    if (!this.overChild) {\r\n      this.invokeClose();\r\n    }\r\n  };\r\n\r\n  invokeClose() {\r\n    document.body.removeEventListener(\"mousedown\", this.clickAway);\r\n    this.content.nativeElement.classList.add(\"hide\");\r\n    this.invokeHide = setTimeout(() => this.closePopover(), 300);\r\n  }\r\n\r\n  onOverParent(t) {\r\n    this.overParent = true;\r\n    if (!this.clickToOpen && !this.open) this.openPopover(t.currentTarget);\r\n    clearTimeout(this.invokeHide);\r\n  }\r\n\r\n  onLeaveParent = () => {\r\n    this.overParent = false;\r\n    if (!this.clickToOpen && !this.open) {\r\n      this.content.nativeElement.classList.add(\"hide\");\r\n      this.onLeave();\r\n    }\r\n  };\r\n\r\n  onOverChild = () => {\r\n    this.overChild = true;\r\n    if (!this.clickToOpen && !this.open)\r\n      this.content.nativeElement.classList.remove(\"hide\");\r\n    clearTimeout(this.invokeHide);\r\n  };\r\n\r\n  onLeaveChild = () => {\r\n    this.overChild = false;\r\n    if (!this.clickToOpen && !this.open) {\r\n      this.content.nativeElement.classList.add(\"hide\");\r\n      this.onLeave();\r\n    }\r\n  };\r\n\r\n  onLeave() {\r\n    if (this.content) {\r\n      this.invokeHide = setTimeout(() => {\r\n        if (!this.overChild && !this.overParent) {\r\n          this.closePopover();\r\n        }\r\n      }, 300);\r\n    }\r\n  }\r\n\r\n  removeHide = () => {\r\n    this.content.nativeElement.classList.remove(\"hide\");\r\n  };\r\n\r\n  openPopover(t) {\r\n    this.content.nativeElement.classList.add(\"show\");\r\n    setTimeout(this.removeHide, 10);\r\n\r\n    if (this.parentWidth) {\r\n      let width = t.getBoundingClientRect().width;\r\n      this.content.nativeElement.style.width = width + \"px\";\r\n    }\r\n\r\n    if (![\"bottom\", \"top\", \"left\", \"right\"].includes(this.position)) {\r\n      this.position = \"bottom\";\r\n    }\r\n\r\n    this.placementService\r\n      .placeNextToElement(\r\n        t.getBoundingClientRect(),\r\n        {\r\n          width: this.content.nativeElement.offsetWidth,\r\n          height: this.content.nativeElement.offsetHeight\r\n        },\r\n        this.position,\r\n        this.fixed\r\n      )\r\n      .then((pos: any) => {\r\n        this.content.nativeElement.style.top = pos.top;\r\n        this.content.nativeElement.style.left = pos.left;\r\n        this.finalPosition = pos.position;\r\n\r\n        clearTimeout(this.invokeHide);\r\n        // setTimeout(() => this.setPopoverClasses(), 1000);\r\n        this.setPopoverClasses();\r\n        this.renderer.appendChild(document.body, this.content.nativeElement);\r\n      });\r\n  }\r\n\r\n  closePopover() {\r\n    this.content.nativeElement.classList.remove(\"show\");\r\n    this.renderer.appendChild(\r\n      this.parent.nativeElement,\r\n      this.content.nativeElement\r\n    );\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.closePopover();\r\n  }\r\n\r\n  setPopoverClasses() {\r\n    var classes = this.finalPosition;\r\n    if (this.dark) classes += \" dark\";\r\n    if (this.parentWidth) classes += \" parent-width\";\r\n    if (this.fixed) classes += \" fixed\";\r\n    if (!this.mobile) classes += \" hide-mobile\";\r\n    this.popoverClasses = classes;\r\n  }\r\n\r\n  get contentClasses() {\r\n    var classes = \"\";\r\n    if (this.padded == true) classes += \"padding \";\r\n    return classes;\r\n  }\r\n}\r\n","<div class=\"popover-wrapper\" #parent [ngClass]=\"{ parent: parentWidth }\">\r\n  <div\r\n    class=\"popover-parent\"\r\n    [ngClass]=\"{ 'full-width': parentFullWidth, unset: parentDisplayUnset }\"\r\n    (click)=\"onClickParent($event)\"\r\n    (mouseover)=\"onOverParent($event)\"\r\n    (mouseleave)=\"onLeaveParent()\"\r\n  >\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n\r\n<div\r\n  #content\r\n  class=\"popover arrow hide\"\r\n  [ngClass]=\"popoverClasses\"\r\n  (mouseover)=\"onOverChild()\"\r\n  (mouseleave)=\"onLeaveChild()\"\r\n>\r\n  <div class=\"popover-content\" [ngClass]=\"contentClasses\">\r\n    <ng-content select=\"[content]\"> </ng-content>\r\n  </div>\r\n</div>\r\n","import { Directive, ElementRef, Input, AfterViewInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[brToggleEyePassword]\"\r\n})\r\nexport class PasswordEyeDirective implements AfterViewInit {\r\n  @Input()\r\n  brToggleEyePassword: boolean;\r\n\r\n  private shouldShow = false;\r\n  constructor(private el: ElementRef) {}\r\n\r\n  toggle(i: Element) {\r\n    this.shouldShow = !this.shouldShow;\r\n    const parent = this.el.nativeElement as HTMLElement;\r\n    if (this.shouldShow) {\r\n      i.setAttribute(\"class\", \"password-icon far fa-eye-slash\");\r\n      const input = parent.getElementsByTagName(\"input\")[0];\r\n      input.setAttribute(\"type\", \"text\");\r\n    } else {\r\n      i.setAttribute(\"class\", \"password-icon far fa-eye\");\r\n      const input = parent.getElementsByTagName(\"input\")[0];\r\n      input.setAttribute(\"type\", \"password\");\r\n    }\r\n  }\r\n  setup() {\r\n    const parent = this.el.nativeElement as HTMLElement;\r\n    const icons = parent.getElementsByClassName(\"password-icon\");\r\n\r\n    if (icons.length > 0) {\r\n      const i = parent.getElementsByClassName(\"password-icon\")[0];\r\n      i.addEventListener(\"click\", () => {\r\n        this.toggle(i);\r\n      });\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.setup();\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnInit,\r\n  OnChanges,\r\n} from \"@angular/core\";\r\nimport { ControlContainer } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"br-input\",\r\n  templateUrl: \"./input.component.html\",\r\n  styleUrls: [\"./input.component.scss\"],\r\n})\r\nexport class InputComponent implements OnInit, OnChanges {\r\n  @Input() name: string;\r\n  @Input() value: string;\r\n  @Input() type: string;\r\n  @Input() label: string;\r\n  @Input() messages: any;\r\n  @Input() maxLength: number = 1024;\r\n  @Input() optionalDescription: string;\r\n  @Input() isAutoCompleteOff: boolean;\r\n  @Input() hideCheckmark: boolean;\r\n  @Input() unit: string;\r\n  @Input() allowComma: boolean;\r\n  @Input() infoText: string;\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  inputValue: string = \"\";\r\n\r\n  constructor(public controlContainer: ControlContainer) {}\r\n\r\n  ngOnInit() {\r\n    if (this.value) this.setValue(this.value);\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.value) this.setValue(this.value);\r\n  }\r\n\r\n  setValue(val: string) {\r\n    if (val || val == \"0\") {\r\n      if (val !== \" \") {\r\n        this.inputValue = val;\r\n        if (this.unit) {\r\n          let number = this.inputValue.toString().replace(/[^0-9,]/g, \"\");\r\n          if (!this.allowComma) number = number.split(\",\")[0];\r\n\r\n          if (number === \"\") number = \"0\";\r\n          if (this.unit === \"meters\") {\r\n            this.inputValue = number + \"m\";\r\n          } else if (this.unit === \"meters squared\") {\r\n            this.inputValue = number + \"m²\";\r\n          } else if (this.unit === \"euro\") {\r\n            if (this.allowComma && number.indexOf(\",\") != -1) {\r\n              number += \"00\";\r\n              number = number.substring(0, number.indexOf(\",\") + 3);\r\n            }\r\n            this.inputValue =\r\n              \"€\" + number.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n          }\r\n        }\r\n      } else {\r\n        this.value = \"\";\r\n        this.inputValue = \"\";\r\n      }\r\n\r\n      if (this.hasControl) this.controlInput.setValue(this.inputValue);\r\n    }\r\n  }\r\n\r\n  get hasControl() {\r\n    if (!this.control) return false;\r\n    return this.controlContainer.control.get(this.name) !== null;\r\n  }\r\n\r\n  get control() {\r\n    return this.controlContainer.control;\r\n  }\r\n\r\n  get controlInput() {\r\n    return this.control.get(this.name);\r\n  }\r\n\r\n  get checkIfIsAutoCompleteOff() {\r\n    return this.isAutoCompleteOff ? \"off\" : \"on\";\r\n  }\r\n\r\n  get checkType() {\r\n    return this.type ? this.type : \"text\";\r\n  }\r\n\r\n  get isPassword() {\r\n    return this.type === \"password\";\r\n  }\r\n\r\n  get isOptional() {\r\n    return this.optionalDescription !== undefined;\r\n  }\r\n\r\n  get isFilled() {\r\n    if (this.hasControl)\r\n      return this.controlContainer.control.get(this.name).value !== \"\";\r\n    else return this.inputValue !== \"\";\r\n  }\r\n\r\n  get validate() {\r\n    let myControl = this.controlContainer.control.get(this.name);\r\n    let isSuccess = (myControl.dirty || myControl.touched) && myControl.valid;\r\n    let isError = (myControl.dirty || myControl.touched) && myControl.invalid;\r\n\r\n    return {\r\n      password: this.isPassword,\r\n      success: isSuccess,\r\n      error: isError,\r\n    };\r\n  }\r\n\r\n  get inputClasses() {\r\n    return { ...this.validate, info: this.infoText };\r\n  }\r\n\r\n  get controlErrors() {\r\n    let errors = this.controlContainer.control.get(this.name).errors;\r\n    if (errors != null) {\r\n      return Object.keys(errors).map((keyError) => {\r\n        return keyError;\r\n      });\r\n    }\r\n  }\r\n\r\n  OnBlur(e) {\r\n    this.setValue(e.target.value);\r\n\r\n    if (this.unit) {\r\n      this.onBlur.emit(this.inputValue.replace(/[^0-9]/g, \"\"));\r\n    } else {\r\n      this.onBlur.emit(this.inputValue);\r\n    }\r\n  }\r\n}\r\n","<ng-container *ngIf=\"hasControl\" [formGroup]=\"control\">\r\n  <div\r\n    class=\"input\"\r\n    [brToggleEyePassword]=\"isPassword\"\r\n    [ngClass]=\"inputClasses\"\r\n  >\r\n    <input\r\n      [name]=\"name\"\r\n      [type]=\"type\"\r\n      [formControlName]=\"name\"\r\n      [ngClass]=\"{ filled: isFilled }\"\r\n      [autocomplete]=\"checkIfIsAutoCompleteOff\"\r\n      [maxlength]=\"maxLength\"\r\n      onwheel=\"this.blur()\"\r\n      (blur)=\"OnBlur($event)\"\r\n    />\r\n    <label\r\n      >{{ label }}\r\n      <ng-container *ngIf=\"isOptional\">\r\n        <em>- {{ optionalDescription }}</em>\r\n      </ng-container>\r\n    </label>\r\n\r\n    <div class=\"bar\"></div>\r\n\r\n    <br-icon\r\n      *ngIf=\"!isPassword && !hideCheckmark\"\r\n      style=\"regular\"\r\n      name=\"check\"\r\n      class=\"success\"\r\n    ></br-icon>\r\n\r\n    <br-icon\r\n      *ngIf=\"!isPassword\"\r\n      style=\"regular\"\r\n      name=\"times\"\r\n      class=\"error\"\r\n    ></br-icon>\r\n\r\n    <i *ngIf=\"isPassword\" class=\"password-icon far fa-eye\"></i>\r\n\r\n    <br-popover [parentWidth]=\"true\" *ngIf=\"infoText\">\r\n      <br-icon\r\n        style=\"regular\"\r\n        name=\"info-circle\"\r\n        color=\"var(--primary-medium)\"\r\n      ></br-icon>\r\n\r\n      <ng-container content>\r\n        <h4>{{ label }}</h4>\r\n        <p>{{ infoText }}</p>\r\n      </ng-container>\r\n    </br-popover>\r\n\r\n    <ng-container\r\n      *ngIf=\"\r\n        messages &&\r\n        (controlInput.touched || controlInput.dirty) &&\r\n        controlInput.invalid\r\n      \"\r\n    >\r\n      <ng-container *ngFor=\"let message of controlErrors\">\r\n        <div class=\"input__message\" *ngIf=\"messages[message]\">\r\n          {{ messages[message] }}\r\n        </div>\r\n      </ng-container>\r\n    </ng-container>\r\n  </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!hasControl\" [formGroup]=\"\">\r\n  <div\r\n    class=\"input\"\r\n    [brToggleEyePassword]=\"isPassword\"\r\n    [ngClass]=\"{ password: isPassword, info: infoText }\"\r\n  >\r\n    <input\r\n      [name]=\"name\"\r\n      [type]=\"type\"\r\n      [ngClass]=\"{ filled: isFilled }\"\r\n      [(ngModel)]=\"inputValue\"\r\n      [ngModelOptions]=\"{ standalone: true }\"\r\n      [autocomplete]=\"checkIfIsAutoCompleteOff\"\r\n      [maxlength]=\"maxLength\"\r\n      onwheel=\"this.blur()\"\r\n      (blur)=\"OnBlur($event)\"\r\n    />\r\n    <label\r\n      >{{ label }}\r\n      <ng-container *ngIf=\"isOptional\">\r\n        - <em>{{ optionalDescription }}</em>\r\n      </ng-container>\r\n    </label>\r\n\r\n    <div class=\"bar\"></div>\r\n\r\n    <i *ngIf=\"isPassword\" class=\"password-icon far fa-eye\"></i>\r\n\r\n    <br-popover [parentWidth]=\"true\" *ngIf=\"infoText\">\r\n      <br-icon\r\n        style=\"regular\"\r\n        name=\"info-circle\"\r\n        color=\"var(--primary-medium)\"\r\n      ></br-icon>\r\n\r\n      <ng-container content>\r\n        <h4>{{ label }}</h4>\r\n        <p>{{ infoText }}</p>\r\n      </ng-container>\r\n    </br-popover>\r\n  </div>\r\n</ng-container>\r\n","import { trigger, style, animate, transition } from \"@angular/animations\";\r\n\r\nexport const smoothHeight = trigger(\"grow\", [\r\n  transition(\"void <=> *\", []),\r\n  transition(\r\n    \"* <=> *\",\r\n    [\r\n      style({ height: \"{{startHeight}}px\", opacity: 0, overflow: \"hidden\" }),\r\n      animate(\"300ms ease-in-out\")\r\n    ],\r\n    {\r\n      params: { startHeight: 0 }\r\n    }\r\n  )\r\n]);\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { MessageService } from \"../message-container/message.service\";\r\nimport { smoothHeight } from \"../animations\";\r\n\r\n@Component({\r\n  selector: \"br-message\",\r\n  templateUrl: \"./message.component.html\",\r\n  styleUrls: [\"./message.component.scss\"],\r\n  animations: [smoothHeight]\r\n})\r\nexport class MessageComponent {\r\n  @Input() title: string;\r\n  @Input() type: string;\r\n  @Input() id: number;\r\n  @Input() out: boolean;\r\n  @Input() floating: boolean;\r\n\r\n  constructor(public messageService: MessageService) {}\r\n\r\n  remove() {\r\n    this.messageService.removeMessage(this.id);\r\n  }\r\n}\r\n","<div\r\n  class=\"message\"\r\n  [ngClass]=\"{\r\n    success: type === 'success',\r\n    warning: type === 'warning',\r\n    alert: type === 'alert',\r\n    float: floating,\r\n    out: out\r\n  }\"\r\n>\r\n  <div *ngIf=\"floating\" class=\"close\" (click)=\"remove()\">\r\n    <br-icon name=\"times\" style=\"regular\"></br-icon>\r\n  </div>\r\n  <h4 *ngIf=\"title\">{{ title }}</h4>\r\n  <p><ng-content></ng-content></p>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\n\r\nexport class Address {\r\n  street: string;\r\n  number: number;\r\n  addition: string;\r\n  postalCode: string;\r\n  place: string;\r\n  error: string;\r\n\r\n  constructor() {\r\n    this.street = \"\";\r\n    this.number = null;\r\n    this.addition = \"\";\r\n    this.postalCode = \"\";\r\n    this.place = \"\";\r\n    this.error = \"\";\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: \"br-address-input\",\r\n  templateUrl: \"./address-input.component.html\",\r\n  styleUrls: [\"./address-input.component.scss\"]\r\n})\r\nexport class AddressInputComponent implements OnInit {\r\n  @Input() messages: object = {\r\n    invalid: \"The address is invalid\",\r\n    invalidTitle: \"Invalid\",\r\n    wrongPostal: \"The postal code is invalid\",\r\n    wrongNumber: \"The house number is invalid\"\r\n  };\r\n  @Input() value: any;\r\n  @Input() inputAddress: Address;\r\n  @Input() labels = {\r\n    postalcode: \"Postcode\",\r\n    number: \"Huisnummer\",\r\n    addition: \"Toevoeging\"\r\n  };\r\n  addressGroup: FormGroup;\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  get postalCode() {\r\n    return this.addressGroup.get(\"postalCode\");\r\n  }\r\n\r\n  get houseNumber() {\r\n    return this.addressGroup.get(\"houseNumber\");\r\n  }\r\n\r\n  get addition() {\r\n    return this.addressGroup.get(\"houseNumberAddition\").value;\r\n  }\r\n\r\n  address: Address = new Address();\r\n\r\n  hasAddress: boolean;\r\n  errors: object = {\r\n    invalid: false,\r\n    wrongPostal: false,\r\n    wrongNumber: false\r\n  };\r\n\r\n  constructor(private http: HttpClient) {\r\n    this.addressGroup = new FormGroup(\r\n      {\r\n        postalCode: new FormControl(\"\", [\r\n          Validators.required,\r\n          Validators.pattern(/^\\d{4}\\s?\\w{2}$/)\r\n        ]),\r\n        houseNumber: new FormControl(\"\", [\r\n          Validators.required,\r\n          Validators.pattern(/^[1-9]\\d*$/)\r\n        ]),\r\n        houseNumberAddition: new FormControl(\"\")\r\n      },\r\n      { updateOn: \"blur\" }\r\n    );\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.value) {\r\n      this.setFromValue(this.value);\r\n    } else if (this.inputAddress) {\r\n      this.hasAddress = true;\r\n      this.setFromValue(this.inputAddress, false);\r\n      this.address = this.inputAddress;\r\n    }\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.value) {\r\n      this.setFromValue(this.value);\r\n    }\r\n  }\r\n\r\n  setFromValue(val, check = true) {\r\n    if (val.postalCode && val.number) {\r\n      this.address.number = val.number;\r\n      this.address.addition = val.addition;\r\n      this.address.postalCode = val.postalCode.replace(\" \", \"\");\r\n\r\n      this.addressGroup.get(\"houseNumber\").setValue(this.address.number);\r\n      this.addressGroup\r\n        .get(\"houseNumberAddition\")\r\n        .setValue(this.address.addition);\r\n      this.addressGroup.get(\"postalCode\").setValue(this.address.postalCode);\r\n\r\n      if (check) this.CheckPostalCode();\r\n    } else {\r\n      console.warn(\r\n        \"br-address-input: Tried to set from value, but value is not valid\"\r\n      );\r\n    }\r\n  }\r\n\r\n  CheckPostalCode() {\r\n    this.hasAddress = false;\r\n    this.errors = {\r\n      invalid: false,\r\n      wrongPostal: this.postalCode.invalid,\r\n      wrongNumber: this.houseNumber.touched && this.houseNumber.invalid\r\n    };\r\n\r\n    if (\r\n      this.postalCode.valid &&\r\n      this.houseNumber.valid &&\r\n      this.postalCode.value !== \"\" &&\r\n      this.houseNumber.value !== \"\" &&\r\n      this.postalCode.value !== null &&\r\n      this.houseNumber.value !== null\r\n    ) {\r\n      var that = this;\r\n      const zipCodeValue = this.postalCode.value.replace(/ /g, \"\").trim();\r\n      const houseNumberValue = this.houseNumber.value\r\n        .toString()\r\n        .replace(/[a-zA-z]/g, \"\")\r\n        .trim();\r\n\r\n      const httpOptions = {\r\n        headers: new HttpHeaders({\r\n          \"X-Api-Key\": \"HuAXbqe81381RolVaX1XUay4TYcy4tf55qBgvL8w\"\r\n        })\r\n      };\r\n      let response = this.http\r\n        .get(\r\n          `https://api.postcodeapi.nu/v2/addresses/?postcode=${zipCodeValue}&number=${houseNumberValue}`,\r\n          // `https://api.postcodeapi.nu/v3/lookup/${zipCodeValue}/${houseNumberValue}`,\r\n          httpOptions\r\n        )\r\n        .subscribe(data => {\r\n          if (data[\"_embedded\"][\"addresses\"].length > 0) {\r\n            const address = data[\"_embedded\"][\"addresses\"][0];\r\n            this.hasAddress = true;\r\n            this.address[\"street\"] = address.street;\r\n            this.address[\"number\"] = address.number;\r\n            this.address[\"addition\"] = this.addition;\r\n            this.address[\"postalCode\"] = address.postcode;\r\n            this.address[\"place\"] = address.city.label;\r\n            this.errors[\"invalid\"] = \"\";\r\n            this.OnBlur();\r\n          } else {\r\n            this.errors[\"invalid\"] = true;\r\n            this.address[\"error\"] = \"Invalid\";\r\n          }\r\n        });\r\n    }\r\n\r\n    // setTimeout(() => this.OnBlur(), 0);\r\n  }\r\n\r\n  OnBlur() {\r\n    this.onBlur.emit(this.address);\r\n  }\r\n}\r\n","<form [formGroup]=\"addressGroup\">\r\n  <br-flex justify=\"stretch\">\r\n    <br-input\r\n      [label]=\"labels.postalcode\"\r\n      [value]=\"address.postalCode\"\r\n      name=\"postalCode\"\r\n      (onBlur)=\"CheckPostalCode()\"\r\n      class=\"input\"\r\n    ></br-input>\r\n    <br-input\r\n      [label]=\"labels.number\"\r\n      [value]=\"address.number\"\r\n      type=\"number\"\r\n      name=\"houseNumber\"\r\n      (onBlur)=\"CheckPostalCode()\"\r\n      class=\"input\"\r\n    ></br-input>\r\n    <br-input\r\n      [label]=\"labels.addition\"\r\n      [value]=\"address.addition\"\r\n      name=\"houseNumberAddition\"\r\n      (onBlur)=\"CheckPostalCode()\"\r\n      class=\"input\"\r\n    ></br-input>\r\n  </br-flex>\r\n</form>\r\n\r\n<div class=\"error\" *ngIf=\"errors['wrongPostal']\">\r\n  {{ messages[\"wrongPostal\"] }}\r\n</div>\r\n<div class=\"error\" *ngIf=\"errors['wrongNumber']\">\r\n  {{ messages[\"wrongNumber\"] }}\r\n</div>\r\n\r\n<br-message\r\n  type=\"alert\"\r\n  [title]=\"messages['invalidTitle']\"\r\n  *ngIf=\"errors['invalid']\"\r\n  >{{ messages[\"invalid\"] }}</br-message\r\n>\r\n\r\n<br-message title=\"Adres\" *ngIf=\"hasAddress\">\r\n  {{ address[\"street\"] }} {{ address[\"number\"] }}{{ address[\"addition\"] }}\r\n  <br />\r\n  {{ address[\"postalCode\"] }} {{ address[\"place\"] }}\r\n</br-message>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-bar-graph\",\r\n  templateUrl: \"./bar-graph.component.html\",\r\n  styleUrls: [\"./bar-graph.component.scss\"]\r\n})\r\nexport class BarGraphComponent implements OnInit {\r\n  maxValue: number;\r\n  @Input() items: Array<any>;\r\n  @Input() text: any = {\r\n    label: \"Label\",\r\n    value: \"Value\",\r\n    partial: \"Partial\",\r\n    notes: \"Notes\"\r\n  };\r\n  @Input() title: string;\r\n  @Input() animationTime = 1;\r\n  @Input() showXLabel: boolean;\r\n  @Input() showYLabel: boolean;\r\n  currentItem: any;\r\n  barWidth: number;\r\n  hasPartials: boolean;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.setMax();\r\n  }\r\n\r\n  setMax(): void {\r\n    this.hasPartials = false;\r\n    this.maxValue = Math.max.apply(\r\n      Math,\r\n      this.items.map(e => {\r\n        if (e.partial) this.hasPartials = true;\r\n        return e.value;\r\n      })\r\n    );\r\n    this.barWidth = 100 / this.items.length;\r\n  }\r\n\r\n  setCurrent(i): void {\r\n    if (i < this.items.length) {\r\n      this.currentItem = { ...this.items[i], index: i };\r\n    }\r\n  }\r\n}\r\n","<div class=\"bar-graph\" [ngClass]=\"{ showX: showXLabel, showY: showYLabel }\">\r\n  <h3 *ngIf=\"title\">{{ title }}</h3>\r\n  <div class=\"graph-container\">\r\n    <div\r\n      (mousemove)=\"setCurrent(i)\"\r\n      (touchstart)=\"setCurrent(i)\"\r\n      *ngFor=\"let item of items; index as i\"\r\n      class=\"bar-container\"\r\n      [ngClass]=\"{ 'has-partials': hasPartials }\"\r\n    >\r\n      <div\r\n        class=\"bar\"\r\n        [ngStyle]=\"{\r\n          height: (item.value / maxValue) * 100 + '%',\r\n          'animation-delay': i * (animationTime / items.length) + 's'\r\n        }\"\r\n      ></div>\r\n      <div\r\n        *ngIf=\"item.partial\"\r\n        class=\"bar part\"\r\n        [ngStyle]=\"{\r\n          height: (item.partial / maxValue) * 100 + '%',\r\n          'animation-delay': i * (animationTime / items.length) + 's'\r\n        }\"\r\n      ></div>\r\n      <div class=\"label\">{{ item.label }}</div>\r\n    </div>\r\n\r\n    <div\r\n      *ngIf=\"currentItem\"\r\n      class=\"info-panel\"\r\n      [ngStyle]=\"{\r\n        left: (currentItem.index + 1) * barWidth - barWidth / 2 + '%',\r\n        bottom: (currentItem.value / maxValue) * 100 + '%'\r\n      }\"\r\n    >\r\n      <div>\r\n        <strong>{{ text.label }}:</strong> {{ currentItem.label }}\r\n      </div>\r\n      <div>\r\n        <strong>{{ text.value }}:</strong> {{ currentItem.value }}\r\n      </div>\r\n      <div *ngIf=\"currentItem.partial\">\r\n        <strong>{{ text.partial }}:</strong> {{ currentItem.partial }}\r\n      </div>\r\n      <div *ngIf=\"currentItem.notes\">\r\n        <strong>{{ text.notes }}:</strong> {{ currentItem.notes }}\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <div class=\"y-axis\" *ngIf=\"showYLabel\">{{ text.value }}</div>\r\n  <div class=\"x-axis\" *ngIf=\"showXLabel\">{{ text.label }}</div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'br-bottom-bar',\r\n  templateUrl: './bottom-bar.component.html',\r\n  styleUrls: ['./bottom-bar.component.scss']\r\n})\r\nexport class BottomBarComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"bottom-bar\">\r\n  <div class=\"container\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-loader\",\r\n  templateUrl: \"./loader.component.html\",\r\n  styleUrls: [\"./loader.component.scss\"]\r\n})\r\nexport class LoaderComponent {\r\n  @Input() size: String;\r\n  @Input() button: Boolean;\r\n\r\n  setClasses() {\r\n    let classes = {\r\n      small: this.size === \"small\",\r\n      \"button-spinner\": this.button\r\n    };\r\n    return classes;\r\n  }\r\n}\r\n","<svg\r\n  class=\"spinner\"\r\n  [ngClass]=\"setClasses()\"\r\n  xmlns=\"http://www.w3.org/2000/svg\"\r\n  viewBox=\"-10 -10 152 152\"\r\n>\r\n  <path d=\"M 64 0 L 128 52 V 128 H 0 V 52 L 64 0\" />\r\n</svg>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewEncapsulation,\r\n  OnInit\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-button\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./button.component.html\",\r\n  styleUrls: [\"./button.component.scss\"]\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n  @Input() type: string;\r\n  @Input() state: string;\r\n  @Input() size: string;\r\n  @Input() disabled: boolean;\r\n  @Input() loading: boolean;\r\n  @Input() icon: string;\r\n  @Input() iconStyle: string = \"solid\";\r\n  @Input() submit: boolean;\r\n  @Input() rounded: string;\r\n  @Input() href: string;\r\n  @Input() target: string = \"_self\";\r\n  @Input() flush: boolean;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  ngOnInit() {\r\n    if (this.icon) {\r\n      let splits = this.icon.split(\" \");\r\n\r\n      if (splits.length > 1) {\r\n        console.warn(\r\n          \"Passing full font awesome classes to `icon` in `br-button` is decrepitated and will be removed in the future, please use `icon` and `iconStyle`. Brick will try to parse the icon for now.\",\r\n          splits\r\n        );\r\n\r\n        this.icon = splits[1].replace(\"fa-\", \"\");\r\n\r\n        switch (splits[0]) {\r\n          case \"fas\":\r\n            this.iconStyle = \"solid\";\r\n            break;\r\n          case \"far\":\r\n            this.iconStyle = \"regular\";\r\n            break;\r\n          case \"fal\":\r\n            this.iconStyle = \"light\";\r\n            break;\r\n          case \"fad\":\r\n            this.iconStyle = \"duotone\";\r\n            break;\r\n          case \"fab\":\r\n            this.iconStyle = \"brands\";\r\n            break;\r\n          default:\r\n            this.iconStyle = \"solid\";\r\n            break;\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  checkIcon() {}\r\n\r\n  setClasses() {\r\n    let classes = {\r\n      primary: this.type === \"primary\" && !this.loading,\r\n      tertiary: this.type === \"tertiary\" && !this.loading,\r\n      alert: this.type === \"alert\" && !this.loading,\r\n      google: this.type === \"google\" && !this.loading,\r\n      facebook: this.type === \"facebook\" && !this.loading,\r\n      hover: this.state === \"hover\",\r\n      active: this.state === \"active\",\r\n      small: this.size === \"small\",\r\n      tiny: this.size === \"tiny\",\r\n      full: this.size === \"full\",\r\n      big: this.size === \"big\",\r\n      left: this.rounded === \"left\",\r\n      right: this.rounded === \"right\",\r\n      both: this.rounded === \"both\",\r\n      flush: this.flush,\r\n      loading: this.loading,\r\n      disabled: this.disabled\r\n    };\r\n    return classes;\r\n  }\r\n\r\n  clicked(): void {\r\n    this.action.emit();\r\n  }\r\n\r\n  get getType() {\r\n    return this.submit ? \"type\" : \"button\";\r\n  }\r\n}\r\n","<div class=\"button\" [ngClass]=\"setClasses()\" (click)=\"clicked()\">\r\n  <button\r\n    [disabled]=\"disabled\"\r\n    [style]=\"getType\"\r\n    [type]=\"submit ? 'submit' : 'button'\"\r\n  >\r\n    <ng-container *ngTemplateOutlet=\"contents\"></ng-container>\r\n  </button>\r\n\r\n  <a\r\n    *ngIf=\"href != undefined\"\r\n    class=\"no-line\"\r\n    [href]=\"href\"\r\n    [target]=\"target\"\r\n  ></a>\r\n\r\n  <ng-template #contents>\r\n    <div class=\"contents\">\r\n      <br-icon [style]=\"iconStyle\" [name]=\"icon\" class=\"icon\"></br-icon>\r\n      <br-loader\r\n        class=\"loader\"\r\n        *ngIf=\"loading\"\r\n        size=\"small\"\r\n        button=\"true\"\r\n      ></br-loader>\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </ng-template>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-card\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./card.component.html\",\r\n  styleUrls: [\"./card.component.scss\"]\r\n})\r\nexport class CardComponent {\r\n  @Input() image: string;\r\n  @Input() title: string;\r\n  @Input() meta: string;\r\n  @Input() clickable: boolean;\r\n  @Input() grow: boolean;\r\n  @Input() size: string;\r\n  @Input() containImage: boolean;\r\n  @Input() showExtra: boolean;\r\n  @Input() flush: boolean;\r\n  @Input() icon: string;\r\n}\r\n","<div\r\n  class=\"card\"\r\n  [ngClass]=\"{\r\n    clickable: clickable,\r\n    grow: grow,\r\n    wide: size === 'wide',\r\n    'ultra-wide': size == 'ultra wide',\r\n    'fixed-wide': size == 'fixed wide',\r\n    full: size === 'full',\r\n    flush: flush\r\n  }\"\r\n>\r\n  <div class=\"wrapper\">\r\n    <div\r\n      class=\"image\"\r\n      *ngIf=\"image\"\r\n      [ngClass]=\"{ contain: containImage }\"\r\n      [ngStyle]=\"{ backgroundImage: 'url(' + image + ')' }\"\r\n    ></div>\r\n\r\n    <div class=\"content\">\r\n      <div *ngIf=\"icon\" class=\"icon\"><br-icon [name]=\"icon\"></br-icon></div>\r\n      <h4 class=\"header\" *ngIf=\"title\">\r\n        {{ title }}\r\n      </h4>\r\n      <div class=\"meta\" *ngIf=\"meta\">{{ meta }}</div>\r\n      <div class=\"description\">\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n\r\n    <div *ngIf=\"showExtra\" class=\"card-extra\">\r\n      <ng-content class=\"card-extra\" select=\"[extra]\"></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  AfterViewInit,\r\n  Renderer2,\r\n  OnInit\r\n} from \"@angular/core\";\r\nimport { ViewerService } from \"../image-viewer/viewer.service\";\r\n\r\n@Component({\r\n  selector: \"br-image\",\r\n  templateUrl: \"./image.component.html\",\r\n  styleUrls: [\"./image.component.scss\"]\r\n})\r\nexport class ImageComponent implements OnInit, AfterViewInit {\r\n  @Input() full: string;\r\n  @Input() thumb: string;\r\n  @Input() path: string;\r\n  @Input() containImage: boolean;\r\n  @Input() size: string;\r\n  @Input() alt: string;\r\n\r\n  loaded: boolean;\r\n  showFull: boolean;\r\n  showThumb: boolean = true;\r\n  removeThumb: boolean;\r\n  lazyLoading: boolean;\r\n  viewerId: number;\r\n\r\n  fullImage;\r\n\r\n  constructor(\r\n    private renderer: Renderer2,\r\n    public viewerService: ViewerService\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    if (this.thumb) {\r\n      this.path = this.thumb;\r\n      this.lazyLoading = true;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.viewerId = this.viewerService.addImage(this.path, this.alt);\r\n\r\n    if (this.full) {\r\n      this.fullImage = new Image();\r\n      this.fullImage.src = this.full;\r\n      this.fullImage.onload = () => {\r\n        this.loaded = true;\r\n        setTimeout(() => {\r\n          this.showFull = true;\r\n          this.showThumb = false;\r\n          this.viewerService.updateImagePath(this.viewerId, this.full);\r\n        }, 200);\r\n        setTimeout(() => (this.removeThumb = true), 2000);\r\n      };\r\n    }\r\n  }\r\n\r\n  showViewer() {\r\n    this.viewerService.setViewerVisability(true, this.viewerId);\r\n  }\r\n}\r\n","<div\r\n  class=\"image\"\r\n  [ngClass]=\"{\r\n    'image--contain': containImage,\r\n    'image--half-size': size === 'half',\r\n    'image--unconstrained': size === 'unconstrained'\r\n  }\"\r\n  (click)=\"showViewer()\"\r\n>\r\n  <img\r\n    *ngIf=\"showThumb\"\r\n    class=\"image__thumb\"\r\n    [src]=\"path\"\r\n    [ngClass]=\"{\r\n      'image__thumb--blur': full,\r\n      'image__thumb--hide': !showThumb,\r\n      'image__not-lazy': !lazyLoading\r\n    }\"\r\n    [alt]=\"alt\"\r\n  />\r\n  <img\r\n    *ngIf=\"loaded\"\r\n    class=\"image__full\"\r\n    [src]=\"fullImage.src\"\r\n    [ngClass]=\"{ 'image__full--show': showFull }\"\r\n    [alt]=\"alt\"\r\n  />\r\n</div>\r\n","import { Component, OnInit, Input, TemplateRef } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-carousel\",\r\n  templateUrl: \"./carousel.component.html\",\r\n  styleUrls: [\"./carousel.component.scss\"]\r\n})\r\nexport class CarouselComponent implements OnInit {\r\n  @Input() slideTemplate: TemplateRef<any>;\r\n  @Input() slides: Array<any>;\r\n  @Input() fullWidth: boolean;\r\n  @Input() maxWidth: boolean;\r\n  @Input() duration: number = 5;\r\n  @Input() images: boolean;\r\n\r\n  activeSlide = 0;\r\n  timeout: any;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.goTo(0);\r\n  }\r\n\r\n  next(): void {\r\n    if (this.activeSlide < this.slides.length - 1) {\r\n      this.goTo(this.activeSlide + 1);\r\n    } else {\r\n      this.goTo(0);\r\n    }\r\n  }\r\n\r\n  previous(): void {\r\n    if (this.activeSlide > 0) {\r\n      this.goTo(this.activeSlide - 1);\r\n    } else {\r\n      this.goTo(this.slides.length - 1);\r\n    }\r\n  }\r\n\r\n  goTo(index): void {\r\n    this.activeSlide = index;\r\n    clearTimeout(this.timeout);\r\n    this.timeout = setTimeout(() => this.next(), this.duration * 1000);\r\n  }\r\n}\r\n","<div class=\"container\" [ngClass]=\"{ 'full-width': fullWidth , 'max-width': fullWidth}\">\r\n  <div class=\"carousel\">\r\n    <div\r\n      *ngIf=\"slides\"\r\n      class=\"carousel__slides\"\r\n      [ngStyle]=\"{\r\n        width: slides.length * 100 + '%',\r\n        transform: 'translateX(' + (-100 / slides.length) * activeSlide + '%)'\r\n      }\"\r\n    >\r\n      <div\r\n        class=\"carousel__slides__slide\"\r\n        *ngFor=\"let item of slides; let i = index\"\r\n      >\r\n        <ng-container\r\n          *ngIf=\"!images\"\r\n          [ngTemplateOutlet]=\"slideTemplate\"\r\n          [ngTemplateOutletContext]=\"{ data: item }\"\r\n        ></ng-container>\r\n\r\n        <ng-container *ngIf=\"images\">\r\n          <br-image [path]=\"item.image\"></br-image>\r\n        </ng-container>\r\n      </div>\r\n    </div>\r\n    <div class=\"carousel__navigation\" [ngClass]=\"{ images: images }\">\r\n      <div class=\"carousel__navigation__arrow\">\r\n        <div class=\"carousel__navigation__arrow--left\" color=\"\"(click)=\"previous()\">\r\n          <br-icon name=\"angle-left\" style=\"solid\" color=\"#7e852e\"></br-icon>\r\n        </div>\r\n\r\n        <div class=\"carousel__navigation__arrow--right\" (click)=\"next()\">\r\n          <br-icon name=\"angle-right\" style=\"solid\" color=\"#7e852e\"></br-icon>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"carousel__navigation__dots\" *ngIf=\"slides\">\r\n        <div\r\n          *ngFor=\"let item of slides; let i = index\"\r\n          class=\"carousel__navigation__dots__dot\"\r\n          [ngClass]=\"{ active: i === activeSlide, done: i < activeSlide }\"\r\n          (click)=\"goTo(i)\"\r\n        >\r\n          <div class=\"dot\">\r\n            <div\r\n              class=\"carousel__navigation__dots__dot__bar\"\r\n              [ngStyle]=\"{ 'animation-duration': duration + 's' }\"\r\n            ></div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<div class=\"description\" *ngIf=\"images && slides[activeSlide].description\">\r\n  {{ slides[activeSlide].description }}\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnChanges\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-checkbox\",\r\n  templateUrl: \"./checkbox.component.html\",\r\n  styleUrls: [\"./checkbox.component.scss\"]\r\n})\r\nexport class CheckboxComponent implements OnChanges {\r\n  @Input() checked: boolean;\r\n  @Input() error: string;\r\n  @Input() minion: boolean;\r\n\r\n  @Output() toggle: EventEmitter<any> = new EventEmitter();\r\n\r\n  ngOnChanges() {\r\n    this.checked = this.checked;\r\n  }\r\n\r\n  toggleCheck() {\r\n    if (!this.minion) this.checked = !this.checked;\r\n    else this.checked = this.checked;\r\n    this.toggle.emit(this.checked);\r\n  }\r\n}\r\n","<div class=\"checkbox\" [ngClass]=\"{ error: error }\">\r\n  <input\r\n    type=\"checkbox\"\r\n    (change)=\"toggleCheck()\"\r\n    [checked]=\"checked\"\r\n    [ngClass]=\"{ checked: checked, unchecked: !checked }\"\r\n  />\r\n  <label><ng-content></ng-content></label>\r\n\r\n  <div class=\"error-label\" *ngIf=\"error\">\r\n    {{ error }}\r\n  </div>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-tag\",\r\n  templateUrl: \"./tag.component.html\",\r\n  styleUrls: [\"./tag.component.scss\"]\r\n})\r\nexport class TagComponent {\r\n  @Input() color: string;\r\n}\r\n","<span class=\"tag\" [ngStyle]=\"{ background: color }\"\r\n  ><ng-content></ng-content\r\n></span>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  ViewChild,\r\n  EventEmitter,\r\n  Output\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-check-card\",\r\n  templateUrl: \"./check-card.component.html\",\r\n  styleUrls: [\"./check-card.component.scss\"]\r\n})\r\nexport class CheckCardComponent implements OnInit {\r\n  @Input() title: string;\r\n  @Input() meta: string;\r\n  @Input() icon: string;\r\n  @Input() disabled: boolean;\r\n  @Input() checked: boolean;\r\n  @Input() clickable: boolean;\r\n  @Input() color: string = \"var(--primary)\";\r\n  @Input() colorMedium: string = \"var(--primary-medium)\";\r\n  @Input() deleting: boolean;\r\n  @Input() loading: boolean;\r\n  @Input() tags: Array<string>;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n  @Output() check: EventEmitter<any> = new EventEmitter();\r\n  @Output() delete: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"card\") elementRef;\r\n\r\n  defaultIcons: Array<string> = [\r\n    \"stars\",\r\n    \"acorn\",\r\n    \"laugh-beam\",\r\n    \"home-alt\",\r\n    \"home-heart\",\r\n    \"unicorn\",\r\n    \"user-cowboy\",\r\n    \"hat-cowboy-side\",\r\n    \"fireplace\",\r\n    \"toilet-paper\",\r\n    \"flashlight\",\r\n    \"washer\"\r\n  ];\r\n\r\n  ngOnInit() {\r\n    if (!this.icon || this.icon === \"\")\r\n      this.icon = this.defaultIcons[\r\n        Math.floor(Math.random() * this.defaultIcons.length)\r\n      ];\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.elementRef.nativeElement.style.setProperty(\"--color\", this.color);\r\n    this.elementRef.nativeElement.style.setProperty(\r\n      \"--color-light\",\r\n      this.colorMedium\r\n    );\r\n  }\r\n\r\n  onClick() {\r\n    this.action.emit();\r\n  }\r\n\r\n  onCheck() {\r\n    if (!this.disabled && !this.deleting && !this.loading) this.check.emit();\r\n  }\r\n\r\n  onDelete() {\r\n    this.delete.emit();\r\n  }\r\n}\r\n","<div\r\n  #card\r\n  class=\"card\"\r\n  [ngClass]=\"{\r\n    checked: checked,\r\n    disabled: disabled,\r\n    clickable: clickable,\r\n    deleting: deleting,\r\n    loading: loading\r\n  }\"\r\n>\r\n  <div class=\"icon\" (click)=\"onClick()\">\r\n    <br-icon style=\"duotone\" [name]=\"icon\"></br-icon>\r\n  </div>\r\n  <div class=\"text\" (click)=\"onClick()\">\r\n    <h4 class=\"title\">{{ title }}</h4>\r\n    <div class=\"status\">\r\n      <br-tag *ngFor=\"let tag of tags\" [color]=\"tag.color\">{{\r\n        tag.title\r\n      }}</br-tag>\r\n      {{ meta }}\r\n    </div>\r\n  </div>\r\n  <div class=\"check\" (click)=\"onCheck()\">\r\n    <svg *ngIf=\"!loading\" width=\"48\" height=\"48\" viewBox=\"0 0 44 44\">\r\n      <polyline points=\"32.73 11.52 15.76 28.48 7.27 20\" />\r\n    </svg>\r\n\r\n    <div class=\"loader\">\r\n      <br-loader *ngIf=\"loading\" size=\"small\"></br-loader>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"delete\" (click)=\"onDelete()\">\r\n    <br-icon style=\"solid\" name=\"trash-alt\"></br-icon>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\nimport 'prismjs';\r\nimport 'prismjs/components/prism-typescript';\r\nimport 'prismjs/components/prism-markup';\r\nimport 'prismjs/components/prism-javascript';\r\n\r\ndeclare var Prism: any;\r\n\r\n@Component({\r\n  selector: 'br-code-example',\r\n  templateUrl: './code-example.component.html',\r\n  styleUrls: ['./code-example.component.scss'],\r\n})\r\nexport class CodeExampleComponent implements OnInit {\r\n  @Input() code: string;\r\n  @Input() background: string;\r\n  @Input() maximize: boolean;\r\n  @Input() hideExample: boolean;\r\n  @Input() lang: string = 'html';\r\n\r\n  htmlCode: string;\r\n\r\n  ngOnInit() {\r\n    this.htmlCode = this.code;\r\n    this.parseCode(this.code);\r\n  }\r\n\r\n  ngOnChanges() {\r\n    this.parseCode(this.code);\r\n  }\r\n\r\n  parseCode(code) {\r\n    if (this.code) {\r\n      this.htmlCode = Prism.highlight(this.code, Prism.languages[this.lang]);\r\n      this.htmlCode = this.htmlCode.replace(/#{/g, '{{').replace(/#}/g, '}}');\r\n    }\r\n  }\r\n}\r\n","<div\r\n  class=\"code-example\"\r\n  [ngClass]=\"{ cards: background === 'cards', maximize: maximize }\"\r\n>\r\n  <div *ngIf=\"!hideExample\" class=\"example\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n  <pre class=\"code\"><code [innerHTML]=\"htmlCode\"></code>\r\n  </pre>\r\n</div>\r\n","import {\r\n  Directive,\r\n  OnChanges,\r\n  Input,\r\n  ElementRef,\r\n  HostBinding\r\n} from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[smoothHeight]\",\r\n  host: { \"[style.display]\": '\"block\"' }\r\n})\r\nexport class SmoothHeightDirective implements OnChanges {\r\n  @Input()\r\n  smoothHeight;\r\n  pulse: boolean;\r\n  startHeight: number;\r\n\r\n  constructor(private element: ElementRef) {}\r\n\r\n  @HostBinding(\"@grow\")\r\n  get grow() {\r\n    return { value: this.pulse, params: { startHeight: this.startHeight } };\r\n  }\r\n\r\n  setStartHeight() {\r\n    if (this.element && this.element.nativeElement)\r\n      this.startHeight = this.element.nativeElement.clientHeight;\r\n    else this.startHeight = 0;\r\n  }\r\n\r\n  ngOnChanges() {\r\n    this.setStartHeight();\r\n    this.pulse = !this.pulse;\r\n  }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { smoothHeight } from \"../animations\";\r\n\r\n@Component({\r\n  selector: \"br-collapse\",\r\n  templateUrl: \"./collapse.component.html\",\r\n  styleUrls: [\"./collapse.component.scss\"],\r\n  animations: [smoothHeight],\r\n})\r\nexport class CollapseComponent implements OnInit {\r\n  @Input() title: string;\r\n  @Input() titleStyle: object;\r\n  @Input() open: boolean = false;\r\n  @Input() raised: boolean = false;\r\n  @Input() indent: boolean = true;\r\n  @Input() flush: boolean = true;\r\n\r\n  @Output() @Output() onToggle: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n\r\n  toggle() {\r\n    this.open = !this.open;\r\n    this.onToggle.emit(this.open);\r\n  }\r\n}\r\n","<div class=\"collapse\" [ngClass]=\"{ raised: raised, flush: flush }\">\r\n  <div class=\"title\" (click)=\"toggle()\" [ngStyle]=\"titleStyle\">\r\n    <span class=\"icon\" [ngClass]=\"{ open: open }\"\r\n      ><br-icon type=\"solid\" name=\"caret-right\"></br-icon\r\n    ></span>\r\n    {{ title }}\r\n  </div>\r\n\r\n  <div class=\"content\" [ngClass]=\"{ indent: indent }\" [smoothHeight]=\"open\">\r\n    <div class=\"content-wrap\" [ngClass]=\"{ open: open }\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-stack\",\r\n  templateUrl: \"./stack.component.html\",\r\n  styleUrls: [\"./stack.component.scss\"]\r\n})\r\nexport class StackComponent {\r\n  @Input() size: string;\r\n}\r\n","<div class=\"stack\" [ngClass]=\"size\"></div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-toggle\",\r\n  templateUrl: \"./toggle.component.html\",\r\n  styleUrls: [\"./toggle.component.scss\"],\r\n})\r\nexport class ToggleComponent implements OnChanges {\r\n  @Input() on: boolean = true;\r\n  @Output() toggle: EventEmitter<any> = new EventEmitter();\r\n\r\n  ngOnChanges() {\r\n    this.on = this.on;\r\n  }\r\n\r\n  toggleCheck() {\r\n    this.on = !this.on;\r\n    this.toggle.emit(this.on);\r\n  }\r\n}\r\n","<div class=\"toggle\">\r\n  <label><ng-content></ng-content></label>\r\n  <div\r\n    class=\"toggle-button\"\r\n    (click)=\"toggleCheck()\"\r\n    [ngClass]=\"{ on: on }\"\r\n  ></div>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnInit,\r\n  OnChanges,\r\n} from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"br-color-swatch\",\r\n  templateUrl: \"./color-swatch.component.html\",\r\n  styleUrls: [\"./color-swatch.component.scss\"],\r\n})\r\nexport class ColorSwatchComponent implements OnInit, OnChanges {\r\n  @Input() colorName: string;\r\n  @Input() cssName: string;\r\n  @Input() mainColorHex: string;\r\n  @Input() inputColors: Array<any>;\r\n  @Input() custom: boolean;\r\n  @Input() automaticTints: boolean = true;\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  swatchForm: FormGroup;\r\n\r\n  mainHSL: { h; s; l };\r\n  colorsHSL: {};\r\n  colorsHEX: {};\r\n\r\n  constructor() {\r\n    this.swatchForm = new FormGroup(\r\n      {\r\n        mainColor: new FormControl(\"\", [\r\n          Validators.required,\r\n          Validators.pattern(\"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$\"),\r\n        ]),\r\n        genericColor: new FormControl(\"\", [\r\n          Validators.pattern(\"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$\"),\r\n        ]),\r\n      },\r\n      { updateOn: \"blur\" }\r\n    );\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.inits();\r\n  }\r\n\r\n  ngOnChanges() {\r\n    this.inits();\r\n  }\r\n\r\n  inits() {\r\n    if (this.mainColorHex && !this.custom) {\r\n      this.hexBlur(this.mainColorHex, false);\r\n      this.swatchForm.controls[\"mainColor\"].setValue(this.mainColorHex);\r\n      if (!this.inputColors) this.inputColors = this.inputColorsFromMain();\r\n    } else {\r\n      this.colorsHEX = {};\r\n      this.inputColors.forEach((e) => {\r\n        this.colorsHEX[e[0]] = e[1];\r\n      });\r\n    }\r\n  }\r\n\r\n  outputColors() {\r\n    let output = {};\r\n    let cssName = this.cssName;\r\n    let colorsHEX = this.colorsHEX;\r\n\r\n    Object.keys(colorsHEX).forEach(function (key, index) {\r\n      // let newKey = `--${cssName}-${key}`;\r\n      // if (key == \"main\") newKey = `--${cssName}`;\r\n      // if (!cssName) newKey = key;\r\n\r\n      output[key] = colorsHEX[key];\r\n    });\r\n\r\n    this.onBlur.emit(output);\r\n  }\r\n\r\n  hexBlur(val, output = true) {\r\n    this.hexToHSL(val);\r\n    this.colorsHSL = {};\r\n    this.colorsHSL[\"main\"] = this.mainHSL;\r\n    this.colorsHSL[\"dark\"] = this.addToMain(3, -8, -11);\r\n    this.colorsHSL[\"medium\"] = this.addToMain(-3, -13, 9);\r\n    this.colorsHSL[\"light\"] = this.addToMain(-9, -8, 35);\r\n    this.colorsHSL[\"white\"] = this.addToMain(-10, 29, 39);\r\n    this.colorsToHex();\r\n    if (output) this.outputColors();\r\n  }\r\n\r\n  hexBlurCustom(val, key) {\r\n    this.colorsHEX[key] = val;\r\n    this.outputColors();\r\n  }\r\n\r\n  colorsToHex() {\r\n    this.colorsHEX = {};\r\n    Object.keys(this.colorsHSL).forEach((color) => {\r\n      this.colorsHEX[color] = this.HSLToHex(\r\n        this.colorsHSL[color].h,\r\n        this.colorsHSL[color].s,\r\n        this.colorsHSL[color].l\r\n      );\r\n    });\r\n  }\r\n\r\n  inputColorsFromMain() {\r\n    let colors = [];\r\n    Object.keys(this.colorsHEX).forEach((color) => {\r\n      colors.push([color, this.colorsHEX[color]]);\r\n    });\r\n\r\n    return colors;\r\n  }\r\n\r\n  addToMain(h, s, l) {\r\n    return {\r\n      h: (((this.mainHSL.h + h) % 360) + 360) % 360,\r\n      s: Math.min(Math.max(this.mainHSL.s + s, 0), 100),\r\n      l: Math.min(Math.max(this.mainHSL.l + l, 0), 100),\r\n    };\r\n  }\r\n\r\n  hexToHSL(H) {\r\n    let r, g, b: any;\r\n    // Convert hex to RGB first\r\n    (r = 0), (g = 0), (b = 0);\r\n    if (H.length == 4) {\r\n      r = \"0x\" + H[1] + H[1];\r\n      g = \"0x\" + H[2] + H[2];\r\n      b = \"0x\" + H[3] + H[3];\r\n    } else if (H.length == 7) {\r\n      r = \"0x\" + H[1] + H[2];\r\n      g = \"0x\" + H[3] + H[4];\r\n      b = \"0x\" + H[5] + H[6];\r\n    }\r\n    // Then to HSL\r\n    r /= 255;\r\n    g /= 255;\r\n    b /= 255;\r\n    let cmin = Math.min(r, g, b),\r\n      cmax = Math.max(r, g, b),\r\n      delta = cmax - cmin,\r\n      h = 0,\r\n      s = 0,\r\n      l = 0;\r\n\r\n    if (delta == 0) h = 0;\r\n    else if (cmax == r) h = ((g - b) / delta) % 6;\r\n    else if (cmax == g) h = (b - r) / delta + 2;\r\n    else h = (r - g) / delta + 4;\r\n\r\n    h = Math.round(h * 60);\r\n\r\n    if (h < 0) h += 360;\r\n\r\n    l = (cmax + cmin) / 2;\r\n    s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\r\n    s = +(s * 100).toFixed(1);\r\n    l = +(l * 100).toFixed(1);\r\n\r\n    this.mainHSL = { h, s, l };\r\n  }\r\n\r\n  HSLToHex(h, s, l) {\r\n    s /= 100;\r\n    l /= 100;\r\n\r\n    let c, x, m, r, g, b: any;\r\n\r\n    (c = (1 - Math.abs(2 * l - 1)) * s),\r\n      (x = c * (1 - Math.abs(((h / 60) % 2) - 1))),\r\n      (m = l - c / 2),\r\n      (r = 0),\r\n      (g = 0),\r\n      (b = 0);\r\n\r\n    if (0 <= h && h < 60) {\r\n      r = c;\r\n      g = x;\r\n      b = 0;\r\n    } else if (60 <= h && h < 120) {\r\n      r = x;\r\n      g = c;\r\n      b = 0;\r\n    } else if (120 <= h && h < 180) {\r\n      r = 0;\r\n      g = c;\r\n      b = x;\r\n    } else if (180 <= h && h < 240) {\r\n      r = 0;\r\n      g = x;\r\n      b = c;\r\n    } else if (240 <= h && h < 300) {\r\n      r = x;\r\n      g = 0;\r\n      b = c;\r\n    } else if (300 <= h && h < 360) {\r\n      r = c;\r\n      g = 0;\r\n      b = x;\r\n    }\r\n    // Having obtained RGB, convert channels to hex\r\n    r = Math.round((r + m) * 255).toString(16);\r\n    g = Math.round((g + m) * 255).toString(16);\r\n    b = Math.round((b + m) * 255).toString(16);\r\n\r\n    // Prepend 0s, if necessary\r\n    if (r.length == 1) r = \"0\" + r;\r\n    if (g.length == 1) g = \"0\" + g;\r\n    if (b.length == 1) b = \"0\" + b;\r\n\r\n    return \"#\" + r + g + b;\r\n  }\r\n\r\n  translateTint(val) {\r\n    switch (val) {\r\n      case \"main\":\r\n        return \"Basis\";\r\n        break;\r\n      case \"dark\":\r\n        return \"Donker\";\r\n        break;\r\n      case \"medium\":\r\n        return \"Medium\";\r\n        break;\r\n      case \"light\":\r\n        return \"Licht\";\r\n        break;\r\n      case \"white\":\r\n        return \"Wit\";\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n\r\n    return val.replace(\"--\", \"\").replace(\"gray\", \"Grijs\").replace(\"-\", \" \");\r\n  }\r\n\r\n  toggleCustom(e) {\r\n    if (e) {\r\n      if (!this.mainColorHex) this.mainColorHex = \"#4bb4e0\";\r\n      this.swatchForm.controls[\"mainColor\"].setValue(this.mainColorHex);\r\n      this.hexBlur(this.mainColorHex);\r\n    }\r\n\r\n    this.custom = !e;\r\n  }\r\n}\r\n","<form [formGroup]=\"swatchForm\">\r\n  <div class=\"color-swatch\">\r\n    <h2 *ngIf=\"colorName\">{{ colorName }}</h2>\r\n\r\n    <ng-container *ngIf=\"!custom\">\r\n      <div class=\"main-color\">\r\n        <br-flex>\r\n          <div\r\n            class=\"block\"\r\n            [ngStyle]=\"{ background: colorsHEX['main'] || '#ff00ff' }\"\r\n          ></div>\r\n          <br-input\r\n            name=\"mainColor\"\r\n            label=\"HEX\"\r\n            (onBlur)=\"hexBlur($event)\"\r\n            isAutoCompleteOff=\"true\"\r\n            [messages]=\"{\r\n              required: 'Voer een geldige HEX kleur code in',\r\n              pattern: 'Voer een geldige HEX kleur code in'\r\n            }\"\r\n          ></br-input>\r\n        </br-flex>\r\n      </div>\r\n\r\n      <div>\r\n        <h4>Donker</h4>\r\n        <br-flex alignment=\"center\">\r\n          <div\r\n            class=\"block\"\r\n            [ngStyle]=\"{ background: colorsHEX['dark'] || '#ff00ff' }\"\r\n          ></div>\r\n          <code>\r\n            {{ colorsHEX[\"dark\"] }}\r\n          </code>\r\n        </br-flex>\r\n      </div>\r\n\r\n      <div>\r\n        <h4>Medium</h4>\r\n        <br-flex alignment=\"center\">\r\n          <div\r\n            class=\"block\"\r\n            [ngStyle]=\"{ background: colorsHEX['medium'] || '#ff00ff' }\"\r\n          ></div>\r\n          <code>\r\n            {{ colorsHEX[\"medium\"] }}\r\n          </code>\r\n        </br-flex>\r\n      </div>\r\n\r\n      <div>\r\n        <h4>Licht</h4>\r\n        <br-flex alignment=\"center\">\r\n          <div\r\n            class=\"block\"\r\n            [ngStyle]=\"{ background: colorsHEX['light'] || '#ff00ff' }\"\r\n          ></div>\r\n          <code>\r\n            {{ colorsHEX[\"light\"] }}\r\n          </code>\r\n        </br-flex>\r\n      </div>\r\n\r\n      <div>\r\n        <h4>Wit</h4>\r\n        <br-flex alignment=\"center\">\r\n          <div\r\n            class=\"block\"\r\n            [ngStyle]=\"{ background: colorsHEX['white'] || '#ff00ff' }\"\r\n          ></div>\r\n          <code>\r\n            {{ colorsHEX[\"white\"] }}\r\n          </code>\r\n        </br-flex>\r\n      </div>\r\n    </ng-container>\r\n\r\n    <ng-container *ngIf=\"custom\">\r\n      <div *ngFor=\"let color of inputColors\">\r\n        <h4>{{ translateTint(color[0]) || color[0] }}</h4>\r\n        <br-flex>\r\n          <div\r\n            class=\"block\"\r\n            [ngStyle]=\"{ background: colorsHEX[color[0]] || '#ff00ff' }\"\r\n          ></div>\r\n          <br-input\r\n            [name]=\"genericColor\"\r\n            label=\"HEX\"\r\n            [value]=\"color[1]\"\r\n            (onBlur)=\"hexBlurCustom($event, color[0])\"\r\n            isAutoCompleteOff=\"true\"\r\n            [messages]=\"{\r\n              required: 'Voer een geldige HEX kleur code in',\r\n              pattern: 'Voer een geldige HEX kleur code in'\r\n            }\"\r\n          ></br-input>\r\n        </br-flex>\r\n      </div>\r\n    </ng-container>\r\n\r\n    <br-stack></br-stack>\r\n\r\n    <br-toggle\r\n      *ngIf=\"automaticTints\"\r\n      class=\"toggle\"\r\n      [on]=\"!custom\"\r\n      (toggle)=\"toggleCustom($event)\"\r\n      >Automatische tinten</br-toggle\r\n    >\r\n  </div>\r\n</form>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-confetti\",\r\n  templateUrl: \"./confetti.component.html\",\r\n  styleUrls: [\"./confetti.component.scss\"]\r\n})\r\nexport class ConfettiComponent {\r\n  numbers: Array<any>;\r\n  colors = [\r\n    \"var(--primary)\",\r\n    \"var(--success)\",\r\n    \"var(--warning)\",\r\n    \"var(--alert)\",\r\n    \"var(--primary-light)\"\r\n  ];\r\n  drifts = [\r\n    \"none\",\r\n    \"none\",\r\n    \"drift-left-1\",\r\n    \"drift-left-2\",\r\n    \"drift-right-1\",\r\n    \"drift-right-2\"\r\n  ];\r\n  flutters = [\"none\", \"none\", \"flutter-1\", \"flutter-2\"];\r\n\r\n  state = \"active\";\r\n\r\n  constructor() {\r\n    this.numbers = new Array(150).fill(\"\").map((x, i) => {\r\n      let duration = Math.random() * 3 + 2;\r\n      let delay = Math.random() * 5;\r\n      return {\r\n        index: i,\r\n        snippetStyle: this.getSnippetStyle(),\r\n        horizontalStyle: this.getHorizontalStyle(),\r\n        verticalStyle: this.getVerticalStyle(duration, delay),\r\n        flutterStyle: this.getFlutterStyle(),\r\n        twirlStyle: this.getTwirlStyle()\r\n      };\r\n    });\r\n  }\r\n\r\n  getSnippetStyle(): any {\r\n    const width = Math.random() * 24;\r\n\r\n    return {\r\n      \"width.px\": width,\r\n      \"height.px\": width * 0.5,\r\n      background: this.colors[Math.floor(Math.random() * this.colors.length)],\r\n      transform: `rotate(${Math.random() * 360}deg)`\r\n      // opacity: Math.random() + 0.5\r\n    };\r\n  }\r\n\r\n  getHorizontalStyle(): any {\r\n    return {\r\n      \"left.vw\": Math.random() * 100,\r\n      \"animation-name\": this.drifts[\r\n        Math.floor(Math.random() * this.drifts.length)\r\n      ],\r\n      \"animation-duration\": Math.random() * 3 + 2 + \"s\"\r\n    };\r\n  }\r\n\r\n  getVerticalStyle(duration, delay): any {\r\n    return {\r\n      \"animation-duration\": duration + \"s\",\r\n      \"animation-delay\": delay + \"s\"\r\n    };\r\n  }\r\n\r\n  getFlutterStyle(): any {\r\n    return {\r\n      \"animation-name\": this.flutters[\r\n        Math.floor(Math.random() * this.flutters.length)\r\n      ],\r\n      \"animation-duration\": Math.random() + \"s\"\r\n    };\r\n  }\r\n\r\n  getFlutterSpacingStyle(): any {\r\n    return {\r\n      transform: `translateY(${Math.random() * 200}px)`\r\n    };\r\n  }\r\n\r\n  getTwirlStyle() {\r\n    return {\r\n      \"animation-duration\": Math.random() * 10 + 0.5 + \"s\"\r\n    };\r\n  }\r\n}\r\n","<div class=\"party room\">\r\n  <div *ngFor=\"let n of numbers\" class=\"confetti\">\r\n    <div class=\"horizontal\" [ngStyle]=\"n.horizontalStyle\">\r\n      <div class=\"vertical\" [ngStyle]=\"n.verticalStyle\">\r\n        <div class=\"flutter\" [ngStyle]=\"n.flutterStyle\">\r\n          <div class=\"flutter-spacing\">\r\n            <div class=\"twirl\" [ngStyle]=\"n.twirlStyle\">\r\n              <div class=\"snippet\" [ngStyle]=\"n.snippetStyle\"></div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { smoothHeight } from \"../animations\";\r\n\r\n@Component({\r\n  selector: \"br-control-group\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./control-group.component.html\",\r\n  styleUrls: [\"./control-group.component.scss\"],\r\n  animations: [smoothHeight]\r\n})\r\nexport class ControlGroupComponent implements OnInit {\r\n  @Input() title: string;\r\n  @Input() startsOpen: boolean;\r\n  @Input() checked: number;\r\n  @Input() total: number;\r\n  @Input() type: string = \"form\";\r\n  @Input() row: boolean;\r\n  @Input() error: string;\r\n\r\n  open: boolean;\r\n  xscale = \"scaleX(0)\";\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {\r\n    this.open = this.startsOpen;\r\n  }\r\n\r\n  toggleOpen() {\r\n    this.open = !this.open;\r\n  }\r\n\r\n  get barWidth() {\r\n    if (this.checked && this.total && this.checked <= this.total)\r\n      this.xscale = `scaleX(${this.checked / this.total})`;\r\n    else if (this.total >= 0) this.xscale = \"scaleX(0)\";\r\n    return this.xscale;\r\n  }\r\n\r\n  get done() {\r\n    if (this.checked && this.total && this.checked >= this.total) return true;\r\n    return false;\r\n  }\r\n}\r\n","<div\r\n  class=\"control-group\"\r\n  [ngClass]=\"{\r\n    open: open,\r\n    progress: type == 'progress',\r\n    form: type == 'form',\r\n    error: error != null\r\n  }\"\r\n>\r\n  <div class=\"bar-background\" *ngIf=\"type == 'progress'\"></div>\r\n  <div\r\n    class=\"bar\"\r\n    [ngStyle]=\"{ transform: barWidth }\"\r\n    [ngClass]=\"{ done: done }\"\r\n    *ngIf=\"type == 'progress'\"\r\n  ></div>\r\n\r\n  <h2 (click)=\"toggleOpen()\" *ngIf=\"type == 'progress'\">\r\n    <span class=\"caret-container\">\r\n      <span class=\"caret\" *ngIf=\"type == 'progress'\">\r\n        <br-icon name=\"angle-right\" style=\"solid\"></br-icon>\r\n      </span>\r\n    </span>\r\n    <span class=\"header\">{{ title }}</span>\r\n    <span class=\"count\" *ngIf=\"checked && total\">\r\n      {{ checked }}/{{ total }}</span\r\n    >\r\n  </h2>\r\n\r\n  <h4 *ngIf=\"type == 'form' && title\">{{ title }}</h4>\r\n\r\n  <div [smoothHeight]=\"open\">\r\n    <div *ngIf=\"open || type == 'form'\" class=\"list\" [ngClass]=\"{ row: row }\">\r\n      <ng-content select=\"[description]\"></ng-content>\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"error-label\" *ngIf=\"error\">\r\n    {{ error }}\r\n  </div>\r\n</div>\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-cookie-consent\",\r\n  templateUrl: \"./cookie-consent.component.html\",\r\n  styleUrls: [\"./cookie-consent.component.scss\"]\r\n})\r\nexport class CookieConsentComponent {\r\n  @Input() acceptCopy: string;\r\n  @Input() declineCopy: string;\r\n\r\n  @Output() accept: EventEmitter<any> = new EventEmitter();\r\n  @Output() decline: EventEmitter<any> = new EventEmitter();\r\n\r\n  onAccept() {\r\n    this.accept.emit();\r\n  }\r\n\r\n  onDecline() {\r\n    this.decline.emit();\r\n  }\r\n}\r\n","<div class=\"cookie-consent\">\r\n  <br-flex justify=\"between\" alignment=\"stretch\" spacing=\"-2rem\">\r\n    <div>\r\n      <h2><br-icon name=\"cookie-bite\"></br-icon> Cookies?</h2>\r\n      <p class=\"content\"><ng-content></ng-content></p>\r\n    </div>\r\n    <br-flex class=\"buttons\" spacing=\"1rem\" direction=\"column\">\r\n      <br-button type=\"tertiary\" size=\"full\" (click)=\"onDecline()\">{{\r\n        declineCopy\r\n      }}</br-button>\r\n      <br-button type=\"primary\" size=\"full\" (click)=\"onAccept()\">{{\r\n        acceptCopy\r\n      }}</br-button>\r\n    </br-flex>\r\n  </br-flex>\r\n</div>\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-icon-button\",\r\n  templateUrl: \"./icon-button.component.html\",\r\n  styleUrls: [\"./icon-button.component.scss\"]\r\n})\r\nexport class IconButtonComponent {\r\n  @Input() name: string;\r\n  @Input() style: string = \"regular\";\r\n  @Input() type: string;\r\n  @Input() flush: boolean;\r\n  @Input() small: boolean;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  clicked() {\r\n    this.action.emit();\r\n  }\r\n}\r\n","<span\r\n  class=\"icon-button\"\r\n  [ngClass]=\"{\r\n    action: type === 'action',\r\n    table: type === 'table',\r\n    disabled: type === 'disabled',\r\n    dark: type === 'dark',\r\n    small: small\r\n  }\"\r\n>\r\n  <br-icon\r\n    [name]=\"name\"\r\n    [style]=\"style\"\r\n    (click)=\"clicked()\"\r\n    [flush]=\"flush\"\r\n  ></br-icon>\r\n</span>\r\n","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-pagination\",\r\n  templateUrl: \"./pagination.component.html\",\r\n  styleUrls: [\"./pagination.component.scss\"]\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n  @Input() items: number;\r\n  @Input() show: number;\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n  page: number = 1;\r\n  total: number;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.total = Math.ceil(this.items / this.show);\r\n  }\r\n\r\n  get pages() {\r\n    if (this.total <= 6) {\r\n      let pages = Array.from(Array(this.total), (e, i) => i + 1);\r\n      return pages;\r\n    } else if (this.page <= 2 || this.page >= this.total - 1) {\r\n      let pages = Array(6);\r\n      pages[0] = 1;\r\n      pages[1] = 2;\r\n      pages[2] = 3;\r\n      pages[3] = \"…\";\r\n      pages[4] = this.total - 2;\r\n      pages[5] = this.total - 1;\r\n      pages[6] = this.total;\r\n      return pages;\r\n    } else {\r\n      let pages = Array(7);\r\n      pages[0] = 1;\r\n      pages[1] = \"…\";\r\n      pages[2] = this.page - 1;\r\n      pages[3] = this.page;\r\n      pages[4] = this.page + 1;\r\n      pages[5] = \"…\";\r\n      pages[6] = this.total;\r\n      return pages;\r\n    }\r\n  }\r\n\r\n  setPage(page: number) {\r\n    if (this.isPage(page)) {\r\n      this.page = page;\r\n      this.action.emit(this.page);\r\n    }\r\n  }\r\n\r\n  nextPage() {\r\n    if (this.page < this.total) {\r\n      this.page++;\r\n      this.action.emit(this.page);\r\n    }\r\n  }\r\n\r\n  prevPage() {\r\n    if (this.page > 1) {\r\n      this.page--;\r\n      this.action.emit(this.page);\r\n    }\r\n  }\r\n\r\n  isPage(page) {\r\n    return !isNaN(page);\r\n  }\r\n}\r\n\r\n// 1 Page don't show\r\n// 2-5 pages show normal ( < 1 2 3 4 5 > )\r\n// 6 pages  ( < 1 2 3 4 6 6 >\r\n// 6+ pages < 1 ... 41 42 43 ... 100 >\r\n","<div *ngIf=\"total > 1\" class=\"pagination\">\r\n  <div class=\"arrow\" (click)=\"prevPage()\" [ngClass]=\"{ disabled: page == 1 }\">\r\n    <br-icon style=\"solid\" name=\"arrow-left\"></br-icon>\r\n  </div>\r\n\r\n  <div\r\n    *ngFor=\"let thisPage of pages\"\r\n    class=\"number\"\r\n    (click)=\"setPage(thisPage)\"\r\n    [ngClass]=\"{ active: thisPage == page, unclickable: !isPage(thisPage) }\"\r\n  >\r\n    {{ thisPage }}\r\n  </div>\r\n  <!-- <div class=\"elipses\">…</div> -->\r\n\r\n  <div\r\n    class=\"arrow\"\r\n    (click)=\"nextPage()\"\r\n    [ngClass]=\"{ disabled: page == total }\"\r\n  >\r\n    <br-icon style=\"solid\" name=\"arrow-right\"></br-icon>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  TemplateRef,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  EventEmitter,\r\n  Output,\r\n} from \"@angular/core\";\r\nimport * as xlsx from \"xlsx\";\r\nimport { smoothHeight } from \"../animations\";\r\n\r\nexport class Column {\r\n  key: string;\r\n  title: string;\r\n  width: string;\r\n  align: string;\r\n  customWidth: boolean;\r\n  template: TemplateRef<any>;\r\n  sortKey: string;\r\n\r\n  constructor(key) {\r\n    this.key = key;\r\n    this.title = key;\r\n    this.width = \"minmax(8rem, auto)\";\r\n    this.align = \"\";\r\n    this.customWidth = false;\r\n  }\r\n}\r\n\r\nexport class SortColumn {\r\n  key: string;\r\n  direction: number;\r\n  constructor(key) {\r\n    this.key = key;\r\n    this.direction = 1;\r\n  }\r\n}\r\n\r\nexport class TableOptions {\r\n  sort: string;\r\n  sortBy: Array<string>;\r\n  search: boolean;\r\n  resizable: boolean;\r\n  keepTableOnMobile: boolean;\r\n  flush: boolean;\r\n  select: string;\r\n  clickable: boolean;\r\n  header: boolean;\r\n  showTopRight: boolean;\r\n  total: any;\r\n  order: Array<any>;\r\n  mobileClickLabel: string;\r\n\r\n  constructor() {\r\n    this.sort = \"none\";\r\n    this.search = false;\r\n    this.resizable = false;\r\n    this.clickable = false;\r\n    this.keepTableOnMobile = false;\r\n    this.flush = false;\r\n    this.header = true;\r\n    this.total = null;\r\n    this.order = null;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: \"br-data-table[tableId]\",\r\n  templateUrl: \"./data-table.component.html\",\r\n  styleUrls: [\"./data-table.component.scss\", \"../input/input.component.scss\"],\r\n  animations: [smoothHeight],\r\n})\r\nexport class DataTableComponent implements OnInit, OnChanges {\r\n  @Input() tableId: string;\r\n  @Input() title: string;\r\n  @Input() items: Array<any>;\r\n  @Input() columns: Array<any> = [];\r\n  @Input() options: TableOptions;\r\n  @Input() exportCopy: string = \"Exporteer tabel als .xls\";\r\n  @Input() exportable: boolean;\r\n  @Input() dropdown: TemplateRef<any>;\r\n  @Input() emptyStateMessage: string = \"Deze tabel bevat (nog) geen data\";\r\n  @Input() pagination: number = 0;\r\n  @Input() track: Function;\r\n  @Input() loading: boolean;\r\n\r\n  @Output() select: EventEmitter<any> = new EventEmitter();\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  myOptions: TableOptions;\r\n  myHeaders: Array<string>;\r\n  myColumns: Array<Column>;\r\n  columnWidths: string;\r\n\r\n  itemsFiltered: Array<object>;\r\n  itemsShown: Array<object>;\r\n  page: number = 0;\r\n  expandedItems: Array<number> = [];\r\n\r\n  columnBeingResized: any;\r\n  sortColumns: Array<SortColumn> = [];\r\n  queries: Array<string> = [];\r\n\r\n  hasSub: boolean;\r\n\r\n  internalKeys = [\r\n    \"selected\",\r\n    \"disabled\",\r\n    \"strike\",\r\n    \"expanded\",\r\n    \"clickable\",\r\n    \"idx\",\r\n  ];\r\n\r\n  // Init functions\r\n\r\n  ngOnInit() {\r\n    this.myOptions = { ...new TableOptions(), ...this.options };\r\n    this.setColumns();\r\n\r\n    if (this.myOptions && this.myOptions.sortBy) {\r\n      this.myOptions.sortBy.forEach((e) =>\r\n        this.sortColumns.push(new SortColumn(e))\r\n      );\r\n\r\n      this.sortTable();\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes[\"items\"]) {\r\n      this.myOptions = { ...new TableOptions(), ...this.options };\r\n      this.setColumns();\r\n    }\r\n  }\r\n\r\n  setColumns() {\r\n    this.myColumns = [];\r\n    this.myHeaders = [];\r\n    this.itemsFiltered = [];\r\n\r\n    if (this.items) {\r\n      this.getHeaders();\r\n      this.parseItems();\r\n      this.applyColumnOptions();\r\n    }\r\n  }\r\n\r\n  getHeaders() {\r\n    let headersSet = this.myOptions.order\r\n      ? new Set(this.myOptions.order)\r\n      : new Set();\r\n    this.items.forEach((i) => {\r\n      Object.keys(i).forEach((k) => {\r\n        if (k === \"subTable\" || k === \"dropdown\") this.hasSub = true;\r\n        else if (this.internalKeys.includes(k)) return;\r\n        else headersSet.add(k);\r\n      });\r\n    });\r\n    this.myHeaders = Array.from(headersSet) as Array<string>;\r\n  }\r\n\r\n  parseItems() {\r\n    this.itemsFiltered = this.items = this.items.map((i, idx) => {\r\n      let item = { idx: idx };\r\n\r\n      this.myHeaders.forEach((h) => {\r\n        if (i[h] === undefined) {\r\n          item[h] = \"\";\r\n        } else if (this.getType(i[h]) === \"array\") {\r\n          item[h] = i[h].join(\", \");\r\n        } else {\r\n          item[h] = i[h];\r\n        }\r\n      });\r\n\r\n      let expand = false;\r\n      if (this.expandedItems && i) {\r\n        expand = this.expandedItems.includes(item.idx);\r\n      }\r\n\r\n      if (\"dropdown\" in i) {\r\n        item[\"dropdown\"] = i.dropdown;\r\n        item[\"expanded\"] = expand;\r\n      }\r\n\r\n      if (\"subTable\" in i) {\r\n        item[\"subTable\"] = i.subTable;\r\n        item[\"expanded\"] = expand;\r\n      }\r\n\r\n      if (\"selected\" in i) item[\"selected\"] = i.selected == true;\r\n      if (\"disabled\" in i) item[\"disabled\"] = i.disabled == true;\r\n      if (\"strike\" in i) item[\"strike\"] = i.strike == true;\r\n      if (this.myOptions && \"clickable\" in this.myOptions)\r\n        item[\"clickable\"] = item[\"clickable\"] =\r\n          this.myOptions.clickable == true;\r\n\r\n      if (\"clickable\" in i) item[\"clickable\"] = i.clickable == true;\r\n      if (this.myOptions && \"select\" in this.myOptions)\r\n        item[\"clickable\"] = true;\r\n\r\n      return item;\r\n    });\r\n    this.showPage();\r\n  }\r\n\r\n  applyColumnOptions() {\r\n    let storedWidths;\r\n\r\n    if (this.myOptions.resizable) {\r\n      storedWidths = JSON.parse(\r\n        window.localStorage.getItem(`br-data-table-${this.tableId}-widths`)\r\n      );\r\n    }\r\n\r\n    this.myHeaders.forEach((h) => {\r\n      let col = new Column(h);\r\n      let options;\r\n\r\n      if (this.columns) {\r\n        options = this.columns.find(({ key }) => {\r\n          return key === h;\r\n        });\r\n      }\r\n\r\n      if (options) {\r\n        if (options.title) col.title = options.title;\r\n        if (options.width) col.width = options.width;\r\n        if (options.template) col.template = options.template;\r\n        if (options.align) {\r\n          switch (options.align) {\r\n            case \"right\":\r\n              col.align = \"text-right\";\r\n              break;\r\n            case \"center\":\r\n              col.align = \"text-center\";\r\n              break;\r\n          }\r\n          0;\r\n        }\r\n      }\r\n\r\n      if (storedWidths && storedWidths[col.key]) {\r\n        col.width = storedWidths[col.key];\r\n      }\r\n\r\n      if (!options || !options.hide) this.myColumns.push(col);\r\n    });\r\n\r\n    this.setColumnWidths();\r\n  }\r\n\r\n  // -------------\r\n  // Functionality\r\n  // -------------\r\n\r\n  // Column resize\r\n\r\n  startResize(e) {\r\n    this.columnBeingResized = e.target.parentNode;\r\n    window.addEventListener(\"mousemove\", this.onMouseMove);\r\n    window.addEventListener(\"mouseup\", this.onMouseUp);\r\n  }\r\n\r\n  onMouseMove = (e) => {\r\n    const scrollOffSet = document.documentElement.scrollLeft;\r\n    const width =\r\n      scrollOffSet +\r\n      e.clientX -\r\n      this.columnBeingResized.getBoundingClientRect().left;\r\n\r\n    const column = this.myColumns.find(\r\n      ({ title }) => title === this.columnBeingResized.getAttribute(\"title\")\r\n    );\r\n    column.width = `minmax(${Math.max(96, width)}px, auto)`;\r\n    column.customWidth = true;\r\n\r\n    this.setColumnWidths();\r\n  };\r\n\r\n  onMouseUp = () => {\r\n    window.removeEventListener(\"mousemove\", this.onMouseMove);\r\n    window.removeEventListener(\"mouseup\", this.onMouseUp);\r\n    this.columnBeingResized = null;\r\n    this.saveColumnWidths();\r\n  };\r\n\r\n  setColumnWidths() {\r\n    this.columnWidths = \"\";\r\n    this.myColumns.forEach((c) => {\r\n      this.columnWidths += c.width + \" \";\r\n    });\r\n  }\r\n\r\n  saveColumnWidths() {\r\n    let widthObject = {};\r\n\r\n    this.myColumns.forEach((c) => {\r\n      if (c.customWidth) {\r\n        widthObject[c.key] = c.width;\r\n      }\r\n    });\r\n\r\n    window.localStorage.setItem(\r\n      `br-data-table-${this.tableId}-widths`,\r\n      JSON.stringify(widthObject)\r\n    );\r\n  }\r\n\r\n  // Sort\r\n\r\n  toggleSort(key) {\r\n    if (this.isSoratable) {\r\n      let col = this.sortColumns.find((e) => e.key === key);\r\n\r\n      if (!col) {\r\n        if (this.myOptions.sort === \"single\") this.sortColumns = [];\r\n        this.sortColumns.push(new SortColumn(key));\r\n        this.sortTable();\r\n      } else {\r\n        if (col.direction === 1) {\r\n          col.direction = -1;\r\n          this.sortTable();\r\n        } else {\r\n          this.sortColumns = this.sortColumns.filter((e) => e != col);\r\n\r\n          if (this.sortColumns.length > 0) {\r\n            this.sortTable();\r\n          } else {\r\n            this.setColumns();\r\n          }\r\n        }\r\n      }\r\n\r\n      this.search();\r\n      this.showPage();\r\n    }\r\n  }\r\n\r\n  sortTable() {\r\n    this.itemsFiltered.sort((a, b) => {\r\n      let result;\r\n      this.sortColumns.some((e) => {\r\n        let aItem = a[e.key];\r\n        let bItem = b[e.key];\r\n\r\n        let columnOptions = this.columns.find((c) => c.key === e.key);\r\n        if (columnOptions && columnOptions.sortKey) {\r\n          aItem = aItem[columnOptions.sortKey];\r\n          bItem = bItem[columnOptions.sortKey];\r\n        }\r\n\r\n        if (aItem === \"\") {\r\n          result = 1 * e.direction;\r\n          return true;\r\n        }\r\n        if (bItem === \"\") {\r\n          result = -1 * e.direction;\r\n          return true;\r\n        }\r\n\r\n        result = e.direction * (aItem < bItem ? -1 : aItem > bItem ? 1 : 0);\r\n        return result !== 0;\r\n      });\r\n      return result;\r\n    });\r\n\r\n    this.showPage();\r\n  }\r\n\r\n  // Search\r\n\r\n  setSearchQueries(query) {\r\n    this.queries = query\r\n      .toUpperCase()\r\n      .split(\" \")\r\n      .filter((q) => q !== \"\");\r\n    this.parseItems();\r\n    this.sortTable();\r\n    this.search();\r\n    this.showPage();\r\n  }\r\n\r\n  search() {\r\n    if (this.myOptions.search) {\r\n      this.itemsFiltered = this.itemsFiltered.filter((i) => {\r\n        let found = this.queries.length >= 0;\r\n        this.queries.forEach((q) => {\r\n          let queryFound = false;\r\n          Object.keys(i).forEach((k) => {\r\n            if (!this.internalKeys.includes(k) && i[k]) {\r\n              let entry = i[k];\r\n              let columnOptions = this.columns.find((c) => c.key === k);\r\n\r\n              if (typeof entry === \"object\" && columnOptions.sortKey)\r\n                entry = entry[columnOptions.sortKey];\r\n\r\n              if (entry.toString().toUpperCase().indexOf(q) > -1) {\r\n                queryFound = true;\r\n              }\r\n            }\r\n          });\r\n\r\n          if (!queryFound) found = false;\r\n        });\r\n        return found;\r\n      });\r\n    }\r\n  }\r\n\r\n  // Pagination\r\n\r\n  showPage() {\r\n    if (this.pagination > 0) {\r\n      let start = this.page * this.pagination;\r\n      let end = +start + +this.pagination;\r\n\r\n      this.itemsShown = this.itemsFiltered.slice(start, end);\r\n    } else {\r\n      this.itemsShown = this.itemsFiltered.slice();\r\n    }\r\n  }\r\n\r\n  updatePage(page) {\r\n    this.page = page - 1;\r\n    this.showPage();\r\n  }\r\n\r\n  // Handle Clicks\r\n\r\n  handleClick(item, i) {\r\n    if (item.expanded != null && i === 0) {\r\n      item.expanded = !item.expanded;\r\n      const i = this.expandedItems.indexOf(item.idx);\r\n      if (i === -1) this.expandedItems.push(item.idx);\r\n      else this.expandedItems.splice(item.idx, 1);\r\n    } else if (\r\n      this.myOptions &&\r\n      \"select\" in this.myOptions &&\r\n      !item.disabled &&\r\n      !item.strike\r\n    ) {\r\n      this.handleSelect(item);\r\n    } else if (item.clickable) {\r\n      this.action.emit(item);\r\n    }\r\n  }\r\n\r\n  handleSelect(item) {\r\n    if (this.myOptions.select != \"multi\") {\r\n      this.items.forEach((i) => {\r\n        if (i.idx === item.idx) {\r\n          if (item[\"selected\"] === true && this.myOptions.select == \"radio\") {\r\n            item[\"selected\"] = true;\r\n          } else {\r\n            item[\"selected\"] = !item[\"selected\"];\r\n          }\r\n        } else {\r\n          i[\"selected\"] = false;\r\n        }\r\n      });\r\n    } else {\r\n      this.items.forEach((i) => {\r\n        if (i.idx === item.idx) item[\"selected\"] = !item[\"selected\"];\r\n      });\r\n    }\r\n\r\n    this.parseItems();\r\n    this.sortTable();\r\n    this.search();\r\n    this.showPage();\r\n\r\n    this.select.emit(this.items.filter((i) => i.selected === true));\r\n  }\r\n\r\n  // Export\r\n\r\n  export = () => {\r\n    if (this.hasSub) {\r\n      this.exportWithSubs();\r\n      return;\r\n    }\r\n\r\n    let wb = xlsx.utils.book_new();\r\n    let ws = xlsx.utils.json_to_sheet(this.itemsFiltered);\r\n    xlsx.utils.book_append_sheet(wb, ws);\r\n    xlsx.writeFile(wb, `${this.title}.xls`);\r\n  };\r\n\r\n  exportWithSubs = () => {\r\n    let wb = xlsx.utils.book_new();\r\n    let ws = xlsx.utils.json_to_sheet(this.itemsFiltered);\r\n    xlsx.utils.book_append_sheet(wb, ws, this.title.substring(0, 31));\r\n\r\n    this.items.forEach((i, idx) => {\r\n      if (i.subTable) {\r\n        let myTitle = `(${idx + 1}) ${Object.entries(i)[1][1]} - ${\r\n          i.subTable.title\r\n        }`;\r\n        let ws = xlsx.utils.json_to_sheet(i.subTable.items);\r\n        xlsx.utils.book_append_sheet(wb, ws, myTitle.substring(0, 31));\r\n      }\r\n    });\r\n\r\n    xlsx.writeFile(wb, `${this.title}.xls`);\r\n  };\r\n\r\n  // ---------------\r\n  // Checks and Gets\r\n  // ---------------\r\n\r\n  tdClass(val, align) {\r\n    let classes = \"\";\r\n    if (val === \"\") classes = \"empty \";\r\n    return classes + align;\r\n  }\r\n\r\n  getType(val) {\r\n    if (typeof val === \"boolean\") {\r\n      return \"boolean\";\r\n    } else if (val instanceof Array) {\r\n      return \"array\";\r\n    }\r\n\r\n    return;\r\n  }\r\n\r\n  getSortIcon(key) {\r\n    let col = this.sortColumns.find((e) => e.key === key);\r\n    if (col) {\r\n      let dir = col.direction > 0 ? \"down\" : \"up\";\r\n      return `sort-${dir}`;\r\n    } else {\r\n      return \"sort\";\r\n    }\r\n  }\r\n\r\n  getSortIndex(val) {\r\n    let idx = this.sortColumns.findIndex((e) => e.key === val);\r\n    return idx;\r\n  }\r\n\r\n  hasTemplate(column) {\r\n    return column.template instanceof TemplateRef;\r\n  }\r\n\r\n  getTotal(column) {\r\n    let totalShown;\r\n    let total;\r\n\r\n    totalShown = this.itemsShown.reduce(\r\n      (prev, next) => prev + parseInt(next[column]),\r\n      0\r\n    );\r\n\r\n    totalShown =\r\n      \"\\u20AC \" +\r\n      totalShown.toLocaleString(\"nl-NL\", { minimumFractionDigits: 0 });\r\n\r\n    total = this.items.reduce((prev, next) => prev + parseInt(next[column]), 0);\r\n\r\n    total =\r\n      \"\\u20AC \" + total.toLocaleString(\"nl-NL\", { minimumFractionDigits: 0 });\r\n\r\n    if (total == totalShown) return totalShown;\r\n    else return `${totalShown} / ${total}`;\r\n  }\r\n\r\n  get isSoratable() {\r\n    return this.myOptions.sort === \"single\" || this.myOptions.sort === \"multi\";\r\n  }\r\n\r\n  titleData(item, key) {\r\n    let title = key;\r\n    if (![\"object\", \"array\"].includes(typeof item[key])) {\r\n      title = item[key];\r\n    }\r\n    return title;\r\n  }\r\n}\r\n","<div\r\n  class=\"table\"\r\n  [ngClass]=\"{\r\n    flush: myOptions.flush\r\n  }\"\r\n>\r\n  <div class=\"header\">\r\n    <h3 *ngIf=\"title\">{{ title }}</h3>\r\n    <div *ngIf=\"myOptions.search\" class=\"search\">\r\n      <div class=\"input\">\r\n        <input\r\n          type=\"text\"\r\n          (keyup)=\"setSearchQueries($event.target.value)\"\r\n          [ngClass]=\"{ filled: queries.length > 0 }\"\r\n        />\r\n        <label>Filter </label>\r\n        <div class=\"bar\"></div>\r\n        <div class=\"search-icon\">\r\n          <br-icon\r\n            style=\"regular\"\r\n            name=\"search\"\r\n            color=\"var(--primary-dark)\"\r\n          ></br-icon>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div *ngIf=\"myOptions.showTopRight\" class=\"top-right--content\">\r\n      <ng-content select=\"[topRight]\"></ng-content>\r\n    </div>\r\n  </div>\r\n\r\n  <table\r\n    [ngStyle]=\"{ gridTemplateColumns: columnWidths }\"\r\n    [ngClass]=\"{\r\n      sortable: isSoratable,\r\n      'mobile-table': myOptions.keepTableOnMobile\r\n    }\"\r\n  >\r\n    <thead *ngIf=\"myOptions.header\">\r\n      <tr>\r\n        <th\r\n          *ngFor=\"let col of myColumns\"\r\n          [ngClass]=\"col.align\"\r\n          [title]=\"col.title\"\r\n        >\r\n          <span class=\"title\">\r\n            {{ col.title }}\r\n          </span>\r\n          <span\r\n            *ngIf=\"isSoratable\"\r\n            class=\"sort\"\r\n            (mousedown)=\"toggleSort(col.key)\"\r\n            [ngClass]=\"{\r\n              sorted: getSortIndex(col.key) !== -1,\r\n              multi:\r\n                myOptions.sort === 'multi' &&\r\n                sortColumns.length > 1 &&\r\n                getSortIndex(col.key) !== -1\r\n            }\"\r\n          >\r\n            <span class=\"sort-button\">\r\n              <br-icon-button\r\n                type=\"duotone\"\r\n                [name]=\"getSortIcon(col.key)\"\r\n              ></br-icon-button>\r\n            </span>\r\n            <span class=\"circle\">{{ getSortIndex(col.key) + 1 }} </span>\r\n          </span>\r\n          <span\r\n            *ngIf=\"myOptions.resizable\"\r\n            class=\"resize-handle\"\r\n            (mousedown)=\"startResize($event)\"\r\n          ></span>\r\n        </th>\r\n      </tr>\r\n    </thead>\r\n\r\n    <tbody *ngIf=\"loading\">\r\n      <tr>\r\n        <div class=\"table--empty-state\">\r\n          <br-loader></br-loader>\r\n        </div>\r\n      </tr>\r\n    </tbody>\r\n\r\n    <tbody *ngIf=\"!items && !loading\">\r\n      <tr>\r\n        <div class=\"table--empty-state\">\r\n          <div class=\"icon\">\r\n            <br-icon name=\"chart-area\" style=\"duotone\"></br-icon>\r\n          </div>\r\n          {{ emptyStateMessage }}\r\n        </div>\r\n      </tr>\r\n    </tbody>\r\n\r\n    <tbody *ngIf=\"items\">\r\n      <tr\r\n        *ngFor=\"let item of itemsShown; trackBy: track\"\r\n        [ngClass]=\"{\r\n          expandable: item.dropdown || item.subTable,\r\n          expanded: item.expanded,\r\n          selected: item.selected,\r\n          disabled: item.disabled,\r\n          strike: item.strike,\r\n          clickable: item.clickable\r\n        }\"\r\n      >\r\n        <td\r\n          *ngFor=\"let col of myColumns; let i = index\"\r\n          [title]=\"titleData(item, col.key)\"\r\n          [ngClass]=\"tdClass(item[col.key], col.align)\"\r\n          (click)=\"handleClick(item, i)\"\r\n        >\r\n          <div class=\"caret\" *ngIf=\"i === 0 && hasSub\">\r\n            <br-icon name=\"angle-right\" style=\"solid\"></br-icon>\r\n          </div>\r\n          <span class=\"mobile-label\" [title]=\"col.title\">{{ col.title }}</span>\r\n          <ng-container\r\n            *ngIf=\"hasTemplate(col)\"\r\n            [ngTemplateOutlet]=\"col.template\"\r\n            [ngTemplateOutletContext]=\"{ data: item[col.key] }\"\r\n          ></ng-container>\r\n\r\n          <ng-container\r\n            *ngIf=\"!hasTemplate(col)\"\r\n            [ngSwitch]=\"getType(item[col.key])\"\r\n          >\r\n            <ng-container *ngSwitchCase=\"'boolean'\">\r\n              <br-icon\r\n                *ngIf=\"item[col.key]\"\r\n                style=\"regular\"\r\n                name=\"check\"\r\n                class=\"success\"\r\n              ></br-icon>\r\n\r\n              <br-icon\r\n                *ngIf=\"!item[col.key]\"\r\n                style=\"regular\"\r\n                name=\"times\"\r\n                class=\"error\"\r\n              ></br-icon>\r\n            </ng-container>\r\n            <ng-container *ngSwitchDefault>\r\n              {{ item[col.key] }}\r\n            </ng-container>\r\n          </ng-container>\r\n        </td>\r\n        <div\r\n          [smoothHeight]=\"item.expanded\"\r\n          [ngStyle]=\"{ gridColumnEnd: 'span ' + myColumns.length }\"\r\n        >\r\n          <div\r\n            class=\"expand\"\r\n            *ngIf=\"(item.dropdown || item.subTable) && item.expanded\"\r\n          >\r\n            <br-data-table\r\n              *ngIf=\"item.subTable\"\r\n              [title]=\"item.subTable.title\"\r\n              [options]=\"item.subTable.options\"\r\n              [columns]=\"item.subTable.columns\"\r\n              [tableId]=\"tableId + '-sub'\"\r\n              [items]=\"item.subTable.items\"\r\n            ></br-data-table>\r\n\r\n            <ng-container\r\n              *ngIf=\"item.dropdown\"\r\n              [ngTemplateOutlet]=\"dropdown\"\r\n              [ngTemplateOutletContext]=\"{ data: item.dropdown }\"\r\n            ></ng-container>\r\n          </div>\r\n        </div>\r\n        <br-button\r\n          class=\"mobile-click-label\"\r\n          *ngIf=\"\r\n            !myOptions.keepTableOnMobile &&\r\n            item.clickable &&\r\n            myOptions.mobileClickLabel\r\n          \"\r\n          type=\"primary\"\r\n          icon=\"angle-right\"\r\n          rounded=\"both\"\r\n          (click)=\"handleClick(item, i)\"\r\n          >{{ myOptions.mobileClickLabel }}</br-button\r\n        >\r\n      </tr>\r\n\r\n      <tr *ngIf=\"myOptions.total\" class=\"total\">\r\n        <td\r\n          *ngFor=\"let col of myColumns; let i = index\"\r\n          [ngClass]=\"tdClass('', col.align)\"\r\n        >\r\n          <ng-container *ngIf=\"col.key === myOptions.total.copyColumn\">{{\r\n            myOptions.total.copy\r\n          }}</ng-container>\r\n\r\n          <ng-container *ngIf=\"myOptions.total.totals.includes(col.key)\">\r\n            {{ getTotal(col.key) }}\r\n          </ng-container>\r\n        </td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n  <div *ngIf=\"pagination > 0 || exportable\" class=\"bottom-row\">\r\n    <span class=\"left\">{{ itemsFiltered.length }} resultaten</span>\r\n\r\n    <span class=\"center\">\r\n      <br-pagination\r\n        *ngIf=\"pagination > 0\"\r\n        [items]=\"itemsFiltered.length\"\r\n        [show]=\"pagination\"\r\n        (action)=\"updatePage($event)\"\r\n      ></br-pagination>\r\n    </span>\r\n\r\n    <br-flex class=\"right\" spacing=\"var(--regular)\" justify=\"end\">\r\n      <ng-content select=\"[buttons]\"> </ng-content>\r\n      <br-button *ngIf=\"exportable\" (click)=\"export()\" icon=\"download\">{{\r\n        exportCopy\r\n      }}</br-button>\r\n    </br-flex>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  ViewChild,\r\n  Output,\r\n  EventEmitter\r\n} from \"@angular/core\";\r\nimport { PopoverComponent } from \"../popover/popover.component\";\r\n\r\n@Component({\r\n  selector: \"br-date-picker\",\r\n  templateUrl: \"./date-picker.component.html\",\r\n  styleUrls: [\"./date-picker.component.scss\"]\r\n})\r\nexport class DatePickerComponent implements OnInit {\r\n  @Input() value: any;\r\n  @Input() minYear: number = 1920;\r\n  @Input() maxYear: number = 2005;\r\n  @Input() label: string = \"Date\";\r\n  @Input() placeholder: any = { day: \"DD\", month: \"MM\", year: \"YYYY\" };\r\n  @Input() prompts: string[] = [\r\n    \"Selecteer een dag\",\r\n    \"Selecteer een maand\",\r\n    \"Selecteer een jaar\"\r\n  ];\r\n  @Input() tense: string = \"past\";\r\n  @Input() messages = {\r\n    pattern: \"Dit is geen geldige datum (DD-MM-JJJJ)\"\r\n  };\r\n  @Input() fixed: boolean = false;\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"popover\") popover: PopoverComponent;\r\n  regex = /^(((0[1-9]|[12][0-9]|3[01])[- /.](0[13578]|1[02])|(0[1-9]|[12][0-9]|30)[- /.](0[469]|11)|(0[1-9]|1\\d|2[0-8])[- /.]02)[- /.]\\d{4}|29[- /.]02[- /.](\\d{2}(0[48]|[2468][048]|[13579][26])|([02468][048]|[1359][26])00))$/;\r\n\r\n  date: string;\r\n\r\n  day: string;\r\n  month: string;\r\n  year: string;\r\n  days: string[] = [\r\n    \"01\",\r\n    \"02\",\r\n    \"03\",\r\n    \"04\",\r\n    \"05\",\r\n    \"06\",\r\n    \"07\",\r\n    \"08\",\r\n    \"09\",\r\n    \"10\",\r\n    \"11\",\r\n    \"12\",\r\n    \"13\",\r\n    \"14\",\r\n    \"15\",\r\n    \"16\",\r\n    \"17\",\r\n    \"18\",\r\n    \"19\",\r\n    \"20\",\r\n    \"21\",\r\n    \"22\",\r\n    \"23\",\r\n    \"24\",\r\n    \"25\",\r\n    \"26\",\r\n    \"27\",\r\n    \"28\",\r\n    \"29\",\r\n    \"30\",\r\n    \"31\"\r\n  ];\r\n\r\n  calDay: number;\r\n  calMonth: number;\r\n  calYear: number;\r\n  calDays: string[];\r\n\r\n  stage: number = 0;\r\n\r\n  @Input() months: string[] = [\r\n    \"Januari\",\r\n    \"Februari\",\r\n    \"Maart\",\r\n    \"April\",\r\n    \"Mei\",\r\n    \"Juni\",\r\n    \"Juli\",\r\n    \"Augustus\",\r\n    \"September\",\r\n    \"Oktober\",\r\n    \"November\",\r\n    \"December\"\r\n  ];\r\n\r\n  @Input() weekdays: string[] = [\"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zo\"];\r\n\r\n  get years() {\r\n    let temp: number[] = [];\r\n    for (var i = this.maxYear; i >= this.minYear; i--) {\r\n      temp.push(i);\r\n    }\r\n\r\n    return temp;\r\n  }\r\n\r\n  get stageStyle() {\r\n    let val = { transform: \"translateX(\" + this.stage * -33.33 + \"%)\" };\r\n    return val;\r\n  }\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {\r\n    if (this.tense !== \"past\") {\r\n      this.setCalFromDate(new Date());\r\n    }\r\n\r\n    if (this.value) {\r\n      this.setFromValue(this.value);\r\n    }\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.value && this.regex.test(this.value)) {\r\n      this.setFromValue(this.value);\r\n    }\r\n  }\r\n\r\n  inputBlur() {\r\n    this.setFromValue();\r\n  }\r\n\r\n  keyPressed() {\r\n    this.popover.invokeClose();\r\n  }\r\n\r\n  setFromValue(val = \"\") {\r\n    // if (!val) val = this.dateForm.get(\"date\").value;\r\n    const valArray = val.split(\"/\");\r\n\r\n    if (valArray[2]) {\r\n      this.year = valArray[2];\r\n    } else {\r\n      this.year = null;\r\n      this.stage = 2;\r\n    }\r\n\r\n    if (valArray[1]) {\r\n      this.month = valArray[1];\r\n    } else {\r\n      this.month = null;\r\n      this.stage = 1;\r\n    }\r\n\r\n    if (valArray[0]) {\r\n      this.day = valArray[0];\r\n    } else {\r\n      this.day = null;\r\n      this.stage = 0;\r\n    }\r\n\r\n    let date = new Date(\r\n      parseInt(this.year),\r\n      parseInt(this.month),\r\n      parseInt(this.day)\r\n    );\r\n    let now = new Date();\r\n\r\n    if (this.tense == \"future\" && date < now) this.setError(0);\r\n    if (this.tense == \"recent\" && date > now) this.setError(1);\r\n\r\n    this.setDate(true);\r\n  }\r\n\r\n  setCalFromDate(date: Date) {\r\n    this.calYear = date.getFullYear();\r\n    this.calMonth = date.getMonth();\r\n    this.calDay = date.getDay();\r\n    this.loadMonth(this.calMonth, this.calYear);\r\n  }\r\n\r\n  setDate(blur = false) {\r\n    this.date = this.stringDate(this.day, this.month, this.year);\r\n\r\n    // this.dateForm.get(\"date\").setValue(this.date);\r\n    if (blur) this.OnBlur();\r\n  }\r\n\r\n  stringDate(day, month, year) {\r\n    let date = \"\";\r\n\r\n    if (day && !isNaN(parseInt(day))) {\r\n      if (parseInt(day) < 10) date += \"0\";\r\n      date += parseInt(day) + \"/\";\r\n    } else {\r\n      date += this.placeholder.day + \"/\";\r\n    }\r\n\r\n    if (month && !isNaN(parseInt(month))) {\r\n      if (parseInt(month) < 10) date += \"0\";\r\n      date += parseInt(month) + \"/\";\r\n    } else {\r\n      date += this.placeholder.month + \"/\";\r\n    }\r\n\r\n    if (year) {\r\n      date += year;\r\n    } else {\r\n      date += this.placeholder.year;\r\n    }\r\n\r\n    return date;\r\n  }\r\n\r\n  setDay(d) {\r\n    this.day = d + 1;\r\n    this.setDate(true);\r\n    this.stage = 1;\r\n  }\r\n\r\n  setMonth(d) {\r\n    this.month = d + 1;\r\n    this.setDate(true);\r\n    this.stage = 2;\r\n  }\r\n\r\n  setYear(d) {\r\n    this.year = d;\r\n    this.setDate(true);\r\n    this.popover.invokeClose();\r\n    setTimeout(() => (this.stage = 0), 500);\r\n  }\r\n\r\n  disabledMonths(m) {\r\n    if (m == 1 && (this.day == \"30\" || this.day == \"31\")) {\r\n      return { disabled: true };\r\n    }\r\n\r\n    if ([3, 5, 8, 10, 12].includes(m) && this.day == \"31\") {\r\n      return { disabled: true };\r\n    }\r\n  }\r\n\r\n  disabledYears(y) {\r\n    if (this.month == \"02\" && this.day == \"29\") {\r\n      if (y % 4 == 0 && (y % 100 != 0 || y % 400 == 0)) {\r\n        return { disabled: false };\r\n      }\r\n      return { disabled: true };\r\n    }\r\n  }\r\n\r\n  OnBlur() {\r\n    if ((this.day, this.month, this.year)) {\r\n      if (this.day !== \"DD\" && this.month !== \"MM\" && this.year !== \"YYYY\") {\r\n        this.onBlur.emit({\r\n          day: this.day,\r\n          month: this.month,\r\n          year: this.year,\r\n          string: this.date\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  // Stuff for recent, present & future tense\r\n\r\n  loadMonth(month, year) {\r\n    let dates = [];\r\n    let date = new Date(year, month);\r\n\r\n    date.setDate(date.getDate() - this.getDay(date));\r\n\r\n    while (date.getMonth() != month) {\r\n      dates.push({\r\n        day: date.getDate(),\r\n        month: month - 1,\r\n        year: year,\r\n        string: this.stringDate(date.getDate(), month, year)\r\n      });\r\n      date.setDate(date.getDate() + 1);\r\n    }\r\n\r\n    while (date.getMonth() == month) {\r\n      dates.push({\r\n        day: date.getDate(),\r\n        month: month,\r\n        year: year,\r\n        string: this.stringDate(date.getDate(), month + 1, year)\r\n      });\r\n      date.setDate(date.getDate() + 1);\r\n    }\r\n\r\n    for (let i = this.getDay(date); i < 7; i++) {\r\n      dates.push({\r\n        day: date.getDate(),\r\n        month: month + 1,\r\n        year: year,\r\n        string: this.stringDate(date.getDate(), month + 2, year)\r\n      });\r\n      date.setDate(date.getDate() + 1);\r\n    }\r\n\r\n    this.calMonth = month;\r\n    this.calYear = year;\r\n\r\n    this.calDays = dates;\r\n  }\r\n\r\n  nextMonth() {\r\n    let month = this.calMonth;\r\n    month += 1;\r\n    let year = month > 11 ? 1 : 0;\r\n    month %= 12;\r\n    this.loadMonth(month, this.calYear + year);\r\n  }\r\n\r\n  previousMonth() {\r\n    let month = this.calMonth;\r\n    month -= 1;\r\n    let year = month < 0 ? -1 : 0;\r\n    month = month < 0 ? 11 : month;\r\n    this.loadMonth(month, this.calYear + year);\r\n  }\r\n\r\n  setCalDate(day) {\r\n    this.day = day.day;\r\n\r\n    if (day.month > 11) {\r\n      this.month = \"1\";\r\n      day.month = 0;\r\n      day.year++;\r\n    } else if (day.month < 0) {\r\n      this.month = \"12\";\r\n      day.month = 11;\r\n      day.year--;\r\n    } else {\r\n      this.month = day.month + 1;\r\n    }\r\n\r\n    this.setYear(day.year);\r\n    this.loadMonth(day.month, day.year);\r\n  }\r\n\r\n  getDay(date) {\r\n    let day = date.getDay();\r\n    if (day == 0) day = 7;\r\n    return day - 1;\r\n  }\r\n\r\n  isCurrent(day, month, year) {\r\n    let date = new Date();\r\n\r\n    if (\r\n      date.getDate() == day &&\r\n      date.getMonth() == month &&\r\n      date.getFullYear() == year\r\n    ) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  isFuture(day, month, year) {\r\n    let now = new Date();\r\n    let date = new Date(year, month, day);\r\n    return date > now;\r\n  }\r\n\r\n  isFutureMonth() {\r\n    let now = new Date();\r\n    let start = new Date(now.getFullYear(), now.getMonth(), 1);\r\n    let date = new Date(this.calYear, this.calMonth);\r\n    return date >= start;\r\n  }\r\n\r\n  isRecent(day, month, year) {\r\n    let now = new Date();\r\n    let date = new Date(year, month, day);\r\n    return date < now;\r\n  }\r\n\r\n  isRecentMonth() {\r\n    let now = new Date();\r\n    let start = new Date(now.getFullYear(), now.getMonth(), 1);\r\n    let date = new Date(this.calYear, this.calMonth);\r\n    return date < start;\r\n  }\r\n\r\n  setError(number) {\r\n    // Something something, <br-input> error state\r\n  }\r\n}\r\n","<br-popover\r\n  position=\"bottom\"\r\n  clickToOpen=\"true\"\r\n  parentFullWidth=\"true\"\r\n  [fixed]=\"fixed\"\r\n  #popover\r\n>\r\n  <!-- <form [formGroup]=\"dateForm\" class=\"form\"> -->\r\n  <br-input\r\n    [label]=\"label\"\r\n    [value]=\"date\"\r\n    name=\"date\"\r\n    isAutoCompleteOff=\"true\"\r\n    (onBlur)=\"inputBlur()\"\r\n    (keypress)=\"keyPressed()\"\r\n    [messages]=\"messages\"\r\n  ></br-input>\r\n  <!-- </form> -->\r\n\r\n  <ng-container *ngIf=\"tense === 'past'\" content>\r\n    <div class=\"date-picker\">\r\n      <div class=\"stages\" [ngStyle]=\"stageStyle\">\r\n        <div class=\"stage stage-1\">\r\n          <h5>{{ prompts[0] }}</h5>\r\n          <div class=\"options\">\r\n            <div\r\n              *ngFor=\"let day of days; let i = index\"\r\n              class=\"option\"\r\n              (click)=\"setDay(i)\"\r\n            >\r\n              {{ i + 1 }}\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"stage stage-2\">\r\n          <h5>{{ prompts[1] }}</h5>\r\n          <div class=\"options\">\r\n            <div\r\n              *ngFor=\"let month of months; let i = index\"\r\n              class=\"option\"\r\n              (click)=\"setMonth(i)\"\r\n              [ngClass]=\"disabledMonths(i)\"\r\n            >\r\n              {{ month }}\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"stage stage-3\">\r\n          <h5>{{ prompts[2] }}</h5>\r\n          <div class=\"options\">\r\n            <div\r\n              *ngFor=\"let year of years; let i = index\"\r\n              class=\"option\"\r\n              [ngClass]=\"disabledYears(year)\"\r\n              (click)=\"setYear(year)\"\r\n            >\r\n              {{ year }}\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n\r\n  <ng-container *ngIf=\"tense !== 'past'\" content>\r\n    <div\r\n      class=\"date-picker week\"\r\n      [ngClass]=\"{\r\n        'future-tense': tense == 'future',\r\n        'recent-tense': tense == 'recent',\r\n        'future-month': isFutureMonth(),\r\n        'recent-month': isRecentMonth()\r\n      }\"\r\n    >\r\n      <div class=\"top-row\">\r\n        <br-icon-button\r\n          name=\"caret-left\"\r\n          style=\"solid\"\r\n          class=\"previous\"\r\n          (click)=\"previousMonth()\"\r\n        ></br-icon-button>\r\n        <h5>{{ months[calMonth] }} {{ calYear }}</h5>\r\n        <br-icon-button\r\n          name=\"caret-right\"\r\n          style=\"solid\"\r\n          class=\"next\"\r\n          (click)=\"nextMonth()\"\r\n        ></br-icon-button>\r\n      </div>\r\n      <div class=\"options calendar\">\r\n        <div class=\"weekdays\">\r\n          <div *ngFor=\"let day of weekdays\" class=\"day\">{{ day }}</div>\r\n        </div>\r\n\r\n        <div\r\n          *ngFor=\"let day of calDays\"\r\n          class=\"option\"\r\n          (click)=\"setCalDate(day)\"\r\n          [ngClass]=\"{\r\n            disabled: calMonth != day.month,\r\n            clickable: calMonth != day.month,\r\n            current: isCurrent(day.day, day.month, day.year),\r\n            future: isFuture(day.day, day.month, day.year),\r\n            recent: isRecent(day.day, day.month, day.year),\r\n            chosen: day.string === date\r\n          }\"\r\n        >\r\n          {{ day.day }}\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n</br-popover>\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-data-well\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./data-well.component.html\",\r\n  styleUrls: [\"./data-well.component.scss\"]\r\n})\r\nexport class DataWellComponent implements OnInit {\r\n  @Input() title: string;\r\n  @Input() data: Array<number>;\r\n  @Input() graph: boolean = true;\r\n  @Input() donut: boolean = false;\r\n  @Input() elevated: boolean = true;\r\n  @Input() metric: string;\r\n  @Input() change: string;\r\n  @Input() changeColor: string;\r\n  @Input() clickable: boolean;\r\n  @Input() helpText: string;\r\n\r\n  // Donut defaults\r\n  segment: string;\r\n  dasharray: number;\r\n  centerX = 500;\r\n  centerY = 500;\r\n  radius = 450;\r\n\r\n  ngOnInit() {\r\n    if (this.graph && this.donut) this.calculateDonutSegment();\r\n  }\r\n\r\n  dataLine() {\r\n    if (!this.data) return \"M 0 0 Z\";\r\n    const deltaX = 980 / (this.data.length - 1);\r\n    const min = Math.min(...this.data);\r\n    const max = Math.max(...this.data);\r\n\r\n    let line = \"M 10 \";\r\n    line += this.remap(this.data[0], min, max) + \" L \";\r\n\r\n    for (var i = 1; i < this.data.length; i++) {\r\n      line += `${i * deltaX + 10} ${this.remap(this.data[i], min, max)} `;\r\n    }\r\n\r\n    return line;\r\n  }\r\n\r\n  remap(val, min, max) {\r\n    return 900 - Math.round((800 * (val - min)) / (max - min));\r\n  }\r\n\r\n  // Donut stuff\r\n  calculateDonutSegment() {\r\n    let data = this.data[0];\r\n    if (data >= this.data[1]) data = this.data[1] - 0.00001; // -0.00001 so that the segment is smaller than the whole\r\n    let angle = (data / this.data[1]) * 360;\r\n    this.segment = this.describeArc(0, angle);\r\n    this.dasharray = this.calculateDashArrary(angle);\r\n    console.log(this.segment, this.dasharray);\r\n  }\r\n\r\n  describeArc(startAngle, endAngle) {\r\n    let start = this.polarToCartesian(startAngle + 180);\r\n    let end = this.polarToCartesian(endAngle + 180);\r\n\r\n    let sweep = endAngle - startAngle <= 180 ? \"0\" : \"1\";\r\n\r\n    let line = `M ${start.x} ${start.y} A ${this.radius} ${this.radius} 0 ${sweep} 1 ${end.x} ${end.y} `;\r\n    this.calculateDashArrary(endAngle - startAngle);\r\n    return line;\r\n  }\r\n\r\n  polarToCartesian(angle) {\r\n    let angleInRadians = this.angleInRadians(angle);\r\n\r\n    return {\r\n      x: this.centerX + this.radius * Math.cos(angleInRadians),\r\n      y: this.centerY + this.radius * Math.sin(angleInRadians)\r\n    };\r\n  }\r\n\r\n  angleInRadians(angle) {\r\n    return ((angle + 90) * Math.PI) / 180;\r\n  }\r\n\r\n  calculateDashArrary(angle) {\r\n    return (2 / 360) * angle * Math.PI * this.radius;\r\n  }\r\n}\r\n","<div\r\n  class=\"data-well\"\r\n  [ngClass]=\"{ elevated: elevated, clickable: clickable, donut: donut }\"\r\n>\r\n  <h5 *ngIf=\"title\">{{ title }}</h5>\r\n\r\n  <div class=\"data-container\">\r\n    <div\r\n      class=\"donut-graph-container\"\r\n      *ngIf=\"graph && donut && data.length > 1\"\r\n    >\r\n      <svg class=\"donut-graph\">\r\n        <svg viewBox=\"0 0 1000 1000\" preserveAspectRatio=\"none\">\r\n          <svg:circle class=\"circle\" cx=\"500\" cy=\"500\" r=\"450\" />\r\n          <svg:path\r\n            class=\"circle circle-data\"\r\n            [attr.d]=\"segment\"\r\n            [ngStyle]=\"{\r\n              'stroke-dasharray': dasharray,\r\n              'stroke-dashoffset': dasharray\r\n            }\"\r\n          />\r\n        </svg>\r\n      </svg>\r\n    </div>\r\n\r\n    <div *ngIf=\"data\" class=\"data\">\r\n      <ng-container *ngIf=\"donut\">{{ data[0] }}/</ng-container\r\n      >{{ data[data.length - 1] }}\r\n      {{ metric }}\r\n    </div>\r\n\r\n    <svg *ngIf=\"graph && !donut && data.length > 1\" class=\"graph\">\r\n      <svg viewBox=\"0 0 1000 1000\" preserveAspectRatio=\"none\">\r\n        <svg:path class=\"line\" [attr.d]=\"dataLine()\" />\r\n      </svg>\r\n    </svg>\r\n  </div>\r\n\r\n  <div class=\"meta-container\">\r\n    <div *ngIf=\"change\" class=\"change\" [ngStyle]=\"{ color: changeColor }\">\r\n      {{ change }}\r\n    </div>\r\n    <div *ngIf=\"helpText\" class=\"help-text\">{{ helpText }}</div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-grid\",\r\n  templateUrl: \"./grid.component.html\",\r\n  styleUrls: [\"./grid.component.scss\"]\r\n})\r\nexport class GridComponent implements OnInit {\r\n  @Input() columns: string = \"1fr\";\r\n  @Input() rows: string;\r\n  @Input() columnGap: string;\r\n  @Input() rowGap: string;\r\n  @Input() mobileColumns: string;\r\n  @Input() mobileRows: string;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div\r\n  class=\"grid\"\r\n  [ngStyle]=\"{\r\n    'grid-template-columns': columns,\r\n    'grid-template-rows': rows,\r\n    'grid-column-gap': columnGap,\r\n    'grid-row-gap': rowGap\r\n  }\"\r\n>\r\n  <div\r\n    class=\"mobile\"\r\n    [ngStyle]=\"{\r\n      'grid-template-columns': mobileColumns,\r\n      'grid-template-rows': mobileRows,\r\n      'grid-column-gap': columnGap,\r\n      'grid-row-gap': rowGap\r\n    }\"\r\n  >\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ViewChild,\r\n  AfterViewInit,\r\n  ContentChild,\r\n  SimpleChanges,\r\n  OnChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-filter\",\r\n  templateUrl: \"./filter.component.html\",\r\n  styleUrls: [\"./filter.component.scss\"],\r\n})\r\nexport class FilterComponent implements AfterViewInit, OnChanges {\r\n  @Input() template: TemplateRef<any>;\r\n  @Input() items: Array<any>;\r\n  @Input() filters: any;\r\n  @Input() updateToggle: boolean;\r\n\r\n  @ViewChild(\"itemContainer\", { read: ViewContainerRef })\r\n  itemContainer: ViewContainerRef;\r\n\r\n  constructor() {}\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => this.filter(), 10);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    setTimeout(() => this.filter(), 10);\r\n  }\r\n\r\n  filter() {\r\n    if (this.itemContainer) this.itemContainer.clear();\r\n\r\n    this.items.forEach((item) => {\r\n      Object.keys(item).forEach((key) => {\r\n        this.filters.forEach((filter) => {\r\n          if (filter.key === key && filter.check(item))\r\n            this.itemContainer.createEmbeddedView(this.template, {\r\n              data: item,\r\n            });\r\n        });\r\n      });\r\n    });\r\n  }\r\n}\r\n","<br-collapse title=\"Filters\">\r\n  <br-grid columns=\"1fr 1fr 1fr 1fr\" columnGap=\"var(--regular)\">\r\n    <ng-content select=\"[bar]\"> </ng-content>\r\n  </br-grid>\r\n</br-collapse>\r\n\r\n<br-grid\r\n  class=\"filter\"\r\n  columns=\"1fr 1fr\"\r\n  columnGap=\"var(--big)\"\r\n  rowGap=\"var(--big)\"\r\n>\r\n  <ng-container #itemContainer></ng-container>\r\n</br-grid>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-flex-item\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./flex-item.component.html\",\r\n  styleUrls: [\"./flex-item.component.scss\"]\r\n})\r\nexport class FlexItemComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","<div class=\"flex-item\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-footer\",\r\n  templateUrl: \"./footer.component.html\",\r\n  styleUrls: [\"./footer.component.scss\"],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n  @Input() copyright: string;\r\n  @Input() hideCopyright: boolean;\r\n  @Input() realtech: boolean;\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n\r\n  currentYear(): string {\r\n    let year = new Date().getFullYear();\r\n    return year + \"\";\r\n  }\r\n}\r\n","<div class=\"footer\">\r\n  <div class=\"column\"><ng-content [select]=\"column - 1\"></ng-content></div>\r\n  <div class=\"column\"><ng-content [select]=\"column - 2\"></ng-content></div>\r\n  <div class=\"column\"><ng-content [select]=\"column - 3\"></ng-content></div>\r\n  <div class=\"column\"><ng-content [select]=\"column - 4\"></ng-content></div>\r\n  <div *ngIf=\"realtech\" class=\"column\">\r\n    <h4>Realtech / maklr.</h4>\r\n    <p>\r\n      Wij zijn een jonge innovatieve organisatie met als doel de vastgoedbranche\r\n      in Nederland te helpen met efficiënt ontwikkelen, verkopen en verhuren.\r\n      Gevestigd in Naaldwijk en vanuit hier werkt ons enthousiaste en\r\n      talentvolle team iedere dag aan nieuwe producten. Iedere beslissing die we\r\n      nemen is gebaseerd op data. Wij houden namelijk van data. Dit voeren we\r\n      door in onze producten, diensten en marketing.\r\n    </p>\r\n  </div>\r\n  <div *ngIf=\"realtech\" class=\"column double\">\r\n    <div>\r\n      <h4>Contact</h4>\r\n\r\n      <p>\r\n        <br-icon name=\"phone-alt\" style=\"solid\"></br-icon> 085 130 74 82<br />\r\n        <br-icon name=\"envelope\" style=\"solid\"></br-icon>\r\n        <a href=\"mailto:info@real-tech.nl\"> info@real-tech.nl</a>\r\n      </p>\r\n      <p>\r\n        Tiendoffice<br />\r\n        Tiendweg 2-c<br />\r\n        2671 SB Naaldwijk<br />\r\n      </p>\r\n    </div>\r\n\r\n    <div>\r\n      <h4>Social Media</h4>\r\n      <a class=\"block\" href=\"https://www.linkedin.com/company/realtech-nl/\"\r\n        ><i class=\"fab fa-linkedin\"></i> LinkedIn</a\r\n      >\r\n      <a class=\"block\" href=\"https://www.facebook.com/realtechnl/\"\r\n        ><i class=\"fab fa-facebook-square\"></i> Facebook</a\r\n      >\r\n    </div>\r\n  </div>\r\n\r\n  <h6 *ngIf=\"!hideCopyright\" class=\"copyright\">\r\n    {{ copyright ? copyright : \"Realtech Services B.V. © 2018 -\" }}\r\n    {{ currentYear() }}\r\n  </h6>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  SimpleChanges,\r\n  OnChanges\r\n} from \"@angular/core\";\r\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\r\nimport flags from \"./flags.json\";\r\n\r\n@Component({\r\n  selector: \"br-flag\",\r\n  templateUrl: \"./flag.component.html\",\r\n  styleUrls: [\"./flag.component.scss\"]\r\n})\r\nexport class FlagComponent implements OnInit, OnChanges {\r\n  @Input() country: string;\r\n  @Input() size: string;\r\n\r\n  test: string;\r\n\r\n  svg: SafeHtml;\r\n\r\n  constructor(private sanitizer: DomSanitizer) {}\r\n\r\n  ngOnInit() {\r\n    this.svg = this.sanitizer.bypassSecurityTrustHtml(\r\n      flags[this.country.toLowerCase()]\r\n    );\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    this.svg = this.sanitizer.bypassSecurityTrustHtml(\r\n      flags[this.country.toLowerCase()]\r\n    );\r\n  }\r\n}\r\n","<i class=\"flag-icon\" [innerHtml]=\"svg\" [ngClass]=\"size\"></i>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'br-flag-us',\r\n  templateUrl: './us.svg',\r\n})\r\nexport class FlagUsComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"flag-icon-css-us\" viewBox=\"0 0 512 512\">\r\n  <g fill-rule=\"evenodd\">\r\n    <g stroke-width=\"1pt\">\r\n      <path fill=\"#bd3d44\" d=\"M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z\" transform=\"scale(3.9385)\"/>\r\n      <path fill=\"#fff\" d=\"M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z\" transform=\"scale(3.9385)\"/>\r\n    </g>\r\n    <path fill=\"#192f5d\" d=\"M0 0h98.8v70H0z\" transform=\"scale(3.9385)\"/>\r\n    <path fill=\"#fff\" d=\"M8.2 3l1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 63.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z\" transform=\"scale(3.9385)\"/>\r\n  </g>\r\n</svg>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-hero\",\r\n  templateUrl: \"./hero.component.html\",\r\n  styleUrls: [\"./hero.component.scss\"]\r\n})\r\nexport class HeroComponent {\r\n  @Input() full: boolean;\r\n  @Input() small: boolean;\r\n  @Input() scrolls: boolean;\r\n  @Input() image: string;\r\n  @Input() colorize: boolean = true;\r\n  @Input() backgroundColor: string;\r\n\r\n  @Input() layout: string;\r\n\r\n  distance: number;\r\n  distanceToGo: number;\r\n  speed: number;\r\n  scrolling: any;\r\n\r\n  get background() {\r\n    if (!this.image) return null;\r\n    return `url(${this.image})`;\r\n  }\r\n\r\n  // scrollDown = () => {\r\n  //   document.getElementById(\"hero\").scrollIntoView({\r\n  //     behavior: \"smooth\"\r\n  //   });\r\n  // };\r\n\r\n  easeInCubic = function(t) {\r\n    return t * t * t;\r\n  };\r\n\r\n  scrollToElem = (\r\n    start,\r\n    stamp,\r\n    duration,\r\n    scrollEndElemTop,\r\n    startScrollOffset\r\n  ) => {\r\n    //debugger;\r\n    const runtime = stamp - start;\r\n    let progress = runtime / duration;\r\n    const ease = this.easeInCubic(progress);\r\n\r\n    progress = Math.min(progress, 1);\r\n\r\n    window.scroll(0, startScrollOffset + scrollEndElemTop * ease);\r\n\r\n    if (runtime < duration) {\r\n      requestAnimationFrame(() => {\r\n        const stamp = new Date().getTime();\r\n        this.scrollToElem(\r\n          start,\r\n          stamp,\r\n          duration,\r\n          scrollEndElemTop,\r\n          startScrollOffset\r\n        );\r\n      });\r\n    }\r\n  };\r\n\r\n  scrollDown = () => {\r\n    const anim = requestAnimationFrame(() => {\r\n      const stamp = new Date().getTime();\r\n      const duration = 400;\r\n      const start = stamp;\r\n\r\n      const rect = document.getElementById(\"hero\").getBoundingClientRect();\r\n      const startScrollOffset = window.pageYOffset;\r\n\r\n      const scrollEndElemTop = rect.top + rect.height - 48;\r\n\r\n      this.scrollToElem(\r\n        start,\r\n        stamp,\r\n        duration,\r\n        scrollEndElemTop,\r\n        startScrollOffset\r\n      );\r\n      // scrollToElem(scrollEndElemTop);\r\n    });\r\n  };\r\n\r\n  // scrollDown = () => {\r\n  //   let rect = document.getElementById(\"hero\").getBoundingClientRect();\r\n  //   let target = rect.top + rect.height - 48;\r\n  //   this.distance = target - document.documentElement.scrollTop;\r\n  //   this.distanceToGo = this.distance;\r\n  //   this.speed = 1;\r\n  //   this.scrolling = setInterval(this.scroll, 0.1);\r\n  // };\r\n  //\r\n  // scroll = () => {\r\n  //   if (this.distanceToGo < this.distance / 2) {\r\n  //     this.speed -= 1;\r\n  //   } else {\r\n  //     this.speed += 1;\r\n  //   }\r\n  //   this.distanceToGo -= this.speed;\r\n  //\r\n  //   window.scrollTo(0, document.documentElement.scrollTop + this.speed);\r\n  //   if (this.distanceToGo < 0) {\r\n  //     clearInterval(this.scrolling);\r\n  //   }\r\n  // };\r\n}\r\n","<div\r\n  id=\"hero\"\r\n  class=\"hero\"\r\n  [ngClass]=\"{\r\n    full: full,\r\n    small: small,\r\n    colorize: colorize,\r\n    'layout-left': layout === 'left'\r\n  }\"\r\n  [ngStyle]=\"{ 'background-color': backgroundColor }\"\r\n>\r\n  <div class=\"image\" [ngStyle]=\"{ 'background-image': background }\"></div>\r\n  <div\r\n    class=\"content\"\r\n    [ngClass]=\"{\r\n      colorize: colorize\r\n    }\"\r\n  >\r\n    <ng-content></ng-content>\r\n  </div>\r\n  <div *ngIf=\"scrolls\" class=\"scroll-down\" (click)=\"scrollDown()\">\r\n    <br-icon style=\"solid\" name=\"angle-down\"></br-icon>\r\n  </div>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-indicator\",\r\n  templateUrl: \"./indicator.component.html\",\r\n  styleUrls: [\"./indicator.component.scss\"]\r\n})\r\nexport class IndicatorComponent {\r\n  @Input() state: string;\r\n\r\n  get setClasses() {\r\n    let classes = {\r\n      warning: this.state === \"warning\",\r\n      alert: this.state === \"alert\",\r\n      success: this.state === \"success\"\r\n    };\r\n\r\n    return classes;\r\n  }\r\n}\r\n","<div class=\"indicator\" [ngClass]=\"setClasses\"></div>\r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { Router, NavigationEnd } from \"@angular/router\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ViewerService, IImage } from \"./viewer.service\";\r\n\r\n@Component({\r\n  selector: \"br-image-viewer\",\r\n  templateUrl: \"./image-viewer.component.html\",\r\n  styleUrls: [\"./image-viewer.component.scss\"]\r\n})\r\nexport class ImageViewerComponent implements OnInit, OnDestroy {\r\n  images$: Observable<IImage[]>;\r\n  images: Array<any>;\r\n\r\n  destroy$: Subject<boolean>;\r\n\r\n  showViewer: boolean;\r\n  show: boolean; // CSS\r\n\r\n  activeImage: number;\r\n\r\n  constructor(public viewerService: ViewerService, private router: Router) {\r\n    this.destroy$ = new Subject<boolean>();\r\n\r\n    this.viewerService.showViewerChange.subscribe(obj => {\r\n      this.showViewer = obj.value;\r\n      this.activeImage = obj.id;\r\n      if (this.showViewer)\r\n        setTimeout(() => {\r\n          this.show = true;\r\n        }, 10);\r\n\r\n      const t = this.viewerService.images;\r\n      t.pipe(takeUntil(this.destroy$)).subscribe(images => {\r\n        this.images = images;\r\n      });\r\n    });\r\n\r\n    router.events.subscribe(val => {\r\n      viewerService.clear();\r\n    });\r\n  }\r\n\r\n  ngOnInit() {}\r\n\r\n  ngOnDestroy() {\r\n    this.destroy$.next(true);\r\n    this.destroy$.unsubscribe();\r\n  }\r\n\r\n  close() {\r\n    this.show = false;\r\n    setTimeout(() => {\r\n      this.viewerService.setViewerVisability(false);\r\n    }, 300);\r\n  }\r\n\r\n  setActive(val: number) {\r\n    this.activeImage = val;\r\n  }\r\n}\r\n","<div *ngIf=\"showViewer\" class=\"viewer\" [ngClass]=\"{ show: show }\">\r\n  <div class=\"icon-bar\">\r\n    <div class=\"icon\">\r\n      <a [href]=\"images[activeImage].path\" download>\r\n        <br-icon name=\"download\" color=\"var(--gray-0)\"></br-icon\r\n      ></a>\r\n    </div>\r\n    <div class=\"icon\" (click)=\"close()\">\r\n      <br-icon name=\"times\" color=\"var(--gray-0)\"></br-icon>\r\n    </div>\r\n  </div>\r\n  <div\r\n    class=\"images\"\r\n    [ngStyle]=\"{\r\n      width: images.length * 100 + '%',\r\n      transform: 'translateX(' + (-100 / images.length) * activeImage + '%)'\r\n    }\"\r\n  >\r\n    <div\r\n      *ngFor=\"let image of images; let i = index\"\r\n      class=\"image\"\r\n      [ngClass]=\"{ active: i === activeImage }\"\r\n    >\r\n      <img [src]=\"image.path\" />\r\n      <p class=\"dark flush\">{{ image.title }}</p>\r\n    </div>\r\n  </div>\r\n\r\n  <div\r\n    class=\"thumbnail-bar\"\r\n    [ngStyle]=\"{\r\n      width: images.length * 8 + 'rem',\r\n      transform: 'translateX(' + (-100 / images.length) * activeImage + '%)'\r\n    }\"\r\n  >\r\n    <div\r\n      *ngFor=\"let image of images; let i = index\"\r\n      class=\"thumbnail\"\r\n      [ngClass]=\"{ active: i === activeImage }\"\r\n      (click)=\"setActive(i)\"\r\n    >\r\n      <img [src]=\"image.path\" />\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-info-panel\",\r\n  templateUrl: \"./info-panel.component.html\",\r\n  styleUrls: [\"./info-panel.component.scss\"]\r\n})\r\nexport class InfoPanelComponent implements OnInit {\r\n  @Input() show: boolean;\r\n  @Input() image: string;\r\n\r\n  @Output() dismiss: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n\r\n  dismissClick(): void {\r\n    this.dismiss.emit();\r\n  }\r\n}\r\n","<div\r\n  class=\"info-panel\"\r\n  [ngClass]=\"{\r\n    hide: !show\r\n  }\"\r\n>\r\n  <div class=\"cover\" (click)=\"dismissClick()\"></div>\r\n  <div class=\"container\">\r\n    <div class=\"dismiss\" (click)=\"dismissClick()\">\r\n      <br-icon style=\"regular\" name=\"times\"></br-icon>\r\n    </div>\r\n    <div\r\n      class=\"header\"\r\n      *ngIf=\"image\"\r\n      [ngStyle]=\"{ backgroundImage: 'url(' + image + ')' }\"\r\n    ></div>\r\n    <div class=\"content\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\nexport interface LogoItem {\r\n  url: string;\r\n  path: string;\r\n}\r\n\r\n@Component({\r\n  selector: \"br-logo-bar\",\r\n  templateUrl: \"./logo-bar.component.html\",\r\n  styleUrls: [\"./logo-bar.component.scss\"]\r\n})\r\nexport class LogoBarComponent implements OnInit {\r\n  @Input() logos: Array<LogoItem>;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div class=\"logo-bar\">\r\n  <ng-container *ngFor=\"let logo of logos\">\r\n    <a *ngIf=\"logo.url\" [href]=\"logo.url\" class=\"logo-bar__logo\">\r\n      <img [src]=\"logo.path\" />\r\n    </a>\r\n\r\n    <div *ngIf=\"!logo.url\" class=\"logo-bar__logo\">\r\n      <img [src]=\"logo.path\" />\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  AfterViewInit,\r\n  Input,\r\n  ViewChild,\r\n  ElementRef,\r\n  Output,\r\n  EventEmitter,\r\n} from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport * as mapboxgl from \"mapbox-gl\";\r\n\r\n@Component({\r\n  selector: \"br-map\",\r\n  templateUrl: \"./map.component.html\",\r\n  styleUrls: [\"./map.component.scss\"],\r\n})\r\nexport class MapComponent implements OnInit, AfterViewInit {\r\n  @Input() apiKey: string;\r\n  @Input() location: any = { lat: 51.9894, lng: 4.2204 };\r\n  @Input() dragMarker: boolean = true;\r\n  @Input() containerName: string = \"map\";\r\n  // @ViewChild(\"mapElement\") mapElement: ElementRef;\r\n\r\n  @Output() onDrag: EventEmitter<any> = new EventEmitter();\r\n\r\n  markerOptions: any = {\r\n    icon: {\r\n      path: \"M 64 0 L 128 52 V 128 H 0 V 52 L 64 0\",\r\n      scale: 0.25,\r\n      anchor: { x: 64, y: 64 },\r\n      strokeColor: \"#e2574f\",\r\n      strokeWeight: 5,\r\n    },\r\n  };\r\n\r\n  map: mapboxgl.Map;\r\n  marker: mapboxgl.Marker;\r\n  style = \"mapbox://styles/realtech/ckkgux20c0qjv17lo9vzpetmq\";\r\n\r\n  mapboxScript = \"https://api.mapbox.com/mapbox-gl-js/v2.0.1/mapbox-gl.js\";\r\n  mapboxStyle = \"https://api.mapbox.com/mapbox-gl-js/v2.0.1/mapbox-gl.css\";\r\n\r\n  loaded = false;\r\n\r\n  constructor() {\r\n    this.loadScripts();\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  ngAfterViewInit() {\r\n    this.loadScripts();\r\n    setTimeout(() => this.initMap(), 500);\r\n  }\r\n\r\n  loadScripts() {\r\n    let script, style;\r\n    if (!this.isLoadedScript(this.mapboxScript))\r\n      script = this.loadScript(this.mapboxScript);\r\n    if (!this.isLoadedStyle(this.mapboxStyle))\r\n      style = this.loadStyle(this.mapboxStyle);\r\n    if (script && style) this.loaded = true;\r\n  }\r\n\r\n  initMap() {\r\n    if (\r\n      this.isLoadedScript(this.mapboxScript) &&\r\n      this.isLoadedStyle(this.mapboxStyle)\r\n    ) {\r\n      this.map = new mapboxgl.Map({\r\n        accessToken: this.apiKey,\r\n        container: this.containerName,\r\n        style: this.style,\r\n        zoom: 13,\r\n        center: this.location,\r\n      });\r\n      // Add map controls\r\n      this.map.addControl(new mapboxgl.NavigationControl());\r\n      let marker = new mapboxgl.Marker()\r\n        .setLngLat(this.location)\r\n        .setDraggable(this.dragMarker)\r\n        .on(\"dragend\", () => {\r\n          this.location = marker.getLngLat();\r\n          this.map.setCenter(this.location);\r\n          this.onDrag.emit(this.location);\r\n        })\r\n        .addTo(this.map);\r\n    } else {\r\n      console.log(\"Did not load map scripts, retrying\");\r\n      this.loadScripts();\r\n      setTimeout(() => this.initMap(), 500);\r\n    }\r\n  }\r\n\r\n  isLoadedScript(lib) {\r\n    return document.querySelectorAll('[src=\"' + lib + '\"]').length > 0;\r\n  }\r\n\r\n  loadScript(lib) {\r\n    var script = document.createElement(\"script\");\r\n    script.src = lib;\r\n    script.type = \"text/javascript\";\r\n    script.async = true;\r\n    script.charset = \"utf-8\";\r\n    document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n    return script;\r\n  }\r\n\r\n  isLoadedStyle(lib) {\r\n    return document.querySelectorAll('[href=\"' + lib + '\"]').length > 0;\r\n  }\r\n\r\n  loadStyle(lib) {\r\n    var style = document.createElement(\"link\");\r\n    style.rel = \"stylesheet\";\r\n    style.type = \"text/css\";\r\n    style.href = lib;\r\n    document.getElementsByTagName(\"head\")[0].appendChild(style);\r\n    return style;\r\n  }\r\n}\r\n","<!-- <div *ngIf=\"loaded\"> -->\r\n<div class=\"map\" [id]=\"containerName\"></div>\r\n<!-- </div> -->\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-menu\",\r\n  templateUrl: \"./menu.component.html\",\r\n  styleUrls: [\"./menu.component.scss\"]\r\n})\r\nexport class MenuComponent {\r\n  @Input() navigationMenu: boolean;\r\n}\r\n","<div class=\"menu--wrapper\" [ngClass]=\"{ navigation: navigationMenu }\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-menu-item\",\r\n  templateUrl: \"./menu-item.component.html\",\r\n  styleUrls: [\"./menu-item.component.scss\"],\r\n})\r\nexport class MenuItemComponent {\r\n  @Input() route: string;\r\n  @Input() href: string;\r\n  @Input() icon: string;\r\n  @Input() description: string;\r\n  @Input() active: boolean;\r\n  @Input() fragment: string;\r\n\r\n  get hasDescription() {\r\n    return this.description ? true : false;\r\n  }\r\n}\r\n","<div\r\n  *ngIf=\"route\"\r\n  [routerLink]=\"route\"\r\n  routerLinkActive=\"active\"\r\n  [fragment]=\"fragment\"\r\n  class=\"menu-item\"\r\n  [ngClass]=\"{ active: active, 'has-description': description }\"\r\n>\r\n  <ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\r\n</div>\r\n\r\n<a\r\n  *ngIf=\"href && !route\"\r\n  class=\"menu-item\"\r\n  [ngClass]=\"{ active: active, 'has-description': description }\"\r\n  [href]=\"href\"\r\n>\r\n  <ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\r\n</a>\r\n\r\n<div\r\n  *ngIf=\"!route && !href\"\r\n  class=\"menu-item\"\r\n  [ngClass]=\"{ active: active, 'has-description': description }\"\r\n>\r\n  <ng-container *ngTemplateOutlet=\"tempOutlet\"></ng-container>\r\n</div>\r\n\r\n<ng-template #tempOutlet>\r\n  <span class=\"icon\" *ngIf=\"icon && icon !== ''\">\r\n    <br-icon [name]=\"icon\"></br-icon>\r\n  </span>\r\n  <div class=\"label-description\">\r\n    <span class=\"label\">\r\n      <ng-content></ng-content>\r\n    </span>\r\n\r\n    <div *ngIf=\"description\" class=\"description\">\r\n      <p>{{ description }}</p>\r\n    </div>\r\n  </div>\r\n</ng-template>\r\n","import { Component, OnInit, Input, HostListener } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-menu-item-dropdown\",\r\n  templateUrl: \"./menu-item-dropdown.component.html\",\r\n  styleUrls: [\"./menu-item-dropdown.component.scss\"]\r\n})\r\nexport class MenuItemDropdownComponent implements OnInit {\r\n  @Input() title: string;\r\n  @Input() icon: string;\r\n  @Input() route: string;\r\n  @Input() showAffix: boolean;\r\n\r\n  showOnMobile = false;\r\n\r\n  @HostListener(\"window:resize\", [\"$event\"])\r\n  onResize(event = null) {\r\n    this.showOnMobile =\r\n      window.innerWidth /\r\n        parseFloat(\r\n          getComputedStyle(document.querySelector(\"body\"))[\"font-size\"]\r\n        ) <\r\n      40;\r\n  }\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.onResize();\r\n  }\r\n}\r\n","<br-popover class=\"hide-on-mobile\" padded=\"false\" *ngIf=\"!showOnMobile\">\r\n  <br-menu-item [icon]=\"icon\" [route]=\"route\">\r\n    {{ title }}\r\n    <div class=\"caret\"><br-icon name=\"angle-down\"></br-icon></div\r\n  ></br-menu-item>\r\n  <ng-container content>\r\n    <div class=\"dropdown-menu\">\r\n      <br-menu>\r\n        <ng-content></ng-content>\r\n      </br-menu>\r\n    </div>\r\n    <div class=\"affix-dropdown\" *ngIf=\"showAffix\">\r\n      <ng-content select=\"[affix]\"> </ng-content>\r\n    </div>\r\n  </ng-container>\r\n</br-popover>\r\n\r\n<div class=\"show-on-mobile\" *ngIf=\"showOnMobile\">\r\n  <br-menu-item [icon]=\"icon\" [route]=\"route\">\r\n    {{ title }}\r\n  </br-menu-item>\r\n\r\n  <ng-container content>\r\n    <div class=\"dropdown-menu\">\r\n      <ng-content select=\"[menuMobile]\"></ng-content>\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-modal\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./modal.component.html\",\r\n  styleUrls: [\"./modal.component.scss\"]\r\n})\r\nexport class ModalComponent implements OnInit {\r\n  @Input() show: boolean;\r\n  @Input() full: boolean;\r\n  @Input() white: boolean;\r\n  @Input() cover: boolean = true;\r\n  @Input() opaque: boolean;\r\n  @Input() loading: boolean;\r\n  @Input() dismissible: boolean;\r\n\r\n  @Output() dismiss: EventEmitter<any> = new EventEmitter();\r\n  ngOnInit() {\r\n    if (this.show) {\r\n      // To trigger the css animation we need to detect a change from false to true\r\n      this.show = false;\r\n      setTimeout(() => (this.show = true), 10);\r\n    }\r\n  }\r\n\r\n  dismissClick(): void {\r\n    this.dismiss.emit();\r\n  }\r\n}\r\n","<div\r\n  class=\"modal\"\r\n  [ngClass]=\"{\r\n    opaque: opaque,\r\n    hide: !show,\r\n    full: full,\r\n    'white-cover': white,\r\n    'no-cover': !cover\r\n  }\"\r\n>\r\n  <div class=\"cover\" *ngIf=\"dismissible\" (click)=\"dismissClick()\"></div>\r\n  <div class=\"cover\" *ngIf=\"!dismissible\"></div>\r\n  <div class=\"container\">\r\n    <div class=\"dismiss\" *ngIf=\"dismissible\" (click)=\"dismissClick()\">\r\n      <br-icon style=\"regular\" name=\"times\"></br-icon>\r\n    </div>\r\n    <ng-content *ngIf=\"!loading\"></ng-content>\r\n    <br-loader *ngIf=\"loading\"></br-loader>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { MessageService, IMessage } from \"./message.service\";\r\n\r\n@Component({\r\n  selector: \"br-message-container\",\r\n  templateUrl: \"./message-container.component.html\",\r\n  styleUrls: [\"./message-container.component.scss\"],\r\n})\r\nexport class MessageContainerComponent implements OnInit, OnDestroy {\r\n  messages$: Observable<IMessage[]>;\r\n  messages: Array<any>;\r\n\r\n  destroy$: Subject<boolean>;\r\n\r\n  constructor(public messageService: MessageService) {\r\n    this.destroy$ = new Subject<boolean>();\r\n  }\r\n\r\n  ngOnInit() {\r\n    const t = this.messageService.messages;\r\n    t.pipe(takeUntil(this.destroy$)).subscribe((messages) => {\r\n      this.messages = messages;\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.destroy$.next(true);\r\n    this.destroy$.unsubscribe();\r\n  }\r\n}\r\n","<div class=\"message-container\">\r\n  <br-message\r\n    *ngFor=\"let message of messages\"\r\n    [title]=\"message.title\"\r\n    [type]=\"message.type\"\r\n    [id]=\"message.id\"\r\n    [out]=\"message.out\"\r\n    [floating]=\"true\"\r\n    >{{ message.message }}</br-message\r\n  >\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-navbar\",\r\n  templateUrl: \"./navbar.component.html\",\r\n  styleUrls: [\"./navbar.component.scss\"],\r\n})\r\nexport class NavbarComponent {\r\n  @Input() logo: string;\r\n  @Input() logoName: string;\r\n  @Input() logoLink: string;\r\n  @Input() relative: boolean;\r\n  @Input() showAffix: boolean;\r\n\r\n  open = false;\r\n\r\n  toggleOpen() {\r\n    this.open = !this.open;\r\n  }\r\n}\r\n","<div class=\"topbar\" [ngClass]=\"{ relative: relative }\">\r\n  <a class=\"brand\" [routerLink]=\"logoLink\">\r\n    <ng-template [ngIf]=\"logo !== undefined && logo !== ''\" [ngIfElse]=\"noLogo\">\r\n      <img *ngIf=\"logo\" [src]=\"logo\" [alt]=\"logoName\" />\r\n    </ng-template>\r\n\r\n    <ng-template #noLogo>\r\n      <div>{{ logoName }}</div>\r\n    </ng-template>\r\n  </a>\r\n\r\n  <div class=\"hamburger\" (click)=\"toggleOpen()\" [ngClass]=\"{ open: open }\">\r\n    <span></span>\r\n  </div>\r\n  <div class=\"side-menu\" [ngClass]=\"{ open: open }\">\r\n    <div class=\"affix-menu\" *ngIf=\"showAffix\">\r\n      <ng-content select=\"[affix-menu]\"></ng-content>\r\n    </div>\r\n\r\n    <div class=\"navigation-menu\" class=\"navigation\" (click)=\"toggleOpen()\">\r\n      <ng-content select=\"[navigation-menu]\"> </ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n<div\r\n  class=\"topbar__cover\"\r\n  [ngClass]=\"{ open: open }\"\r\n  (click)=\"toggleOpen()\"\r\n></div>\r\n\r\n<div *ngIf=\"!relative\" class=\"topbar__spacer\"></div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  HostListener,\r\n  ViewChild,\r\n  ElementRef,\r\n  AfterViewInit\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-page-layout\",\r\n  templateUrl: \"./page-layout.component.html\",\r\n  styleUrls: [\"./page-layout.component.scss\"]\r\n})\r\nexport class PageLayoutComponent implements AfterViewInit {\r\n  @Input() layout: string;\r\n  @Input() background: string;\r\n  @Input() noPadding: boolean;\r\n  @Input() noFooter: boolean;\r\n  @Input() brandIdentity: boolean;\r\n\r\n  @ViewChild(\"background\") backgroundElement: ElementRef;\r\n\r\n  scrollHeight: number = 0;\r\n  height: number;\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.brandIdentity) {\r\n      this.height = this.backgroundElement.nativeElement.offsetHeight / 2;\r\n      setTimeout(this.onScroll, 100);\r\n    }\r\n  }\r\n\r\n  get classes() {\r\n    let classes = \"\";\r\n    if (this.layout) {\r\n      switch (this.layout) {\r\n        case \"full\":\r\n          classes += \" full\";\r\n          break;\r\n        case \"split\":\r\n          classes += \" split\";\r\n          break;\r\n        case \"sidebar\":\r\n          classes += \" page-type__sidebar\";\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    }\r\n\r\n    if (this.noPadding) classes += \" no-padding\";\r\n    return classes;\r\n  }\r\n\r\n  get getBackground() {\r\n    if (this.background) {\r\n      if (this.background === \"cards\") {\r\n        return \"background-cards\";\r\n      }\r\n    }\r\n\r\n    return;\r\n  }\r\n\r\n  @HostListener(\"window:scroll\")\r\n  onScroll() {\r\n    let e = document.documentElement;\r\n    let b = document.body;\r\n    // this.scrollHeight =\r\n    //   ((e.scrollTop || b.scrollTop) /\r\n    //     ((e.scrollHeight || b.scrollHeight) - e.clientHeight)) *\r\n    //   100;\r\n\r\n    this.scrollHeight =\r\n      (1 -\r\n        (e.scrollTop || b.scrollTop) /\r\n          ((e.scrollHeight || b.scrollHeight) - e.clientHeight)) *\r\n        e.clientHeight -\r\n      this.height;\r\n  }\r\n}\r\n","<div class=\"page-wrapper\" [ngClass]=\"getBackground\">\r\n  <div *ngIf=\"brandIdentity\" class=\"background-container\">\r\n    <div\r\n      #background\r\n      class=\"page-wrapper__background\"\r\n      [ngStyle]=\"{ top: scrollHeight + 'px' }\"\r\n    >\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-10 -10 152 152\">\r\n        <path d=\"M 64 0 L 128 52 V 128 H 0 V 52 L 64 0\" />\r\n      </svg>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"page-type\" [ngClass]=\"classes\">\r\n    <div *ngIf=\"layout === 'split'\" class=\"split-content\">\r\n      <div class=\"left\">\r\n        <div class=\"content\">\r\n          <ng-content select=\"[left]\"></ng-content>\r\n        </div>\r\n      </div>\r\n      <div class=\"right\">\r\n        <div class=\"login-form\">\r\n          <div class=\"wrapper\">\r\n            <ng-content select=\"[right]\" #loginForm></ng-content>\r\n            <div #sizer></div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <ng-container *ngIf=\"layout === 'sidebar'\">\r\n      <ng-content select=\"[sidebar]\"></ng-content>\r\n    </ng-container>\r\n    <div class=\"page__content\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n    <br-footer *ngIf=\"!noFooter && layout !== 'split'\"></br-footer>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  OnInit,\r\n} from \"@angular/core\";\r\nimport { ControlContainer } from \"@angular/forms\";\r\nimport {\r\n  parsePhoneNumberFromString,\r\n  getCountryCallingCode,\r\n  CountryCode,\r\n} from \"libphonenumber-js\";\r\n\r\n@Component({\r\n  selector: \"br-phonenumber-input\",\r\n  templateUrl: \"./phonenumber-input.component.html\",\r\n  styleUrls: [\r\n    \"../input/input.component.scss\",\r\n    \"./phonenumber-input.component.scss\",\r\n  ],\r\n})\r\nexport class PhonenumberInputComponent implements OnChanges, OnInit {\r\n  @Input() name: string;\r\n  @Input() label: string;\r\n  @Input() messages: any[];\r\n  @Input() country: string = \"nl\";\r\n  @Input() optionalDescription: string;\r\n  @Input() isAutoCompleteOff: boolean;\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  inputValue: string = \"\";\r\n  lastCountry: string = \"\";\r\n\r\n  constructor(public controlContainer: ControlContainer) {\r\n    this.lastCountry = this.country;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.updateCountry();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    this.updateCountry();\r\n  }\r\n\r\n  updateCountry() {\r\n    if (\r\n      this.country &&\r\n      this.country !== this.lastCountry &&\r\n      this.controlContainer.control.get(this.name)\r\n    ) {\r\n      const countryCode = this.country.toUpperCase() as CountryCode;\r\n      this.controlContainer.control\r\n        .get(this.name)\r\n        .setValue(\"+\" + getCountryCallingCode(countryCode));\r\n      this.lastCountry = this.country;\r\n    }\r\n  }\r\n\r\n  get hasControl() {\r\n    return this.controlContainer.control.get(this.name) !== null;\r\n  }\r\n\r\n  get control() {\r\n    return this.controlContainer.control;\r\n  }\r\n\r\n  get controlInput() {\r\n    return this.control.get(this.name);\r\n  }\r\n\r\n  get checkIfIsAutoCompleteOff() {\r\n    return this.isAutoCompleteOff ? \"off\" : \"on\";\r\n  }\r\n\r\n  get isOptional() {\r\n    return this.optionalDescription !== undefined;\r\n  }\r\n\r\n  get isFilled() {\r\n    if (this.hasControl) {\r\n      if (\r\n        !this.controlContainer.control.get(this.name).touched &&\r\n        !this.controlContainer.control.get(this.name).value\r\n      ) {\r\n        return false;\r\n      }\r\n      return this.controlContainer.control.get(this.name).value !== \"\";\r\n    } else {\r\n      return this.inputValue !== \"\";\r\n    }\r\n  }\r\n\r\n  get validate() {\r\n    let myControl = this.controlContainer.control.get(this.name);\r\n    let isSuccess = (myControl.dirty || myControl.touched) && myControl.valid;\r\n    let isError = (myControl.dirty || myControl.touched) && myControl.invalid;\r\n\r\n    return {\r\n      success: isSuccess,\r\n      error: isError,\r\n    };\r\n  }\r\n\r\n  get controlErrors() {\r\n    let errors = this.controlContainer.control.get(this.name).errors;\r\n    if (errors != null) {\r\n      return Object.keys(errors).map((keyError) => {\r\n        return keyError;\r\n      });\r\n    }\r\n  }\r\n\r\n  OnBlur() {\r\n    let number = parsePhoneNumberFromString(this.inputValue);\r\n    if (number && !number.isValid()) {\r\n      this.controlInput.setErrors({ invalid: true });\r\n      this.onBlur.emit(null);\r\n      return;\r\n    }\r\n\r\n    this.onBlur.emit(this.inputValue);\r\n  }\r\n\r\n  OnChange(e) {\r\n    let val = e.srcElement.value;\r\n\r\n    val.replace(\"/[^0-9+]/g\", \"\");\r\n    if (val.substring(0, 2) == \"00\") {\r\n      val = \"+\" + val.substring(2);\r\n    }\r\n\r\n    if (!val || val == \"\") {\r\n      val = \"+\";\r\n    }\r\n\r\n    try {\r\n      let number = parsePhoneNumberFromString(val);\r\n\r\n      if (number && number.nationalNumber[0] == \"0\") {\r\n        number = parsePhoneNumberFromString(\r\n          number.countryCallingCode + number.nationalNumber.slice(1)\r\n        );\r\n      }\r\n\r\n      if (number) {\r\n        val = number.formatInternational();\r\n      }\r\n\r\n      if (val.length < 5) {\r\n        let temp = val + \"0\".repeat(5 - val.length);\r\n        number = parsePhoneNumberFromString(temp);\r\n      }\r\n\r\n      if (number && number.country) this.country = number.country.toLowerCase();\r\n    } catch (e) {\r\n      console.log(e);\r\n    }\r\n\r\n    this.inputValue = val;\r\n\r\n    if (this.hasControl) this.controlInput.setValue(this.inputValue);\r\n  }\r\n}\r\n","<ng-container *ngIf=\"hasControl\" [formGroup]=\"control\">\r\n  <div class=\"phone-input input\" [ngClass]=\"validate\">\r\n    <input\r\n      [name]=\"name\"\r\n      type=\"tel\"\r\n      [formControlName]=\"name\"\r\n      [autocomplete]=\"checkIfIsAutoCompleteOff\"\r\n      [ngClass]=\"{ filled: isFilled }\"\r\n      (keyup)=\"OnChange($event)\"\r\n      (blur)=\"OnBlur()\"\r\n    />\r\n    <div class=\"flag\">\r\n      <br-flag [country]=\"country\" size=\"small\"></br-flag>\r\n    </div>\r\n    <label\r\n      >{{ label }}\r\n      <ng-container *ngIf=\"isOptional\">\r\n        - <em>{{ optionalDescription }}</em>\r\n      </ng-container>\r\n    </label>\r\n\r\n    <div class=\"bar\"></div>\r\n\r\n    <br-icon style=\"regular\" name=\"check\" class=\"success\"></br-icon>\r\n\r\n    <br-icon style=\"regular\" name=\"times\" class=\"error\"></br-icon>\r\n\r\n    <ng-container\r\n      *ngIf=\"\r\n        messages &&\r\n        (controlInput.touched || controlInput.dirty) &&\r\n        controlInput.invalid\r\n      \"\r\n    >\r\n      <ng-container *ngFor=\"let message of controlErrors\">\r\n        <div class=\"message\" *ngIf=\"messages[message]\">\r\n          {{ messages[message] }}\r\n        </div>\r\n      </ng-container>\r\n    </ng-container>\r\n  </div>\r\n</ng-container>\r\n","import { Component, Input, EventEmitter, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-radio-button\",\r\n  templateUrl: \"./radio-button.component.html\",\r\n  styleUrls: [\"./radio-button.component.scss\"]\r\n})\r\nexport class RadioButtonComponent {\r\n  @Input() group: string;\r\n  @Input() value: string;\r\n  @Input() checked: boolean;\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  blur() {\r\n    this.onBlur.emit(this.value);\r\n  }\r\n}\r\n","<div class=\"radio\">\r\n  <input\r\n    type=\"radio\"\r\n    [name]=\"group\"\r\n    [value]=\"value\"\r\n    [checked]=\"checked\"\r\n    (change)=\"blur()\"\r\n  />\r\n  <label><ng-content></ng-content></label>\r\n</div>\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-rating\",\r\n  templateUrl: \"./rating.component.html\",\r\n  styleUrls: [\"./rating.component.scss\"]\r\n})\r\nexport class RatingComponent {\r\n  @Input() title: string;\r\n  @Input() rate: number;\r\n  @Input() color: string = \"var(--warning)\";\r\n  @Input() icon: string = \"star\";\r\n\r\n  get myRate() {\r\n    this.rate = Number(this.rate < 5 ? this.rate : 5);\r\n    let arr = new Array(this.rate).fill(0);\r\n    return arr;\r\n  }\r\n\r\n  get fillRate() {\r\n    this.rate = Number(this.rate < 5 ? this.rate : 5);\r\n    return new Array(5 - this.rate).fill(0);\r\n  }\r\n}\r\n","<div class=\"rate\">\r\n  <h5>{{ title }}</h5>\r\n  <div class=\"icon\" *ngFor=\"let r of myRate\">\r\n    <br-icon style=\"solid\" [name]=\"icon\" [color]=\"color\"> </br-icon>\r\n  </div>\r\n\r\n  <div class=\"icon\" *ngFor=\"let r of fillRate\">\r\n    <br-icon style=\"solid\" [name]=\"icon\"> </br-icon>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewChild,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  HostListener,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-section\",\r\n  templateUrl: \"./section.component.html\",\r\n  styleUrls: [\"./section.component.scss\"],\r\n})\r\nexport class SectionComponent implements AfterViewInit {\r\n  @Input() background: string;\r\n  @Input() layout: string;\r\n  @Input() mobileReverse: boolean;\r\n  @Input() alignToTop: boolean;\r\n  @Input() noBottomPadding: boolean;\r\n  @Input() splitEqual: boolean;\r\n  @Input() fullWidth: boolean;\r\n  @Input() maxWidth: boolean;\r\n\r\n  spacerHeight: number = 0;\r\n  interval: any;\r\n  intervalCounter: number = 0;\r\n\r\n  @ViewChild(\"content\") content: ElementRef;\r\n\r\n  @HostListener(\"window:resize\", [\"$event\"])\r\n  onResize(event) {\r\n    this.updateHeight();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.interval = setInterval(() => this.updateHeight(), 1000);\r\n  }\r\n\r\n  updateHeight() {\r\n    if (this.content)\r\n      this.spacerHeight = this.content.nativeElement.offsetHeight;\r\n\r\n    if (this.spacerHeight > 0 || this.intervalCounter > 5) {\r\n      clearInterval(this.interval);\r\n    }\r\n\r\n    this.intervalCounter++;\r\n  }\r\n}\r\n","<div\r\n  class=\"section\"\r\n  [ngClass]=\"{\r\n    'section--centered': layout === 'centered',\r\n    'section--split': layout === 'split',\r\n    'section--full': layout === 'full',\r\n    'full-width': fullWidth,\r\n    'max-width': maxWidth,\r\n    'no-bottom-padding': noBottomPadding\r\n  }\"\r\n>\r\n  <div\r\n    class=\"background\"\r\n    *ngIf=\"background\"\r\n    [ngStyle]=\"{ background: background }\"\r\n  ></div>\r\n\r\n  <div\r\n    *ngIf=\"layout !== 'split'\"\r\n    [ngClass]=\"{ full: layout == 'full' }\"\r\n    #content\r\n  >\r\n    <ng-content></ng-content>\r\n  </div>\r\n\r\n  <div\r\n    *ngIf=\"layout == 'full'\"\r\n    class=\"spacer\"\r\n    [ngStyle]=\"{ 'height.px': spacerHeight }\"\r\n  ></div>\r\n\r\n  <div\r\n    class=\"section__split\"\r\n    *ngIf=\"layout === 'split'\"\r\n    [ngClass]=\"{\r\n      'section__split--equal': splitEqual,\r\n      'section__split--reverse': mobileReverse,\r\n      'section__split--top-align': alignToTop\r\n    }\"\r\n  >\r\n    <div class=\"section__split__left\">\r\n      <ng-content select=\"[left]\"></ng-content>\r\n    </div>\r\n\r\n    <div class=\"section__split__right\">\r\n      <ng-content select=\"[right]\"></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild,\r\n  OnChanges,\r\n} from \"@angular/core\";\r\nimport { PopoverComponent } from \"../popover/popover.component\";\r\n\r\n@Component({\r\n  selector: \"br-select\",\r\n  templateUrl: \"./select.component.html\",\r\n  styleUrls: [\"./select.component.scss\", \"../input/input.component.scss\"],\r\n})\r\nexport class SelectComponent implements OnInit, OnChanges {\r\n  @Input() placeholder: string;\r\n  @Input() value: string;\r\n  @Input() values: Array<string> = [];\r\n  @Input() options: Array<Object>;\r\n  @Input() title: string;\r\n  @Input() search: boolean;\r\n  @Input() error: string;\r\n  @Input() fixed: boolean;\r\n  @Input() size: string;\r\n  @Input() multi: boolean;\r\n\r\n  @Output() change: EventEmitter<any> = new EventEmitter();\r\n\r\n  myOptions: Array<Object>;\r\n\r\n  @ViewChild(PopoverComponent, { static: true }) popover: PopoverComponent;\r\n\r\n  ngOnInit() {\r\n    this.myOptions = this.options;\r\n  }\r\n\r\n  ngOnChanges(): void {\r\n    this.myOptions = this.options;\r\n  }\r\n\r\n  doSearch(query) {\r\n    this.myOptions = this.options.filter((i) => {\r\n      return i[\"label\"].toUpperCase().indexOf(query.toUpperCase()) > -1;\r\n    });\r\n  }\r\n\r\n  setValue(val) {\r\n    if (!this.multi) {\r\n      this.value = val;\r\n      this.change.emit(val);\r\n      this.popover.closePopover();\r\n    } else {\r\n      if (this.values.includes(val)) {\r\n        this.values = this.values.filter((e) => e !== val);\r\n      } else {\r\n        this.values.push(val);\r\n      }\r\n      this.change.emit(this.values);\r\n    }\r\n  }\r\n\r\n  checkBoxClicked(val) {}\r\n\r\n  get displayValue() {\r\n    let item;\r\n    let val;\r\n    if (this.multi) {\r\n      if (this.values.length > 0) {\r\n        item = this.options.find((e) => e[\"value\"] == this.values[0]);\r\n        val = item[\"label\"];\r\n\r\n        if (this.values.length > 1) val += \" + \" + (this.values.length - 1);\r\n      }\r\n    } else if (this.value && this.options) {\r\n      item = this.options.find((e) => e[\"value\"] == this.value);\r\n\r\n      if (item) val = item[\"label\"];\r\n    }\r\n    return val || this.placeholder || this.options[0][\"label\"];\r\n  }\r\n}\r\n","<div\r\n  class=\"select-wrapper\"\r\n  [ngClass]=\"{ error: error, medium: size === 'medium' }\"\r\n>\r\n  <br-popover\r\n    clickToOpen=\"true\"\r\n    padded=\"false\"\r\n    arrow=\"false\"\r\n    parentWidth=\"true\"\r\n    position=\"bottom\"\r\n    [fixed]=\"fixed\"\r\n  >\r\n    <label *ngIf=\"title\">{{ title }}</label>\r\n    <div class=\"select\">\r\n      {{ displayValue }}\r\n    </div>\r\n\r\n    <div class=\"caret\">\r\n      <br-icon name=\"caret-down\" type=\"solid\"></br-icon>\r\n    </div>\r\n\r\n    <div class=\"bar\"></div>\r\n\r\n    <div class=\"error-label\" *ngIf=\"error\">\r\n      {{ error }}\r\n    </div>\r\n\r\n    <ng-container content>\r\n      <div class=\"search\" *ngIf=\"search\">\r\n        <div class=\"input\">\r\n          <input type=\"search\" (keyup)=\"doSearch($event.target.value)\" />\r\n\r\n          <label>Filter </label>\r\n          <div class=\"bar\"></div>\r\n          <div class=\"search-icon\">\r\n            <br-icon\r\n              style=\"regular\"\r\n              name=\"search\"\r\n              color=\"var(--primary-dark)\"\r\n            ></br-icon>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"select-menu\">\r\n        <div\r\n          class=\"select-option\"\r\n          [ngClass]=\"{\r\n            active: option.value == value || values.includes(option.value)\r\n          }\"\r\n          *ngFor=\"let option of myOptions\"\r\n          (click)=\"setValue(option.value)\"\r\n        >\r\n          <br-checkbox\r\n            *ngIf=\"multi\"\r\n            [checked]=\"values.includes(option.value)\"\r\n            [minion]=\"true\"\r\n            (toggle)=\"checkBoxClicked($event)\"\r\n          >\r\n            {{ option.label }}\r\n          </br-checkbox>\r\n          <ng-container *ngIf=\"!multi\">{{ option.label }}</ng-container>\r\n        </div>\r\n      </div>\r\n    </ng-container>\r\n  </br-popover>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\nexport interface ShowcaseSlide {\r\n  title: string;\r\n  icon: string;\r\n  description: string;\r\n  image: string;\r\n  pointer: boolean;\r\n  x: number;\r\n  y: number;\r\n}\r\n\r\n@Component({\r\n  selector: \"br-showcase-carousel\",\r\n  templateUrl: \"./showcase-carousel.component.html\",\r\n  styleUrls: [\"./showcase-carousel.component.scss\"]\r\n})\r\nexport class ShowcaseCarouselComponent implements OnInit {\r\n  @Input() slides: Array<ShowcaseSlide>;\r\n  @Input() duration: number = 5;\r\n\r\n  activeSlide: number = 0;\r\n  timeout: any;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.goTo(0);\r\n  }\r\n\r\n  next(): void {\r\n    if (this.activeSlide < this.slides.length - 1) {\r\n      this.goTo(this.activeSlide + 1);\r\n    } else {\r\n      this.goTo(0);\r\n    }\r\n  }\r\n\r\n  goTo(index): void {\r\n    this.activeSlide = index;\r\n    clearTimeout(this.timeout);\r\n    this.timeout = setTimeout(() => this.next(), this.duration * 1000);\r\n  }\r\n}\r\n","<p class=\"showcase__description\">{{ slides[activeSlide].description }}</p>\r\n<div class=\"showcase\">\r\n  <div class=\"showcase__navigation\">\r\n    <div\r\n      class=\"showcase__navigation__item\"\r\n      *ngFor=\"let item of slides; let i = index\"\r\n      (click)=\"goTo(i)\"\r\n      [ngClass]=\"{ 'showcase__navigation__item--active': i === activeSlide }\"\r\n    >\r\n      <span class=\"showcase__navigation__item__icon\">\r\n        <br-icon\r\n          [name]=\"item.icon\"\r\n          style=\"duotone\"\r\n          color=\"var(--primary-dark)\"\r\n        ></br-icon>\r\n      </span>\r\n      {{ item.title }}\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"showcase__slides\">\r\n    <div\r\n      class=\"showcase__slides__pointer\"\r\n      *ngIf=\"slides[activeSlide].pointer\"\r\n      [ngStyle]=\"{\r\n        left: slides[activeSlide].x + '%',\r\n        top: slides[activeSlide].y + '%'\r\n      }\"\r\n    ></div>\r\n    <div\r\n      class=\"showcase__slides__slide\"\r\n      *ngFor=\"let item of slides; let i = index\"\r\n      [ngClass]=\"{ 'showcase__slides__slide--active': i === activeSlide }\"\r\n    >\r\n      <img [src]=\"item.image\" />\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  ElementRef,\r\n  ViewChild,\r\n  ChangeDetectorRef\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-sidebar\",\r\n  templateUrl: \"./sidebar.component.html\",\r\n  styleUrls: [\"./sidebar.component.scss\"]\r\n})\r\nexport class SidebarComponent {\r\n  @Input() alwaysHides: boolean;\r\n  @Input() hideOnClick: boolean = true;\r\n  @Input() noNavbar: boolean;\r\n\r\n  @ViewChild(\"bottom\") bottomView: ElementRef;\r\n\r\n  open: boolean = false;\r\n  hover: boolean = false;\r\n  touchHover: boolean;\r\n\r\n  hasBottomContent: boolean;\r\n\r\n  constructor(private ref: ChangeDetectorRef) {}\r\n\r\n  ngAfterContentChecked() {\r\n    if (this.bottomView) {\r\n      this.hasBottomContent =\r\n        this.bottomView.nativeElement.innerHTML.trim().length > 0;\r\n    }\r\n  }\r\n\r\n  close() {\r\n    if ((this.open || this.hover) && this.hideOnClick) {\r\n      this.open = false;\r\n      this.hover = false;\r\n    }\r\n  }\r\n\r\n  openHover() {\r\n    this.hover = true;\r\n  }\r\n\r\n  toggleOpen() {\r\n    this.open = !this.open;\r\n  }\r\n}\r\n","<div\r\n  class=\"wrapper\"\r\n  [ngClass]=\"{\r\n    'always-hides': alwaysHides,\r\n    open: open,\r\n    'no-navbar': noNavbar,\r\n    hover: hover\r\n  }\"\r\n  (mouseenter)=\"hover = true\"\r\n  (mouseleave)=\"hover = false\"\r\n>\r\n  <div class=\"sidebar__menu\" [ngClass]=\"{ hover: hover }\">\r\n    <div class=\"bottom-content\" #bottom>\r\n      <ng-content select=\"[bottom]\"> </ng-content>\r\n    </div>\r\n\r\n    <div\r\n      class=\"main-content\"\r\n      [ngClass]=\"{ 'has-bottom': hasBottomContent }\"\r\n      (click)=\"close()\"\r\n      (touchstart)=\"close()\"\r\n    >\r\n      <ng-content> </ng-content>\r\n    </div>\r\n\r\n    <div class=\"background\" (touchstart)=\"openHover()\"></div>\r\n  </div>\r\n\r\n  <div class=\"toggle button\" (click)=\"toggleOpen()\">\r\n    <div class=\"icon\">\r\n      <br-icon-button\r\n        flush=\"true\"\r\n        name=\"angle-right\"\r\n        style=\"solid\"\r\n      ></br-icon-button>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<div class=\"cover\" [ngClass]=\"{ open: open }\" (click)=\"open = false\"></div>\r\n","import {\r\n  Component,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  ViewChild,\r\n  Input,\r\n  Output,\r\n  EventEmitter\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-signature-pad\",\r\n  templateUrl: \"./signature-pad.component.html\",\r\n  styleUrls: [\"./signature-pad.component.scss\"]\r\n})\r\nexport class SignaturePadComponent implements AfterViewInit {\r\n  @Input() xSize: number = 1000;\r\n  @Input() ySize: number = 500;\r\n  @Input() detail: number = 8;\r\n  @Input() smooth: number = 20;\r\n  @Input() lineWidth: number = 7;\r\n  @Input() widthVariable: number = 20;\r\n  @Input() showPoints: boolean = false;\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n  @ViewChild(\"myCanvas\") canvas: ElementRef<HTMLCanvasElement>;\r\n\r\n  context: CanvasRenderingContext2D;\r\n  rect;\r\n  xScale;\r\n  yScale;\r\n  buffer;\r\n\r\n  currentLine: Array<Array<number>>;\r\n  mouse = { x: 0, y: 0, button: 0, lastButton: 0 };\r\n\r\n  maxDist: number = 100;\r\n\r\n  ngAfterViewInit(): void {\r\n    this.reset();\r\n  }\r\n\r\n  mouseMove(event): void {\r\n    if (event.type === \"mousemove\" || event.type === \"mousedown\") {\r\n      this.mouse.x = event.offsetX;\r\n      this.mouse.y = event.offsetY;\r\n    }\r\n\r\n    if (\r\n      (event.type === \"touchmove\" || event.type === \"touchstart\") &&\r\n      event.targetTouches.length > 0\r\n    ) {\r\n      this.mouse.x = event.targetTouches[0].clientX - this.rect.left;\r\n      this.mouse.y = event.targetTouches[0].clientY - this.rect.top;\r\n    }\r\n\r\n    if (event.type === \"mousedown\" || event.type === \"touchstart\") {\r\n      this.mouse.button = 1;\r\n    } else if (\r\n      event.type === \"mouseup\" ||\r\n      event.type === \"mouseout\" ||\r\n      event.type === \"touchend\" ||\r\n      event.type === \"touchcancel\"\r\n    ) {\r\n      this.mouse.button = 0;\r\n    }\r\n\r\n    this.mouse.x *= this.xScale;\r\n    this.mouse.y *= this.yScale;\r\n\r\n    this.draw();\r\n    this.mouse.lastButton = this.mouse.button;\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  preventContext(event): void {\r\n    event.preventDefault();\r\n  }\r\n\r\n  draw() {\r\n    if (this.mouse.button === 1 && this.mouse.lastButton === 0) {\r\n      // Start a new line\r\n      this.currentLine = [];\r\n      this.currentLine.push([this.mouse.x, this.mouse.y]);\r\n\r\n      // Store old line in buffer\r\n      this.clearImage();\r\n      this.buffer.context.drawImage(this.canvas.nativeElement, 0, 0);\r\n    } else if (this.mouse.button === 1) {\r\n      // Continue old line (don't add points if no movement)\r\n      const lp = this.currentLine[this.currentLine.length - 1];\r\n\r\n      if (this.mouse.x !== lp[0] || this.mouse.y !== lp[1]) {\r\n        this.currentLine.push([this.mouse.x, this.mouse.y]);\r\n\r\n        this.context.beginPath();\r\n        this.context.moveTo(lp[0], lp[1]);\r\n        this.context.lineTo(this.mouse.x, this.mouse.y);\r\n        this.context.stroke();\r\n\r\n        let liveSmooth = this.smoothLine(\r\n          this.simplifyLine(this.currentLine, this.detail),\r\n          this.smooth,\r\n          false\r\n        );\r\n        this.clearRect();\r\n        this.context.drawImage(this.buffer, 0, 0);\r\n        this.drawSmoothedLine(liveSmooth);\r\n        if (this.showPoints) this.drawPoints(liveSmooth);\r\n      }\r\n    } else if (this.mouse.button === 0 && this.mouse.lastButton === 1) {\r\n      this.OnBlur();\r\n    }\r\n  }\r\n\r\n  simplifyLine(points, length): any {\r\n    //  https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm\r\n    var simplify = function(start, end) {\r\n      // recursize simplifies points from start to end\r\n      var maxDist,\r\n        index,\r\n        i,\r\n        xx,\r\n        yy,\r\n        dx,\r\n        dy,\r\n        ddx,\r\n        ddy,\r\n        p1,\r\n        p2,\r\n        p,\r\n        t,\r\n        dist,\r\n        dist1;\r\n      p1 = points[start];\r\n      p2 = points[end];\r\n      xx = p1[0];\r\n      yy = p1[1];\r\n      ddx = p2[0] - xx;\r\n      ddy = p2[1] - yy;\r\n      dist1 = ddx * ddx + ddy * ddy;\r\n      maxDist = length;\r\n      for (var i = start + 1; i < end; i++) {\r\n        p = points[i];\r\n        if (ddx !== 0 || ddy !== 0) {\r\n          t = ((p[0] - xx) * ddx + (p[1] - yy) * ddy) / dist1;\r\n          if (t > 1) {\r\n            dx = p[0] - p2[0];\r\n            dy = p[1] - p2[1];\r\n          } else if (t > 0) {\r\n            dx = p[0] - (xx + ddx * t);\r\n            dy = p[1] - (yy + ddy * t);\r\n          } else {\r\n            dx = p[0] - xx;\r\n            dy = p[1] - yy;\r\n          }\r\n        } else {\r\n          dx = p[0] - xx;\r\n          dy = p[1] - yy;\r\n        }\r\n        dist = dx * dx + dy * dy;\r\n        if (dist > maxDist) {\r\n          index = i;\r\n          maxDist = dist;\r\n        }\r\n      }\r\n\r\n      if (maxDist > length) {\r\n        // continue simplification while maxDist > length\r\n        if (index - start > 1) {\r\n          simplify(start, index);\r\n        }\r\n        newLine.push(points[index]);\r\n        if (end - index > 1) {\r\n          simplify(index, end);\r\n        }\r\n      }\r\n    };\r\n    var end = points.length - 1;\r\n    var newLine = [points[0]];\r\n    simplify(0, end);\r\n    newLine.push(points[end]);\r\n    return newLine;\r\n  }\r\n\r\n  smoothLine(points, cornerThres, match): any {\r\n    // adds bezier control points at points if lines have angle less than thres\r\n    var p1,\r\n      p2,\r\n      p3,\r\n      dist1,\r\n      dist2,\r\n      x,\r\n      y,\r\n      endP,\r\n      len,\r\n      angle,\r\n      i,\r\n      newPoints,\r\n      aLen,\r\n      closed,\r\n      bal,\r\n      cont1,\r\n      nx1,\r\n      nx2,\r\n      ny1,\r\n      ny2,\r\n      np;\r\n    function dot(x, y, xx, yy) {\r\n      // get do product\r\n      // dist1,dist2,nx1,nx2,ny1,ny2 are the length and  normals and used outside function\r\n      // normalise both vectors\r\n      dist1 = Math.sqrt(x * x + y * y); // get length\r\n      if (dist1 > 0) {\r\n        // normalise\r\n        nx1 = x / dist1;\r\n        ny1 = y / dist1;\r\n      } else {\r\n        nx1 = 1; // need to have something so this will do as good as anything\r\n        ny1 = 0;\r\n      }\r\n      dist2 = Math.sqrt(xx * xx + yy * yy);\r\n      if (dist2 > 0) {\r\n        nx2 = xx / dist2;\r\n        ny2 = yy / dist2;\r\n      } else {\r\n        nx2 = 1;\r\n        ny2 = 0;\r\n      }\r\n      return Math.acos(nx1 * nx2 + ny1 * ny2); // dot product\r\n    }\r\n    newPoints = []; // array for new points\r\n    aLen = points.length;\r\n    if (aLen <= 2) {\r\n      // nothing to if line too short\r\n      for (i = 0; i < aLen; i++) {\r\n        // ensure that the points are copied\r\n        newPoints.push([points[i][0], points[i][1]]);\r\n      }\r\n      return newPoints;\r\n    }\r\n    p1 = points[0];\r\n    endP = points[aLen - 1];\r\n    i = 0; // start from second poitn if line not closed\r\n    closed = false;\r\n    len = Math.hypot(p1[0] - endP[0], p1[1] - endP[1]);\r\n    if (len < Math.SQRT2) {\r\n      // end points are the same. Join them in coordinate space\r\n      endP = p1;\r\n      i = 0; // start from first point if line closed\r\n      p1 = points[aLen - 2];\r\n      closed = true;\r\n    }\r\n    newPoints.push([points[i][0], points[i][1]]);\r\n    for (; i < aLen - 1; i++) {\r\n      p2 = points[i];\r\n      p3 = points[i + 1];\r\n      angle = Math.abs(\r\n        dot(p2[0] - p1[0], p2[1] - p1[1], p3[0] - p2[0], p3[1] - p2[1])\r\n      );\r\n      if (dist1 !== 0) {\r\n        // dist1 and dist2 come from dot function\r\n        if (angle < cornerThres * 3.14) {\r\n          // bend it if angle between lines is small\r\n          if (match) {\r\n            dist1 = Math.min(dist1, dist2);\r\n            dist2 = dist1;\r\n          }\r\n          // use the two normalized vectors along the lines to create the tangent vector\r\n          x = (nx1 + nx2) / 2;\r\n          y = (ny1 + ny2) / 2;\r\n          len = Math.sqrt(x * x + y * y); // normalise the tangent\r\n          if (len === 0) {\r\n            newPoints.push([p2[0], p2[1]]);\r\n          } else {\r\n            x /= len;\r\n            y /= len;\r\n            if (newPoints.length > 0) {\r\n              var np = newPoints[newPoints.length - 1];\r\n              np.push(p2[0] - x * dist1 * 0.25);\r\n              np.push(p2[1] - y * dist1 * 0.25);\r\n            }\r\n            newPoints.push([\r\n              // create the new point with the new bezier control points.\r\n              p2[0],\r\n              p2[1],\r\n              p2[0] + x * dist2 * 0.25,\r\n              p2[1] + y * dist2 * 0.25\r\n            ]);\r\n          }\r\n        } else {\r\n          newPoints.push([p2[0], p2[1]]);\r\n        }\r\n      }\r\n      p1 = p2;\r\n    }\r\n    if (closed) {\r\n      // if closed then copy first point to last.\r\n      p1 = [];\r\n      for (i = 0; i < newPoints[0].length; i++) {\r\n        p1.push(newPoints[0][i]);\r\n      }\r\n      newPoints.push(p1);\r\n    } else {\r\n      newPoints.push([\r\n        points[points.length - 1][0],\r\n        points[points.length - 1][1]\r\n      ]);\r\n    }\r\n    return newPoints;\r\n  }\r\n\r\n  drawSmoothedLine(line): any {\r\n    let thickness = this.calculateThickness(line);\r\n\r\n    var i, p, p1, w;\r\n    this.context.moveTo(line[0][0], line[0][1]);\r\n    for (i = 0; i < line.length - 1; i++) {\r\n      this.context.beginPath();\r\n      p = line[i];\r\n      p1 = line[i + 1];\r\n      this.context.moveTo(p[0], p[1]);\r\n      this.context.lineWidth = thickness[i];\r\n      if (p.length === 2) {\r\n        // linear\r\n        this.context.lineTo(p1[0], p1[1]);\r\n      } else if (p.length === 4) {\r\n        // bezier 2nd order\r\n        this.context.quadraticCurveTo(p[2], p[3], p1[0], p1[1]);\r\n      } else {\r\n        // bezier 3rd order\r\n        this.context.bezierCurveTo(p[2], p[3], p[4], p[5], p1[0], p1[1]);\r\n      }\r\n      this.context.stroke();\r\n    }\r\n  }\r\n\r\n  drawPoints(line): void {\r\n    line.forEach(e => {\r\n      this.context.beginPath();\r\n      this.context.arc(e[0], e[1], 5, 0, 2 * Math.PI);\r\n      this.context.fillStyle = \"red\";\r\n      this.context.fill();\r\n    });\r\n  }\r\n\r\n  calculateThickness(line: Array<any>): any {\r\n    let thickness = [];\r\n    let getDistances = () => {\r\n      var i, p, p1, w;\r\n      for (i = 0; i < line.length - 1; i++) {\r\n        p = line[i];\r\n        p1 = line[i + 1];\r\n        // HERE WE CAN SET THICKNESS\r\n        w = Math.hypot(p1[0] - p[0], p1[1] - p[1]);\r\n        w =\r\n          this.lineWidth +\r\n          ((this.maxDist + this.detail) / 2 -\r\n            Math.min(Math.max(w, this.detail), this.maxDist)) /\r\n            this.widthVariable;\r\n        thickness[i] = w;\r\n      }\r\n    };\r\n\r\n    let average = () => {\r\n      var i, p, p1, w;\r\n      for (i = 0; i < thickness.length - 1; i++) {\r\n        p = thickness[i];\r\n        p1 = thickness[i + 1];\r\n        w = (p + p1) / 2;\r\n        thickness[i] = w;\r\n      }\r\n    };\r\n\r\n    getDistances();\r\n    average();\r\n    average();\r\n    return thickness;\r\n  }\r\n\r\n  createImage(): any {\r\n    let image = document.createElement(\"canvas\");\r\n    image.width = this.xSize;\r\n    image.height = this.ySize;\r\n    image[\"context\"] = image.getContext(\"2d\");\r\n    return image;\r\n  }\r\n\r\n  clearImage(): any {\r\n    this.buffer.context.clearRect(\r\n      0,\r\n      0,\r\n      this.canvas.nativeElement.width,\r\n      this.canvas.nativeElement.height\r\n    );\r\n  }\r\n\r\n  clearRect(): void {\r\n    this.context.clearRect(\r\n      0,\r\n      0,\r\n      this.canvas.nativeElement.width,\r\n      this.canvas.nativeElement.height\r\n    );\r\n\r\n    this.rect = this.canvas.nativeElement.getBoundingClientRect();\r\n    this.xScale = this.xSize / this.rect.width;\r\n    this.yScale = this.ySize / this.rect.height;\r\n  }\r\n\r\n  reset() {\r\n    this.context = this.canvas.nativeElement.getContext(\"2d\");\r\n    this.context.lineWidth = this.lineWidth;\r\n    this.context.lineJoin = \"round\";\r\n    this.context.lineCap = \"round\";\r\n    this.context.strokeStyle = \"black\";\r\n    this.clearRect();\r\n    this.buffer = this.createImage();\r\n  }\r\n\r\n  OnBlur() {\r\n    let image = new Image();\r\n    image.src = this.canvas.nativeElement.toDataURL(\"image/png\");\r\n    this.onBlur.emit(image);\r\n  }\r\n}\r\n","<div class=\"signature\">\r\n  <div class=\"redo\">\r\n    <!-- <br-icon-button\r\n      name=\"redo-alt\"\r\n      type=\"action\"\r\n      (click)=\"reset()\"\r\n    ></br-icon-button> -->\r\n    <i (click)=\"reset()\" class=\"far fa-redo-alt icon\"></i>\r\n  </div>\r\n  <canvas\r\n    class=\"signature-pad\"\r\n    [width]=\"xSize\"\r\n    [height]=\"ySize\"\r\n    #myCanvas\r\n    (mousemove)=\"mouseMove($event)\"\r\n    (mousedown)=\"mouseMove($event)\"\r\n    (mouseup)=\"mouseMove($event)\"\r\n    (mouseout)=\"mouseMove($event)\"\r\n    (touchstart)=\"mouseMove($event)\"\r\n    (touchmove)=\"mouseMove($event)\"\r\n    (touchend)=\"mouseMove($event)\"\r\n    (touchcancel)=\"mouseMove($event)\"\r\n    (contextmenu)=\"preventContext($event)\"\r\n  >\r\n  </canvas>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-slider\",\r\n  templateUrl: \"./slider.component.html\",\r\n  styleUrls: [\"./slider.component.scss\"]\r\n})\r\nexport class SliderComponent implements OnInit {\r\n  @Input() min: number = 0;\r\n  @Input() max: number;\r\n  @Input() value: any;\r\n  @Input() multi: boolean;\r\n  @Input() labels: Array<string>;\r\n  @Input() title: string;\r\n  @Input() unit: string;\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n  @Output() onMove: EventEmitter<any> = new EventEmitter();\r\n\r\n  maxValue: number = 0;\r\n  minValue: number = 0;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.setValue();\r\n  }\r\n\r\n  setValue() {\r\n    if (this.value) {\r\n      if (typeof this.value === \"number\") {\r\n        this.maxValue = this.value;\r\n        this.minValue = 0;\r\n      } else {\r\n        this.maxValue = this.value[1];\r\n        this.minValue = this.value[0];\r\n      }\r\n    }\r\n  }\r\n\r\n  onMax(e) {\r\n    this.maxValue = e.target.value;\r\n    if (this.maxValue < this.minValue) this.minValue = this.maxValue;\r\n    this.onMove.emit([this.minValue, this.maxValue]);\r\n  }\r\n\r\n  onMin(e) {\r\n    this.minValue = e.target.value;\r\n    if (this.minValue > this.maxValue) this.maxValue = this.minValue;\r\n    this.onMove.emit([this.minValue, this.maxValue]);\r\n  }\r\n\r\n  onDone() {\r\n    this.onBlur.emit([this.minValue, this.maxValue]);\r\n  }\r\n\r\n  get barWidth() {\r\n    return (\r\n      ((this.maxValue - this.min - (this.minValue - this.min)) /\r\n        (this.max - this.min)) *\r\n      100\r\n    );\r\n  }\r\n\r\n  get barLeft() {\r\n    return ((this.minValue - this.min) / (this.max - this.min)) * 100;\r\n  }\r\n}\r\n","<div class=\"slider-container\">\r\n  <label>{{ title }}</label>\r\n  <em>\r\n    <ng-container *ngIf=\"multi && minValue !== maxValue\">\r\n      {{ labels[minValue - min] }} -\r\n    </ng-container>\r\n    {{ labels[maxValue - min] }} {{ unit }}</em\r\n  >\r\n  <div class=\"slider\">\r\n    <div\r\n      class=\"range-bar\"\r\n      [style.width.%]=\"barWidth\"\r\n      [style.left.%]=\"barLeft\"\r\n    ></div>\r\n    <input\r\n      type=\"range\"\r\n      class=\"main\"\r\n      [min]=\"min\"\r\n      [max]=\"max\"\r\n      [value]=\"maxValue\"\r\n      (mousemove)=\"onMax($event)\"\r\n      (touchmove)=\"onMax($event)\"\r\n      (blur)=\"onDone()\"\r\n      (change)=\"onDone()\"\r\n    />\r\n\r\n    <input\r\n      *ngIf=\"multi\"\r\n      type=\"range\"\r\n      class=\"secondary\"\r\n      [min]=\"min\"\r\n      [max]=\"max\"\r\n      [value]=\"minValue\"\r\n      (mousemove)=\"onMin($event)\"\r\n      (touchmove)=\"onMin($event)\"\r\n      (blur)=\"onDone()\"\r\n      (change)=\"onDone()\"\r\n    />\r\n  </div>\r\n</div>\r\n","import { Directive, HostListener, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[draggable]\",\r\n})\r\nexport class DragDirective {\r\n  //mousedown\r\n  //mouseup\r\n  //mouseenter / mouseover (includes children)\r\n  //mouseleave / mouseout\r\n  @Output() onMouseDown: EventEmitter<any> = new EventEmitter();\r\n  @Output() onMouseUp: EventEmitter<any> = new EventEmitter();\r\n  @Output() onMouseEnter: EventEmitter<any> = new EventEmitter();\r\n\r\n  @HostListener(\"mousedown\", [\"$event\"])\r\n  mouseDown(e) {\r\n    let item = this.getSortItem(e);\r\n    if (item) this.onMouseDown.emit(item);\r\n  }\r\n\r\n  @HostListener(\"mousemove\", [\"$event\"])\r\n  mouseEnter(e) {\r\n    let item = this.getSortItemEnter(e);\r\n    this.onMouseEnter.emit(item);\r\n  }\r\n\r\n  // getSortItem and getSortItemEnter should be refactored (lots of double code)\r\n\r\n  getSortItem(e) {\r\n    let current = e.target as HTMLElement;\r\n\r\n    let last: HTMLElement;\r\n\r\n    while (current) {\r\n      last = current;\r\n      if (\r\n        current.classList.contains(\"exclude-drag\") ||\r\n        current.tagName === \"BR-ICON-BUTTON\"\r\n      ) {\r\n        return null;\r\n      }\r\n      if (current.tagName === \"BR-SORT-ITEM\") break;\r\n      current = current.parentElement;\r\n    }\r\n\r\n    if (!current) return null;\r\n\r\n    let index = Array.from(current.parentNode.children).indexOf(current);\r\n    let rect = last.getBoundingClientRect();\r\n    let width = rect.width;\r\n    let height = rect.height;\r\n    let offset = { x: e.screenX - rect.left, y: e.screenY - rect.top };\r\n    let position = {\r\n      x: e.screenX - offset.x,\r\n      y: e.screenY - offset.y,\r\n    };\r\n    let mousePosition = {\r\n      x: e.screenX,\r\n      y: e.screenY,\r\n    };\r\n\r\n    return {\r\n      index: index,\r\n      offset: offset,\r\n      position: position,\r\n      width: width,\r\n      height: height,\r\n      mousePosition: mousePosition,\r\n      target: e.target,\r\n    };\r\n  }\r\n\r\n  getSortItemEnter(e) {\r\n    let current = e.target as HTMLElement;\r\n    let last: HTMLElement;\r\n    while (current) {\r\n      last = current;\r\n      if (current.tagName === \"BR-SORT-ITEM\") break;\r\n      current = current.parentElement;\r\n    }\r\n\r\n    let index = -1;\r\n\r\n    if (current)\r\n      index = Array.from(current.parentNode.children).indexOf(current);\r\n\r\n    return { index: index };\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  TemplateRef,\r\n  AfterViewInit,\r\n  OnChanges,\r\n  ViewContainerRef,\r\n  ViewChild,\r\n  ViewRef,\r\n  HostListener,\r\n  Output,\r\n  EventEmitter,\r\n  SimpleChanges,\r\n} from \"@angular/core\";\r\nimport { smoothHeight } from \"../animations\";\r\n\r\n@Component({\r\n  selector: \"br-sort\",\r\n  templateUrl: \"./sort.component.html\",\r\n  styleUrls: [\"./sort.component.scss\"],\r\n  animations: [smoothHeight],\r\n})\r\nexport class SortComponent implements AfterViewInit, OnChanges {\r\n  @Input() items: Array<any>;\r\n  @Input() template: TemplateRef<any>;\r\n  @Input() numbered: boolean;\r\n  @Input() columns: number;\r\n  @Input() itemHeight: string;\r\n  @Input() itemWidth: string;\r\n  @Input() itemSpacing: string;\r\n  @Input() spreadData: boolean = true;\r\n\r\n  @Output() onClick: EventEmitter<any> = new EventEmitter();\r\n  @Output() onDrop: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"placeholder\") ph: TemplateRef<any>;\r\n\r\n  @ViewChild(\"vc\", { read: ViewContainerRef }) vc: ViewContainerRef;\r\n  @ViewChild(\"dc\", { read: ViewContainerRef }) dc: ViewContainerRef;\r\n\r\n  myItems: Array<any>;\r\n  click: boolean;\r\n  dragStartPosition = { x: 0, y: 0 };\r\n  dragItem: ViewRef;\r\n  itemIndex: -1;\r\n  placeholder: ViewRef;\r\n  placeholderIndex = 9999;\r\n  position = { x: 0, y: 0 };\r\n  offset = { x: 0, y: 0 };\r\n  width = 0;\r\n  height = 0;\r\n\r\n  constructor() {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    // console.log(\"changes\");\r\n    // console.log(changes);\r\n    setTimeout(() => this.doChanges(), 10);\r\n    // if (changes[\"items\"]) {\r\n    // }\r\n  }\r\n\r\n  doChanges() {\r\n    // if (this.vc) this.vc.clear();\r\n    // if (this.dc) this.dc.clear();\r\n    this.populateList();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => this.populateList(), 10);\r\n  }\r\n\r\n  populateList() {\r\n    this.myItems = [...this.items];\r\n    if (this.vc) this.vc.clear();\r\n    if (this.dc) this.dc.clear();\r\n    this.myItems.forEach((item, index) => {\r\n      if (this.spreadData)\r\n        this.vc.createEmbeddedView(this.template, {\r\n          data: { ...item, index: index },\r\n        });\r\n      else {\r\n        this.vc.createEmbeddedView(this.template, {\r\n          data: { item, index: index },\r\n        });\r\n      }\r\n    });\r\n\r\n    this.placeholder = this.vc.createEmbeddedView(this.ph, null);\r\n  }\r\n\r\n  startDrag(e) {\r\n    console.log(e);\r\n    if (!this.dragItem) {\r\n      this.click = true;\r\n      this.dragItem = this.vc.detach(e.index);\r\n      this.itemIndex = e.index;\r\n      this.placeholderIndex = e.index;\r\n      this.position = e.position;\r\n      this.offset = e.offset;\r\n      this.width = e.width;\r\n      this.height = e.height;\r\n      this.dragStartPosition = e.mousePosition;\r\n\r\n      this.dc.insert(this.dragItem);\r\n      this.vc.move(this.placeholder, e.index);\r\n    }\r\n  }\r\n\r\n  @HostListener(\"window:mousemove\", [\"$event\"])\r\n  onMouseMove(e) {\r\n    if (this.dragItem) {\r\n      this.updateDrag(e.screenX, e.screenY);\r\n      if (this.click) {\r\n        let dist = Math.hypot(\r\n          e.screenX - this.dragStartPosition.x,\r\n          e.screenY - this.dragStartPosition.y\r\n        );\r\n        if (dist > 5) this.click = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  updateDrag(mouseX, mouseY) {\r\n    this.position = {\r\n      x: mouseX - this.offset.x,\r\n      y: mouseY - this.offset.y,\r\n    };\r\n  }\r\n\r\n  mouseEnter(index) {\r\n    if (this.dragItem && index >= 0 && this.placeholderIndex != index) {\r\n      this.vc.move(this.placeholder, index);\r\n      this.placeholderIndex = index;\r\n    }\r\n  }\r\n\r\n  @HostListener(\"window:mouseup\")\r\n  drop() {\r\n    if (this.dragItem) {\r\n      this.dc.detach(0);\r\n      this.vc.insert(this.dragItem, this.placeholderIndex);\r\n      this.vc.move(this.placeholder, this.myItems.length);\r\n      this.dragItem = null;\r\n      this.height = 0;\r\n\r\n      this.myItems.splice(\r\n        this.placeholderIndex,\r\n        0,\r\n        this.myItems.splice(this.itemIndex, 1)[0]\r\n      );\r\n\r\n      if (this.click) {\r\n        this.onClick.emit(this.placeholderIndex);\r\n      } else {\r\n        this.onDrop.emit(this.myItems);\r\n      }\r\n\r\n      this.populateList();\r\n    }\r\n  }\r\n\r\n  swap(i, j) {\r\n    let item = this.vc.get(i);\r\n    this.vc.move(item, j);\r\n    [this.myItems[i], this.myItems[j]] = [this.myItems[j], this.myItems[i]];\r\n    this.onDrop.emit(this.myItems);\r\n  }\r\n}\r\n","<div class=\"sort\" [ngClass]=\"{ dragging: dragItem && !click }\">\r\n  <div class=\"numbers\" *ngIf=\"numbered\">\r\n    <div\r\n      *ngFor=\"let n of [].constructor(myItems.length); index as i\"\r\n      class=\"number-container\"\r\n      [ngStyle]=\"{\r\n        height: itemHeight,\r\n        width: itemWidth,\r\n        'margin-bottom': itemSpacing\r\n      }\"\r\n    >\r\n      <div class=\"number\">\r\n        {{ i + 1 }}\r\n      </div>\r\n      <div class=\"arrows\">\r\n        <br-icon-button\r\n          name=\"caret-up\"\r\n          style=\"solid\"\r\n          [type]=\"i == 0 ? 'disabled' : 'default'\"\r\n          (click)=\"swap(i, i - 1)\"\r\n        ></br-icon-button>\r\n        <br-icon-button\r\n          name=\"caret-down\"\r\n          style=\"solid\"\r\n          [type]=\"i == myItems.length - 1 ? 'disabled' : 'default'\"\r\n          (click)=\"swap(i, i + 1)\"\r\n        ></br-icon-button>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"sort-list\">\r\n    <!-- [spacing]=\"flex ? itemSpacing : 0\" -->\r\n    <br-grid\r\n      [columns]=\"columns\"\r\n      [columnGap]=\"itemSpacing\"\r\n      alignment=\"stretch\"\r\n      (onMouseDown)=\"startDrag($event)\"\r\n      (onMouseEnter)=\"mouseEnter($event.index)\"\r\n      draggable\r\n      class=\"sort-area\"\r\n      [ngClass]=\"{ dragging: dragItem && !click }\"\r\n    >\r\n      <ng-container #vc></ng-container>\r\n    </br-grid>\r\n\r\n    <div class=\"drag-area\" [ngClass]=\"{ dragging: dragItem && !click }\">\r\n      <div\r\n        class=\"drag-container\"\r\n        [ngStyle]=\"{\r\n          'top.px': position.y,\r\n          'left.px': columns ? position.x : 'auto',\r\n          'width.px': width\r\n        }\"\r\n      >\r\n        <ng-container #dc></ng-container>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<ng-template #placeholder\r\n  ><div\r\n    class=\"placeholder\"\r\n    [ngStyle]=\"{ 'height.px': height, 'width.px': width }\"\r\n  ></div\r\n></ng-template>\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-sort-item\",\r\n  templateUrl: \"./sort-item.component.html\",\r\n  styleUrls: [\"./sort-item.component.scss\"]\r\n})\r\nexport class SortItemComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div class=\"sort-item\">\r\n  <div class=\"sort-item--content\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-sticky\",\r\n  templateUrl: \"./sticky.component.html\",\r\n  styleUrls: [\"./sticky.component.scss\"]\r\n})\r\nexport class StickyComponent implements OnInit {\r\n  @Input() fixed: boolean = true;\r\n  @Input() hidden: boolean;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div class=\"sticky-container\" [ngClass]=\"{ fixed: fixed, hidden: hidden }\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-tab\",\r\n  templateUrl: \"./tab.component.html\",\r\n  styleUrls: [\"./tab.component.scss\"],\r\n})\r\nexport class TabComponent implements OnInit {\r\n  @Input() title: string;\r\n  active: boolean = false;\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div *ngIf=\"active\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  ContentChildren,\r\n  QueryList,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport { TabComponent } from \"./tab/tab.component\";\r\n\r\n@Component({\r\n  selector: \"br-tabs\",\r\n  templateUrl: \"./tabs.component.html\",\r\n  styleUrls: [\"./tabs.component.scss\"],\r\n})\r\nexport class TabsComponent implements AfterContentInit {\r\n  @ContentChildren(TabComponent) tabs: QueryList<TabComponent>;\r\n\r\n  constructor() {}\r\n\r\n  ngAfterContentInit() {\r\n    let activeTabs = this.tabs.filter((tab) => tab.active);\r\n\r\n    if (activeTabs.length === 0) {\r\n      this.selectTab(this.tabs.first);\r\n    }\r\n  }\r\n\r\n  selectTab(tab: TabComponent) {\r\n    this.tabs.toArray().forEach((tab) => (tab.active = false));\r\n\r\n    tab.active = true;\r\n  }\r\n}\r\n","<div class=\"tabs-nav\">\r\n  <div\r\n    class=\"tab-nav\"\r\n    *ngFor=\"let tab of tabs\"\r\n    (click)=\"selectTab(tab)\"\r\n    [class.active]=\"tab.active\"\r\n  >\r\n    {{ tab.title }}\r\n  </div>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n","import {\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  AfterViewInit,\r\n  OnChanges,\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { ControlContainer } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"br-textarea\",\r\n  templateUrl: \"./textarea.component.html\",\r\n  styleUrls: [\"./textarea.component.scss\"],\r\n})\r\nexport class TextareaComponent implements OnInit, OnChanges, AfterViewInit {\r\n  @Input() name: string;\r\n  @Input() label: string;\r\n  @Input() value: string;\r\n  @Input() messages: any[];\r\n  @Input() rows: number = 5;\r\n  @Input() optionalDescription: string;\r\n  @Input() hideCheckmark: boolean;\r\n  @Input() autoHeight: boolean = true;\r\n  @Input() infoText: string;\r\n\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"textarea\") textarea: any;\r\n\r\n  inputValue: string = \"\";\r\n  height: string;\r\n\r\n  constructor(public controlContainer: ControlContainer) {}\r\n\r\n  ngOnInit() {\r\n    this.setValue(this.value);\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.setHeight();\r\n  }\r\n\r\n  ngOnChanges() {\r\n    this.setValue(this.value);\r\n    setTimeout(() => this.setHeight(), 10);\r\n  }\r\n\r\n  setValue(val: string) {\r\n    if (val) {\r\n      if (val !== \" \") {\r\n        this.inputValue = val;\r\n      } else {\r\n        this.value = \"\";\r\n        this.inputValue = \"\";\r\n      }\r\n    }\r\n  }\r\n\r\n  get hasControl() {\r\n    return this.controlContainer.control.get(this.name) !== null;\r\n  }\r\n\r\n  get control() {\r\n    return this.controlContainer.control;\r\n  }\r\n\r\n  get controlInput() {\r\n    return this.control.get(this.name);\r\n  }\r\n\r\n  get isOptional() {\r\n    return this.optionalDescription !== undefined;\r\n  }\r\n\r\n  get isFilled() {\r\n    if (this.hasControl)\r\n      return this.controlContainer.control.get(this.name).value !== \"\";\r\n    else return this.inputValue !== \"\";\r\n  }\r\n\r\n  get validate() {\r\n    let myControl = this.controlContainer.control.get(this.name);\r\n    let isSuccess = (myControl.dirty || myControl.touched) && myControl.valid;\r\n    let isError = (myControl.dirty || myControl.touched) && myControl.invalid;\r\n\r\n    return {\r\n      success: isSuccess,\r\n      error: isError,\r\n    };\r\n  }\r\n\r\n  get controlErrors() {\r\n    let errors = this.controlContainer.control.get(this.name).errors;\r\n    if (errors != null) {\r\n      return Object.keys(errors).map((keyError) => {\r\n        return keyError;\r\n      });\r\n    }\r\n  }\r\n\r\n  OnBlur() {\r\n    this.onBlur.emit(this.inputValue);\r\n  }\r\n\r\n  OnChange() {\r\n    this.setHeight();\r\n  }\r\n\r\n  setHeight() {\r\n    if (this.autoHeight) {\r\n      this.textarea.nativeElement.style.height = \"auto\";\r\n      this.textarea.nativeElement.style.height =\r\n        this.textarea.nativeElement.scrollHeight + \"px\";\r\n    }\r\n  }\r\n}\r\n","<ng-container *ngIf=\"hasControl\" [formGroup]=\"control\">\r\n  <div class=\"input\" [ngClass]=\"validate\">\r\n    <textarea\r\n      [name]=\"name\"\r\n      [formControlName]=\"name\"\r\n      [ngClass]=\"{ filled: isFilled }\"\r\n      [rows]=\"rows\"\r\n      [ngStyle]=\"{ height: height }\"\r\n      (blur)=\"OnBlur()\"\r\n      (input)=\"OnChange()\"\r\n      #textarea\r\n    ></textarea>\r\n    <label\r\n      >{{ label }}\r\n      <ng-container *ngIf=\"isOptional\">\r\n        - <em>{{ optionalDescription }}</em>\r\n      </ng-container>\r\n    </label>\r\n\r\n    <div class=\"bar\"></div>\r\n\r\n    <br-icon\r\n      *ngIf=\"!hideCheckmark\"\r\n      style=\"regular\"\r\n      name=\"check\"\r\n      class=\"success\"\r\n    ></br-icon>\r\n\r\n    <br-icon style=\"regular\" name=\"times\" class=\"error\"></br-icon>\r\n\r\n    <br-popover [parentWidth]=\"true\" *ngIf=\"infoText\">\r\n      <br-icon\r\n        style=\"regular\"\r\n        name=\"info-circle\"\r\n        color=\"var(--primary-medium)\"\r\n      ></br-icon>\r\n\r\n      <ng-container content>\r\n        <h4>{{ label }}</h4>\r\n        <p>{{ infoText }}</p>\r\n      </ng-container>\r\n    </br-popover>\r\n\r\n    <ng-container\r\n      *ngIf=\"\r\n        messages &&\r\n        (controlInput.touched || controlInput.dirty) &&\r\n        controlInput.invalid\r\n      \"\r\n    >\r\n      <ng-container *ngFor=\"let message of controlErrors\">\r\n        <div class=\"textarea__message\" *ngIf=\"messages[message]\">\r\n          {{ messages[message] }}\r\n        </div>\r\n      </ng-container>\r\n    </ng-container>\r\n  </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!hasControl\" [formGroup]=\"\">\r\n  <div class=\"input\">\r\n    <textarea\r\n      [name]=\"name\"\r\n      [ngClass]=\"{ filled: isFilled }\"\r\n      [(ngModel)]=\"inputValue\"\r\n      [ngModelOptions]=\"{ standalone: true }\"\r\n      [rows]=\"rows\"\r\n      [ngStyle]=\"{ height: height }\"\r\n      (blur)=\"OnBlur()\"\r\n      (input)=\"OnChange()\"\r\n      #textarea\r\n    ></textarea>\r\n\r\n    <label\r\n      >{{ label }}\r\n      <ng-container *ngIf=\"isOptional\">\r\n        - <em>{{ optionalDescription }}</em>\r\n      </ng-container>\r\n    </label>\r\n\r\n    <div class=\"bar\"></div>\r\n\r\n    <br-popover [parentWidth]=\"true\" *ngIf=\"infoText\">\r\n      <br-icon\r\n        class=\"info-icon\"\r\n        style=\"regular\"\r\n        name=\"info-circle\"\r\n        color=\"var(--primary-medium)\"\r\n      ></br-icon>\r\n\r\n      <ng-container content>\r\n        <h4>{{ label }}</h4>\r\n        <p>{{ infoText }}</p>\r\n      </ng-container>\r\n    </br-popover>\r\n  </div>\r\n</ng-container>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnInit,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\nimport type { TreeNode } from '../tree-editor.component';\r\nimport { smoothHeight } from '../../animations';\r\n\r\n@Component({\r\n  selector: 'br-tree-editor-item',\r\n  templateUrl: './tree-editor-item.component.html',\r\n  styleUrls: ['./tree-editor-item.component.scss'],\r\n  animations: [smoothHeight],\r\n})\r\nexport class TreeEditorItemComponent implements OnInit {\r\n  @Input() node: TreeNode;\r\n  @Input() level: number = 0;\r\n  @Input() maxLevel: number = 0;\r\n  @Input() path: Array<number> = [0];\r\n  @Input() currentPath: Array<number> = [0];\r\n  @Input() expanded: Array<String> = [];\r\n  @Input() placeholder: Array<String>;\r\n  @Input() headers: Array<String>;\r\n\r\n  @Output() returnPath: EventEmitter<any> = new EventEmitter();\r\n  @Output() returnAdd: EventEmitter<any> = new EventEmitter();\r\n\r\n  Arr = Array;\r\n  myPlaceholder: String;\r\n  myHeader: String;\r\n\r\n  ngOnInit() {\r\n    this.myPlaceholder = this.placeholder[this.level]\r\n      ? this.placeholder[this.level]\r\n      : this.placeholder[this.placeholder.length - 1];\r\n  }\r\n\r\n  onClick() {\r\n    this.pathReturnItem(this.path);\r\n  }\r\n\r\n  onAdd(path = this.path) {\r\n    this.returnAdd.emit(path);\r\n  }\r\n\r\n  pathReturnItem(path) {\r\n    this.returnPath.emit(path);\r\n  }\r\n\r\n  get active() {\r\n    if (this.path.toString() == this.currentPath.toString()) return true;\r\n    else return false;\r\n  }\r\n\r\n  get hasChildren() {\r\n    if (!this.node.children || !(this.node.children.length > 0)) return false;\r\n    else return true;\r\n  }\r\n\r\n  get open() {\r\n    return this.expanded.includes(this.path.join(''));\r\n  }\r\n\r\n  get noName() {\r\n    if (this.node.title) return this.node.title === this.myPlaceholder;\r\n    return true;\r\n  }\r\n}\r\n","<div class=\"item\" [ngClass]=\"{ active: active, new: noName }\">\r\n  <div class=\"title-bar\" [ngStyle]=\"{ 'z-index': 100 - level }\">\r\n    <div *ngFor=\"let i of Arr(level).fill(1)\" class=\"spacer\"></div>\r\n\r\n    <!-- <div *ngIf=\"!hasChildren\" class=\"spacer\"></div> -->\r\n\r\n    <div\r\n      *ngIf=\"hasChildren && node.children.length > 0\"\r\n      class=\"caret-container\"\r\n    >\r\n      <div class=\"caret\" [ngClass]=\"{ open: open }\" (click)=\"onClick()\">\r\n        <br-icon type=\"solid\" name=\"caret-right\"></br-icon>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"title\" (click)=\"onClick()\">\r\n      <span *ngIf=\"!noName\">\r\n        {{ node.title }}\r\n      </span>\r\n\r\n      <span *ngIf=\"noName\">\r\n        <br-indicator></br-indicator>\r\n        {{ myPlaceholder }}\r\n      </span>\r\n    </div>\r\n\r\n    <span\r\n      *ngIf=\"level <= maxLevel && !node.canNotAdd\"\r\n      class=\"plus\"\r\n      [ngClass]=\"{ open: open }\"\r\n    >\r\n      <br-icon style=\"solid\" name=\"plus\" (click)=\"onAdd()\"></br-icon>\r\n    </span>\r\n  </div>\r\n\r\n  <div [smoothHeight]=\"open\">\r\n    <div class=\"children\" [ngClass]=\"{ open: open }\">\r\n      <div *ngIf=\"headers && headers[level + 1]\" class=\"header\">\r\n        <div *ngFor=\"let i of Arr(level + 1).fill(1)\" class=\"spacer\"></div>\r\n\r\n        {{ headers[level + 1] }}\r\n      </div>\r\n      <br-tree-editor-item\r\n        *ngFor=\"let item of node.children; let i = index\"\r\n        [level]=\"level + 1\"\r\n        [maxLevel]=\"maxLevel\"\r\n        [node]=\"item\"\r\n        [path]=\"path.concat([i])\"\r\n        [placeholder]=\"placeholder\"\r\n        [expanded]=\"expanded\"\r\n        [currentPath]=\"currentPath\"\r\n        [headers]=\"headers\"\r\n        (returnPath)=\"pathReturnItem($event)\"\r\n        (returnAdd)=\"onAdd($event)\"\r\n      >\r\n      </br-tree-editor-item>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  SimpleChanges,\r\n  OnChanges\r\n} from \"@angular/core\";\r\n\r\nexport class TreeNode {\r\n  title: string;\r\n  children: Array<TreeNode>;\r\n  canNotAdd: boolean;\r\n}\r\n\r\n@Component({\r\n  selector: \"br-tree-editor\",\r\n  templateUrl: \"./tree-editor.component.html\",\r\n  styleUrls: [\"./tree-editor.component.scss\"]\r\n})\r\nexport class TreeEditorComponent implements OnInit, OnChanges {\r\n  @Input() structure: TreeNode;\r\n  @Input() maxLevel: number;\r\n  @Input() canAddOnTopLevel: boolean;\r\n  @Input() path: Array<number>;\r\n  @Input() addButton: String = \"Add category\";\r\n  @Input() placeholder: any = [\"New Item\"];\r\n  @Input() headers: Array<String>;\r\n\r\n  @Output() returnPath: EventEmitter<any> = new EventEmitter();\r\n  @Output() returnAdd: EventEmitter<any> = new EventEmitter();\r\n\r\n  currentPath = [-1];\r\n  level: number = 1;\r\n  expanded: Array<String> = [];\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {\r\n    if (typeof this.placeholder === \"string\")\r\n      this.placeholder = [this.placeholder];\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes[\"path\"]) {\r\n      this.currentPath = this.path;\r\n\r\n      for (let i = 1; i < this.path.length; i++) {\r\n        const strPath = this.path.slice(0, i).join(\"\");\r\n        if (!this.expanded.includes(strPath)) {\r\n          this.expanded.push(strPath);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  pathReturn(path: Array<number>) {\r\n    const strPath = path.join(\"\");\r\n    if (this.expanded.includes(strPath)) {\r\n      this.expanded = this.expanded.filter(e => e != strPath);\r\n    } else {\r\n      this.expanded.push(strPath);\r\n    }\r\n\r\n    this.level = path.length;\r\n    this.currentPath = path;\r\n    this.returnPath.emit(path);\r\n  }\r\n\r\n  addReturn(path) {\r\n    const strPath = path.join(\"\");\r\n    if (!this.expanded.includes(strPath)) {\r\n      this.expanded.push(strPath);\r\n    }\r\n\r\n    this.currentPath = path;\r\n    this.returnAdd.emit(path);\r\n  }\r\n}\r\n","<div class=\"tree-editor\">\r\n  <div class=\"tree-editor__navigation\">\r\n    <div *ngIf=\"headers\" class=\"header\">\r\n      {{ headers[0] }}\r\n    </div>\r\n    <br-tree-editor-item\r\n      *ngFor=\"let item of structure; let i = index\"\r\n      [node]=\"item\"\r\n      [path]=\"[i]\"\r\n      [maxLevel]=\"maxLevel\"\r\n      [expanded]=\"expanded\"\r\n      [currentPath]=\"currentPath\"\r\n      [placeholder]=\"placeholder\"\r\n      [headers]=\"headers\"\r\n      (returnPath)=\"pathReturn($event)\"\r\n      (returnAdd)=\"addReturn($event)\"\r\n    >\r\n    </br-tree-editor-item>\r\n    <br-add-button *ngIf=\"canAddOnTopLevel\" (click)=\"addReturn([])\">\r\n      {{ addButton }}\r\n    </br-add-button>\r\n  </div>\r\n\r\n  <div class=\"tree-editor__content\">\r\n    <ng-content *ngIf=\"level == 1\" select=\"[level=1]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 2\" select=\"[level=2]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 3\" select=\"[level=3]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 4\" select=\"[level=4]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 5\" select=\"[level=5]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 6\" select=\"[level=6]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 7\" select=\"[level=7]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 8\" select=\"[level=8]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 9\" select=\"[level=9]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 10\" select=\"[level=10]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 11\" select=\"[level=11]\"></ng-content>\r\n    <ng-content *ngIf=\"level == 12\" select=\"[level=12]\"></ng-content>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\r\nimport { smoothHeight } from \"../animations\";\r\n\r\nexport interface TimelineItem {\r\n  title: string;\r\n  titleDone: string;\r\n  cta: string;\r\n  icon: string;\r\n  status: string;\r\n  done: boolean;\r\n}\r\n\r\n@Component({\r\n  selector: \"br-timeline-item\",\r\n  templateUrl: \"./timeline-item.component.html\",\r\n  styleUrls: [\"./timeline-item.component.scss\"],\r\n  animations: [smoothHeight]\r\n})\r\nexport class TimelineItemComponent implements OnInit {\r\n  @Input() item: TimelineItem;\r\n  @Input() last: boolean;\r\n  @Input() open: boolean;\r\n\r\n  @Output() toggle: EventEmitter<any> = new EventEmitter();\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  toggleOpen() {\r\n    this.open = !this.open;\r\n    this.toggle.emit(this.open);\r\n  }\r\n\r\n  onClick() {\r\n    this.action.emit();\r\n  }\r\n}\r\n","<div\r\n  class=\"timeline-item\"\r\n  [ngClass]=\"{\r\n    completed: item.status === 'completed',\r\n    active: item.status === 'active'\r\n  }\"\r\n>\r\n  <div class=\"line\" *ngIf=\"!last\"></div>\r\n  <div class=\"card\" [ngClass]=\"{ open: open }\">\r\n    <h3>\r\n      {{ item.title }}\r\n      <br-icon\r\n        *ngIf=\"item.done\"\r\n        name=\"check\"\r\n        color=\"var(--success)\"\r\n        style=\"solid\"\r\n      ></br-icon>\r\n    </h3>\r\n    <div class=\"more-info\">\r\n      <br-icon-button\r\n        type=\"action\"\r\n        [name]=\"open ? 'times' : 'info-circle'\"\r\n        (click)=\"toggleOpen()\"\r\n      ></br-icon-button>\r\n    </div>\r\n    <div [smoothHeight]=\"open\">\r\n      <ng-container *ngIf=\"open\"><ng-content></ng-content></ng-container>\r\n    </div>\r\n  </div>\r\n  <div class=\"card-extra\">\r\n    <div class=\"button\">\r\n      <br-button\r\n        size=\"full\"\r\n        [type]=\"item.done ? 'secondary' : 'primary'\"\r\n        [icon]=\"item.icon\"\r\n        (click)=\"onClick()\"\r\n        rounded=\"both\"\r\n        >{{ item.cta }}</br-button\r\n      >\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"icon\">\r\n    <br-icon\r\n      [name]=\"item.icon\"\r\n      [color]=\"item.status == 'future' ? 'var(--gray-50)' : 'var(--gray-0)'\"\r\n      style=\"solid\"\r\n    ></br-icon>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport {\r\n  AngularFireStorage,\r\n  AngularFireUploadTask,\r\n} from '@angular/fire/compat/storage';\r\nimport { AngularFirestore } from '@angular/fire/compat/firestore';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'br-upload-task',\r\n  templateUrl: './upload-task.component.html',\r\n  styleUrls: ['./upload-task.component.scss'],\r\n})\r\nexport class UploadTaskComponent implements OnInit {\r\n  @Input() file: File;\r\n  @Input() name: string;\r\n  @Input() id: any;\r\n  @Input() serverPath: string;\r\n  @Input() fileType: Array<string>;\r\n  @Input() maxFileSize: number;\r\n  @Input() wrongTypeText: string;\r\n  @Input() tooBigText: string;\r\n  @Input() storage: AngularFireStorage;\r\n  @Input() database: AngularFirestore;\r\n  @Input() dontReturnPath: boolean;\r\n\r\n  @Output() uploadComplete: EventEmitter<any> = new EventEmitter();\r\n  @Output() uploadCancled: EventEmitter<any> = new EventEmitter();\r\n\r\n  wrongType: boolean;\r\n  tooBig: boolean;\r\n\r\n  task: AngularFireUploadTask;\r\n\r\n  percentage$: Observable<number>;\r\n  snapshot: Observable<any>;\r\n  downloadURL: string;\r\n\r\n  percentage: number;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    if (\r\n      this.fileType.includes(this.file.type.split('/')[0]) ||\r\n      this.fileType.includes(this.file.type.split('/')[1])\r\n    ) {\r\n      if (this.maxFileSize === -1 || this.file.size < this.maxFileSize) {\r\n        this.startUpload();\r\n      } else {\r\n        this.tooBig = true;\r\n      }\r\n    } else {\r\n      this.wrongType = true;\r\n    }\r\n  }\r\n\r\n  startUpload() {\r\n    let type = this.file.name.substr(this.file.name.lastIndexOf('.'));\r\n    let name = this.name ? this.name + type : `${Date.now()}_${this.file.name}`;\r\n    const path = `${this.serverPath}/${name}`;\r\n    const ref = this.storage.ref(path);\r\n\r\n    this.task = this.storage.upload(path, this.file);\r\n    this.percentage$ = this.task.percentageChanges();\r\n\r\n    const percentageSubscription = this.percentage$.subscribe(\r\n      (p) => (this.percentage = p)\r\n    );\r\n\r\n    this.snapshot = this.task.snapshotChanges().pipe(\r\n      finalize(async () => {\r\n        let didIt = true;\r\n\r\n        if (!this.dontReturnPath) {\r\n          this.downloadURL = await ref\r\n            .getDownloadURL()\r\n            .toPromise()\r\n            .catch((error) => {\r\n              console.error(error);\r\n              didIt = false;\r\n            });\r\n        }\r\n\r\n        if (didIt) {\r\n          percentageSubscription.unsubscribe();\r\n          this.uploadComplete.emit({\r\n            data: {\r\n              name: this.file.name,\r\n              path: path,\r\n              downloadURL: this.downloadURL,\r\n            },\r\n            id: this.id,\r\n          });\r\n        }\r\n      })\r\n    );\r\n  }\r\n\r\n  cancelUpload() {\r\n    this.uploadCancled.emit(this.id);\r\n    this.task.cancel();\r\n  }\r\n\r\n  isActive(snapshot) {\r\n    return (\r\n      snapshot.state === 'running' &&\r\n      snapshot.bytesTransferred < snapshot.totalBytes\r\n    );\r\n  }\r\n}\r\n","<ng-container *ngIf=\"(!tooBig || !wrongType) && snapshot | async as snap\">\r\n  <div class=\"upload-task\">\r\n    <label class=\"file-name\">{{ file.name }}</label>\r\n\r\n    <br-flex\r\n      justify=\"center\"\r\n      alignment=\"center\"\r\n      *ngIf=\"isActive(snap)\"\r\n      mobileRow=\"true\"\r\n    >\r\n      <!-- This guy breaks stuff\r\n   -->\r\n      <div class=\"progress\">\r\n        <div\r\n          *ngIf=\"percentage\"\r\n          class=\"bar\"\r\n          [ngStyle]=\"{ width: percentage + '%' }\"\r\n        ></div>\r\n      </div>\r\n\r\n      <div class=\"cancel-icon\">\r\n        <br-icon-button name=\"times\" (click)=\"cancelUpload()\"></br-icon-button>\r\n      </div>\r\n    </br-flex>\r\n  </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"wrongType || tooBig\">\r\n  <div class=\"upload-task\">\r\n    <label class=\"file-name\">{{ file.name }}</label>\r\n    <br-flex justify=\"center\" alignment=\"center\" mobileRow=\"true\">\r\n      <div class=\"upload-error\" *ngIf=\"wrongType\">\r\n        {{ wrongTypeText }}\r\n      </div>\r\n      <div class=\"upload-error\" *ngIf=\"tooBig\">\r\n        {{ tooBigText }}{{ file.size }}/{{ maxFileSize }} Bytes\r\n      </div>\r\n      <div class=\"cancel-icon\">\r\n        <br-icon-button name=\"times\" (click)=\"cancelUpload()\"></br-icon-button>\r\n      </div>\r\n    </br-flex>\r\n  </div>\r\n</ng-container>\r\n","import { Directive, EventEmitter, Output, HostListener } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[dropZone]\"\r\n})\r\nexport class DropZoneDirective {\r\n  @Output() dropped = new EventEmitter<FileList>();\r\n  @Output() hovered = new EventEmitter<boolean>();\r\n\r\n  constructor() {}\r\n\r\n  @HostListener(\"drop\", [\"$event\"])\r\n  onDrop($event) {\r\n    $event.preventDefault();\r\n    this.dropped.emit($event.dataTransfer.files);\r\n    this.hovered.emit(false);\r\n  }\r\n\r\n  @HostListener(\"dragover\", [\"$event\"])\r\n  onDragOver($event) {\r\n    $event.preventDefault();\r\n    this.hovered.emit(true);\r\n  }\r\n\r\n  @HostListener(\"dragleave\", [\"$event\"])\r\n  onDragLeave($event) {\r\n    $event.preventDefault();\r\n    this.hovered.emit(false);\r\n  }\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { smoothHeight } from '../animations';\r\nimport { AngularFireStorage } from '@angular/fire/compat/storage';\r\nimport { AngularFirestore } from '@angular/fire/compat/firestore';\r\n\r\n@Component({\r\n  selector: 'br-upload-box',\r\n  templateUrl: './upload-box.component.html',\r\n  styleUrls: ['./upload-box.component.scss'],\r\n  animations: [smoothHeight],\r\n})\r\nexport class UploadBoxComponent implements OnInit {\r\n  @Input() dragText: string = 'Drag-and-drop your files here, or';\r\n  @Input() browseText: string = 'browse to upload';\r\n  @Input() mobileText: string = 'Upload files';\r\n  @Input() wrongTypeText: string =\r\n    'This file type is not supported please upload a ';\r\n  @Input() tooBigText: string =\r\n    'This file bigger than the supported file size - ';\r\n  @Input() serverPath: string;\r\n  @Input() fileType: any;\r\n  @Input() multiple: boolean;\r\n  @Input() maxFileSize: number = -1;\r\n  @Input() storage: AngularFireStorage;\r\n  @Input() database: AngularFirestore;\r\n  @Input() name: string;\r\n  @Input() dontReturnPath: boolean;\r\n\r\n  @Output() uploadComplete: EventEmitter<any> = new EventEmitter();\r\n\r\n  files: Array<any> = [];\r\n\r\n  isHovering: boolean;\r\n\r\n  ngOnInit(): void {\r\n    if (typeof this.fileType === 'string' || this.fileType instanceof String)\r\n      this.fileType = [this.fileType];\r\n  }\r\n\r\n  startUpload(files: FileList) {\r\n    const numberOfFiles = this.multiple ? files.length : 1;\r\n    for (var i = 0; i < numberOfFiles; i++) {\r\n      this.files.push({\r\n        data: files.item(i),\r\n        id: '_' + Math.random().toString(36).substr(2, 9),\r\n      });\r\n    }\r\n  }\r\n\r\n  finishTask(val) {\r\n    this.files = this.files.filter((f) => f.id !== val.id);\r\n    this.uploadComplete.emit(val.data);\r\n  }\r\n\r\n  cancelTask(id) {\r\n    this.files = this.files.filter((f) => f.id !== id);\r\n  }\r\n\r\n  toggleHover(event: boolean) {\r\n    this.isHovering = event;\r\n  }\r\n}\r\n","<div class=\"upload-box\">\r\n  <div\r\n    class=\"dropzone\"\r\n    dropZone\r\n    (hovered)=\"toggleHover($event)\"\r\n    (dropped)=\"startUpload($event)\"\r\n    [class.hovering]=\"isHovering\"\r\n  >\r\n    <div class=\"desktop\">\r\n      <div class=\"dropzone--icon\">\r\n        <br-icon name=\"cloud-upload-alt\"></br-icon>\r\n      </div>\r\n\r\n      <p>\r\n        {{ dragText }}\r\n        <label class=\"upload-link\">\r\n          <input\r\n            type=\"file\"\r\n            (change)=\"startUpload($event.target.files)\"\r\n            [attr.multiple]=\"this.multiple ? 'multiple' : null\"\r\n          />{{ browseText }}\r\n        </label>\r\n      </p>\r\n    </div>\r\n\r\n    <div class=\"mobile\">\r\n      <label class=\"upload-link\">\r\n        <input\r\n          type=\"file\"\r\n          (change)=\"startUpload($event.target.files)\"\r\n          [attr.multiple]=\"this.multiple ? 'multiple' : null\"\r\n        />\r\n        <br-button type=\"primary\" icon=\"cloud-upload-alt\" size=\"full\">{{\r\n          mobileText\r\n        }}</br-button>\r\n      </label>\r\n    </div>\r\n\r\n    <div *ngFor=\"let file of files\" class=\"tasks\">\r\n      <br-upload-task\r\n        [file]=\"file.data\"\r\n        [name]=\"name ? name : null\"\r\n        [id]=\"file.id\"\r\n        [serverPath]=\"serverPath\"\r\n        [fileType]=\"fileType\"\r\n        [maxFileSize]=\"maxFileSize\"\r\n        [wrongTypeText]=\"wrongTypeText\"\r\n        [tooBigText]=\"tooBigText\"\r\n        [storage]=\"storage\"\r\n        [database]=\"database\"\r\n        [dontReturnPath]=\"dontReturnPath\"\r\n        (uploadComplete)=\"finishTask($event)\"\r\n        (uploadCancled)=\"cancelTask($event)\"\r\n      >\r\n      </br-upload-task>\r\n    </div>\r\n  </div>\r\n\r\n  <ng-content></ng-content>\r\n</div>\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"br-upload-item\",\r\n  host: { class: \"display-contents\" },\r\n  templateUrl: \"./upload-item.component.html\",\r\n  styleUrls: [\"./upload-item.component.scss\"],\r\n})\r\nexport class UploadItemComponent implements OnChanges {\r\n  @Input() title: String;\r\n  @Input() icon: String;\r\n  @Input() image: String;\r\n  @Input() clickable: boolean;\r\n  @Input() deletable: boolean = true;\r\n  @Input() containImage: boolean;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n  @Output() delete: EventEmitter<any> = new EventEmitter();\r\n\r\n  ngOnChanges() {\r\n    this.image = this.image;\r\n  }\r\n\r\n  onAction(): void {\r\n    this.action.emit();\r\n  }\r\n\r\n  onDelete(): void {\r\n    this.delete.emit();\r\n  }\r\n\r\n  log(e) {\r\n    console.log(e);\r\n  }\r\n}\r\n","<div class=\"wrapper\">\r\n  <div *ngIf=\"deletable\" class=\"delete\" (click)=\"onDelete()\">\r\n    <br-icon-button\r\n      class=\"icon\"\r\n      name=\"trash\"\r\n      [small]=\"true\"\r\n      type=\"dark\"\r\n    ></br-icon-button>\r\n  </div>\r\n  <br-card\r\n    [title]=\"title\"\r\n    [clickable]=\"clickable\"\r\n    size=\"full\"\r\n    [image]=\"image\"\r\n    [icon]=\"icon\"\r\n    [containImage]=\"containImage\"\r\n  >\r\n    <ng-content></ng-content\r\n  ></br-card>\r\n  <!-- <div\r\n    class=\"upload-item\"\r\n    [ngClass]=\"{ clickable: clickable }\"\r\n    (click)=\"onAction()\"\r\n  >\r\n    <div class=\"icon\"><br-icon [name]=\"icon\"></br-icon></div>\r\n    <h4 class=\"title\">{{ title }}</h4>\r\n    <ng-content></ng-content>\r\n  </div> -->\r\n</div>\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\nexport interface WizardSteps {\r\n  icon: string;\r\n  name: string;\r\n  description: string;\r\n}\r\n\r\n@Component({\r\n  selector: \"br-wizard\",\r\n  templateUrl: \"./wizard.component.html\",\r\n  styleUrls: [\"./wizard.component.scss\"]\r\n})\r\nexport class WizardComponent implements OnInit {\r\n  @Input() steps: Array<WizardSteps>;\r\n  @Input() current: number;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div class=\"wizard\">\r\n  <br-flex justify=\"between\" alignment=\"center\" mobileRow=\"true\">\r\n    <ng-container *ngFor=\"let step of steps; index as i\">\r\n      <br-popover position=\"bottom\">\r\n        <div\r\n          class=\"wizard-step\"\r\n          [ngClass]=\"{ active: current == i + 1, done: current > i + 1 }\"\r\n        >\r\n          <ng-container *ngIf=\"step.icon\">\r\n            <br-icon\r\n              [name]=\"step.icon\"\r\n              [color]=\"current <= i ? 'var(--gray-70)' : 'var(--gray-0)'\"\r\n            ></br-icon>\r\n          </ng-container>\r\n\r\n          <ng-container *ngIf=\"!step.icon\">\r\n            <strong class=\"dark\">{{ i + 1 }}</strong>\r\n          </ng-container>\r\n        </div>\r\n\r\n        <ng-container content>\r\n          {{ step.description }}\r\n        </ng-container>\r\n      </br-popover>\r\n      <div\r\n        *ngIf=\"i < steps.length - 1\"\r\n        class=\"line\"\r\n        [ngClass]=\"{ active: current == i + 1, done: current > i + 1 }\"\r\n      ></div>\r\n    </ng-container>\r\n  </br-flex>\r\n</div>\r\n","import { MessageModule } from \"./message/message.module\";\r\n\r\nimport { CommonModule, CurrencyPipe } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\n\r\nimport { AngularFireStorageModule } from \"@angular/fire/compat/storage\";\r\n\r\nimport * as defaultTheme from \"../style/default_theme\";\r\nimport { BrickComponent } from \"./brick.component\";\r\n\r\nimport { AddButtonComponent } from \"./add-button/add-button.component\";\r\nimport { AddressInputComponent } from \"./address-input/address-input.component\";\r\nimport { BarGraphComponent } from \"./bar-graph/bar-graph.component\";\r\nimport { BottomBarComponent } from \"./bottom-bar/bottom-bar.component\";\r\nimport { ButtonComponent } from \"./button/button.component\";\r\nimport { CardComponent } from \"./card/card.component\";\r\nimport { CarouselComponent } from \"./carousel/carousel.component\";\r\nimport { CheckboxComponent } from \"./checkbox/checkbox.component\";\r\nimport { CheckCardComponent } from \"./check-card/check-card.component\";\r\nimport { CodeExampleComponent } from \"./code-example/code-example.component\";\r\nimport { CollapseComponent } from \"./collapse/collapse.component\";\r\nimport { ColorSwatchComponent } from \"./color-swatch/color-swatch.component\";\r\nimport { ConfettiComponent } from \"./confetti/confetti.component\";\r\nimport { ControlGroupComponent } from \"./control-group/control-group.component\";\r\nimport { CookieConsentComponent } from \"./cookie-consent/cookie-consent.component\";\r\nimport { DataTableComponent } from \"./data-table/data-table.component\";\r\nimport { DatePickerComponent } from \"./date-picker/date-picker.component\";\r\nimport { DataWellComponent } from \"./data-well/data-well.component\";\r\nimport { FilterComponent } from \"./filter/filter.component\";\r\nimport { FlexComponent } from \"./flex/flex.component\";\r\nimport { FlexItemComponent } from \"./flex-item/flex-item.component\";\r\nimport { FooterComponent } from \"./footer/footer.component\";\r\nimport { FlagComponent } from \"./flag/flag.component\";\r\nimport { FlagUsComponent } from \"./flag/flags/flag.us\";\r\nimport { GridComponent } from \"./grid/grid.component\";\r\nimport { HeroComponent } from \"./hero/hero.component\";\r\nimport { IconComponent } from \"./icon/icon.component\";\r\nimport { IconButtonComponent } from \"./icon-button/icon-button.component\";\r\nimport { InputComponent } from \"./input/input.component\";\r\nimport { IndicatorComponent } from \"./indicator/indicator.component\";\r\nimport { ImageComponent } from \"./image/image.component\";\r\nimport { ImageViewerComponent } from \"./image-viewer/image-viewer.component\";\r\nimport { InfoPanelComponent } from \"./info-panel/info-panel.component\";\r\nimport { LoaderComponent } from \"./loader/loader.component\";\r\nimport { LogoBarComponent } from \"./logo-bar/logo-bar.component\";\r\nimport { MapComponent } from \"./map/map.component\";\r\nimport { MenuComponent } from \"./menu/menu.component\";\r\nimport { MenuItemComponent } from \"./menu-item/menu-item.component\";\r\nimport { MenuItemDropdownComponent } from \"./menu-item-dropdown/menu-item-dropdown.component\";\r\nimport { ModalComponent } from \"./modal/modal.component\";\r\nimport { MessageComponent } from \"./message/message.component\";\r\nimport { MessageContainerComponent } from \"./message-container/message-container.component\";\r\nimport { NavbarComponent } from \"./navbar/navbar.component\";\r\nimport { PageLayoutComponent } from \"./page-layout/page-layout.component\";\r\nimport { PaginationComponent } from \"./pagination/pagination.component\";\r\nimport { PhonenumberInputComponent } from \"./phonenumber-input/phonenumber-input.component\";\r\nimport { PopoverComponent } from \"./popover/popover.component\";\r\nimport { RadioButtonComponent } from \"./radio-button/radio-button.component\";\r\nimport { RatingComponent } from \"./rating/rating.component\";\r\nimport { SectionComponent } from \"./section/section.component\";\r\nimport { SelectComponent } from \"./select/select.component\";\r\nimport { ShowcaseCarouselComponent } from \"./showcase-carousel/showcase-carousel.component\";\r\nimport { SidebarComponent } from \"./sidebar/sidebar.component\";\r\nimport { SignaturePadComponent } from \"./signature-pad/signature-pad.component\";\r\nimport { SliderComponent } from \"./slider/slider.component\";\r\nimport { SortComponent } from \"./sort/sort.component\";\r\nimport { SortItemComponent } from \"./sort/sort-item/sort-item.component\";\r\nimport { StackComponent } from \"./stack/stack.component\";\r\nimport { StickyComponent } from \"./sticky/sticky.component\";\r\nimport { TabComponent } from \"./tabs/tab/tab.component\";\r\nimport { TabsComponent } from \"./tabs/tabs.component\";\r\nimport { TagComponent } from \"./tag/tag.component\";\r\nimport { ToggleComponent } from \"./toggle/toggle.component\";\r\nimport { TextareaComponent } from \"./textarea/textarea.component\";\r\nimport { TreeEditorComponent } from \"./tree-editor/tree-editor.component\";\r\nimport { TimelineItemComponent } from \"./timeline-item/timeline-item.component\";\r\nimport { TreeEditorItemComponent } from \"./tree-editor/tree-editor-item/tree-editor-item.component\";\r\nimport { UploadBoxComponent } from \"./upload-box/upload-box.component\";\r\nimport { UploadTaskComponent } from \"./upload-box/upload-task/upload-task.component\";\r\nimport { UploadItemComponent } from \"./upload-box/upload-item/upload-item.component\";\r\nimport { WizardComponent } from \"./wizard/wizard.component\";\r\n\r\n// import { TestPopoverComponent } from './popover/test-popover/test-popover.component';\r\n// import { PopoverContainerComponent } from './popover/popover-container/popover-container.component';\r\n\r\nimport { DragDirective } from \"./sort/drag.directive\";\r\nimport { PasswordEyeDirective } from \"./input/toggle-eye-password.directive\";\r\nimport { SmoothHeightDirective } from \"./_animations/smooth-height.directive\";\r\nimport { DropZoneDirective } from \"./upload-box/drop-zone.directive\";\r\nimport { HttpClientModule, HttpClientJsonpModule } from \"@angular/common/http\";\r\n\r\nconst components = [\r\n  BrickComponent,\r\n\r\n  AddButtonComponent,\r\n  AddressInputComponent,\r\n  BarGraphComponent,\r\n  BottomBarComponent,\r\n  ButtonComponent,\r\n  CardComponent,\r\n  CarouselComponent,\r\n  CheckboxComponent,\r\n  CheckCardComponent,\r\n  CodeExampleComponent,\r\n  CollapseComponent,\r\n  ColorSwatchComponent,\r\n  ConfettiComponent,\r\n  ControlGroupComponent,\r\n  CookieConsentComponent,\r\n  DataTableComponent,\r\n  DataWellComponent,\r\n  DatePickerComponent,\r\n  FilterComponent,\r\n  FlagComponent,\r\n  FlagUsComponent,\r\n  FlexComponent,\r\n  FlexItemComponent,\r\n  FooterComponent,\r\n  GridComponent,\r\n  HeroComponent,\r\n  IconComponent,\r\n  IconButtonComponent,\r\n  IndicatorComponent,\r\n  InputComponent,\r\n  InfoPanelComponent,\r\n  ImageComponent,\r\n  ImageViewerComponent,\r\n  LoaderComponent,\r\n  LogoBarComponent,\r\n  MapComponent,\r\n  MenuComponent,\r\n  MenuItemComponent,\r\n  MenuItemDropdownComponent,\r\n  MessageContainerComponent,\r\n  MessageComponent,\r\n  ModalComponent,\r\n  NavbarComponent,\r\n  PageLayoutComponent,\r\n  PaginationComponent,\r\n  PhonenumberInputComponent,\r\n  PopoverComponent,\r\n  RadioButtonComponent,\r\n  RatingComponent,\r\n  SectionComponent,\r\n  SelectComponent,\r\n  ShowcaseCarouselComponent,\r\n  SidebarComponent,\r\n  SignaturePadComponent,\r\n  SliderComponent,\r\n  SortComponent,\r\n  SortItemComponent,\r\n  StackComponent,\r\n  StickyComponent,\r\n  TabComponent,\r\n  TabsComponent,\r\n  TagComponent,\r\n  TextareaComponent,\r\n  ToggleComponent,\r\n  TreeEditorComponent,\r\n  TreeEditorItemComponent,\r\n  TimelineItemComponent,\r\n  UploadBoxComponent,\r\n  UploadTaskComponent,\r\n  UploadItemComponent,\r\n  WizardComponent,\r\n\r\n  PasswordEyeDirective,\r\n  SmoothHeightDirective,\r\n  DropZoneDirective,\r\n  DragDirective,\r\n\r\n  // PopoverContainerComponent,\r\n  // TestPopoverComponent,\r\n];\r\n\r\n@NgModule({\r\n  declarations: components,\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    AngularFireStorageModule,\r\n    HttpClientModule,\r\n    HttpClientJsonpModule,\r\n  ],\r\n  providers: [MessageModule, CurrencyPipe],\r\n  exports: components,\r\n})\r\nexport class BrickModule {\r\n  constructor() {\r\n    let node;\r\n    node = document.createElement(\"style\");\r\n    node.id = \"default-theme\";\r\n    node.innerHTML = defaultTheme.default;\r\n    document.getElementsByTagName(\"head\")[0].appendChild(node);\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of brick\r\n */\r\n\r\nexport * from \"./lib/brick.service\";\r\nexport * from \"./lib/message-container/message.service\";\r\nexport * from \"./lib/brick.component\";\r\nexport * from \"./lib/message/message.module\";\r\nexport * from \"./lib/image-viewer/image-viewer.module\";\r\n// export * from './lib/popover/popover-container/popover-container.module';\r\nexport * from \"./lib/brick.module\";\r\n\r\nexport * from \"./lib/sort/drag.directive\";\r\nexport * from \"./lib/input/toggle-eye-password.directive\";\r\nexport * from \"./lib/_animations/smooth-height.directive\";\r\nexport * from \"./lib/upload-box/drop-zone.directive\";\r\n\r\nexport * from \"./lib/flag/flags/flag.us\";\r\n// export * from \"./lib/tree-editor/tree-editor-item/tree-editor-item.component\";\r\n\r\n// export * from \"./lib/tree-editor/tree-editor-item/tree-editor-item.component\";\r\n\r\nexport * from \"./lib/add-button/add-button.component\";\r\nexport * from \"./lib/address-input/address-input.component\";\r\nexport * from \"./lib/bar-graph/bar-graph.component\";\r\nexport * from \"./lib/bottom-bar/bottom-bar.component\";\r\nexport * from \"./lib/button/button.component\";\r\nexport * from \"./lib/card/card.component\";\r\nexport * from \"./lib/carousel/carousel.component\";\r\nexport * from \"./lib/check-card/check-card.component\";\r\nexport * from \"./lib/checkbox/checkbox.component\";\r\nexport * from \"./lib/code-example/code-example.component\";\r\nexport * from \"./lib/collapse/collapse.component\";\r\nexport * from \"./lib/color-swatch/color-swatch.component\";\r\nexport * from \"./lib/confetti/confetti.component\";\r\nexport * from \"./lib/control-group/control-group.component\";\r\nexport * from \"./lib/cookie-consent/cookie-consent.component\";\r\nexport * from \"./lib/data-table/data-table.component\";\r\nexport * from \"./lib/data-well/data-well.component\";\r\nexport * from \"./lib/date-picker/date-picker.component\";\r\nexport * from \"./lib/filter/filter.component\";\r\nexport * from \"./lib/flag/flag.component\";\r\nexport * from \"./lib/flex/flex.component\";\r\nexport * from \"./lib/flex-item/flex-item.component\";\r\nexport * from \"./lib/footer/footer.component\";\r\nexport * from \"./lib/grid/grid.component\";\r\nexport * from \"./lib/hero/hero.component\";\r\nexport * from \"./lib/icon/icon.component\";\r\nexport * from \"./lib/icon-button/icon-button.component\";\r\nexport * from \"./lib/indicator/indicator.component\";\r\nexport * from \"./lib/info-panel/info-panel.component\";\r\nexport * from \"./lib/input/input.component\";\r\nexport * from \"./lib/image/image.component\";\r\nexport * from \"./lib/image-viewer/image-viewer.component\";\r\nexport * from \"./lib/loader/loader.component\";\r\nexport * from \"./lib/logo-bar/logo-bar.component\";\r\nexport * from \"./lib/map/map.component\";\r\nexport * from \"./lib/menu/menu.component\";\r\nexport * from \"./lib/menu-item/menu-item.component\";\r\nexport * from \"./lib/menu-item-dropdown/menu-item-dropdown.component\";\r\nexport * from \"./lib/message/message.component\";\r\nexport * from \"./lib/message/message.module\";\r\nexport * from \"./lib/message-container/message-container.component\";\r\nexport * from \"./lib/modal/modal.component\";\r\nexport * from \"./lib/navbar/navbar.component\";\r\nexport * from \"./lib/page-layout/page-layout.component\";\r\nexport * from \"./lib/pagination/pagination.component\";\r\nexport * from \"./lib/phonenumber-input/phonenumber-input.component\";\r\nexport * from \"./lib/popover/popover.component\";\r\nexport * from \"./lib/radio-button/radio-button.component\";\r\nexport * from \"./lib/rating/rating.component\";\r\nexport * from \"./lib/section/section.component\";\r\nexport * from \"./lib/select/select.component\";\r\nexport * from \"./lib/showcase-carousel/showcase-carousel.component\";\r\nexport * from \"./lib/sidebar/sidebar.component\";\r\nexport * from \"./lib/signature-pad/signature-pad.component\";\r\nexport * from \"./lib/slider/slider.component\";\r\nexport * from \"./lib/sort/sort.component\";\r\nexport * from \"./lib/sort/sort-item/sort-item.component\";\r\nexport * from \"./lib/stack/stack.component\";\r\nexport * from \"./lib/sticky/sticky.component\";\r\nexport * from \"./lib/tag/tag.component\";\r\nexport * from \"./lib/tabs/tab/tab.component\";\r\nexport * from \"./lib/tabs/tabs.component\";\r\nexport * from \"./lib/textarea/textarea.component\";\r\nexport * from \"./lib/timeline-item/timeline-item.component\";\r\nexport * from \"./lib/toggle/toggle.component\";\r\nexport * from \"./lib/tree-editor/tree-editor.component\";\r\nexport * from \"./lib/tree-editor/tree-editor-item/tree-editor-item.component\";\r\nexport * from \"./lib/upload-box/upload-box.component\";\r\nexport * from \"./lib/upload-box/upload-task/upload-task.component\";\r\nexport * from \"./lib/upload-box/upload-item/upload-item.component\";\r\nexport * from \"./lib/wizard/wizard.component\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultTheme.default"],"mappings":"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"}