{"version":3,"file":"ng-materialgrammi.mjs","sources":["../../../projects/materialgrammi/src/lib/materialgrammi.service.ts","../../../projects/materialgrammi/src/lib/seo.service.ts","../../../projects/materialgrammi/src/lib/materialgrammi.component.ts","../../../projects/materialgrammi/src/lib/components/test-component/test-component.component.ts","../../../projects/materialgrammi/src/lib/components/test-component/test-component.component.html","../../../projects/materialgrammi/src/lib/components/accordion-item/accordion-item.component.ts","../../../projects/materialgrammi/src/lib/components/accordion-item/accordion-item.component.html","../../../projects/materialgrammi/src/lib/components/accordion/accordion.component.ts","../../../projects/materialgrammi/src/lib/components/accordion/accordion.component.html","../../../projects/materialgrammi/src/lib/components/widget/widget.component.ts","../../../projects/materialgrammi/src/lib/components/widget/widget.component.html","../../../projects/materialgrammi/src/lib/components/alert/alert.component.ts","../../../projects/materialgrammi/src/lib/components/alert/alert.component.html","../../../projects/materialgrammi/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/materialgrammi/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/materialgrammi/src/lib/components/card/card.component.ts","../../../projects/materialgrammi/src/lib/components/card/card.component.html","../../../projects/materialgrammi/src/lib/components/chip/chip.component.ts","../../../projects/materialgrammi/src/lib/components/chip/chip.component.html","../../../projects/materialgrammi/src/lib/components/dragable/dragable.component.ts","../../../projects/materialgrammi/src/lib/components/dragable/dragable.component.html","../../../projects/materialgrammi/src/lib/components/dropable/dropable.component.ts","../../../projects/materialgrammi/src/lib/components/dropable/dropable.component.html","../../../projects/materialgrammi/src/lib/components/footer/footer.component.ts","../../../projects/materialgrammi/src/lib/components/footer/footer.component.html","../../../projects/materialgrammi/src/lib/components/checkbox/checkbox.component.ts","../../../projects/materialgrammi/src/lib/components/checkbox/checkbox.component.html","../../../projects/materialgrammi/src/lib/components/input/input.component.ts","../../../projects/materialgrammi/src/lib/components/input/input.component.html","../../../projects/materialgrammi/src/lib/dater.service.ts","../../../projects/materialgrammi/src/lib/components/overlay/overlay.component.ts","../../../projects/materialgrammi/src/lib/components/overlay/overlay.component.html","../../../projects/materialgrammi/src/lib/components/text-input/text-input.component.ts","../../../projects/materialgrammi/src/lib/components/text-input/text-input.component.html","../../../projects/materialgrammi/src/lib/components/button/button.component.ts","../../../projects/materialgrammi/src/lib/components/button/button.component.html","../../../projects/materialgrammi/src/lib/components/calendar/calendar.component.ts","../../../projects/materialgrammi/src/lib/components/calendar/calendar.component.html","../../../projects/materialgrammi/src/lib/components/date-input/date-input.component.ts","../../../projects/materialgrammi/src/lib/components/date-input/date-input.component.html","../../../projects/materialgrammi/src/lib/components/radio/radio.component.ts","../../../projects/materialgrammi/src/lib/components/radio/radio.component.html","../../../projects/materialgrammi/src/lib/components/select/select.component.ts","../../../projects/materialgrammi/src/lib/components/select/select.component.html","../../../projects/materialgrammi/src/lib/components/switch/switch.component.ts","../../../projects/materialgrammi/src/lib/components/switch/switch.component.html","../../../projects/materialgrammi/src/lib/components/list/list.component.ts","../../../projects/materialgrammi/src/lib/components/list/list.component.html","../../../projects/materialgrammi/src/lib/components/loader/loader.component.ts","../../../projects/materialgrammi/src/lib/components/loader/loader.component.html","../../../projects/materialgrammi/src/lib/components/navbar/navbar.component.ts","../../../projects/materialgrammi/src/lib/components/navbar/navbar.component.html","../../../projects/materialgrammi/src/lib/components/note/note.component.ts","../../../projects/materialgrammi/src/lib/components/note/note.component.html","../../../projects/materialgrammi/src/lib/components/pagination/pagination.component.ts","../../../projects/materialgrammi/src/lib/components/pagination/pagination.component.html","../../../projects/materialgrammi/src/lib/components/collapse/collapse.component.ts","../../../projects/materialgrammi/src/lib/components/collapse/collapse.component.html","../../../projects/materialgrammi/src/lib/components/table/table.component.ts","../../../projects/materialgrammi/src/lib/components/table/table.component.html","../../../projects/materialgrammi/src/lib/components/toast/toast.component.ts","../../../projects/materialgrammi/src/lib/components/toast/toast.component.html","../../../projects/materialgrammi/src/lib/components/chat/chat.component.ts","../../../projects/materialgrammi/src/lib/components/chat/chat.component.html","../../../projects/materialgrammi/src/lib/components/dropdown/dropdown.component.ts","../../../projects/materialgrammi/src/lib/components/dropdown/dropdown.component.html","../../../projects/materialgrammi/src/lib/components/megamenu/megamenu.component.ts","../../../projects/materialgrammi/src/lib/components/megamenu/megamenu.component.html","../../../projects/materialgrammi/src/lib/components/slideshow/slideshow.component.ts","../../../projects/materialgrammi/src/lib/components/slideshow/slideshow.component.html","../../../projects/materialgrammi/src/lib/components/modal/modal.component.ts","../../../projects/materialgrammi/src/lib/components/modal/modal.component.html","../../../projects/materialgrammi/src/lib/components/sidebar/sidebar.component.ts","../../../projects/materialgrammi/src/lib/components/sidebar/sidebar.component.html","../../../projects/materialgrammi/src/lib/components/offcanvas/offcanvas.component.ts","../../../projects/materialgrammi/src/lib/components/offcanvas/offcanvas.component.html","../../../projects/materialgrammi/src/lib/components/tab/tab.component.ts","../../../projects/materialgrammi/src/lib/components/tab/tab.component.html","../../../projects/materialgrammi/src/lib/components/wizard/wizard.component.ts","../../../projects/materialgrammi/src/lib/components/wizard/wizard.component.html","../../../projects/materialgrammi/src/lib/components/notifications/notifications.component.ts","../../../projects/materialgrammi/src/lib/components/notifications/notifications.component.html","../../../projects/materialgrammi/src/lib/components/countdown/countdown.component.ts","../../../projects/materialgrammi/src/lib/components/countdown/countdown.component.html","../../../projects/materialgrammi/src/lib/components/placeholder/placeholder.component.ts","../../../projects/materialgrammi/src/lib/components/placeholder/placeholder.component.html","../../../projects/materialgrammi/src/lib/components/image/image.component.ts","../../../projects/materialgrammi/src/lib/components/image/image.component.html","../../../projects/materialgrammi/src/lib/components/date-range/date-range.component.ts","../../../projects/materialgrammi/src/lib/components/date-range/date-range.component.html","../../../projects/materialgrammi/src/lib/components/component/component.component.ts","../../../projects/materialgrammi/src/lib/components/component/component.component.html","../../../projects/materialgrammi/src/lib/components/slider/slider.component.ts","../../../projects/materialgrammi/src/lib/components/slider/slider.component.html","../../../projects/materialgrammi/src/lib/components/slideshow-v2/slideshow-v2.component.ts","../../../projects/materialgrammi/src/lib/components/slideshow-v2/slideshow-v2.component.html","../../../projects/materialgrammi/src/lib/components/fixer/fixer.component.ts","../../../projects/materialgrammi/src/lib/components/fixer/fixer.component.html","../../../projects/materialgrammi/src/lib/components/muliselect/muliselect.component.ts","../../../projects/materialgrammi/src/lib/components/muliselect/muliselect.component.html","../../../projects/materialgrammi/src/lib/components/inview/inview.component.ts","../../../projects/materialgrammi/src/lib/components/inview/inview.component.html","../../../projects/materialgrammi/src/lib/components/badge/badge.component.ts","../../../projects/materialgrammi/src/lib/components/badge/badge.component.html","../../../projects/materialgrammi/src/lib/components/hoscroll/hoscroll.component.ts","../../../projects/materialgrammi/src/lib/components/hoscroll/hoscroll.component.html","../../../projects/materialgrammi/src/lib/materialgrammi.module.ts","../../../projects/materialgrammi/src/public-api.ts","../../../projects/materialgrammi/src/ng-materialgrammi.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nexport interface Widget {\n  id: string,\n  type: string,\n  options?: BehaviorSubject<any>,\n  status: BehaviorSubject<boolean>\n};\n\nexport interface AccordionItem {\n  // widgetId\n  id?: string\n};\n\nexport interface Accordion {\n  id: string,\n  items?: [AccordionItem],\n  activeItem?: BehaviorSubject<boolean>\n};\n\nexport interface Collapse {\n  id: string,\n  status: BehaviorSubject<boolean>\n}\n\nexport interface Dropdown {\n  id: string,\n  status: BehaviorSubject<boolean>\n}\n\nexport interface MegaMenu {\n  id: string,\n  active: BehaviorSubject<string | boolean>\n}\n\nexport interface Modal {\n  id: string,\n  status: BehaviorSubject<boolean>\n}\n\nexport interface Overlay {\n  id: string,\n  status: BehaviorSubject<boolean>\n}\n\n\n\nexport interface Wizard {\n  id: string,\n  active: BehaviorSubject<number>,\n  on: number,\n  completed: BehaviorSubject<boolean>,\n  next: {\n    index: number,\n    id: string\n  },\n  prev: {\n    index: number,\n    id: string\n  },\n  components: [string]\n};\n\nexport interface Slideshow {\n  id: string,\n  playInterval: any,\n  timer: number,\n  next: BehaviorSubject<boolean>,\n  previous: BehaviorSubject<boolean>,\n  active: BehaviorSubject<number>,\n  play: BehaviorSubject<boolean>\n}\n\nexport interface OffCanvas {\n  id: string,\n  status: BehaviorSubject<boolean>\n}\n\nexport interface Tab {\n  active: BehaviorSubject<string>,\n  components: [string]\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MaterialgrammiService {\n\n  private widgets: [Widget] | any = [];\n  private collapse: [Collapse] | any = [];\n  private dropdown: [Dropdown] | any = [];\n  private megamenu: [MegaMenu] | any = [];\n  private modal: [Modal] | any = [];\n  private overlay: [Overlay] | any = [];\n  private wizard: [Wizard] | any = [];\n  private slideshow: [Slideshow] | any = [];\n  private offcanvas: [OffCanvas] | any = [];\n  private tab: [Tab] | any = [];\n  private notifications: any = {\n    topRight: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    topLeft:{\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    topCenter: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    bottomRight: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    bottomLeft: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    bottomCenter: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    centerRight: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    centerLeft: {\n      status: new BehaviorSubject([]),\n      data: []\n    },\n    centerCenter: {\n      status: new BehaviorSubject([]),\n      data: []\n    }\n  };\n\n  private slideshowv2:any = [];\n\n  constructor() { }\n\n  /*\n    options: {\n      timer: 0 | 1-any-number,\n      class: \"\",\n      size: \"s | m | l\"\n    }\n  */\n\n  notificationOptionsDefaults = {\n      timer: 2000,\n      class: \"blueGrey8 text-grey2 radius-5 pad-10 marginT-10 outline-grey7 shadow-1\",\n      size: \"m\"\n    };\n\n  addNotification(position = \"topRight\", message = \"demo notification\", options:any = {}){\n    \n    options.timer = !options.timer ? this.notificationOptionsDefaults.timer : options.timer;\n    options.class = !options.class ? this.notificationOptionsDefaults.class : options.class;\n    options.size = !options.size ? this.notificationOptionsDefaults.size : options.size;\n\n    let notify = {\n      message,\n      options,\n      id: this.makeid(10, this.makeid(3, \"notification\"))\n    };\n\n    const allowedPositions = Object.keys(this.notifications);\n    \n    if(allowedPositions.includes(position)){\n      this.notifications[position].data = [notify, ...this.notifications[position].data];\n      this.notifications[position].status.next(this.notifications[position].data);\n    }\n\n    if(notify.options.timer !== 0) {\n      var $this = this;\n      setTimeout(function(){\n        $this.deleteNotification(position, notify.id);\n      }, notify.options.timer);\n    }\n    \n  }\n\n  watchNotification(position = \"topRight\"){\n    return Object.keys(this.notifications).includes(position) ? this.notifications[position].status.asObservable() : false;\n  }\n\n  deleteNotification(position = \"topRight\", id: string){\n    if(Object.keys(this.notifications).includes(position)){\n      this.notifications[position].data = this.notifications[position].data.filter((d:any) => {\n        return d.id != id;\n      });\n    }\n    this.notifications[position].status.next(this.notifications[position].data);\n  }\n\n  \n\n  makeid(length: number, str: string | number) {\n    str = typeof str == \"string\" ? str.split(\" \").join(\"\") : str;\n    var result = '';\n    var characters = 'ABCDEFGHIJKLMNOP+QRSTUVWXYZabcdefgh_ijklmnopqrst=uvwxyz0123456789-';\n    var charactersLength = characters.length;\n    for (var i = 0; i < length; i++) {\n      result += characters.charAt(Math.floor(Math.random() *\n        charactersLength));\n    }\n    return result + '-' + str;\n  }\n\n  registerSlideShowv2(id: string, items: any, active: string = items[0]){\n    id = id === \"\" ? this.makeid(10, \"slideshowv2\") : id;\n    this.slideshowv2[id] = {\n      items, \n      current: active,\n      active: new BehaviorSubject(active)\n    };\n    for(let i = 0; i < items.length; i++){\n      this.registerWidget(items[i], \"slideshowv2\", id);\n    }\n    this.openWidget(active, \"slideshowv2\", id);\n    return id;\n  }\n\n  watchSlideShowv2(id:string){\n    return this.slideshowv2[id].active.asObservable();\n  }\n\n  nextSlideV2(id: string){\n    let current = this.slideshowv2[id].current;\n    let next = \"\";\n    for(let i = 0; i < this.slideshowv2[id].items.length; i++) {\n      if(this.slideshowv2[id].items[i] === current) {\n        next = this.slideshowv2[id].items[i + 1] ? this.slideshowv2[id].items[i + 1] : this.slideshowv2[id].items[0];\n      }\n      this.closeWidget(this.slideshowv2[id].items[i], \"slideshowv2\", id);\n    }\n    this.slideshowv2[id].current = next;\n    this.openWidget(next, \"slideshowv2\", id);\n    this.slideshowv2[id].active.next(next);\n  }\n\n  prevSlideV2(id: string){\n    let current = this.slideshowv2[id].current;\n    let next = \"\";\n    for(let i = 0; i < this.slideshowv2[id].items.length; i++) {\n      if(this.slideshowv2[id].items[i] === current) {\n        next = this.slideshowv2[id].items[i - 1] ? this.slideshowv2[id].items[i - 1] : this.slideshowv2[id].items[this.slideshowv2[id].items.length - 1];\n        this.closeWidget(this.slideshowv2[id].items[i], \"slideshowv2\", id);\n      }\n    }\n    this.slideshowv2[id].current = next;\n    this.openWidget(next, \"slideshowv2\", id);\n    this.slideshowv2[id].active.next(next);\n  }\n\n  registerTab(id: string, components: any, active: string) {\n    this.tab[id] = {\n      components,\n      active: new BehaviorSubject(active)\n    };\n    for (let i = 0; i < components.length; i++) {\n      this.registerWidget(components[i], \"tab\", id);\n    }\n    this.openTab(id, components[0]);\n  }\n\n  openTab(id: string, component_id: string) {\n    this.closeAllTab(id);\n    this.openWidget(component_id, \"tab\", id);\n    this.tab[id].active.next(component_id);\n  }\n\n  closeAllTab(id: string) {\n    if (this.tab && this.tab[id]) {\n      for (let i = 0; i < this.tab[id].components.length; i++) {\n        this.closeWidget(this.tab[id].components[i], \"tab\", id);\n      }\n    }\n  }\n\n  watchTab(id: string) {\n    return this.tab[id].active.asObservable();\n  }\n\n  registerOffCanvas(id: string, status: boolean) {\n    this.offcanvas[id] = {\n      id,\n      status: new BehaviorSubject(status)\n    };\n  }\n\n  openCanvas(id: string) {\n    this.offcanvas[id].status.next(true);\n  }\n\n  closeCanvas(id: string) {\n    this.offcanvas[id].status.next(false);\n  }\n\n  watchCanvas(id: string) {\n    return this.offcanvas[id].status.asObservable();\n  }\n\n\n  registerSlideshow(id: string, activePage: number, play: boolean, next: boolean, previous: boolean, playInterval: any, timer: number) {\n    var obj: any = {\n      id,\n      playInterval,\n      timer,\n      next: new BehaviorSubject(next),\n      previous: new BehaviorSubject(previous),\n      active: new BehaviorSubject(activePage),\n      play: new BehaviorSubject(play)\n    };\n    this.slideshow[id] = obj;\n  }\n\n  watchSlideshowPlay(id: string) {\n    return this.slideshow[id].play.asObservable();\n  }\n\n  watchSlideshowNext(id: string) {\n    return this.slideshow[id].next.asObservable();\n  }\n\n  watchSlideshowPrevious(id: string) {\n    return this.slideshow[id].previous.asObservable();\n  }\n\n  watchSlideshowActivePage(id: string) {\n    return this.slideshow[id].active.asObservable();\n  }\n\n  nextSlide(id: string) {\n    this.slideshow[id].next.next(true);\n  }\n\n  previousSlide(id: string) {\n    this.slideshow[id].previous.next(true);\n  }\n\n  changeSlidePlay(id: string, play: boolean) {\n    this.slideshow[id].play.next(play);\n  }\n\n  changeSlideActivePage(id: string, activePage: number) {\n    this.slideshow[id].active.next(activePage);\n  }\n\n  playSlideShow(id: string) {\n    var selected = this.slideshow[id];\n    if (selected) {\n      if (selected.playInterval) {\n        this.pauseSlideshow(id);\n      }\n      selected.play.next(true);\n      var _this = this;\n      this.nextSlide(id);\n      selected.playInterval = setInterval(() => {\n        _this.nextSlide(id);\n      }, selected.timer);\n    }\n  }\n\n  pauseSlideshow(id: string) {\n    var selected = this.slideshow[id];\n    if (selected && selected.playInterval) {\n      clearInterval(selected.playInterval);\n      selected.playInterval = false;\n    }\n  }\n\n  registerWizard(wizardId: string, components: any, active = 0) {\n    let next = {};\n    let prev = {};\n    if (components[active]) {\n      next = {\n        index: components && components[active + 1] ? active + 1 : active,\n        id: components && components[active + 1] ? components[active + 1] : components[active]\n      };\n      prev = {\n        index: components && components[active - 1] ? active - 1 : active,\n        id: components && components[active - 1] ? components[active - 1] : components[active]\n      };\n    } else {\n      // defaults\n      active = 0;\n      next = {\n        index: components && components[1] ? 1 : 0,\n        id: components && components[1] ? components[1] : components[0]\n      };\n      prev = {\n        index: 0,\n        id: components[0]\n      };\n    }\n\n    this.wizard[wizardId] = {\n      active: new BehaviorSubject(0),\n      on: active,\n      completed: new BehaviorSubject(false),\n      next,\n      prev,\n      components\n    };\n\n    for (let i = 0; i < components.length; i++) {\n      this.registerWidget(components[i], \"wizard\", wizardId);\n    }\n\n    this.openWidget(components[0], \"wizard\", wizardId);\n  }\n\n  wizardNextStep(wizardId: string) {\n    let activateIndex = this.wizard[wizardId].on + 1;\n    this.activateWizardStep(wizardId, activateIndex);\n  }\n\n  WizardPreviousStep(wizardId: string) {\n    let activateIndex = this.wizard[wizardId].on - 1;\n    this.activateWizardStep(wizardId, activateIndex);\n  }\n\n  WizardCloseAll(wizardId: string) {\n    if (this.wizard[wizardId] && this.wizard[wizardId].components) {\n      for (let i = 0; i < this.wizard[wizardId].components.length; i++) {\n        this.closeWidget(this.wizard[wizardId].components[i], \"wizard\", wizardId);\n      }\n    }\n  }\n\n  activateWizardStep(wizardId: string, index: number) {\n\n    if (this.wizard[wizardId].components[index]) {\n      if(index >= this.wizard[wizardId].components.length -1){\n        this.isWizardComplete(wizardId);\n      }else {\n        this.isWizardNotComplete(wizardId);\n      }\n      this.wizard[wizardId].on = index;\n      this.wizard[wizardId].prev.index = this.wizard[wizardId].components[index - 1] ? index - 1 : index;\n      this.wizard[wizardId].next.index = this.wizard[wizardId].components[index + 1] ? index + 1 : index;\n      this.wizard[wizardId].prev.id = this.wizard[wizardId].components[index - 1] ?\n        this.wizard[wizardId].components[index - 1] : this.wizard[wizardId].components[index];\n      this.wizard[wizardId].next.id = this.wizard[wizardId].components[index + 1] ?\n        this.wizard[wizardId].components[index + 1] : this.wizard[wizardId].components[index];;\n      this.WizardCloseAll(wizardId);\n      this.openWidget(this.wizard[wizardId].components[index], \"wizard\", wizardId);\n      this.watchWidget(this.wizard[wizardId].components[index], \"wizard\", wizardId).subscribe((data: any) => {\n        if (data) {\n          this.wizard[wizardId].active.next(index);\n        }\n      });\n    }\n  }\n\n  isWizardComplete(wizardId: string) {\n    this.wizard[wizardId].completed.next(true);\n  }\n\n  isWizardNotComplete(wizardId: string) {\n    this.wizard[wizardId].completed.next(false);\n  }\n\n  watchWizardActive(wizardId: string): Observable<number> {\n    return this.wizard[wizardId].active.asObservable();\n  }\n\n  watchWizardCompleted(wizardId: string): Observable<true | false> {\n    return this.wizard[wizardId].completed.asObservable();\n  }\n\n\n  registerOverlay(id: string, status: boolean) {\n    this.overlay[id] = {\n      id,\n      status: new BehaviorSubject(status)\n    };\n  }\n\n  openOverlay(id: string) {\n    this.overlay[id].status.next(true);\n  }\n\n  closeOverlay(id: string) {\n    this.overlay[id].status.next(false);\n  }\n\n  watchOverlay(id: string) {\n    return this.overlay[id].status.asObservable();\n  }\n\n  registerModal(id: string, status: boolean) {\n    this.modal[id] = {\n      id,\n      status: new BehaviorSubject(status)\n    };\n  }\n\n  openModal(id: string) {\n    this.modal[id].status.next(true);\n  }\n\n  closeModal(id: string) {\n    this.modal[id].status.next(false);\n  }\n\n  watchModal(id: string) {\n    return this.modal[id].status.asObservable();\n  }\n\n  registerDropDown(id: string, status: boolean) {\n    this.dropdown[id] = {\n      id,\n      status: new BehaviorSubject(status)\n    };\n  }\n\n  openDropDown(id: string) {\n    this.dropdown[id].status.next(true);\n  }\n\n  closeDropDown(id: string) {\n    this.dropdown[id].status.next(false);\n  }\n\n  watchDropDown(id: string) {\n    return this.dropdown[id].status.asObservable();\n  }\n\n  registerCollapse(id: string, status: boolean) {\n    this.collapse[id] = {\n      id,\n      status: new BehaviorSubject(status)\n    };\n  }\n\n  openCollapse(id: string) {\n    this.collapse[id].status.next(true);\n  }\n\n  closeCollapse(id: string) {\n    this.collapse[id].status.next(false);\n  }\n\n  watchCollapse(id: string) {\n    return this.collapse[id].status.asObservable();\n  }\n\n  getWidgetId(id: string, type: string, parent_id: string) {\n    return id + '_' + type + '_' + parent_id;\n  }\n\n  widgetExists(id: string, parent_type: string, parent_id: string) {\n    return this.widgets[this.getWidgetId(id, parent_type, parent_id)] ? true : false;\n  }\n\n  registerWidget(id: string, parent_type: string, parent_id: string, options: any = {}) {\n    \n    \n    \n    let mywidgetid = this.getWidgetId(id, parent_type, parent_id);\n    this.widgets[mywidgetid] = {\n      id,\n      type: parent_type,\n      parent_id: parent_id,\n      options: new BehaviorSubject(options),\n      status: new BehaviorSubject(false)\n    }\n  }\n\n  openWidget(id: string, parent_type: string, parent_id: string): void {\n    \n    let mywidgetid = this.getWidgetId(id, parent_type, parent_id);\n    if (this.widgets && this.widgets[mywidgetid]) {\n      this.widgets[mywidgetid].status.next(true);\n    }\n  }\n\n  closeWidget(id: string, parent_type: string, parent_id: string): void {\n    let mywidgetid = this.getWidgetId(id, parent_type, parent_id);\n    if (this.widgets && this.widgets[mywidgetid]) {\n      this.widgets[mywidgetid].status.next(false);\n    }\n\n  }\n\n  closeAllParentWidgets(parent_type: string, parent_id: string) {\n    let allWidgetIds = Object.keys(this.widgets);\n    for (let i = 0; i < allWidgetIds.length; i++) {\n      if (this.widgets[allWidgetIds[i]].type == parent_type && this.widgets[allWidgetIds[i]].parent_id == parent_id) {\n        this.closeWidget(this.widgets[allWidgetIds[i]].id, parent_type, parent_id);\n      }\n    }\n  }\n\n  watchWidget(id: string, parent_type: string, parent_id: string): Observable<boolean> {\n    return this.widgets[this.getWidgetId(id, parent_type, parent_id)].status.asObservable();\n  }\n\n  watchOptions(id: string, parent_type: string, parent_id: string): Observable<any> {\n    return this.widgets[this.getWidgetId(id, parent_type, parent_id)].options.asObservable();\n  }\n\n  registerMegaMenu(id: string, links: string[]) {\n    this.megamenu[id] = {\n      id,\n      active: new BehaviorSubject(\"\")\n    };\n    for (let i = 0; i < links.length; i++) {\n      this.registerWidget(links[i], \"megamenu\", id);\n    }\n  }\n\n  watchMegaMenu(id: string) {\n    return this.megamenu[id].active.asObservable();\n  }\n\n  openMegaMenu(id: string, targetid: string) {\n    this.megamenu[id].active.next(targetid);\n    if (this.widgetExists(targetid, \"megamenu\", id)) {\n      this.closeMegaMenu(id);\n      this.openWidget(targetid, \"megamenu\", id);\n    }\n  }\n\n  closeMegaMenu(id: string) {\n    this.closeAllParentWidgets(\"megamenu\", id);\n    this.megamenu[id].active.next(false);\n  }\n\n  fallbackCopyTextToClipboard(text:string) {\n    var textArea = document.createElement(\"textarea\");\n    textArea.value = text;\n    \n    // Avoid scrolling to bottom\n    textArea.style.top = \"0\";\n    textArea.style.left = \"0\";\n    textArea.style.position = \"fixed\";\n  \n    document.body.appendChild(textArea);\n    textArea.focus();\n    textArea.select();\n  \n    try {\n      var successful = document.execCommand('copy');\n      var msg = successful ? 'successful' : 'unsuccessful';\n      console.log('Fallback: Copying text command was ' + msg);\n    } catch (err) {\n      console.error('Fallback: Oops, unable to copy', err);\n    }\n  \n    document.body.removeChild(textArea);\n  }\n  copyToClipboard(text:string) {\n    if (!navigator.clipboard) {\n      this.fallbackCopyTextToClipboard(text);\n      return;\n    }\n    navigator.clipboard.writeText(text).then(function() {\n      console.log('Async: Copying to clipboard was successful!');\n    }, function(err) {\n      console.error('Async: Could not copy text: ', err);\n    });\n  }\n\n  scrollTo(query: string): void {\n    if(document.querySelectorAll(query)[0]) {\n      document.querySelectorAll(query)[0].scrollIntoView({behavior: \"smooth\", block: \"start\", inline: \"nearest\"});\n    }\n  }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SeoService {\n\n  private keywords?: string[] = [];\n  private apptitle = \"materialgrammi\";\n\n\n  constructor(private meta: Meta, private title: Title) { }\n\n  setDescription(desc: string){\n    this.meta.addTag({\n      name: \"description\",\n      content: desc\n    });\n  }\n\n  setAuthor(desc: string){\n    this.meta.addTag({\n      name: \"author\",\n      content: desc\n    });\n  }\n\n  addKeywords(keyw: string[] | string){\n    if(typeof keyw === \"string\") {\n      this.keywords?.push(keyw);\n    }else{\n      for(let i = 0; i < keyw.length; i++) {\n        this.keywords?.push(keyw[i]);\n      }\n    }\n    this.setKeyWords();\n  }\n\n  private setKeyWords(){\n    if(this.keywords){\n      this.meta.addTag({\n        name: \"description\",\n        content: this.keywords.join(\", \")\n      });\n    }\n  }\n\n  clearKeyWords(){\n    this.keywords = [];\n  }\n\n  setTitle(t: string){\n    this.apptitle = t;\n    this.title.setTitle(this.apptitle);\n  }\n\n  enableCrawlers(status: boolean = true){\n    if(status) {\n      this.meta.addTag({\n        name: \"robots\",\n        content: \"index, follow\"\n      });\n    }\n  }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-materialgrammi',\n  template: `\n    <p>\n      materialgrammi works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class MaterialgrammiComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'lib-test',\n  templateUrl: './test-component.component.html',\n  styleUrls: ['./test-component.component.css']\n})\nexport class TestComponentComponent implements OnInit {\n  id = \"widget\";\n  constructor(private myservice: MaterialgrammiService) {   }\n\n  ngOnInit(): void {\n  }\n\n\n\n}\n","<a style=\"padding: 5px; border: 1px solid #212121; cursor: pointer;\"><ng-content></ng-content></a>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'mg-accordion-item',\n  templateUrl: './accordion-item.component.html',\n  styleUrls: ['./accordion-item.component.css']\n})\nexport class AccordionItemComponent implements OnInit {\n  @Input() item: any = {};\n  @Output() isClicked = new EventEmitter<boolean>();\n  @Input() itemid: any = 0;\n  @Input() theme = \"primary\"\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onClickTitle() {\n    this.isClicked.emit(this.itemid);\n  }\n\n  isActive(state: any) {\n    return state ? 'active' : '';\n  }\n\n}\n","<div class=\"title {{theme}}\" [ngClass]=\"isActive(item.active)\" [innerHtml]=\"item.title\"\n  (click)=\"onClickTitle()\"></div>\n<div class=\"body {{theme}}\" [innerHtml]=\"item.description\" [ngClass]=\"isActive(item.active)\"></div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Theme } from '../../types';\n\n@Component({\n  selector: 'mg-accordion',\n  templateUrl: './accordion.component.html',\n  styleUrls: ['./accordion.component.css']\n})\nexport class AccordionComponent implements OnInit {\n  @Input() theme: Theme = \"primary\";\n\n  @Input() items: any = [{\n    title: \"Panel 1\",\n    description: \"description of panel 1\",\n    active: false\n  }, {\n    title: \"Panel 2\",\n    description: \"description of panel 2\",\n    active: true\n  }, {\n    title: \"Panel 3\",\n    description: \"description of panel 3\",\n    active: false\n  }, {\n    title: \"Panel 4\",\n    description: \"description of panel 4\",\n    active: false\n  }, {\n    title: \"Panel 5\",\n    description: \"description of panel 5\",\n    active: false\n  }];\n\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  turnAllOff(missItem: number) {\n    for (let i = 0; i < this.items.length; i++) {\n      if (missItem != i) {\n        this.items[i].active = false;\n      }\n    }\n  }\n\n  toggleItem(itemNumber: any) {\n    this.items[itemNumber].active = !this.items[itemNumber].active;\n    this.turnAllOff(itemNumber);\n  }\n\n\n\n}\n","<div>\n  <ng-container *ngIf=\"items.length > 0\">\n    <div class=\"accordion\" [ngClass]=\"class\">\n      <ng-container *ngFor=\"let item of items; let i = index\">\n        <div class=\"marginB-2\">\n          <mg-accordion-item [theme]=\"theme\" [itemid]=\"i\" [item]=\"item\" (isClicked)=\"toggleItem($event)\">\n          </mg-accordion-item>\n        </div>\n      </ng-container>\n    </div>\n  </ng-container>\n</div>\n\n","import { AfterContentChecked, AfterContentInit, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-widget',\n  templateUrl: './widget.component.html',\n  styleUrls: ['./widget.component.css']\n})\nexport class WidgetComponent implements OnInit, OnChanges, AfterContentChecked {\n  @Input() id = \"general-widget-1\";\n  @Input() parent = \"general-parent-1\";\n  @Input() type = \"general\";\n  @Input() options: any = false;\n  @Input() status = false;\n  @Input() standalone = false;\n  @Input() class=\"\";\n  @Output() triggered = new EventEmitter();\n\n  settings = {\n    header: {\n      always: false\n    },\n    footer: {\n      always: false\n    }\n  };\n\n  myClasses = \"\";\n  constructor(private mainService: MaterialgrammiService, private cd: ChangeDetectorRef) { }\n\n\n\n  ngOnInit(): void {\n    this.init();\n    this.myClasses = this.class;\n  }\n\n  ngOnChanges(): void {\n    this.init();\n    this.myClasses = this.class;\n  }\n\n  ngAfterContentChecked(): void {\n    this.myClasses = this.class;\n  }\n\n  init() {\n    if (this.standalone) {\n      this.registerWidget();\n      if (this.status) {\n        this.openWidget();\n      } else {\n        this.closeWidget();\n      }\n    }\n    this.watch();\n    this.watchOptions();\n  }\n\n  setOptions() {\n    if (this.options && this.options.header.always) {\n      this.settings.header.always = true;\n    }\n    if (this.options && this.options.footer.always) {\n      this.settings.footer.always = true;\n    }\n  }\n\n  registerWidget() {\n    this.mainService.registerWidget(this.id, this.type, this.parent, this.options);\n    if (this.status) {\n      this.openWidget();\n    }\n  }\n\n  openWidget() {\n    this.mainService.openWidget(this.id, this.type, this.parent);\n  }\n\n  closeWidget() {\n    this.mainService.closeWidget(this.id, this.type, this.parent);\n  }\n\n  watch() {\n    if (this.mainService.widgetExists(this.id, this.type, this.parent)) {\n      this.mainService.watchWidget(this.id, this.type, this.parent).subscribe((data: any) => {\n        this.status = data;\n        this.triggered.emit({\n          status: this.status,\n          options: this.options\n        });\n      });\n    }\n  }\n\n  watchOptions() {\n    if (this.mainService.widgetExists(this.id, this.type, this.parent)) {\n      this.mainService.watchWidget(this.id, this.type, this.parent).subscribe((data: any) => {\n        this.options = data;\n      });\n    }\n  }\n}\n","<div [ngClass]=\"myClasses\">\n  <ng-container *ngIf=\"settings.header.always || status\">\n    <ng-content select=\"[mg-data=header]\"></ng-content>\n  </ng-container>\n  <ng-container *ngIf=\"status\">\n    <ng-content></ng-content>\n  </ng-container>\n  <ng-container *ngIf=\"settings.footer.always || status\">\n    <ng-content select=\"[mg-data=footer]\"></ng-content>\n  </ng-container>\n</div>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Theme } from '../../types';\n@Component({\n  selector: 'mg-alert',\n  templateUrl: './alert.component.html',\n  styleUrls: ['./alert.component.css']\n})\nexport class AlertComponent implements OnInit {\n  @Input() theme: Theme = \"primary\";\n  @Input() show = true;\n  @Input() alignCenter = false;\n  @Input() closeBtn = \"\";\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  hide() {\n    this.show = false;\n  }\n}\n","<div class=\"alert {{theme}}\" *ngIf=\"show\" [ngClass]=\"class\">\n  <a class=\"closealert\" (click)=\"hide()\" *ngIf=\"closeBtn!= ''\" [innerHtml]=\"closeBtn\"></a>\n  <span [ngClass]=\"{'text-center block' : alignCenter === true}\">\n    <ng-content></ng-content>\n  </span>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  styleUrls: ['./breadcrumb.component.css']\n})\nexport class BreadcrumbComponent implements OnInit {\n  @Input() links: any = [];\n  @Input() darkmode = false;\n  @Input() devider = \"/\";\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  showDarkMode() {\n    return this.darkmode ? \"dark\" : \"lite\";\n  }\n\n  active(link: any) {\n    return link.active ? 'active' : '';\n  }\n\n}\n","<div class=\"breadcrumb-wrapper\" [ngClass]=\"showDarkMode() + ' ' + class\" *ngIf=\"links.length > 0\">\n  <ng-container *ngFor=\"let link of links; let i = index;\">\n    <a [routerLink]=\"link.url\" class=\"breadcrumb\" [ngClass]=\"active(link)\">{{link.name}}</a>\n    <span class=\"marginL-5 marginR-5\" *ngIf=\"links[i+1]\" [innerHtml]=\"devider\"></span>\n  </ng-container>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-card',\n  templateUrl: './card.component.html',\n  styleUrls: ['./card.component.css']\n})\nexport class CardComponent implements OnInit {\n  @Input() class = ``;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"card\" [ngClass]=\"class\">\n  <ng-content select=\"[header]\"></ng-content>\n  <ng-content></ng-content>\n  <ng-content select=\"[footer]\"></ng-content>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Theme } from '../../types';\n\n@Component({\n  selector: 'mg-chip',\n  templateUrl: './chip.component.html',\n  styleUrls: ['./chip.component.css']\n})\nexport class ChipComponent implements OnInit {\n  @Input() theme: Theme = \"primary\";\n  @Input() outline = false;\n  @Input() class = \"\";\n  @Input() closeBtn = `<i class=\"fas fa-times\"></i>`;\n  @Output() close = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  chipClass(){\n    let results = \"\";\n    results += this.theme;\n\n    results += this.outline ? \" outlined\" : \"\";\n\n    return results;\n  }\n\n}\n","<div class=\"chip\" [ngClass]=\"chipClass() + ' ' + class\">\n  <span><ng-content></ng-content></span>\n  <span [innerHtml]=\"closeBtn\" class=\"marginL-5\" (click)=\"close.emit(true)\"></span>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'mg-dragable',\n  templateUrl: './dragable.component.html',\n  styleUrls: ['./dragable.component.css']\n})\nexport class DragableComponent implements OnInit {\n  @Input() dragable = true;\n  @Input() data: any = {\n    name: \"Ashbeel\",\n    profession: \"Software Engineer\"\n  };\n  @Input() class = \"\";\n\n  @Output() onEvent = new EventEmitter();\n\n  eventProperties = {\n    isInDragMode: false\n  };\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onDrag(event: any) {\n    event.dataTransfer.setData(\"text\", JSON.stringify(this.data));\n    event.dataTransfer.effectAllowed = \"all\";\n    event.stopPropagation();\n    this.onEvent.emit(this.eventProperties);\n  }\n\n}\n","<div [ngClass]=\"class\">\n  <div class=\"is-draggable\" (drag)=\"onDrag($event)\" (dragstart)=\"onDrag($event)\" [draggable]=\"dragable\">\n    <div class=\"drag-element\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'mg-dropable',\n  templateUrl: './dropable.component.html',\n  styleUrls: ['./dropable.component.css']\n})\nexport class DropableComponent implements OnInit {\n  @Output() onEvent = new EventEmitter();\n  @Output() dataRecieved = new EventEmitter();\n\n  @Input() dropFiles = false;\n  @Input() class = \"\";\n  onEventProperties = {\n    isDraggedOver: false,\n    dragEntered: false,\n    dragLeft: false,\n    dropped: false\n  };\n\n  data:any = false;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onDrop(event: any) {\n    event.preventDefault();\n    this.onEventProperties.dropped = true;\n    this.emitEvents();\n    if(this.dropFiles) {\n      this.data = event.dataTransfer.files;\n    }else{\n      var data = event.dataTransfer.getData(\"text\");\n      this.data = data ? JSON.parse(data) : false;\n    }\n    if(this.data){\n      this.emitData();\n    }\n  }\n  draggedOver(event: any) {\n    event.stopPropagation();\n    this.onEventProperties.isDraggedOver = true;\n    this.emitEvents();\n    event.preventDefault();\n  }\n  dragEntered(event:any){\n    event.stopPropagation();\n    this.onEventProperties.dragEntered = true;\n    this.onEventProperties.dragLeft = false;\n    this.emitEvents();\n    event.preventDefault();\n  }\n  dragLeft(event:any){\n    event.stopPropagation();\n    this.onEventProperties.dragLeft = true;\n    this.onEventProperties.dragEntered = false;\n    this.emitEvents();\n    event.preventDefault();\n  }\n\n\n  emitEvents(){\n    this.onEvent.emit(this.onEventProperties);\n  }\n\n  emitData(){\n    this.dataRecieved.emit(this.data);\n  }\n\n}\n","<div (dragenter)=\"dragEntered($event)\" (dragleave)=\"dragLeft($event)\" \n(dragover)=\"draggedOver($event)\"\n  (drop)=\"onDrop($event)\" [ngClass]=\"class\">\n  <ng-content></ng-content>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-footer',\n  templateUrl: './footer.component.html',\n  styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n  @Input() theme = \"primary\";\n  @Input() toBottom = false;\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  mainFooterClasses(){\n    let results = \"\";\n    results += this.theme;\n    results += this.toBottom ? \" stick-to-bottom\" : \"\";\n    return results;\n  }\n}\n","<div class=\"footer\" [ngClass]=\"mainFooterClasses() + ' ' + class\">\n  <div class=\"section-top\">\n    <div class=\"left-section\">\n      <ng-content select=\"[slot=left-section]\"></ng-content>\n    </div>\n    <div class=\"middle-section\">\n      <ng-content select=\"[slot=middle-section]\"></ng-content>\n    </div>\n    <div class=\"right-section\">\n      <ng-content select=\"[slot=right-section]\"></ng-content>\n    </div>\n  </div>\n  <div class=\"section-bottom\">\n    <div class=\"left-bottom-section\">\n      <ng-content select=\"[slot=left-bottom-section]\"></ng-content>\n    </div>\n    <div class=\"right-bottom-section\">\n      <ng-content select=\"[slot=right-bottom-section]\"></ng-content>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\nimport { Theme } from '../../types';\n\n@Component({\n  selector: 'mg-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.css']\n})\nexport class CheckboxComponent implements OnInit {\n  @Input() size = \"m\";\n  @Input() theme: Theme = \"primary\";\n  @Input() onDark = false;\n  @Input() isSelected = false;\n  @Input() class = \"\";\n\n\n  @Output() isChecked = new EventEmitter();\n  id = \"\";\n  selected = this.isSelected;\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.isChecked.emit(this.selected);\n    this.selected = this.isSelected;\n    this.id = \"input-checkbox-\" + this.service.makeid(10, \"checkbox\");\n  }\n  mainClasses() {\n    let results = \"\";\n    results += this.size == \"s\" ? \"small\" : this.size == \"m\" ? \"medium\" : \"large\";\n    results += \" \" + this.theme;\n    return results;\n  }\n\n  labelClass() {\n    let results = \"\";\n    results += this.onDark ? \"lite\" : \"dark\";\n    results += this.selected ? \" active\" : \"\";\n    return results;\n  }\n\n  toggleCheck() {\n    this.selected = !this.selected;\n    this.isChecked.emit(this.selected);\n  }\n\n}\n","<div class=\"checkbox\" [ngClass]=\"mainClasses() + ' ' + class\">\n  <input [id]=\"id\" type=\"checkbox\" [checked]=\"isSelected\" style=\"opacity: 0; position: absolute;\"/>\n  <label class=\"check\" [for]=\"id\" (click)=\"toggleCheck()\"></label>\n  <label class=\"label\" [for]=\"id\" [ngClass]=\"labelClass()\"\n    (click)=\"toggleCheck()\"><ng-content></ng-content></label>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { InputStyle, Theme } from '../../types';\n\n@Component({\n  selector: 'mg-input',\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.css']\n})\nexport class InputComponent implements OnInit {\n  @Input() theme:Theme = \"primary\";\n  @Input() form: InputStyle = \"control\";\n  @Input() placeholder = \"\";\n  @Input() control: FormControl = new FormControl('');\n  @Input() type = \"text\";\n  @Input() dark = false;\n  @Input() class = \"\";\n  @Output() data = new EventEmitter<FormControl>();\n  @Output() isFocused = new EventEmitter();\n  @Output() keyup = new EventEmitter();\n  @Input() value = \"\";\n  @Input() rounded = false;\n  @Input() filled = false;\n\n  @Input() info = {\n    type: \"success\",\n    msg: \"\"\n  };\n\n  @ViewChild('inputElement') private inputElem!: ElementRef;\n\n  active = false;\n  focused = false;\n  input_placeholder = this.form == \"control\" && this.placeholder != \"\" ? this.placeholder : \"\";\n  \n  constructor() { }\n\n  ngOnInit(): void {\n    this.input_placeholder = this.form == \"control\" && this.placeholder != \"\" ? this.placeholder : \"\";\n    if (this.value != \"\") {\n      this.active = true;\n    }\n  }\n\n  onFocusIn() {\n    this.focused = true;\n    this.active = true;\n    this.isFocused.emit(true);\n  }\n\n  onFocusOut() {\n    this.focused = false;\n    if (!(this.value.length > 0)) {\n      this.active = false;\n    }\n    this.isFocused.emit(false);\n  }\n\n  onKeyUp(event: any) {\n    this.value = event.target.value;\n    this.control.setValue(event.target.value);\n    this.keyup.emit(event);\n    this.data.emit(this.control);\n  }\n\n  mainClasses() {\n    let classes = ``;\n    classes += ` ${this.active ? 'active' : ''}`;\n    classes += this.dark ? \" on-dark\" : \" on-lite\";\n    classes += this.form === \"control\" ? (this.filled ? \" filled\" : \" outline\") : \"\";\n    return classes;\n  }\n\n  labelClick(){\n    this.inputElem.nativeElement.focus();\n  }\n\n  infoClasses(){\n    let classes = \"\";\n    if(this.info.type === \"error\"){\n      classes += \"text-red\";\n    }else if(this.info.type === \"success\"){\n      classes += \"text-green\";\n    }else if(this.info.type === \"info\"){\n      classes += \"text-blue\";\n    }else if(this.info.type === \"lite\"){\n      classes += \"text-grey2\";\n    }else if(this.info.type === \"dark\"){\n      classes += \"text-grey8\";\n    }\n    return classes;\n  }\n\n}\n","<div class=\"form-{{form}} {{theme}}\" [ngClass]=\"mainClasses()\">\n\n  <label (click)=\"labelClick()\"><ng-content></ng-content></label>\n\n  <input #inputElement [type]=\"type\" (focus)=\"onFocusIn()\" (focusout)=\"onFocusOut()\" (keyup)=\"onKeyUp($event)\" [value]=\"value\" [ngClass]=\"class + (rounded ? 'radius-5' : '')\" [placeholder] = \"input_placeholder\"/>\n  <ng-container *ngIf=\"info && info.msg && info.msg.length > 0\">\n    <p [innerHtml]=\"info.msg\" [ngClass]=\"infoClasses()\"></p>\n  </ng-container>\n\n</div>","import { Injectable } from '@angular/core';\n\nexport interface SplittedDate {\n  date: number,\n  year: number,\n  month: number,\n  day: number,\n  hour: number,\n  minute: number,\n  second: number\n}\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DaterService {\n  now = new Date();\n\n  months = [\n    \"January\",\n    \"February\",\n    \"March\",\n    \"April\",\n    \"May\",\n    \"June\",\n    \"July\",\n    \"August\",\n    \"September\",\n    \"October\",\n    \"November\",\n    \"December\"\n  ];\n\n  weekDays = [\n    \"Sunday\",\n    \"Monday\",\n    \"Tuesday\",\n    \"Wednesday\",\n    \"Thursday\",\n    \"Friday\",\n    \"Saturday\"\n  ];\n\n  dateSplit?: SplittedDate;\n\n  constructor() { }\n\n  assign(dateString: string) {\n    return new Date(dateString);\n  }\n\n  dater(dd: string | false = false){\n    return !dd ? new Date() : new Date(dd);\n  }\n\n  getMonth(date: Date = this.dater()){\n    return date.getMonth();\n  }\n\n  getDate(date: Date = this.dater()){\n    return date.getDate();\n  }\n\n  getYear(date: Date = this.dater()){\n    return date.getFullYear();\n  }\n\n  getDay(date: Date = this.dater()){\n    return date.getDay();\n  }\n\n  getWeekDay(date: Date = this.dater()){\n    return this.weekDays[date.getDay()];\n  }\n\n  getHour(date: Date = this.dater()){\n    return date.getHours();\n  }\n\n  getMinute(date: Date = this.dater()){\n    return date.getMinutes();\n  }\n\n  getSeconds(date: Date = this.dater()){\n    return date.getSeconds();\n  }\n\n  format(date: Date, formatString: string) {\n    let splitter:SplittedDate = this.splitDate(date);\n    if(splitter && splitter.date !== undefined && splitter.day !== undefined \n      && splitter.hour !== undefined && splitter.minute !== undefined \n      && splitter.month !== undefined && splitter.second !== undefined && splitter.year !== undefined){\n        formatString = formatString.split(\"dd\").join(this.addZero(splitter.date, 1));\n        formatString = formatString.split(\"d\").join(`${splitter.date}`);\n        formatString = formatString.split(\"MMMM\").join(this.months[splitter.month] ? this.months[splitter.month] : \"\");\n        formatString = formatString.split(\"MMM\").join(this.firstDigits(this.months[splitter.month] ? this.months[splitter.month] : \"\"));\n        formatString = formatString.split(\"MM\").join(this.addZero(splitter.month+1, 1));\n        formatString = formatString.split(\"M\").join(`${splitter.month+1}`);\n        formatString = formatString.split(\"YYYY\").join(`${splitter.year}`);\n        formatString = formatString.split(\"YY\").join(this.firstDigits(`${splitter.year}`, 2));\n        formatString = formatString.split(\"yyyy\").join(`${splitter.year}`);\n        formatString = formatString.split(\"yy\").join(this.firstDigits(`${splitter.year}`, 2));\n        formatString = formatString.split(\"DD\").join(`${splitter.day}`);\n        formatString = formatString.split(\"D\").join(this.firstDigits(`${splitter.day}`, 3));\n        formatString = formatString.split(\"HH\").join(this.addZero(splitter.hour, 1));\n        formatString = formatString.split(\"H\").join(`${splitter.hour}`);\n        formatString = formatString.split(\"hh\").join(`${this.twelveHour(splitter.hour, true)}`);\n        formatString = formatString.split(\"h\").join(`${this.twelveHour(splitter.hour, false)}`);\n        formatString = formatString.split(\"mm\").join(this.addZero(splitter.minute, 1));\n        formatString = formatString.split(\"m\").join(`${splitter.minute}`);\n        formatString = formatString.split(\"ss\").join(this.addZero(splitter.second, 1));\n        formatString = formatString.split(\"s\").join(`${splitter.second}`);\n        formatString = formatString.split(\"AP\").join(this.getAp(splitter.hour));\n        formatString = formatString.split(\"ap\").join(this.getAp(splitter.hour, true));\n        return formatString;\n      }\n    return ``;\n  }\n\n  twelveHour(dd: number, addZ = false) {\n    let d: number = dd > 12 ? (dd - 12) : dd;\n    return addZ ? this.addZero(d, 1) : d;\n  }\n\n  getAp(dd: number, sm = false) {\n    let ap = {\n      a: sm ? \"am\" : \"AM\",\n      p: sm ? \"pm\" : \"PM\"\n    };\n    return dd > 12 ? ap.p : ap.a;\n  }\n\n  private firstDigits(str: string, num = 3) {\n    let mystring = str.split(\"\");\n    let final = \"\";\n    for (let i = 0; i < num; i++) {\n      final += `${mystring[i]}`;\n    }\n    return final;\n  }\n\n  private addZero(d: number, numZ = 1) {\n    let conc = ``;\n    for (let i = 0; i < numZ; i++) {\n      conc += `0`;\n    }\n    if (d < 10) {\n      return conc + d;\n    }\n    return `${d}`;\n  }\n\n  initializeSplit () {\n    return this.dateSplit = {\n      date: 0,\n      year: 0,\n      month: 0, \n      day: 0,\n      hour: 0,\n      minute: 0,\n      second: 0\n    };\n  }\n\n  splitDate(date: Date) {\n    this.dateSplit = this.initializeSplit();\n    this.dateSplit.date = date.getDate();\n    this.dateSplit.year = date.getFullYear();\n    this.dateSplit.month = date.getMonth();\n    this.dateSplit.day = date.getDay();\n    this.dateSplit.hour = date.getHours();\n    this.dateSplit.minute = date.getMinutes();\n    this.dateSplit.second = date.getSeconds();\n    return this.dateSplit;\n  }\n\n  getMonths(month: number | false = false) {\n    if(month == false) {\n      let mo = this.months.map(m => {\n        return m.slice(0, 3);\n      });\n      return mo;\n    }else {\n      return this.months[month].slice(0, 3);\n    }\n    \n  }\n\n  getMonthsLong(month: number | false = false) { \n    return month ? this.months[month] : this.months;\n  }\n\n  daysInMonth(month: number, year:number = this.getYear(this.dater())) {\n    let dd = this.splitDate(this.dater(`${this.months[month-1]} 01, ${year}`));\n    return new Date(dd.year, dd.month + 1, 0).getDate();\n  }\n\n  isGreater(date1: string, date2: string){\n    let d1 = new Date(date1);\n    let d2 = new Date(date2);\n    return d1.getTime() > d2.getTime(); \n  }\n\n  isLessThan(date1: string, date2: string){\n    let d1 = new Date(date1);\n    let d2 = new Date(date2);\n    return d1.getTime() < d2.getTime(); \n  }\n}\n","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-overlay',\n  templateUrl: './overlay.component.html',\n  styleUrls: ['./overlay.component.css']\n})\nexport class OverlayComponent implements OnInit {\n  @Input() bgClass = \"grey1\";\n  @Input() overlayClass = \"bg-b-3\";\n  @Input() offSize: string = \"1\";\n  @Input() canvasPosition: string = \"top\";\n  @Input() id = \"1\";\n  @Input() active = false;\n\n  @Output() isClosed = new EventEmitter();\n\n  @HostListener('document:keydown.escape', ['$event'])\n  handleKeyboardEvent(event: KeyboardEvent) {\n    this.close();\n  }\n\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.service.registerOverlay(this.id, this.active);\n    this.subscribe();\n  }\n\n  activator() {\n    return this.active ? \"active\" : \"\";\n  }\n\n  subscribe() {\n    this.service.watchOverlay(this.id).subscribe((data:any) => {\n      this.active = data;\n    });\n  }\n\n  mainClasses() {\n    let classes = \"\";\n\n    classes += ` ${this.activator()}`;\n\n    classes += ` ${this.bgClass}`;\n\n    return classes;\n  }\n\n  overlayClasses() {\n    let classes = \"\";\n    classes += this.active ? 'active' : '';\n    classes += ` ${this.overlayClass}`;\n    return classes;\n  }\n\n  close() {\n    this.service.closeOverlay(this.id);\n    this.isClosed.emit(true);\n  }\n\n}\n","<div class=\"overlay {{canvasPosition}} size-{{offSize}}\" [ngClass]=\"mainClasses()\">\n  <ng-content></ng-content>\n</div>\n<div (click)=\"close()\" class=\"off-overlay blur\" [ngClass]=\"overlayClasses()\"></div>\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { InputStyle } from '../../types';\n\n@Component({\n  selector: 'mg-text',\n  templateUrl: './text-input.component.html',\n  styleUrls: ['./text-input.component.css']\n})\nexport class TextInputComponent implements OnInit {\n  @Input() theme = \"primary\";\n  @Input() form: InputStyle = \"control\";\n  @Input() dark = false;\n  @Input() value = \"\";\n  @Input() control: FormControl = new FormControl('');\n  @Input() filled = false;\n  @Output() data = new EventEmitter<FormControl>();\n  @Output() isFocused = new EventEmitter<boolean>();\n  @Output() keyup = new EventEmitter<string>();\n  @Input() info = {\n    type: \"success\",\n    msg: \"\"\n  };\n  @ViewChild('inputElementText') private inputElem!: ElementRef;\n  active = false;\n  focused = false;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n  onFocusIn() {\n    this.active = true;\n    this.focused = true;\n    this.isFocused.emit(this.active);\n  }\n\n  onFocusOut() {\n    this.focused = false;\n    if (!(this.value.length > 0)) {\n      this.active = false;\n    }\n    this.isFocused.emit(this.active);\n  }\n\n  onKeyUp(event: any) {\n    this.value = event.target.value;\n    this.control.setValue(event.target.value);\n    this.keyup.emit(this.value);\n    this.data.emit(this.control);\n  }\n\n  mainClasses() {\n    let classes = ``;\n    classes += ` ${this.active ? 'active' : ''}`;\n    classes += this.dark ? \" on-dark\" : \" on-lite\";\n    classes += this.form === \"control\" ? (this.filled ? \" filled\" : \" outline\") : \"\";\n    return classes;\n  }\n\n  labelClick(){\n    this.inputElem.nativeElement.focus();\n  }\n\n  infoClasses(){\n    let classes = \"\";\n    if(this.info.type === \"error\"){\n      classes += \"text-red\";\n    }else if(this.info.type === \"success\"){\n      classes += \"text-green\";\n    }else if(this.info.type === \"info\"){\n      classes += \"text-blue\";\n    }else if(this.info.type === \"lite\"){\n      classes += \"text-grey2\";\n    }else if(this.info.type === \"dark\"){\n      classes += \"text-grey8\";\n    }\n    return classes;\n  }\n}\n","<div class=\"form-{{form}} {{theme}}\" [ngClass]=\"mainClasses()\">\n  <label (click)=\"labelClick()\"><ng-content></ng-content></label>\n  <textarea #inputElementText (focus)=\"onFocusIn()\" (focusout)=\"onFocusOut()\" (keyup)=\"onKeyUp($event)\" [innerHtml]=\"value\"></textarea>\n  <ng-container *ngIf=\"info && info.msg && info.msg.length > 0\">\n    <p [innerHtml]=\"info.msg\" [ngClass]=\"infoClasses()\"></p>\n  </ng-container>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\nimport { Theme } from '../../types';\n\n@Component({\n  selector: 'mg-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.css']\n})\nexport class ButtonComponent implements OnInit {\n  @Output() clicked = new EventEmitter();\n  @Input() taskType = \"none\";\n  @Input() btnStyle = \"solid\";\n  @Input() task = \"open\";\n  @Input() target: any = \"/\";\n  @Input() theme: Theme = \"primary\";\n  @Input() class = \"\";\n  @Input() btnSize = \"md\";\n  @Input() isBlock = false;\n  @Input() round = false;\n  @Input() allowMargin = true;\n  @Input() allowShrink = true;\n  @Input() options: any = {};\n  @Input() isExternalLink = false;\n  @Input() newTab = false;\n\n  @Output() active = new EventEmitter();\n\n  route = [\"\"];\n  buttonType = \"none\";\n  buttonClasses = \"\";\n  shrink = false;\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n\n    if (this.taskType != \"link\") {\n      this.route = [\"\"];\n    } else {\n      this.route = this.target;\n    }\n\n    if (this.isExternalLink && this.taskType == \"link\") {\n      this.buttonType = \"external\";\n    } else if (!this.isExternalLink && this.taskType == \"link\") {\n      this.buttonType = \"internal\";\n    } else {\n      this.buttonType = \"widget\";\n    }\n\n  }\n\n  isClicked() {\n    this.clicked.emit(true);\n    if (this.taskType == \"modal\") {\n      this.modal();\n    } else if (this.taskType == \"offCanvas\") {\n      this.offCanvas();\n    } else if (this.taskType == \"slideShow\") {\n      this.slideShow();\n    } else if (this.taskType == \"wizard\") {\n      this.wizard();\n    } else if (this.taskType == \"collapse\") {\n      this.collapse();\n    } else if (this.taskType == \"overlay\") {\n      this.overlay();\n    }else if(this.taskType == \"slideshowV2\") {\n      this.slideshowV2();\n    }\n  }\n\n  btnClasses() {\n    this.buttonClasses = this.class + \" \" + this.theme;\n\n    this.buttonClasses += ` ${this.btnSize}`;\n\n    this.buttonClasses += this.shrink ? \" shrink\" : \"\"\n\n    this.buttonClasses += this.isBlock ? ` btn-block` : ``;\n\n    this.buttonClasses += this.btnStyle == \"link\" ? \" link\" : (this.btnStyle == \"outline\" ? \" btn-outline\" : \"\");\n\n    this.buttonClasses += this.round ? \" radius-5\" : \"\";\n    this.buttonClasses += this.allowMargin ? \" marginR-5\" : \"\";\n\n    return this.buttonClasses;\n  }\n\n  collapse() {\n    if (this.task == \"open\") {\n      this.service.openCollapse(this.target);\n      this.active.emit(true);\n    } else if (this.task == \"close\") {\n      this.service.closeCollapse(this.target);\n      this.active.emit(false);\n    }\n  }\n\n  wizard() {\n    if (this.task == \"next\") {\n      this.buttonClasses += this.options.next && !this.buttonClasses.includes(\"disable\") ? \" disable\" : \"\";\n      if (this.options.next) {\n        this.service.wizardNextStep(this.target);\n      }\n    } else if (this.task == \"previous\") {\n      this.buttonClasses += this.options.previous && !this.buttonClasses.includes(\"disable\") ? \" disable\" : \"\";\n      if (this.options.previous) {\n        this.service.WizardPreviousStep(this.target);\n      }\n    }\n  }\n\n  mouseEnter() {\n    if (this.taskType == \"dropdown\") {\n      console.log(\"to trigger dropdown\");\n      this.service.openDropDown(this.target);\n    }\n  }\n\n  mouseLeave() {\n    this.mouseup();\n    if (this.taskType == \"dropdown\") {\n      this.service.closeDropDown(this.target);\n    }\n  }\n\n  slideShow() {\n    if (this.task == \"play\") {\n      this.service.playSlideShow(this.target);\n      // this.slideShowService.play(this.target);\n    } else if (this.task == \"next\") {\n      this.service.nextSlide(this.target);\n      // this.slideShowService.next(this.target);\n    } else if (this.task == \"previous\") {\n      this.service.previousSlide(this.target);\n      // this.slideShowService.previous(this.target);\n    } else {\n      this.service.pauseSlideshow(this.target);\n      // this.slideShowService.pause(this.target);\n    }\n  }\n\n  slideshowV2(){\n    if (this.task === \"next\") {\n      this.service.nextSlideV2(this.target);\n    } else if(this.task === \"previous\" || this.task === \"prev\") {\n      this.service.prevSlideV2(this.target);\n    }\n  }\n\n  modal() {\n    if (this.task == \"open\") {\n      this.service.openModal(this.target);\n      this.active.emit(true);\n    } else {\n      this.service.closeModal(this.target);\n      this.active.emit(false);\n    }\n  }\n\n  overlay() {\n    if (this.task == \"open\") {\n      console.log(\"opening target\", this.target);\n      this.service.openOverlay(this.target);\n      this.active.emit(true);\n    } else {\n      this.service.closeOverlay(this.target);\n      this.active.emit(false);\n    }\n  }\n\n  offCanvas() {\n    console.log(\"Task type is offcanvas\");\n    if (this.task == \"open\") {\n      console.log(\"opening target\", this.target);\n      this.service.openCanvas(this.target);\n      this.active.emit(true);\n    } else {\n      console.log(\"Closing the canvas\");\n      this.service.closeCanvas(this.target);\n      this.active.emit(false);\n    }\n  }\n\n  mousedown() {\n    if (this.allowShrink) {\n      this.shrink = true;\n    }\n\n  }\n\n  mouseup() {\n    if (this.allowShrink) {\n      this.shrink = false;\n    }\n  }\n\n}\n","<ng-container *ngIf=\"buttonType == 'external'\">\n  <a class=\"btn\" (click)=\"isClicked()\" (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\"\n  [ngClass]=\"btnClasses()\" [href]=\"route\" [target]=\"newTab ? '_blank' : '_self'\"\n  (mousedown)=\"mousedown()\" (mouseup)=\"mouseup()\">\n    <ng-container *ngTemplateOutlet=\"mycontent\"></ng-container>\n  </a>\n</ng-container>\n\n<ng-container *ngIf=\"buttonType == 'internal'\">\n  <a class=\"btn\" (click)=\"isClicked()\" (mouseenter)=\"mouseEnter()\"\n  (mouseleave)=\"mouseLeave()\" [ngClass]=\"btnClasses()\" [routerLink]=\"route\"\n  (mousedown)=\"mousedown()\" (mouseup)=\"mouseup()\">\n    <ng-container *ngTemplateOutlet=\"mycontent\"></ng-container>\n  </a>\n</ng-container>\n\n<ng-container *ngIf=\"buttonType == 'widget'\">\n  <a class=\"btn\" (click)=\"isClicked()\" (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\"\n  [ngClass]=\"btnClasses()\"\n  (mousedown)=\"mousedown()\" (mouseup)=\"mouseup()\">\n    <ng-container *ngTemplateOutlet=\"mycontent\"></ng-container>\n  </a>\n</ng-container>\n\n<ng-template #mycontent>\n  <ng-content></ng-content>\n</ng-template>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { DaterService } from '../../dater.service';\nimport { DisabledRange } from '../../interfaces';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\nimport { Theme } from '../../types';\n\n@Component({\n  selector: 'mg-calendar',\n  templateUrl: './calendar.component.html',\n  styleUrls: ['./calendar.component.css']\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n\n  @Input() abbreviation = false;\n  @Input() bookEvents = false;\n  @Input() theme: Theme = \"primary\";\n  @Input() disabled: string[] = [];\n  @Input() size = 1;\n  @Input() disabledRange: DisabledRange = {\n    before: false,\n    after: false\n  };\n  // \"31 January 2022\"\n  @Input() events: any = [{\n    name: \"Meeting with Ali\",\n    date: \"17 January 2022 08:00 PM\",\n    description: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n    buzz: true\n  }, {\n    name: \"PUBG\",\n    date: \"17 January 2022 10:00 PM\",\n    description: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n    buzz: true\n  }, {\n    name: \"PHP\",\n    date: \"18 January 2022 10:00 PM\",\n    description: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n    buzz: false\n  }, {\n    name: \"Birthday Party\",\n    date: \"20 February 2022 10:00 PM\",\n    description: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n    buzz: true\n  }];\n  @Input() format = \"dd-MM-yyyy\";\n  @Input() icons = {\n    month: {\n      next: `<i class=\"fas fa-angle-right\"></i>`,\n      previous: `<i class=\"fas fa-angle-left\"></i>`\n    },\n    year: {\n      next: `<i class=\"fas fa-angle-double-right\"></i>`,\n      previous: `<i class=\"fas fa-angle-double-left\"></i>`\n    }\n  };\n  @Input() controls = true;\n  @Input() class = \"\";\n\n  @Output() dayIsClicked = new EventEmitter();\n  @Output() dayDrop = new EventEmitter();\n  @Output() newEvent = new EventEmitter();\n\n  months_long: any;\n  months_short: any;\n\n  months: any;\n\n  weekDays = [\n    \"Sun\",\n    \"Mon\",\n    \"Tue\",\n    \"Wed\",\n    \"Thu\",\n    \"Fri\",\n    \"Sat\"\n  ];\n\n  days: any = [];\n  toggleEvent = false;\n\n\n  current: any = {}\n\n  inView: any = {};\n\n  toggleSelect: any = false;\n\n  isHoveredWithData = \"\";\n\n  id = \"\";\n\n  activateNewEvent = false;\n\n  clickedOn = \"\";\n\n  bookEvent = {\n    name: \"\",\n    description: \"\",\n    on: <any>{}\n  };\n\n  droppedData: any = {};\n\n  dropOnDate: any = {};\n\n  constructor(private dater: DaterService, private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.executeAll();\n    this.id = this.service.makeid(4, \"createNewEventOverlay\");\n  }\n\n  ngOnChanges(): void {\n    console.log(\"Disabled? \", this.disabledRange);\n    this.executeAll();\n  }\n\n  executeAll() {\n    this.initializeStates();\n    this.updateDays(this.inView.year);\n    this.formatEventDates();\n  }\n\n  initializeStates() {\n    this.current = {\n      month: this.dater.getMonth(),\n      monthInWords: this.dater.getMonths(this.dater.getMonth()),\n      date: this.dater.getDate(),\n      year: this.dater.getYear(),\n      dayInNum: this.dater.getDay(),\n      weekDay: this.dater.getWeekDay(),\n      hour: this.dater.getHour(),\n      min: this.dater.getMinute(),\n      sec: this.dater.getSeconds()\n    };\n    this.months_long = this.dater.getMonthsLong();\n    this.months_short = this.dater.getMonths();\n\n    this.months = this.abbreviation ? this.months_short : this.months_long;\n    this.inView = {\n      month: this.current.month,\n      year: this.current.year\n    };\n  }\n\n  formatEventDates() {\n    for (let i = 0; i < this.events.length; i++) {\n      this.events[i].dateObject = {\n        date: this.dater.getDate(this.dater.dater(this.events[i].date)),\n        month: this.dater.getMonth(this.dater.dater(this.events[i].date)),\n        year: this.dater.getYear(this.dater.dater(this.events[i].date))\n      };\n    }\n  }\n\n  isDisabled(d: number, m: number, y: number) {\n    for (let i = 0; i < this.disabled.length; i++) {\n      let disabled_date = this.dater.dater(this.disabled[i]);\n      if (d == this.dater.getDate(disabled_date) && (m - 1) == this.dater.getMonth(disabled_date) && y == this.dater.getYear(disabled_date)) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  pushDisabled(d: number, m: number, y: number) {\n    let date = `${d} ${this.months[m - 1]} ${y}`;\n    if (typeof this.disabledRange.after == \"string\" &&\n      this.dater.isGreater(date, this.disabledRange.after) &&\n      !this.disabled.includes(date)) {\n      this.disabled.push(date);\n    }\n    if (typeof this.disabledRange.before == \"string\" &&\n      this.dater.isLessThan(date, this.disabledRange.before) &&\n      !this.disabled.includes(date)) {\n      this.disabled.push(date);\n    }\n  }\n\n\n  updateDays(year: number = this.current.year) {\n    this.days = [];\n    for (let i = 1; i < this.months.length + 1; i++) {\n      let onMonth: any = {};\n      let firstDate = this.dater.dater(`1-${this.months[i - 1]}-${year}`);\n      onMonth.totalDays = this.dater.daysInMonth(i, year);\n      onMonth.name = this.months[i - 1];\n      onMonth.month = i;\n      onMonth.dates = [];\n      onMonth.startDay = this.dater.getDay(firstDate);\n\n      for (let k = 0; k < onMonth.startDay; k++) {\n        let myDaY = {\n          num: 0,\n          weekday: this.weekDays[k],\n          weekDayNum: k,\n          month: i,\n          disabled: false\n        };\n        onMonth.dates.push(myDaY);\n\n      }\n      for (let j = 1; j <= onMonth.totalDays; j++) {\n        this.pushDisabled(j, i, year);\n        let mydate = this.dater.dater(`${j} ${this.months[i - 1]} ${year}`);\n        let myDaY = {\n          num: j,\n          weekday: this.weekDays[this.dater.getDay(mydate)],\n          weekDayNum: this.dater.getDay(mydate),\n          month: i,\n          disabled: this.isDisabled(j, i, year)\n        };\n        onMonth.dates.push(myDaY);\n      }\n      this.days.push(onMonth);\n    }\n  }\n\n  isEvented(d: number, m: number, y: number) {\n    let allEvents: any = [];\n    for (let i = 0; i < this.events.length; i++) {\n      if (d === this.events[i].dateObject.date && (m - 1) === this.events[i].dateObject.month && y === this.events[i].dateObject.year) {\n        allEvents.push(this.events[i]);\n      }\n    }\n    return allEvents.length > 0 ? allEvents : false;\n  }\n\n  doBuzz(eventDetails: any = []) {\n    for (let i = 0; i < eventDetails.length; i++) {\n      if (eventDetails[i].buzz) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  getSize() {\n    if (this.size === 1) {\n      return \"padV-10\";\n    } else if (this.size === 2) {\n      return \"padV-20\";\n    } else if (this.size === 3) {\n      return \"padV-30\";\n    } else if (this.size === 4) {\n      return \"padV-40\";\n    } else {\n      return \"padV-50\";\n    }\n  }\n\n  dayClass(d: number, m: number, y: number, disabled = false) {\n    let results = \"\";\n    results += ` ${this.getSize()}`;\n    results += this.dropzoneClass(d, m, y) ? \" scale-3 shadow-3 outline-grey10\" : \"\";\n    results += d == 0 ? \" day-disabled\" : \"\";\n    results += d == this.current.date && m - 1 == this.current.month && y == this.current.year ? \" active-day\" : \"\";\n    let eventdetails = this.isEvented(d, m, y);\n    results += !disabled && eventdetails ? \" haveEvent\" : \"\";\n    results += !disabled && this.doBuzz(eventdetails) ? \" buzz\" : \"\";\n    results += disabled ? \" day-diabled\" : \"\";\n    return results;\n  }\n\n\n\n  nextMonth() {\n    if (this.inView.month >= 11) {\n      this.inView.month = 0;\n      this.nextYear();\n    } else {\n      this.inView.month++;\n    }\n  }\n\n  prevMonth() {\n    if (this.inView.month <= 0) {\n      this.inView.month = 11;\n      this.prevYear();\n    } else {\n      this.inView.month--;\n    }\n  }\n\n\n\n  nextYear() {\n    this.inView.year++;\n    this.updateDays(this.inView.year);\n  }\n\n  prevYear() {\n    this.inView.year--;\n    this.updateDays(this.inView.year);\n  }\n\n\n\n  clickOnDay(d: number, m: number, y: number, disabled = false) {\n    if (!disabled) {\n      let date = new Date(`${d} ${this.months[m - 1]} ${y}`);\n      let dateTobeSent = this.dater.format(date, this.format);\n      this.dayIsClicked.emit({\n        date: d,\n        month: m,\n        year: y,\n        dateFormatted: dateTobeSent\n      });\n\n      this.eventDetailsToggle(d, m, y);\n      if (!this.toggleEvent) {\n        if (this.bookEvents) {\n          this.openNewEvent();\n          this.bookEvent.on.date = d;\n          this.bookEvent.on.month = m;\n          this.bookEvent.on.year = y;\n        }\n        this.clickedOn = this.dater.format(date, \"dd-MM-yyyy\");\n      }\n    }\n  }\n\n\n\n\n  setBookEvent(event: any, type: string) {\n    if (type == \"name\") {\n      this.bookEvent.name = event.target.value;\n    }\n    if (type == \"desc\") {\n      this.bookEvent.description = event.target.value;\n    }\n  }\n\n  createNewEvent() {\n    this.newEvent.emit(this.bookEvent);\n    this.activateNewEvent = false;\n  }\n\n\n  openNewEvent() {\n    this.activateNewEvent = true;\n  }\n\n  closeNewEvent() {\n    this.activateNewEvent = false;\n  }\n\n  updateOnDay(event: any) {\n    this.droppedData = event;\n    this.dayDrop.emit({\n      data: this.droppedData,\n      dropon: this.dropOnDate\n    });\n  }\n\n  handleDropZone(event: any, obj: any = {}) {\n    if (event && !event.dropped && event.dragEntered) {\n      this.isHoveredWithData = obj && obj.date && obj.month && obj.year ? `${obj.date}-${obj.month}-${obj.year}` : \"\";\n    } else if (event && event.dragLeft) {\n      this.isHoveredWithData = \"\";\n    } else if (event.dropped) {\n      this.isHoveredWithData = \"\";\n      this.dropOnDate = obj;\n    }\n  }\n\n  dropzoneClass(d: number, m: number, y: number) {\n    if (`${d}-${m}-${y}` === this.isHoveredWithData) {\n      return true;\n    }\n    return false;\n  }\n\n  eventDetailsToggle(d: number, m: number, y: number) {\n    if ((!this.toggleSelect) || !(this.toggleSelect.date == d && this.toggleSelect.month == m && this.toggleSelect.year == y)) {\n      let eventdetail = this.isEvented(d, m, y);\n      this.toggleSelect = {\n        date: d,\n        month: m,\n        year: y,\n        data: eventdetail\n      };\n      if (eventdetail) {\n        this.toggleEvent = true;\n        this.toggleSelect.data = eventdetail;\n      } else {\n        this.toggleEvent = false;\n      }\n    }\n  }\n\n}\n","<div class=\"calendar\" [ngClass]=\"(toggleEvent == true ? theme + ' activatedEvent' : theme) + ' ' + class\">\n    <div class=\"month-wrapper\">\n      <div class=\"month\" *ngFor=\"let month of months; let i = index\" [ngClass]=\"i == inView.month ? 'active': ''\">\n        <div class=\"calendar-info\" *ngIf=\"controls\">\n          <div class=\"previous-year\">\n            <a (click)=\"prevYear()\" [innerHtml]=\"icons.year.previous\"></a>\n          </div>\n          <div class=\"previous-month\">\n            <a (click)=\"prevMonth()\" [innerHtml]=\"icons.month.previous\"></a>\n          </div>\n          <div class=\"month-name\">\n            <span class=\"monthSpan\">{{month}}</span><span class=\"yearName\">{{inView.year}}</span>\n          </div>\n          <div class=\"next-month\">\n            <a (click)=\"nextMonth()\" [innerHtml]=\"icons.month.next\"></a>\n          </div>\n          <div class=\"next-year\">\n            <a (click)=\"nextYear()  \" [innerHtml]=\"icons.year.next\"></a>\n          </div>\n        </div>\n        <div class=\"weekdays\">\n          <p *ngFor=\"let wkday of weekDays\">{{wkday}}</p>\n        </div>\n        <div class=\"month-days\">\n          <ng-container *ngFor=\"let d of days[i].dates\">\n            <mg-dropable (dataRecieved)=\"updateOnDay($event)\" (onEvent)=\"handleDropZone($event, {date: d.num, month: d.month, year: inView.year})\">\n              <div class=\"day\" [ngClass]=\"dayClass(d.num, d.month, inView.year, d.disabled)\"\n              (click)=\"clickOnDay(d.num, d.month, inView.year, d.disabled)\">\n                <ng-container *ngIf=\"d.num == 0\"></ng-container>\n                <ng-container *ngIf=\"d.num != 0\">{{d.num}}</ng-container>\n              </div>\n            </mg-dropable>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n    <div class=\"event-details\">\n      <ng-container *ngIf=\"toggleSelect.data\">\n        <ng-container *ngFor=\"let eventData of toggleSelect.data\">\n            <div class=\"event-info-wrapper\">\n              <mg-dragable [draggable]=\"true\" [data]=\"eventData\">\n                <div class=\"event-detail-title\" [innerHtml]=\"eventData.name\"></div>\n                <div class=\"event-detail-date\" [innerHtml]=\"eventData.date\"></div>\n              </mg-dragable>\n              \n              <div class=\"event-detail-description\" [innerHtml]=\"eventData.description\"></div>\n            </div>\n        </ng-container>\n      </ng-container>\n    </div>\n  </div>\n\n  <mg-overlay bgClass=\"grey2\" [id]=\"id\" canvasPosition=\"bottom\" offSize=\"2\" [active]=\"activateNewEvent\" (isClosed)=\"closeNewEvent()\">\n    <div class=\"pad-10\">\n      <h2 class=\"text-grey8 marginV-15\">Book an event on <small class=\"font-15 text-red8\">{{ clickedOn }}</small> </h2>\n      <div class=\"row col m12 l12 s12\">\n        <mg-input label=\"Event Name\" fStyle=\"material\" class=\"marginT-5\" (keyup)=\"setBookEvent($event, 'name')\"></mg-input>\n      </div>\n      <div class=\"row col m12 l12 s12\">\n        <mg-text label=\"Event Description\" fStyle=\"material\" class=\"margin-5\" (keyup)=\"setBookEvent($event, 'desc')\"></mg-text>\n      </div>\n      <div class=\"col m12 l12 s12 text-right\">\n        <mg-button (click)=\"createNewEvent()\" theme=\"success\">Book an event <i class=\"fas fa-angle-double-right\"></i></mg-button>\n      </div>\n    </div>\n  </mg-overlay>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CalendarForDateInput, DisabledRange } from '../../interfaces';\nimport { InputStyle, Theme } from '../../types';\n\n@Component({\n  selector: 'mg-date',\n  templateUrl: './date-input.component.html',\n  styleUrls: ['./date-input.component.css']\n})\nexport class DateInputComponent implements OnInit, OnChanges {\n\n  @Input() theme: Theme = \"primary\";\n  @Input() style: InputStyle = \"control\";\n  @Input() control: FormControl = new FormControl('');\n  @Input() dark: boolean = false;\n\n  @Input() class = \"\";\n\n  @Input() calendar: CalendarForDateInput = {\n    disabled: [],\n    theme: \"success\",\n    abbreviation: true\n  };\n\n  @Input() info = {\n    type: \"success\",\n    msg: \"\"\n  };\n\n  \n\n  @Input() disabledRange: DisabledRange = {\n    before: false, \n    after: false\n  };\n\n  @Input() icons = {\n    close: `<i class=\"fas fa-times\"></i>`\n  };\n\n  @Input() format = \"dd-MM-yyyy\";\n\n  @Output() getdate = new EventEmitter<String>();\n\n  active = false;\n  value = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n  }\n\n  calendarClass() {\n    let classes = \"\";\n    classes += this.active ? \"active\" : \"\";\n    return classes;\n  }\n\n  inputFocused(event: any) {\n    if (event) {\n      this.active = event;\n    } else {\n      let $this = this;\n      setTimeout(function () {\n        $this.active = event;\n      }, 100);\n    }\n  }\n\n  dateSelected(event: any) {\n    if (event && event.dateFormatted) {\n      this.value = event.dateFormatted;\n      this.getdate.emit(this.value);\n    }\n  }\n\n}\n","<div (click)=\"active = true\"  (focusin)=\"inputFocused(true)\" (mouseleave)=\"inputFocused(false)\" [ngClass]=\"class\">\n    <mg-input [theme]=\"theme\" [style]=\"style\"\n    [placeholder] = \"format\" [control]=\"control\" type=\"text\" \n    [value]=\"value\" [dark]=\"dark\" [class]=\"class\" [info]=\"info\"><ng-content></ng-content></mg-input>\n    <div class=\"calendar-input pad-10\" [ngClass]=\"calendarClass()\">\n        <p class=\"text-right\">\n            <a [innerHtml]=\"icons.close\" \n            class=\"font-20 grey3 text-grey8 \n            hover-grey2 text-hover-grey10 \n            shadow-1 padH-13 radius-50 padV-5\" \n            style=\"position: absolute; right: 20px; margin-top: -10px;\" \n            (click)=\"active = false\"></a>\n        </p>\n        \n        <mg-calendar (dayIsClicked)=\"dateSelected($event)\" [theme]=\"calendar.theme\" \n        [disabled]=\"calendar.disabled\" [events]=\"[]\" [abbreviation] = \"calendar.abbreviation\"\n        [format]=\"format\" [disabledRange]=\"disabledRange\"></mg-calendar>\n    </div>\n</div>\n\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n  selector: 'mg-radio',\n  templateUrl: './radio.component.html',\n  styleUrls: ['./radio.component.css']\n})\nexport class RadioComponent implements OnInit {\n  @Input() options:any = false;\n  @Input() name: string = \"opt\";\n  @Input() size: string = \"s\";\n  @Input() isInline = true;\n  @Input() theme:string = \"primary\";\n  @Input() onDark: boolean = false;\n  @Output() value = new EventEmitter<any>();\n\n  selected = new FormControl(\"\");\n  constructor() { }\n\n  ngOnInit(): void {\n    this.selected.patchValue(this.options[0].value);\n  }\n\n  select(value:any){\n    this.selected.patchValue(value)\n    this.value.emit(this.selected);\n  }\n\n  mainClasses(){\n    let classes = \"\";\n\n    classes += this.theme;\n\n    classes += this.isInline ? \" radio-inline\" : \"\";\n\n    classes += this.size == \"s\" ? \" radio-small\" : (this.size == \"m\" ? \" radio-medium\" : (this.size == \"l\" ? \"radio-large\" : \"\"));\n\n    return classes;\n  }\n\n  classesOnLabel(){\n    let results = \"\";\n\n    results += this.onDark ? \"on-dark\" : \"on-lite\";\n\n    return results;\n  }\n\n}\n","<div class=\"radio\" [ngClass]=\"mainClasses()\">\n  <div class=\"option\">\n    <div class=\"radio-option\" *ngFor=\"let option of options\">\n      <input [id]=\"option.value\" type=\"radio\" [name]=\"name\" [value]=\"option.value\" (click)=\"select(option.value)\">\n      <div class=\"radio-shadow\"></div>\n      <label [for]=\"option.value\" [innerHtml]=\"option.name\" (click)=\"select(option.value)\" [ngClass]=\"classesOnLabel()\"></label>\n    </div>\n  </div>\n</div>\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Theme } from '../../types';\n\nexport interface Option {\n  name: string,\n  val: any\n};\n\n@Component({\n  selector: 'mg-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.css']\n})\nexport class SelectComponent implements OnInit {\n  @Output() value = new EventEmitter();\n  @Input() searchOpt: FormControl = new FormControl('');\n  @Input() theme: Theme | string = \"dark\";\n  @Input() selectTitle = \"Select\";\n  @Input() selectType = \"control\";\n  @Input() enableSearch = false;\n  @Input() options: Option[] = [{\n    name: \"Option 01\",\n    val: \"option_1\"\n  }, {\n    name: \"Option 02\",\n    val: \"option_2\"\n  }, {\n    name: \"Option 03\",\n    val: \"option_3\"\n  }, {\n    name: \"Option 04\",\n    val: \"option_4\"\n  }, {\n    name: \"Option 05\",\n    val: \"option_5\"\n  }];\n\n  selectedOption = {\n    name: \"\",\n    val: \"\"\n  };\n\n  highlighted = \"\";\n\n  optionsActive = false;\n\n  titleDisplay = this.selectTitle;\n\n  selectInput = new FormControl(\"\");\n\n\n  constructor(private eRef: ElementRef) { }\n\n  ngOnInit(): void {\n  }\n\n  @HostListener('document:click', ['$event'])\n  clickout(event:any) {\n    if(!this.eRef.nativeElement.contains(event.target)) {\n      this.searchOpt.setValue(\"\");\n      this.optionsActive = false;\n    }\n  }\n  @HostListener('document:keydown.escape', ['$event'])\n  handleKeyboardEvent(event: KeyboardEvent) {\n    this.searchOpt.setValue(\"\");\n    this.optionsActive = false;\n  }\n\n  toggleOptions() {\n    this.optionsActive = !this.optionsActive;\n  }\n\n  optionsClasses() {\n    let classes = ``;\n    classes += this.optionsActive ? \"active\" : \"\";\n    return classes;\n  }\n\n  selectOption(opt: any) {\n    this.value.emit(opt.val);\n    this.selectedOption = opt;\n    this.titleDisplay = this.selectedOption ? this.selectedOption.name : this.selectTitle;\n    this.selectInput.setValue(opt.val);\n    this.toggleOptions();\n  }\n\n  isHighlighted(name:string){\n    if(this.highlighted == name){\n      return \"highlighted\";\n    }else{\n      return \"\";\n    }\n  }\n\n  searchFromOptions(val:any){\n    let enterPressed = false;\n    if(val && val.code == \"Enter\" || val.key == \"Enter\"){\n      enterPressed = true;\n    }\n    val = val.target.value;\n    var opt:any = false;\n    for(let i = 0; i < this.options.length; i++) {\n      if(val.length > 0 && this.options[i].name.indexOf(val) > 1){\n        this.highlighted = this.options[i].name;\n        opt = this.options[i];\n      }else if(val.length > 0 && this.options[i].val.indexOf(val) > 1){\n        this.highlighted = this.options[i].name;\n        opt = this.options[i];\n      }\n    }\n    if(val.length < 1){\n      this.highlighted = \"\";\n    }\n    if(enterPressed && this.highlighted.length > 0){\n      this.searchOpt.setValue(\"\");\n      this.selectOption(opt);\n    }\n  }\n\n  inputTheme(){\n    if([\"primary\", \"success\", \"danger\", \"dark\", \"info\"].includes(this.theme)){\n      return \"lite\";\n    }else{\n      return \"dark\";\n    }\n  }\n\n}\n","<div class=\"select-wrapper {{theme}} select-{{selectType}}\">\n  <div class=\"select-title\" (click)=\"toggleOptions()\"><span [innerHtml]=\"titleDisplay\"></span> <span class=\"right\"><i class=\"fas fa-chevron-down\"></i></span></div>\n  <div class=\"select-options\" [ngClass]=\"optionsClasses()\">\n    <ng-container *ngIf=\"enableSearch\">\n      <mg-input placeholder=\"search\" [theme]=\"inputTheme()\" (keyup)=\"searchFromOptions($event)\" [filled]=\"true\"></mg-input>\n    </ng-container>\n    <hr>\n    <div class=\"select-option\" [ngClass]=\"isHighlighted(opt.name)\" *ngFor=\"let opt of options\" [innerHtml]=\"opt.name\" (click)=\"selectOption(opt)\"></div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'mg-switch',\n  templateUrl: './switch.component.html',\n  styleUrls: ['./switch.component.css']\n})\nexport class SwitchComponent implements OnInit {\n  @Input() options = {\n    left: \"Forget i logged in?\",\n    right: \"Keep me logged in?\"\n  };\n  @Input() type = \"filled\"; /* filled | empty */\n  @Input() theme = \"primary\";\n  @Input() size = \"s\";\n  @Input() showChoices = true;\n\n  @Input() onDark = false;\n\n  @Input() selected = true;\n\n  @Output() value = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  classesOnInput() {\n    let results = \"\";\n    results += this.type == \"filled\" ? \"switch-filled\" : \"empty-switch\";\n\n    results += \" \" + this.theme;\n\n    results += this.size == \"s\" ? \" switch-small\" :\n      (this.size == \"m\" ? \" switch-medium\" :\n        (this.size == \"l\" ? \" switch-large\" : \"\"));\n\n    return results;\n  }\n\n  toggleChoices() {\n    this.selected = !this.selected;\n    this.value.emit(this.selected);\n  }\n\n  leftClasses() {\n    let results = \"\";\n    results += this.onDark ? 'on-dark' : 'on-lite';\n    results += !this.selected ? \" active\" : \"\";\n    return results;\n  }\n\n  rightClasses() {\n    let results = \"\";\n    results += this.onDark ? 'on-dark' : 'on-lite';\n    results += this.selected ? \" active\" : \"\";\n    return results;\n  }\n\n}\n","<div class=\"mg-switch-wrapper\" [ngClass] = \"size == 's' ? 'switch-small' : size == 'm' ? 'switch-medium' : 'switch-large'\">\n\n  <ng-container *ngIf=\"options.left && showChoices\">\n    <div class=\"mg-switch-choice\" [ngClass]=\"leftClasses()\" [innerHtml]=\"options.left\" (click)=\"toggleChoices()\"></div>\n  </ng-container>\n\n\n  <input type=\"checkbox\" class=\"mg-switch\" [ngClass]=\"classesOnInput()\" [checked]=\"selected\"\n    (click)=\"toggleChoices()\" />\n\n  <ng-container *ngIf=\"options.right && showChoices\">\n    <div class=\"mg-switch-choice\" [ngClass]=\"rightClasses()\" [innerHtml]=\"options.right\" (click)=\"toggleChoices()\">\n    </div>\n  </ng-container>\n\n\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-list',\n  templateUrl: './list.component.html',\n  styleUrls: ['./list.component.css']\n})\nexport class ListComponent implements OnInit {\n  @Input() items: any = [];\n  @Input() theme: string = \"primary\";\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ul *ngIf=\"items.length > 0\" class=\"mg-list {{theme}}\" [ngClass]=\"class\">\n  <li *ngFor=\"let item of items\" [innerHtml]=\"item\" class=\"item\"></li>\n</ul>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.css']\n})\nexport class LoaderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>loader works!</p>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NavPartition, Theme } from '../../types';\n\n@Component({\n  selector: 'mg-navbar',\n  templateUrl: './navbar.component.html',\n  styleUrls: ['./navbar.component.css']\n})\nexport class NavbarComponent implements OnInit {\n  @Output() searchedText = new EventEmitter();\n  @Input() spaceAround = true;\n  @Input() theme: Theme = \"primary\";\n  @Input() onSmallMenuButton:string = \"=\";\n  @Input() isFixed = false;\n  @Input() partitionType: NavPartition = \"2:1\";\n  @Input() navData:any = {};\n\n  onSmallActive = false;\n\n  searchQuery = \"\";\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onSmallClass() {\n    return this.onSmallActive ? 'active' : '';\n  }\n\n  toggleNav() {\n    this.onSmallActive = !this.onSmallActive;\n  }\n\n  mainNavClasses() {\n    let classes = this.onSmallClass();\n\n    if (this.isFixed) {\n      classes += ` fixed`;\n    }\n\n    classes += this.spaceAround ? \" space-around\" : \"\";\n\n    if (this.partitionType == \"2:1\") {\n      classes += ` position-2-1`;\n    } else if (this.partitionType == \"1:2\") {\n      classes += ` position-1-2`;\n    } else if (this.partitionType == \"1:1\") {\n      classes += ` position-1-1`;\n    }\n\n    return classes;\n  }\n\n  onEnterSearchQuery(event: any): void {\n    if (event.key == \"Enter\") {\n      this.sendSearch();\n    } else {\n      this.searchQuery = event.target.value;\n    }\n  }\n\n  sendSearch() {\n    this.searchedText.emit(this.searchQuery);\n  }\n\n}\n","<div class=\"navbar-wrapper\">\n  <div class=\"navbar {{theme}}\" [ngClass]=\"mainNavClasses()\">\n    <div class=\"section brand\">\n      <ng-container *ngIf=\"navData && navData.brand\">\n        <a [innerHtml]=\"navData.brand.name\" [routerLink]=\"navData.brand.link\"></a>\n        <a (click)=\"toggleNav()\" class=\"small-only-open-nav\" [innerHtml]=\"onSmallMenuButton\"></a>\n      </ng-container>\n      <ng-container *ngIf=\"!navData.brand\">\n        <ng-content select=\"[slot=brand]\"></ng-content>\n      </ng-container>\n    </div>\n    <div class=\"section left-nav\">\n      <ng-container *ngIf=\"navData.left\">\n        <ng-container *ngIf=\"navData && navData.left && navData.left.navType == 'input'\">\n          <input type=\"text\" (keyup) = \"onEnterSearchQuery($event)\" class=\"input\" [placeholder]=\"navData.left.data.placeholder\" />\n          <a class=\"input-button\" *ngIf=\"navData.left.data.btn\" [innerHtml]=\"navData.left.data.name\"></a>\n        </ng-container>\n        <ng-container *ngIf=\"navData && navData.left && navData.left.navType == 'links'\">\n          <ng-container *ngFor=\"let ndata of navData.left.data\">\n            <!-- dropdown -->\n            <ng-container *ngIf=\"ndata.type && ndata.type == 'dropdown'\">\n              <div class=\"dropdown\">\n                <a [innerHtml]=\"ndata.name\" [routerLink]=\"ndata.link\" class=\"trigger-dropdown\"></a>\n                <div class=\"drop-menu\">\n                  <a *ngFor=\"let droplink of ndata.links\" [innerHtml]=\"droplink.name\"></a>\n                </div>\n              </div>\n            </ng-container>\n            <ng-container *ngIf=\"!ndata.type\">\n              <a [innerHtml]=\"ndata.name\" [routerLink]=\"ndata.link\"></a>\n            </ng-container>\n          </ng-container>\n        </ng-container>\n      </ng-container>\n      <ng-container *ngIf=\"!navData.left\">\n        <ng-content select=\"[slot=left-nav]\"></ng-content>\n      </ng-container>\n    </div>\n    <div class=\"section right-nav\">\n      <ng-container *ngIf=\"navData.right\">\n        <ng-container *ngIf=\"navData && navData.right && navData.right.navType == 'links'\">\n          <ng-container *ngFor=\"let ndata of navData.right.data\">\n            <!-- dropdown -->\n            <ng-container *ngIf=\"ndata.type && ndata.type == 'dropdown'\">\n              <div class=\"dropdown\">\n                <a [innerHtml]=\"ndata.name\" [routerLink]=\"ndata.link\" class=\"trigger-dropdown\"></a>\n                <div class=\"drop-menu\">\n                  <a *ngFor=\"let droplink of ndata.links\" [innerHtml]=\"droplink.name\"></a>\n                </div>\n              </div>\n            </ng-container>\n            <ng-container *ngIf=\"!ndata.type\">\n              <a [innerHtml]=\"ndata.name\" [routerLink]=\"ndata.link\"></a>\n            </ng-container>\n          </ng-container>\n        </ng-container>\n      </ng-container>\n      <ng-container *ngIf=\"!navData.right\">\n        <ng-content select=\"[slot=right-nav]\"></ng-content>\n      </ng-container>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-note',\n  templateUrl: './note.component.html',\n  styleUrls: ['./note.component.css']\n})\nexport class NoteComponent implements OnInit {\n  @Input() theme = \"primary\";\n  @Input() alignCenter = false;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"note {{theme}}\">\n  <span [ngClass]=\"{'text-center block' : alignCenter === true}\">\n    <ng-content></ng-content>\n  </span>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'mg-pagination',\n  templateUrl: './pagination.component.html',\n  styleUrls: ['./pagination.component.css']\n})\nexport class PaginationComponent implements OnInit, OnChanges {\n  @Output() page = new EventEmitter();\n  @Output() getdata = new EventEmitter();\n  @Input() theme = \"primary\";\n  @Input() data: any = [];\n  @Input() fullDataMode = true;\n  @Input() perPage = 10;\n  @Input() currentPage = 1;\n  @Input() icons = {\n    next: `<i class=\"fas fa-chevron-right\"></i>`,\n    previous: `<i class=\"fas fa-chevron-left\"></i>`\n  }\n\n  @Input() max = 22;\n\n  totalPages = 0;\n  totalCount = 0;\n  pages: any = [];\n  startFrom = 1;\n  _data:any = [];\n\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this._data = JSON.parse(JSON.stringify(this.data));\n    this.calculatePage();\n    \n    this.sendData();\n  }\n\n  ngOnChanges(): void {\n    this.removePages();\n    this.calculatePage();\n    this.sendData();\n  }\n\n  calculatePage() {\n    this.pages = [];\n    if (this.fullDataMode && this.data.length > 0) {\n      this.totalCount = this.data.length;\n    } else {\n      this.totalCount = this.data;\n    }\n    this.totalPages = Math.ceil(this.totalCount / this.perPage);\n    for (let i = this.startFrom; i <= this.totalPages; i++) {\n      if(this.pages.length < (this.max+1)) {\n        this.pages.push(i);\n      }\n    }\n  }\n\n  sendData() {\n    if (this.fullDataMode && this.totalCount > 0) {\n      let tobeSlicedFrom = (this.currentPage - 1) * this.perPage;\n      let tobeSlicedTo = this.currentPage * this.perPage;\n      let reformedData = [];\n      for(let i = tobeSlicedFrom; i < tobeSlicedTo; i++){\n        reformedData.push(this.data[i]);\n      }\n      this.getdata.emit(reformedData);\n    } else {\n      this.getdata.emit((this.currentPage - 1) * this.perPage);\n    }\n  }\n\n  removePages(){\n    this.startFrom = (this.currentPage > 1) && \n    (this.currentPage < this.totalPages - this.max || (this.currentPage > this.max - this.max/2)) ? this.currentPage - 1 : this.startFrom;\n  }\n\n  onPageClick(pageNumber: any) {\n    if (typeof pageNumber != \"number\") {\n      pageNumber = parseInt(pageNumber);\n    }\n    this.currentPage = pageNumber;\n    this.page.emit(this.currentPage);\n    this.sendData();\n    this.removePages();\n    this.calculatePage();\n  }\n\n  isActivePage(pageNumber: any) {\n    if (typeof pageNumber != \"number\") {\n      pageNumber = parseInt(pageNumber);\n    }\n    return this.currentPage == pageNumber ? 'active' : '';\n  }\n\n  onNext() {\n    this.currentPage = this.currentPage < this.totalPages ? this.currentPage + 1 : this.currentPage;\n    this.page.emit(this.currentPage);\n    this.sendData();\n    this.removePages();\n    this.calculatePage();\n  }\n\n  onPrevious() {\n    this.currentPage = this.currentPage > 1 ? this.currentPage - 1 : this.currentPage;\n    this.page.emit(this.currentPage);\n    this.sendData();\n    this.removePages();\n    this.calculatePage();\n  }\n}\n","<div class=\"pagination-wrapper pagination-{{theme}}\">\n  <div class=\"page page-previous not-selectable\" [innerHtml]=\"icons.previous\" (click)=\"onPrevious()\"></div>\n  <div class=\"page not-selectable\" *ngFor=\"let page of pages\" [ngClass]=\"isActivePage(page)\" (click)=\"onPageClick(page)\">\n    {{page}}\n  </div>\n  <div class=\"page page-next not-selectable\" [innerHtml]=\"icons.next\" (click)=\"onNext()\"></div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-collapse',\n  templateUrl: './collapse.component.html',\n  styleUrls: ['./collapse.component.css']\n})\nexport class CollapseComponent implements OnInit {\n  @Input() id = \"1\";\n  @Input() show = false;\n  @Input() class = \"\";\n\n  @Output() active = new EventEmitter();\n\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.service.registerCollapse(this.id, this.show);\n    this.watch();\n  }\n\n  watch() {\n    this.service.watchCollapse(this.id).subscribe((val: boolean) => {\n      this.show = val;\n      this.active.emit(val);\n    });\n  }\n\n  close() {\n    this.service.closeCollapse(this.id);\n  }\n\n  open() {\n    this.service.openCollapse(this.id);\n  }\n\n  mainCollapseClasses() {\n    let classes = ``;\n    classes += this.show ? 'active' : '';\n    return classes;\n  }\n\n}\n","<div class=\"collapse\" [ngClass]=\"mainCollapseClasses() + ' ' + class\">\n  <ng-content></ng-content>\n</div>\n","import { AfterContentChecked, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n  selector: 'mg-table',\n  templateUrl: './table.component.html',\n  styleUrls: ['./table.component.css']\n})\nexport class TableComponent implements OnInit, OnChanges, AfterContentChecked {\n  @Input() theme = \"primary\";\n  @Input() mgData: any = [];\n  @Input() ignoredColumns: any = [\"id\"];\n  @Input() sortBy: any = \"\";\n  @Input() sortDirection = \"ASC\";\n  @Input() tableTitle = \"Table\";\n  @Input() fixedHeader = false;\n  @Input() dragableSort = false;\n  @Input() paginate?:any = {\n    status: false, \n    perPage: 5\n  };\n\n  @Input() pagingPosition = {\n    top: true,\n    bottom: true\n  }\n\n  @Input() columnsOrder:any = [];\n\n  @Input() showOptions = {\n    title: false,\n    filter: false,\n    sort: false,\n    count: false\n  };\n\n  @Input() buttons:any = [];\n\n  /* \n  [{\n    title: \"options\",\n    data: [{\n      id: \"btn1\",\n      text: `<i class=\"fas fa-hammer\"></i>`\n    }]\n  }]\n  */\n\n  @Output() clicked = new EventEmitter();\n\n  currentPage = 1;\n  show = false;\n  \n  setCurrentPage(event:number){\n    this.currentPage = event;\n  }\n\n  setShowTimer(): any {\n    var $this = this;\n    setTimeout(function () {\n      $this.show = true;\n    }, 1000);\n  }\n  reformedData: any = [];\n  reformedHeads: any = {};\n\n  headings: any = [];\n\n  filterQuery: any = [];\n\n  count = 0;\n\n  paginatedData = [];\n\n  openFilterBox = false;\n  openSortBox = false;\n  sortOptions: any = [];\n\n\n  constructor(private cdref: ChangeDetectorRef) { }\n\n  ngOnInit(): void {\n    this.init();\n    this.setShowTimer();\n  }\n\n  ngOnChanges(): void {\n    this.init();\n  }\n\n  ngAfterContentChecked(){\n    this.cdref.detectChanges();\n  }\n\n  buttonIsClicked(btnId: string, rowNum: number){\n    this.clicked.emit({\n      id: btnId,\n      data: this.reformedData[rowNum]\n    });\n  }\n\n  init() {\n    this.extractHeadings();\n    this.refactorData();\n    this.count = this.reformedData.length;\n  }\n\n  concatHeads(headObj: any) {\n    for (let i = 0; i < headObj.length; i++) {\n      if (!this.headings.includes(headObj[i]) && !this.ignoredColumns.includes(headObj[i])) {\n        this.headings.push(headObj[i]);\n        this.sortOptions.push({ name: headObj[i], val: headObj[i] });\n        this.filterQuery.push({ name: headObj[i], val: new FormControl(\"\") });\n      }\n    }\n  }\n\n  sortColumns(){\n    if(this.columnsOrder && this.columnsOrder.length > 0){\n      let newHeads:any = [];\n      for(let i = 0; i < this.columnsOrder.length; i++){\n        for(let j = 0; j < this.headings.length; j++){\n          if(this.columnsOrder[i] === this.headings[j]){\n            newHeads.push(this.headings[j]);\n          }\n        }\n      }\n\n      let newDiff = this.headings.filter((x:any) => !newHeads.includes(x));\n      newHeads = [...newHeads, ...newDiff];\n      this.headings = newHeads;\n    }\n  }\n\n  extractHeadings() {\n    for (let i = 0; i < this.mgData.length; i++) {\n      let objHeads = Object.keys(this.mgData[i]);\n      this.concatHeads(objHeads);\n    }\n    this.sortColumns();\n  }\n\n  refactorData(dataToUpdate: any[] = this.mgData) {\n\n    this.reformedData = [];\n\n    for (let i = 0; i < dataToUpdate.length; i++) {\n      let data: any = [];\n\n      for (let j = 0; j < this.headings.length; j++) {\n        if(dataToUpdate[i]){\n          let d = dataToUpdate[i][this.headings[j]] != undefined ? dataToUpdate[i][this.headings[j]] : \"-\";\n          data.push(d);\n        }\n        \n      }\n\n      this.reformedData.push(data);\n\n    }\n\n    this.reformedHeads = this.reformedData[0];\n    this.sortByException();\n  }\n\n  sortFlip(newKey: any) {\n    this.sortDirection = this.sortDirection === \"\" ? \"ASC\" : this.sortDirection;\n    if (this.sortBy != \"\") {\n      if (this.sortBy == newKey) {\n        if (this.sortDirection == \"ASC\") {\n          this.sortDirection = \"DESC\";\n        } else {\n          this.sortDirection = \"ASC\";\n        }\n      } else {\n        this.sortDirection = \"ASC\";\n      }\n    }\n  }\n\n  sort(sortKey: any) {\n    console.log(\"key ==> \", sortKey);\n    this.sortByException();\n    if (this.sortBy != \"\") {\n      this.sortFlip(sortKey);\n      this.sortBy = sortKey;\n      let sorter = this.headings.indexOf(this.sortBy);\n      var $this = this;\n      let compare = (a: any, b: any) => {\n        a[sorter] = a[sorter].toString();\n        b[sorter] = b[sorter].toString();\n\n        if (a[sorter] < b[sorter]) {\n          return $this.sortDirection === \"ASC\" ? -1 : 1;\n        }\n        if (a[sorter] > b[sorter]) {\n          return $this.sortDirection === \"ASC\" ? 1 : -1;\n        }\n        return 0;\n      }\n      this.reformedData = this.reformedData.sort(compare);\n    }\n\n  }\n\n  sortByException() {\n    if (this.sortBy == \"\") {\n      this.sortBy = this.headings[0];\n    }\n  }\n\n\n  filter(filterKey: any) {\n    this.reformedData = this.reformedData.filter(function (el: any) {\n      return el.price <= 1000 &&\n        el.sqft >= 500 &&\n        el.num_of_beds >= 2 &&\n        el.num_of_baths >= 2.5;\n    });\n  }\n\n  openSorter() {\n    this.openSortBox = !this.openSortBox;\n    this.openFilterBox = false;\n  }\n\n  openFilter() {\n    this.openFilterBox = !this.openFilterBox;\n    this.openSortBox = false;\n  }\n\n  search(enable: boolean) {\n    console.log(enable);\n  }\n\n  recieveData(event: any, k: number){\n    if(this.dragableSort){\n      let fromColumn = this.columnsOrder[event.order];\n      this.columnsOrder[event.order] = this.columnsOrder[k];\n      this.columnsOrder[k] = fromColumn;\n      fromColumn = undefined;\n      this.extractHeadings();\n      if(this.paginate.status){\n        this.refactorData(this.paginatedData);\n      }else {\n        this.refactorData();\n      }\n    }\n  }\n\n  updatePaginatedData(data:any){\n    this.paginatedData = data;\n    if(this.paginate.status) this.refactorData(this.paginatedData);\n  }\n\n}\n","<div class=\"pad-10\">\n  <div class=\"pad-5\">\n    <h3><span [innerHtml]=\"tableTitle\" *ngIf=\"showOptions.title\">Table</span> <small class=\"right\" *ngIf=\"showOptions.count\">{{count}} <i\n          class=\"fas fa-list-ol padL-5 pointer\" (click)=\"openSorter()\" *ngIf=\"showOptions.sort\"></i> <i\n          class=\"fas fa-filter padL-5 font-16 pointer\" (click)=\"openFilter()\" *ngIf=\"showOptions.filter\"></i></small></h3>\n    <mg-collapse widgetId=\"1\" [show]=\"openFilterBox\">\n      <div class=\"pad-10 collapse-filter-box\">\n        <h4>Filter </h4>\n        <mg-button (clicked)=\"search($event)\" theme=\"success\" btnSize=\"sm\"><i class=\"fas fa-search padR-5\"></i> Search\n        </mg-button>\n        <div class=\"row\">\n          <div class=\"col m3 l3 s6\" *ngFor=\"let filter of filterQuery\">\n            <mg-input [control]=\"filter.val\"><span [innerHtml]=\"filter.name\"></span></mg-input>\n          </div>\n        </div>\n      </div>\n    </mg-collapse>\n\n    <mg-collapse widgetId=\"2\" [show]=\"openSortBox\">\n      <div class=\"pad-10 collapse-sorter-box\">\n        <h4 style=\"margin-bottom: 5px;\">Sort</h4>\n        <mg-select [options]=\"sortOptions\" (value)=\"sort($event)\"></mg-select>\n      </div>\n    </mg-collapse>\n  </div>\n  <div class=\"padV-5\" *ngIf=\"paginate.status && pagingPosition.top\">\n    <mg-pagination (page)=\"setCurrentPage($event)\" [currentPage]=\"currentPage\" [theme]=\"theme\" [fullDataMode]=\"true\" [data]=\"mgData\" [perPage]=\"paginate.perPage\" (getdata)=\"updatePaginatedData($event)\"></mg-pagination>\n  </div>\n  <table class=\"{{theme}}\">\n    <thead [ngClass]=\"fixedHeader ? 'fixed-header' : ''\">\n      <ng-container>\n        \n        <th *ngFor=\"let head of headings; let k = index\"><span (click)=\"sort(head)\">\n          <mg-dropable (dataRecieved)=\"recieveData($event, k)\">\n            <mg-dragable [data]=\"{order: k}\" [dragable]=\"dragableSort\">\n              {{head}}\n            </mg-dragable>\n          </mg-dropable>\n          </span></th>\n          <ng-container *ngIf=\"buttons && buttons.length > 0\">\n            <th *ngFor=\"let btn of buttons\">\n              <span *ngIf = \"btn && btn.title\" [innerHtml]=\"btn.title\"></span>\n            </th>\n          </ng-container>\n      </ng-container>\n      \n    </thead>\n    <tbody>\n      <ng-container>\n        <tr *ngFor=\"let data of reformedData; let ind=index;\">\n          <td *ngFor=\"let col of data\" [innerHtml]=\"col\"></td>\n          <ng-container *ngIf=\"buttons && buttons.length > 0\">\n            <td *ngFor=\"let btn of buttons\">\n              <ng-container *ngIf=\"btn.data && btn.data.length > 0\">\n                <ng-container *ngFor=\"let d of btn.data\">\n                  <span (click)=\"buttonIsClicked(d.id, ind)\" [innerHtml]=\"d.text\" style=\"cursor: pointer; padding-left: 5px; padding-right: 5px;\"></span>\n                </ng-container>\n              </ng-container>\n            </td>\n          </ng-container>\n          \n        </tr>\n      </ng-container>\n      \n    </tbody>\n  </table>\n  <div class=\"padV-5\" *ngIf=\"paginate.status && pagingPosition.bottom\">\n    <mg-pagination (page)=\"setCurrentPage($event)\" [currentPage]=\"currentPage\" [theme]=\"theme\" [fullDataMode]=\"true\" [data]=\"mgData\" [perPage]=\"paginate.perPage\" (getdata)=\"updatePaginatedData($event)\"></mg-pagination>\n  </div>\n</div>\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.css']\n})\nexport class ToastComponent implements OnInit, OnChanges {\n  @Input() show = true;\n  @Input() position = \"bottom\";\n  @Input() theme = \"primary\";\n  @Input() timeout = 4000;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(): void {\n    if (this.show) {\n      this.setTimer();\n    }\n  }\n\n  showToast() {\n    return this.show ? \"active \" + this.theme + \" toast-\" + this.position : this.theme + \" toast-\" + this.position;\n  }\n\n  close() {\n    this.show = false;\n  }\n\n  setTimer() {\n    if (this.timeout !== 0) {\n      var $this = this;\n      setTimeout(function () {\n        $this.show = !$this.show;\n      }, $this.timeout);\n    }\n  }\n\n}\n","<div class=\"toast\" [ngClass]=\"showToast()\">\n  <a class=\"close-btn\" (click)=\"close()\"><i class=\"fas fa-times\"></i></a>\n  <ng-content></ng-content>\n</div>\n","import { AfterViewChecked, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'mg-chat',\n  templateUrl: './chat.component.html',\n  styleUrls: ['./chat.component.css']\n})\nexport class ChatComponent implements OnInit, OnChanges, AfterViewChecked {\n  @Input() header = `Chat box`;\n  @Input() show = true;\n  @Input() openBody = true;\n  @Input() messages = [{\n    sender: \"Person A\",\n    time: \"08:00 AM\",\n    description: `Hello I am Person A`,\n    isSender: false\n  }, {\n    sender: \"Person B\",\n    time: \"08:02 AM\",\n    description: `Hello I am Person B`,\n    isSender: true\n  }, {\n    sender: \"Person A\",\n    time: \"08:03 AM\",\n    description: `Whats up?`,\n    isSender: false\n  }, {\n    sender: \"Person B\",\n    time: \"08:04 AM\",\n    description: `All good`,\n    isSender: true\n  }, {\n    sender: \"Person A\",\n    time: \"08:00 AM\",\n    description: `Hello I am Person A`,\n    isSender: false\n  }, {\n    sender: \"Person B\",\n    time: \"08:02 AM\",\n    description: `Hello I am Person B`,\n    isSender: true\n  }, {\n    sender: \"Person A\",\n    time: \"08:03 AM\",\n    description: `Whats up?`,\n    isSender: false\n  }, {\n    sender: \"Person B\",\n    time: \"08:04 AM\",\n    description: `All good`,\n    isSender: true\n  }];\n\n  @Input() class = \"\";\n\n\n  @ViewChild('scrollMe') private myScrollContainer!: ElementRef;\n  inputMessage = \"\";\n  @Output() chatInput = new EventEmitter();\n\n  constructor() { }\n\n  ngOnInit() {\n    this.scrollToBottom();\n  }\n\n  ngOnChanges() {\n    this.scrollToBottom();\n  }\n\n  ngAfterViewChecked() {\n    this.scrollToBottom();\n  }\n\n  scrollToBottom(): void {\n    try {\n      this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight;\n    } catch (err) { }\n  }\n\n  closeChat() {\n    this.show = false;\n  }\n\n  mainChatClasses() {\n    let results = \"\";\n    results += this.openBody ? \"active\" : \"\";\n    return results;\n  }\n\n  minimizeToggle() {\n    this.openBody = !this.openBody;\n    this.scrollToBottom();\n  }\n\n  storeMessage(event: any) {\n    this.inputMessage = event.target.value;\n    if (event.key == \"Enter\") {\n      this.sendMessage();\n    }\n  }\n\n  sendMessage() {\n    this.inputMessage = \"\";\n    this.chatInput.emit(this.inputMessage);\n  }\n\n}\n","<div class=\"chat-wrapper\" *ngIf=\"show\" [ngClass]=\"mainChatClasses() + ' ' + class\">\n  <div class=\"chat-header\">\n    <div class=\"row\">\n      <div class=\"col m8 l8 s8\" [innerHtml]=\"header\" (click)=\"minimizeToggle()\"></div>\n      <div class=\"col m4 l4 s4\">\n        <p class=\"text-right\"><a class=\"padR-10\" (click)=\"minimizeToggle()\"><i class=\"fas fa-minus\"></i></a><a (click)=\"closeChat()\"><i class=\"fas fa-times\"></i></a></p>\n      </div>\n    </div>\n  </div>\n  <div class=\"chat-body\"  #scrollMe>\n    <div class=\"chat-message\" *ngFor=\"let msg of messages\" [ngClass]=\"msg.isSender ? 'is-sender' : 'is-reciever'\">\n      <p class=\"message-info\">\n        <span class=\"by\">\n          {{msg.sender}}\n        </span>\n        <span class=\"time\">\n          {{msg.time}}\n        </span>\n      </p>\n      <p class=\"message-description\">\n        <span [innerHtml]=\"msg.description\"></span>\n      </p>\n    </div>\n  </div>\n  <div class=\"chat-footer\">\n    <input type=\"text\" placeholder=\"your message\" (keyup)=\"storeMessage($event)\"/>\n    <a (click)=\"sendMessage()\"><i class=\"fas fa-paper-plane\"></i></a>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-dropdown',\n  templateUrl: './dropdown.component.html',\n  styleUrls: ['./dropdown.component.css']\n})\nexport class DropdownComponent implements OnInit {\n  @Input() id = \"1\";\n  @Input() active = false;\n  @Input() position = {\n    hotizontal: \"right\",\n    vertical: \"bottom\"\n  };\n  @Input() class = \"\";\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.service.registerDropDown(this.id, this.active);\n    if (this.active) {\n      this.service.openDropDown(this.id);\n    }\n    this.watch();\n  }\n\n  watch() {\n    this.service.watchDropDown(this.id).subscribe((data: boolean) => {\n      console.log(\"Dropdown triggered\", data);\n      this.active = data;\n    });\n  }\n\n  openDropDown() {\n    this.service.openDropDown(this.id);\n  }\n\n  closeDropDown() {\n    this.service.closeDropDown(this.id);\n  }\n\n  dropdownClasses() {\n    let results = \"\";\n    results += this.active ? 'active' : '';\n    results += \" \" + this.position.hotizontal + \" \" + this.position.vertical;\n    return results;\n  }\n\n}\n","<div class=\"main\" style=\"position: relative;\" [ngClass]=\"class\">\n  <div class=\"dropdown-container\" [ngClass]=\"dropdownClasses()\" (mouseover)=\"openDropDown()\"\n    (mouseleave)=\"closeDropDown()\">\n    <div class=\"dropdown-content\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Megamenu } from '../../interfaces';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-megamenu',\n  templateUrl: './megamenu.component.html',\n  styleUrls: ['./megamenu.component.css']\n})\nexport class MegamenuComponent implements OnInit {\n  @Input() id = \"1\";\n  @Input() theme = \"primary\";\n  @Input() menu: Megamenu[] = [];\n  active = false;\n  isHovering = false;\n\n  activeLink = \"\";\n\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.service.registerMegaMenu(this.id, this.getAllIds());\n  }\n\n  getAllIds(){\n    let ids = [];\n    for(let i = 0; i < this.menu.length; i++){\n      ids.push(this.menu[i].id);\n    }\n    return ids;\n  }\n\n\n  watchMenu(){\n    this.service.watchMegaMenu(this.id).subscribe((data: string | false) => {\n      if(data){\n        this.active = true;\n        this.activeLink = data;\n      }\n    });\n  }\n\n  setActive(ac:boolean){\n    this.active = ac;\n  }\n\n  closeMenu(){\n    this.active = false;\n    this.service.closeMegaMenu(this.id);\n  }\n\n  openMenu(targetId: string){\n    this.closeMenu();\n    this.service.openMegaMenu(this.id, targetId);\n    this.active = true;\n  }\n\n  megamenuContentClass(){\n    let results = \"\";\n\n    results += this.active ? \"active\" : \"\";\n\n    return results;\n  }\n\n  menuBtnClass(targetId: string){\n    let classes = \"\";\n    classes += `${this.theme}`;\n    classes += this.activeLink === targetId ? ` active` : '';\n    return classes;\n  }\n\n\n}\n","<div class=\"megamenu-wrapper\"  (mouseleave)=\"closeMenu()\">\n  <div class=\"megamenu-links\">\n    <ng-container *ngFor=\"let m of menu\">\n      <a class=\"btn\" [innerHtml]=\"m.name\" [ngClass]=\"menuBtnClass(m.id)\" (mouseover)=\"openMenu(m.id)\"></a>\n    </ng-container>\n  </div>\n  <div class=\"megamenu-content\" (mouseover)=\"active = true\" [ngClass]=\"megamenuContentClass()\">\n    <ng-content></ng-content>\n  </div>\n</div>","import { AfterViewInit, Component, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-slideshow',\n  templateUrl: './slideshow.component.html',\n  styleUrls: ['./slideshow.component.css']\n})\nexport class SlideshowComponent implements OnInit, AfterViewInit {\n  @Input() perPage = 5;\n  @Input() id = \"1\";\n  @Input() activePage = 1;\n  @Input() fullWidthSlide = false;\n  @Input() play = true;\n  @Input() timer = 1000;\n  @Input() items = [\n    `<img src=\"https://images.unsplash.com/photo-1636297461709-0812290a9dcc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=581&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1640067181866-3041ad1d9ae2?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=580&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1641945165700-2f6209644719?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=464&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1640107588244-8fe79997aa8e?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1032&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1637592440237-a1fbc55990d5?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1634913940785-9730051200ad?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=871&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1641760378661-6f290a50a62d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1641505396502-fb349184b506?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=387&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1642179930799-4503afdd07b4?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1974&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1642179930799-4503afdd07b4?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1974&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1641945165700-2f6209644719?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=464&q=80\" class=\"img img-responsive\"/>`,\n    `<img src=\"https://images.unsplash.com/photo-1640107588244-8fe79997aa8e?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1032&q=80\" class=\"img img-responsive\"/>`\n  ];\n  @Input() heightAdjustment = true;\n  @Input() maxHeight = 300;\n  @Input() showControls = false;\n  @Input() gap = 3;\n  // 1: 5px, 2: 10px, 3: 15px, 4: 20px; 5: 25px;\n  @Input() class = \"\";\n  slideshow_wrapper: any;\n\n  screenProperties = {\n    width: 0,\n    height: 0\n  };\n\n  mainWrapperWidth = 0;\n  singleSlideWidth = 0;\n\n  totalPage = 1;\n  totalItems = 0;\n\n  slideshowMarginLeft = 0;\n\n  slideInterval: any;\n\n  dataCheck: any = {};\n  constructor(private renderer: Renderer2, private elem: ElementRef, private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    if (this.perPage < 1) {\n      this.perPage = 1;\n    }\n  }\n\n  ngAfterViewInit() {\n    this.styleSetup();\n    this.service.registerSlideshow(this.id, this.activePage, this.play, false, false, false, this.timer);\n    this.subscription();\n  }\n\n  ngOnChanges(): void {\n    this.styleSetup();\n    this.autoPlay();\n  }\n\n  subscription() {\n    this.watchNext();\n    this.watchActivePage();\n    this.watchPrevious();\n    this.autoPlay();\n  }\n\n  @HostListener('window:resize', ['$event'])\n  onResize() {\n    this.styleSetup();\n  }\n\n  handlings() {\n    this.perPage = this.perPage > 0 ? this.perPage : 1;\n    this.activePage = this.activePage > 0 ? this.activePage : 1;\n  }\n\n\n\n  styleSetup() {\n    this.slideshow_wrapper = this.elem.nativeElement.querySelector(\".slideshow-wrapper\");\n    this.screenProperties.width = this.slideshow_wrapper.offsetWidth;\n    this.singleSlideWidth = this.screenProperties.width / this.perPage;\n    this.mainWrapperWidth = this.screenProperties.width * (this.items.length / this.perPage);\n    this.screenProperties.height = this.slideshow_wrapper.offsetHeight;\n    this.mainWrapperStyles();\n  }\n\n  calculatePages() {\n    this.totalItems = this.items.length;\n    this.totalPage = this.fullWidthSlide ? Math.ceil(this.totalItems / this.perPage) : this.totalItems;\n  }\n\n  mainWrapperStyles() {\n    let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n    let maxHeight = this.slideWrapperStyles();\n    this.renderer.setStyle(innerWrapper, \"height\", `${maxHeight}px`);\n    this.renderer.setStyle(innerWrapper, \"width\", `${this.mainWrapperWidth}px`);\n    this.calculatePages();\n  }\n\n  slideWrapperStyles() {\n    var slides = this.elem.nativeElement.querySelectorAll('.slide-wrapper');\n    let maxSlideHeight = this.maxHeight > 0 ? this.maxHeight : this.getMaxHeight(slides);\n    for (let i = 0; i < slides.length; i++) {\n      this.renderer.setStyle(slides[i], \"height\", `${maxSlideHeight}px`);\n      this.renderer.setStyle(slides[i], 'width', `${this.singleSlideWidth}px`);\n    }\n    var singleSlides = this.elem.nativeElement.querySelectorAll('.slide');\n\n    if (this.heightAdjustment) {\n      for (let i = 0; i < singleSlides.length; i++) {\n        let singleSlideHeight = singleSlides[i].offsetHeight;\n        let margintop = (maxSlideHeight - singleSlideHeight) / 2;\n        this.renderer.setStyle(singleSlides[i], \"margin-top\", margintop + \"px\");\n      }\n    }\n\n    return maxSlideHeight;\n  }\n\n  getMaxHeight(slides: any) {\n    let maxHeight = 0;\n    for (let i = 0; i < slides.length; i++) {\n      maxHeight = slides[i].offsetHeight > maxHeight ? slides[i].offsetHeight : maxHeight;\n    }\n    return maxHeight;\n  }\n\n  slideClasses() {\n    let results = \"\";\n    results += this.gap > 0 ? `pad-${(this.gap * 5)}` : \"\";\n    return results;\n  }\n\n  watchNext() {\n    this.service.watchSlideshowNext(this.id).subscribe((val: any) => {\n      if (val) {\n        this.performNext();\n      }\n    });\n  }\n\n  watchPrevious() {\n    this.service.watchSlideshowPrevious(this.id).subscribe((val: any) => {\n      if (val) {\n        this.performPrevious();\n      }\n    });\n  }\n\n  watchActivePage() {\n    this.service.watchSlideshowActivePage(this.id).subscribe((val: any) => {\n      this.activePage = val;\n    });\n  }\n\n  performNext() {\n    if (!this.fullWidthSlide) {\n      if (this.activePage + (this.perPage - 1) < this.totalPage) {\n        this.setActivePage(this.activePage + 1);\n        this.slideshowMarginLeft -= this.singleSlideWidth;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `${this.slideshowMarginLeft}px`);\n      } else {\n        this.setActivePage(1);\n        this.slideshowMarginLeft = 0;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `0`);\n      }\n    } else {\n      if (this.activePage < this.totalPage) {\n        this.setActivePage(this.activePage + 1);\n        this.slideshowMarginLeft -= 100;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `${this.slideshowMarginLeft}%`);\n      } else {\n        this.setActivePage(1);\n        this.slideshowMarginLeft = 0;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `0`);\n      }\n    }\n\n  }\n\n  performPrevious() {\n    if (!this.fullWidthSlide) {\n      if (this.activePage - (this.perPage -1) > 1) {\n        this.setActivePage(this.activePage - 1);\n        this.slideshowMarginLeft += this.singleSlideWidth;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `${this.slideshowMarginLeft}px`);\n      } else {\n        this.setActivePage(this.totalPage);\n        this.slideshowMarginLeft = -((this.totalPage - (this.perPage)) * this.singleSlideWidth);\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `${this.slideshowMarginLeft}px`);\n      }\n    } else {\n      if (this.activePage > 1) {\n        this.setActivePage(this.activePage - 1);\n        this.slideshowMarginLeft += 100;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `${this.slideshowMarginLeft}%`);\n      } else {\n        this.setActivePage(this.totalPage);\n        this.slideshowMarginLeft = (this.totalPage - 1) * -100;\n        let innerWrapper = this.elem.nativeElement.querySelector(\".slideshow\");\n        this.renderer.setStyle(innerWrapper, \"margin-left\", `${this.slideshowMarginLeft}%`);\n      }\n    }\n  }\n\n  setActivePage(active: number) {\n    this.service.changeSlideActivePage(this.id, active);\n  }\n\n  next() {\n    this.nextPage();\n  }\n  previous() {\n    this.previousPage();\n  }\n\n  nextPage() {\n    this.service.nextSlide(this.id);\n  }\n  previousPage() {\n    this.service.previousSlide(this.id);\n  }\n\n  playSlidesOp() {\n    this.pauseSlideOp();\n    var $this = this;\n    this.service.playSlideShow(this.id);\n  }\n\n  pauseSlideOp() {\n    this.service.pauseSlideshow(this.id);\n  }\n\n\n  autoPlay() {\n    if (this.play) {\n      this.playSlidesOp();\n    } else {\n      this.pauseSlideOp();\n    }\n  }\n\n}\n","<div class=\"slideshow-wrapper\" #slideshowWrapper [ngClass]=\"class\">\n  <div class=\"slideshow\">\n    <ng-container *ngFor=\"let item of items; let i = index;\">\n      <div class=\"slide-wrapper\">\n        <div class=\"slide\" [innerHtml]=\"item\" [ngClass]=\"slideClasses()\"></div>\n      </div>\n    </ng-container>\n  </div>\n  <div class=\"controls\" *ngIf=\"showControls\">\n    <a class=\"control-previous\" (click)=\"previousPage()\"><i class=\"fas fa-chevron-left\"></i></a>\n    <a class=\"control-next\" (click)=\"nextPage()\"><i class=\"fas fa-chevron-right\"></i></a>\n  </div>\n</div>\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-modal',\n  templateUrl: './modal.component.html',\n  styleUrls: ['./modal.component.css']\n})\nexport class ModalComponent implements OnInit {\n  @Input() show = false;\n  @Input() id = \"0\";\n  @Input() position = \"top\";\n  @Input() modalSize = \"md\";\n  @Input() overlayClass = \"grey8\";\n\n  @HostListener('document:keydown.escape', ['$event'])\n  handleKeyboardEvent(event: KeyboardEvent) {\n    this.close();\n  }\n\n  constructor( private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.service.registerModal(this.id, this.show);\n    this.subscribeToModal();\n  }\n\n  subscribeToModal() {\n    this.service.watchModal(this.id).subscribe((val:any) => {\n      this.show = val;\n    })\n  }\n\n  close() {\n    this.service.closeModal(this.id);\n  }\n\n  mainModelClasses() {\n    let classes = \"\";\n\n    classes += `${this.show ? 'active' : ''}`;\n\n    return classes;\n  }\n\n  overlayClasses() {\n\n    let classes = \"\";\n\n    classes += `${this.show ? 'active' : ''}`;\n    classes += ` ${this.overlayClass}`;\n\n    return classes;\n  }\n\n\n}\n","<div class=\"modal\" [ngClass]=\"mainModelClasses()\">\n  <div class=\"content on-{{position}} {{modalSize}}\" [ngClass]=\"mainModelClasses()\">\n    <ng-content></ng-content>\n  </div>\n  <div (click)=\"close()\" class=\"overlay blur\" [ngClass]=\"overlayClasses()\"></div>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-sidebar',\n  templateUrl: './sidebar.component.html',\n  styleUrls: ['./sidebar.component.css']\n})\nexport class SidebarComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>sidebar works!</p>\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-offcanvas',\n  templateUrl: './offcanvas.component.html',\n  styleUrls: ['./offcanvas.component.css']\n})\nexport class OffcanvasComponent implements OnInit {\n  @Input() active = false;\n  @Input() id = this.service.makeid(10, this.service.makeid(10, \"offcanvas\"));\n\n  widgetID = \"\";\n\n\n  @HostListener('document:keydown.escape', ['$event'])\n  handleKeyboardEvent(event: KeyboardEvent) {\n    this.close();\n  }\n\n  constructor( private service: MaterialgrammiService ) { }\n\n  ngOnInit(): void {\n    this.service.registerOffCanvas(this.id, this.active);\n    this.watch();\n  }\n\n  mainClasses(){\n    let results = \"\";\n    results += this.active ? \" active\" : \"\";\n    return results;\n  }\n\n  open(){\n    this.service.openCanvas(this.id);\n  }\n\n  close() {\n    this.service.closeCanvas(this.id);\n  }\n\n  watch(){\n    this.service.watchCanvas(this.id).subscribe((data:boolean) => {\n      this.active = data;\n    });\n  }\n\n\n\n}\n","<div class=\"offcanvas\" [ngClass]=\"mainClasses()\">\n  <div class=\"sidebar-wrapper\">\n    <ng-content select=\"[mg-data=sidebar]\"></ng-content>\n  </div>\n  <div class=\"content-wrapper\">\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-tab',\n  templateUrl: './tab.component.html',\n  styleUrls: ['./tab.component.scss']\n})\nexport class TabComponent implements OnInit {\n  @Input() options: any = [];\n  @Input() isVertical = true;\n  @Input() bg = \"\";\n  @Input() active = \"\";\n  @Input() id = \"\";\n  @Input() theme = \"primary\";\n  components: any = [];\n  activeComponent = \"\";\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    if (this.id == \"\") {\n      this.id = this.service.makeid(10, \"tab\")\n    }\n\n    this.getComponents();\n\n    if (this.active == \"\") {\n      this.active = this.components[0];\n    }\n\n    this.service.registerTab(this.id, this.components, this.active);\n    if(this.options && this.options[0] && this.options[0].widget){\n      this.activateWidget(this.options[0].widget);\n    }\n    this.watchActive();\n  }\n\n  getComponents() {\n    for (let i = 0; i < this.options.length; i++) {\n      this.components.push(this.options[i].widget);\n    }\n  }\n\n  watchActive(){\n    this.service.watchTab(this.id).subscribe((res: string) => {\n      this.activeComponent = res;\n    });\n  }\n\n  activateWidget(widgetID: string) {\n    this.service.openTab(this.id, widgetID);\n  }\n\n  mainClasses() {\n    let classes = \"\";\n    classes += this.isVertical ? \"vertical\" : \"horizontal\";\n    classes += ` ${this.theme}`;\n    return classes;\n  }\n\n  buttonClass(componentId:string){\n    return this.activeComponent == componentId ? \"active\" : \"\";\n  }\n\n}\n","<div class=\"tab-wrapper\" [ngClass]=\"mainClasses()\">\n    <div class=\"tab-links\" [ngClass]=\"bg\">\n        <div class=\"tabs\">\n            <a *ngFor=\"let tb of options\" [innerHtml]=\"tb.name\" (click)=\"activateWidget(tb.widget)\" [ngClass]=\"buttonClass(tb.widget)\"></a>\n        </div>\n    </div>\n    <div class=\"tab-content\">\n        <ng-content></ng-content>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-wizard',\n  templateUrl: './wizard.component.html',\n  styleUrls: ['./wizard.component.css']\n})\nexport class WizardComponent implements OnInit, OnChanges {\n  @Input() active = 0;\n  @Input() id = \"1\";\n  @Input() widgets = [\"step1\", \"step2\", \"step3\"];\n  @Output() step = new EventEmitter();\n  @Output() isCompleted = new EventEmitter();\n  activeStep = 0;\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.service.registerWizard(this.id, this.widgets, this.active);\n    this.watch();\n  }\n\n  ngOnChanges(): void {\n    this.service.registerWizard(this.id, this.widgets, this.active);\n  }\n\n  watch(){\n    this.service.watchWizardActive(this.id).subscribe((activeNumber: number) => {\n      console.log(\"watching step number\", activeNumber);\n      this.step.emit({\n        id: this.widgets[activeNumber],\n        number: activeNumber\n      });\n    });\n    this.service.watchWizardCompleted(this.id).subscribe((completed: boolean) => {\n      console.log(\"watching completed\", completed);\n      this.isCompleted.emit(completed);\n    });\n  }\n}\n","<div class=\"wizard\">\n  <ng-content></ng-content>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-notifications',\n  templateUrl: './notifications.component.html',\n  styleUrls: ['./notifications.component.css']\n})\nexport class NotificationsComponent implements OnInit {\n  @Input() position = \"topRight\";\n  @Input() close = `<i class=\"fas fa-times\"></i>`;\n  notificationData:any = [];\n\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.watchNotifications();\n  }\n\n  watchNotifications(){\n    this.service.watchNotification(this.position).subscribe((data:any) => {\n      console.log(\"Data recieved!!\", data);\n      this.notificationData = data;\n    });\n  }\n\n  closeNotification(id:string){\n    this.service.deleteNotification(this.position, id);\n  }\n\n  mainClass(){\n    let classes = \"\";\n    if(this.position.toLowerCase() === \"centercenter\"){\n      classes += \" center-center\";\n    }else {\n      if(this.position.toLowerCase().includes(\"top\")){\n        classes += \" top\";\n      }\n      if(this.position.toLowerCase().includes(\"bottom\")){\n        classes += \" bottom\";\n      }\n      if(this.position.toLowerCase().includes(\"left\")){\n        classes += \" left\";\n      }\n      if(this.position.toLowerCase().includes(\"right\")){\n        classes += \" right\";\n      }\n      if(this.position.toLowerCase().includes(\"center\")){\n        classes += \" center\";\n      }\n    }\n    \n    return classes;\n  }\n\n}\n","<ng-container *ngIf=\"notificationData.length\">\n    <div class=\"notifications-wrapper\" [ngClass]=\"mainClass()\">\n        <div class=\"notification\" *ngFor=\"let data of notificationData\" [ngClass]=\"(data && data.options) ? ((data.options.class ? data.options.class : '') + (data.options.size ? ' ' + data.options.size : '')) : ''\">\n            <a class=\"text-center\" [innerHtml] = \"close\" (click)=\"closeNotification(data.id)\"></a>\n            <p [innerHtml]=\"data && data.message ? data.message : ''\"></p>\n        </div>\n    </div>\n</ng-container>\n","import { Component, OnInit, Input, Output, EventEmitter, AfterContentInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-countdown',\n  templateUrl: './countdown.component.html',\n  styleUrls: ['./countdown.component.css']\n})\nexport class CountdownComponent implements AfterContentInit {\n  @Input() till = \"25 December 2050\";\n  @Input() expiredText = \"expired\";\n  @Input() parseProperties = {\n    day: \"day\",\n    days: \"days\",\n    hour: \"hour\",\n    hours: \"hours\",\n    minute: \"minute\",\n    minutes: \"minutes\",\n    second: \"second\",\n    seconds: \"seconds\"\n  };\n  @Input() class = \"\";\n\n  @Output() timeover = new EventEmitter(false);\n\n  endDate = new Date();\n\n  display = \"\";\n\n\n  constructor() { }\n\n  ngAfterContentInit(): void {\n    this.endDate = new Date(this.till);  \n    this.count();\n  }\n\n  count() {\n    var _this = this;\n    var x = setInterval(function () {\n      var dateNow = new Date();\n      var now = new Date().getTime();\n      var distance = _this.endDate.getTime() - now;\n\n      var days = _this.getDays();\n      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n      var seconds = Math.floor((distance % (1000 * 60)) / 1000);\n      _this.display = \"<span class='countdown-days'>\" + days + \" \" + _this.updateDisplay(days, \"d\") + \"</span><span class='countdown-hours'> \" + hours + \" \" + _this.updateDisplay(hours, \"h\") + \" </span><span class='countdown-minutes'>\"\n        + minutes + \" \" + _this.updateDisplay(minutes, \"m\") + \"</span><span class='countdown-seconds'> \" + seconds + \" \" + _this.updateDisplay(seconds, \"s\") + \"</span>\";\n      if (distance < 0) {\n        clearInterval(x);\n        _this.display = _this.expiredText;\n      }\n    }, 1000);\n  }\n\n  getDays() {\n    // One day Time in ms (milliseconds)\n    var one_day = 1000 * 60 * 60 * 24\n\n    // To set present_dates to two variables\n    var present_date = new Date();\n\n    // 0-11 is Month in JavaScript\n    var christmas_day = this.endDate;\n\n    // To Calculate next year's Christmas if passed already.\n    if (present_date.getMonth() == 11 && present_date.getDate() > 25)\n      christmas_day.setFullYear(christmas_day.getFullYear() + 1)\n\n    // To Calculate the result in milliseconds and then converting into days\n    var Result = Math.round(christmas_day.getTime() - present_date.getTime()) / (one_day);\n\n    // To remove the decimals from the (Result) resulting days value\n    return parseInt((Result).toFixed(0));\n  }\n\n  updateDisplay(amount: number, unit: string = \"d\") {\n    if (unit == \"d\") {\n      return amount > 1 ? this.parseProperties.days : this.parseProperties.day;\n    }\n    if (unit == \"h\") {\n      return amount > 1 ? this.parseProperties.hours : this.parseProperties.hour;\n    }\n    if (unit == \"m\") {\n      return amount > 1 ? this.parseProperties.minutes : this.parseProperties.minute;\n    }\n    if (unit == \"s\") {\n      return amount > 1 ? this.parseProperties.seconds : this.parseProperties.second;\n    }\n    return \"\";\n  }\n\n\n}\n","<ng-container><span [innerHtml]=\"display\" [ngClass]=\"class\"></span></ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-placeholder',\n  templateUrl: './placeholder.component.html',\n  styleUrls: ['./placeholder.component.css']\n})\nexport class PlaceholderComponent implements OnInit {\n  @Input() show = true;\n  @Input() type = \"img\";\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ng-container *ngIf=\"show\">\n    <div class=\"placeholder\" [ngClass]=\"type + ' ' + class\">\n        <div class=\"spinner-eclipse\">\n            <div class=\"eclipse\">\n                <div></div>\n            </div>\n        </div>\n        <ng-content></ng-content>\n    </div>\n</ng-container>\n<div class=\"load-wraper\">\n    <div class=\"activity\"></div>\n</div>\n","import { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';\nimport { AfterViewInit, Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\n\n\n\n@Component({\n  selector: 'mg-image',\n  templateUrl: './image.component.html',\n  styleUrls: ['./image.component.css']\n})\nexport class ImageComponent implements OnInit, AfterViewInit {\n  @Input() src = \"\";\n  @Input() responsive = true;\n  @Input() rounded = false;\n  @Input() circled = false;\n  @Input() shadowed = false;\n  @Input() applyFilters = true;\n  @Input() lazyLoad = true;\n  @Input() class = \"\";\n\n  @Input() filters: any = {\n    blur: false,\n    brightness: false,\n    contrast: false,\n    grayscale: false,\n    invert: false,\n    hue: false,\n    opacity: false,\n    saturate: false,\n    sepia: false\n  }\n\n  @ViewChild('imageEl') private image!: ElementRef;\n  @ViewChild('imageProgress') private imageProgress!: ElementRef;\n\n  loaded = false;\n  constructor(private renderer: Renderer2, private http: HttpClient) { }\n\n  ngOnInit(): void {\n    if(this.lazyLoad) {\n      this.loadImage();\n    }\n  }\n\n  ngAfterViewInit() {\n    this.filterize();\n  }\n\n  loadImage(){\n    this.http.get(this.src, {\n      responseType: \"blob\",\n      reportProgress: true,\n      observe: \"events\",\n      headers: new HttpHeaders({\n        'Content-Type': 'application/json'\n      })\n    }).subscribe(event=>{\n      if(event.type === HttpEventType.DownloadProgress && event.total) {\n        const percentage = (event.loaded/event.total) * 100;\n        this.imageProgress.nativeElement.value = percentage;\n      }\n      if(event.type === HttpEventType.Response && event.body){\n        this.loaded = true;\n        this.image.nativeElement.src = window.URL.createObjectURL(event.body);\n        this.filterize();\n      }\n    });\n  }\n\n  filterize(){\n    if(this.applyFilters && !this.loaded) {\n      let filters = this.createFilters();\n      this.renderer.setStyle(this.image.nativeElement, 'filter', filters);\n    }\n  }\n\n  imageClasses() {\n    let results = \"img\";\n    results += this.responsive ? \" img-responsive\" : \"\";\n    results += this.rounded ? \" rounded\" : \"\";\n    results += !this.rounded && this.circled ? \" circled\" : \"\";\n    results += this.shadowed ? \" shadow-2\" : \"\";\n    results += ` ${this.class}`;\n    return results;\n  }\n\n  createFilters() {\n    let filter = \"\";\n    filter += (this.filters.blur !== undefined && this.filters.blur !== false) ? ` blur(${this.filters.blur}px)` : \"\";\n    filter += (this.filters.brightness !== undefined && this.filters.brightness !== false) ? ` brightness(${this.filters.brightness}%)` : \"\";\n    filter += (this.filters.contrast !== undefined && this.filters.contrast !== false) ? ` contrast(${this.filters.contrast}%)` : \"\";\n    filter += (this.filters.grayscale !== undefined && this.filters.grayscale !== false) ? ` grayscale(${this.filters.grayscale}%)` : \"\";\n    filter += (this.filters.invert !== undefined && this.filters.invert !== false) ? ` invert(${this.filters.invert}%)` : \"\";\n    filter += (this.filters.hue !== undefined && this.filters.hue !== false) ? ` hue-rotate(${this.filters.hue}deg)` : \"\";\n    filter += (this.filters.opacity !== undefined && this.filters.opacity !== false) ? ` opacity(${this.filters.opacity}%)` : \"\";\n    filter += (this.filters.saturate !== undefined && this.filters.saturate !== false) ? ` saturate(${this.filters.saturate}%)` : \"\";\n    filter += (this.filters.sepia !== undefined && this.filters.sepia !== false) ? ` sepia(${this.filters.sepia}%)` : \"\";\n    return filter;\n  }\n\n\n}\n","<ng-container *ngIf=\"lazyLoad\">\n    <mg-placeholder type=\"img\" [show]=\"!loaded\">\n        <progress #imageProgress value = \"0\" max=\"100\" class=\"image-progress\"></progress>\n    </mg-placeholder>\n    \n    <img #imageEl [ngClass]=\"!loaded ? 'hide' : '' + imageClasses()\"/>\n</ng-container>\n\n<ng-container *ngIf=\"!lazyLoad\">\n    <img [src]=\"src\" #imageEl [ngClass]=\"imageClasses()\"/>\n</ng-container>\n\n\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { RangeSelected } from '../../interfaces';\nimport { InputStyle, Theme } from '../../types';\n\nexport interface DisabledRange {\n  before: false | string | Date,\n  after: false | string | Date\n}\n\n@Component({\n  selector: 'mg-daterange',\n  templateUrl: './date-range.component.html',\n  styleUrls: ['./date-range.component.css']\n})\nexport class DateRangeComponent implements OnInit, OnChanges {\n\n  @Input() dark = false;\n\n  @Input() labels = {\n    start: \"start date\",\n    end: \"end date\"\n  };\n\n  @Input() startTheme: Theme = \"primary\";\n  @Input() startStyle: InputStyle = \"control\";\n  @Input() startClass = \"\";\n\n  @Input() endTheme: Theme = \"primary\";\n  @Input() endStyle: InputStyle = \"control\";\n  @Input() endClass = \"\";\n\n  @Input() info = {\n    type: \"success\",\n    msg: \"\"\n  };\n\n  formattedInput?:any;\n\n\n  disable_range_start: DisabledRange = {\n    before: false,\n    after: false\n  };\n\n  disable_range_end: DisabledRange = {\n    before: false,\n    after: false\n  };\n\n  selected: RangeSelected = {\n    startdate: false,\n    enddate: false\n  }\n\n  @Output() range = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(): void {\n  }\n\n  selectedStartDate(event: any){\n    this.disable_range_end.before = event;\n    this.selected.startdate = event;\n    this.range.emit(this.selected);\n  }\n\n  selectedEndDate(event: any){\n    this.disable_range_start.after = event;\n    this.selected.enddate = event;\n    this.range.emit(this.selected);\n  }\n\n}\n","<div class=\"row\">\n    <div class=\"col m6 l6 s12\">\n        <div class=\"padR-3\">\n            <mg-date [theme]=\"startTheme\"\n            [disabledRange] = \"disable_range_start\"\n            [style]=\"startStyle\"\n            [dark]=\"dark\"\n            [class]=\"startClass\"\n            (getdate)=\"selectedStartDate($event)\" [info]=\"info\">\n        <span [innerHtml]=\"labels.start\"></span>\n        </mg-date>\n        </div>\n    </div>\n    <div class=\"col m6 l6 s12\">\n        <div class=\"padL-3\">\n            <mg-date [theme]=\"endTheme\" \n            [disabledRange] = \"disable_range_end\"\n            [style]=\"endStyle\"\n            [dark]=\"dark\"\n            [class]=\"endClass\"\n            (getdate)=\"selectedEndDate($event)\" [info]=\"info\">\n            <span [innerHtml]=\"labels.end\"></span>\n        </mg-date>\n        </div>\n    </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-component',\n  templateUrl: './component.component.html',\n  styleUrls: ['./component.component.css']\n})\nexport class ComponentComponent implements OnInit {\n  @Input() size: string = \"n\";\n  @Input() class = \"\";\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  containerClass() {\n    let results = \"\";\n    results += this.size == \"s\" ? \"pad-10\" : \"\";\n    results += this.size == \"m\" ? \"pad-30\" : \"\";\n    results += this.size == \"l\" ? \"pad-50\" : \"\";\n    results += this.size == \"xl\" ? \"pad-80\" : \"\";\n    return results;\n  }\n\n}\n","<div class=\"container\" [ngClass]=\"containerClass() + ' ' + class\">\n  <ng-content></ng-content>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-slider',\n  templateUrl: './slider.component.html',\n  styleUrls: ['./slider.component.css']\n})\nexport class SliderComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>slider works!</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MaterialgrammiService } from '../../materialgrammi.service';\n\n@Component({\n  selector: 'mg-slideshow-v2',\n  templateUrl: './slideshow-v2.component.html',\n  styleUrls: ['./slideshow-v2.component.css']\n})\nexport class SlideshowV2Component implements OnInit {\n  @Input() items = [\"wid-1-slide\", \"wid-2-slide\", \"wid-3-slide\", \"wid-4-slide\", \"wid-5-slide\"];\n  @Input() id = \"\";\n\n\n  constructor(private service: MaterialgrammiService) { }\n\n  ngOnInit(): void {\n    this.id = this.service.registerSlideShowv2(this.id, this.items);\n  }\n\n}\n","<div class=\"row\" >\n    <ng-content></ng-content>\n    <div class=\"clearfix\"></div>\n</div>\n\n\n\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n  selector: 'mg-fixer',\n  templateUrl: './fixer.component.html',\n  styleUrls: ['./fixer.component.css']\n})\nexport class FixerComponent implements OnInit, OnChanges {\n  @Input() active = false;\n  @Input() x = \"left\";\n  @Input() y = \"top\";\n\n  @Input() class = \"\";\n\n  constructor() { }\n\n  ngOnInit(): void {}\n\n  ngOnChanges(): void {}\n\n  mainClasses(){\n    let classes = this.class;\n    if(this.y != \"center\" || this.x != \"center\"){\n      classes += \" \" + this.y;\n      classes += \" \" + this.x;\n    }else{\n      classes += \" center-center\";\n    }\n    \n    return classes;\n  }\n\n}\n","<ng-container *ngIf=\"active\">\n    <div class=\"fixer\" [ngClass]=\"mainClasses()\">\n        <ng-content></ng-content>\n    </div>\n</ng-container>\n\n","import { Component, Input, OnInit, HostListener, ElementRef, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nexport interface multiOption {\n  name: string,\n  value: string\n};\n\n@Component({\n  selector: 'mg-muliselect',\n  templateUrl: './muliselect.component.html',\n  styleUrls: ['./muliselect.component.css']\n})\nexport class MuliselectComponent implements OnInit, OnChanges {\n  @Input() theme = \"primary\";\n  @Input() title = \"multi select title\";\n  @Input() searchOpt: FormControl = new FormControl('');\n  @Input() placeholder = \"click here\";\n  @Input() removeIcon = `<i class=\"fas fa-times\"></i>`;\n  @Input() options: multiOption[] = [{\n    name: \"option 001\",\n    value: \"value of option 1\"\n  }, {\n    name: \"option 002\",\n    value: \"value of option 2\"\n  }, {\n    name: \"option 003\",\n    value: \"value of option 3\"\n  }, {\n    name: \"option 004\",\n    value: \"value of option 4\"\n  }];\n  @Input() allowDuplicates: boolean = false;\n  @Input() deleteIcon = `<i class=\"fas fa-times\"></i>`;\n  @Input() viewType = \"option\";\n  @Input() enableSearch = false;\n\n  @Output() data = new EventEmitter();\n\n  selectedValues: any = [];\n  selectedOptions: any = [];\n  openOptions = false;\n  highlighted = \"\";\n  constructor(private eRef: ElementRef) { }\n\n  ngOnInit(): void {\n  }\n\n  ngOnChanges(): void {\n    this.data.emit(this.selectedValues);\n  }\n\n  @HostListener('document:click', ['$event'])\n  clickout(event: any) {\n    if (!this.eRef.nativeElement.contains(event.target)) {\n      this.searchOpt.setValue(\"\");\n      this.openOptions = false;\n    }\n  }\n  @HostListener('document:keydown.escape', ['$event'])\n  handleKeyboardEvent(event: KeyboardEvent) {\n    this.openOptions = false;\n  }\n\n\n  toggleOptions() {\n    this.openOptions = !this.openOptions;\n  }\n\n  closeOptions() {\n    this.openOptions = false;\n  }\n\n  valueFromOption(option: any){\n    for(let op of this.options) {\n      if(op.name === option) {\n        return op.value;\n      }\n    }\n    return false;\n  }\n\n  removeOptions(opt: any) {\n    if (this.viewType === \"option\") { \n      let opValue = this.valueFromOption(opt);\n      if(opValue) {\n        this.selectedValues = this.selectedValues.filter((o: any) => {\n          return o !== opValue;\n        });\n      }\n      this.selectedOptions = this.selectedOptions.filter((o: any) => {\n        return o !== opt;\n      });\n    }else {\n      this.selectedValues = this.selectedValues.filter((o: any) => {\n        return o !== opt;\n      });\n    }\n    this.data.emit(this.selectedValues);\n  }\n\n  selectValue(value: any, name: any) {\n    if ((!this.allowDuplicates && !this.selectedValues.includes(value)) || this.allowDuplicates) {\n      this.selectedValues.push(value);\n      this.selectedOptions.push(name);\n    }\n    this.closeOptions()\n    this.data.emit(this.selectedValues);\n  }\n\n  mainClasses() {\n    let classes = \"\";\n    classes += this.theme;\n    classes += this.openOptions ? \" active\" : \"\";\n    return classes;\n  }\n\n  searchFromOptions(val:any){\n    let enterPressed = false;\n    if(val && val.code == \"Enter\" || val.key == \"Enter\"){\n      enterPressed = true;\n    }\n    val = val.target.value;\n    var opt:any = false;\n    for(let i = 0; i < this.options.length; i++) {\n      if(val.length > 0 && this.options && this.options[i] && this.options[i].name && this.options[i].name.indexOf(val) > 1){\n        this.highlighted = this.options[i].name;\n        opt = this.options[i];\n      }else if(val.length > 0 && this.options[i].value.indexOf(val) > 1){\n        this.highlighted = this.options[i].name;\n        opt = this.options[i];\n      }\n    }\n    if(val.length < 1){\n      this.highlighted = \"\";\n    }\n    if(enterPressed && this.highlighted.length > 0){\n      this.searchOpt.setValue(\"\");\n      this.selectValue(opt.value, opt.name);\n    }\n  }\n\n  inputTheme(){\n    if([\"primary\", \"success\", \"danger\", \"dark\", \"info\"].includes(this.theme)){\n      return \"lite\";\n    }else{\n      return \"dark\";\n    }\n  }\n\n  isHighlighted(name: string){\n    if(this.highlighted == name){\n      return \"highlighted\";\n    }else{\n      return \"\";\n    }\n  }\n\n}\n","<div class=\"multi-select-container\" [ngClass]=\"mainClasses()\">\n    <div class=\"multi-select-title\" (click)=\"toggleOptions()\">\n        <p [innerHtml]=\"title\"></p>\n    </div>\n    <div class=\"multi-select-selected\" (click)=\"toggleOptions()\">\n        <div class=\"row\">\n            <div class=\"col m11 l11 s10\">\n                <ng-container *ngIf=\"viewType === 'option'\">\n                    <ng-container *ngFor=\"let opt of selectedOptions\">\n                        <div class=\"selected-pill\">\n                            <span [innerHtml]=\"opt\" class=\"selected-description\"></span>\n                            <span (click)=\"removeOptions(opt)\" class=\"selected-description\"\n                                [innerHtml]=\"removeIcon\"></span>\n                        </div>\n                    </ng-container>\n                </ng-container>\n                <ng-container *ngIf=\"viewType != 'option'\">\n                    <ng-container *ngFor=\"let opt of selectedValues\">\n                        <div class=\"selected-pill\">\n                            <span [innerHtml]=\"opt\" class=\"selected-description\"></span>\n                            <span (click)=\"removeOptions(opt)\" class=\"selected-description\"\n                                [innerHtml]=\"removeIcon\"></span>\n                        </div>\n                    </ng-container>\n                </ng-container>\n\n                <ng-container *ngIf=\"selectedValues.length < 1\">\n                    <span [innerHtml]=\"placeholder\" class=\"pad-5\"></span>\n                </ng-container>\n            </div>\n            <div class=\"col m1 l1 s2 text-right\">\n                <i class=\"fas fa-angle-down\"></i>\n            </div>\n        </div>\n    </div>\n    <div class=\"multi-select-options\">\n        <ng-container *ngIf=\"enableSearch\">\n            <mg-input placeholder=\"search\" [theme]=\"inputTheme()\" (keyup)=\"searchFromOptions($event)\" [filled]=\"true\">\n            </mg-input>\n        </ng-container>\n        <ng-container *ngFor=\"let opt of options\">\n            <div class=\"multi-option\" [ngClass]=\"isHighlighted(opt.name)\" [innerHtml]=\"opt.name\" (click)=\"selectValue(opt.value, opt.name)\"></div>\n        </ng-container>\n    </div>\n</div>","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, OnInit, Output, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'mg-inview',\n  templateUrl: './inview.component.html',\n  styleUrls: ['./inview.component.css']\n})\nexport class InviewComponent implements OnInit, AfterViewInit {\n\n  @Output() active = new EventEmitter();\n  @Output() boxOnScreen = new EventEmitter();\n\n  viewport = {\n    width: 0,\n    height: 0\n  };\n\n  box = {\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  };\n\n  @ViewChild(\"inView\") inView?: ElementRef;\n\n  boxInView = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.calculateScreen();\n    this.calculateBox();\n    this.inviewCheck();\n  }\n\n  ngAfterViewInit(): void {\n    this.calculateScreen();\n    this.calculateBox();\n    this.inviewCheck();\n  }\n\n  @HostListener('document:scroll', ['$event'])\n  onScroll() {\n    this.calculateBox();\n    this.inviewCheck();\n  }\n\n  calculateScreen() {\n    this.viewport.width = document.documentElement.clientWidth;\n    this.viewport.height = document.documentElement.clientHeight;\n  }\n\n  calculateBox() {\n    if (this.inView) {\n      this.box.top = this.inView.nativeElement.getBoundingClientRect().top;\n      this.box.bottom = this.inView.nativeElement.getBoundingClientRect().bottom;\n      this.box.left = this.inView.nativeElement.getBoundingClientRect().left;\n      this.box.right = this.inView.nativeElement.getBoundingClientRect().right;\n      this.boxOnScreen.emit(this.box);\n    }\n  }\n\n  inviewCheck() {\n    if (\n      this.box.top < this.viewport.height &&\n      this.box.bottom > 0 &&\n      this.box.left < this.viewport.width &&\n      this.box.right > 0\n      ) {\n      this.boxInView = true;\n    } else {\n      this.boxInView = false;\n    }\n    this.active.emit(this.boxInView);\n  }\n}\n","<div class=\"viewport\" #inView>\n    <ng-content></ng-content>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-badge',\n  templateUrl: './badge.component.html',\n  styleUrls: ['./badge.component.css']\n})\nexport class BadgeComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>badge works!</p>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mg-hoscroll',\n  templateUrl: './hoscroll.component.html',\n  styleUrls: ['./hoscroll.component.css']\n})\nexport class HoscrollComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>hoscroll works!</p>\n","import { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\n\nimport { MaterialgrammiComponent } from './materialgrammi.component';\nimport { TestComponentComponent } from './components/test-component/test-component.component';\nimport { AccordionComponent } from './components/accordion/accordion.component';\nimport { WidgetComponent } from './components/widget/widget.component';\nimport { CommonModule } from '@angular/common';\nimport { AccordionItemComponent } from './components/accordion-item/accordion-item.component';\nimport { AlertComponent } from './components/alert/alert.component';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { RouterModule } from '@angular/router';\nimport { CardComponent } from './components/card/card.component';\nimport { ChipComponent } from './components/chip/chip.component';\nimport { DragableComponent } from './components/dragable/dragable.component';\nimport { DropableComponent } from './components/dropable/dropable.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DateInputComponent } from './components/date-input/date-input.component';\nimport { InputComponent } from './components/input/input.component';\nimport { RadioComponent } from './components/radio/radio.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { SwitchComponent } from './components/switch/switch.component';\nimport { TextInputComponent } from './components/text-input/text-input.component';\nimport { ListComponent } from './components/list/list.component';\nimport { LoaderComponent } from './components/loader/loader.component';\nimport { NavbarComponent } from './components/navbar/navbar.component';\nimport { NoteComponent } from './components/note/note.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { TableComponent } from './components/table/table.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport { ChatComponent } from './components/chat/chat.component';\nimport { CollapseComponent } from './components/collapse/collapse.component';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { MegamenuComponent } from './components/megamenu/megamenu.component';\nimport { ButtonComponent } from './components/button/button.component';\nimport { SlideshowComponent } from './components/slideshow/slideshow.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { SidebarComponent } from './components/sidebar/sidebar.component';\nimport { OverlayComponent } from './components/overlay/overlay.component';\nimport { OffcanvasComponent } from './components/offcanvas/offcanvas.component';\nimport { TabComponent } from './components/tab/tab.component';\nimport { WizardComponent } from './components/wizard/wizard.component';\nimport { NotificationsComponent } from './components/notifications/notifications.component';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CountdownComponent } from './components/countdown/countdown.component';\nimport { ImageComponent } from './components/image/image.component';\nimport { DateRangeComponent } from './components/date-range/date-range.component';\nimport { ComponentComponent } from './components/component/component.component';\nimport { SliderComponent } from './components/slider/slider.component';\nimport { SlideshowV2Component } from './components/slideshow-v2/slideshow-v2.component';\nimport { FixerComponent } from './components/fixer/fixer.component';\nimport { MuliselectComponent } from './components/muliselect/muliselect.component';\nimport { PlaceholderComponent } from './components/placeholder/placeholder.component';\nimport { InviewComponent } from './components/inview/inview.component';\nimport { BadgeComponent } from './components/badge/badge.component';\nimport { HoscrollComponent } from './components/hoscroll/hoscroll.component';\n\n@NgModule({\n  declarations: [\n    MaterialgrammiComponent,\n    TestComponentComponent,\n    AccordionComponent,\n    WidgetComponent,\n    AccordionItemComponent,\n    AlertComponent,\n    BreadcrumbComponent,\n    CardComponent,\n    ChipComponent,\n    DragableComponent,\n    DropableComponent,\n    FooterComponent,\n    CheckboxComponent,\n    DateInputComponent,\n    InputComponent,\n    RadioComponent,\n    SelectComponent,\n    SwitchComponent,\n    TextInputComponent,\n    ListComponent,\n    LoaderComponent,\n    NavbarComponent,\n    NoteComponent,\n    PaginationComponent,\n    TableComponent,\n    ToastComponent,\n    ChatComponent,\n    CollapseComponent,\n    DropdownComponent,\n    MegamenuComponent,\n    ButtonComponent,\n    SlideshowComponent,\n    ModalComponent,\n    SidebarComponent,\n    OverlayComponent,\n    OffcanvasComponent,\n    TabComponent,\n    WizardComponent,\n    NotificationsComponent,\n    CalendarComponent,\n    CountdownComponent,\n    ImageComponent,\n    DateRangeComponent,\n    ComponentComponent,\n    SliderComponent,\n    SlideshowV2Component,\n    FixerComponent,\n    MuliselectComponent,\n    PlaceholderComponent,\n    InviewComponent,\n    BadgeComponent,\n    HoscrollComponent\n  ],\n  imports: [\n    CommonModule,\n    RouterModule,\n    HttpClientModule\n  ],\n  exports: [\n    MaterialgrammiComponent,\n    TestComponentComponent,\n    AccordionComponent,\n    WidgetComponent,\n    AlertComponent,\n    BreadcrumbComponent,\n    CardComponent,\n    ChipComponent,\n    DragableComponent,\n    DropableComponent,\n    FooterComponent,\n    CheckboxComponent,\n    DateInputComponent,\n    InputComponent,\n    RadioComponent,\n    SelectComponent,\n    SwitchComponent,\n    TextInputComponent,\n    ListComponent,\n    LoaderComponent,\n    NavbarComponent,\n    NoteComponent,\n    PaginationComponent,\n    TableComponent,\n    ToastComponent,\n    ChatComponent,\n    CollapseComponent,\n    DropdownComponent,\n    MegamenuComponent,\n    ButtonComponent,\n    SlideshowComponent,\n    ModalComponent,\n    SidebarComponent,\n    OverlayComponent,\n    OffcanvasComponent,\n    TabComponent,\n    WizardComponent,\n    NotificationsComponent,\n    CalendarComponent,\n    CountdownComponent,\n    ImageComponent,\n    DateRangeComponent,\n    ComponentComponent,\n    SlideshowV2Component,\n    FixerComponent,\n    MuliselectComponent,\n    InviewComponent\n  ]\n})\nexport class MaterialgrammiModule { }\n","/*\n * Public API Surface of materialgrammi\n */\n\nexport * from './lib/materialgrammi.service';\nexport * from './lib/seo.service';\nexport * from './lib/materialgrammi.component';\nexport * from './lib/materialgrammi.module';\n\nexport * from './lib/components/test-component/test-component.component';\nexport * from './lib/components/accordion/accordion.component';\nexport * from './lib/components/widget/widget.component';\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/breadcrumb/breadcrumb.component';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/calendar/calendar.component';\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/chip/chip.component';\nexport * from './lib/components/chat/chat.component';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/collapse/collapse.component';\nexport * from './lib/components/component/component.component';\nexport * from './lib/components/countdown/countdown.component';\nexport * from './lib/components/date-input/date-input.component';\nexport * from './lib/components/date-range/date-range.component';\nexport * from './lib/components/dragable/dragable.component';\nexport * from './lib/components/dropable/dropable.component';\nexport * from './lib/components/dropdown/dropdown.component';\nexport * from './lib/components/footer/footer.component';\nexport * from './lib/components/image/image.component';\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/list/list.component';\nexport * from './lib/components/loader/loader.component';\nexport * from './lib/components/megamenu/megamenu.component';\nexport * from './lib/components/modal/modal.component';\nexport * from './lib/components/navbar/navbar.component';\nexport * from './lib/components/note/note.component';\nexport * from './lib/components/notifications/notifications.component';\nexport * from './lib/components/offcanvas/offcanvas.component';\nexport * from './lib/components/overlay/overlay.component'\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/select/select.component';\nexport * from './lib/components/sidebar/sidebar.component';\nexport * from './lib/components/slideshow/slideshow.component';\nexport * from './lib/components/switch/switch.component';\nexport * from './lib/components/tab/tab.component';\nexport * from './lib/components/table/table.component';\nexport * from './lib/components/text-input/text-input.component';\nexport * from './lib/components/toast/toast.component';\nexport * from './lib/components/widget/widget.component';\nexport * from './lib/components/wizard/wizard.component';\nexport * from './lib/components/slideshow-v2/slideshow-v2.component';\nexport * from './lib/components/fixer/fixer.component';\nexport * from './lib/components/muliselect/muliselect.component';\nexport * from './lib/components/inview/inview.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MaterialgrammiService","i1","i1.AccordionItemComponent","i2","i3","i1.DaterService","i2.MaterialgrammiService","i3.DropableComponent","i4.DragableComponent","i5.OverlayComponent","i6.InputComponent","i7.TextInputComponent","i8.ButtonComponent","i9","i1.InputComponent","i2.CalendarComponent","i1.CollapseComponent","i2.ButtonComponent","i3.InputComponent","i4.SelectComponent","i5.PaginationComponent","i6.DropableComponent","i7.DragableComponent","i8","i2.PlaceholderComponent","i1.DateInputComponent"],"mappings":"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"}