{"version":3,"file":"ngx-elvis-ds.mjs","sources":["../../../projects/ngx-elvis-ds/src/dist/lib/base/logger.ts","../../../projects/ngx-elvis-ds/src/dist/lib/base/base-class.ts","../../../projects/ngx-elvis-ds/src/dist/lib/base/base-component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/base/base-page.ts","../../../projects/ngx-elvis-ds/src/dist/lib/base/base-service.ts","../../../projects/ngx-elvis-ds/src/dist/lib/base/base-websocket.ts","../../../projects/ngx-elvis-ds/src/dist/lib/base/helpers.ts","../../../projects/ngx-elvis-ds/src/dist/lib/theme.service.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/brand-logo/brand-logo.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/brand-logo/brand-logo.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/button/button.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/button/button.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/toolbar/toolbar.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/toolbar/toolbar.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/toolbar-button/toolbar-button.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/toolbar-button/toolbar-button.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/item/item.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/item/item.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-basic/elvis-basic.module.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/form/form.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/form/form.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/input/input.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/input/input.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/select/select-dialog/select-dialog.page.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/select/select-dialog/select-dialog.page.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/select/select.component.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/select/select.component.html","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/select/select-dialog/select-dialog.module.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvis-forms/elvis-forms.module.ts","../../../projects/ngx-elvis-ds/src/dist/lib/elvisds.module.ts","../../../projects/ngx-elvis-ds/src/dist/ds.ts","../../../projects/ngx-elvis-ds/src/dist/ngx-elvis-ds.ts"],"sourcesContent":["import { isDevMode } from '@angular/core';\n\nexport class Logger {\n  constructor() { }\n\n  static info(...args) {\n    if (isDevMode()) { console.log(...args); }\n  }\n\n  static debug(...args) {\n    if (isDevMode()) { console.log(...args); }\n  }\n\n  static log(...args) {\n    if (isDevMode()) { console.log(...args); }\n  }\n\n  static warn(...args) {\n    if (isDevMode()) { console.warn(...args); }\n  }\n\n  static error(...args) {\n    if (isDevMode()) { console.error(...args); }\n  }\n}","\nimport { Logger } from './logger';\n\nexport class BaseClass {\n\n  constructor() {\n    Logger.debug(this);\n  }\n}\n","import { BaseClass } from './base-class';\n\nexport class BaseComponent extends BaseClass {\n\n  subscriptions: any = {};\n\n  constructor() {\n    super();\n  }\n}\n","import { BaseComponent } from './base-component';\n\nexport class BasePage extends BaseComponent {\n\n  constructor(\n  ) {\n    super();\n  }\n}\n","import { BaseClass } from './base-class';\nimport { Subject } from 'rxjs';\n\nexport class BaseService extends BaseClass {\n\n  events: Subject<string> = new Subject();\n  subscriptions: any = {};\n\n  constructor() {\n    super();\n  }\n}\n","import { BaseService } from './base-service';\n\nexport class BaseWebSocket extends BaseService {\n\n  socket: WebSocket;\n  maxSocketLifespan: number = 20 * 1000;\n\n  get status() {\n    if (this.socket) {\n      if (this.socket.CLOSED === 1 || this.socket.CLOSING === 1) {\n        return 'offline';\n      } else if (this.socket.CONNECTING === 1) {\n        return 'connecting';\n      } else if (this.socket.OPEN === 1) {\n        return 'online';\n      }\n    } else {\n      return 'offline';\n    }\n  }\n\n  constructor() {\n    super();\n  }\n\n  connect(address: string, useSSL: boolean = false) {\n    this.socket = new WebSocket(`${useSSL ? 'wss' : 'ws'}://${address}`);\n    this.socket.onopen = (e) => { this.onOpen(e); };\n    this.socket.onclose = (e) => { this.onClose(e); };\n    this.socket.onerror = (e) => { this.onError(e); };\n    this.socket.onmessage = (e) => { this.onMessage(e); };\n\n    setTimeout(() => {\n      if (this.socket.readyState !== 1) {\n        this.socket.close();\n      }\n    }, this.maxSocketLifespan);\n  }\n\n  onSend(message: any) { }\n  onError(err: any) { }\n  onMessage(event: any) { }\n  onOpen(event: any) { }\n  onClose(event: any) { }\n}\n","\n// elvispos\nexport class Helpers {\n\n  constructor(\n  ) {\n    // this.registerPrototypeMethods();\n  }\n\n  static hash(length = 10) {\n    let text = '';\n    const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n    let i = 0;\n    while (i < 10) {\n      text += possible.charAt(Math.floor(Math.random() * possible.length));\n      i++;\n    }\n    return text;\n  }\n\n  static hideScrollbars(elmt: any) {\n    const stylesheet = `\n      ::-webkit-scrollbar {\n        display: none;\n      }\n      ::-webkit-scrollbar-track {\n        display: none;\n      }\n      ::-webkit-scrollbar-thumb {\n        display: none;\n      }\n      ::-webkit-scrollbar-thumb:hover {\n        display: none;\n      }\n    `;\n\n    const styleElmt = elmt.shadowRoot.querySelector('style');\n\n    if (styleElmt) {\n      styleElmt.append(stylesheet);\n    } else {\n      const barStyle = document.createElement('style');\n      barStyle.append(stylesheet);\n      elmt.shadowRoot.appendChild(barStyle);\n    }\n  }\n\n  static styleScrollbars(elmt: any) {\n    const stylesheet = `\n      ::-webkit-scrollbar {\n        width: 30px;\n      }\n      ::-webkit-scrollbar-track {\n        background: #666677;\n      }\n      ::-webkit-scrollbar-thumb {\n        border-radius: 1rem;\n        background: linear-gradient(var(--ion-color-light-tint), var(--ion-color-light));\n        border: 4px solid #666677;\n      }\n      ::-webkit-scrollbar-thumb:hover {\n      }\n    `;\n\n    const styleElmt = elmt.shadowRoot.querySelector('style');\n\n    if (styleElmt) {\n      styleElmt.append(stylesheet);\n    } else {\n      const barStyle = document.createElement('style');\n      barStyle.append(stylesheet);\n      elmt.shadowRoot.appendChild(barStyle);\n    }\n  }\n\n\n  static getURLParam(parameterName) {\n    let result = null;\n    let tmp = [];\n\n    location.search.substr(1).split('&').forEach((item) => {\n      tmp = item.split('=');\n      if (tmp[0] === parameterName) { result = decodeURIComponent(tmp[1]); }\n    });\n\n    return result;\n  }\n\n  static getEntityImageFolder(entity, filename) {\n    switch (entity) {\n      case 'info-dialog':\n        const gloryMatch = filename.match(/(rbw100|rcw100|rz50).*.gif/gi);\n        if (gloryMatch && gloryMatch[0]) { return { entity: 'glory', filename: gloryMatch[0] }; }\n        return { entity, filename };\n      default:\n        return { entity, filename };\n    }\n  }\n\n  static imageUrl(entity, filename, config, baseFolder = 'imgs') {\n    let imageUrl;\n\n    const entityOpts = Helpers.getEntityImageFolder(entity, filename);\n    const path = entityOpts.entity;\n    const file = entityOpts.filename;\n\n    if (entity && filename && config) {\n      if (filename.indexOf('http') === -1 || filename.substr(-4).toLowerCase() === '.gif') {\n        if (!config.assetsSettings.address) {\n          imageUrl = `assets/${baseFolder}/${path}/${file}`;\n        } else {\n          imageUrl = `${config.assetsSettings.address}/assets/${baseFolder}/${path}/${file}`;\n        }\n        return imageUrl;\n      } else {\n        return filename;\n      }\n    } else {\n      return '#';\n    }\n  }\n\n  //   //t = current time\n  //   //b = start value\n  //   //c = change in value\n  //   //d = duration\n  //   easeInOutQuad(t, b, c, d) {\n  //     t /= d / 2;\n  //     if (t < 1) return c / 2 * t * t + b;\n  //     t--;\n  //     return -c / 2 * (t * (t - 2) - 1) + b;\n  //   }\n\n  //   scrollTo(element, to, duration) {\n  //     var start = element.scrollTop,\n  //       change = to - start,\n  //       currentTime = 0,\n  //       increment = 20;\n\n  //     let animateScroll = () => {\n  //       currentTime += increment;\n  //       var val = this.easeInOutQuad(currentTime, start, change, duration);\n  //       element.scrollTop = val;\n  //       if (currentTime < duration) {\n  //         setTimeout(animateScroll, increment);\n  //       }\n  //     };\n  //     animateScroll();\n  //   }\n\n  //   splice(str, index, count, add) {\n  //     return str.slice(0, index) + (add || \"\") + str.slice(index + count);\n  //   }\n\n  static fireEvent(node, eventName) {\n    // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\n    let doc;\n\n    if (node.ownerDocument) {\n      doc = node.ownerDocument;\n    } else if (node.nodeType === 9) {\n      // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\n      doc = node;\n    } else {\n      throw new Error('Invalid node passed to fireEvent: ' + node.id);\n    }\n\n    if (node.dispatchEvent) {\n      // Gecko-style approach (now the standard) takes more work\n      let eventClass = '';\n\n      // Different events have different event classes.\n      // If this switch statement can't map an eventName to an eventClass,\n      // the event firing is going to fail.\n      switch (eventName) {\n        case 'click': // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\n        case 'mousedown':\n        case 'mouseup':\n          eventClass = 'MouseEvents';\n          break;\n        case 'focus':\n        case 'change':\n        case 'blur':\n        case 'select':\n          eventClass = 'HTMLEvents';\n          break;\n        default:\n          throw new Error('fireEvent: Couldn\\'t find an event class for event \\'' + eventName + '\\'.');\n      }\n      const event = doc.createEvent(eventClass);\n\n      const bubbles = eventName === 'change' ? false : true;\n      event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\n\n      event.synthetic = true; // allow detection of synthetic events\n      node.dispatchEvent(event, true);\n    } else if (node.fireEvent) {\n      // IE-old school style\n      const event = doc.createEventObject();\n      event.synthetic = true; // allow detection of synthetic events\n      node.fireEvent('on' + eventName, event);\n    }\n  }\n\n\n  static numberToHuman(val: number): number {\n    return (val / 100);\n  }\n\n  static numberRoundDecimals(val: number, decimals: number): number {\n    return Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);\n  }\n\n  static priceToFloat(val: string): number {\n    return parseFloat(val.replace(',', '.'));\n  }\n\n  //   computeTotal(number) {\n  //     return number.split(' ')[0].replace(',', '.');\n  //   }\n\n  //   computeTotalDiscount(number) {\n  //     return number.split(' ')[2].replace(',', '.');\n  //   }\n\n  //   numberRound(number, decimals) {\n  //     return Number(Math.round(Number(number + 'e' + decimals)) + 'e-' + decimals);\n  //   }\n\n  //   isResponsive() {\n  //     return window.innerWidth < 680\n  //   }\n\n\n\n  static flatten(arr) {\n    const a = arr.reduce((flat, toFlatten) => {\n      const b = flat.concat(Array.isArray(toFlatten) ? Helpers.flatten(toFlatten) : toFlatten);\n      return b;\n    }, []);\n    return a;\n  }\n\n  // private registerPrototypeMethods() {\n  //   if (typeof (String.prototype.trim) === 'undefined') {\n  //     String.prototype.trim = () => String(this).replace(/^\\s+|\\s+$/g, '');\n  //   }\n  // }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Subject } from 'rxjs';\n\nimport Color from 'color';\n\nimport { Theme } from './theme';\nimport { BaseService } from './base/base-service';\nimport { Logger } from './base/logger';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ThemeService extends BaseService {\n\n  \n  // misc\n  events: Subject<any> = new Subject();\n  private guiScale = 1;\n\n  get GUIScale() {\n    return this.guiScale;\n  }\n\n  set GUIScale(newScale: number) {\n    if (newScale > 0 && newScale <= 1) {\n      document.body.style.setProperty('--elv-gui-scale', `${newScale}`);\n      this.guiScale = newScale;\n    } else {\n      Logger.warn('Scale not Valid!');\n    }\n  }\n\n  // class\n  private filename = 'assets/themes.json';\n\n  // themes\n  private themes: object = {};\n\n  private activeTheme: Theme = {\n    name: 'default',\n    brand: 'ElvisPOS',\n    brandLogo: 'assets/logos/elvispos.png',\n    colors: {\n      primary: '#505963',\n      secondary: '#667380',\n      tertiary: '#3179D7',\n      success: '#9ACD32',\n      warning: '#FF7000',\n      danger: '#DC143C',\n      dark: '#22262B',\n      medium: '#989AA2',\n      light: '#EFEFEF'\n    }\n  };\n\n  public get currentTheme(): Theme {\n    return this.activeTheme;\n  }\n\n  constructor(\n    private http: HttpClient\n  ) {\n    super();\n  }\n\n  public getBrandLogoSize(minHeight: number = 60) {\n    if (this.currentTheme.brandLogoSize) {\n      return this.currentTheme.brandLogoSize;\n    } else {\n      return this.sizeWithScale(minHeight) + 'px';\n    }\n  }\n\n  public apply(themeName: string = 'default'): void {\n    if (!this.themes[themeName]) {\n      themeName = 'default';\n    }\n\n    this.applyTheme(this.themes[themeName]);\n    console.log(`[ThemesService] Theme '${themeName}' applied!`);\n  }\n\n  public load(): Promise<Theme[]> {\n    return new Promise((resolve, reject) => {\n      this.http.get(this.filename).subscribe(\n        (themes: Theme[]) => {\n          for (const theme of themes) { this.themes[theme.name] = theme; }\n          resolve(themes);\n        },\n        (err) => {\n          Logger.error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');\n          Logger.error('!!    NO THEMES FILE FOUND     !!');\n          Logger.error(err.message);\n          Logger.error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');\n          resolve([]);\n        }\n      );\n    });\n  }\n\n  sizeWithScale(size: number, minSize?: number): number {\n    const newSize = Math.round(size * this.guiScale);\n    if (minSize && newSize < minSize) {\n      return minSize;\n    }\n    return newSize;\n  }\n\n  // private\n\n  private applyTheme(theme: Theme) {\n    this.resetThemeVariables();\n\n    // Ionic Colors\n    for (const colorKey of Object.keys(theme.colors)) {\n      const color = Color(theme.colors[colorKey]);\n      \n      const contrastColor = Color(\n        color.isDark() ? Color(theme.colors.light).lighten(0.15).hex() : Color(theme.colors.dark).darken(0.15).hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-highlight`,\n        color.lighten(0.5).hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-active`,\n        color.darken(0.3).hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}`,\n        Color(theme.colors[colorKey]).hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-rgb`,\n        Color(theme.colors[colorKey]).rgb().string().replace('rgb(', '').replace(')', '')\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-contrast`,\n        contrastColor.hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-contrast-rgb`,\n        contrastColor.rgb().string().replace('rgb(', '').replace(')', '')\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-shade`,\n        Color(theme.colors[colorKey]).darken(0.15).hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-shade-rgb`,\n        Color(theme.colors[colorKey]).darken(0.15).rgb().string().replace('rgb(', '').replace(')', '')\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-tint`,\n        Color(theme.colors[colorKey]).lighten(0.15).hex()\n      );\n\n      this.setCSSVar(\n        `--ion-color-${colorKey}-tint-rgb`,\n        Color(theme.colors[colorKey]).lighten(0.15).rgb().string().replace('rgb(', '').replace(')', '')\n      );\n    }\n\n    for (let index = 1; index < 20; index++) {\n      const light = Color(theme.colors.light);\n      const dark = Color(theme.colors.dark);\n\n      this.setCSSVar(\n        `--ion-color-step-${index * 50}`,\n        light.mix(dark, (5 * index) / 100).hex()\n      );\n    }\n\n    // Set Active Theme\n    this.activeTheme = theme;\n    this.events.next();\n  }\n\n  private resetThemeVariables() {\n    const propsToRemove = [];\n    for (const prop of Object.keys(document.body.style)) {\n      if (Number.isInteger(parseInt(prop, 0))) { propsToRemove.push(document.body.style[prop]); }\n    }\n    for (const prop of propsToRemove) {\n      document.body.style.removeProperty(prop);\n    }\n  }\n\n  private setCSSVar(key, val) {\n    document.body.style.setProperty(key, val);\n  }\n}\n","import { Component, Input, OnInit, ViewChild, ElementRef } from '@angular/core';\n\nimport { ThemeService } from '../../theme.service';\n\n@Component({\n  selector: 'elv-brand-logo',\n  templateUrl: './brand-logo.component.html',\n  styleUrls: ['./brand-logo.component.scss']\n})\nexport class BrandLogoComponent implements OnInit {\n\n  @ViewChild('logo', { static: true }) logo: ElementRef;\n  @Input() label: string;\n  @Input() image: string;\n  @Input() mode: string;\n  @Input() size: string;\n\n  constructor(private themeSvc: ThemeService) { }\n\n  ngOnInit() {\n    this.styleInit();\n    this.themeSvc.events.subscribe(() => { this.styleInit(); });\n  }\n\n  private styleInit() {\n    if (this.size) {\n      this.logo.nativeElement.style.setProperty('--elv-font-size', this.size);\n    }\n  }\n}\n","<div id=\"logo\" #logo>\n  <h1 *ngIf=\"label && !image\" [attr.content]=\"label\" [class]=\"mode\">{{label}}</h1>\n  <div class=\"img-container\" *ngIf=\"image\">\n    <img [src]=\"image\" />\n  </div>\n</div>\n","import { Component, OnInit, Input, ViewChild, ElementRef, OnChanges } from '@angular/core';\n\nimport { ThemeService } from '../../theme.service';\n\n@Component({\n  selector: 'elv-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n\n  @ViewChild('button', { static: true }) button: ElementRef;\n  @Input() color: string = 'primary';\n  @Input() theme: string;\n  @Input() height: number;\n  @Input() iconWidth: number;\n  @Input() isButton: boolean;\n\n  @Input() icon: string;\n  iconType: string;\n  @Input() iconBadge: string;\n  @Input() label: string;\n  @Input() subLabel: string;\n  @Input() badge: string;\n  @Input() detail: boolean;\n  @Input() disabled: boolean;\n\n  constructor( private themeSvc: ThemeService ) { }\n\n  ngOnChanges() {\n    this.styleInit();\n  }\n\n  ngOnInit() {\n    this.styleInit(true);\n    this.themeSvc.events.subscribe(() => { this.styleInit(); });\n  }\n\n  // private\n\n  \n  private styleInit(setDefaults: boolean = false) {\n    const pathRegexp = new RegExp(/^([A-z0-9-_+]+\\/)*([A-z0-9-]+\\.(svg))$/gm);\n\n    if (this.icon) {\n      if (this.icon.substr(0, 3) === 'fas') {\n        this.iconType = 'fas';\n      } else if (pathRegexp.test(this.icon)) {\n        this.iconType = 'src';\n      } else {\n        this.iconType = 'ion';\n      }\n    }\n\n    if (this.height) {\n      this.button.nativeElement.style.setProperty('--elv-height', `${this.height}px`);\n      this.button.nativeElement.style.setProperty('--elv-icon-width', `${this.height}px`);\n    }\n\n    if (this.iconWidth) {\n      this.button.nativeElement.style.setProperty('--elv-icon-width', `${this.iconWidth}px`);\n    }\n\n    if (this.color) {\n      this.button.nativeElement.style.setProperty('--color', `var(--ion-color-${this.color}-contrast)`);\n      this.button.nativeElement.style.setProperty('--elv-color', `var(--ion-color-${this.color})`);\n      this.button.nativeElement.style.setProperty('--elv-color-rgb', `var(--ion-color-${this.color}-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-tint', `var(--ion-color-${this.color}-tint)`);\n      this.button.nativeElement.style.setProperty('--elv-color-tint-rgb', `var(--ion-color-${this.color}-tint-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-shade', `var(--ion-color-${this.color}-shade)`);\n      this.button.nativeElement.style.setProperty('--elv-color-shade-rgb', `var(--ion-color-${this.color}-shade-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-contrast', `var(--ion-color-${this.color}-contrast)`);\n      this.button.nativeElement.style.setProperty('--elv-color-contrast-rgb', `var(--ion-color-${this.color}-contrast-rgb)`);\n    }\n  }\n}\n","<button #button class=\"ion-activatable\" [disabled]=\"disabled\">\n  <ion-ripple-effect></ion-ripple-effect>\n  <div id=\"icon-container\" [class.icon-only]=\"(icon || iconBadge) && !label\" *ngIf=\"icon || iconBadge\">\n    <ion-icon [name]=\"icon\" *ngIf=\"iconType === 'ion' && !iconBadge\"></ion-icon>\n    <ion-icon [src]=\"icon\" *ngIf=\"iconType === 'src' && !iconBadge\"></ion-icon>\n    <i *ngIf=\"iconType === 'fas' && !iconBadge\" [class]=\"icon\"></i>\n    <ion-badge *ngIf=\"iconBadge != undefined && iconBadge != null\" [color]=\"color\">{{iconBadge}}</ion-badge>\n  </div>\n  <ion-label [class.padding]=\"!icon && !detail\" *ngIf=\"label\">\n    <h2>{{label}}<small *ngIf=\"subLabel\"> {{subLabel}}</small></h2>\n  </ion-label>\n  <ion-badge class=\"end\" *ngIf=\"badge\" [color]=\"color\">{{badge}}</ion-badge>\n  <div id=\"detail-container\" *ngIf=\"detail\">\n    <ion-icon name=\"arrow-forward\" mode=\"ios\"></ion-icon>\n  </div>\n</button>","import { Component, OnInit, Input, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'elv-toolbar',\n  templateUrl: './toolbar.component.html',\n  styleUrls: ['./toolbar.component.scss']\n})\nexport class ToolbarComponent implements OnInit {\n\n  @ViewChild('toolbar', { static: true }) toolbar: any;\n  @Input() color: string;\n  @Input() mode: string = 'ios';\n  @Input() height: number;\n  @Input() pad: string;\n\n  constructor() { }\n\n  ngOnInit() {\n    if (this.height) { \n      this.toolbar.el.style.setProperty('--min-height', this.height + 'px');\n    }\n    if (this.pad) {\n      this.toolbar.el.style.setProperty('--padding-top', this.pad + 'px');\n      this.toolbar.el.style.setProperty('--padding-bottom', this.pad + 'px');\n      this.toolbar.el.style.setProperty('--padding-start', this.pad + 'px');\n      this.toolbar.el.style.setProperty('--padding-end', this.pad + 'px');\n    }\n  }\n}\n","<ion-toolbar id=\"toolbar\" #toolbar [color]=\"color\" [mode]=\"mode\">\n  <ng-content></ng-content>\n</ion-toolbar>","import { Component, OnInit, ViewChild, ElementRef, Input, OnChanges } from '@angular/core';\nimport { ThemeService } from '../../theme.service';\n\n@Component({\n  selector: 'elv-toolbar-button',\n  templateUrl: './toolbar-button.component.html',\n  styleUrls: ['./toolbar-button.component.scss'],\n})\nexport class ToolbarButtonComponent implements OnInit, OnChanges {\n\n  @ViewChild('button', { static: true }) button: ElementRef;\n  @Input() color: string = 'light';\n  @Input() mode: string;\n  @Input() height: number;\n  @Input() width: number;\n\n  @Input() icon: string;\n  iconType: string;\n  @Input() label: string;\n  @Input() badge: string;\n  @Input() disabled: boolean;\n  @Input() readonly: boolean;\n\n  constructor(private themeSvc: ThemeService) { }\n\n  ngOnChanges() {\n    this.styleInit();\n  }\n\n  ngOnInit() {\n    this.styleInit(true);\n    this.themeSvc.events.subscribe(() => { this.styleInit(); });\n  }\n\n  // private\n\n  private styleInit(setDefaults: boolean = false) {\n    const pathRegexp = new RegExp(/^([A-z0-9-_+]+\\/)*([A-z0-9-]+\\.(svg))$/gm);\n\n    if (this.icon) {\n      if (this.icon.substr(0,3) === 'fas') {\n        this.iconType = 'fas';\n      } else if (pathRegexp.test(this.icon)) {\n        this.iconType = 'src';\n      } else {\n        this.iconType = 'ion';\n      }\n    }\n\n    if (this.height) {\n      this.button.nativeElement.style.setProperty('--elv-height', `${this.height}px`);\n      this.button.nativeElement.style.setProperty('--elv-width', `${this.height}px`);\n    }\n\n    if (this.width) {\n      this.button.nativeElement.style.setProperty('--elv-width', `${this.width}px`);\n    }\n    \n    if (this.label && !this.icon) {\n      this.button.nativeElement.style.setProperty('--elv-width', `100%`);\n      this.button.nativeElement.style.setProperty('--padding-start', `1rem`);\n      this.button.nativeElement.style.setProperty('--padding-end', `1rem`);\n    }\n\n    if (this.color) {\n      this.button.nativeElement.style.setProperty('--background-color', `transparent`);\n\n      this.button.nativeElement.style.setProperty('--color', `var(--ion-color-${this.color}-contrast)`);\n      this.button.nativeElement.style.setProperty('--elv-color', `var(--ion-color-${this.color})`);\n      this.button.nativeElement.style.setProperty('--elv-color-rgb', `var(--ion-color-${this.color}-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-tint', `var(--ion-color-${this.color}-tint)`);\n      this.button.nativeElement.style.setProperty('--elv-color-tint-rgb', `var(--ion-color-${this.color}-tint-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-shade', `var(--ion-color-${this.color}-shade)`);\n      this.button.nativeElement.style.setProperty('--elv-color-shade-rgb', `var(--ion-color-${this.color}-shade-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-contrast', `var(--ion-color-${this.color}-contrast)`);\n      this.button.nativeElement.style.setProperty('--elv-color-contrast-rgb', `var(--ion-color-${this.color}-contrast-rgb)`);\n    }\n    \n    if (this.mode === 'fill') {\n      this.button.nativeElement.style.setProperty('--background-color', `var(--ion-color-${this.color})`);\n      \n      this.button.nativeElement.style.setProperty('--color', `var(--ion-color-light-contrast)`);\n      this.button.nativeElement.style.setProperty('--elv-color', `var(--ion-color-light)`);\n      this.button.nativeElement.style.setProperty('--elv-color-rgb', `var(--ion-color-light-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-tint', `var(--ion-color-light-tint)`);\n      this.button.nativeElement.style.setProperty('--elv-color-tint-rgb', `var(--ion-color-light-tint-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-shade', `var(--ion-color-light-shade)`);\n      this.button.nativeElement.style.setProperty('--elv-color-shade-rgb', `var(--ion-color-light-shade-rgb)`);\n      this.button.nativeElement.style.setProperty('--elv-color-contrast', `var(--ion-color-light-contrast)`);\n      this.button.nativeElement.style.setProperty('--elv-color-contrast-rgb', `var(--ion-color-light-contrast-rgb)`);\n    }\n  }\n\n}\n","<button #button class=\"ion-activatable\" [class.auto-size]=\"icon && label\" [disabled]=\"disabled\">\n  <ion-ripple-effect *ngIf=\"!readonly\"></ion-ripple-effect>\n  <ion-icon [name]=\"icon\" *ngIf=\"iconType === 'ion'\"></ion-icon>\n  <ion-icon [src]=\"icon\" *ngIf=\"iconType === 'src'\"></ion-icon>\n  <i *ngIf=\"iconType === 'fas'\" [class]=\"icon\"></i>\n  <ion-text *ngIf=\"label\">{{label}}</ion-text>\n  <ion-badge *ngIf=\"badge\" color=\"danger\">{{badge}}</ion-badge>\n</button>","import { Component, OnInit, Input, ViewChild, ElementRef, OnChanges } from '@angular/core';\n\nimport { ThemeService } from '../../theme.service';\n\n@Component({\n  selector: 'elv-item',\n  templateUrl: './item.component.html',\n  styleUrls: ['./item.component.scss']\n})\nexport class ItemComponent implements OnInit, OnChanges {\n\n  @ViewChild('item', { static: true }) item: ElementRef;\n  @Input() color: string = 'primary';\n  @Input() theme: string;\n  @Input() height: number;\n  @Input() iconWidth: number;\n  @Input() isButton: boolean;\n\n  @Input() icon: string;\n  iconType: string;\n  @Input() iconBadge: string;\n  @Input() label: string;\n  @Input() subLabel: string;\n  @Input() badge: string;\n\n  constructor( private themeSvc: ThemeService ) { }\n\n  ngOnChanges() {\n    this.styleInit();\n  }\n\n  ngOnInit() {\n    this.styleInit(true);\n    this.themeSvc.events.subscribe(() => { this.styleInit(); });\n  }\n\n  // private\n\n  private styleInit(setDefaults: boolean = false) {\n    const pathRegexp = new RegExp(/^([A-z0-9-_+]+\\/)*([A-z0-9-]+\\.(svg))$/gm);\n    \n    if (this.icon) {\n      if (this.icon.substr(0, 3) === 'fas') {\n        this.iconType = 'fas';\n      } else if (pathRegexp.test(this.icon)) {\n        this.iconType = 'src';\n      } else {\n        this.iconType = 'ion';\n      }\n    }\n\n    if (this.height) {\n      this.item.nativeElement.style.setProperty('--elv-height', `${this.height}px`);\n      this.item.nativeElement.style.setProperty('--elv-icon-width', `${this.height}px`);\n    }\n\n    if (this.iconWidth) {\n      this.item.nativeElement.style.setProperty('--elv-icon-width', `${this.iconWidth}px`);\n    }\n\n    if (this.color) {\n      this.item.nativeElement.style.setProperty('--color', `var(--ion-color-${this.color}-contrast)`);\n      this.item.nativeElement.style.setProperty('--elv-color', `var(--ion-color-${this.color})`);\n      this.item.nativeElement.style.setProperty('--elv-color-rgb', `var(--ion-color-${this.color}-rgb)`);\n      this.item.nativeElement.style.setProperty('--elv-color-tint', `var(--ion-color-${this.color}-tint)`);\n      this.item.nativeElement.style.setProperty('--elv-color-tint-rgb', `var(--ion-color-${this.color}-tint-rgb)`);\n      this.item.nativeElement.style.setProperty('--elv-color-shade', `var(--ion-color-${this.color}-shade)`);\n      this.item.nativeElement.style.setProperty('--elv-color-shade-rgb', `var(--ion-color-${this.color}-shade-rgb)`);\n      this.item.nativeElement.style.setProperty('--elv-color-contrast', `var(--ion-color-${this.color}-contrast)`);\n      this.item.nativeElement.style.setProperty('--elv-color-contrast-rgb', `var(--ion-color-${this.color}-contrast-rgb)`);\n    }\n  }\n}\n","<div id=\"item\" #item>\n  <div id=\"icon-container\" [class.icon-only]=\"(icon || iconBadge) && !label\" *ngIf=\"icon || iconBadge\">\n    <ion-icon [name]=\"icon\" *ngIf=\"iconType === 'ion' && !iconBadge\"></ion-icon>\n    <ion-icon [src]=\"icon\" *ngIf=\"iconType === 'src' && !iconBadge\"></ion-icon>\n    <i *ngIf=\"iconType === 'fas'\" [class]=\"icon\"></i>\n    <ion-badge *ngIf=\"iconBadge != undefined && iconBadge != null\" [color]=\"color\">{{iconBadge}}</ion-badge>\n  </div>\n  <ion-label [class.padding]=\"!icon\" *ngIf=\"label\">\n    <h2>{{label}}<small *ngIf=\"subLabel\"> {{subLabel}}</small></h2>\n  </ion-label>\n  <ion-badge class=\"end\" *ngIf=\"badge\" [color]=\"color\">{{badge}}</ion-badge>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\n\nimport { BrandLogoComponent } from './brand-logo/brand-logo.component';\nimport { ButtonComponent } from './button/button.component';\nimport { ToolbarComponent } from './toolbar/toolbar.component';\nimport { ToolbarButtonComponent } from './toolbar-button/toolbar-button.component';\nimport { ItemComponent } from './item/item.component';\n\n\n@NgModule({\n  declarations: [\n    BrandLogoComponent,\n    ButtonComponent,\n    ItemComponent,\n    ToolbarComponent,\n    ToolbarButtonComponent\n  ],\n  imports: [\n    CommonModule,\n    IonicModule\n  ],\n  exports: [\n    BrandLogoComponent,\n    ButtonComponent,\n    ItemComponent,\n    ToolbarComponent,\n    ToolbarButtonComponent\n  ]\n})\nexport class ElvisBasicModule { }\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { BaseComponent } from '../../base/base-component';\n\n@Component({\n  selector: 'elv-form',\n  templateUrl: './form.component.html',\n  styleUrls: ['./form.component.scss']\n})\nexport class FormComponent extends BaseComponent {\n\n  @Input() name: string = 'formName';\n  @Output() submit: EventEmitter<any> = new EventEmitter();\n\n  constructor() {\n    super();\n  }\n\n  onSubmit() {\n    this.submit.emit();\n  }\n}\n","<form #f=\"ngForm\" novalidate id=\"form\" [name]=\"name\" (ngSubmit)=\"onSubmit()\">\n  <ng-content></ng-content>\n</form>","// lib\nimport { Component, OnInit, Input, forwardRef, ViewChild, ElementRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Helpers } from '../../base/helpers';\n\n// elvispos\n\n@Component({\n  selector: 'elv-input',\n  templateUrl: './input.component.html',\n  styleUrls: ['./input.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => InputComponent),\n    multi: true\n  }]\n})\nexport class InputComponent implements OnInit {\n\n  @ViewChild('formControl', { static: true }) formControl: ElementRef;\n\n  @Input() type: string = 'text';\n  @Input() name: string = 'input-' + Helpers.hash(6);\n  @Input() label: string;\n  @Input() labelExtra: string;\n  @Input() placeholder: string;\n  @Input() minLength: any;\n  @Input() maxLength: any;\n  @Input() height: number;\n  @Input() tabindex: string;\n\n  @Input() valueLabel: any = 'EUR';\n  @Input() digitsInfo: any = '2.2-2';\n  @Input() divider: any = 100;\n  @Input() min: any = 0;\n  @Input() max: any = 999999;\n\n  // ngModel\n  value: any;\n  onChange: (_: any) => void = (_: any) => {};\n  onTouched: () => void = () => {};\n\n  constructor() { }\n\n  ngOnInit() {\n    if (!this.minLength) { this.minLength = 0; }\n    if (!this.maxLength) { this.maxLength = 999; }\n    if (!this.name) { this.name = Helpers.hash(); }\n\n    if (this.height) {\n      this.formControl.nativeElement.style.setProperty('--input-height', `${this.height}px`);\n    }\n\n    switch (this.type) {\n      case 'currency':\n        if (this.valueLabel === undefined) {\n          this.valueLabel = 'EUR';\n        }\n        if (this.digitsInfo === undefined) { \n          this.digitsInfo = '2.2-2';\n        }\n        if (this.divider === undefined) {\n          this.divider = 100;\n        }\n        break;\n      case 'float':\n        this.valueLabel = '';\n        this.divider = '2.2-2';\n        this.divider = 100;\n      case 'number':\n        break;\n    }\n  }\n\n\n  /**\n   * Method that is invoked on an update of a model.\n   */\n  updateChanges() {\n    if (this.type === 'currency' || this.type === 'float' || this.type === 'number') {\n      try {\n        if (String(this.value).length > 1 && String(this.value).substr(0,1) === \"0\") {\n          this.value = parseInt(String(this.value).substr(1));\n        }\n        \n        this.value = parseInt(String(this.value).substr(0, this.maxLength));\n        \n        if (String(this.value) === 'NaN') {\n          this.value = 0;\n        }\n      } catch (error) {\n        this.value = 0;\n      }\n    } else {\n      this.value = String(this.value).substr(0, this.maxLength);\n    }\n\n    if (String(this.value) !== 'NaN' && this.value !== null && this.value !== undefined) {\n      this.onChange(this.value);\n    }\n  }\n\n  ///////////////\n  // OVERRIDES //\n  ///////////////\n\n  /**\n   * Writes a new item to the element.\n   * @param value the value\n   */\n  writeValue(value: any): void {\n    if (this.type === 'currency' || this.type === 'float' || this.type === 'number') {\n      try {\n        this.value = parseInt(String(value).substr(0, this.maxLength));\n\n        if (String(this.value) === 'NaN') {\n          this.value = 0;\n        }\n      } catch (error) {\n        this.value = 0;\n      }\n    } else {\n      this.value = String(value).substr(0, this.maxLength);\n    }\n\n    if (String(this.value) !== 'NaN' && this.value !== null && this.value !== undefined) {\n      this.updateChanges();\n    }\n  }\n\n  /**\n   * Registers a callback function that should be called when the control's value changes in the UI.\n   * @param fn\n   */\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  /**\n   * Registers a callback function that should be called when the control receives a blur event.\n   * @param fn\n   */\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n}\n","<div #formControl id=\"form-control\">\n  <div *ngIf=\"label\" class=\"input-label\">\n    {{label}}\n  </div>\n  \n  <span class=\"add-info\" *ngIf=\"labelExtra\">\n    {{labelExtra}}\n  </span>\n\n  <ng-container *ngIf=\"type === 'textarea'\">\n    <textarea \n      [name]=\"name\" \n      [placeholder]=\"placeholder ? placeholder : ''\" \n      [tabindex]=\"tabindex ? tabindex : -1\" \n      [(ngModel)]=\"value\" \n      (ngModelChange)=\"updateChanges()\"\n    ></textarea>\n  </ng-container>\n  <ng-container *ngIf=\"type === 'text' || type === 'password'\">\n    <input \n      [autocomplete]=\"type === 'password' ? 'off': 'off'\" \n      [type]=\"type\" [name]=\"name\" \n      [placeholder]=\"placeholder ? placeholder : ''\" \n      [tabindex]=\"tabindex ? tabindex : -1\" \n      [(ngModel)]=\"value\" \n      (ngModelChange)=\"updateChanges()\"\n    >\n  </ng-container>\n  <ng-container *ngIf=\"type === 'number'\">\n    <input \n      type=\"tel\"\n      [name]=\"name\"\n      [min]=\"min\"\n      [max]=\"max\"\n      [maxlength]=\"maxLength\"\n      onkeydown=\"return ([8,46,37,38,39,40].includes(event.keyCode) ? true : !isNaN(Number(event.key)))\"\n      [placeholder]=\"placeholder ? placeholder : ''\"\n      [tabindex]=\"tabindex ? tabindex : -1\" \n      [(ngModel)]=\"value\"\n      (ngModelChange)=\"updateChanges()\"\n    >\n  </ng-container>\n  <ng-container *ngIf=\"type === 'currency' || type === 'float'\">\n    <div class=\"input-mask\">\n      <label>\n        <input \n          type=\"text\" pattern=\"\\d*\" id=\"value\" min=\"0\" \n          [name]=\"name\"\n          [placeholder]=\"placeholder ? placeholder : ''\"\n          [(ngModel)]=\"value\" (ngModelChange)=\"updateChanges()\"\n        />\n        <div class=\"numeric-input-label\">\n          {{value/divider | currency:valueLabel:'symbol-narrow':digitsInfo}}\n        </div>\n      </label>\n    </div>\n  </ng-container>\n</div>","import { Component, OnInit, Input } from '@angular/core';\nimport { ThemeService } from '../../../theme.service';\nimport { ModalController } from '@ionic/angular';\n\n@Component({\n  selector: 'app-select-dialog',\n  templateUrl: './select-dialog.page.html',\n  styleUrls: ['./select-dialog.page.scss'],\n})\nexport class SelectDialogPage implements OnInit {\n\n  @Input() options: any[] = [];\n  @Input() title: string;\n  @Input() currentValue: number;\n  \n  selectedOption: any;\n\n  constructor(\n    public themeSvc: ThemeService,\n    private modalCtrl: ModalController\n  ) { }\n\n  ngOnInit() {\n    this.selectedOption = this.currentValue;\n  }\n\n  onCallback(success: boolean) {\n    if (success) {\n      this.modalCtrl.dismiss(this.selectedOption);\n    } else {\n      this.modalCtrl.dismiss();\n    }\n  }\n}\n","<div id=\"select-dialog\" class=\"custom-dialog\">\n  <elv-toolbar [height]=\"themeSvc.sizeWithScale(60)\" color=\"dark\">\n    <ion-title>\n      {{title}}\n    </ion-title>\n  </elv-toolbar>\n\n  <div class=\"dialog-content\">\n    <ion-list>\n      <ion-radio-group name=\"options\" [(ngModel)]=\"selectedOption\"> \n        <ion-item *ngFor=\"let o of options\">\n          <ion-label>{{o.label}}</ion-label>\n          <ion-radio slot=\"start\" [value]=\"o.value\" checked></ion-radio>\n        </ion-item>\n      </ion-radio-group>\n    </ion-list>\n  </div>\n\n  <elv-toolbar [height]=\"themeSvc.sizeWithScale(60)\">\n    <elv-button \n      slot=\"start\" icon=\"backspace\" color=\"danger\" label=\"Annulla\"\n      (click)=\"onCallback(false)\" \n      [height]=\"themeSvc.sizeWithScale(60)\"\n      ></elv-button>\n      <elv-button \n      slot=\"end\" icon=\"checkmark-circle\" color=\"success\" label=\"Conferma\"\n      (click)=\"onCallback(true)\"\n      [height]=\"themeSvc.sizeWithScale(60)\"\n    ></elv-button>\n  </elv-toolbar>\n</div>","import { Component, OnInit, Input, forwardRef, ViewChild, ElementRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ModalOptions } from '@ionic/core';\nimport { ModalController, AlertController } from '@ionic/angular';\n\nimport { SelectDialogPage } from './select-dialog/select-dialog.page';\nimport { ThemeService } from '../../theme.service';\nimport { BaseComponent } from '../../base/base-component';\n\n// elvispos\n\n@Component({\n  selector: 'elv-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => SelectComponent),\n    multi: true\n  }]\n})\nexport class SelectComponent extends BaseComponent {\n\n  @ViewChild('formControl', { static: true }) formControl: ElementRef;\n\n  @Input() options: any[] = [];\n  @Input() label: string;\n  @Input() height: number;\n  @Input() labelExtra: string;\n\n  selectDialogOptions: ModalOptions = {\n    component: SelectDialogPage,\n    cssClass: 'inputDialog'\n  };\n\n  // ngModel\n  value: number = 0;\n  onChange: (_: any) => void = (_: any) => {};\n  onTouched: () => void = () => {};\n\n  get valueDescr() {\n    const v = this.options.find(o => o.Id === this.value);\n    if (v) {\n      return v.Descr;\n    } else {\n      return '';\n    }\n  }\n\n  constructor(\n    public themeSvc: ThemeService,\n    private modalCtrl: ModalController,\n    private alertCtrl: AlertController,\n  ) {\n    super();\n  }\n\n  /**\n   * Method that is invoked on an update of a model.\n   */\n  updateChanges() {\n    this.onChange(this.value);\n  }\n\n  ///////////////\n  // OVERRIDES //\n  ///////////////\n\n  /**\n   * Writes a new item to the element.\n   * @param value the value\n   */\n  writeValue(value: number): void {\n    this.value = value;\n    this.updateChanges();\n  }\n\n  /**\n   * Registers a callback function that should be called when the control's value changes in the UI.\n   * @param fn\n   */\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  /**\n   * Registers a callback function that should be called when the control receives a blur event.\n   * @param fn\n   */\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  async onSelectDialog() {\n    // const alert = await this.alertCtrl.create({\n    //   header: 'Radio',\n    //   inputs: this.options.map(r => ({ type: 'radio', name: 'option', value: r.Id, label: r.Descr })),\n    //   buttons: [\n    //     {\n    //       text: 'Cancel',\n    //       role: 'cancel',\n    //       cssClass: 'secondary',\n    //       handler: () => {\n    //       }\n    //     }, {\n    //       text: 'Ok',\n    //       handler: (answer) => {\n    //         this.writeValue(answer);\n    //       }\n    //     }\n    //   ]\n    // });\n\n    // await alert.present();\n\n    const options: ModalOptions = {\n      component: SelectDialogPage,\n      componentProps: {\n        options: this.options.map(r => ({ value: r.Id, label: r.Descr })),\n        title: this.label,\n        currentValue: this.value\n      },\n      backdropDismiss: false,\n    };\n\n    const modal = await this.modalCtrl.create(options);\n\n    modal.onDidDismiss().then(\n      (resp?: any) => {\n        if (resp && resp.data) {\n          this.writeValue(resp.data);\n        }\n      }\n    );\n\n    await modal.present();\n  }\n}\n","<div #formControl id=\"form-control\">\n  <!-- <label for=\"inputData\" *ngIf=\"label\">\n    {{label}}\n  </label> -->\n\n  <!-- <span class=\"add-info\" *ngIf=\"labelExtra\">\n    {{labelExtra}}\n  </span> -->\n\n  <elv-button [height]=\"themeSvc.sizeWithScale(55)\" (click)=\"onSelectDialog()\" color=\"tertiary\" icon=\"caret-down-circle-outline\" label=\"{{label}}: {{valueDescr}}\"></elv-button>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { SelectDialogPage } from './select-dialog.page';\nimport { ElvisBasicModule } from '../../../elvis-basic/elvis-basic.module';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        IonicModule,\n        ElvisBasicModule\n    ],\n    declarations: [\n        SelectDialogPage,\n    ]\n})\nexport class SelectDialogPageModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\nimport { FormComponent } from './form/form.component';\nimport { InputComponent } from './input/input.component';\nimport { SelectComponent } from './select/select.component';\nimport { SelectDialogPageModule } from './select/select-dialog/select-dialog.module';\nimport { ElvisBasicModule } from '../elvis-basic/elvis-basic.module';\n\n@NgModule({\n  declarations: [\n    FormComponent,\n    InputComponent,\n    SelectComponent\n  ],\n  imports: [\n    CommonModule,\n    IonicModule,\n    FormsModule,\n    ElvisBasicModule,\n    ReactiveFormsModule,\n    SelectDialogPageModule\n  ],\n  exports: [\n    FormComponent,\n    InputComponent,\n    SelectComponent\n  ]\n})\nexport class ElvisFormsModule { }\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ThemeService } from './theme.service';\n\nimport { ElvisFormsModule } from './elvis-forms/elvis-forms.module';\nimport { ElvisBasicModule } from './elvis-basic/elvis-basic.module';\n\n@NgModule({\n  declarations: [\n  ],\n  imports: [\n    HttpClientModule,\n    CommonModule,\n    IonicModule,\n    ElvisBasicModule,\n    ElvisFormsModule,\n  ],\n  exports: [\n    ElvisBasicModule,\n    ElvisFormsModule\n  ]\n})\nexport class ElvisDSModule {\n\n  constructor(@Optional() @SkipSelf() parentModule: ElvisDSModule) {\n    if (parentModule) {\n      // throw new Error(\n      //   'ElvisDSModule is already loaded. Import it in the AppModule only');\n    }\n  }\n\n  static forRoot(): ModuleWithProviders<ElvisDSModule> {\n    return {\n        ngModule: ElvisDSModule,\n        providers: [ThemeService]\n    };\n}\n}\n","/*\n * Public API Surface of elvisds\n */\n\nexport * from './lib/base/base-class';\nexport * from './lib/base/base-component';\nexport * from './lib/base/base-page';\nexport * from './lib/base/base-service';\nexport * from './lib/base/base-websocket';\nexport * from './lib/base/helpers';\nexport * from './lib/base/logger';\n\nexport * from './lib/theme.service';\n\nexport * from './lib/elvis-basic/elvis-basic.module';\nexport * from './lib/elvis-basic/button/button.component';\nexport * from './lib/elvis-basic/item/item.component';\nexport * from './lib/elvis-basic/brand-logo/brand-logo.component';\nexport * from './lib/elvis-basic/toolbar/toolbar.component';\nexport * from './lib/elvis-basic/toolbar-button/toolbar-button.component';\n\nexport * from './lib/elvis-forms/elvis-forms.module';\nexport * from './lib/elvis-forms/form/form.component';\nexport * from './lib/elvis-forms/input/input.component';\nexport * from './lib/elvis-forms/select/select.component';\n\nexport * from './lib/elvisds.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ds';\n"],"names":["i1.ThemeService","i2","i1","i3.ToolbarComponent","i4.ButtonComponent","i5","i6","i3.ButtonComponent"],"mappings":"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"}