{"version":3,"file":"heyheychicken-angular-wizz.mjs","sources":["../../src/lib/service/ios.service.ts","../../src/lib/wizz.component.ts","../../src/lib/wizz.module.ts","../../src/public-api.ts","../../src/heyheychicken-angular-wizz.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: \"root\"\r\n})\r\nexport class iOSService {\r\n  //#region Attributes\r\n\r\n  public get isiOS(): boolean {\r\n    return [\r\n      'iPad Simulator',\r\n      'iPhone Simulator',\r\n      'iPod Simulator',\r\n      'iPad',\r\n      'iPhone',\r\n      'iPod'\r\n    ].includes(navigator.platform)\r\n    // iPad on iOS 13 detection\r\n    || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n  }\r\n\r\n  //#endregion\r\n  \r\n  //#region Functions\r\n\r\n  /**\r\n   * This function allows the developer to open the iOS keyboard on the selected input.\r\n   * @param el Input\r\n   * @param timeout \r\n   */\r\n  public focus(el: any, timeout: number = 100): void {\r\n    // Align temp input element approximately where the input element is so the cursor doesn't jump around\r\n    var __tempEl__ = document.createElement('input');\r\n    __tempEl__.style.position = 'absolute';\r\n    __tempEl__.style.top = (el.offsetTop + 7) + 'px';\r\n    __tempEl__.style.left = el.offsetLeft + 'px';\r\n    __tempEl__.style.height = 0 + \"\";\r\n    __tempEl__.style.opacity = 0 + \"\";\r\n    // Put this temp element as a child of the page <body> and focus on it\r\n    document.body.appendChild(__tempEl__);\r\n    __tempEl__.focus();\r\n\r\n    // The keyboard is open. Now do a delayed focus on the target element\r\n    setTimeout(function() {\r\n      el.focus();\r\n      el.click();\r\n      // Remove the temp element\r\n      document.body.removeChild(__tempEl__);\r\n    }, timeout);\r\n  }\r\n\r\n  //#endregion\r\n}\r\n","/**\r\n * WIZZ v2\r\n */\r\n\r\n//#region Imports\r\n\r\nimport { Component, HostListener, ViewEncapsulation } from '@angular/core';\r\nimport { iOSService } from './service/ios.service';\r\n\r\n//#endregion\r\n\r\n/**\r\n * An input component respecting the SNA design.\r\n */\r\n@Component({\r\n  selector: 'wizz',\r\n  template: '',\r\n  styleUrls: ['./wizz.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class WizzComponent {\r\n  //#region Attributes\r\n\r\n  private _shift: boolean = false;\r\n  private _dictionary: string = '';\r\n\r\n  @HostListener('document:input', ['$event'])\r\n  handleChangeEvent(event: InputEvent) {\r\n    if (this._iOSService.isiOS) {\r\n      if (event.data) {\r\n        if (event.data == event.data.toUpperCase()) {\r\n          this._dictionary += event.data;\r\n          if (this._dictionary.endsWith('WIZZ')) {\r\n            this._wizz();\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('document:keypress', ['$event'])\r\n  handleKeyboardEvent(event: KeyboardEvent) {\r\n    if (!this._iOSService.isiOS) {\r\n      if (this._shift) {\r\n        this._dictionary += event.key;\r\n        if (this._dictionary.endsWith('WIZZ')) {\r\n          this._wizz();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('document:keydown', ['$event'])\r\n  onKeyDown($event: KeyboardEvent) {\r\n    if (!this._iOSService.isiOS) {\r\n      if ($event.key === 'Shift') {\r\n        if (!this._shift) {\r\n          this._shift = true;\r\n          this._dictionary = '';\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('document:keyup', ['$event'])\r\n  onKeyUp($event: KeyboardEvent) {\r\n    if (!this._iOSService.isiOS) {\r\n      if ($event.key === 'Shift') {\r\n        if (this._shift) {\r\n          this._shift = false;\r\n          this._dictionary = '';\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  //#endregion\r\n\r\n  constructor(private _iOSService: iOSService) {}\r\n\r\n  //#region Functions\r\n\r\n  private _wizz(): void {\r\n    this._dictionary = '';\r\n    this.wizz();\r\n  }\r\n\r\n  public wizz(): void {\r\n    const CLASS: string = 'wizz';\r\n    document.body.classList.add(CLASS);\r\n    setTimeout(() => {\r\n      document.body.classList.remove(CLASS);\r\n    }, 750);\r\n  }\r\n\r\n  //#endregion\r\n}\r\n","//#region Imports\r\n\r\n//#region Modules\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n//#endregion\r\n\r\n//#region Components\r\n\r\nimport { WizzComponent } from './wizz.component';\r\n\r\n//#endregion\r\n\r\n//#endregion\r\n\r\n@NgModule({\r\n  imports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n  declarations: [WizzComponent],\r\n  exports: [WizzComponent],\r\n})\r\nexport class WizzModule {}\r\n\r\n","/*\n * Public API Surface of footer\n */\n\nexport * from './lib/wizz.component';\nexport * from './lib/wizz.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.iOSService"],"mappings":"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"}