{"version":3,"file":"bytepic-basic-portal-library.mjs","sources":["../../../projects/bytepic-basic-portal-library/src/lib/models/bytepic-menu-item-model.ts","../../../projects/bytepic-basic-portal-library/src/lib/models/bytepic-document-card-model.ts","../../../projects/bytepic-basic-portal-library/src/lib/services/bytepic-responsiveness.service.ts","../../../projects/bytepic-basic-portal-library/src/lib/services/custom-pipes/date-formate.service.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-top-bar/bytepic-top-bar.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-top-bar/bytepic-top-bar.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/menu-item/bytepic-menu-item.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/menu-item/menu-item.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-side-bar/bytepic-side-bar.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-side-bar/bytepic-side-bar.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-footer/bytepic-footer.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-footer/bytepic-footer.component.html","../../../projects/bytepic-basic-portal-library/src/lib/layouts/fixed-nav-bars/bytepic-fixed-nav-bars.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/layouts/fixed-nav-bars/fixed-nav-bars.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-document-card/bytepic-document-card.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-document-card/bytepic-document-card.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/user-profile/bytepic-user-profile.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/user-profile/user-profile.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/my-profile/bytepic-my-profile.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/my-profile/my-profile.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-form-control-input/bytepic-form-control-input.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-form-control-input/bytepic-form-control-input.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-form-control-input-dynamic/bytepic-form-control-input-dynamic.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-form-control-input-dynamic/bytepic-form-control-input-dynamic.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/full-notice/bytepic-full-notice.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/full-notice/full-notice.component.html","../../../projects/bytepic-basic-portal-library/src/lib/enums/bytepic-notice-type.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/mini-notice/bytepic-mini-notice.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/mini-notice/mini-notice.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/explore/bytepic-explore.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/explore/explore.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/basic-user-account/bytepic-basic-user-account.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/basic-user-account/basic-user-account.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/basic-table/bytepic-basic-table.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/basic-table/bytepic-basic-table.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-generic-add-form/bytepic-generic-add-form.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-generic-add-form/bytepic-generic-add-form.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-generic-edit-form/bytepic-generic-edit-form.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-generic-edit-form/bytepic-generic-edit-form.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-stats-widget/bytepic-stats-widget.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-stats-widget/bytepic-stats-widget.component.html","../../../projects/bytepic-basic-portal-library/src/lib/components/bytepic-components.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/layouts/bytepic-top-bar-layout/bytepic-top-bar-layout.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/layouts/bytepic-top-bar-layout/bytepic-top-bar-layout.component.html","../../../projects/bytepic-basic-portal-library/src/lib/layouts/bytepic-layouts.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/form-control-input/form-control-input.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/form-control-input/form-control-input.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/form/form.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/form/form.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-components/bytepic-footer/bytepic-footer.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-components/bytepic-footer/bytepic-footer.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-components/bytepic-explore/bytepic-explore.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-components/bytepic-explore/bytepic-explore.component.html","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-login-page/bytepic-login-page.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-login-page/bytepic-login-page.component.html","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-register-page/bytepic-register-page.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-register-page/bytepic-register-page.component.html","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-reset-password-page/bytepic-reset-password-page.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-reset-password-page/bytepic-reset-password-page.component.html","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-confirm-email-page/bytepic-confirm-email-page.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-confirm-email-page/bytepic-confirm-email-page.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/generic-add-form/generic-add-form.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/generic-add-form/generic-add-form.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/form-control-input-dynamic/form-control-input-dynamic.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/form-control-input-dynamic/form-control-input-dynamic.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/generic-edit-form/generic-edit-form.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/generic-edit-form/generic-edit-form.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-forms/bytepic-forms.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-components/bytepic-components.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/pages/bytepic-pages.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-charts/bytepic-charts.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/basic-stats/basic-stats.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/basic-stats/basic-stats.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/small-basic-stats/small-basic-stats.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/small-basic-stats/small-basic-stats.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/bar-graph-stats/bar-graph-stats.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/bar-graph-stats/bar-graph-stats.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/line-graph-stats/line-graph-stats.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/line-graph-stats/line-graph-stats.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-widgets/bytepic-widgets.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-tables/basic-table/basic-table.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-tables/basic-table/basic-table.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-tables/bytepic-tables.module.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/footer/footer.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/footer/footer.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/menu-item/menu-item.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/menu-item/menu-item.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/side-bar/side-bar.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/side-bar/side-bar.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/top-bar/top-bar.component.ts","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/top-bar/top-bar.component.html","../../../projects/bytepic-basic-portal-library/src/lib/bytepic-menus/bytepic-menus.module.ts","../../../projects/bytepic-basic-portal-library/src/public-api.ts","../../../projects/bytepic-basic-portal-library/src/bytepic-basic-portal-library.ts"],"sourcesContent":["export class BytepicMenuItemModel {\r\n  iconClass?: string;\r\n  title: string = '';\r\n  path?: string;\r\n  children?: BytepicMenuItemModel[];\r\n}\r\n","export class BytepicDocumentCardModel {\r\n  imageUrl:string='';\r\n  iconClass:string='';\r\n  docTitle:string='';\r\n  type:string='';\r\n  size:string='';\r\n  dynamicTitle:string='';\r\n  dynamicValue:string='';\r\n  badgeState:string='';\r\n  badgeValue:string='';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BytepicResponsivenessService {\r\n  sidePanelClass: BehaviorSubject<string> = new BehaviorSubject(\"\");\r\n  constructor() { }\r\n\r\n  showSidePanel(){\r\n    this.sidePanelClass.next(\"sidepanel-visible\");\r\n  }\r\n\r\n  hideSidePanel(){\r\n    this.sidePanelClass.next(\"sidepanel-hidden\");\r\n  }\r\n\r\n  delay(ms: number) {\r\n    return new Promise((resolve) => setTimeout(resolve, ms));\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class DateFormateService {\r\n  constructor() {}\r\n\r\n  formatToDMY(date: any, isTimeStamp: boolean = true) {\r\n    const datePipe: DatePipe = new DatePipe('en-US');\r\n    // \"d MMMM y\"\r\n    if (typeof date == 'number') {\r\n      return datePipe.transform(new Date(date), 'dd MMM YYYY');\r\n    } else if (isTimeStamp) {\r\n      return datePipe.transform(date.toDate(), 'dd MMM YYYY');\r\n    } else {\r\n      return datePipe.transform(date, 'dd MMM YYYY');\r\n    }\r\n  }\r\n\r\n  formatToDMYAndTime(date: any, isTimeStamp: boolean = true) {\r\n    const datePipe: DatePipe = new DatePipe('en-US');\r\n    // \"d MMMM y\"\r\n    if (typeof date == 'number') {\r\n      return datePipe.transform(new Date(date), 'dd MMM YYYY h:mm a');\r\n    } else if (isTimeStamp) {\r\n      return datePipe.transform(date.toDate(), 'dd MMM YYYY h:mm a');\r\n    } else {\r\n      return datePipe.transform(date, 'dd MMM YYYY h:mm a');\r\n    }\r\n  }\r\n\r\n  formatToTimeAndDMY(date: any, isTimeStamp: boolean = true) {\r\n    const datePipe: DatePipe = new DatePipe('en-US');\r\n    // \"d MMMM y\"\r\n    if (typeof date == 'number') {\r\n      return datePipe.transform(new Date(date), 'h:mm a dd MMM YYYY');\r\n    } else if (isTimeStamp) {\r\n      return datePipe.transform(date.toDate(), 'h:mm a dd MMM YYYY');\r\n    } else {\r\n      return datePipe.transform(date, 'h:mm a dd MMM YYYY');\r\n    }\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\n\r\n@Component({\r\n  selector: 'bytepic-top-bar',\r\n  templateUrl: './bytepic-top-bar.component.html',\r\n  styleUrls: ['./bytepic-top-bar.component.scss']\r\n})\r\nexport class BytepicTopBarComponent implements OnInit {\r\n\r\n  @Input() baseUrl:string=\"\";\r\n  @Input() profilePicUrl:any=null;\r\n  @Input() title:any=null;\r\n  @Input() logoURL:any=null;\r\n\r\n  @Input() showNotificationBell: boolean = false;\r\n  @Input() notificationUrl: string = '';\r\n  @Input() notificationCount: number = 0;\r\n\r\n  @Output() onLogout = new EventEmitter<string>();\r\n\r\n  constructor(private responsivenessService: BytepicResponsivenessService) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  showSideBar(){\r\n    this.responsivenessService.showSidePanel();\r\n  }\r\n\r\n  logout(){\r\n    this.onLogout.emit(\"logout\");\r\n  }\r\n\r\n}\r\n","<div class=\"app-header-inner\">\r\n  <div class=\"container-fluid py-2\">\r\n    <div class=\"app-header-content\">\r\n      <div class=\"row justify-content-between align-items-center\">\r\n        <div class=\"col-auto\">\r\n          <a\r\n            id=\"sidepanel-toggler\"\r\n            (click)=\"showSideBar()\"\r\n            class=\"sidepanel-toggler d-inline-block d-xl-none pointer\"\r\n          >\r\n            <svg\r\n              xmlns=\"http://www.w3.org/2000/svg\"\r\n              width=\"30\"\r\n              height=\"30\"\r\n              viewBox=\"0 0 30 30\"\r\n              role=\"img\"\r\n            >\r\n              <title>Menu</title>\r\n              <path\r\n                stroke=\"currentColor\"\r\n                stroke-linecap=\"round\"\r\n                stroke-miterlimit=\"10\"\r\n                stroke-width=\"2\"\r\n                d=\"M4 7h22M4 15h22M4 23h22\"\r\n              ></path>\r\n            </svg>\r\n          </a>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"search-mobile-trigger d-sm-none col\">\r\n          <!-- <i class=\"search-mobile-trigger-icon fas fa-search\"></i> -->\r\n          <h2 *ngIf=\"title && title != '' && title\">\r\n            {{ title }}\r\n          </h2>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"app-search-box col\">\r\n          <h2 *ngIf=\"title && title != '' && title\">\r\n            {{ title }}\r\n          </h2>\r\n        </div>\r\n\r\n        <div class=\"app-utilities col-auto\">\r\n\r\n          <div *ngIf=\"showNotificationBell\" class=\"app-utility-item app-notifications-dropdown dropdown\">\r\n            <a\r\n              class=\"no-toggle-arrow\"\r\n              [routerLink]=\"notificationUrl\"\r\n              role=\"button\"\r\n              title=\"Notifications\"\r\n            >\r\n              <!--//Bootstrap Icons: https://icons.getbootstrap.com/ -->\r\n              <svg\r\n                width=\"1em\"\r\n                height=\"1em\"\r\n                viewBox=\"0 0 16 16\"\r\n                class=\"bi bi-bell icon\"\r\n                fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\"\r\n              >\r\n                <path d=\"M8 16a2 2 0 0 0 2-2H6a2 2 0 0 0 2 2z\" />\r\n                <path\r\n                  fill-rule=\"evenodd\"\r\n                  d=\"M8 1.918l-.797.161A4.002 4.002 0 0 0 4 6c0 .628-.134 2.197-.459 3.742-.16.767-.376 1.566-.663 2.258h10.244c-.287-.692-.502-1.49-.663-2.258C12.134 8.197 12 6.628 12 6a4.002 4.002 0 0 0-3.203-3.92L8 1.917zM14.22 12c.223.447.481.801.78 1H1c.299-.199.557-.553.78-1C2.68 10.2 3 6.88 3 6c0-2.42 1.72-4.44 4.005-4.901a1 1 0 1 1 1.99 0A5.002 5.002 0 0 1 13 6c0 .88.32 4.2 1.22 6z\"\r\n                />\r\n              </svg>\r\n              <span class=\"icon-badge\">{{ notificationCount }}</span>\r\n            </a>\r\n            <!--//dropdown-toggle-->\r\n          </div>\r\n          <!--//app-utility-item-->\r\n          <div class=\"app-utility-item\">\r\n            <a routerLink=\"/{{ baseUrl }}/settings\" title=\"Settings\">\r\n              <!--//Bootstrap Icons: https://icons.getbootstrap.com/ -->\r\n              <svg\r\n                width=\"1em\"\r\n                height=\"1em\"\r\n                viewBox=\"0 0 16 16\"\r\n                class=\"bi bi-gear icon\"\r\n                fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\"\r\n              >\r\n                <path\r\n                  fill-rule=\"evenodd\"\r\n                  d=\"M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z\"\r\n                />\r\n                <path\r\n                  fill-rule=\"evenodd\"\r\n                  d=\"M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z\"\r\n                />\r\n              </svg>\r\n            </a>\r\n          </div>\r\n          <!--//app-utility-item-->\r\n\r\n          <div class=\"app-utility-item app-user-dropdown dropdown\">\r\n            <a\r\n              class=\"dropdown-toggle\"\r\n              id=\"user-dropdown-toggle\"\r\n              data-bs-toggle=\"dropdown\"\r\n              href=\"#\"\r\n              role=\"button\"\r\n              aria-expanded=\"false\"\r\n            >\r\n              <img\r\n                *ngIf=\"profilePicUrl != '' && profilePicUrl != null\"\r\n                src=\"{{ profilePicUrl }}\"\r\n                alt=\"user profile\"\r\n              />\r\n              <i\r\n                *ngIf=\"profilePicUrl == '' || profilePicUrl == null\"\r\n                class=\"fas fa-user-tie\"\r\n              ></i>\r\n            </a>\r\n            <ul class=\"dropdown-menu\" aria-labelledby=\"user-dropdown-toggle\">\r\n              <li>\r\n                <a class=\"dropdown-item\" routerLink=\"/{{ baseUrl }}/account\"\r\n                  >Account</a\r\n                >\r\n              </li>\r\n              <li>\r\n                <a class=\"dropdown-item\" routerLink=\"/{{ baseUrl }}/settings\"\r\n                  >Settings</a\r\n                >\r\n              </li>\r\n              <li>\r\n                <hr class=\"dropdown-divider\" />\r\n              </li>\r\n              <li>\r\n                <a class=\"dropdown-item pointer\" (click)=\"logout()\">Log Out</a>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n          <!--//app-user-dropdown-->\r\n        </div>\r\n        <!--//app-utilities-->\r\n      </div>\r\n      <!--//row-->\r\n    </div>\r\n    <!--//app-header-content-->\r\n  </div>\r\n  <!--//container-fluid-->\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BytepicMenuItemModel } from '../../models/bytepic-menu-item-model';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\n\r\n@Component({\r\n  selector: 'bytepic-menu-item',\r\n  templateUrl: './menu-item.component.html',\r\n  styleUrls: ['./menu-item.component.scss'],\r\n})\r\nexport class BytepicMenuItemComponent implements OnInit {\r\n  @Input() menuItemModel?: BytepicMenuItemModel;\r\n  @Input() subMenuItem: boolean = false;\r\n  menuClass: string = 'nav-link';\r\n  id: string = '';\r\n\r\n  constructor(private responsivenessService: BytepicResponsivenessService) {}\r\n\r\n  ngOnInit(): void {\r\n    if (this.subMenuItem) {\r\n      this.menuClass = 'submenu-link';\r\n    }\r\n    this.id = this.menuItemModel?.title.replace(' ', '-') ?? '';\r\n  }\r\n\r\n  onClick() {\r\n    if (window.innerWidth < 1200) {\r\n      this.responsivenessService.hideSidePanel();\r\n    }\r\n  }\r\n}\r\n","<a class=\"{{ menuClass }}\" (click)=\"onClick()\" [routerLink]=\"menuItemModel.path\" routerLinkActive=\"active\"\r\n  *ngIf=\"menuItemModel && !menuItemModel.children\">\r\n  <span class=\"nav-icon\" *ngIf=\"!subMenuItem\">\r\n    <i class=\"{{ menuItemModel.iconClass }} icon\"></i>\r\n  </span>\r\n  <span class=\"nav-link-text\">{{ menuItemModel.title }}</span>\r\n</a>\r\n\r\n<!-- If the Item has kids(Children) -->\r\n\r\n<a class=\"nav-link submenu-toggle\" href=\"#\" data-bs-toggle=\"collapse\" attr.data-bs-target=\"#{{ id }}\"\r\n  aria-expanded=\"false\" attr.aria-controls=\"{{ id }}\" *ngIf=\"menuItemModel && menuItemModel.children\">\r\n  <span class=\"nav-icon\">\r\n    <i class=\"{{ menuItemModel.iconClass }} icon\"></i>\r\n  </span>\r\n  <span class=\"nav-link-text\">{{ menuItemModel.title }}</span>\r\n  <span class=\"submenu-arrow\">\r\n    <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-chevron-down\" fill=\"currentColor\"\r\n      xmlns=\"http://www.w3.org/2000/svg\">\r\n      <path fill-rule=\"evenodd\"\r\n        d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\" />\r\n    </svg>\r\n  </span>\r\n  <!--//submenu-arrow-->\r\n</a>\r\n<!--//nav-link-->\r\n<div id=\"{{ id }}\" class=\"collapse submenu {{ id }}\" data-bs-parent=\"#menu-accordion\"\r\n  *ngIf=\"menuItemModel && menuItemModel.children\">\r\n  <ul class=\"submenu-list list-unstyled\">\r\n    <li class=\"submenu-item\" *ngFor=\"let subMenuItem of menuItemModel.children\">\r\n      <bytepic-menu-item [menuItemModel]=\"subMenuItem\" [subMenuItem]=\"true\"></bytepic-menu-item>\r\n    </li>\r\n  </ul>\r\n</div>\r\n","import { Component, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { BytepicMenuItemModel } from '../../models/bytepic-menu-item-model';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\n\r\n@Component({\r\n  selector: 'bytepic-side-bar',\r\n  templateUrl: './bytepic-side-bar.component.html',\r\n  styleUrls: ['./bytepic-side-bar.component.scss'],\r\n})\r\nexport class BytepicSideBarComponent implements OnInit, OnDestroy {\r\n  sidePanelClass = 'sidepanel-visible';\r\n  subscription:any;\r\n  \r\n  @Input() menuItems:BytepicMenuItemModel[]=[];\r\n\r\n  @Input() baseURL:string='';\r\n  @Input() dashboardURL:string='dashboard';\r\n\r\n  @Input() logoURL:string = 'assets/images/logo.png';\r\n\r\n  @Input() footer:BytepicMenuItemModel[]=[];\r\n  \r\n  @HostListener('window:resize', ['$event'])\r\n  onResize(event: any) {\r\n    this.changeClass(window.innerWidth);\r\n  }\r\n\r\n  constructor(private responsivenessService: BytepicResponsivenessService) {}\r\n\r\n\r\n  ngOnInit(): void {\r\n    this.subscription = this.responsivenessService.sidePanelClass.subscribe(activeClass=>{\r\n      this.sidePanelClass = activeClass;\r\n    });\r\n\r\n    this.changeClass(window.innerWidth);\r\n  }\r\n\r\n  changeClass(width:number){\r\n    if(width>=1200){\r\n      this.responsivenessService.showSidePanel();\r\n    }else{\r\n      this.responsivenessService.hideSidePanel();\r\n    }\r\n  }\r\n\r\n  hideSidePane(){\r\n    this.responsivenessService.hideSidePanel();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscription?.unsubscribe();\r\n  }\r\n}\r\n","<div id=\"app-sidepanel\" class=\"app-sidepanel {{ sidePanelClass }}\">\r\n  <div id=\"sidepanel-drop\" class=\"sidepanel-drop\"></div>\r\n  <div class=\"sidepanel-inner d-flex flex-column\">\r\n    <a (click)=\"hideSidePane()\" id=\"sidepanel-close\" class=\"sidepanel-close d-xl-none pointer\">&times;</a>\r\n    <div class=\"app-branding\">\r\n      <a class=\"app-logo\" routerLink=\"/{{ baseURL }}/ {{ dashboardURL }}\"><img class=\"logo-icon me-2\" src=\"{{ logoURL }}\"\r\n          alt=\"logo\">\r\n          <span class=\"logo-text\">PORTAL</span>\r\n        </a>\r\n\r\n    </div>\r\n    <!--//app-branding-->\r\n\r\n    <nav id=\"app-nav-main\" class=\"app-nav app-nav-main flex-grow-1\">\r\n      <ul class=\"app-menu list-unstyled accordion\" id=\"menu-accordion\">\r\n        <li class=\"nav-item\" *ngFor=\"let menuItem of menuItems\">\r\n          <bytepic-menu-item [menuItemModel]=\"menuItem\"></bytepic-menu-item>\r\n        </li>\r\n        <!--//nav-item-->\r\n      </ul>\r\n      <!--//app-menu-->\r\n    </nav>\r\n    <!--//app-nav-->\r\n    <div class=\"app-sidepanel-footer\">\r\n      <nav class=\"app-nav app-nav-footer\">\r\n        <ul class=\"app-menu footer-menu list-unstyled\">\r\n          <li class=\"nav-item\" *ngFor=\"let menuItem of footer\">\r\n            <bytepic-menu-item [menuItemModel]=\"menuItem\"></bytepic-menu-item>\r\n          </li>\r\n        </ul>\r\n        <!--//footer-menu-->\r\n      </nav>\r\n    </div>\r\n    <!--//app-sidepanel-footer-->\r\n\r\n  </div>\r\n  <!--//sidepanel-inner-->\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-footer',\r\n  templateUrl: './bytepic-footer.component.html',\r\n  styleUrls: ['./bytepic-footer.component.scss']\r\n})\r\nexport class BytepicFooterComponent implements OnInit {\r\n\r\n  @Input() url = \"https://saidem.business.site\";\r\n  @Input() organizationName = \"Saidem Tech\";\r\n  @Input() purpose = \"accounting firms\";\r\n\r\n  @Input() customFooterText:string = '';\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<footer class=\"app-footer\">\r\n  <div class=\"container text-center py-3\">\r\n    <!--/* This template is free as long as you keep the footer attribution link. If you'd like to use the template without the attribution link, you can buy the commercial license via our website: themes.3rdwavemedia.com Thank you for your support. :) */-->\r\n    <small *ngIf=\"customFooterText == ''\" class=\"copyright\">Designed with <i class=\"fas fa-heart\" style=\"color: #fb866a;\"></i> by <a class=\"app-link\"\r\n        href=\"{{ url }}\" target=\"_blank\">{{ organizationName }}</a> for {{ purpose }} </small>\r\n\r\n    <small *ngIf=\"customFooterText != ''\" class=\"copyright\">{{ customFooterText }} </small>\r\n\r\n  </div>\r\n</footer>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BytepicMenuItemModel } from '../../models/bytepic-menu-item-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-fixed-nav-bars',\r\n  templateUrl: './fixed-nav-bars.component.html',\r\n  styleUrls: ['./fixed-nav-bars.component.scss'],\r\n})\r\nexport class BytepicFixedNavBarsComponent implements OnInit {\r\n  @Input() sideMenuItems: BytepicMenuItemModel[] = [];\r\n  @Input() sideMenuFooter: BytepicMenuItemModel[] = [];\r\n\r\n  @Input() baseUrl: string = 'authenticated';\r\n  @Input() dashboardURL:string='dashboard';\r\n  @Input() logoURL: string = 'assets/images/logo.png';\r\n  @Input() profilePicUrl:any=null;\r\n  @Input() title:any=null;\r\n\r\n  @Input() footerUrl = \"https://saidem.business.site\";\r\n  @Input() organizationName = \"Saidem Tech\";\r\n  @Input() purpose = \"accounting firms\";\r\n\r\n  @Input() customFooterText:string = '';\r\n\r\n  @Output() onLogout = new EventEmitter<string>();\r\n\r\n  @Input() showNotificationBell: boolean = false;\r\n  @Input() notificationUrl: string = '';\r\n  @Input() notificationCount: number = 0;\r\n  @Input() cssClass = \"\";\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    let body = document.getElementsByTagName('body')[0];\r\n    body.classList.add('app');\r\n  }\r\n\r\n  logOut(value: any) {\r\n    this.onLogout.emit(value);\r\n  }\r\n}\r\n","<header class=\"app-header fixed-top\">\r\n  <bytepic-top-bar\r\n    [baseUrl]=\"baseUrl\"\r\n    [title]=\"title\"\r\n    [profilePicUrl]=\"profilePicUrl\"\r\n    (onLogout)=\"logOut($event)\"\r\n    [logoURL]=\"logoURL\"\r\n    [showNotificationBell]=\"showNotificationBell\"\r\n    [notificationUrl]=\"notificationUrl\"\r\n    [notificationCount]=\"notificationCount\"\r\n  ></bytepic-top-bar>\r\n  <!--//app-header-inner-->\r\n  <bytepic-side-bar\r\n    [menuItems]=\"sideMenuItems\"\r\n    [footer]=\"sideMenuFooter\"\r\n    [baseURL]=\"baseUrl\"\r\n    [logoURL]=\"logoURL\"\r\n    [dashboardURL]=\"dashboardURL\"\r\n  ></bytepic-side-bar>\r\n  <!--//app-side-panel-->\r\n</header>\r\n<!--//app-header-->\r\n\r\n<div class=\"app-wrapper {{cssClass}}\">\r\n  <div class=\"app-content pt-3 p-md-3 p-lg-4\">\r\n    <div class=\"container-xl\">\r\n      <router-outlet></router-outlet>\r\n    </div>\r\n    <!--//container-fluid-->\r\n  </div>\r\n  <!--//app-content-->\r\n\r\n  <bytepic-footer\r\n    [organizationName]=\"organizationName\"\r\n    [url]=\"footerUrl\"\r\n    [purpose]=\"purpose\"\r\n    [customFooterText]=\"customFooterText\"\r\n  >\r\n  </bytepic-footer>\r\n  <!--//app-footer-->\r\n</div>\r\n<!--//app-wrapper-->\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BytepicDocumentCardModel } from '../../models/bytepic-document-card-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-document-card',\r\n  templateUrl: './bytepic-document-card.component.html',\r\n  styleUrls: ['./bytepic-document-card.component.scss'],\r\n})\r\nexport class BytepicDocumentCardComponent implements OnInit {\r\n  @Input() document: BytepicDocumentCardModel = {\r\n    imageUrl: '',\r\n    iconClass: '',\r\n    docTitle: '',\r\n    type: '',\r\n    size: '',\r\n    dynamicTitle: '',\r\n    dynamicValue: '',\r\n    badgeState: '',\r\n    badgeValue: '',\r\n  };\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","<div class=\"app-card app-card-doc shadow-sm  h-100\">\r\n  <div class=\"app-card-thumb-holder p-3\">\r\n    <div class=\"app-card-thumb\" *ngIf=\"document.imageUrl != ''\">\r\n      <img class=\"thumb-image\" [src]=\"document.imageUrl\" alt=\"\">\r\n    </div>\r\n    <span class=\"icon-holder\" *ngIf=\"document.iconClass != ''\">\r\n      <i [class]=\"document.iconClass\"></i>\r\n    </span>\r\n    <span class=\"badge bg-{{ document.badgeState }}\">{{ document.badgeValue }}</span>\r\n    <a class=\"app-card-link-mask pointer\"></a>\r\n  </div>\r\n  <div class=\"app-card-body p-3 has-card-actions\">\r\n\r\n    <h4 class=\"app-doc-title truncate mb-0\"><a class=\"pointer\">{{ document.docTitle }}</a></h4>\r\n    <div class=\"app-doc-meta\">\r\n      <ul class=\"list-unstyled mb-0\">\r\n        <li><span class=\"text-muted\">Type:</span> {{ document.type }}</li>\r\n        <li><span class=\"text-muted\">Size:</span> {{ document.size }}</li>\r\n        <li><span class=\"text-muted\">{{ document.dynamicTitle }}:</span> {{ document.dynamicValue }}</li>\r\n      </ul>\r\n    </div>\r\n    <!--//app-doc-meta-->\r\n\r\n    <div class=\"app-card-actions\">\r\n      <div class=\"dropdown\">\r\n        <div class=\"dropdown-toggle no-toggle-arrow\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n          <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-three-dots-vertical\" fill=\"currentColor\"\r\n            xmlns=\"http://www.w3.org/2000/svg\">\r\n            <path fill-rule=\"evenodd\"\r\n              d=\"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\" />\r\n          </svg>\r\n        </div>\r\n        <!--//dropdown-toggle-->\r\n        <ul class=\"dropdown-menu\">\r\n          <li>\r\n            <a class=\"dropdown-item pointer\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-eye me-2\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.134 13.134 0 0 0 1.66 2.043C4.12 11.332 5.88 12.5 8 12.5c2.12 0 3.879-1.168 5.168-2.457A13.134 13.134 0 0 0 14.828 8a13.133 13.133 0 0 0-1.66-2.043C11.879 4.668 10.119 3.5 8 3.5c-2.12 0-3.879 1.168-5.168 2.457A13.133 13.133 0 0 0 1.172 8z\" />\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z\" />\r\n              </svg>\r\n              View\r\n            </a>\r\n          </li>\r\n          <li>\r\n            <a class=\"dropdown-item pointer\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-pencil me-2\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5L13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175l-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z\" />\r\n              </svg>\r\n              Edit\r\n            </a>\r\n          </li>\r\n          <li><a class=\"dropdown-item pointer\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-download me-2\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z\" />\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z\" />\r\n              </svg>\r\n              Download\r\n            </a>\r\n          </li>\r\n          <li>\r\n            <hr class=\"dropdown-divider\">\r\n          </li>\r\n          <li>\r\n            <a class=\"dropdown-item pointer\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-trash me-2\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path\r\n                  d=\"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z\" />\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z\" />\r\n              </svg>\r\n              Delete\r\n            </a>\r\n          </li>\r\n        </ul>\r\n      </div>\r\n      <!--//dropdown-->\r\n    </div>\r\n    <!--//app-card-actions-->\r\n\r\n  </div>\r\n  <!--//app-card-body-->\r\n\r\n</div>\r\n<!--//app-card-->\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'bytepic-user-profile',\r\n  templateUrl: './user-profile.component.html',\r\n  styleUrls: ['./user-profile.component.scss']\r\n})\r\nexport class BytepicUserProfileComponent implements OnInit {\r\n\r\n  // user?: User;\r\n  userForm = new FormGroup({});\r\n  // myFormControls: FormControlInputModel[] = [];\r\n  updateProfile = false;\r\n  loading = false;\r\n\r\n  profilePic?: File;\r\n\r\n  constructor(\r\n    // private uploadFileToFireStorageService: UploadFileToFireStorageService,\r\n    // private userApiService: UserApiService,\r\n    // private authService: AuthService\r\n  ) {\r\n    // const savedUser = this.authService.loggedInUser;\r\n    // this.userApiService.getOneUser(savedUser.uid).subscribe((data) => {\r\n    //   this.user = data.payload.data() as User;\r\n    //   this.userForm.setControl(\r\n    //     'displayName',\r\n    //     new FormControl(this.user.name)\r\n    //   );\r\n    //   this.userForm.setControl('uid', new FormControl(this.user.uid));\r\n    //   this.userForm.setControl('email', new FormControl(this.user.email));\r\n    //   this.userForm.setControl(\r\n    //     'phoneNumber',\r\n    //     new FormControl(this.user.phoneNumber)\r\n    //   );\r\n    //   this.userForm.setControl(\r\n    //     'whatsappNumber',\r\n    //     new FormControl(this.user.whatsappNumber)\r\n    //   );\r\n\r\n    //   this.myFormControls = [\r\n    //     {\r\n    //       formControl: this.userForm.get('displayName') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Name',\r\n    //     },\r\n    //     {\r\n    //       formControl: this.userForm.get('email') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Email',\r\n    //       readonly: true,\r\n    //     },\r\n    //     {\r\n    //       formControl: this.userForm.get('phoneNumber') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Phone number',\r\n    //     },\r\n    //     {\r\n    //       formControl: this.userForm.get('whatsappNumber') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Whatsapp number',\r\n    //     },\r\n    //   ];\r\n    // });\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  changeProfilePic() {\r\n    // this.loading = true;\r\n    // if (this.profilePic) {\r\n    //   this.uploadFileToFireStorageService\r\n    //     .pushFileToStorage(this.profilePic as File, this.user?.email)\r\n    //     .then(\r\n    //       (okay) => {\r\n    //         okay.ref.getDownloadURL().then(\r\n    //           (url) => {\r\n    //             var tempUser: any = this.user;\r\n    //             tempUser.photoURL = url;\r\n    //             this.userApiService.updateMyProfile(tempUser).then(\r\n    //               () => {\r\n    //                 this.loading = false;\r\n    //                 this.updateProfile = false;\r\n    //                 window.alert('Profile pic updated successfully');\r\n    //               },\r\n    //               (error) => {\r\n    //                 this.loading = false;\r\n    //                 this.updateProfile = false;\r\n    //                 window.alert('Failed to update Profile pic');\r\n    //               }\r\n    //             );\r\n    //           },\r\n    //           (error) => {\r\n    //             this.loading = false;\r\n    //             this.updateProfile = false;\r\n    //             window.alert('Failed to update Profile pic');\r\n    //             console.log(error);\r\n    //           }\r\n    //         );\r\n    //       },\r\n    //       (error) => {\r\n    //         this.loading = false;\r\n    //         this.updateProfile = false;\r\n    //         window.alert('Failed to update Profile pic');\r\n    //         console.log(error);\r\n    //       }\r\n    //     );\r\n    // }\r\n  }\r\n\r\n  selectFile(event: any): void {\r\n    this.profilePic = event.target.files[0];\r\n  }\r\n\r\n  updateProfileData(value:string){\r\n    // this.userApiService.updateMyProfile(this.userForm.value as User).then(\r\n    //   () => {\r\n    //     window.alert('Profile updated successfully');\r\n    //   },\r\n    //   (error) => {\r\n    //     window.alert('Failed to update Profile');\r\n    //     console.log(error);\r\n    //   }\r\n    // );\r\n  }\r\n\r\n}\r\n","<div\r\n  class=\"\r\n    app-card app-card-account\r\n    shadow-sm\r\n    d-flex\r\n    flex-column\r\n    align-items-start\r\n  \"\r\n>\r\n  <div class=\"app-card-header p-3 border-bottom-0\">\r\n    <div class=\"row align-items-center gx-3\">\r\n      <div class=\"col-auto\">\r\n        <div class=\"app-icon-holder\">\r\n          <svg\r\n            width=\"1em\"\r\n            height=\"1em\"\r\n            viewBox=\"0 0 16 16\"\r\n            class=\"bi bi-person\"\r\n            fill=\"currentColor\"\r\n            xmlns=\"http://www.w3.org/2000/svg\"\r\n          >\r\n            <path\r\n              fill-rule=\"evenodd\"\r\n              d=\"M10 5a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm6 5c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10z\"\r\n            />\r\n          </svg>\r\n        </div>\r\n        <!--//icon-holder-->\r\n      </div>\r\n      <!--//col-->\r\n      <div class=\"col-auto\">\r\n        <h4 class=\"app-card-title\">Profile</h4>\r\n      </div>\r\n      <!--//col-->\r\n    </div>\r\n    <!--//row-->\r\n  </div>\r\n  <!--//app-card-header-->\r\n  <div class=\"app-card-body px-4 w-100\">\r\n    <div class=\"item border-bottom py-3\">\r\n      <div class=\"row justify-content-between align-items-center\">\r\n        <div class=\"col-auto\" *ngIf=\"!loading && !updateProfile\">\r\n          <div class=\"item-label mb-2\"><strong>Photo</strong></div>\r\n\r\n          <div class=\"item-data\">\r\n            <!-- <img\r\n              class=\"profile-image\"\r\n              *ngIf=\"user?.photoURL != '' && user?.photoURL\"\r\n              src=\"{{ user?.photoURL }}\"\r\n              alt=\"\"\r\n            /> -->\r\n            <!-- <span\r\n              class=\"icon-holder\"\r\n              *ngIf=\"user?.photoURL == '' || !user?.photoURL\"\r\n            >\r\n              <i class=\"far fa-user-circle profile-image\"></i>\r\n            </span> -->\r\n          </div>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"mb-3\" *ngIf=\"updateProfile\">\r\n          <label class=\"form-label text-start\"><strong>Photo</strong></label>\r\n          <input\r\n            class=\"form-control mb-2\"\r\n            (change)=\"selectFile($event)\"\r\n            type=\"file\"\r\n          />\r\n          <div class=\"col text-end\">\r\n            <a\r\n              class=\"btn-sm app-btn-secondary pointer me-2\"\r\n              *ngIf=\"!loading\"\r\n              (click)=\"updateProfile = false\"\r\n            >\r\n              Cancel\r\n            </a>\r\n            <a\r\n              class=\"btn-sm app-btn-secondary pointer\"\r\n              *ngIf=\"!loading\"\r\n              (click)=\"changeProfilePic()\"\r\n            >\r\n              Upload\r\n            </a>\r\n            <a\r\n              class=\"btn btn-success btn-block pointer disabled\"\r\n              *ngIf=\"loading\"\r\n            >\r\n              Loading...\r\n            </a>\r\n          </div>\r\n        </div>\r\n        <div class=\"col text-end\">\r\n          <a\r\n            class=\"btn-sm app-btn-secondary pointer\"\r\n            *ngIf=\"!loading && !updateProfile\"\r\n            (click)=\"updateProfile = true\"\r\n          >\r\n            Change\r\n          </a>\r\n        </div>\r\n        <!--//col-->\r\n      </div>\r\n      <!--//row-->\r\n    </div>\r\n    <!--//item-->\r\n    <!-- <app-form-control-input-dynamic\r\n      (onSave)=\"updateProfileData($event)\"\r\n      *ngFor=\"let formControl of myFormControls\"\r\n      [myFormControl]=\"formControl\"\r\n    ></app-form-control-input-dynamic> -->\r\n    <!--//item-->\r\n  </div>\r\n  <!--//app-card-body-->\r\n  <div class=\"app-card-footer p-4 mt-auto\">\r\n    <a class=\"btn-sm app-btn-secondary pointer\">Edit profile</a>\r\n  </div>\r\n  <!--//app-card-footer-->\r\n</div>\r\n<!--//app-card-->\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'bytepic-my-profile',\r\n  templateUrl: './my-profile.component.html',\r\n  styleUrls: ['./my-profile.component.scss'],\r\n})\r\nexport class BytepicMyProfileComponent implements OnInit {\r\n  // user?: User;\r\n  userForm = new FormGroup({});\r\n  // myFormControls: FormControlInputModel[] = [];\r\n  updateProfile = false;\r\n  loading = false;\r\n\r\n  profilePic?: File;\r\n\r\n  constructor(\r\n    // private uploadFileToFireStorageService: UploadFileToFireStorageService,\r\n    // private userApiService: UserApiService,\r\n    // private authService: AuthService\r\n  ) {\r\n    // const savedUser = this.authService.loggedInUser;\r\n    // this.userApiService.getOneUser(savedUser.uid).subscribe((data) => {\r\n    //   this.user = data.payload.data() as User;\r\n    //   this.userForm.setControl(\r\n    //     'name',\r\n    //     new FormControl(this.user.name)\r\n    //   );\r\n    //   this.userForm.setControl('uid', new FormControl(this.user.uid));\r\n    //   this.userForm.setControl('email', new FormControl(this.user.email));\r\n    //   this.userForm.setControl(\r\n    //     'phoneNumber',\r\n    //     new FormControl(this.user.phoneNumber)\r\n    //   );\r\n    //   this.userForm.setControl(\r\n    //     'whatsappNumber',\r\n    //     new FormControl(this.user.whatsappNumber)\r\n    //   );\r\n\r\n    //   this.myFormControls = [\r\n    //     {\r\n    //       formControl: this.userForm.get('name') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Name',\r\n    //     },\r\n    //     {\r\n    //       formControl: this.userForm.get('email') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Email',\r\n    //       readonly: true,\r\n    //     },\r\n    //     {\r\n    //       formControl: this.userForm.get('phoneNumber') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Phone number',\r\n    //     },\r\n    //     {\r\n    //       formControl: this.userForm.get('whatsappNumber') as FormControl,\r\n    //       type: 'text',\r\n    //       label: 'Whatsapp number',\r\n    //     },\r\n    //   ];\r\n    // });\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  changeProfilePic() {\r\n    // this.loading = true;\r\n    // if (this.profilePic) {\r\n    //   this.uploadFileToFireStorageService\r\n    //     .pushFileToStorage(this.profilePic as File, this.user?.email)\r\n    //     .then(\r\n    //       (okay) => {\r\n    //         okay.ref.getDownloadURL().then(\r\n    //           (url) => {\r\n    //             var tempUser: any = this.user;\r\n    //             tempUser.photoURL = url;\r\n    //             this.userApiService.updateMyProfile(tempUser).then(\r\n    //               () => {\r\n    //                 this.loading = false;\r\n    //                 this.updateProfile = false;\r\n    //                 window.alert('Profile pic updated successfully');\r\n    //               },\r\n    //               (error) => {\r\n    //                 this.loading = false;\r\n    //                 this.updateProfile = false;\r\n    //                 window.alert('Failed to update Profile pic');\r\n    //               }\r\n    //             );\r\n    //           },\r\n    //           (error) => {\r\n    //             this.loading = false;\r\n    //             this.updateProfile = false;\r\n    //             window.alert('Failed to update Profile pic');\r\n    //             console.log(error);\r\n    //           }\r\n    //         );\r\n    //       },\r\n    //       (error) => {\r\n    //         this.loading = false;\r\n    //         this.updateProfile = false;\r\n    //         window.alert('Failed to update Profile pic');\r\n    //         console.log(error);\r\n    //       }\r\n    //     );\r\n    // }\r\n  }\r\n\r\n  selectFile(event: any): void {\r\n    this.profilePic = event.target.files[0];\r\n  }\r\n\r\n  updateProfileData(value:string){\r\n    // this.userApiService.updateMyProfile(this.userForm.value as User).then(\r\n    //   () => {\r\n    //     window.alert('Profile updated successfully');\r\n    //   },\r\n    //   (error) => {\r\n    //     window.alert('Failed to update Profile');\r\n    //     console.log(error);\r\n    //   }\r\n    // );\r\n  }\r\n}\r\n","<h1 class=\"app-page-title\">My Account</h1>\r\n<div class=\"row gy-4\">\r\n  <div class=\"col-12 col-lg-6\">\r\n    <!-- <app-user-profile></app-user-profile> -->\r\n  </div>\r\n  <!--//col-->\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-sliders\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M11.5 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM9.05 3a2.5 2.5 0 0 1 4.9 0H16v1h-2.05a2.5 2.5 0 0 1-4.9 0H0V3h9.05zM4.5 7a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM2.05 8a2.5 2.5 0 0 1 4.9 0H16v1H6.95a2.5 2.5 0 0 1-4.9 0H0V8h2.05zm9.45 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm-2.45 1a2.5 2.5 0 0 1 4.9 0H16v1h-2.05a2.5 2.5 0 0 1-4.9 0H0v-1h9.05z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Preferences</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Language </strong></div>\r\n              <div class=\"item-data\">English</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Time Zone</strong></div>\r\n              <div class=\"item-data\">Central Standard Time (UTC-6)</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Currency</strong></div>\r\n              <div class=\"item-data\">$(US Dollars)</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Email Subscription</strong></div>\r\n              <div class=\"item-data\">Off</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>SMS Notifications</strong></div>\r\n              <div class=\"item-data\">On</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Preferences</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n  <!--//col-->\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-shield-check\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M5.443 1.991a60.17 60.17 0 0 0-2.725.802.454.454 0 0 0-.315.366C1.87 7.056 3.1 9.9 4.567 11.773c.736.94 1.533 1.636 2.197 2.093.333.228.626.394.857.5.116.053.21.089.282.11A.73.73 0 0 0 8 14.5c.007-.001.038-.005.097-.023.072-.022.166-.058.282-.111.23-.106.525-.272.857-.5a10.197 10.197 0 0 0 2.197-2.093C12.9 9.9 14.13 7.056 13.597 3.159a.454.454 0 0 0-.315-.366c-.626-.2-1.682-.526-2.725-.802C9.491 1.71 8.51 1.5 8 1.5c-.51 0-1.49.21-2.557.491zm-.256-.966C6.23.749 7.337.5 8 .5c.662 0 1.77.249 2.813.525a61.09 61.09 0 0 1 2.772.815c.528.168.926.623 1.003 1.184.573 4.197-.756 7.307-2.367 9.365a11.191 11.191 0 0 1-2.418 2.3 6.942 6.942 0 0 1-1.007.586c-.27.124-.558.225-.796.225s-.526-.101-.796-.225a6.908 6.908 0 0 1-1.007-.586 11.192 11.192 0 0 1-2.417-2.3C2.167 10.331.839 7.221 1.412 3.024A1.454 1.454 0 0 1 2.415 1.84a61.11 61.11 0 0 1 2.772-.815z\" />\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M10.854 6.146a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7.5 8.793l2.646-2.647a.5.5 0 0 1 .708 0z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Security</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Password</strong></div>\r\n              <div class=\"item-data\">••••••••</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Two-Factor Authentication</strong></div>\r\n              <div class=\"item-data\">You haven't set up two-factor authentication. </div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Set up</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Security</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-credit-card\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v1h14V4a1 1 0 0 0-1-1H2zm13 4H1v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7z\" />\r\n                <path d=\"M2 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Payment methods</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><i class=\"fab fa-cc-visa me-2\"></i><strong>Credit/Debit Card </strong></div>\r\n              <div class=\"item-data\">1234*******5678</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Edit</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><i class=\"fab fa-paypal me-2\"></i><strong>PayPal</strong></div>\r\n              <div class=\"item-data\">Not connected</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Connect</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Payment</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n</div>\r\n<!--//row-->\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-form-control-input',\r\n  templateUrl: './bytepic-form-control-input.component.html',\r\n  styleUrls: ['./bytepic-form-control-input.component.scss'],\r\n})\r\nexport class BytepicFormControlInputComponent implements OnInit {\r\n  @Input() myFormControl: BytepicFormControlInputModel = {\r\n    formControl: new FormControl(''),\r\n    type: 'text',\r\n    options:[],\r\n    processValueForOption:(data:any)=>{},\r\n    processLabelForOption:(data:any)=>\"\",\r\n  };\r\n\r\n  theControl: FormControl;\r\n  optionValues:any[]=[];\r\n  selectedOption:any={};\r\n\r\n  constructor() {\r\n    this.theControl = this.myFormControl?.formControl as FormControl;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  changed(event: any) {\r\n    if (this.myFormControl?.type == 'date') {\r\n      this.myFormControl?.formControl.setValue(event.target.valueAsDate);\r\n    } else if (this.myFormControl?.type == 'file') {\r\n      this.myFormControl?.formControl.setValue(event.target.files[0]);\r\n    }else if(this.myFormControl?.type == 'select'){\r\n      this.myFormControl?.formControl.setValue(this.theControl.value);\r\n    }else if(this.myFormControl?.type == 'checkbox'){\r\n      this.myFormControl.formControl.setValue(event.currentTarget.checked);\r\n    }\r\n    this.myFormControl?.formControl.markAsTouched();\r\n  }\r\n\r\n\r\n}\r\n","<div *ngIf=\"myFormControl\">\r\n  <div class=\"mb-3\" [ngClass]=\"myFormControl.type == 'checkbox' ? 'form-check' : ''\">\r\n    <label *ngIf=\"myFormControl.type != 'checkbox'\" class=\"form-label\">{{\r\n      myFormControl.label\r\n    }}</label>\r\n    <input\r\n      *ngIf=\"myFormControl.type != 'select' && myFormControl.type != 'textarea' && myFormControl.type != 'checkbox'\"\r\n      [formControl]=\"\r\n        myFormControl.type == 'date' || myFormControl.type == 'file'\r\n          ? theControl\r\n          : myFormControl.formControl\r\n      \"\r\n      [type]=\"myFormControl.type\"\r\n      (change)=\"changed($event)\"\r\n      [style]=\"myFormControl.customCSS\"\r\n      [ngClass]=\"\r\n        myFormControl.type == 'checkbox' ? 'form-check-input' : 'form-control'\r\n      \"\r\n      class=\"{{ myFormControl.customClass }}\"\r\n      placeholder=\"{{ myFormControl.placeholder ?? myFormControl.label }}\"\r\n      [class.is-invalid]=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n    />\r\n    <input\r\n      *ngIf=\"myFormControl.type == 'checkbox'\"\r\n      [formControl]=\"myFormControl.formControl\"\r\n      [type]=\"myFormControl.type\"\r\n      [checked]=\"myFormControl.formControl.value\"\r\n      (change)=\"changed($event)\"\r\n      [style]=\"myFormControl.customCSS\"\r\n      class=\"{{ myFormControl.customClass }} form-check-input\"\r\n      placeholder=\"{{ myFormControl.placeholder ?? myFormControl.label }}\"\r\n      [class.is-invalid]=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n    />\r\n    <label *ngIf=\"myFormControl.type == 'checkbox'\" class=\"form-label\">{{\r\n      myFormControl.label\r\n    }}</label>\r\n    <textarea\r\n      [rows]=\"myFormControl.rows ?? '3'\"\r\n      *ngIf=\"myFormControl.type == 'textarea'\"\r\n      [formControl]=\"myFormControl.formControl\"\r\n      class=\"form-control {{ myFormControl.customClass }}\"\r\n      placeholder=\"{{ myFormControl.placeholder ?? myFormControl.label }}\"\r\n      [class.is-invalid]=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n    ></textarea>\r\n\r\n    <ng-select\r\n      *ngIf=\"myFormControl.type == 'select'\"\r\n      [formControl]=\"theControl\"\r\n      (change)=\"changed($event)\"\r\n    >\r\n      <span *ngIf=\"!myFormControl.isOptionEnum\">\r\n        <ng-option\r\n          *ngFor=\"let option of myFormControl.options\"\r\n          [value]=\"myFormControl.processValueForOption!(option)\"\r\n        >\r\n          {{ myFormControl.processLabelForOption!(option) }}\r\n        </ng-option>\r\n      </span>\r\n      <span *ngIf=\"myFormControl.isOptionEnum\">\r\n        <ng-option\r\n          *ngFor=\"let option of myFormControl.options | keyvalue\"\r\n          [value]=\"myFormControl.processValueForOption!(option)\"\r\n        >\r\n          {{ myFormControl.processLabelForOption!(option) }}\r\n        </ng-option>\r\n      </span>\r\n    </ng-select>\r\n    <div\r\n      *ngIf=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n      class=\"invalid-feedback\"\r\n    >\r\n      <div *ngIf=\"myFormControl.formControl.errors?.required\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} is required.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.minlength\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be at least\r\n        {{\r\n          myFormControl.formControl.errors?.minlength.requiredLength\r\n        }}\r\n        characters long.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.maxlength\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must not have more\r\n        than\r\n        {{\r\n          myFormControl.formControl.errors?.maxlength.requiredLength\r\n        }}\r\n        characters long.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.max\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be less than\r\n        {{ myFormControl.formControl.errors?.max.max }}.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.min\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be greater\r\n        than {{ myFormControl.formControl.errors?.min.min }}.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.email\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be a valid\r\n        email address.\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Output, EventEmitter } from '@angular/core';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-form-control-input-dynamic',\r\n  templateUrl: './bytepic-form-control-input-dynamic.component.html',\r\n  styleUrls: ['./bytepic-form-control-input-dynamic.component.scss']\r\n})\r\nexport class BytepicFormControlInputDynamicComponent implements OnInit {\r\n\r\n  @Input() myFormControl:BytepicFormControlInputModel = {\r\n    formControl: new FormControl(''),\r\n    type:'text',\r\n  };\r\n\r\n  @Output() onSave = new EventEmitter<string>();\r\n\r\n  updateField = false;\r\n  loading = false;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  save(){\r\n    this.onSave.emit(\"value\");\r\n    this.updateField = false;\r\n  }\r\n\r\n}\r\n","<div class=\"item border-bottom py-3\">\r\n  <div class=\"row justify-content-between align-items-center\">\r\n    <div class=\"col-auto\" *ngIf=\"!updateField\">\r\n\r\n      <div class=\"form-check\" *ngIf=\"myFormControl.type == 'checkbox'\">\r\n        <input class=\"form-check-input\" type=\"checkbox\" disabled [checked]=\"myFormControl.formControl.value\">\r\n        <label class=\"form-check-label\" for=\"flexCheckIndeterminate\">\r\n          <strong>{{ myFormControl.label }}</strong>\r\n        </label>\r\n      </div>\r\n\r\n      <div class=\"item-label\" *ngIf=\"myFormControl.type != 'checkbox'\">\r\n        <strong>{{ myFormControl.label }}</strong>\r\n      </div>\r\n      <div class=\"item-data\" *ngIf=\"myFormControl.type != 'checkbox'\">\r\n        <span *ngIf=\" myFormControl.type!='file' && myFormControl.type!='date' && myFormControl.type!='select' && myFormControl.type!='checkbox'\">\r\n          {{ myFormControl.formControl.value ?? \"None\" }}\r\n        </span>\r\n\r\n        <img *ngIf=\"myFormControl.type=='file'\" class=\"profile-image\" src=\"{{ myFormControl.formControl.value }}\" alt=\"\">\r\n\r\n        <span *ngIf=\"myFormControl.type=='select'\">\r\n          {{ myFormControl.processLabelForOption!(myFormControl.formControl.value) }}\r\n        </span>\r\n        <span *ngIf=\"myFormControl.type=='date'\">\r\n          <span *ngIf=\"myFormControl.formControl?.value\">\r\n            {{\r\n              myFormControl.formControl.value.toDate() | date: \"d MMMM y\"\r\n            }}\r\n          </span>\r\n          <span *ngIf=\"!myFormControl.formControl?.value\">\r\n            no date\r\n          </span>\r\n        </span>\r\n      </div>\r\n    </div>\r\n    <!--//col-->\r\n    <div class=\"mb-3\" *ngIf=\"updateField\">\r\n      <bytepic-form-control-input [myFormControl]=\"myFormControl\"></bytepic-form-control-input>\r\n\r\n      <div class=\"col text-end\">\r\n        <a\r\n          class=\"btn-sm app-btn-secondary pointer me-2\"\r\n          *ngIf=\"!loading\"\r\n          (click)=\"updateField = false\"\r\n        >\r\n          Cancel\r\n        </a>\r\n        <a\r\n          class=\"btn-sm app-btn-secondary pointer\"\r\n          *ngIf=\"!loading\"\r\n          (click)=\"save()\"\r\n        >\r\n          Save\r\n        </a>\r\n        <a class=\"btn btn-primary btn-block pointer disabled\" *ngIf=\"loading\">\r\n          Loading...\r\n        </a>\r\n      </div>\r\n    </div>\r\n    <div class=\"col text-end\" *ngIf=\"!myFormControl.readonly\">\r\n      <a\r\n        class=\"btn-sm app-btn-secondary pointer\"\r\n        *ngIf=\"!loading && !updateField\"\r\n        (click)=\"updateField = true\"\r\n      >\r\n        Change\r\n      </a>\r\n    </div>\r\n    <!--//col-->\r\n  </div>\r\n  <!--//row-->\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-full-notice',\r\n  templateUrl: './full-notice.component.html',\r\n  styleUrls: ['./full-notice.component.scss']\r\n})\r\nexport class BytepicFullNoticeComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>full-notice works!</p>\r\n","export enum BytepicNoticeType {\r\n  InvitationToBeSchoolAmin,\r\n  UserDeleted,\r\n  SchoolLicenceExpired,\r\n  SchoolPaymentProcessed,\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BytepicNoticeType } from '../../enums/bytepic-notice-type';\r\nimport { BytepicNoticeModel } from '../../models/bytepic-notice-model';\r\n\r\n@Component({\r\n  selector: 'app-mini-notice',\r\n  templateUrl: './mini-notice.component.html',\r\n  styleUrls: ['./mini-notice.component.scss']\r\n})\r\nexport class BytepicMiniNoticeComponent implements OnInit {\r\n\r\n  @Input() baseUrl:string=\"\";\r\n  @Input() notice:BytepicNoticeModel = {\r\n    id:\"\",\r\n    title:\"\",\r\n    description:\"\",\r\n    type: BytepicNoticeType.InvitationToBeSchoolAmin,\r\n    imageUrl:\"assets/images/profiles/profile-1.png\",\r\n    dateCreated: new Date(),\r\n  };\r\n  period:string=\"2 hrs ago\";\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"item p-3\">\r\n  <div class=\"row gx-2 justify-content-between align-items-center\">\r\n    <div class=\"col-auto\">\r\n      <img class=\"profile-image\" src=\"{{ notice.imageUrl }}\" alt=\"\">\r\n    </div>\r\n    <!--//col-->\r\n    <div class=\"col\">\r\n      <div class=\"info\">\r\n        <div class=\"desc\">{{ notice.description }}</div>\r\n        <div class=\"meta\"> {{ period }}</div>\r\n      </div>\r\n    </div>\r\n    <!--//col-->\r\n  </div>\r\n  <!--//row-->\r\n  <a class=\"link-mask\" routerLink=\"/{{ baseUrl }}/notifications\"></a>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-explore',\r\n  templateUrl: './explore.component.html',\r\n  styleUrls: ['./explore.component.scss']\r\n})\r\nexport class BytepicExploreComponent implements OnInit {\r\n\r\n  @Input() message = \"Bytepic products\";\r\n  @Input() name = \"Bytepic\";\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"d-flex flex-column align-content-end h-100\">\r\n  <div class=\"h-100\"></div>\r\n  <div class=\"overlay-content p-3 p-lg-4 rounded\">\r\n    <h5 class=\"mb-3 overlay-title\">{{ name }}</h5>\r\n    <div>\r\n      {{ message }}\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-basic-user-account',\r\n  templateUrl: './basic-user-account.component.html',\r\n  styleUrls: ['./basic-user-account.component.scss']\r\n})\r\nexport class BytepicBasicUserAccountComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<h1 class=\"app-page-title\">My Account</h1>\r\n<div class=\"row gy-4\">\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-person\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M10 5a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm6 5c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Profile</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label mb-2\"><strong>Photo</strong></div>\r\n              <div class=\"item-data\"><img class=\"profile-image\" src=\"assets/images/user.png\" alt=\"\"></div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Name</strong></div>\r\n              <div class=\"item-data\">James Doe</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Email</strong></div>\r\n              <div class=\"item-data\">james.doe@website.com</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Website</strong></div>\r\n              <div class=\"item-data\">\r\n                https://johndoewebsite.com\r\n              </div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Location</strong></div>\r\n              <div class=\"item-data\">\r\n                New York\r\n              </div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Profile</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n  <!--//col-->\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-sliders\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M11.5 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM9.05 3a2.5 2.5 0 0 1 4.9 0H16v1h-2.05a2.5 2.5 0 0 1-4.9 0H0V3h9.05zM4.5 7a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM2.05 8a2.5 2.5 0 0 1 4.9 0H16v1H6.95a2.5 2.5 0 0 1-4.9 0H0V8h2.05zm9.45 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm-2.45 1a2.5 2.5 0 0 1 4.9 0H16v1h-2.05a2.5 2.5 0 0 1-4.9 0H0v-1h9.05z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Preferences</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Language </strong></div>\r\n              <div class=\"item-data\">English</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Time Zone</strong></div>\r\n              <div class=\"item-data\">Central Standard Time (UTC-6)</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Currency</strong></div>\r\n              <div class=\"item-data\">$(US Dollars)</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Email Subscription</strong></div>\r\n              <div class=\"item-data\">Off</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>SMS Notifications</strong></div>\r\n              <div class=\"item-data\">On</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Preferences</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n  <!--//col-->\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-shield-check\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M5.443 1.991a60.17 60.17 0 0 0-2.725.802.454.454 0 0 0-.315.366C1.87 7.056 3.1 9.9 4.567 11.773c.736.94 1.533 1.636 2.197 2.093.333.228.626.394.857.5.116.053.21.089.282.11A.73.73 0 0 0 8 14.5c.007-.001.038-.005.097-.023.072-.022.166-.058.282-.111.23-.106.525-.272.857-.5a10.197 10.197 0 0 0 2.197-2.093C12.9 9.9 14.13 7.056 13.597 3.159a.454.454 0 0 0-.315-.366c-.626-.2-1.682-.526-2.725-.802C9.491 1.71 8.51 1.5 8 1.5c-.51 0-1.49.21-2.557.491zm-.256-.966C6.23.749 7.337.5 8 .5c.662 0 1.77.249 2.813.525a61.09 61.09 0 0 1 2.772.815c.528.168.926.623 1.003 1.184.573 4.197-.756 7.307-2.367 9.365a11.191 11.191 0 0 1-2.418 2.3 6.942 6.942 0 0 1-1.007.586c-.27.124-.558.225-.796.225s-.526-.101-.796-.225a6.908 6.908 0 0 1-1.007-.586 11.192 11.192 0 0 1-2.417-2.3C2.167 10.331.839 7.221 1.412 3.024A1.454 1.454 0 0 1 2.415 1.84a61.11 61.11 0 0 1 2.772-.815z\" />\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M10.854 6.146a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7.5 8.793l2.646-2.647a.5.5 0 0 1 .708 0z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Security</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Password</strong></div>\r\n              <div class=\"item-data\">••••••••</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Change</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><strong>Two-Factor Authentication</strong></div>\r\n              <div class=\"item-data\">You haven't set up two-factor authentication. </div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Set up</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Security</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n  <div class=\"col-12 col-lg-6\">\r\n    <div class=\"app-card app-card-account shadow-sm d-flex flex-column align-items-start\">\r\n      <div class=\"app-card-header p-3 border-bottom-0\">\r\n        <div class=\"row align-items-center gx-3\">\r\n          <div class=\"col-auto\">\r\n            <div class=\"app-icon-holder\">\r\n              <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-credit-card\" fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path fill-rule=\"evenodd\"\r\n                  d=\"M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v1h14V4a1 1 0 0 0-1-1H2zm13 4H1v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7z\" />\r\n                <path d=\"M2 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z\" />\r\n              </svg>\r\n            </div>\r\n            <!--//icon-holder-->\r\n\r\n          </div>\r\n          <!--//col-->\r\n          <div class=\"col-auto\">\r\n            <h4 class=\"app-card-title\">Payment methods</h4>\r\n          </div>\r\n          <!--//col-->\r\n        </div>\r\n        <!--//row-->\r\n      </div>\r\n      <!--//app-card-header-->\r\n      <div class=\"app-card-body px-4 w-100\">\r\n\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><i class=\"fab fa-cc-visa me-2\"></i><strong>Credit/Debit Card </strong></div>\r\n              <div class=\"item-data\">1234*******5678</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Edit</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n        <div class=\"item border-bottom py-3\">\r\n          <div class=\"row justify-content-between align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <div class=\"item-label\"><i class=\"fab fa-paypal me-2\"></i><strong>PayPal</strong></div>\r\n              <div class=\"item-data\">Not connected</div>\r\n            </div>\r\n            <!--//col-->\r\n            <div class=\"col text-end\">\r\n              <a class=\"btn-sm app-btn-secondary pointer\">Connect</a>\r\n            </div>\r\n            <!--//col-->\r\n          </div>\r\n          <!--//row-->\r\n        </div>\r\n        <!--//item-->\r\n      </div>\r\n      <!--//app-card-body-->\r\n      <div class=\"app-card-footer p-4 mt-auto\">\r\n        <a class=\"btn-sm app-btn-secondary pointer\">Manage Payment</a>\r\n      </div>\r\n      <!--//app-card-footer-->\r\n\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n</div>\r\n<!--//row-->\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n} from '@angular/core';\r\n// import { FormControl, FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BytepicBasicTableColumModel } from '../../models/bytepic-basic-table-colum-model';\r\nimport { BytepicBasicTableDataModel } from '../../models/bytepic-basic-table-data-model';\r\n// import { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\nimport { DateFormateService } from '../../services/custom-pipes/date-formate.service';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\nimport { BytepicBasicTableActionModel } from '../../models/bytepic-basic-table-action-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-basic-table',\r\n  templateUrl: './bytepic-basic-table.component.html',\r\n  styleUrls: ['./bytepic-basic-table.component.scss'],\r\n})\r\nexport class BytepicBasicTableComponent implements OnInit, OnDestroy {\r\n  // SubjectB\r\n  @Input() subject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n  @Input() columns: BytepicBasicTableColumModel[] = [];\r\n  @Input() baseUrl: string = '';\r\n  @Input() customAddUrl?: string;\r\n  @Input() canView: boolean = true;\r\n  @Input() canExportToPDF: boolean = false;\r\n  @Input() canAdd: boolean = true;\r\n  @Input() title: string = '';\r\n  @Input() addTitle: string = '';\r\n  @Input() processSelectedTitle: string = 'Process selected';\r\n  @Input() editable: boolean = false;\r\n  @Input() deleteAble: boolean = false;\r\n  @Input() canSelect: boolean = false;\r\n  @Input() editInline: boolean = false;\r\n  @Input() editInlineTitle: string = 'Edit';\r\n  @Input() ActionButtons: BytepicBasicTableActionModel[] = [];\r\n\r\n  @Output() onDelete = new EventEmitter<string>();\r\n  @Output() onProcessSelected = new EventEmitter<\r\n    BytepicBasicTableDataModel[]\r\n  >();\r\n  @Output() onSaveInlineEdit = new EventEmitter<BytepicBasicTableDataModel>();\r\n  @Output() onNext = new EventEmitter<number>();\r\n  @Output() onPrevious = new EventEmitter<number>();\r\n  @Output() onSearch = new EventEmitter<string>();\r\n  @Input()\r\n  unNumberedPagination: boolean = false;\r\n  @Input()\r\n  selfProcessPagination: boolean = false;\r\n  @Input()\r\n  hasNext: boolean = false;\r\n  @Input()\r\n  hasPrevious: boolean = false;\r\n\r\n  @Input()\r\n  currentPage: number = 0;\r\n\r\n  selectAll: boolean = false;\r\n  data: BytepicBasicTableDataModel[] = [];\r\n  filteredData: BytepicBasicTableDataModel[] = [];\r\n  editing: boolean = false;\r\n  editingIndex: number = -1;\r\n\r\n  searchText: string = '';\r\n\r\n  originalData: BytepicBasicTableDataModel[] = [];\r\n  pages: any[] = [];\r\n  pagesToView:any[] = [];\r\n  numberOfItemsPerPage = 10;\r\n  printing = false;\r\n  printableColumns: BytepicBasicTableColumModel[] = [];\r\n\r\n  constructor(\r\n    private dateFormateService: DateFormateService,\r\n    private bytepicResponsivenessService: BytepicResponsivenessService\r\n  ) {}\r\n  ngOnDestroy(): void {\r\n    this.subject.unsubscribe();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.subject.subscribe((data: any[]) => {\r\n      if (data != null && data[0] != null) {\r\n        this.printableColumns = [];\r\n        this.columns.forEach((col) => {\r\n          if (col.exportableColumn) {\r\n            this.printableColumns.push(col);\r\n          }\r\n        });\r\n        if(this.selfProcessPagination){\r\n          this.filteredData = data;\r\n        }else{\r\n          this.originalData = data;\r\n          this.filterData();\r\n        }\r\n      }\r\n    });\r\n    this.filteredData = [];\r\n    this.data.forEach((info) => {\r\n      this.filteredData.push(info);\r\n    });\r\n  }\r\n\r\n  creatPages() {\r\n    this.pages = [];\r\n    var count = 0;\r\n    count = Math.ceil(this.filteredData.length / this.numberOfItemsPerPage);\r\n    for (var i = 0; i < count-1; i++) {\r\n      this.pages.push(i+1);\r\n    }\r\n    this.setPagesToDisplay();\r\n  }\r\n\r\n  setPagesToDisplay(){\r\n    var pageCount = this.pages.length;\r\n    if(pageCount>5){\r\n      this.pagesToView = [];\r\n      this.pagesToView.push(1);\r\n      if(this.currentPage<=2){\r\n        this.pagesToView.push(2);\r\n        this.pagesToView.push(3);\r\n      }\r\n\r\n      this.pagesToView.push(\"...\");\r\n      if(this.currentPage<pageCount-2 && this.currentPage>2){\r\n        this.pagesToView.push(this.currentPage-1);\r\n        this.pagesToView.push(this.currentPage);\r\n        this.pagesToView.push(this.currentPage+1);\r\n        this.pagesToView.push(\"...\");\r\n      }\r\n\r\n      if(this.currentPage>=pageCount-2){\r\n        this.pagesToView.push(pageCount-2);\r\n        this.pagesToView.push(pageCount-1);\r\n      }\r\n      this.pagesToView.push(pageCount);\r\n    }else{\r\n      this.pagesToView = this.pages;\r\n    }\r\n  }\r\n\r\n  updatePageView() {\r\n    this.data = [];\r\n    for (\r\n      var i = this.currentPage * this.numberOfItemsPerPage;\r\n      i < (this.currentPage + 1) * this.numberOfItemsPerPage &&\r\n      i < this.filteredData.length;\r\n      i++\r\n    ) {\r\n      this.data.push(this.filteredData[i]);\r\n    }\r\n  }\r\n\r\n  changeCurrentPage(pageNumber: number,endPage:number=0) {\r\n    if(!this.selfProcessPagination){\r\n      if(endPage==-1){\r\n        this.currentPage = 0;\r\n      }else if(endPage == 1){\r\n        this.currentPage = this.pages.length-1;\r\n      }else{\r\n        this.currentPage = pageNumber;\r\n      }\r\n      this.updatePageView();\r\n      this.setPagesToDisplay();\r\n    }else{\r\n      if(endPage==-1){\r\n        this.onPrevious.emit(2);\r\n      }else if(endPage == 1){\r\n        this.onNext.emit(2);\r\n      }else{\r\n        var direction = this.currentPage - pageNumber;\r\n        if(direction<0){\r\n          this.onPrevious.emit(1);\r\n        }else{\r\n          this.onNext.emit(1);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  delete(id: string) {\r\n    this.onDelete.emit(id);\r\n  }\r\n\r\n  filterData() {\r\n    if(this.selfProcessPagination){\r\n      this.onSearch.emit(this.searchText);\r\n      return;\r\n    }\r\n    this.filteredData = this.originalData.filter((value) => {\r\n      if (this.searchText == '') {\r\n        return true;\r\n      }\r\n      for (let i = 0; i < this.columns.length; i++) {\r\n        try {\r\n          let col = this.columns[i];\r\n          let wow = value.body[col.columnName] as string;\r\n          if (col.isTimeStamp) {\r\n            var x = value.body[col.columnName];\r\n            wow = this.dateFormateService.formatToDMY(x, true) as string;\r\n          }\r\n          if (wow != null && wow != undefined) {\r\n            if (wow.toLowerCase().search(this.searchText.toLowerCase()) >= 0) {\r\n              return true;\r\n            }\r\n          }\r\n        } catch (error) {\r\n          console.log(error);\r\n        }\r\n      }\r\n      return false;\r\n    });\r\n    this.updatePageView();\r\n    this.creatPages();\r\n  }\r\n\r\n  selectAllChanged() {\r\n    this.filteredData.forEach((item) => {\r\n      item.selected = !this.selectAll;\r\n    });\r\n  }\r\n\r\n  processSelectedItems() {\r\n    let selected = this.originalData.filter((value) => {\r\n      return value.selected;\r\n    });\r\n\r\n    this.onProcessSelected.emit(selected);\r\n  }\r\n\r\n  saveInlineEditing(item: BytepicBasicTableDataModel) {\r\n    this.editing = false;\r\n    this.editingIndex = -1;\r\n    this.onSaveInlineEdit.emit(item);\r\n  }\r\n\r\n  editRow(index: number) {\r\n    this.editingIndex = index;\r\n    this.editing = true;\r\n  }\r\n\r\n  public async openPDF(): Promise<void> {\r\n    this.printing = true;\r\n    var DATA = document.getElementById('htmlData');\r\n    while (DATA == null) {\r\n      await this.bytepicResponsivenessService.delay(100);\r\n      DATA = document.getElementById('htmlData');\r\n    }\r\n\r\n    let canvas = await html2canvas(DATA as HTMLElement);\r\n    let fileWidth = 208;\r\n    let fileHeight = (canvas.height * fileWidth) / canvas.width;\r\n\r\n    const FILEURI = canvas.toDataURL('image/png');\r\n    let PDF = new jsPDF('p', 'mm', 'a4');\r\n    let position = 0;\r\n    PDF.addImage(FILEURI, 'PNG', 0, position, fileWidth, fileHeight);\r\n\r\n    PDF.save(`${this.title}.pdf`);\r\n    this.printing = false;\r\n  }\r\n}\r\n","<div class=\"row g-3 mb-4 align-items-center justify-content-between\">\r\n  <div class=\"col-auto\">\r\n    <h1 class=\"app-page-title mb-0\">{{ title }}</h1>\r\n  </div>\r\n  <div class=\"col-auto\">\r\n    <div class=\"page-utilities\">\r\n      <div\r\n        class=\"row g-2 justify-content-start justify-content-md-end align-items-center\"\r\n      >\r\n        <div class=\"col-auto\">\r\n          <form class=\"table-search-form row gx-1 align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <input\r\n                type=\"text\"\r\n                [(ngModel)]=\"searchText\"\r\n                id=\"search-orders\"\r\n                name=\"searchorders\"\r\n                class=\"form-control search-orders\"\r\n                placeholder=\"Search\"\r\n              />\r\n            </div>\r\n            <div class=\"col-auto\">\r\n              <button (click)=\"filterData()\" class=\"btn app-btn-secondary\">\r\n                Search\r\n              </button>\r\n            </div>\r\n          </form>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"col-auto\">\r\n          <button\r\n            *ngIf=\"canSelect\"\r\n            (click)=\"processSelectedItems()\"\r\n            class=\"btn app-btn-secondary\"\r\n          >\r\n            {{ processSelectedTitle }}\r\n          </button>\r\n        </div>\r\n        <div class=\"col-auto\">\r\n          <a\r\n            *ngIf=\"canAdd\"\r\n            class=\"btn app-btn-primary\"\r\n            [routerLink]=\"customAddUrl ?? '/' + baseUrl + '/add'\"\r\n          >\r\n            <span class=\"pe-2\">\r\n              <i class=\"fas fa-plus\"></i>\r\n            </span>\r\n            {{ addTitle }}\r\n          </a>\r\n        </div>\r\n        <div class=\"col-auto\" *ngFor=\"let actionButton of ActionButtons\">\r\n          <a\r\n            class=\"btn pointer {{ actionButton.actionClass }}\"\r\n            (click)=\"actionButton.onClick()\"\r\n          >\r\n          <div *ngIf=\"actionButton.actionIconHtml || actionButton.actionIcon\">\r\n            <span\r\n              class=\"pe-2\"\r\n              *ngIf=\"!actionButton.actionIconHtml; else htmIcon\"\r\n            >\r\n              <i class=\"{{ actionButton.actionIcon }}\"></i>\r\n            </span>\r\n            <ng-template #htmIcon>\r\n              <span [innerHTML]=\"actionButton.actionIconHtml\" class=\"pe-2\">\r\n              </span>\r\n            </ng-template>\r\n          </div>\r\n            {{ actionButton.actionTitle }}\r\n          </a>\r\n        </div>\r\n        <div\r\n          *ngIf=\"canExportToPDF && printableColumns.length > 0\"\r\n          class=\"col-auto\"\r\n        >\r\n          <button class=\"btn btn-success btn-block\" (click)=\"openPDF()\">\r\n            Export to PDF\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <!--//row-->\r\n    </div>\r\n    <!--//table-utilities-->\r\n  </div>\r\n  <!--//col-auto-->\r\n</div>\r\n<!--//row-->\r\n<!--//tab-content-->\r\n\r\n<div class=\"tab-content\">\r\n  <div\r\n    class=\"tab-pane fade show active\"\r\n    id=\"orders-all\"\r\n    role=\"tabpanel\"\r\n    aria-labelledby=\"orders-all-tab\"\r\n  >\r\n    <div class=\"app-card app-card-orders-table shadow-sm mb-5\">\r\n      <!-- <form [formGroup]=\"editingRoleForm\"> -->\r\n      <div class=\"app-card-body\">\r\n        <table\r\n          class=\"table mb-0 text-left\"\r\n          *ngIf=\"data.length > 0\"\r\n        >\r\n          <thead>\r\n            <tr>\r\n              <th class=\"cell\">#</th>\r\n              <th class=\"cell\" *ngIf=\"canSelect\">\r\n                <!-- <input\r\n                    type=\"checkbox\"\r\n                    name=\"selectAll\"\r\n                    [(ngModel)]=\"selectAll\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                    (click)=\"selectAllChanged()\"\r\n                  /> -->\r\n                <input\r\n                  type=\"checkbox\"\r\n                  name=\"selectAll\"\r\n                  [(ngModel)]=\"selectAll\"\r\n                  (click)=\"selectAllChanged()\"\r\n                />\r\n              </th>\r\n              <th *ngFor=\"let column of columns\" class=\"cell\">\r\n                {{ column.title }}\r\n              </th>\r\n              <th class=\"cell\"></th>\r\n            </tr>\r\n          </thead>\r\n          <tbody>\r\n            <tr *ngFor=\"let item of data; let i = index\">\r\n              <td class=\"cell\" [class.new] = \"item.isNew\">\r\n                {{ i + 1 + currentPage * numberOfItemsPerPage }}\r\n              </td>\r\n              <td class=\"cell\" *ngIf=\"canSelect\">\r\n                <!-- <input\r\n                    type=\"checkbox\"\r\n                    [(ngModel)]=\"item.selected\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  /> -->\r\n                <input type=\"checkbox\" [(ngModel)]=\"item.selected\" />\r\n              </td>\r\n              <td *ngFor=\"let column of columns\" class=\"cell\">\r\n                <!-- This div is for columns that have pure string or timestamp format -->\r\n                <div\r\n                  *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \"\r\n                >\r\n                  <!-- This div is for columns that have pure string format -->\r\n                  <div *ngIf=\"!column.isTimeStamp\">\r\n                    <span\r\n                      *ngIf=\"!editing || !column.canEdit || editingIndex != i\"\r\n                    >\r\n                      {{ item.body[column.columnName] }}\r\n                    </span>\r\n                    <span\r\n                      *ngIf=\"\r\n                        editInline &&\r\n                        editing &&\r\n                        column.canEdit &&\r\n                        editingIndex == i\r\n                      \"\r\n                    >\r\n                      <!-- <bytepic-form-control-input\r\n                        [myFormControl]=\"\r\n                          getFormControl(\r\n                            column.columnName,\r\n                            item.body[column.columnName]\r\n                          )\r\n                        \"\r\n                      ></bytepic-form-control-input> -->\r\n                      <input\r\n                        type=\"text\"\r\n                        class=\"form-control\"\r\n                        [(ngModel)]=\"item.body[column.columnName]\"\r\n                      />\r\n                    </span>\r\n                  </div>\r\n\r\n                  <!-- This span is for columns that have timestamp format -->\r\n                  <span *ngIf=\"column.isTimeStamp\">\r\n                    <span\r\n                      *ngIf=\"\r\n                        item.body[column.columnName] != null &&\r\n                        item.body[column.columnName] != undefined\r\n                      \"\r\n                    >\r\n                      {{\r\n                        item.body[column.columnName].toDate()\r\n                          | date: \"d MMMM y\"\r\n                      }}\r\n                    </span>\r\n                    <span\r\n                      *ngIf=\"\r\n                        item.body[column.columnName] == null ||\r\n                        item.body[column.columnName] == undefined\r\n                      \"\r\n                    >\r\n                      no date\r\n                    </span>\r\n                  </span>\r\n                </div>\r\n\r\n                <!-- This div is for columns that have html as data -->\r\n                <div\r\n                  *ngIf=\"\r\n                    column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \"\r\n                  [innerHTML]=\"item.body[column.columnName]\"\r\n                ></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as html string -->\r\n                <div\r\n                  *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    column.processInfoAndReturnHtmlData\r\n                  \"\r\n                  [innerHTML]=\"\r\n                    column.processInfoAndReturnHtmlData(\r\n                      item.body[column.columnName]\r\n                    )\r\n                  \"\r\n                ></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as pure string -->\r\n                <div\r\n                  *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \"\r\n                >\r\n                  {{\r\n                    column.processInfoAndReturnString(\r\n                      item.body[column.columnName]\r\n                    )\r\n                  }}\r\n                </div>\r\n              </td>\r\n              <!-- here we will use item.id to navigate -->\r\n              <td class=\"cell\">\r\n                <a\r\n                  *ngIf=\"canView\"\r\n                  class=\"btn btn-sm app-btn-primary pointer me-2\"\r\n                  routerLink=\"/{{ baseUrl }}/view/{{ item.id }}\"\r\n                  >View</a\r\n                >\r\n                <a\r\n                  *ngIf=\"editable\"\r\n                  class=\"btn btn-sm btn-success pointer me-2\"\r\n                  routerLink=\"/{{ baseUrl }}/edit/{{ item.id }}\"\r\n                  >Edit</a\r\n                >\r\n                <a\r\n                  *ngIf=\"editInline && !editing\"\r\n                  class=\"btn btn-sm btn-success pointer me-2\"\r\n                  (click)=\"editRow(i)\"\r\n                  >{{ editInlineTitle }}</a\r\n                >\r\n                <a\r\n                  *ngIf=\"editInline && editing && editingIndex == i\"\r\n                  class=\"btn btn-sm btn-success pointer me-2\"\r\n                  (click)=\"saveInlineEditing(item)\"\r\n                  >Save</a\r\n                >\r\n                <a\r\n                  *ngIf=\"deleteAble\"\r\n                  (click)=\"delete(item.id)\"\r\n                  class=\"btn btn-sm btn-danger pointer\"\r\n                  >Delete</a\r\n                >\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n      <!-- </form> -->\r\n      <!--//app-card-body-->\r\n    </div>\r\n    <div\r\n      class=\"d-flex justify-content-center my-4 border border-primary\"\r\n      *ngIf=\"data.length <= 0\"\r\n    >\r\n      <span class=\"py-4\"> No data to display </span>\r\n    </div>\r\n    <!--//app-card-->\r\n    <nav class=\"app-pagination\" *ngIf=\"data.length > 0\">\r\n      <ul class=\"pagination justify-content-center\" style=\"overflow-x: scroll;\">\r\n        <li class=\"page-item\" [ngClass]=\"{ disabled: 0 === currentPage || (selfProcessPagination && hasPrevious) }\">\r\n          <a\r\n            class=\"page-link pointer\"\r\n            (click)=\"changeCurrentPage(currentPage - 1, -1)\"\r\n            > << </a\r\n          >\r\n        </li>\r\n        <li class=\"page-item\" [ngClass]=\"{ disabled: 0 === currentPage || (selfProcessPagination && hasPrevious) }\">\r\n          <a\r\n            class=\"page-link pointer\"\r\n            (click)=\"changeCurrentPage(currentPage - 1)\"\r\n            > < </a\r\n          >\r\n        </li>\r\n        <li\r\n          class=\"page-item\"\r\n          [ngClass]=\"{ active: item === currentPage }\"\r\n          *ngFor=\"let item of pagesToView\"\r\n        >\r\n          <a *ngIf=\"!selfProcessPagination\" class=\"page-link pointer\" (click)=\"changeCurrentPage(item)\">\r\n            {{ item }}\r\n          </a>\r\n        </li>\r\n        <li\r\n          class=\"page-item\"\r\n          *ngIf=\"selfProcessPagination\"\r\n        >\r\n          <a class=\"page-link pointer\">\r\n            {{ currentPage+1 }}\r\n          </a>\r\n        </li>\r\n        <li\r\n          class=\"page-item\"\r\n          [ngClass]=\"{ disabled: pages.length - 1 === currentPage || (selfProcessPagination && hasNext) }\"\r\n        >\r\n          <a\r\n            class=\"page-link pointer\"\r\n            (click)=\"changeCurrentPage(currentPage + 1)\"\r\n            > > </a\r\n          >\r\n        </li>\r\n        <li\r\n          class=\"page-item\"\r\n          [ngClass]=\"{ disabled: pages.length - 1 === currentPage || (selfProcessPagination && hasNext) }\"\r\n        >\r\n          <a\r\n            class=\"page-link pointer\"\r\n            (click)=\"changeCurrentPage(currentPage + 1, 1)\"\r\n            > >> </a\r\n          >\r\n        </li>\r\n      </ul>\r\n    </nav>\r\n    <!--//app-pagination-->\r\n  </div>\r\n  <!--//tab-pane-->\r\n</div>\r\n\r\n<div *ngIf=\"printing\">\r\n  printing the table below ...\r\n  <div class=\"app-card app-card-orders-table shadow-sm mb-5\">\r\n    <!-- <form [formGroup]=\"editingRoleForm\"> -->\r\n    <div class=\"app-card-body\">\r\n      <div class=\"table-responsive\" id=\"htmlData\">\r\n        <table\r\n          class=\"table mb-0 text-left\"\r\n          *ngIf=\"originalData.length > 0\"\r\n        >\r\n          <thead>\r\n            <tr>\r\n              <th *ngFor=\"let column of printableColumns\" class=\"cell\">\r\n                {{ column.title }}\r\n              </th>\r\n            </tr>\r\n          </thead>\r\n          <tbody>\r\n            <tr *ngFor=\"let item of originalData; let i = index\" class=\"new\">\r\n              <td *ngFor=\"let column of printableColumns\" class=\"cell\">\r\n                <!-- This div is for columns that have pure string or timestamp format -->\r\n                <div\r\n                  *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \"\r\n                >\r\n                  <!-- This div is for columns that have pure string format -->\r\n                  <div *ngIf=\"!column.isTimeStamp\">\r\n                    <span\r\n                      *ngIf=\"!editing || !column.canEdit || editingIndex != i\"\r\n                    >\r\n                      {{ item.body[column.columnName] }}\r\n                    </span>\r\n                    <span\r\n                      *ngIf=\"\r\n                        editInline &&\r\n                        editing &&\r\n                        column.canEdit &&\r\n                        editingIndex == i\r\n                      \"\r\n                    >\r\n                      <!-- <bytepic-form-control-input\r\n                        [myFormControl]=\"\r\n                          getFormControl(\r\n                            column.columnName,\r\n                            item.body[column.columnName]\r\n                          )\r\n                        \"\r\n                      ></bytepic-form-control-input> -->\r\n                      <input\r\n                        type=\"text\"\r\n                        class=\"form-control\"\r\n                        [(ngModel)]=\"item.body[column.columnName]\"\r\n                      />\r\n                    </span>\r\n                  </div>\r\n\r\n                  <!-- This span is for columns that have timestamp format -->\r\n                  <span *ngIf=\"column.isTimeStamp\">\r\n                    <span\r\n                      *ngIf=\"\r\n                        item.body[column.columnName] != null &&\r\n                        item.body[column.columnName] != undefined\r\n                      \"\r\n                    >\r\n                      {{\r\n                        item.body[column.columnName].toDate() | date: \"d MMMM y\"\r\n                      }}\r\n                    </span>\r\n                    <span\r\n                      *ngIf=\"\r\n                        item.body[column.columnName] == null ||\r\n                        item.body[column.columnName] == undefined\r\n                      \"\r\n                    >\r\n                      no date\r\n                    </span>\r\n                  </span>\r\n                </div>\r\n\r\n                <!-- This div is for columns that have html as data -->\r\n                <div\r\n                  *ngIf=\"\r\n                    column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \"\r\n                  [innerHTML]=\"item.body[column.columnName]\"\r\n                ></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as html string -->\r\n                <div\r\n                  *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    column.processInfoAndReturnHtmlData\r\n                  \"\r\n                  [innerHTML]=\"\r\n                    column.processInfoAndReturnHtmlData(\r\n                      item.body[column.columnName]\r\n                    )\r\n                  \"\r\n                ></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as pure string -->\r\n                <div\r\n                  *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \"\r\n                >\r\n                  {{\r\n                    column.processInfoAndReturnString(\r\n                      item.body[column.columnName]\r\n                    )\r\n                  }}\r\n                </div>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n      <!--//table-responsive-->\r\n    </div>\r\n    <!-- </form> -->\r\n    <!--//app-card-body-->\r\n  </div>\r\n\r\n  <!--//tab-pane-->\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'app-bytepic-generic-add-form',\r\n  templateUrl: './bytepic-generic-add-form.component.html',\r\n  styleUrls: ['./bytepic-generic-add-form.component.scss'],\r\n})\r\nexport class BytepicGenericAddFormComponent implements OnInit {\r\n  @Input() yourFormControls: BytepicFormControlInputModel[] = [];\r\n  @Input() errorMessage = '';\r\n  @Input() title = 'Add';\r\n  @Input() informationMessage = '';\r\n  @Input() successMessage = '';\r\n  @Input() learnMoreLink = '';\r\n  @Input() processing = false;\r\n  @Input() savedSuccessfully = false;\r\n\r\n  @Output() onSave = new EventEmitter<FormGroup>();\r\n\r\n  formGroup: FormGroup = new FormGroup({});\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.yourFormControls.forEach((formControl) => {\r\n      this.formGroup.addControl(\r\n        formControl.fieldName as string,\r\n        formControl.formControl\r\n      );\r\n    });\r\n    console.log(this.yourFormControls.length);\r\n  }\r\n\r\n  save() {\r\n    if (this.formGroup.invalid) {\r\n      this.formGroup.markAllAsTouched();\r\n      return;\r\n    }\r\n    console.log(this.formGroup.value);\r\n    this.onSave.emit(this.formGroup);\r\n  }\r\n}\r\n","<h1 class=\"app-page-title\">{{ title }}</h1>\r\n<hr class=\"mb-4\" />\r\n<div class=\"row g-4 settings-section d-flex justify-content-center\" >\r\n  <div class=\"col-12 col-md-4\" *ngIf=\"informationMessage && informationMessage != ''\">\r\n    <h3 class=\"section-title\">General</h3>\r\n    <div class=\"section-intro\">\r\n        {{ informationMessage }} <a *ngIf=\"learnMoreLink && learnMoreLink != '' \" routerLink=\"{{ learnMoreLink }}\">Learn more</a>\r\n    </div>\r\n  </div>\r\n  <div class=\"col-12 col-md-8\">\r\n    <div class=\"app-card app-card-settings shadow-sm p-4\">\r\n      <div class=\"app-card-body\">\r\n        <form class=\"settings-form\" [formGroup]=\"formGroup\" (ngSubmit)=\"save()\">\r\n          <div\r\n            *ngIf=\"savedSuccessfully\"\r\n            class=\"alert alert-success\"\r\n            role=\"alert\"\r\n          >\r\n            {{ successMessage }}\r\n          </div>\r\n          <div\r\n            *ngIf=\"errorMessage != ''\"\r\n            class=\"alert alert-danger\"\r\n            role=\"alert\"\r\n          >\r\n            {{ errorMessage }}\r\n          </div>\r\n\r\n          <bytepic-form-control-input *ngFor=\"let formControl of yourFormControls\" [myFormControl]='formControl'></bytepic-form-control-input>\r\n\r\n          <button\r\n            *ngIf=\"!processing\"\r\n            type=\"submit\"\r\n            class=\"btn app-btn-primary\"\r\n          >\r\n            Save\r\n          </button>\r\n          <button *ngIf=\"processing\" disabled class=\"btn app-btn-primary\">\r\n            Loading ...\r\n          </button>\r\n        </form>\r\n      </div>\r\n      <!--//app-card-body-->\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'app-bytepic-generic-edit-form',\r\n  templateUrl: './bytepic-generic-edit-form.component.html',\r\n  styleUrls: ['./bytepic-generic-edit-form.component.scss']\r\n})\r\nexport class BytepicGenericEditFormComponent implements OnInit {\r\n  @Input() myFormControlsSubject: BehaviorSubject<BytepicFormControlInputModel[]> = new BehaviorSubject<BytepicFormControlInputModel[]>([]);\r\n  @Input() loading = false;\r\n  @Input() title = 'view';\r\n  @Input() titleIcon = '';\r\n  @Input() readonly = false;\r\n  @Output() onUpdate = new EventEmitter<FormGroup>();\r\n\r\n  myFormControls: BytepicFormControlInputModel[] = [];\r\n  updateFormData = new FormGroup({});\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    this.myFormControlsSubject.subscribe(data => {\r\n\r\n      this.myFormControls = data;\r\n      this.myFormControls.forEach(formControl => {\r\n        if (this.readonly) {\r\n          formControl.readonly = true;\r\n        }\r\n        this.updateFormData.addControl(formControl.fieldName as string, formControl.formControl);\r\n      });\r\n    });\r\n  }\r\n\r\n  updateProfileData(value: string) {\r\n    this.onUpdate.emit(this.updateFormData);\r\n  }\r\n\r\n  ngOnDestroy(): void { }\r\n\r\n}\r\n","<div\r\n  class=\"\r\n    app-card app-card-account\r\n  \"\r\n>\r\n  <div class=\"app-card-header p-3 border-bottom-0\">\r\n    <div class=\"row align-items-center gx-3\">\r\n      <div class=\"col-auto\">\r\n        <div class=\"app-icon-holder\">\r\n          <i class=\"{{ titleIcon }}\"></i>\r\n        </div>\r\n        <!--//icon-holder-->\r\n      </div>\r\n      <!--//col-->\r\n      <div class=\"col-auto\">\r\n        <h4 class=\"app-card-title\">{{ title}}</h4>\r\n      </div>\r\n      <!--//col-->\r\n    </div>\r\n    <!--//row-->\r\n  </div>\r\n  <form\r\n    class=\"settings-form\"\r\n    [formGroup]=\"updateFormData\"\r\n    (ngSubmit)=\"updateProfileData('')\"\r\n  >\r\n    <!--//app-card-header-->\r\n    <div class=\"app-card-body px-4 w-100\">\r\n      <!--//item-->\r\n      <bytepic-form-control-input-dynamic\r\n        (onSave)=\"updateProfileData($event)\"\r\n        *ngFor=\"let formControl of myFormControls\"\r\n        [myFormControl]=\"formControl\"\r\n      ></bytepic-form-control-input-dynamic>\r\n      <!--//item-->\r\n    </div>\r\n    <!--//app-card-body-->\r\n    <div class=\"app-card-footer p-4 mt-auto\" *ngIf=\"!readonly\">\r\n      <a class=\"btn-sm app-btn-secondary pointer\">Edit</a>\r\n    </div>\r\n  </form>\r\n  <!--//app-card-footer-->\r\n</div>\r\n<!--//app-card-->\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-stats-widget',\r\n  templateUrl: './bytepic-stats-widget.component.html',\r\n  styleUrls: ['./bytepic-stats-widget.component.scss']\r\n})\r\nexport class BytepicStatsWidgetComponent implements OnInit {\r\n\r\n  @Input() title='';\r\n  @Input() statsFigure='';\r\n  @Input() statsDescriptor='';\r\n  @Input() statsDescriptorIcon = '';\r\n  @Input() statsDescriptorCSS='';\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"app-card app-card-stat shadow-sm h-100\">\r\n  <div class=\"app-card-body p-3 p-lg-4\">\r\n    <h4 class=\"stats-type mb-1\">{{ title }}</h4>\r\n    <div class=\"stats-figure\">{{ statsFigure }}</div>\r\n    <div class=\"stats-meta {{ statsDescriptorCSS }}\">\r\n      <i class=\"{{ statsDescriptorIcon }}\" *ngIf=\"statsDescriptorIcon != ''\">\r\n      </i>\r\n      {{ statsDescriptor }}\r\n    </div>\r\n  </div>\r\n  <!--//app-card-body-->\r\n  <a class=\"app-card-link-mask\" href=\"#\"></a>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n// import { ChartsModule } from 'ng2-charts';\r\n// import { BytepicBarChartComponent } from './bytepic-bar-chart/bytepic-bar-chart.component';\r\n// import { BytepicBubbleChartComponent } from './bytepic-bubble-chart/bytepic-bubble-chart.component';\r\n// import { BytepicDoughnutChartComponent } from './bytepic-doughnut-chart/bytepic-doughnut-chart.component';\r\n// import { BytepicLineChartComponent } from './bytepic-line-chart/bytepic-line-chart.component';\r\n// import { BytepicPieChartComponent } from './bytepic-pie-chart/bytepic-pie-chart.component';\r\n// import { BytepicPolarAreaChartComponent } from './bytepic-polar-area-chart/bytepic-polar-area-chart.component';\r\n// import { BytepicRadarChartComponent } from './bytepic-radar-chart/bytepic-radar-chart.component';\r\n// import { BytepicScatterChartComponent } from './bytepic-scatter-chart/bytepic-scatter-chart.component';\r\nimport { BytepicFooterComponent } from './bytepic-footer/bytepic-footer.component';\r\nimport { BytepicMenuItemComponent } from './menu-item/bytepic-menu-item.component';\r\nimport { BytepicDocumentCardComponent } from './bytepic-document-card/bytepic-document-card.component';\r\nimport { BytepicSideBarComponent } from './bytepic-side-bar/bytepic-side-bar.component';\r\nimport { BytepicTopBarComponent } from './bytepic-top-bar/bytepic-top-bar.component';\r\nimport { BytepicUserProfileComponent } from './user-profile/bytepic-user-profile.component';\r\nimport { BytepicMyProfileComponent } from './my-profile/bytepic-my-profile.component';\r\nimport { BytepicFormControlInputDynamicComponent } from './bytepic-form-control-input-dynamic/bytepic-form-control-input-dynamic.component';\r\nimport { BytepicFullNoticeComponent } from './full-notice/bytepic-full-notice.component';\r\nimport { BytepicMiniNoticeComponent } from './mini-notice/bytepic-mini-notice.component';\r\nimport { BytepicFormControlInputComponent } from './bytepic-form-control-input/bytepic-form-control-input.component';\r\nimport { BytepicExploreComponent } from './explore/bytepic-explore.component';\r\nimport { BytepicBasicUserAccountComponent } from './basic-user-account/bytepic-basic-user-account.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BytepicBasicTableComponent } from './basic-table/bytepic-basic-table.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { BytepicGenericAddFormComponent } from './bytepic-generic-add-form/bytepic-generic-add-form.component';\r\nimport { BytepicGenericEditFormComponent } from './bytepic-generic-edit-form/bytepic-generic-edit-form.component';\r\nimport { BytepicStatsWidgetComponent } from './bytepic-stats-widget/bytepic-stats-widget.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BytepicSideBarComponent,\r\n    BytepicTopBarComponent,\r\n    BytepicFooterComponent,\r\n    // BytepicLineChartComponent,\r\n    // BytepicBarChartComponent,\r\n    // BytepicDoughnutChartComponent,\r\n    // BytepicRadarChartComponent,\r\n    // BytepicPieChartComponent,\r\n    // BytepicPolarAreaChartComponent,\r\n    // BytepicBubbleChartComponent,\r\n    // BytepicScatterChartComponent,\r\n    BytepicDocumentCardComponent,\r\n    BytepicMenuItemComponent,\r\n    BytepicUserProfileComponent,\r\n    BytepicMyProfileComponent,\r\n    BytepicMiniNoticeComponent,\r\n    BytepicFullNoticeComponent,\r\n    BytepicFormControlInputDynamicComponent,\r\n    BytepicFormControlInputComponent,\r\n    BytepicExploreComponent,\r\n    BytepicBasicUserAccountComponent,\r\n    BytepicBasicTableComponent,\r\n    BytepicGenericAddFormComponent,\r\n    BytepicGenericEditFormComponent,\r\n    BytepicStatsWidgetComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    // ChartsModule,\r\n    ReactiveFormsModule,\r\n    NgSelectModule,\r\n    FormsModule,\r\n  ],\r\n  exports: [\r\n    BytepicSideBarComponent,\r\n    BytepicTopBarComponent,\r\n    BytepicFooterComponent,\r\n    // BytepicLineChartComponent,\r\n    // BytepicBarChartComponent,\r\n    // BytepicDoughnutChartComponent,\r\n    // BytepicRadarChartComponent,\r\n    // BytepicPieChartComponent,\r\n    // BytepicPolarAreaChartComponent,\r\n    // BytepicBubbleChartComponent,\r\n    // BytepicScatterChartComponent,\r\n    BytepicDocumentCardComponent,\r\n    BytepicMenuItemComponent,\r\n    BytepicUserProfileComponent,\r\n    BytepicMyProfileComponent,\r\n    BytepicMiniNoticeComponent,\r\n    BytepicFullNoticeComponent,\r\n    BytepicFormControlInputDynamicComponent,\r\n    BytepicFormControlInputComponent,\r\n    BytepicExploreComponent,\r\n    BytepicBasicUserAccountComponent,\r\n    BytepicBasicTableComponent,\r\n    BytepicGenericAddFormComponent,\r\n    BytepicGenericEditFormComponent,\r\n    BytepicStatsWidgetComponent,\r\n  ]\r\n})\r\nexport class BytepicComponentsModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BytepicMenuItemModel } from '../../models/bytepic-menu-item-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-top-bar-layout',\r\n  templateUrl: './bytepic-top-bar-layout.component.html',\r\n  styleUrls: ['./bytepic-top-bar-layout.component.css']\r\n})\r\nexport class BytepicTopBarLayoutComponent implements OnInit {\r\n\r\n  @Input() sideMenuItems: BytepicMenuItemModel[] = [];\r\n  @Input() sideMenuFooter: BytepicMenuItemModel[] = [];\r\n\r\n  @Input() baseUrl: string = 'authenticated';\r\n  @Input() logoURL: string = 'assets/images/logo.png';\r\n  @Input() profilePicUrl:any=null;\r\n  @Input() title:any=null;\r\n  \r\n  @Input() footerUrl = \"https://saidem.business.site\";\r\n  @Input() organizationName = \"Saidem Tech\";\r\n  @Input() purpose = \"accounting firms\";\r\n\r\n  @Output() onLogout = new EventEmitter<string>();\r\n  \r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  logOut(value: any) {\r\n    this.onLogout.emit(value);\r\n  }\r\n\r\n}\r\n","<header class=\"app-header fixed-top\">\r\n    <bytepic-top-bar\r\n      [baseUrl]=\"baseUrl\"\r\n      [title]=\"title\"\r\n      [profilePicUrl]=\"profilePicUrl\"\r\n      (onLogout)=\"logOut($event)\"\r\n    ></bytepic-top-bar>\r\n  </header>\r\n  <!--//app-header-->\r\n  \r\n  <div class=\"app-content pt-3 p-md-3 p-lg-4\">\r\n    <div class=\"container-xl\">\r\n      <router-outlet></router-outlet>\r\n    </div>\r\n    <!--//container-fluid-->\r\n  </div>\r\n  <!--//app-content-->\r\n\r\n  <bytepic-footer\r\n    [organizationName]=\"organizationName\"\r\n    [url]=\"footerUrl\"\r\n    [purpose]=\"purpose\"\r\n  >\r\n  </bytepic-footer>\r\n  ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BytepicFixedNavBarsComponent } from './fixed-nav-bars/bytepic-fixed-nav-bars.component';\r\nimport { BytepicComponentsModule } from '../components/bytepic-components.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { BytepicTopBarLayoutComponent } from './bytepic-top-bar-layout/bytepic-top-bar-layout.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BytepicFixedNavBarsComponent,\r\n    BytepicTopBarLayoutComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    BytepicComponentsModule\r\n  ],\r\n  exports: [\r\n    BytepicFixedNavBarsComponent,\r\n    BytepicTopBarLayoutComponent\r\n  ]\r\n})\r\nexport class BytepicLayoutsModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-form-control-input',\r\n  templateUrl: './form-control-input.component.html',\r\n  styleUrls: ['./form-control-input.component.scss']\r\n})\r\nexport class FormControlInputComponent implements OnInit {\r\n\r\n  @Input() myFormControl: BytepicFormControlInputModel = {\r\n    formControl: new FormControl(''),\r\n    type: 'text',\r\n    options:[],\r\n    processValueForOption:(data:any)=>{},\r\n    processLabelForOption:(data:any)=>\"\",\r\n  };\r\n\r\n  theControl: FormControl;\r\n  optionValues:any[]=[];\r\n  selectedOption:any={};\r\n\r\n  constructor() {\r\n    this.theControl = this.myFormControl?.formControl as FormControl;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  changed(event: any) {\r\n    if (this.myFormControl?.type == 'date') {\r\n      this.myFormControl?.formControl.setValue(event.target.valueAsDate);\r\n    } else if (this.myFormControl?.type == 'file') {\r\n      this.myFormControl?.formControl.setValue(event.target.files[0]);\r\n    }else if(this.myFormControl?.type == 'select'){\r\n      this.myFormControl?.formControl.setValue(this.theControl.value);\r\n    }else if(this.myFormControl?.type == 'checkbox'){\r\n      this.myFormControl.formControl.setValue(event.currentTarget.checked);\r\n    }\r\n    this.myFormControl?.formControl.markAsTouched();\r\n  }\r\n\r\n\r\n\r\n}\r\n","<div *ngIf=\"myFormControl\">\r\n  <div class=\"mb-3\" [ngClass]=\"myFormControl.type == 'checkbox' ? 'form-check' : ''\">\r\n    <label *ngIf=\"myFormControl.type != 'checkbox'\" class=\"form-label\">{{\r\n      myFormControl.label\r\n    }}</label>\r\n    <input\r\n      *ngIf=\"myFormControl.type != 'select' && myFormControl.type != 'textarea' && myFormControl.type != 'checkbox'\"\r\n      [formControl]=\"\r\n        myFormControl.type == 'date' || myFormControl.type == 'file'\r\n          ? theControl\r\n          : myFormControl.formControl\r\n      \"\r\n      [type]=\"myFormControl.type\"\r\n      (change)=\"changed($event)\"\r\n      [style]=\"myFormControl.customCSS\"\r\n      [ngClass]=\"\r\n        myFormControl.type == 'checkbox' ? 'form-check-input' : 'form-control'\r\n      \"\r\n      class=\"{{ myFormControl.customClass }}\"\r\n      placeholder=\"{{ myFormControl.placeholder ?? myFormControl.label }}\"\r\n      [class.is-invalid]=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n    />\r\n    <input\r\n      *ngIf=\"myFormControl.type == 'checkbox'\"\r\n      [formControl]=\"myFormControl.formControl\"\r\n      [type]=\"myFormControl.type\"\r\n      [checked]=\"myFormControl.formControl.value\"\r\n      (change)=\"changed($event)\"\r\n      [style]=\"myFormControl.customCSS\"\r\n      class=\"{{ myFormControl.customClass }} form-check-input\"\r\n      placeholder=\"{{ myFormControl.placeholder ?? myFormControl.label }}\"\r\n      [class.is-invalid]=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n    />\r\n    <label *ngIf=\"myFormControl.type == 'checkbox'\" class=\"form-label\">{{\r\n      myFormControl.label\r\n    }}</label>\r\n    <textarea\r\n      [rows]=\"myFormControl.rows ?? '3'\"\r\n      *ngIf=\"myFormControl.type == 'textarea'\"\r\n      [formControl]=\"myFormControl.formControl\"\r\n      class=\"form-control {{ myFormControl.customClass }}\"\r\n      placeholder=\"{{ myFormControl.placeholder ?? myFormControl.label }}\"\r\n      [class.is-invalid]=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n    ></textarea>\r\n\r\n    <ng-select\r\n      *ngIf=\"myFormControl.type == 'select'\"\r\n      [formControl]=\"theControl\"\r\n      (change)=\"changed($event)\"\r\n    >\r\n      <span *ngIf=\"!myFormControl.isOptionEnum\">\r\n        <ng-option\r\n          *ngFor=\"let option of myFormControl.options\"\r\n          [value]=\"myFormControl.processValueForOption!(option)\"\r\n        >\r\n          {{ myFormControl.processLabelForOption!(option) }}\r\n        </ng-option>\r\n      </span>\r\n      <span *ngIf=\"myFormControl.isOptionEnum\">\r\n        <ng-option\r\n          *ngFor=\"let option of myFormControl.options | keyvalue\"\r\n          [value]=\"myFormControl.processValueForOption!(option)\"\r\n        >\r\n          {{ myFormControl.processLabelForOption!(option) }}\r\n        </ng-option>\r\n      </span>\r\n    </ng-select>\r\n    <div\r\n      *ngIf=\"\r\n        myFormControl.formControl.invalid &&\r\n        (myFormControl.formControl.dirty || myFormControl.formControl.touched)\r\n      \"\r\n      class=\"invalid-feedback\"\r\n    >\r\n      <div *ngIf=\"myFormControl.formControl.errors?.required\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} is required.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.minlength\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be at least\r\n        {{\r\n          myFormControl.formControl.errors?.minlength.requiredLength\r\n        }}\r\n        characters long.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.maxlength\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must not have more\r\n        than\r\n        {{\r\n          myFormControl.formControl.errors?.maxlength.requiredLength\r\n        }}\r\n        characters long.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.max\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be less than\r\n        {{ myFormControl.formControl.errors?.max.max }}.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.min\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be greater\r\n        than {{ myFormControl.formControl.errors?.min.min }}.\r\n      </div>\r\n      <div *ngIf=\"myFormControl.formControl.errors?.email\">\r\n        {{ myFormControl.fieldName ?? myFormControl.label }} must be a valid\r\n        email address.\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-form',\r\n  templateUrl: './form.component.html',\r\n  styleUrls: ['./form.component.scss'],\r\n})\r\nexport class FormComponent implements OnInit {\r\n  @Input() yourFormControls: BytepicFormControlInputModel[] = [];\r\n  @Input() errorMessage = '';\r\n  @Input() saveButtonTitle = 'Save';\r\n  @Input() showSaveButtonTitle = true;\r\n  @Input() successMessage = '';\r\n  @Input() processing = false;\r\n  @Input() savedSuccessfully = false;\r\n\r\n  @Output() onSave = new EventEmitter<FormGroup>();\r\n\r\n  @Input() formSubmissionEvent: Observable<boolean> = new BehaviorSubject<boolean>(true);\r\n  private initiated:boolean = false;\r\n  formGroup: FormGroup = new FormGroup({});\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.yourFormControls.forEach((formControl) => {\r\n      this.formGroup.addControl(\r\n        formControl.fieldName as string,\r\n        formControl.formControl\r\n      );\r\n    });\r\n    this.formSubmissionEvent.subscribe(() => {\r\n      if(this.initiated){\r\n        this.save();\r\n      }\r\n    });\r\n    this.initiated = true;\r\n  }\r\n\r\n  save() {\r\n    if (this.formGroup.invalid) {\r\n      this.formGroup.markAllAsTouched();\r\n      return;\r\n    }\r\n    this.onSave.emit(this.formGroup);\r\n  }\r\n}\r\n","<form class=\"settings-form\" [formGroup]=\"formGroup\" (ngSubmit)=\"save()\">\r\n  <div\r\n    *ngIf=\"savedSuccessfully\"\r\n    class=\"alert alert-success\"\r\n    role=\"alert\"\r\n  >\r\n    {{ successMessage }}\r\n  </div>\r\n  <div\r\n    *ngIf=\"errorMessage != ''\"\r\n    class=\"alert alert-danger\"\r\n    role=\"alert\"\r\n  >\r\n    {{ errorMessage }}\r\n  </div>\r\n\r\n  <bytepic-form-control-input *ngFor=\"let formControl of yourFormControls\" [myFormControl]='formControl'></bytepic-form-control-input>\r\n\r\n  <button\r\n    *ngIf=\"!processing && showSaveButtonTitle\"\r\n    type=\"submit\"\r\n    class=\"btn app-btn-primary\"\r\n  >\r\n    {{ saveButtonTitle }}\r\n  </button>\r\n  <button *ngIf=\"processing && showSaveButtonTitle\" disabled class=\"btn app-btn-primary\">\r\n    Loading ...\r\n  </button>\r\n</form>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-footer',\r\n  templateUrl: './bytepic-footer.component.html',\r\n  styleUrls: ['./bytepic-footer.component.scss']\r\n})\r\nexport class BytepicFooterComponent implements OnInit {\r\n\r\n  @Input() url = \"https://bytepic.dev\";\r\n  @Input() organizationName = \"Bytepic\";\r\n  @Input() purpose = \"devs\";\r\n\r\n  @Input() customFooterText:string = '';\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<footer class=\"app-footer\">\r\n  <div class=\"container text-center py-3\">\r\n    <!--/* This template is free as long as you keep the footer attribution link. If you'd like to use the template without the attribution link, you can buy the commercial license via our website: themes.3rdwavemedia.com Thank you for your support. :) */-->\r\n    <small *ngIf=\"customFooterText == ''\" class=\"copyright\">Designed with <i class=\"fas fa-heart\" style=\"color: #fb866a;\"></i> by <a class=\"app-link\"\r\n        href=\"{{ url }}\" target=\"_blank\">{{ organizationName }}</a> for {{ purpose }} </small>\r\n\r\n    <small *ngIf=\"customFooterText != ''\" class=\"copyright\">{{ customFooterText }} </small>\r\n\r\n  </div>\r\n</footer>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-explore',\r\n  templateUrl: './bytepic-explore.component.html',\r\n  styleUrls: ['./bytepic-explore.component.scss']\r\n})\r\nexport class BytepicExploreComponent implements OnInit {\r\n\r\n  @Input() message = \"Bytepic products\";\r\n  @Input() name = \"Bytepic\";\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<div class=\"d-flex flex-column align-content-end h-100\">\r\n  <div class=\"h-100\"></div>\r\n  <div class=\"overlay-content p-3 p-lg-4 rounded\">\r\n    <h5 class=\"mb-3 overlay-title\">{{ name }}</h5>\r\n    <div>\r\n      {{ message }}\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-login-page',\r\n  templateUrl: './bytepic-login-page.component.html',\r\n  styleUrls: ['./bytepic-login-page.component.scss'],\r\n})\r\nexport class BytepicLoginPageComponent implements OnInit {\r\n  @Input() errorMessage = '';\r\n  @Input() successMessage = '';\r\n  @Input() processing = false;\r\n  @Input() savedSuccessfully = false;\r\n  @Input() logo = 'assets/images/logo.png';\r\n  @Input() loginButtonTitle = \"Login\";\r\n  @Input() canSignIn = true;\r\n  @Input() canResetPassword = false;\r\n  @Input() signUpUrl = '/signup';\r\n  @Input() resetPasswordUrl = '/reset-password';\r\n  @Input() canShowFooter = true;\r\n  @Input() footerUrl = 'https://bytepic.dev';\r\n  @Input() footerOrganizationName = 'Bytepic';\r\n  @Input() footerOrganizationPurpose = 'developers';\r\n  @Input() exploreName = 'Explore bytepic template';\r\n  @Input()  exploreMessage = `A comprehensive admin template that has been designed to simplify the portal development process easy and smooth`;\r\n\r\n  @Output() onLogin = new EventEmitter<FormGroup>();\r\n\r\n  eventsSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n\r\n  myFormControls: BytepicFormControlInputModel[] = [\r\n    {\r\n      formControl: new FormControl('', [Validators.email, Validators.required]),\r\n      type: 'email',\r\n      label: 'Email',\r\n      fieldName: 'email',\r\n    },\r\n    {\r\n      formControl: new FormControl('', [Validators.required]),\r\n      type: 'password',\r\n      label: 'Password',\r\n      fieldName: 'password',\r\n    },\r\n  ];\r\n\r\n  loading: boolean = false;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    let body = document.getElementsByTagName('body')[0];\r\n    body.classList.add('app-login');\r\n    body.classList.add('p-0');\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    let body = document.getElementsByTagName('body')[0];\r\n    body.classList.remove('app-login');\r\n    body.classList.remove('p-0');\r\n  }\r\n\r\n  loginButtonClicked(){\r\n    this.eventsSubject.next(true);\r\n  }\r\n\r\n  login(data: FormGroup) {\r\n    this.onLogin.emit(data);\r\n  }\r\n}\r\n","<div class=\"row g-0 app-auth-wrapper\">\r\n  <div class=\"col-12 col-md-7 col-lg-6 auth-main-col text-center p-5\">\r\n    <div class=\"d-flex flex-column align-content-end\">\r\n      <div class=\"app-auth-body mx-auto\">\r\n        <div class=\"app-auth-branding mb-4\">\r\n          <a class=\"app-logo\" [routerLink]=\"'/'\"\r\n            ><img class=\"logo-icon me-2\" [src]=\"logo\" alt=\"logo\"\r\n          /></a>\r\n        </div>\r\n        <h2 class=\"auth-heading text-center mb-5\">Log in</h2>\r\n        <div class=\"auth-form-container text-start\">\r\n          <bytepic-form\r\n            [yourFormControls]=\"myFormControls\"\r\n            [processing]=\"processing\"\r\n            [errorMessage]=\"errorMessage\"\r\n            [savedSuccessfully]=\"savedSuccessfully\"\r\n            [successMessage]=\"successMessage\"\r\n            [saveButtonTitle]=\"loginButtonTitle\"\r\n            (onSave)=\"login($event)\"\r\n            [showSaveButtonTitle]=\"false\"\r\n            [formSubmissionEvent]=\"eventsSubject\"\r\n          >\r\n          </bytepic-form>\r\n\r\n          <div class=\"password mb-3\">\r\n            <div class=\"extra mt-3 row justify-content-between\">\r\n              <div class=\"col-6\">\r\n                <div class=\"form-check\">\r\n                  <input\r\n                    type=\"checkbox\"\r\n                    value=\"\"\r\n                    id=\"RememberPassword\"\r\n                    class=\"form-check-input\"\r\n                  /><label for=\"RememberPassword\" class=\"form-check-label\">\r\n                    Remember me\r\n                  </label>\r\n                </div>\r\n              </div>\r\n              <div class=\"col-6\">\r\n                <div class=\"forgot-password text-end\">\r\n                  <a [routerLink]=\"resetPasswordUrl\" href=\"\" *ngIf=\"canResetPassword\">Forgot password?</a>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n          <div class=\"text-center\">\r\n            <button\r\n            *ngIf=\"!processing\"\r\n              class=\"btn app-btn-primary w-100 theme-btn mx-auto\"\r\n              (click)=\"loginButtonClicked()\"\r\n            >\r\n              Log In\r\n            </button>\r\n            <button *ngIf=\"processing\" disabled class=\"btn app-btn-primary\">\r\n              Loading ...\r\n            </button>\r\n          </div>\r\n          <div class=\"auth-option text-center pt-5\" *ngIf=\"canSignIn\">\r\n            No Account? Sign up\r\n            <a [routerLink]=\"signUpUrl\" class=\"text-link\">here</a>.\r\n          </div>\r\n        </div>\r\n        <!--//auth-form-container-->\r\n      </div>\r\n      <!--//auth-body-->\r\n\r\n      <bytepic-footer\r\n        *ngIf=\"canShowFooter\"\r\n        [url]=\"footerUrl\"\r\n        [organizationName]=\"footerOrganizationName\"\r\n        [purpose]=\"footerOrganizationPurpose\"\r\n      ></bytepic-footer>\r\n      <!--//app-auth-footer-->\r\n    </div>\r\n    <!--//flex-column-->\r\n  </div>\r\n  <!--//auth-main-col-->\r\n  <div class=\"col-12 col-md-5 col-lg-6 h-100 auth-background-col\">\r\n    <div class=\"auth-background-holder\"></div>\r\n    <div class=\"auth-background-mask\"></div>\r\n    <div class=\"auth-background-overlay p-3 p-lg-5\">\r\n      <bytepic-explore\r\n        [name]=\"exploreName\"\r\n        [message]=\"exploreMessage\"\r\n      ></bytepic-explore>\r\n    </div>\r\n    <!--//auth-background-overlay-->\r\n  </div>\r\n  <!--//auth-background-col-->\r\n</div>\r\n<!--//row-->\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-register-page',\r\n  templateUrl: './bytepic-register-page.component.html',\r\n  styleUrls: ['./bytepic-register-page.component.scss'],\r\n})\r\nexport class BytepicRegisterPageComponent implements OnInit {\r\n  @Input() errorMessage = '';\r\n  @Input() successMessage = '';\r\n  @Input() processing = false;\r\n  @Input() savedSuccessfully = false;\r\n  @Input() logo = 'assets/images/logo.png';\r\n  @Input() loading: boolean = false;\r\n  @Input() registerButtonTitle = 'Register';\r\n  @Input() canShowFooter = true;\r\n  @Input() footerUrl = 'https://bytepic.dev';\r\n  @Input() footerOrganizationName = 'Bytepic';\r\n  @Input() footerOrganizationPurpose = 'developers';\r\n  @Input() exploreName = 'Explore bytepic template';\r\n  @Input()\r\n  exploreMessage = `A comprehensive admin template that has been designed to simplify the portal development process easy and smooth`;\r\n  @Input() signInUrl = '/login';\r\n  @Input() privacyPolicyUrl = '#';\r\n  @Input() termsOfServiceUrl = '#';\r\n\r\n  @Output() onRegister = new EventEmitter<FormGroup>();\r\n\r\n  eventsSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n\r\n  myFormControls: BytepicFormControlInputModel[] = [\r\n    {\r\n      formControl: new FormControl('', [Validators.email]),\r\n      type: 'email',\r\n      label: 'Email',\r\n      fieldName: 'email',\r\n    },\r\n    {\r\n      formControl: new FormControl('', [Validators.required]),\r\n      type: 'password',\r\n      label: 'Password',\r\n      fieldName: 'password',\r\n    },\r\n    {\r\n      formControl: new FormControl('', [Validators.required]),\r\n      type: 'password',\r\n      label: 'Confirm Password',\r\n      fieldName: 'confirmPassword',\r\n    },\r\n  ];\r\n\r\n  ngOnInit(): void {\r\n    let body = document.getElementsByTagName('body')[0];\r\n    body.classList.add('app-signup');\r\n    body.classList.add('p-0');\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    let body = document.getElementsByTagName('body')[0];\r\n    body.classList.remove('app-signup');\r\n    body.classList.remove('p-0');\r\n  }\r\n\r\n  registerButtonClicked() {\r\n    this.eventsSubject.next(true);\r\n  }\r\n\r\n  register(data: FormGroup) {\r\n    this.onRegister.emit(data);\r\n  }\r\n}\r\n","<div class=\"row g-0 app-auth-wrapper\">\r\n  <div class=\"col-12 col-md-7 col-lg-6 auth-main-col text-center p-5\">\r\n    <div class=\"d-flex flex-column align-content-end\">\r\n      <div class=\"app-auth-body mx-auto\">\r\n        <div class=\"app-auth-branding mb-4\">\r\n          <a class=\"app-logo\" [routerLink]=\"'/'\">\r\n            <img class=\"logo-icon me-2\" [src]=\"logo\" alt=\"logo\" />\r\n          </a>\r\n        </div>\r\n        <h2 class=\"auth-heading text-center mb-4\">Sign up</h2>\r\n        <!-- <div\r\n          class=\"alert alert-danger alert-dismissible fade show\"\r\n          *ngIf=\"errorMessage != ''\"\r\n          role=\"alert\"\r\n        >\r\n          Failed to create account.\r\n          <br />\r\n          {{ errorMessage }}\r\n          <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>\r\n        </div> -->\r\n        <div class=\"auth-form-container text-start mx-auto\">\r\n          <bytepic-form\r\n            [yourFormControls]=\"myFormControls\"\r\n            [processing]=\"processing\"\r\n            [errorMessage]=\"errorMessage\"\r\n            [savedSuccessfully]=\"savedSuccessfully\"\r\n            [successMessage]=\"successMessage\"\r\n            [saveButtonTitle]=\"registerButtonTitle\"\r\n            (onSave)=\"register($event)\"\r\n            [showSaveButtonTitle]=\"false\"\r\n            [formSubmissionEvent]=\"eventsSubject\"\r\n          >\r\n          </bytepic-form>\r\n          <!--//auth-form-->\r\n          <div class=\"extra mb-3\">\r\n            <div class=\"form-check\">\r\n              <input\r\n                type=\"checkbox\"\r\n                value=\"\"\r\n                id=\"RememberPassword\"\r\n                class=\"form-check-input\"\r\n              /><label for=\"RememberPassword\" class=\"form-check-label\">\r\n                I agree to Portal's\r\n                <a [routerLink]=\"[termsOfServiceUrl]\" class=\"app-link\">Terms of Service</a>\r\n                and\r\n                <a [routerLink]=\"[privacyPolicyUrl]\" class=\"app-link\">Privacy Policy</a>.\r\n              </label>\r\n            </div>\r\n          </div>\r\n          <div class=\"text-center\">\r\n            <button\r\n            *ngIf=\"!processing\"\r\n              class=\"btn app-btn-primary w-100 theme-btn mx-auto\"\r\n              (click)=\"registerButtonClicked()\"\r\n            >\r\n            Sign Up\r\n            </button>\r\n            <button *ngIf=\"processing\" disabled class=\"btn app-btn-primary\">\r\n              Loading ...\r\n            </button>\r\n          </div>\r\n          <div class=\"auth-option text-center pt-5\">\r\n            Already have an account?\r\n            <a class=\"text-link\" [routerLink]=\"[signInUrl]\">Log in</a>\r\n          </div>\r\n        </div>\r\n        <!--//auth-form-container-->\r\n      </div>\r\n      <!--//auth-body-->\r\n\r\n      <bytepic-footer\r\n        *ngIf=\"canShowFooter\"\r\n        [url]=\"footerUrl\"\r\n        [organizationName]=\"footerOrganizationName\"\r\n        [purpose]=\"footerOrganizationPurpose\"\r\n      ></bytepic-footer>\r\n      <!--//app-auth-footer-->\r\n    </div>\r\n    <!--//flex-column-->\r\n  </div>\r\n  <!--//auth-main-col-->\r\n  <div class=\"col-12 col-md-5 col-lg-6 h-100 auth-background-col\">\r\n    <div class=\"auth-background-holder\"></div>\r\n    <div class=\"auth-background-mask\"></div>\r\n    <div class=\"auth-background-overlay p-3 p-lg-5\">\r\n      <bytepic-explore\r\n        [name]=\"exploreName\"\r\n        [message]=\"exploreMessage\"\r\n      ></bytepic-explore>\r\n    </div>\r\n    <!--//auth-background-overlay-->\r\n  </div>\r\n  <!--//auth-background-col-->\r\n</div>\r\n<!--//row-->\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-reset-password-page',\r\n  templateUrl: './bytepic-reset-password-page.component.html',\r\n  styleUrls: ['./bytepic-reset-password-page.component.scss']\r\n})\r\nexport class BytepicResetPasswordPageComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>bytepic-reset-password-page works!</p>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-confirm-email-page',\r\n  templateUrl: './bytepic-confirm-email-page.component.html',\r\n  styleUrls: ['./bytepic-confirm-email-page.component.scss']\r\n})\r\nexport class BytepicConfirmEmailPageComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>bytepic-confirm-email-page works!</p>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-generic-add-form',\r\n  templateUrl: './generic-add-form.component.html',\r\n  styleUrls: ['./generic-add-form.component.scss']\r\n})\r\nexport class GenericAddFormComponent implements OnInit {\r\n\r\n  @Input() yourFormControls: BytepicFormControlInputModel[] = [];\r\n  @Input() errorMessage = '';\r\n  @Input() title = 'Add';\r\n  @Input() saveButtonTitle = 'Save';\r\n  @Input() informationMessage = '';\r\n  @Input() successMessage = '';\r\n  @Input() learnMoreLink = '';\r\n  @Input() processing = false;\r\n  @Input() savedSuccessfully = false;\r\n\r\n  @Output() onSave = new EventEmitter<FormGroup>();\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  save(data:FormGroup) {\r\n    this.onSave.emit(data);\r\n  }\r\n\r\n}\r\n","<h1 class=\"app-page-title\">{{ title }}</h1>\r\n<hr class=\"mb-4\" />\r\n<div class=\"row g-4 settings-section d-flex justify-content-center\">\r\n  <div\r\n    class=\"col-12 col-md-4\"\r\n    *ngIf=\"informationMessage && informationMessage != ''\"\r\n  >\r\n    <h3 class=\"section-title\">General</h3>\r\n    <div class=\"section-intro\">\r\n      {{ informationMessage }}\r\n      <a\r\n        *ngIf=\"learnMoreLink && learnMoreLink != ''\"\r\n        routerLink=\"{{ learnMoreLink }}\"\r\n        >Learn more</a\r\n      >\r\n    </div>\r\n  </div>\r\n  <div class=\"col-12 col-md-8\">\r\n    <div class=\"app-card app-card-settings shadow-sm p-4\">\r\n      <div class=\"app-card-body\">\r\n        <bytepic-form\r\n          [yourFormControls]=\"yourFormControls\"\r\n          [processing]=\"processing\"\r\n          [errorMessage]=\"errorMessage\"\r\n          [savedSuccessfully]=\"savedSuccessfully\"\r\n          [successMessage]=\"successMessage\"\r\n          [saveButtonTitle]=\"saveButtonTitle\"\r\n          (onSave)=\"save($event)\"\r\n        >\r\n        </bytepic-form>\r\n        <!-- <form class=\"settings-form\" [formGroup]=\"formGroup\" (ngSubmit)=\"save()\">\r\n          <div\r\n            *ngIf=\"savedSuccessfully\"\r\n            class=\"alert alert-success\"\r\n            role=\"alert\"\r\n          >\r\n            {{ successMessage }}\r\n          </div>\r\n          <div\r\n            *ngIf=\"errorMessage != ''\"\r\n            class=\"alert alert-danger\"\r\n            role=\"alert\"\r\n          >\r\n            {{ errorMessage }}\r\n          </div>\r\n\r\n          <bytepic-form-control-input\r\n            *ngFor=\"let formControl of yourFormControls\"\r\n            [myFormControl]=\"formControl\"\r\n          ></bytepic-form-control-input>\r\n\r\n          <button *ngIf=\"!processing\" type=\"submit\" class=\"btn app-btn-primary\">\r\n            Save\r\n          </button>\r\n          <button *ngIf=\"processing\" disabled class=\"btn app-btn-primary\">\r\n            Loading ...\r\n          </button>\r\n        </form> -->\r\n      </div>\r\n      <!--//app-card-body-->\r\n    </div>\r\n    <!--//app-card-->\r\n  </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-form-control-input-dynamic',\r\n  templateUrl: './form-control-input-dynamic.component.html',\r\n  styleUrls: ['./form-control-input-dynamic.component.scss']\r\n})\r\nexport class FormControlInputDynamicComponent implements OnInit {\r\n\r\n  @Input() myFormControl: BytepicFormControlInputModel = {\r\n    formControl: new FormControl(''),\r\n    type: 'text',\r\n  };\r\n  loading = false;\r\n\r\n  isTimestamp: boolean = true;\r\n\r\n  initiated = false;\r\n\r\n  @Output() onSave = new EventEmitter<string>();\r\n\r\n\r\n  constructor() {\r\n\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (this.myFormControl.type == 'date') {\r\n      this.isTimestamp = !(this.myFormControl.formControl.value instanceof Date);\r\n    }\r\n    this.initiated = true;\r\n  }\r\n\r\n  save() {\r\n    this.onSave.emit(\"value\");\r\n    this.myFormControl.updateField = false;\r\n  }\r\n\r\n  removeValue() {\r\n    if (this.myFormControl.removeValue) {\r\n      this.myFormControl.removeValue()\r\n    } else {\r\n      this.myFormControl.formControl.setValue(null);\r\n    }\r\n    this.save()\r\n  }\r\n\r\n}\r\n","<div class=\"item border-bottom py-3\" *ngIf=\"initiated\">\r\n  <div class=\"row justify-content-between align-items-center\">\r\n    <div class=\"col-auto\" *ngIf=\"!myFormControl.updateField\">\r\n      <div class=\"form-check\" *ngIf=\"myFormControl.type == 'checkbox'\">\r\n        <input class=\"form-check-input\" type=\"checkbox\" disabled [checked]=\"myFormControl.formControl.value\" />\r\n        <label class=\"form-check-label\" for=\"flexCheckIndeterminate\">\r\n          <strong>{{ myFormControl.label }}</strong>\r\n        </label>\r\n      </div>\r\n\r\n      <div class=\"item-label\" *ngIf=\"myFormControl.type != 'checkbox'\">\r\n        <strong>{{ myFormControl.label }}</strong>\r\n      </div>\r\n      <div class=\"item-data\" *ngIf=\"myFormControl.type != 'checkbox'\">\r\n        <span *ngIf=\"\r\n            myFormControl.type != 'file' &&\r\n            myFormControl.type != 'date' &&\r\n            myFormControl.type != 'select' &&\r\n            myFormControl.type != 'checkbox'\r\n          \">\r\n          {{ myFormControl.formControl.value ?? \"None\" }}\r\n        </span>\r\n\r\n        <img *ngIf=\"myFormControl.type == 'file'\" class=\"profile-image\" src=\"{{ myFormControl.formControl.value }}\"\r\n          alt=\"\" />\r\n\r\n        <span *ngIf=\"myFormControl.type == 'select'\">\r\n          {{\r\n          myFormControl.processLabelForOption!(\r\n          myFormControl.formControl.value\r\n          )\r\n          }}\r\n        </span>\r\n        <span *ngIf=\"myFormControl.type == 'date'\">\r\n          <span *ngIf=\"myFormControl.formControl?.value\">\r\n            <span *ngIf=\"!isTimestamp\">\r\n              {{ myFormControl.formControl.value | date: \"d MMMM y\" }}\r\n            </span>\r\n            <span *ngIf=\"isTimestamp\">\r\n              {{ myFormControl.formControl.value.toDate() | date: \"d MMMM y\" }}\r\n            </span>\r\n          </span>\r\n          <span *ngIf=\"!myFormControl.formControl?.value\"> no date </span>\r\n        </span>\r\n      </div>\r\n    </div>\r\n    <!--//col-->\r\n    <div class=\"mb-3\" *ngIf=\"myFormControl.updateField\">\r\n      <bytepic-form-control-input [myFormControl]=\"myFormControl\"></bytepic-form-control-input>\r\n\r\n      <div class=\"col text-end\">\r\n        <a class=\"btn-sm app-btn-secondary pointer me-2\" *ngIf=\"!loading\" (click)=\"myFormControl.updateField = false\">\r\n          Cancel\r\n        </a>\r\n        <a class=\"btn-sm app-btn-secondary pointer\" *ngIf=\"!loading\" (click)=\"save()\">\r\n          Save\r\n        </a>\r\n        <a class=\"btn btn-primary btn-block pointer disabled\" *ngIf=\"loading\">\r\n          Loading...\r\n        </a>\r\n      </div>\r\n    </div>\r\n    <div class=\"col d-flex justify-content-end\" *ngIf=\"!myFormControl.readonly\">\r\n      <div class=\"d-flex flex-column justify-content-between\">\r\n        <a class=\"btn-sm btn btn-danger mb-2\"\r\n          *ngIf=\"!loading && !myFormControl.updateField && myFormControl.type == 'file' && myFormControl.removable && myFormControl.formControl.value\"\r\n          (click)=\"removeValue()\">\r\n          remove\r\n        </a>\r\n        <a class=\"btn-sm app-btn-secondary pointer\" *ngIf=\"!loading && !myFormControl.updateField\"\r\n          (click)=\"myFormControl.updateField = true\">\r\n          Change\r\n        </a>\r\n      </div>\r\n    </div>\r\n    <!--//col-->\r\n  </div>\r\n  <!--//row-->\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-generic-edit-form',\r\n  templateUrl: './generic-edit-form.component.html',\r\n  styleUrls: ['./generic-edit-form.component.scss']\r\n})\r\nexport class GenericEditFormComponent implements OnInit {\r\n\r\n  @Input() myFormControlsSubject: BehaviorSubject<BytepicFormControlInputModel[]> = new BehaviorSubject<BytepicFormControlInputModel[]>([]);\r\n  @Input() loading = false;\r\n  @Input() title = 'view';\r\n  @Input() titleIcon = '';\r\n  @Input() readonly = false;\r\n  @Output() onUpdate = new EventEmitter<FormGroup>();\r\n\r\n  myFormControls: BytepicFormControlInputModel[] = [];\r\n  updateFormData = new FormGroup({});\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    this.myFormControlsSubject.subscribe(data => {\r\n\r\n      this.myFormControls = data;\r\n      this.myFormControls.forEach(formControl => {\r\n        if (this.readonly) {\r\n          formControl.readonly = true;\r\n        }\r\n        this.updateFormData.addControl(formControl.fieldName as string, formControl.formControl);\r\n      });\r\n    });\r\n  }\r\n\r\n  updateProfileData(value: string) {\r\n    this.onUpdate.emit(this.updateFormData);\r\n  }\r\n\r\n  ngOnDestroy(): void { }\r\n\r\n  editAllFields(){\r\n    this.myFormControls.forEach(element => {\r\n      if(!element.readonly){\r\n        element.updateField = true;\r\n      }\r\n    });\r\n  }\r\n\r\n}\r\n","<div\r\n  class=\"\r\n    app-card app-card-account\r\n  \"\r\n>\r\n  <div class=\"app-card-header p-3 border-bottom-0\">\r\n    <div class=\"row align-items-center gx-3\">\r\n      <div class=\"col-auto\">\r\n        <div class=\"app-icon-holder\">\r\n          <i class=\"{{ titleIcon }}\"></i>\r\n        </div>\r\n        <!--//icon-holder-->\r\n      </div>\r\n      <!--//col-->\r\n      <div class=\"col-auto\">\r\n        <h4 class=\"app-card-title\">{{ title}}</h4>\r\n      </div>\r\n      <!--//col-->\r\n    </div>\r\n    <!--//row-->\r\n  </div>\r\n  <form\r\n    class=\"settings-form\"\r\n    [formGroup]=\"updateFormData\"\r\n    (ngSubmit)=\"updateProfileData('')\"\r\n  >\r\n    <!--//app-card-header-->\r\n    <div class=\"app-card-body px-4 w-100\">\r\n      <!--//item-->\r\n      <bytepic-form-control-input-dynamic\r\n        (onSave)=\"updateProfileData($event)\"\r\n        *ngFor=\"let formControl of myFormControls\"\r\n        [myFormControl]=\"formControl\"\r\n      ></bytepic-form-control-input-dynamic>\r\n      <!--//item-->\r\n    </div>\r\n    <!--//app-card-body-->\r\n    <div class=\"app-card-footer p-4 mt-auto\" *ngIf=\"!readonly\">\r\n      <!-- <button class=\"btn app-btn-primary\" (click)=\"editAllFields()\">Edit</button> -->\r\n    </div>\r\n  </form>\r\n  <!--//app-card-footer-->\r\n</div>\r\n<!--//app-card-->\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GenericAddFormComponent } from './generic-add-form/generic-add-form.component';\r\nimport { GenericEditFormComponent } from './generic-edit-form/generic-edit-form.component';\r\nimport { FormControlInputComponent } from './form-control-input/form-control-input.component';\r\nimport { FormControlInputDynamicComponent } from './form-control-input-dynamic/form-control-input-dynamic.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { FormComponent } from './form/form.component';\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    GenericAddFormComponent,\r\n    GenericEditFormComponent,\r\n    FormControlInputComponent,\r\n    FormControlInputDynamicComponent,\r\n    FormComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    ReactiveFormsModule,\r\n    NgSelectModule,\r\n    FormsModule,\r\n  ],\r\n  exports:[\r\n    GenericAddFormComponent,\r\n    GenericEditFormComponent,\r\n    FormControlInputComponent,\r\n    FormControlInputDynamicComponent,\r\n    FormComponent\r\n  ]\r\n})\r\nexport class BytepicFormsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BytepicExploreComponent } from './bytepic-explore/bytepic-explore.component';\r\nimport { BytepicFooterComponent } from './bytepic-footer/bytepic-footer.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BytepicExploreComponent,\r\n    BytepicFooterComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports:[\r\n    BytepicExploreComponent,\r\n    BytepicFooterComponent\r\n  ]\r\n})\r\nexport class BytepicComponentsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BytepicLoginPageComponent } from './bytepic-login-page/bytepic-login-page.component';\r\nimport { BytepicRegisterPageComponent } from './bytepic-register-page/bytepic-register-page.component';\r\nimport { BytepicResetPasswordPageComponent } from './bytepic-reset-password-page/bytepic-reset-password-page.component';\r\nimport { BytepicConfirmEmailPageComponent } from './bytepic-confirm-email-page/bytepic-confirm-email-page.component';\r\nimport { BytepicFormsModule } from '../bytepic-forms/bytepic-forms.module';\r\nimport { BytepicComponentsModule } from '../bytepic-components/bytepic-components.module';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BytepicLoginPageComponent,\r\n    BytepicRegisterPageComponent,\r\n    BytepicResetPasswordPageComponent,\r\n    BytepicConfirmEmailPageComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    BytepicFormsModule,\r\n    BytepicComponentsModule,\r\n    RouterModule,\r\n  ],\r\n  exports: [\r\n    BytepicLoginPageComponent,\r\n    BytepicRegisterPageComponent,\r\n    BytepicResetPasswordPageComponent,\r\n    BytepicConfirmEmailPageComponent,\r\n  ],\r\n})\r\nexport class BytepicPagesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule\r\n  ]\r\n})\r\nexport class BytepicChartsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-basic-stats',\r\n  templateUrl: './basic-stats.component.html',\r\n  styleUrls: ['./basic-stats.component.scss']\r\n})\r\nexport class BasicStatsComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>basic-stats works!</p>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-small-basic-stats',\r\n  templateUrl: './small-basic-stats.component.html',\r\n  styleUrls: ['./small-basic-stats.component.scss']\r\n})\r\nexport class SmallBasicStatsComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>small-basic-stats works!</p>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-bar-graph-stats',\r\n  templateUrl: './bar-graph-stats.component.html',\r\n  styleUrls: ['./bar-graph-stats.component.scss']\r\n})\r\nexport class BarGraphStatsComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>bar-graph-stats works!</p>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-line-graph-stats',\r\n  templateUrl: './line-graph-stats.component.html',\r\n  styleUrls: ['./line-graph-stats.component.scss']\r\n})\r\nexport class LineGraphStatsComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<p>line-graph-stats works!</p>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BasicStatsComponent } from './basic-stats/basic-stats.component';\r\nimport { BarGraphStatsComponent } from './bar-graph-stats/bar-graph-stats.component';\r\nimport { LineGraphStatsComponent } from './line-graph-stats/line-graph-stats.component';\r\nimport { SmallBasicStatsComponent } from './small-basic-stats/small-basic-stats.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BasicStatsComponent,\r\n    BarGraphStatsComponent,\r\n    LineGraphStatsComponent,\r\n    SmallBasicStatsComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    BasicStatsComponent,\r\n    BarGraphStatsComponent,\r\n    LineGraphStatsComponent,\r\n    SmallBasicStatsComponent\r\n  ]\r\n})\r\nexport class BytepicWidgetsModule { }\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n} from '@angular/core';\r\n// import { FormControl, FormGroup } from '@angular/forms';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { BytepicBasicTableColumModel } from '../../models/bytepic-basic-table-colum-model';\r\nimport { BytepicBasicTableDataModel } from '../../models/bytepic-basic-table-data-model';\r\n// import { BytepicFormControlInputModel } from '../../models/bytepic-form-control-input-model';\r\nimport { DateFormateService } from '../../services/custom-pipes/date-formate.service';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\nimport { BytepicBasicTableActionModel } from '../../models/bytepic-basic-table-action-model';\r\nimport { BytepicDraggedModel } from '../../models/bytepic-dragged-model';\r\n\r\n@Component({\r\n  selector: 'bytepic-basic-table',\r\n  templateUrl: './basic-table.component.html',\r\n  styleUrls: ['./basic-table.component.scss']\r\n})\r\nexport class BasicTableComponent implements OnInit, OnDestroy {\r\n\r\n  @Input() subject: BehaviorSubject<any> = new BehaviorSubject(null);\r\n  @Input() columns: BytepicBasicTableColumModel[] = [];\r\n  @Input() baseUrl: string = '';\r\n  @Input() customAddUrl?: string;\r\n  @Input() canView: boolean = true;\r\n  @Input() canExportToPDF: boolean = false;\r\n  @Input() canAdd: boolean = true;\r\n  @Input() title: string = '';\r\n  @Input() addTitle: string = '';\r\n  @Input() processSelectedTitle: string = 'Process selected';\r\n  @Input() editable: boolean = false;\r\n  @Input() deleteAble: boolean = false;\r\n  @Input() canSelect: boolean = false;\r\n  @Input() editInline: boolean = false;\r\n  @Input() canSearch: boolean = true;\r\n  @Input() editInlineTitle: string = 'Edit';\r\n  @Input() ActionButtons: BytepicBasicTableActionModel[] = [];\r\n\r\n  @Output() onDelete = new EventEmitter<string>();\r\n  @Output() onProcessSelected = new EventEmitter<\r\n    BytepicBasicTableDataModel[]\r\n  >();\r\n  @Output() onSaveInlineEdit = new EventEmitter<BytepicBasicTableDataModel>();\r\n  @Output() onNext = new EventEmitter<number>();\r\n  @Output() onPrevious = new EventEmitter<number>();\r\n  @Output() onSearch = new EventEmitter<string>();\r\n  @Output() onDragged = new EventEmitter<BytepicDraggedModel>();\r\n  @Input()\r\n  unNumberedPagination: boolean = false;\r\n  @Input()\r\n  selfProcessPagination: boolean = false;\r\n  @Input()\r\n  hasNext: boolean = false;\r\n  @Input()\r\n  hasPrevious: boolean = false;\r\n\r\n  @Input()\r\n  currentPage: number = 0;\r\n\r\n  @Input()\r\n  isDraggable = false; // Flag to control draggability\r\n\r\n  selectAll: boolean = false;\r\n  data: BytepicBasicTableDataModel[] = [];\r\n  filteredData: BytepicBasicTableDataModel[] = [];\r\n  editing: boolean = false;\r\n  editingIndex: number = -1;\r\n\r\n  searchText: string = '';\r\n\r\n  originalData: BytepicBasicTableDataModel[] = [];\r\n  pages: any[] = [];\r\n  pagesToView: any[] = [];\r\n  numberOfItemsPerPage = 10;\r\n  printing = false;\r\n  printableColumns: BytepicBasicTableColumModel[] = [];\r\n\r\n  columnToFilter: BytepicBasicTableColumModel[] = [];\r\n  optionsToSelectForFiltering: { filter: boolean, column: BytepicBasicTableColumModel }[] = [];\r\n\r\n  draggedData: BytepicDraggedModel | null = null;\r\n\r\n  constructor(\r\n    public dateFormateService: DateFormateService,\r\n    private bytepicResponsivenessService: BytepicResponsivenessService\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.subject.unsubscribe();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.subject.subscribe((data: any[]) => {\r\n      if (data != null && data[0] != null) {\r\n        this.printableColumns = [];\r\n        this.columns.forEach((col) => {\r\n          if (col.exportableColumn) {\r\n            this.printableColumns.push(col);\r\n          }\r\n        });\r\n        if (this.selfProcessPagination) {\r\n          this.filteredData = data;\r\n        } else {\r\n          this.originalData = data;\r\n          this.filterData();\r\n        }\r\n      }\r\n    });\r\n    this.optionsToSelectForFiltering = this.columns.map(col => {\r\n      return { filter: false, column: col };\r\n    });\r\n    this.filteredData = [];\r\n    this.data.forEach((info) => {\r\n      this.filteredData.push(info);\r\n    });\r\n  }\r\n\r\n  createPages() {\r\n    this.pages = [];\r\n    var count = 0;\r\n    count = Math.ceil(this.filteredData.length / this.numberOfItemsPerPage);\r\n    for (var i = 0; i < count; i++) {\r\n      this.pages.push(i + 1);\r\n    }\r\n    this.setPagesToDisplay();\r\n  }\r\n\r\n  setPagesToDisplay() {\r\n    var pageCount = this.pages.length;\r\n    if (pageCount > 5) {\r\n      this.pagesToView = [];\r\n      this.pagesToView.push(1);\r\n      if (this.currentPage <= 2) {\r\n        this.pagesToView.push(2);\r\n        this.pagesToView.push(3);\r\n      }\r\n\r\n      this.pagesToView.push(\"...\");\r\n      if (this.currentPage < pageCount - 2 && this.currentPage > 2) {\r\n        this.pagesToView.push(this.currentPage - 1);\r\n        this.pagesToView.push(this.currentPage);\r\n        this.pagesToView.push(this.currentPage + 1);\r\n        this.pagesToView.push(\"...\");\r\n      }\r\n\r\n      if (this.currentPage >= pageCount - 2) {\r\n        this.pagesToView.push(pageCount - 2);\r\n        this.pagesToView.push(pageCount - 1);\r\n      }\r\n      this.pagesToView.push(pageCount);\r\n    } else {\r\n      this.pagesToView = this.pages;\r\n    }\r\n  }\r\n\r\n  updatePageView() {\r\n    this.data = [];\r\n    for (\r\n      var i = this.currentPage * this.numberOfItemsPerPage;\r\n      i < (this.currentPage + 1) * this.numberOfItemsPerPage &&\r\n      i < this.filteredData.length;\r\n      i++\r\n    ) {\r\n      this.data.push(this.filteredData[i]);\r\n    }\r\n  }\r\n\r\n  changeCurrentPage(pageNumber: number, endPage: number = 0) {\r\n    if (!this.selfProcessPagination) {\r\n      if (endPage == -1) {\r\n        this.currentPage = 0;\r\n      } else if (endPage == 1) {\r\n        this.currentPage = this.pages.length - 1;\r\n      } else {\r\n        this.currentPage = pageNumber;\r\n      }\r\n      this.updatePageView();\r\n      this.setPagesToDisplay();\r\n    } else {\r\n      if (endPage == -1) {\r\n        this.onPrevious.emit(2);\r\n      } else if (endPage == 1) {\r\n        this.onNext.emit(2);\r\n      } else {\r\n        var direction = this.currentPage - pageNumber;\r\n        if (direction < 0) {\r\n          this.onPrevious.emit(1);\r\n        } else {\r\n          this.onNext.emit(1);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  delete(id: string) {\r\n    this.onDelete.emit(id);\r\n  }\r\n\r\n  filterData() {\r\n    if (this.selfProcessPagination) {\r\n      this.onSearch.emit(this.searchText);\r\n      return;\r\n    }\r\n    let filteringColumns: BytepicBasicTableColumModel[] = this.optionsToSelectForFiltering.filter(col => col.filter)\r\n      .map(col => { return col.column });\r\n    if (filteringColumns.length <= 0) {\r\n      filteringColumns = this.columns;\r\n    }\r\n    this.filteredData = this.originalData.filter((value) => {\r\n      if (this.searchText == '') {\r\n        return true;\r\n      }\r\n      for (let i = 0; i < filteringColumns.length; i++) {\r\n        try {\r\n          let col: BytepicBasicTableColumModel = filteringColumns[i];\r\n          let wow = this.getBytepicBasicTableColumModelValue(col, value);\r\n          if (wow != null && wow != undefined) {\r\n            if (wow.toLowerCase().includes(this.searchText.toLowerCase())) {\r\n              return true;\r\n            }\r\n          }\r\n        } catch (error) {\r\n          console.log(error);\r\n        }\r\n      }\r\n      return false;\r\n    });\r\n    this.updatePageView();\r\n    this.createPages();\r\n  }\r\n\r\n  getBytepicBasicTableColumModelValue(col: BytepicBasicTableColumModel, value: BytepicBasicTableDataModel) {\r\n    let wow = `${value.body[col.columnName]}`;\r\n    if (col.isTimeStamp || col.isDate) {\r\n      wow = `${this.dateFormateService.formatToDMY(value.body[col.columnName], col.isTimeStamp)}`;\r\n    } else if (col.processInfoAndReturnHtmlData) {\r\n      wow = col.processInfoAndReturnHtmlData(value.body[col.columnName]);\r\n    } else if (col.processInfoAndReturnHtmlDataBasedOnFullObject) {\r\n      wow = col.processInfoAndReturnHtmlDataBasedOnFullObject(value.body);\r\n    } else if (col.processInfoAndReturnString) {\r\n      wow = col.processInfoAndReturnString(value.body[col.columnName]);\r\n    } else if (col.processInfoAndReturnStringBasedOnFullObject) {\r\n      wow = col.processInfoAndReturnStringBasedOnFullObject(value.body);\r\n    }\r\n    return wow;\r\n  }\r\n\r\n  selectAllChanged() {\r\n    this.filteredData.forEach((item) => {\r\n      item.selected = !this.selectAll;\r\n    });\r\n  }\r\n\r\n  processSelectedItems() {\r\n    let selected = this.originalData.filter((value) => {\r\n      return value.selected;\r\n    });\r\n\r\n    this.onProcessSelected.emit(selected);\r\n  }\r\n\r\n  saveInlineEditing(item: BytepicBasicTableDataModel) {\r\n    this.editing = false;\r\n    this.editingIndex = -1;\r\n    this.onSaveInlineEdit.emit(item);\r\n  }\r\n\r\n  editRow(index: number) {\r\n    this.editingIndex = index;\r\n    this.editing = true;\r\n  }\r\n\r\n  public async openPDF(): Promise<void> {\r\n    this.printing = true;\r\n    var DATA = document.getElementById('htmlData');\r\n    while (DATA == null) {\r\n      await this.bytepicResponsivenessService.delay(100);\r\n      DATA = document.getElementById('htmlData');\r\n    }\r\n\r\n    let canvas = await html2canvas(DATA as HTMLElement);\r\n    let fileWidth = 208;\r\n    let fileHeight = (canvas.height * fileWidth) / canvas.width;\r\n\r\n    const FILEURI = canvas.toDataURL('image/png');\r\n    let PDF = new jsPDF('p', 'mm', 'a4');\r\n    let position = 0;\r\n    PDF.addImage(FILEURI, 'PNG', 0, position, fileWidth, fileHeight);\r\n\r\n    PDF.save(`${this.title}.pdf`);\r\n    this.printing = false;\r\n  }\r\n\r\n  onDragStart(event: DragEvent, index: number, item: any) {\r\n    if (!this.isDraggable) {\r\n      event.preventDefault();\r\n      return;\r\n    }\r\n    this.draggedData = {\r\n      indexDragged: index,\r\n      dataDragged: item,\r\n      draggedToIndex: 0,\r\n      draggedToData:null,\r\n    }\r\n    console.log(\"Dragging\");\r\n    console.log(item);\r\n    console.log(\"From index => \" + index);\r\n    event.dataTransfer?.setData('text/plain', index.toString());\r\n  }\r\n\r\n  onDragOver(event: DragEvent) {\r\n    event.preventDefault();\r\n  }\r\n\r\n\r\n\r\n  onDrop(event: DragEvent, index: number,item:any) {\r\n    console.log(\"Dropping\");\r\n    console.log(this.draggedData);\r\n    console.log(\"At index => \" + index);\r\n    event.preventDefault();\r\n    if (!this.isDraggable) {\r\n      return;\r\n    }\r\n    const draggedIndex = parseInt(event.dataTransfer?.getData('text/plain') || '', 10);\r\n    if (!isNaN(draggedIndex) && draggedIndex !== index && this.draggedData) {\r\n      this.draggedData.draggedToIndex = index;\r\n      this.draggedData.draggedToData = item;\r\n      this.onDragged.emit(this.draggedData);\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"row g-3 mb-4 align-items-center justify-content-between\">\r\n  <div class=\"col-auto\">\r\n    <h1 class=\"app-page-title mb-0\">{{ title }}</h1>\r\n  </div>\r\n  <div class=\"col-auto\">\r\n    <div class=\"page-utilities\">\r\n      <div class=\"row g-2 justify-content-start justify-content-md-end align-items-center\">\r\n        <div class=\"col-auto\" *ngIf=\"canSearch\">\r\n          <div class=\"table-search-form row gx-1 align-items-center\">\r\n            <div class=\"col-auto\">\r\n              <input type=\"text\" [(ngModel)]=\"searchText\" (ngModelChange)=\"filterData()\" id=\"search-orders\"\r\n                class=\"form-control search-orders\" placeholder=\"Search\" />\r\n            </div>\r\n            <div class=\"col-auto\">\r\n              <!-- <button (click)=\"filterData()\" class=\"btn app-btn-secondary\">\r\n                Search\r\n              </button> -->\r\n\r\n              <div class=\"btn-group\">\r\n                <button class=\"btn app-btn-secondary dropdown-toggle\" type=\"button\" id=\"dropdownMenuClickableInside\"\r\n                  data-bs-toggle=\"dropdown\" data-bs-auto-close=\"outside\" aria-expanded=\"false\">\r\n                  <i class=\"fas fa-filter\"></i>\r\n                </button>\r\n                <ul class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuClickableInside\">\r\n                  <li>\r\n                    <a class=\"dropdown-item\" *ngFor=\"let item of optionsToSelectForFiltering\">\r\n                      <input type=\"checkbox\" [(ngModel)]=\"item.filter\" (ngModelChange)=\"filterData()\" />\r\n                      {{ item.column.title }}\r\n                    </a>\r\n                  </li>\r\n                </ul>\r\n              </div>\r\n\r\n\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"col-auto\">\r\n          <button *ngIf=\"canSelect\" (click)=\"processSelectedItems()\" class=\"btn app-btn-secondary\">\r\n            {{ processSelectedTitle }}\r\n          </button>\r\n        </div>\r\n        <div class=\"col-auto\">\r\n          <a *ngIf=\"canAdd\" class=\"btn app-btn-primary\" [routerLink]=\"customAddUrl ?? '/' + baseUrl + '/add'\">\r\n            <span class=\"pe-2\">\r\n              <i class=\"fas fa-plus\"></i>\r\n            </span>\r\n            {{ addTitle }}\r\n          </a>\r\n        </div>\r\n        <div class=\"col-auto\" *ngFor=\"let actionButton of ActionButtons\">\r\n          <a class=\"btn pointer {{ actionButton.actionClass }}\" (click)=\"actionButton.onClick()\">\r\n            <div *ngIf=\"actionButton.actionIconHtml || actionButton.actionIcon\">\r\n              <span class=\"pe-2\" *ngIf=\"!actionButton.actionIconHtml; else htmIcon\">\r\n                <i class=\"{{ actionButton.actionIcon }}\"></i>\r\n              </span>\r\n              <ng-template #htmIcon>\r\n                <span [innerHTML]=\"actionButton.actionIconHtml\" class=\"pe-2\">\r\n                </span>\r\n              </ng-template>\r\n            </div>\r\n            {{ actionButton.actionTitle }}\r\n          </a>\r\n        </div>\r\n        <div *ngIf=\"canExportToPDF && printableColumns.length > 0\" class=\"col-auto\">\r\n          <button class=\"btn btn-success btn-block\" (click)=\"openPDF()\">\r\n            Export to PDF\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <!--//row-->\r\n    </div>\r\n    <!--//table-utilities-->\r\n  </div>\r\n  <!--//col-auto-->\r\n</div>\r\n<!--//row-->\r\n<!--//tab-content-->\r\n\r\n<div class=\"tab-content\">\r\n  <div class=\"tab-pane fade show active\" id=\"orders-all\" role=\"tabpanel\" aria-labelledby=\"orders-all-tab\">\r\n    <div class=\"app-card app-card-orders-table shadow-sm mb-5\">\r\n      <!-- <form [formGroup]=\"editingRoleForm\"> -->\r\n      <div class=\"app-card-body\">\r\n        <table class=\"table mb-0 text-left\" *ngIf=\"data.length > 0\">\r\n          <thead>\r\n            <tr>\r\n              <th class=\"cell\">#</th>\r\n              <th class=\"cell\" *ngIf=\"canSelect\">\r\n                <!-- <input\r\n                    type=\"checkbox\"\r\n                    name=\"selectAll\"\r\n                    [(ngModel)]=\"selectAll\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                    (click)=\"selectAllChanged()\"\r\n                  /> -->\r\n                <input type=\"checkbox\" name=\"selectAll\" [(ngModel)]=\"selectAll\" (click)=\"selectAllChanged()\" />\r\n              </th>\r\n              <th *ngFor=\"let column of columns\" class=\"cell\">\r\n                {{ column.title }}\r\n              </th>\r\n              <th class=\"cell\"></th>\r\n            </tr>\r\n          </thead>\r\n          <tbody>\r\n            <tr *ngFor=\"let item of data; let i = index\" [draggable]=\"isDraggable\"\r\n              (dragstart)=\"onDragStart($event, i, item)\" (drop)=\"onDrop($event, i, item)\"\r\n              (dragover)=\"onDragOver($event)\">\r\n              <td class=\"cell\" [class.new]=\"item.isNew\">\r\n                {{ i + 1 + currentPage * numberOfItemsPerPage }}\r\n              </td>\r\n              <td class=\"cell\" *ngIf=\"canSelect\">\r\n                <!-- <input\r\n                    type=\"checkbox\"\r\n                    [(ngModel)]=\"item.selected\"\r\n                    [ngModelOptions]=\"{ standalone: true }\"\r\n                  /> -->\r\n                <input type=\"checkbox\" [(ngModel)]=\"item.selected\" />\r\n              </td>\r\n              <td *ngFor=\"let column of columns\" class=\"cell\">\r\n                <!-- This div is for columns that have pure string or timestamp format -->\r\n                <div *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \">\r\n                  <!-- This div is for columns that have pure string format -->\r\n                  <div *ngIf=\"!column.isTimeStamp && !column.isDate\">\r\n                    <span *ngIf=\"!editing || !column.canEdit || editingIndex != i\">\r\n                      {{ item.body[column.columnName] }}\r\n                    </span>\r\n                    <span *ngIf=\"\r\n                        editInline &&\r\n                        editing &&\r\n                        column.canEdit &&\r\n                        editingIndex == i\r\n                      \">\r\n                      <!-- <bytepic-form-control-input\r\n                        [myFormControl]=\"\r\n                          getFormControl(\r\n                            column.columnName,\r\n                            item.body[column.columnName]\r\n                          )\r\n                        \"\r\n                      ></bytepic-form-control-input> -->\r\n                      <input type=\"text\" class=\"form-control\" [(ngModel)]=\"item.body[column.columnName]\" />\r\n                    </span>\r\n                  </div>\r\n\r\n                  <!-- This span is for columns that have timestamp format -->\r\n                  <span *ngIf=\"column.isTimeStamp || column.isDate\">\r\n                    <span *ngIf=\"\r\n                        item.body[column.columnName] != null &&\r\n                        item.body[column.columnName] != undefined\r\n                      \">\r\n                      {{\r\n                      dateFormateService.formatToDMY(item.body[column.columnName],column.isTimeStamp)\r\n                      }}\r\n                    </span>\r\n                    <span *ngIf=\"\r\n                        item.body[column.columnName] == null ||\r\n                        item.body[column.columnName] == undefined\r\n                      \">\r\n                      no date\r\n                    </span>\r\n                  </span>\r\n                </div>\r\n\r\n                <!-- This div is for columns that have html as data -->\r\n                <div *ngIf=\"\r\n                    column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \" [innerHTML]=\"item.body[column.columnName]\"></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as html string -->\r\n                <div *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    column.processInfoAndReturnHtmlData\r\n                  \" [innerHTML]=\"\r\n                    column.processInfoAndReturnHtmlData(\r\n                      item.body[column.columnName]\r\n                    )\r\n                  \"></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as pure string -->\r\n                <div *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \">\r\n                  {{\r\n                  column.processInfoAndReturnString(\r\n                  item.body[column.columnName]\r\n                  )\r\n                  }}\r\n                </div>\r\n              </td>\r\n              <!-- here we will use item.id to navigate -->\r\n              <td class=\"cell\">\r\n                <a *ngIf=\"canView\" class=\"btn btn-sm app-btn-primary pointer me-2\"\r\n                  routerLink=\"/{{ baseUrl }}/view/{{ item.id }}\">View</a>\r\n                <a *ngIf=\"editable\" class=\"btn btn-sm btn-success pointer me-2\"\r\n                  routerLink=\"/{{ baseUrl }}/edit/{{ item.id }}\">Edit</a>\r\n                <a *ngIf=\"editInline && !editing\" class=\"btn btn-sm btn-success pointer me-2\" (click)=\"editRow(i)\">{{\r\n                  editInlineTitle }}</a>\r\n                <a *ngIf=\"editInline && editing && editingIndex == i\" class=\"btn btn-sm btn-success pointer me-2\"\r\n                  (click)=\"saveInlineEditing(item)\">Save</a>\r\n                <a *ngIf=\"deleteAble\" (click)=\"delete(item.id)\" class=\"btn btn-sm btn-danger pointer\">Delete</a>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n      <!-- </form> -->\r\n      <!--//app-card-body-->\r\n    </div>\r\n    <div class=\"d-flex justify-content-center my-4 border border-primary\" *ngIf=\"data.length <= 0\">\r\n      <span class=\"py-4\"> No data to display </span>\r\n    </div>\r\n    <!--//app-card-->\r\n    <nav class=\"app-pagination\" *ngIf=\"data.length > 0 && pagesToView.length > 1\">\r\n      <ul class=\"pagination justify-content-center\" style=\"overflow-x: scroll;\">\r\n        <li class=\"page-item\" [ngClass]=\"{ disabled: 0 === currentPage || (selfProcessPagination && hasPrevious) }\">\r\n          <a class=\"page-link pointer\" (click)=\"changeCurrentPage(currentPage - 1, -1)\">\r\n            << </a>\r\n        </li>\r\n        <li class=\"page-item\" [ngClass]=\"{ disabled: 0 === currentPage || (selfProcessPagination && hasPrevious) }\">\r\n          <a class=\"page-link pointer\" (click)=\"changeCurrentPage(currentPage - 1)\">\r\n            < </a>\r\n        </li>\r\n        <li class=\"page-item\" [ngClass]=\"{ active: (item-1) === currentPage }\" *ngFor=\"let item of pagesToView\">\r\n          <a *ngIf=\"!selfProcessPagination\" class=\"page-link pointer\" (click)=\"changeCurrentPage(item-1)\">\r\n            {{ item }}\r\n          </a>\r\n        </li>\r\n        <li class=\"page-item\" *ngIf=\"selfProcessPagination\">\r\n          <a class=\"page-link pointer\">\r\n            {{ currentPage+1 }}\r\n          </a>\r\n        </li>\r\n        <li class=\"page-item\"\r\n          [ngClass]=\"{ disabled: pages.length - 1 === currentPage || (selfProcessPagination && hasNext) }\">\r\n          <a class=\"page-link pointer\" (click)=\"changeCurrentPage(currentPage + 1)\"> > </a>\r\n        </li>\r\n        <li class=\"page-item\"\r\n          [ngClass]=\"{ disabled: pages.length - 1 === currentPage || (selfProcessPagination && hasNext) }\">\r\n          <a class=\"page-link pointer\" (click)=\"changeCurrentPage(currentPage + 1, 1)\"> >> </a>\r\n        </li>\r\n      </ul>\r\n    </nav>\r\n    <!--//app-pagination-->\r\n  </div>\r\n  <!--//tab-pane-->\r\n</div>\r\n\r\n<div *ngIf=\"printing\">\r\n  printing the table below ...\r\n  <div class=\"app-card app-card-orders-table shadow-sm mb-5\">\r\n    <!-- <form [formGroup]=\"editingRoleForm\"> -->\r\n    <div class=\"app-card-body\">\r\n      <div class=\"table-responsive\" id=\"htmlData\">\r\n        <table class=\"table mb-0 text-left\" *ngIf=\"originalData.length > 0\">\r\n          <thead>\r\n            <tr>\r\n              <th *ngFor=\"let column of printableColumns\" class=\"cell\">\r\n                {{ column.title }}\r\n              </th>\r\n            </tr>\r\n          </thead>\r\n          <tbody>\r\n            <tr *ngFor=\"let item of originalData; let i = index\" class=\"new\">\r\n              <td *ngFor=\"let column of printableColumns\" class=\"cell\">\r\n                <!-- This div is for columns that have pure string or timestamp format -->\r\n                <div *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \">\r\n                  <!-- This div is for columns that have pure string format -->\r\n                  <div *ngIf=\"!column.isTimeStamp\">\r\n                    <span *ngIf=\"!editing || !column.canEdit || editingIndex != i\">\r\n                      {{ item.body[column.columnName] }}\r\n                    </span>\r\n                    <span *ngIf=\"\r\n                        editInline &&\r\n                        editing &&\r\n                        column.canEdit &&\r\n                        editingIndex == i\r\n                      \">\r\n                      <!-- <bytepic-form-control-input\r\n                        [myFormControl]=\"\r\n                          getFormControl(\r\n                            column.columnName,\r\n                            item.body[column.columnName]\r\n                          )\r\n                        \"\r\n                      ></bytepic-form-control-input> -->\r\n                      <input type=\"text\" class=\"form-control\" [(ngModel)]=\"item.body[column.columnName]\" />\r\n                    </span>\r\n                  </div>\r\n\r\n                  <!-- This span is for columns that have timestamp format -->\r\n                  <span *ngIf=\"column.isTimeStamp\">\r\n                    <span *ngIf=\"\r\n                        item.body[column.columnName] != null &&\r\n                        item.body[column.columnName] != undefined\r\n                      \">\r\n                      {{\r\n                      item.body[column.columnName].toDate() | date: \"d MMMM y\"\r\n                      }}\r\n                    </span>\r\n                    <span *ngIf=\"\r\n                        item.body[column.columnName] == null ||\r\n                        item.body[column.columnName] == undefined\r\n                      \">\r\n                      no date\r\n                    </span>\r\n                  </span>\r\n                </div>\r\n\r\n                <!-- This div is for columns that have html as data -->\r\n                <div *ngIf=\"\r\n                    column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \" [innerHTML]=\"item.body[column.columnName]\"></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as html string -->\r\n                <div *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    !column.processInfoAndReturnString &&\r\n                    column.processInfoAndReturnHtmlData\r\n                  \" [innerHTML]=\"\r\n                    column.processInfoAndReturnHtmlData(\r\n                      item.body[column.columnName]\r\n                    )\r\n                  \"></div>\r\n\r\n                <!-- This div is for columns that need to process and\r\n                  return output as pure string -->\r\n                <div *ngIf=\"\r\n                    !column.isPureHtml &&\r\n                    column.processInfoAndReturnString &&\r\n                    !column.processInfoAndReturnHtmlData\r\n                  \">\r\n                  {{\r\n                  column.processInfoAndReturnString(\r\n                  item.body[column.columnName]\r\n                  )\r\n                  }}\r\n                </div>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n      <!--//table-responsive-->\r\n    </div>\r\n    <!-- </form> -->\r\n    <!--//app-card-body-->\r\n  </div>\r\n\r\n  <!--//tab-pane-->\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BasicTableComponent } from './basic-table/basic-table.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    BasicTableComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    ReactiveFormsModule,\r\n    FormsModule,\r\n  ],\r\n  exports:[\r\n    BasicTableComponent\r\n  ]\r\n})\r\nexport class BytepicTablesModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'bytepic-footer',\r\n  templateUrl: './footer.component.html',\r\n  styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n  @Input() url = \"https://bytepic.web.app/\";\r\n  @Input() organizationName = \"Bytepic\";\r\n  @Input() purpose = \"simplifying development\";\r\n\r\n  @Input() customFooterText:string = '';\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<footer class=\"app-footer\">\r\n  <div class=\"container text-center py-3\">\r\n    <!--/* This template is free as long as you keep the footer attribution link. If you'd like to use the template without the attribution link, you can buy the commercial license via our website: themes.3rdwavemedia.com Thank you for your support. :) */-->\r\n    <small *ngIf=\"customFooterText == ''\" class=\"copyright\">Designed with <i class=\"fas fa-heart\" style=\"color: #fb866a;\"></i> by <a class=\"app-link\"\r\n        href=\"{{ url }}\" target=\"_blank\">{{ organizationName }}</a> for {{ purpose }} </small>\r\n\r\n    <small *ngIf=\"customFooterText != ''\" class=\"copyright\">{{ customFooterText }} </small>\r\n\r\n  </div>\r\n</footer>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { BytepicMenuItemModel } from '../../models/bytepic-menu-item-model';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\n\r\n@Component({\r\n  selector: 'bytepic-menu-item',\r\n  templateUrl: './menu-item.component.html',\r\n  styleUrls: ['./menu-item.component.scss']\r\n})\r\nexport class MenuItemComponent implements OnInit {\r\n\r\n  @Input() menuItemModel?: BytepicMenuItemModel;\r\n  @Input() subMenuItem: boolean = false;\r\n  menuClass: string = 'nav-link';\r\n  id: string = '';\r\n\r\n  constructor(private responsivenessService: BytepicResponsivenessService) {}\r\n\r\n  ngOnInit(): void {\r\n    if (this.subMenuItem) {\r\n      this.menuClass = 'submenu-link';\r\n    }\r\n    this.id = this.menuItemModel?.title.replace(' ', '-') ?? '';\r\n  }\r\n\r\n  onClick() {\r\n    if (window.innerWidth < 1200) {\r\n      this.responsivenessService.hideSidePanel();\r\n    }\r\n  }\r\n\r\n}\r\n","<a class=\"{{ menuClass }}\" (click)=\"onClick()\" [routerLink]=\"menuItemModel.path\" routerLinkActive=\"active\"\r\n  *ngIf=\"menuItemModel && !menuItemModel.children\">\r\n  <span class=\"nav-icon\" *ngIf=\"!subMenuItem\">\r\n    <i class=\"{{ menuItemModel.iconClass }} icon\"></i>\r\n  </span>\r\n  <span class=\"nav-link-text\">{{ menuItemModel.title }}</span>\r\n</a>\r\n\r\n<!-- If the Item has kids(Children) -->\r\n\r\n<a class=\"nav-link submenu-toggle\" href=\"#\" data-bs-toggle=\"collapse\" attr.data-bs-target=\"#{{ id }}\"\r\n  aria-expanded=\"false\" attr.aria-controls=\"{{ id }}\" *ngIf=\"menuItemModel && menuItemModel.children\">\r\n  <span class=\"nav-icon\">\r\n    <i class=\"{{ menuItemModel.iconClass }} icon\"></i>\r\n  </span>\r\n  <span class=\"nav-link-text\">{{ menuItemModel.title }}</span>\r\n  <span class=\"submenu-arrow\">\r\n    <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-chevron-down\" fill=\"currentColor\"\r\n      xmlns=\"http://www.w3.org/2000/svg\">\r\n      <path fill-rule=\"evenodd\"\r\n        d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\" />\r\n    </svg>\r\n  </span>\r\n  <!--//submenu-arrow-->\r\n</a>\r\n<!--//nav-link-->\r\n<div id=\"{{ id }}\" class=\"collapse submenu {{ id }}\" data-bs-parent=\"#menu-accordion\"\r\n  *ngIf=\"menuItemModel && menuItemModel.children\">\r\n  <ul class=\"submenu-list list-unstyled\">\r\n    <li class=\"submenu-item\" *ngFor=\"let subMenuItem of menuItemModel.children\">\r\n      <bytepic-menu-item [menuItemModel]=\"subMenuItem\" [subMenuItem]=\"true\"></bytepic-menu-item>\r\n    </li>\r\n  </ul>\r\n</div>\r\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { BytepicMenuItemModel } from '../../models/bytepic-menu-item-model';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\n\r\n@Component({\r\n  selector: 'bytepic-side-bar',\r\n  templateUrl: './side-bar.component.html',\r\n  styleUrls: ['./side-bar.component.scss']\r\n})\r\nexport class SideBarComponent implements OnInit {\r\n\r\n  sidePanelClass = 'sidepanel-visible';\r\n  subscription:any;\r\n\r\n  @Input() menuItems:BytepicMenuItemModel[]=[];\r\n\r\n  @Input() baseURL:string='';\r\n  @Input() dashboardURL:string='dashboard';\r\n\r\n  @Input() logoURL:string = 'assets/images/logo.png';\r\n\r\n  @Input() footer:BytepicMenuItemModel[]=[];\r\n\r\n  @HostListener('window:resize', ['$event'])\r\n  onResize(event: any) {\r\n    this.changeClass(window.innerWidth);\r\n  }\r\n\r\n  constructor(private responsivenessService: BytepicResponsivenessService) {}\r\n\r\n\r\n  ngOnInit(): void {\r\n    this.subscription = this.responsivenessService.sidePanelClass.subscribe(activeClass=>{\r\n      this.sidePanelClass = activeClass;\r\n    });\r\n\r\n    this.changeClass(window.innerWidth);\r\n  }\r\n\r\n  changeClass(width:number){\r\n    if(width>=1200){\r\n      this.responsivenessService.showSidePanel();\r\n    }else{\r\n      this.responsivenessService.hideSidePanel();\r\n    }\r\n  }\r\n\r\n  hideSidePane(){\r\n    this.responsivenessService.hideSidePanel();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscription?.unsubscribe();\r\n  }\r\n\r\n}\r\n","<div id=\"app-sidepanel\" class=\"app-sidepanel {{ sidePanelClass }}\">\r\n  <div id=\"sidepanel-drop\" class=\"sidepanel-drop\"></div>\r\n  <div class=\"sidepanel-inner d-flex flex-column\">\r\n    <a (click)=\"hideSidePane()\" id=\"sidepanel-close\" class=\"sidepanel-close d-xl-none pointer\">&times;</a>\r\n    <div class=\"app-branding\">\r\n      <a class=\"app-logo\" routerLink=\"/{{ baseURL }}/ {{ dashboardURL }}\"><img class=\"logo-icon me-2\" src=\"{{ logoURL }}\"\r\n          alt=\"logo\">\r\n          <span class=\"logo-text\">PORTAL</span>\r\n        </a>\r\n\r\n    </div>\r\n    <!--//app-branding-->\r\n\r\n    <nav id=\"app-nav-main\" class=\"app-nav app-nav-main flex-grow-1\">\r\n      <ul class=\"app-menu list-unstyled accordion\" id=\"menu-accordion\">\r\n        <li class=\"nav-item\" *ngFor=\"let menuItem of menuItems\">\r\n          <bytepic-menu-item [menuItemModel]=\"menuItem\"></bytepic-menu-item>\r\n        </li>\r\n        <!--//nav-item-->\r\n      </ul>\r\n      <!--//app-menu-->\r\n    </nav>\r\n    <!--//app-nav-->\r\n    <div class=\"app-sidepanel-footer\">\r\n      <nav class=\"app-nav app-nav-footer\">\r\n        <ul class=\"app-menu footer-menu list-unstyled\">\r\n          <li class=\"nav-item\" *ngFor=\"let menuItem of footer\">\r\n            <bytepic-menu-item [menuItemModel]=\"menuItem\"></bytepic-menu-item>\r\n          </li>\r\n        </ul>\r\n        <!--//footer-menu-->\r\n      </nav>\r\n    </div>\r\n    <!--//app-sidepanel-footer-->\r\n\r\n  </div>\r\n  <!--//sidepanel-inner-->\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BytepicResponsivenessService } from '../../services/bytepic-responsiveness.service';\r\n\r\n@Component({\r\n  selector: 'bytepic-top-bar',\r\n  templateUrl: './top-bar.component.html',\r\n  styleUrls: ['./top-bar.component.scss']\r\n})\r\nexport class TopBarComponent implements OnInit {\r\n\r\n  @Input() baseUrl:string=\"\";\r\n  @Input() profilePicUrl:any=null;\r\n  @Input() title:any=null;\r\n  @Input() logoURL:any=null;\r\n\r\n  @Input() showNotificationBell: boolean = false;\r\n  @Input() notificationUrl: string = '';\r\n  @Input() notificationCount: number = 0;\r\n\r\n  @Output() onLogout = new EventEmitter<string>();\r\n\r\n  constructor(private responsivenessService: BytepicResponsivenessService) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  showSideBar(){\r\n    this.responsivenessService.showSidePanel();\r\n  }\r\n\r\n  logout(){\r\n    this.onLogout.emit(\"logout\");\r\n  }\r\n\r\n}\r\n","<div class=\"app-header-inner\">\r\n  <div class=\"container-fluid py-2\">\r\n    <div class=\"app-header-content\">\r\n      <div class=\"row justify-content-between align-items-center\">\r\n        <div class=\"col-auto\">\r\n          <a\r\n            id=\"sidepanel-toggler\"\r\n            (click)=\"showSideBar()\"\r\n            class=\"sidepanel-toggler d-inline-block d-xl-none pointer\"\r\n          >\r\n            <svg\r\n              xmlns=\"http://www.w3.org/2000/svg\"\r\n              width=\"30\"\r\n              height=\"30\"\r\n              viewBox=\"0 0 30 30\"\r\n              role=\"img\"\r\n            >\r\n              <title>Menu</title>\r\n              <path\r\n                stroke=\"currentColor\"\r\n                stroke-linecap=\"round\"\r\n                stroke-miterlimit=\"10\"\r\n                stroke-width=\"2\"\r\n                d=\"M4 7h22M4 15h22M4 23h22\"\r\n              ></path>\r\n            </svg>\r\n          </a>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"search-mobile-trigger d-sm-none col\">\r\n          <!-- <i class=\"search-mobile-trigger-icon fas fa-search\"></i> -->\r\n          <h2 *ngIf=\"title && title != '' && title\">\r\n            {{ title }}\r\n          </h2>\r\n        </div>\r\n        <!--//col-->\r\n        <div class=\"app-search-box col\">\r\n          <h2 *ngIf=\"title && title != '' && title\">\r\n            {{ title }}\r\n          </h2>\r\n        </div>\r\n\r\n        <div class=\"app-utilities col-auto\">\r\n\r\n          <div *ngIf=\"showNotificationBell\" class=\"app-utility-item app-notifications-dropdown dropdown\">\r\n            <a\r\n              class=\"no-toggle-arrow\"\r\n              [routerLink]=\"notificationUrl\"\r\n              role=\"button\"\r\n              title=\"Notifications\"\r\n            >\r\n              <!--//Bootstrap Icons: https://icons.getbootstrap.com/ -->\r\n              <svg\r\n                width=\"1em\"\r\n                height=\"1em\"\r\n                viewBox=\"0 0 16 16\"\r\n                class=\"bi bi-bell icon\"\r\n                fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\"\r\n              >\r\n                <path d=\"M8 16a2 2 0 0 0 2-2H6a2 2 0 0 0 2 2z\" />\r\n                <path\r\n                  fill-rule=\"evenodd\"\r\n                  d=\"M8 1.918l-.797.161A4.002 4.002 0 0 0 4 6c0 .628-.134 2.197-.459 3.742-.16.767-.376 1.566-.663 2.258h10.244c-.287-.692-.502-1.49-.663-2.258C12.134 8.197 12 6.628 12 6a4.002 4.002 0 0 0-3.203-3.92L8 1.917zM14.22 12c.223.447.481.801.78 1H1c.299-.199.557-.553.78-1C2.68 10.2 3 6.88 3 6c0-2.42 1.72-4.44 4.005-4.901a1 1 0 1 1 1.99 0A5.002 5.002 0 0 1 13 6c0 .88.32 4.2 1.22 6z\"\r\n                />\r\n              </svg>\r\n              <span class=\"icon-badge\">{{ notificationCount }}</span>\r\n            </a>\r\n            <!--//dropdown-toggle-->\r\n          </div>\r\n          <!--//app-utility-item-->\r\n          <div class=\"app-utility-item\">\r\n            <a routerLink=\"/{{ baseUrl }}/settings\" title=\"Settings\">\r\n              <!--//Bootstrap Icons: https://icons.getbootstrap.com/ -->\r\n              <svg\r\n                width=\"1em\"\r\n                height=\"1em\"\r\n                viewBox=\"0 0 16 16\"\r\n                class=\"bi bi-gear icon\"\r\n                fill=\"currentColor\"\r\n                xmlns=\"http://www.w3.org/2000/svg\"\r\n              >\r\n                <path\r\n                  fill-rule=\"evenodd\"\r\n                  d=\"M8.837 1.626c-.246-.835-1.428-.835-1.674 0l-.094.319A1.873 1.873 0 0 1 4.377 3.06l-.292-.16c-.764-.415-1.6.42-1.184 1.185l.159.292a1.873 1.873 0 0 1-1.115 2.692l-.319.094c-.835.246-.835 1.428 0 1.674l.319.094a1.873 1.873 0 0 1 1.115 2.693l-.16.291c-.415.764.42 1.6 1.185 1.184l.292-.159a1.873 1.873 0 0 1 2.692 1.116l.094.318c.246.835 1.428.835 1.674 0l.094-.319a1.873 1.873 0 0 1 2.693-1.115l.291.16c.764.415 1.6-.42 1.184-1.185l-.159-.291a1.873 1.873 0 0 1 1.116-2.693l.318-.094c.835-.246.835-1.428 0-1.674l-.319-.094a1.873 1.873 0 0 1-1.115-2.692l.16-.292c.415-.764-.42-1.6-1.185-1.184l-.291.159A1.873 1.873 0 0 1 8.93 1.945l-.094-.319zm-2.633-.283c.527-1.79 3.065-1.79 3.592 0l.094.319a.873.873 0 0 0 1.255.52l.292-.16c1.64-.892 3.434.901 2.54 2.541l-.159.292a.873.873 0 0 0 .52 1.255l.319.094c1.79.527 1.79 3.065 0 3.592l-.319.094a.873.873 0 0 0-.52 1.255l.16.292c.893 1.64-.902 3.434-2.541 2.54l-.292-.159a.873.873 0 0 0-1.255.52l-.094.319c-.527 1.79-3.065 1.79-3.592 0l-.094-.319a.873.873 0 0 0-1.255-.52l-.292.16c-1.64.893-3.433-.902-2.54-2.541l.159-.292a.873.873 0 0 0-.52-1.255l-.319-.094c-1.79-.527-1.79-3.065 0-3.592l.319-.094a.873.873 0 0 0 .52-1.255l-.16-.292c-.892-1.64.902-3.433 2.541-2.54l.292.159a.873.873 0 0 0 1.255-.52l.094-.319z\"\r\n                />\r\n                <path\r\n                  fill-rule=\"evenodd\"\r\n                  d=\"M8 5.754a2.246 2.246 0 1 0 0 4.492 2.246 2.246 0 0 0 0-4.492zM4.754 8a3.246 3.246 0 1 1 6.492 0 3.246 3.246 0 0 1-6.492 0z\"\r\n                />\r\n              </svg>\r\n            </a>\r\n          </div>\r\n          <!--//app-utility-item-->\r\n\r\n          <div class=\"app-utility-item app-user-dropdown dropdown\">\r\n            <a\r\n              class=\"dropdown-toggle\"\r\n              id=\"user-dropdown-toggle\"\r\n              data-bs-toggle=\"dropdown\"\r\n              href=\"#\"\r\n              role=\"button\"\r\n              aria-expanded=\"false\"\r\n            >\r\n              <img\r\n                *ngIf=\"profilePicUrl != '' && profilePicUrl != null\"\r\n                src=\"{{ profilePicUrl }}\"\r\n                alt=\"user profile\"\r\n              />\r\n              <i\r\n                *ngIf=\"profilePicUrl == '' || profilePicUrl == null\"\r\n                class=\"fas fa-user-tie\"\r\n              ></i>\r\n            </a>\r\n            <ul class=\"dropdown-menu\" aria-labelledby=\"user-dropdown-toggle\">\r\n              <li>\r\n                <a class=\"dropdown-item\" routerLink=\"/{{ baseUrl }}/account\"\r\n                  >Account</a\r\n                >\r\n              </li>\r\n              <li>\r\n                <a class=\"dropdown-item\" routerLink=\"/{{ baseUrl }}/settings\"\r\n                  >Settings</a\r\n                >\r\n              </li>\r\n              <li>\r\n                <hr class=\"dropdown-divider\" />\r\n              </li>\r\n              <li>\r\n                <a class=\"dropdown-item pointer\" (click)=\"logout()\">Log Out</a>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n          <!--//app-user-dropdown-->\r\n        </div>\r\n        <!--//app-utilities-->\r\n      </div>\r\n      <!--//row-->\r\n    </div>\r\n    <!--//app-header-content-->\r\n  </div>\r\n  <!--//container-fluid-->\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MenuItemComponent } from './menu-item/menu-item.component';\r\nimport { SideBarComponent } from './side-bar/side-bar.component';\r\nimport { TopBarComponent } from './top-bar/top-bar.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    MenuItemComponent,\r\n    SideBarComponent,\r\n    TopBarComponent,\r\n    FooterComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n  ],\r\n  exports: [\r\n    MenuItemComponent,\r\n    SideBarComponent,\r\n    TopBarComponent,\r\n    FooterComponent\r\n  ]\r\n})\r\nexport class BytepicMenusModule { }\r\n","/*\r\n * Public API Surface of portal-library\r\n */\r\n\r\n// import { from } from 'rxjs';\r\n\r\nexport * from './lib/models/bytepic-menu-item-model';\r\nexport * from './lib/models/bytepic-document-card-model';\r\nexport * from './lib/models/bytepic-basic-table-data-model';\r\nexport * from './lib/models/bytepic-base-audit-model';\r\nexport * from './lib/models/bytepic-basic-table-colum-model';\r\nexport * from './lib/models/bytepic-form-control-input-model';\r\nexport * from './lib/models/bytepic-basic-table-action-model';\r\n\r\nexport * from './lib/services/bytepic-responsiveness.service';\r\nexport * from './lib/services/custom-pipes/date-formate.service';\r\n\r\nexport * from './lib/layouts/bytepic-layouts.module';\r\nexport * from './lib/layouts/fixed-nav-bars/bytepic-fixed-nav-bars.component';\r\nexport * from './lib/layouts/bytepic-top-bar-layout/bytepic-top-bar-layout.component'\r\n\r\n// export * from './lib/components/bytepic-line-chart/bytepic-line-chart.component';\r\n// export * from './lib/components/bytepic-bar-chart/bytepic-bar-chart.component';\r\n// export * from './lib/components/bytepic-doughnut-chart/bytepic-doughnut-chart.component';\r\n// export * from './lib/components/bytepic-radar-chart/bytepic-radar-chart.component';\r\n// export * from './lib/components/bytepic-pie-chart/bytepic-pie-chart.component';\r\n// export * from './lib/components/bytepic-polar-area-chart/bytepic-polar-area-chart.component';\r\n// export * from './lib/components/bytepic-bubble-chart/bytepic-bubble-chart.component';\r\n// export * from './lib/components/bytepic-scatter-chart/bytepic-scatter-chart.component';\r\nexport * from './lib/components/bytepic-document-card/bytepic-document-card.component';\r\nexport * from './lib/components/bytepic-footer/bytepic-footer.component';\r\nexport * from './lib/components/menu-item/bytepic-menu-item.component';\r\nexport * from './lib/components/bytepic-side-bar/bytepic-side-bar.component';\r\nexport * from './lib/components/bytepic-top-bar/bytepic-top-bar.component';\r\nexport * from './lib/components/user-profile/bytepic-user-profile.component';\r\nexport * from './lib/components/my-profile/bytepic-my-profile.component';\r\nexport * from './lib/components/mini-notice/bytepic-mini-notice.component';\r\nexport * from './lib/components/full-notice/bytepic-full-notice.component';\r\nexport * from './lib/components/bytepic-form-control-input-dynamic/bytepic-form-control-input-dynamic.component';\r\nexport * from './lib/components/bytepic-form-control-input/bytepic-form-control-input.component';\r\nexport * from './lib/components/explore/bytepic-explore.component';\r\nexport * from './lib/components/basic-user-account/bytepic-basic-user-account.component';\r\nexport * from './lib/components/basic-table/bytepic-basic-table.component';\r\nexport * from './lib/components/bytepic-generic-add-form/bytepic-generic-add-form.component';\r\nexport * from './lib/components/bytepic-generic-edit-form/bytepic-generic-edit-form.component';\r\nexport * from './lib/components/bytepic-stats-widget/bytepic-stats-widget.component';\r\n\r\nexport * from './lib/components/bytepic-components.module';\r\n\r\n// Pages from bytepic\r\nexport * from './lib/pages/bytepic-login-page/bytepic-login-page.component';\r\nexport * from './lib/pages/bytepic-register-page/bytepic-register-page.component';\r\nexport * from './lib/pages/bytepic-reset-password-page/bytepic-reset-password-page.component';\r\nexport * from './lib/pages/bytepic-confirm-email-page/bytepic-confirm-email-page.component';\r\nexport * from './lib/pages/bytepic-pages.module';\r\n\r\n\r\n\r\n// New modularized bytepic components...\r\n\r\n// Charts components\r\nexport * from './lib/bytepic-charts/bytepic-charts.module';\r\n\r\n// Forms components\r\nexport * from './lib/bytepic-forms/form-control-input/form-control-input.component';\r\nexport * from './lib/bytepic-forms/form-control-input-dynamic/form-control-input-dynamic.component';\r\nexport * from './lib/bytepic-forms/generic-add-form/generic-add-form.component';\r\nexport * from './lib/bytepic-forms/generic-edit-form/generic-edit-form.component';\r\nexport * from './lib/bytepic-forms/form/form.component';\r\nexport * from './lib/bytepic-forms/bytepic-forms.module';\r\n\r\n// Widgets components\r\nexport * from './lib/bytepic-widgets/basic-stats/basic-stats.component';\r\nexport * from './lib/bytepic-widgets/small-basic-stats/small-basic-stats.component';\r\nexport * from './lib/bytepic-widgets/bar-graph-stats/bar-graph-stats.component';\r\nexport * from './lib/bytepic-widgets/line-graph-stats/line-graph-stats.component';\r\nexport * from './lib/bytepic-widgets/bytepic-widgets.module';\r\n\r\n// Tables components\r\nexport * from './lib/bytepic-tables/basic-table/basic-table.component';\r\nexport * from './lib/bytepic-tables/bytepic-tables.module';\r\n\r\n// Menu components\r\nexport * from './lib/bytepic-menus/footer/footer.component';\r\nexport * from './lib/bytepic-menus/menu-item/menu-item.component';\r\nexport * from './lib/bytepic-menus/side-bar/side-bar.component';\r\nexport * from './lib/bytepic-menus/top-bar/top-bar.component';\r\nexport * from './lib/bytepic-menus/bytepic-menus.module';\r\n\r\n// Bytepic Components\r\nexport {BytepicExploreComponent} from './lib/bytepic-components/bytepic-explore/bytepic-explore.component';\r\nexport {BytepicFooterComponent} from './lib/bytepic-components/bytepic-footer/bytepic-footer.component';\r\nexport { BytepicComponentsModule } from './lib/bytepic-components/bytepic-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BytepicFooterComponent","BytepicExploreComponent","BytepicComponentsModule"],"mappings":"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"}