[
  {
    "path": ".gitignore",
    "content": "src/*.js\nsrc/*.js.map\nsrc/*.log\nsrc/*.d.ts\n!index.d.ts\ndemo/package-lock.json\ndemo/app/*.js\ndemo/*.d.ts\ndemo/lib\ndemo/hooks\ndemo/platforms\ndemo/node_modules\ndemo-vue/package-lock.json\ndemo-vue/platforms\ndemo-vue/node_modules\nsrc/node_modules\n!demo/references.d.ts\n!src/fancyalert.d.ts\nsrc/package-lock.json\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nnativescript-fancyalert\nCopyright (c) 2016, Nathan Walker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "README.md",
    "content": "## NativeScript 7 or higher\n\n* Use `@nstudio/nativescript-fancyalert`: `~4.0.0`\n* [Source managed here](https://github.com/nstudio/nativescript-plugins)\n\n## If using 6 and below, see the following:\n\nFancy alerts for NativeScript.\n\nBased on:\n\n- iOS [SCLAlertView](https://github.com/dogo/SCLAlertView)\n- Android [ColorDialog](https://github.com/andyxialm/ColorDialog)\n\n# Install\n\n### NativeScript 4x\n\n```bash\ntns plugin add nativescript-fancyalert\n```\n\n### NativeScript 3x and older\n\n```bash\ntns plugin add nativescript-fancyalert@1.2.0\n```\n\n![Sample iOS](screenshots/alert.gif)\n\n![Sample Android](screenshots/alert-android.gif)\n\n# iOS Specifications\n\n#### Usage Examples\n\n```js\nimport { TNSFancyAlert, TNSFancyAlertButton } from \"nativescript-fancyalert\";\n\n// show success\nTNSFancyAlert.showSuccess(\n  \"Success!\",\n  \"Fancy alerts are nice.\",\n  \"Yes they are!\"\n);\n\n// set customizations\nTNSFancyAlert.showAnimationType =\n  TNSFancyAlert.SHOW_ANIMATION_TYPES.SlideInFromLeft;\nTNSFancyAlert.hideAnimationType =\n  TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToRight;\nTNSFancyAlert.backgroundType = TNSFancyAlert.BACKGROUND_TYPES.Blur;\nTNSFancyAlert.soundURL = \"bell.mp3\";\nTNSFancyAlert.showSuccess(\n  \"Sound?\",\n  \"You can use sound and customize many aspects like animation in/out, color, background style and much more.\",\n  \"Amazing!\"\n);\n\n// show custom image\nTNSFancyAlert.showCustomImage(\n  \"nativescript.png\",\n  \"#2B33FF\",\n  \"Custom Image\",\n  `Using your own images is sure nice.`,\n  \"Yes!\"\n);\n\n// show custom button timer\nTNSFancyAlert.showCustomButtonTimer(\n  0,\n  true,\n  undefined,\n  undefined,\n  \"Mission Impossible\",\n  `This will self-destruct in 5 seconds.`,\n  \"Ok\"\n);\n\n// show custom buttons\nlet buttons = [\n  new TNSFancyAlertButton({\n    label: \"One\",\n    action: () => {\n      console.log(\"One\");\n    }\n  }),\n  new TNSFancyAlertButton({\n    label: \"Two\",\n    action: () => {\n      console.log(\"Two\");\n    }\n  }),\n  new TNSFancyAlertButton({\n    label: \"Three\",\n    action: () => {\n      console.log(\"Three\");\n    }\n  }),\n  new TNSFancyAlertButton({\n    label: \"Four\",\n    action: () => {\n      console.log(\"Four\");\n    }\n  }),\n  new TNSFancyAlertButton({\n    label: \"Really? More?\",\n    action: () => {\n      console.log(\"more\");\n    }\n  })\n];\nTNSFancyAlert.showCustomButtons(\n  buttons,\n  undefined,\n  undefined,\n  \"Got Buttons?\",\n  `Add as many as you'd like.`,\n  \"Ok\"\n);\n\n// show with custom width\nTNSFancyAlert.showSuccess(\n  \"Success!\",\n  \"This uses a custom width of 300.\",\n  `Oh that's nice.`,\n  0,\n  300\n);\n\n// show textfield\nlet initialValue = null;\nTNSFancyAlert.showTextField(\n  \"Enter your name\",\n  initialValue,\n  new TNSFancyAlertButton({\n    label: \"Save\",\n    action: (value: any) => {\n      console.log(`User entered ${value}`);\n    }\n  }),\n  undefined,\n  undefined,\n  \"User Input?\",\n  `Yeah, sure we can.`,\n  \"Ok, lots of options.\"\n);\n\n// show switch\nTNSFancyAlert.showSwitch(\n  `Don't show again`,\n  \"#58B136\",\n  new TNSFancyAlertButton({\n    label: \"Save\",\n    action: (isSelected: boolean) => {\n      console.log(`Don't show again was selected: ${isSelected}`);\n    }\n  }),\n  \"switch.png\",\n  \"#B3714F\",\n  \"Need a switch?\",\n  `It can be useful.`,\n  \"Got it.\"\n);\n```\n\n#### TNSFancyAlert - Properties\n\n| Property                                                 | Description                                                                                                                                                                  |\n| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `TNSFancyAlert.SUPPORTED_TYPES: IFancyAlertSupportedTypes`        | Different supported style types.                                                                                                                                             |\n| `TNSFancyAlert.shouldDismissOnTapOutside: boolean`       | Should dismiss when tapped outside.                                                                                                                                          |\n| `TNSFancyAlert.dismissCallback: () => void`       | Callback for when alert is dismissed.                                                                                                                                 |\n| `TNSFancyAlert.hideAnimationType: IFancyAlertHideAnimationTypes` | Use `TNSFancyAlert.HIDE_ANIMATION_TYPES` to set. Supports: FadeOut, SlideOutToBottom, SlideOutToTop, SlideOutToLeft, SlideOutToRight, SlideOutToCenter, SlideOutFromCenter.  |\n| `TNSFancyAlert.showAnimationType: IFancyAlertShowAnimationTypes` | Use `TNSFancyAlert.SHOW_ANIMATION_TYPES` to set. Supports: FadeIn, SlideInFromBottom, SlideInFromTop, SlideInFromLeft, SlideInFromRight, SlideInFromCenter, SlideInToCenter. |\n| `TNSFancyAlert.backgroundType: IFancyAlertBackgroundTypes`        | Use `TNSFancyAlert.BACKGROUND_TYPES` to set. Supports: Shadow, Blur, Transparent.                                                                                            |\n| `TNSFancyAlert.customViewColor: string`                  | Overwrite (Buttons, top circle and borders) colors.                                                                                                                          |\n| `TNSFancyAlert.iconTintColor: string`                    | Set custom tint color for icon image.                                                                                                                                        |\n| `TNSFancyAlert.titleColor: string`                       | Set custom title color.                                                                                                                                                      |\n| `TNSFancyAlert.bodyTextColor: string`                    | Set custom body text color.                                                                                                                                                  |\n| `TNSFancyAlert.tintTopCircle: string`                    | Override top circle tint color with background color                                                                                                                         |\n| `TNSFancyAlert.cornerRadius: number`                     | Set custom corner radius.                                                                                                                                                    |\n| `TNSFancyAlert.backgroundViewColor: string`              | Overwrite background color                                                                                                                                                   |\n| `TNSFancyAlert.useLargerIcon: boolean`                   | Make the top circle icon larger                                                                                                                                              |\n| `TNSFancyAlert.soundURL: string`                         | Use mp3 from App_Resources when alert shows.                                                                                                                                 |\n| `TNSFancyAlert.textDisplayOptions: IFancyAlertTextOptions`               | IOS Only. Text display options                                                                                                                                                         |\n\n#### TNSFancyAlert - Methods\n\n- `showSuccess(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showError(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showNotice(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showWarning(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showInfo(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showEdit(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showWaiting(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showQuestion(title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showCustomButtonTimer(buttonIndex: number, reverse?: boolean, imageName?: string, color?: string, title?: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showCustomImage(imageName: string, color: string, title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showCustomButtons(buttons: Array<TNSFancyAlertButton>, imageName: string, color: string, title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showCustomTextAttributes(attributionBlock: Function, button: TNSFancyAlertButton, imageName: string, color: string, title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showTextField(placeholder: string, initialValue: string, button: TNSFancyAlertButton, imageName: string, color: string, title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showSwitch(switchLabel: string, switchColor: string, button: TNSFancyAlertButton, imageName: string, color: string, title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `showCustomView(customView: any, imageName?: string, color?: string, title?: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number)`\n- `show(type: string, title: string, subTitle?: string, closeBtnTitle?: string, duration?: number, width?: number, buttons?: Array<TNSFancyAlertButton>)`\n- `showCustom(alert: any, imageName: string, color: string, title?: string, subTitle?: string, closeBtnTitle?: string, duration?: number)`\n- `createAlert(width?: number)`\n\n# Android Specifications\n\n#### Usage Examples\n\nNOTE: Android supports only a subset of the iOS features, but will return a Promise on every call:\n\n```js\nimport { TNSFancyAlert, TNSFancyAlertButton } from \"nativescript-fancyalert\";\n\n// show success\nTNSFancyAlert.showSuccess(\n  \"Success!\",\n  \"Fancy alerts are nice.\",\n  \"Yes they are!\"\n).then(() => {\n  /* user pressed the button */\n});\n\n// show error\nTNSFancyAlert.showError(\"Error!\", \"Something bad happened.\", \"Close\").then(\n  () => {\n    /* user pressed the button */\n  }\n);\n```\n\n#### TNSFancyAlert - Methods\n\n- `showSuccess(title: string, subTitle?: string, closeBtnTitle?: string): Promise<any>`\n- `showError(title: string, subTitle?: string, closeBtnTitle?: string): Promise<any>`\n- `showNotice(title: string, subTitle?: string, closeBtnTitle?: string): Promise<any>`\n- `showWarning(title: string, subTitle?: string, closeBtnTitle?: string): Promise<any>`\n- `showInfo(title: string, subTitle?: string, closeBtnTitle?: string): Promise<any>`\n- ```\n  showColorDialog(\n    title: string,\n    subTitle?: string,\n    okBtnTitle?: string,\n    cancelBtnTitle?: string,\n    backgroundColor?: string,\n    titleTextColor?: string,\n    contextTextColor?: string,\n    contentImage?: any\n  ): Promise<any>```\n\n# TNSFancyAlertButton (iOS only)\n\nThis class can be instantiated on iOS to configure buttons in the fancy alerts.\n\n```\nexport class TNSFancyAlertButton {\n  public label: string;\n  public action: Function;\n  public applyStyle: (btn: any) => void;\n\n  constructor(model?: any) {\n    if (model) {\n      this.label = model.label;\n      this.action = model.action;\n      this.applyStyle = model.applyStyle;\n    }\n  }\n}\n```\n\n* `label`: display text on the button\n* `action`: the method to invoke when the button is tapped on\n* `applyStyle`: a method you can configure to style the button however you'd like using iOS properties. This method will hand back an instance of `SLCButton` which inherits from `UIButton`. You can see more of what methods are available on this class [here](https://github.com/dogo/SCLAlertView/blob/develop/SCLAlertView/SCLButton.m).\n\nHere's an example of how to setup a custom background color:\n\n```\nnew TNSFancyAlertButton({\n  label: 'Ok',\n  action: () => {\n    // the action to take\n  },\n  applyStyle: (btn: UIButton) => {\n    // we can use UIButton typing when using tns-platform-declarations\n    // however we can cast to any since you are likely not using SLCAlertView typings (they are in this repo if you want to use them :) )\n    // refer to https://github.com/dogo/SCLAlertView/blob/develop/SCLAlertView/SCLButton.m on what properties are available to customize\n\n    (<any>btn).buttonFormatBlock = () => {\n      // set a custom backgroundColor\n      return new (NSDictionary as any)([new Color('#3a3939').ios], ['backgroundColor']);\n    }\n  }\n}),\n```\n\n## Why the TNS prefixed name?\n\n`TNS` stands for **T**elerik **N**ative**S**cript\n\niOS uses classes prefixed with `NS` (stemming from the [NeXTSTEP](https://en.wikipedia.org/wiki/NeXTSTEP) days of old):\nhttps://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/\n\nTo avoid confusion with iOS native classes, `TNS` is used instead.\n\n## Tutorials\n\nNeed extra help getting these fancy alerts working in your application? Check out these tutorials that make use of the plugin:\n\n[Fancy Alerts in a NativeScript with Angular Application](https://www.thepolyglotdeveloper.com/2017/02/use-visually-appealing-fancy-alerts-nativescript-angular-application/)\n\n## License\n\nMIT\n"
  },
  {
    "path": "demo/app/App_Resources/Android/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n\tpackage=\"__PACKAGE__\"\n\tandroid:versionCode=\"1\"\n\tandroid:versionName=\"1.0\">\n\n\t<supports-screens\n\t\tandroid:smallScreens=\"true\"\n\t\tandroid:normalScreens=\"true\"\n\t\tandroid:largeScreens=\"true\"\n\t\tandroid:xlargeScreens=\"true\"/>\n\n\t<uses-sdk\n\t\tandroid:minSdkVersion=\"17\"\n\t\tandroid:targetSdkVersion=\"__APILEVEL__\"/>\n\n\t<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>\n\t<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>\n\t<uses-permission android:name=\"android.permission.INTERNET\"/>\n\n\t<application\n\t\tandroid:name=\"com.tns.NativeScriptApplication\"\n\t\tandroid:allowBackup=\"true\"\n\t\tandroid:icon=\"@drawable/icon\"\n\t\tandroid:label=\"@string/app_name\"\n\t\tandroid:theme=\"@style/AppTheme\" >\n\t\t<activity\n\t\t\tandroid:name=\"com.tns.NativeScriptActivity\"\n\t\t\tandroid:label=\"@string/title_activity_kimera\"\n\t\t\tandroid:configChanges=\"keyboardHidden|orientation|screenSize\">\n\n\t\t\t\t<intent-filter>\n\t\t\t\t<action android:name=\"android.intent.action.MAIN\" />\n\n\t\t\t\t<category android:name=\"android.intent.category.LAUNCHER\" />\n\t\t\t</intent-filter>\n\t\t</activity>\n\t\t<activity android:name=\"com.tns.ErrorReportActivity\"/>\n\t</application>\n</manifest>\n"
  },
  {
    "path": "demo/app/App_Resources/Android/app.gradle",
    "content": "// Add your native dependencies here:\n\n// Uncomment to add recyclerview-v7 dependency\n//dependencies {\n//\tcompile 'com.android.support:recyclerview-v7:+'\n//}"
  },
  {
    "path": "demo/app/App_Resources/iOS/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1.0</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "demo/app/app.css",
    "content": "﻿Button {\n  font-size: 20;\n  horizontal-align: center;\n  padding:10;\n  text-align: center;\n}\n"
  },
  {
    "path": "demo/app/app.ts",
    "content": "﻿import * as application from 'tns-core-modules/application';\napplication.start({ moduleName: 'main-page' });\n"
  },
  {
    "path": "demo/app/main-page.ts",
    "content": "import * as observable from \"tns-core-modules/data/observable\";\nimport * as pages from \"tns-core-modules/ui/page\";\nimport { HelloWorldModel } from \"./main-view-model\";\n\n// Event handler for Page \"loaded\" event attached in main-page.xml\nexport function pageLoaded(args: observable.EventData) {\n  // Get the event sender\n  var page = <pages.Page>args.object;\n  page.bindingContext = new HelloWorldModel();\n}\n"
  },
  {
    "path": "demo/app/main-page.xml",
    "content": "<Page xmlns=\"http://schemas.nativescript.org/tns.xsd\" loaded=\"pageLoaded\">\n  <Page.actionBar>\n      <ActionBar title=\"NativeScript Fancy Alert\" icon=\"\">\n      </ActionBar>\n  </Page.actionBar>\n  <ScrollView>\n    <StackLayout>\n      <Button text=\"Alert Success\" tap=\"{{showSuccess}}\" />\n      <Button text=\"Alert Success w/ Sound\" tap=\"{{showSuccessCustomEffects}}\" />\n      <Button text=\"Alert Error\" tap=\"{{showError}}\" />\n      <Button text=\"Alert Notice\" tap=\"{{showNotice}}\" />\n      <Button text=\"Alert Warning\" tap=\"{{showWarning}}\" />\n      <Button text=\"Alert Info\" tap=\"{{showInfo}}\" />\n      <Button text=\"Alert Edit\" tap=\"{{showEdit}}\" />\n      <Button text=\"Alert Waiting\" tap=\"{{showWaiting}}\" />\n      <Button text=\"Alert Question\" tap=\"{{showQuestion}}\" />\n      <Button text=\"Alert Custom Image\" tap=\"{{showCustomImage}}\" />\n      <Button text=\"Alert Button with Timer\" tap=\"{{showCustomButtonTimer}}\" />\n      <Button text=\"Alert Custom Buttons\" tap=\"{{showCustomButtons}}\" />\n      <Button text=\"Alert Success w/ Auto-Close Delay\" tap=\"{{showSuccessDelay}}\" />\n      <Button text=\"Alert Success Custom Width\" tap=\"{{showCustomWidth}}\" />\n      <Button text=\"Alert Text Color\" tap=\"{{customText}}\" />\n      <Button text=\"Alert Text Field\" tap=\"{{showTextField}}\" />\n      <Button text=\"Alert w/ Switch\" tap=\"{{showSwitch}}\" />\n      <Button text=\"Alert Custom View\" tap=\"{{showCustomView}}\" />\n      \n    </StackLayout>   \n  </ScrollView>\n</Page>"
  },
  {
    "path": "demo/app/main-view-model.ts",
    "content": "import { TNSFancyAlert, TNSFancyAlertButton } from \"nativescript-fancyalert\";\nimport { Color } from \"tns-core-modules/color\";\nimport { Observable } from \"tns-core-modules/data/observable\";\nimport { isIOS } from \"tns-core-modules/platform\";\n\ndeclare var NSMutableAttributedString: any,\n  NSForegroundColorAttributeName: any,\n  NSCaseInsensitiveSearch: any,\n  NSUnderlineStyleSingle: any,\n  UIView: any,\n  CGRectMake: any,\n  SCLAlertViewShowAnimation: any,\n  SCLAlertViewHideAnimation: any,\n  SCLAlertViewBackground: any,\n  NSString: any,\n  NSUnderlineStyleAttributeName: any;\n\nexport class HelloWorldModel extends Observable {\n  constructor() {\n    super();\n    if (isIOS) {\n      TNSFancyAlert.hideAnimationType =\n        TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToBottom;\n    }\n  }\n\n  public showSuccess() {\n    TNSFancyAlert.showSuccess(\n      \"Success!\",\n      \"Fancy alerts are nice.\",\n      \"Yes they are!\"\n    );\n  }\n\n  public showSuccessCustomEffects() {\n    if (isIOS) {\n      TNSFancyAlert.showAnimationType =\n        TNSFancyAlert.SHOW_ANIMATION_TYPES.SlideInFromLeft;\n      TNSFancyAlert.hideAnimationType =\n        TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToRight;\n      TNSFancyAlert.backgroundType = TNSFancyAlert.BACKGROUND_TYPES.Blur;\n      TNSFancyAlert.soundURL = \"bell.mp3\";\n      TNSFancyAlert.showSuccess(\n        \"Sound?\",\n        \"You can use sound and customize many aspects like animation in/out, color, background style and much more.\",\n        \"Amazing!\"\n      );\n      this.reset();\n    }\n  }\n\n  public showSuccessDelay() {\n    TNSFancyAlert.showSuccess(\n      \"Success!\",\n      \"Fancy alerts are nice. This will disappear in 5 seconds.\",\n      \"Close Now!\",\n      5\n    );\n  }\n\n  public showError() {\n    TNSFancyAlert.showError(\n      \"Error!\",\n      \"At least it looks good :)\",\n      \"Yeah it does.\"\n    );\n  }\n\n  public showNotice() {\n    TNSFancyAlert.showNotice(\n      \"Notice\",\n      `You've been officially notified that NativeScript is awesome.`,\n      \"Yeah it is!\"\n    );\n  }\n\n  public showWarning() {\n    TNSFancyAlert.showWarning(\"Warning\", `#nowebview here.`, \"Ok, Got It!\");\n  }\n\n  public showInfo() {\n    if (isIOS) {\n      TNSFancyAlert.showAnimationType =\n        SCLAlertViewShowAnimation.SlideInFromBottom;\n      TNSFancyAlert.hideAnimationType =\n        SCLAlertViewHideAnimation.SlideOutToRight;\n    }\n    TNSFancyAlert.showInfo(\n      \"Info\",\n      `You can integrate any CocoaPod or Android library with NativeScript.`,\n      \"Sweet!\"\n    );\n    if (isIOS) {\n      this.reset();\n    }\n  }\n\n  public showEdit() {\n    TNSFancyAlert.showEdit(\n      \"Edit\",\n      `We could edit something but won't right now.`,\n      \"Sounds Good\"\n    );\n  }\n\n  public showWaiting() {\n    TNSFancyAlert.showWaiting(\n      \"Waiting...\",\n      `It's like waiting for a WebView to render ;)`,\n      \"Uh yeah it is.\"\n    );\n  }\n\n  public showQuestion() {\n    TNSFancyAlert.showQuestion(\n      \"Question\",\n      `Do you like developing with NativeScript?`,\n      \"Well yes I do!\"\n    );\n  }\n\n  public showCustomImage() {\n    TNSFancyAlert.showCustomImage(\n      \"nativescript.png\",\n      \"#2B33FF\",\n      \"@drawable/customimage\",     //Place image name without extension\n      `Using your own images is sure nice.`,\n      \"Yes!\"\n    );\n  }\n\n  public showCustomButtonTimer() {\n    TNSFancyAlert.showCustomButtonTimer(\n      0,\n      true,\n      undefined,\n      undefined,\n      \"Mission Impossible\",\n      `This will self-destruct in 5 seconds.`,\n      \"Ok\"\n    );\n  }\n\n  public showCustomButtons() {\n    let buttons = [\n      new TNSFancyAlertButton({\n        label: \"One\",\n        action: () => {\n          console.log(\"One\");\n        }\n      }),\n      new TNSFancyAlertButton({\n        label: \"Two\",\n        action: () => {\n          console.log(\"Two\");\n        }\n      }),\n      new TNSFancyAlertButton({\n        label: \"Three\",\n        action: () => {\n          console.log(\"Three\");\n        }\n      }),\n      new TNSFancyAlertButton({\n        label: \"Four\",\n        action: () => {\n          console.log(\"Four\");\n        }\n      }),\n      new TNSFancyAlertButton({\n        label: \"Really? More?\",\n        action: () => {\n          console.log(\"more\");\n        }\n      })\n    ];\n    TNSFancyAlert.showCustomButtons(\n      buttons,\n      undefined,\n      undefined,\n      \"Got Buttons?\",\n      `Add as many as you'd like.`,\n      \"Ok\"\n    );\n  }\n\n  public showCustomWidth() {\n    TNSFancyAlert.showSuccess(\n      \"Success!\",\n      \"This uses a custom width of 300.\",\n      `Oh that's nice.`,\n      0,\n      300\n    );\n  }\n\n  public customText() {\n    let textAttribution = (value: any) => {\n      let nsString = NSString.alloc().initWithString(value);\n      let subTitle = NSMutableAttributedString.alloc().initWithString(value);\n\n      let redRange = nsString.rangeOfStringOptions(\n        \"Yep\",\n        NSCaseInsensitiveSearch\n      );\n      subTitle.addAttributeValueRange(\n        NSForegroundColorAttributeName,\n        new Color(\"#BC1224\").ios,\n        redRange\n      );\n\n      let greenRange = nsString.rangeOfStringOptions(\n        \"that can be done\",\n        NSCaseInsensitiveSearch\n      );\n      subTitle.addAttributeValueRange(\n        NSForegroundColorAttributeName,\n        new Color(\"#528100\").ios,\n        greenRange\n      );\n\n      let underline = nsString.rangeOfStringOptions(\n        \"too!\",\n        NSCaseInsensitiveSearch\n      );\n      subTitle.addAttributeValueRange(\n        NSUnderlineStyleAttributeName,\n        NSUnderlineStyleSingle,\n        underline\n      );\n\n      return subTitle;\n    };\n    TNSFancyAlert.showCustomTextAttributes(\n      textAttribution,\n      new TNSFancyAlertButton({\n        label: \"Wow, ok.\",\n        action: (value: any) => {\n          console.log(`Clicked ok.`);\n        }\n      }),\n      undefined,\n      undefined,\n      \"Custom text color?\",\n      `Yep, that can be done too!`,\n      null\n    );\n  }\n\n  public showTextField() {\n    TNSFancyAlert.showTextField(\n      \"Enter your name\",\n      \"\",\n      new TNSFancyAlertButton({\n        label: \"Save\",\n        action: (value: any) => {\n          console.log(`User entered ${value}`);\n        }\n      }),\n      undefined,\n      undefined,\n      \"User Input?\",\n      `Yeah, sure we can.`,\n      \"Ok, lots of options.\"\n    );\n  }\n\n  public showSwitch() {\n    TNSFancyAlert.showSwitch(\n      `Don't show again`,\n      \"#58B136\",\n      new TNSFancyAlertButton({\n        label: \"Save\",\n        action: (isSelected: boolean) => {\n          console.log(`Don't show again was selected: ${isSelected}`);\n        }\n      }),\n      \"switch.png\",\n      \"#B3714F\",\n      \"Need a switch?\",\n      `It can be useful.`,\n      \"Got it.\"\n    );\n  }\n\n  public showCustomView() {\n    let customView = UIView.alloc().initWithFrame(CGRectMake(0, 0, 215, 80));\n    customView.backgroundColor = new Color(\"#FE00FC\").ios;\n    TNSFancyAlert.showCustomView(\n      customView,\n      undefined,\n      undefined,\n      \"Add any view?\",\n      `Just pass in a any UIView.`,\n      \"Nice!\"\n    );\n  }\n\n  private reset() {\n    setTimeout(() => {\n      TNSFancyAlert.showAnimationType = undefined;\n      TNSFancyAlert.hideAnimationType =\n        TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToBottom;\n      TNSFancyAlert.backgroundType = undefined;\n      TNSFancyAlert.soundURL = undefined;\n    }, 1000);\n  }\n}\n"
  },
  {
    "path": "demo/app/package.json",
    "content": "{\n  \"name\": \"tns-template-hello-world-ts\",\n  \"main\": \"app.js\",\n  \"version\": \"1.6.0\",\n  \"author\": {\n    \"name\": \"Telerik\",\n    \"email\": \"support@telerik.com\"\n  },\n  \"description\": \"Nativescript hello-world-ts project template\",\n  \"license\": \"Apache-2.0\",\n  \"keywords\": [\n    \"telerik\",\n    \"mobile\",\n    \"nativescript\",\n    \"{N}\",\n    \"tns\",\n    \"appbuilder\",\n    \"template\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+ssh://git@github.com/NativeScript/template-hello-world-ts.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/NativeScript/template-hello-world-ts/issues\"\n  },\n  \"homepage\": \"https://github.com/NativeScript/template-hello-world-ts\",\n  \"android\": {\n    \"v8Flags\": \"--expose_gc\"\n  },\n  \"devDependencies\": {\n    \"nativescript-dev-typescript\": \"^0.3.0\"\n  },\n  \"_id\": \"tns-template-hello-world-ts@1.6.0\",\n  \"_shasum\": \"a567c2b9a56024818c06596dab9629d155c5b8a8\",\n  \"_resolved\": \"https://registry.npmjs.org/tns-template-hello-world-ts/-/tns-template-hello-world-ts-1.6.0.tgz\",\n  \"_from\": \"tns-template-hello-world-ts@latest\",\n  \"scripts\": {},\n  \"_npmVersion\": \"2.14.7\",\n  \"_nodeVersion\": \"4.2.2\",\n  \"_npmUser\": {\n    \"name\": \"enchev\",\n    \"email\": \"vladimir.enchev@gmail.com\"\n  },\n  \"dist\": {\n    \"shasum\": \"a567c2b9a56024818c06596dab9629d155c5b8a8\",\n    \"tarball\": \"http://registry.npmjs.org/tns-template-hello-world-ts/-/tns-template-hello-world-ts-1.6.0.tgz\"\n  },\n  \"maintainers\": [\n    {\n      \"name\": \"enchev\",\n      \"email\": \"vladimir.enchev@gmail.com\"\n    },\n    {\n      \"name\": \"erjangavalji\",\n      \"email\": \"erjan.gavalji@gmail.com\"\n    },\n    {\n      \"name\": \"fatme\",\n      \"email\": \"hfatme@gmail.com\"\n    },\n    {\n      \"name\": \"hdeshev\",\n      \"email\": \"hristo@deshev.com\"\n    },\n    {\n      \"name\": \"kerezov\",\n      \"email\": \"d.kerezov@gmail.com\"\n    },\n    {\n      \"name\": \"ligaz\",\n      \"email\": \"stefan.dobrev@gmail.com\"\n    },\n    {\n      \"name\": \"nsndeck\",\n      \"email\": \"nedyalko.nikolov@telerik.com\"\n    },\n    {\n      \"name\": \"rosen-vladimirov\",\n      \"email\": \"rosen.vladimirov.91@gmail.com\"\n    },\n    {\n      \"name\": \"sdobrev\",\n      \"email\": \"stefan.dobrev@gmail.com\"\n    },\n    {\n      \"name\": \"tailsu\",\n      \"email\": \"tailsu@gmail.com\"\n    },\n    {\n      \"name\": \"teobugslayer\",\n      \"email\": \"teobugslayer@gmail.com\"\n    },\n    {\n      \"name\": \"valio.stoychev\",\n      \"email\": \"valio.stoychev@gmail.com\"\n    }\n  ],\n  \"_npmOperationalInternal\": {\n    \"host\": \"packages-5-east.internal.npmjs.com\",\n    \"tmp\": \"tmp/tns-template-hello-world-ts-1.6.0.tgz_1455717516189_0.6427943941671401\"\n  },\n  \"directories\": {},\n  \"readme\": \"ERROR: No README data found!\"\n}\n"
  },
  {
    "path": "demo/app/vendor-platform.android.ts",
    "content": "require(\"application\");\nif (!global[\"__snapshot\"]) {\n    // In case snapshot generation is enabled these modules will get into the bundle\n    // but will not be required/evaluated.\n    // The snapshot webpack plugin will add them to the tns-java-classes.js bundle file.\n    // This way, they will be evaluated on app start as early as possible.\n    require(\"ui/frame\");\n    require(\"ui/frame/activity\");\n}\n"
  },
  {
    "path": "demo/app/vendor-platform.ios.ts",
    "content": "// There is a bug in angular: https://github.com/angular/angular-cli/pull/8589/files\n// Legendary stuff, its webpack plugin pretty much doesn't work with empty TypeScript files in v1.8.3\nvoid 0;\n"
  },
  {
    "path": "demo/app/vendor.ts",
    "content": "// Snapshot the ~/app.css and the theme\nconst application = require(\"application\");\nrequire(\"ui/styling/style-scope\");\nconst appCssContext = require.context(\"~/\", false, /^\\.\\/app\\.(css|scss|less|sass)$/);\nglobal.registerWebpackModules(appCssContext);\napplication.loadAppCss();\n\nrequire(\"./vendor-platform\");\n\nrequire(\"bundle-entry-points\");\n"
  },
  {
    "path": "demo/package.json",
    "content": "{\n  \"nativescript\": {\n    \"id\": \"org.nativescript.demo\",\n    \"tns-android\": {\n      \"version\": \"4.2.0\"\n    },\n    \"tns-ios\": {\n      \"version\": \"4.2.0\"\n    }\n  },\n  \"dependencies\": {\n    \"nativescript-fancyalert\": \"file:../src\",\n    \"tns-core-modules\": \"^4.2.0\"\n  },\n  \"devDependencies\": {\n    \"babel-traverse\": \"6.12.0\",\n    \"babel-types\": \"6.11.1\",\n    \"babylon\": \"6.8.4\",\n    \"copy-webpack-plugin\": \"~4.0.1\",\n    \"css-loader\": \"~0.28.7\",\n    \"extract-text-webpack-plugin\": \"~3.0.0\",\n    \"filewalker\": \"0.1.2\",\n    \"lazy\": \"1.0.11\",\n    \"nativescript-css-loader\": \"~0.26.0\",\n    \"nativescript-dev-typescript\": \"^0.7.3\",\n    \"nativescript-dev-webpack\": \"^0.15.1\",\n    \"nativescript-worker-loader\": \"~0.9.1\",\n    \"raw-loader\": \"~0.5.1\",\n    \"resolve-url-loader\": \"~2.3.0\",\n    \"tns-platform-declarations\": \"^4.2.0\",\n    \"typescript\": \"~2.9.0\"\n  },\n  \"scripts\": {\n    \"build.plugin\": \"cd ../src && npm run build\"\n  }\n}"
  },
  {
    "path": "demo/references.d.ts",
    "content": "/// <reference path=\"./node_modules/tns-core-modules/tns-core-modules.d.ts\" />\n/// <reference path=\"./node_modules/typescript/lib/lib.d.ts\" />\n"
  },
  {
    "path": "demo/tsconfig.esm.json",
    "content": "{\n    \"extends\": \"./tsconfig\",\n    \"compilerOptions\": {\n        \"module\": \"es2015\",\n        \"moduleResolution\": \"node\"\n    }\n}\n"
  },
  {
    "path": "demo/tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"target\": \"es5\",\n        \"module\": \"commonjs\",\n        \"declaration\": false,\n        \"removeComments\": true,\n        \"noLib\": false,\n        \"emitDecoratorMetadata\": true,\n        \"experimentalDecorators\": true,\n        \"skipLibCheck\": true,\n        \"lib\": [\n            \"dom\",\n            \"es6\"\n        ],\n        \"pretty\": true,\n        \"allowUnreachableCode\": false,\n        \"allowUnusedLabels\": false,\n        \"noEmitHelpers\": true,\n        \"noEmitOnError\": false,\n        \"noImplicitAny\": false,\n        \"noImplicitReturns\": true,\n        \"noImplicitUseStrict\": false,\n        \"noFallthroughCasesInSwitch\": true,\n        \"typeRoots\": [\n            \"./node_modules/@types\",\n            \"./node_modules\"\n        ],\n        \"types\": [],\n        \"baseUrl\": \".\",\n        \"paths\": {\n            \"*\": [\n                \"./node_modules/tns-core-modules/*\",\n                \"./node_modules/*\"\n            ],\n            \"~/*\": [\n                \"app/*\"\n            ]\n        }\n    },\n    \"exclude\": [\n        \"node_modules\",\n        \"platforms\"\n    ],\n    \"compileOnSave\": false\n}"
  },
  {
    "path": "demo/webpack.config.js",
    "content": "const { resolve, join  } = require(\"path\");\n\nconst webpack = require(\"webpack\");\nconst nsWebpack = require(\"nativescript-dev-webpack\");\nconst nativescriptTarget = require(\"nativescript-dev-webpack/nativescript-target\");\nconst CopyWebpackPlugin = require(\"copy-webpack-plugin\");\nconst { BundleAnalyzerPlugin } = require(\"webpack-bundle-analyzer\");\nconst { NativeScriptWorkerPlugin } = require(\"nativescript-worker-loader/NativeScriptWorkerPlugin\");\nconst UglifyJsPlugin = require(\"uglifyjs-webpack-plugin\");\n\nmodule.exports = env => {\n    const platform = env && (env.android && \"android\" || env.ios && \"ios\");\n    if (!platform) {\n        throw new Error(\"You need to provide a target platform!\");\n    }\n    const platforms = [\"ios\", \"android\"];\n    const { snapshot, uglify, report } = env;\n\n    const config = {\n        context: resolve(\"./app\"),\n        target: nativescriptTarget,\n        entry: {\n            bundle: `./${nsWebpack.getEntryModule()}`,\n            vendor: \"./vendor\"\n        },\n        output: {\n            pathinfo: true,\n            // Default destination inside platforms/<platform>/...\n            path: resolve(nsWebpack.getAppPath(platform)),\n            libraryTarget: \"commonjs2\",\n            filename: \"[name].js\",\n        },\n        resolve: {\n            extensions: [\".ts\", \".js\", \".scss\", \".css\"],\n            // Resolve {N} system modules from tns-core-modules\n            modules: [\n                \"node_modules/tns-core-modules\",\n                \"node_modules\",\n            ],\n            alias: {\n                '~': resolve(\"./app\")\n            },\n            // don't resolve symlinks to symlinked modules\n            symlinks: false\n        },\n        resolveLoader: {\n            // don't resolve symlinks to symlinked loaders\n            symlinks: false\n        },\n        node: {\n            // Disable node shims that conflict with NativeScript\n            \"http\": false,\n            \"timers\": false,\n            \"setImmediate\": false,\n            \"fs\": \"empty\",\n        },\n        module: {\n            rules: [\n                { test: /\\.(html|xml)$/, use: \"raw-loader\" },\n\n                {\n                    test: /\\.css$/,\n                    use: { loader: \"css-loader\", options: { minimize: false, url: false } }\n                },\n\n                {\n                    test: /\\.scss$/,\n                    use: [\n                        { loader: \"css-loader\", options: { minimize: false, url: false } },\n                        \"sass-loader\"\n                    ]\n                },\n\n                { test: /\\.ts$/, use: \"awesome-typescript-loader\" }\n            ]\n        },\n        plugins: [\n            // Vendor libs go to the vendor.js chunk\n            new webpack.optimize.CommonsChunkPlugin({\n                name: [\"vendor\"],\n            }),\n            // Define useful constants like TNS_WEBPACK\n            new webpack.DefinePlugin({\n                \"global.TNS_WEBPACK\": \"true\",\n            }),\n            // Copy assets to out dir. Add your own globs as needed.\n            new CopyWebpackPlugin([\n                { from: \"App_Resources/**\" },\n                { from: \"fonts/**\" },\n                { from: \"**/*.jpg\" },\n                { from: \"**/*.png\" },\n                { from: \"**/*.xml\" },\n            ]),\n            // Generate a bundle starter script and activate it in package.json\n            new nsWebpack.GenerateBundleStarterPlugin([\n                \"./vendor\",\n                \"./bundle\",\n            ]),\n            // Support for web workers since v3.2\n            new NativeScriptWorkerPlugin(),\n            new nsWebpack.PlatformFSPlugin({\n                platform,\n                platforms,\n                // ignore: [\"App_Resources\"]\n            }),\n            // Does IPC communication with the {N} CLI to notify events when running in watch mode.\n            new nsWebpack.WatchStateLoggerPlugin(),\n        ],\n    };\n    if (report) {\n        // Generate report files for bundles content\n        config.plugins.push(new BundleAnalyzerPlugin({\n            analyzerMode: \"static\",\n            openAnalyzer: false,\n            generateStatsFile: true,\n            reportFilename: join(__dirname, \"report\", `report.html`),\n            statsFilename: join(__dirname, \"report\", `stats.json`),\n        }));\n    }\n    if (snapshot) {\n        config.plugins.push(new nsWebpack.NativeScriptSnapshotPlugin({\n            chunk: \"vendor\",\n            projectRoot: __dirname,\n            webpackConfig: config,\n            targetArchs: [\"arm\", \"arm64\", \"ia32\"],\n            tnsJavaClassesOptions: { packages: [\"tns-core-modules\" ] },\n            useLibs: false\n        }));\n    }\n    if (uglify) {\n        config.plugins.push(new webpack.LoaderOptionsPlugin({ minimize: true }));\n\n        // Work around an Android issue by setting compress = false\n        const compress = platform !== \"android\";\n        config.plugins.push(new UglifyJsPlugin({\n            uglifyOptions: {\n                mangle: { reserved: nsWebpack.uglifyMangleExcludes },\n                compress,\n            }\n        }));\n    }\n    return config;\n};\n"
  },
  {
    "path": "demo-vue/.babelrc",
    "content": "{\n  \"presets\": [\n    [\"env\", { \"cacheDirectory\": true }]\n  ],\n  \"plugins\": [\"transform-object-rest-spread\"]\n}"
  },
  {
    "path": "demo-vue/.gitignore",
    "content": "# JetBrains project files\n.idea\n\n# NPM\nnode_modules\n\n# NativeScript application\n/dist\n"
  },
  {
    "path": "demo-vue/README.md",
    "content": "# NativeScript-Vue Demo\n\n> Demo app for nativescript-fancyalert plugin made with NativeScript-Vue\n\n## Usage\n\n* Install dependencies\n\n``` bash\nnpm install\n```\n\n* Compile the `nativescript-fancyalert` plugin\n\n``` bash\nnpm run build.plugin\n```\n\n* Run the demo:\n\n``` bash\n# Build, watch for changes and debug the application\nnpm run debug\nnpm run debug:<platform>\n\n# Build, watch for changes and run the application\nnpm run watch\nnpm run watch:<platform>\n```\n\n* Clean the NativeScript application instance (i.e. rm -rf dist)\n\n``` bash\nnpm run clean\n```\n"
  },
  {
    "path": "demo-vue/package.json",
    "content": "{\n  \"name\": \"demo-vue\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A native application built with NativeScript-Vue\",\n  \"scripts\": {\n    \"build.plugin\": \"cd ../src && npm run build\",\n    \"build\": \"webpack --env.tnsAction build\",\n    \"build:android\": \"npm run build -- --env.android\",\n    \"build:ios\": \"npm run build -- --env.ios\",\n    \"debug\": \"webpack --watch --env.tnsAction debug\",\n    \"debug:android\": \"npm run debug -- --env.android\",\n    \"debug:ios\": \"npm run debug -- --env.ios\",\n    \"watch\": \"webpack --watch --env.tnsAction run\",\n    \"watch:android\": \"npm run watch -- --env.android\",\n    \"watch:ios\": \"npm run watch -- --env.ios\",\n    \"clean\": \"rimraf dist\"\n  },\n  \"dependencies\": {\n    \"nativescript-fancyalert\": \"file:../src\",\n    \"nativescript-theme-core\": \"^1.0.4\",\n    \"nativescript-vue\": \"^2.0.0-alpha.1\",\n    \"tns-core-modules\": \"~4.1.1\"\n  },\n  \"devDependencies\": {\n    \"babel-core\": \"^6.26.0\",\n    \"babel-loader\": \"^7.1.3\",\n    \"babel-plugin-transform-object-rest-spread\": \"^6.26.0\",\n    \"babel-preset-env\": \"^1.6.1\",\n    \"copy-webpack-plugin\": \"^4.4.2\",\n    \"css-loader\": \"^0.28.10\",\n    \"extract-text-webpack-plugin\": \"^3.0.2\",\n    \"fs-extra\": \"^5.0.0\",\n    \"nativescript-vue-externals\": \"^0.2.0\",\n    \"nativescript-vue-loader\": \"^0.1.5\",\n    \"nativescript-vue-target\": \"^0.1.0\",\n    \"nativescript-vue-template-compiler\": \"^1.3.0\",\n    \"node-sass\": \"^4.7.2\",\n    \"ns-vue-loader\": \"^0.1.2\",\n    \"optimize-css-assets-webpack-plugin\": \"^3.2.0\",\n    \"rimraf\": \"^2.6.2\",\n    \"sass-loader\": \"^6.0.6\",\n    \"vue-template-compiler\": \"^2.5.13\",\n    \"webpack\": \"^3.11.0\",\n    \"webpack-synchronizable-shell-plugin\": \"0.0.6\",\n    \"winston-color\": \"^1.0.0\"\n  }\n}\n"
  },
  {
    "path": "demo-vue/src/main.js",
    "content": "import * as app from \"tns-core-modules/application\"\n\nimport Vue from 'nativescript-vue'\nimport { isIOS, isAndroid } from 'tns-core-modules/platform'\nimport { TNSFancyAlert, TNSFancyAlertButton } from 'nativescript-fancyalert'\n\nconst Page = {\n  template: `\n  <Frame>\n    <Page @loaded=\"onLoaded\">\n      <ActionBar title=\"Fancy Alerts Demo\" />\n      <StackLayout>\n        <Button text=\"Alert Success\" @tap=\"showSuccess\" />\n      </StackLayout>\n    </Page>\n  </Frame>\n  `,\n\n  data() {\n    return {\n    }\n  },\n\n  methods: {\n    showSuccess () {\n      TNSFancyAlert.showSuccess(\n        'Success!',\n        'Fancy alerts are nice.',\n        'Yes they are!',\n      ).then(() => {\n        console.log('shown')\n      }).catch((error) => {\n        console.error(error)\n      })\n    },\n    onLoaded () {\n      if (isIOS) {\n        TNSFancyAlert.hideAnimationType = TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToBottom\n      }\n    },\n  },\n}\n\n// Uncommment the following to see NativeScript-Vue output logs\nVue.config.silent = false\n\nnew Vue({\n  render: h => h(Page)\n}).$start({\n  getRootView (vm) {\n    return vm.$el.nativeView; // frame\n  },\n})\n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest\n    xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"__PACKAGE__\" android:versionCode=\"10000\" android:versionName=\"1.0.0\">\n    <supports-screens android:smallScreens=\"true\" android:normalScreens=\"true\" android:largeScreens=\"true\" android:xlargeScreens=\"true\" />\n    <uses-sdk android:minSdkVersion=\"17\" android:targetSdkVersion=\"__APILEVEL__\" />\n    <uses-permission android:name=\"android.permission.INTERNET\" />\n    <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />\n    <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />\n    <application android:name=\"com.tns.NativeScriptApplication\" android:allowBackup=\"true\" android:icon=\"@drawable/icon\" android:label=\"@string/app_name\" android:theme=\"@style/AppTheme\">\n        <activity android:name=\"com.tns.NativeScriptActivity\" android:label=\"@string/title_activity_kimera\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:theme=\"@style/LaunchScreenTheme\">\n            <meta-data android:name=\"SET_THEME_ON_LAUNCH\" android:resource=\"@style/AppTheme\" />\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" />\n                <category android:name=\"android.intent.category.LAUNCHER\" />\n            </intent-filter>\n        </activity>\n        <activity android:name=\"com.tns.ErrorReportActivity\" />\n    </application>\n</manifest>"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/app.gradle",
    "content": "// Add your native dependencies here:\n\nandroid {\n  defaultConfig {  \n    generatedDensities = []\n    applicationId = \"__PACKAGE__\"\n  }\n  aaptOptions {  \n    additionalParameters \"--no-version-vectors\"  \n  }  \n} \n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/drawable-nodpi/splash_screen.xml",
    "content": "<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\" android:gravity=\"fill\">\n    <item>\n        <bitmap android:gravity=\"fill\" android:src=\"@drawable/background\" />\n    </item>\n    <item>\n        <bitmap android:gravity=\"center\" android:src=\"@drawable/logo\" />\n    </item>\n</layer-list>"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/values/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"ns_primary\">#F5F5F5</color>\n\t<color name=\"ns_primaryDark\">#757575</color>\n\t<color name=\"ns_accent\">#33B5E5</color>\n    <color name=\"ns_blue\">#272734</color>\n</resources>"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/values/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"app_name\">NativeScript-Vue Application</string>\n    <string name=\"title_activity_kimera\">NativeScript-Vue Application</string>\n</resources>\n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/values/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <!-- theme to use FOR launch screen-->\n    <style name=\"LaunchScreenThemeBase\" parent=\"Theme.AppCompat.Light.NoActionBar\">\n        <item name=\"toolbarStyle\">@style/NativeScriptToolbarStyle</item>\n\n        <item name=\"colorPrimary\">@color/ns_primary</item>\n        <item name=\"colorPrimaryDark\">@color/ns_primaryDark</item>\n        <item name=\"colorAccent\">@color/ns_accent</item>\n\n        <item name=\"android:windowBackground\">@drawable/splash_screen</item>\n        \n        <item name=\"android:windowActionBarOverlay\">true</item>  \n        <item name=\"android:windowTranslucentStatus\">true</item>\n    </style>\n\n    <style name=\"LaunchScreenTheme\" parent=\"LaunchScreenThemeBase\">\n    </style>\n\n    <!-- theme to use AFTER launch screen is loaded-->\n    <style name=\"AppThemeBase\" parent=\"Theme.AppCompat.Light.NoActionBar\">\n        <item name=\"toolbarStyle\">@style/NativeScriptToolbarStyle</item>\n\n        <item name=\"colorPrimary\">@color/ns_primary</item>\n        <item name=\"colorPrimaryDark\">@color/ns_primaryDark</item>\n        <item name=\"colorAccent\">@color/ns_accent</item>\n    </style>\n\n    <style name=\"AppTheme\" parent=\"AppThemeBase\">\n    </style>\n\n    <!-- theme for actioon-bar -->\n    <style name=\"NativeScriptToolbarStyleBase\" parent=\"Widget.AppCompat.Toolbar\">\n        <item name=\"android:background\">@color/ns_primary</item>\n        <item name=\"theme\">@style/ThemeOverlay.AppCompat.ActionBar</item>\n        <item name=\"popupTheme\">@style/ThemeOverlay.AppCompat</item>\n    </style>\n\n    <style name=\"NativeScriptToolbarStyle\" parent=\"NativeScriptToolbarStyleBase\">\n    </style>\n</resources>\n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/values-v21/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\t<color name=\"ns_accent\">#3d5afe</color>\n</resources>"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/values-v21/strings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <string name=\"app_name\">NativeScript-Vue Application</string>\n    <string name=\"title_activity_kimera\">NativeScript-Vue Application</string>\n</resources>\n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/Android/values-v21/styles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <!-- Application theme -->\n    <style name=\"AppTheme\" parent=\"AppThemeBase\">\n        <item name=\"android:datePickerStyle\">@style/SpinnerDatePicker</item>\n        <item name=\"android:timePickerStyle\">@style/SpinnerTimePicker</item>\n    </style>\n\n    <!-- Default style for DatePicker - in spinner mode -->\n    <style name=\"SpinnerDatePicker\" parent=\"android:Widget.Material.Light.DatePicker\">\n        <item name=\"android:datePickerMode\">spinner</item>\n    </style>\n\n    <!-- Default style for TimePicker - in spinner mode -->\n    <style name=\"SpinnerTimePicker\" parent=\"android:Widget.Material.Light.TimePicker\">\n        <item name=\"android:timePickerMode\">spinner</item>\n    </style>\n\n    <style name=\"NativeScriptToolbarStyle\" parent=\"NativeScriptToolbarStyleBase\">\n        <item name=\"android:elevation\">4dp</item>\n    </style>\n</resources>"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-29.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-29@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-40@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-60@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-60@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-29.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-29@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-40.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-40@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-76.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-76@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"83.5x83.5\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"icon-83.5@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"1024x1024\",\n      \"idiom\" : \"ios-marketing\",\n      \"filename\" : \"icon-1024.png\",\n      \"scale\" : \"1x\"\n    } \n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"2436h\",\n      \"filename\" : \"Default-1125h.png\",\n      \"minimum-system-version\" : \"11.0\",\n      \"orientation\" : \"portrait\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"iphone\",\n      \"extent\" : \"full-screen\",\n      \"filename\" : \"Default-Landscape-X.png\",\n      \"minimum-system-version\" : \"11.0\",\n      \"subtype\" : \"2436h\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"736h\",\n      \"filename\" : \"Default-736h@3x.png\",\n      \"minimum-system-version\" : \"8.0\",\n      \"orientation\" : \"portrait\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"736h\",\n      \"filename\" : \"Default-Landscape@3x.png\",\n      \"minimum-system-version\" : \"8.0\",\n      \"orientation\" : \"landscape\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"667h\",\n      \"filename\" : \"Default-667h@2x.png\",\n      \"minimum-system-version\" : \"8.0\",\n      \"orientation\" : \"portrait\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Default@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"7.0\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"retina4\",\n      \"filename\" : \"Default-568h@2x.png\",\n      \"minimum-system-version\" : \"7.0\",\n      \"orientation\" : \"portrait\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Portrait.png\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"7.0\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Landscape.png\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"7.0\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Portrait@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"7.0\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Landscape@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"7.0\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Default.png\",\n      \"extent\" : \"full-screen\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Default@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Default-568h@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"subtype\" : \"retina4\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"extent\" : \"to-status-bar\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Portrait.png\",\n      \"extent\" : \"full-screen\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"ipad\",\n      \"extent\" : \"to-status-bar\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Landscape.png\",\n      \"extent\" : \"full-screen\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"extent\" : \"to-status-bar\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Portrait@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"ipad\",\n      \"extent\" : \"to-status-bar\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"Default-Landscape@2x.png\",\n      \"extent\" : \"full-screen\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchScreen-AspectFill.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchScreen-AspectFill@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchScreen-Center.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchScreen-Center@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>NativeScript-Vue Application</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1.0.0</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiresFullScreen</key>\n\t<true/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"10116\" systemVersion=\"15F34\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Llm-lL-Icb\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"xb3-aO-Qok\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"LaunchScreen.AspectFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"wtH-rr-YfP\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                            </imageView>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"center\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"LaunchScreen.Center\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"s1z-aa-wYv\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                            </imageView>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n                        <constraints>\n                            <constraint firstItem=\"xb3-aO-Qok\" firstAttribute=\"top\" secondItem=\"wtH-rr-YfP\" secondAttribute=\"bottom\" id=\"5FO-pR-qKb\"/>\n                            <constraint firstItem=\"wtH-rr-YfP\" firstAttribute=\"top\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"top\" id=\"Awn-b8-xf1\"/>\n                            <constraint firstItem=\"s1z-aa-wYv\" firstAttribute=\"top\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"top\" id=\"CiP-yX-1sg\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"wtH-rr-YfP\" secondAttribute=\"trailing\" id=\"RXg-rW-UK8\"/>\n                            <constraint firstItem=\"s1z-aa-wYv\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leading\" id=\"agC-wa-3bd\"/>\n                            <constraint firstItem=\"wtH-rr-YfP\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leading\" id=\"cch-8E-tYu\"/>\n                            <constraint firstItem=\"xb3-aO-Qok\" firstAttribute=\"top\" secondItem=\"s1z-aa-wYv\" secondAttribute=\"bottom\" id=\"fNc-Ro-KaG\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"s1z-aa-wYv\" secondAttribute=\"trailing\" id=\"qoI-OC-Zk7\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"510\" y=\"238\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"LaunchScreen.AspectFill\" width=\"768\" height=\"1024\"/>\n        <image name=\"LaunchScreen.Center\" width=\"40\" height=\"40\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "demo-vue/template/app/App_Resources/iOS/build.xcconfig",
    "content": "// You can add custom settings here\n// for example you can uncomment the following line to force distribution code signing\n// CODE_SIGN_IDENTITY = iPhone Distribution \n// To build for device with Xcode 8 you need to specify your development team. More info: https://developer.apple.com/library/prerelease/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html\n// DEVELOPMENT_TEAM = YOUR_TEAM_ID;\nASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\nASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;\n"
  },
  {
    "path": "demo-vue/template/app/package.json",
    "content": "{\n  \"android\": {\n    \"v8Flags\": \"--expose_gc\"\n  },\n  \"main\": \"app.js\",\n  \"name\": \"demo-vue\",\n  \"version\": \"1.0.0\"\n}\n"
  },
  {
    "path": "demo-vue/template/package.json",
    "content": "{\n  \"name\": \"demo-vue\",\n  \"description\": \"A native application built with NativeScript-Vue\",\n  \"license\": \"MIT\",\n  \"readme\": \"NativeScript-Vue Application\",\n  \"nativescript\": {\n    \"id\": \"org.nativescript.demo\"\n  },\n  \"dependencies\": {\n    \"nativescript-theme-core\": \"^1.0.4\",\n    \"nativescript-vue\": \"^2.0.0-alpha.1\",\n    \"tns-core-modules\": \"~4.1.0\",\n    \"nativescript-fancyalert\": \"file:../../src\"\n  },\n  \"devDependencies\": {\n    \"babel-traverse\": \"6.26.0\",\n    \"babel-types\": \"6.26.0\",\n    \"babylon\": \"6.18.0\",\n    \"lazy\": \"1.0.11\"\n  }\n}"
  },
  {
    "path": "src/.npmignore",
    "content": "demo/\nscreenshots/\n*.png\n*.log\n*.ts\n!*.d.ts\ntsconfig.json\npackage-lock.json\n\n\nnode_modules/\n\n*.ts\n!*.d.ts\n*.map\ntsconfig.json\nscripts/*\nplatforms/android/*\n!platforms/android/include.gradle\n!platforms/android/*.aar\n!platforms/android/*.jar\nreferences.d.ts"
  },
  {
    "path": "src/common.ts",
    "content": "export class TNSFancyAlertButton {\n  public label: string;\n  public action: Function;\n  public applyStyle: (btn: any) => void;\n\n  constructor(model?: any) {\n    if (model) {\n      this.label = model.label;\n      this.action = model.action;\n      this.applyStyle = model.applyStyle;\n    }\n  }\n}\n"
  },
  {
    "path": "src/fancyalert.android.ts",
    "content": "import * as app from \"tns-core-modules/application\";\nimport { Color } from \"tns-core-modules/color\";\n\nexport * from \"./common\";\n\ndeclare var cn: any;\n\nexport enum IFancyAlertSupportedTypesAndroid {\n  INFO = 0,\n  HELP = 1,\n  WRONG = 2,\n  SUCCESS = 3,\n  WARNING = 4,\n  EDIT = 5\n}\n\nexport class TNSFancyAlert {\n  public static shouldDismissOnTapOutside: boolean = false;\n\n  public static showSuccess(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.PromptDialog(\n        app.android.foregroundActivity\n      );\n      alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      alert.setDialogType(IFancyAlertSupportedTypesAndroid.SUCCESS);\n      alert.setTitleText(title || \"Success!\");\n      alert.setContentText(subTitle || \"\");\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        closeBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.PromptDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve();\n          }\n        })\n      );\n      alert.show();\n    });\n  }\n\n  public static showError(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.PromptDialog(\n        app.android.foregroundActivity\n      );\n      alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      alert.setDialogType(IFancyAlertSupportedTypesAndroid.WRONG);\n      alert.setTitleText(title || \"Error!\");\n      alert.setContentText(subTitle || \"\");\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        closeBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.PromptDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve();\n          }\n        })\n      );\n      alert.show();\n    });\n  }\n\n  public static showNotice(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.PromptDialog(\n        app.android.foregroundActivity\n      );\n      alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      alert.setDialogType(IFancyAlertSupportedTypesAndroid.HELP);\n      alert.setTitleText(title || \"Notice\");\n      alert.setContentText(subTitle || \"\");\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        closeBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.PromptDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve();\n          }\n        })\n      );\n      alert.show();\n    });\n  }\n\n  public static showWarning(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.PromptDialog(\n        app.android.foregroundActivity\n      );\n      alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      alert.setDialogType(IFancyAlertSupportedTypesAndroid.WARNING);\n      alert.setTitleText(title || \"Warning!\");\n      alert.setContentText(subTitle || \"\");\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        closeBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.PromptDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve();\n          }\n        })\n      );\n      alert.show();\n    });\n  }\n\n  public static showEdit(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.PromptDialog(\n        app.android.foregroundActivity\n      );\n      alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      alert.setDialogType(IFancyAlertSupportedTypesAndroid.EDIT); /// EDIT\n      alert.setTitleText(title || \"Edit\");\n      alert.setContentText(subTitle || \"\");\n      alert.setEditTextHint(subTitle || \"\");\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        closeBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.PromptDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve(dialog.getEditText().getText());\n          }\n        })\n      );\n      alert.show();\n    });\n  }\n\n  public static showInfo(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.PromptDialog(\n        app.android.foregroundActivity\n      );\n      alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      alert.setDialogType(IFancyAlertSupportedTypesAndroid.INFO); /// Info\n      alert.setTitleText(title || \"Info\");\n      alert.setContentText(subTitle || \"\");\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        closeBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.PromptDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve();\n          }\n        })\n      );\n      alert.show();\n    });\n  }\n\n  public static showColorDialog(\n    title: string,\n    subTitle?: string,\n    okBtnTitle?: string,\n    cancelBtnTitle?: string,\n    backgroundColor?: string,\n    titleTextColor?: string,\n    contextTextColor?: string,\n    contentImage?: any\n  ): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const alert = new cn.refactor.lib.colordialog.ColorDialog(\n        app.android.foregroundActivity\n      );\n      // alert.setCanceledOnTouchOutside(TNSFancyAlert.shouldDismissOnTapOutside);\n      // alert.setDialogType(IFancyAlertSupportedTypesAndroid.HELP);\n      alert.setTitle(title || \"Title\");\n      alert.setContentText(subTitle || \"\");\n      if (backgroundColor) {\n        alert.setColor(new Color(backgroundColor).android);\n      }\n      if (titleTextColor) {\n        alert.setTitleTextColor(new Color(titleTextColor).android);\n      }\n      if (contextTextColor) {\n        alert.setContentTextColor(new Color(contextTextColor).android);\n      }\n      if (contentImage) {\n        var context = app.android.context;\n        alert.setContentImage(context.getResources().getIdentifier(contentImage,null, context.getPackageName()));\n      }\n      alert.setAnimationEnable(true);\n      alert.setPositiveListener(\n        okBtnTitle || \"Ok\",\n        new cn.refactor.lib.colordialog.ColorDialog.OnPositiveListener({\n          onClick: dialog => {\n            dialog.dismiss();\n            resolve();\n          }\n        })\n      );\n      if (cancelBtnTitle) {\n        alert.setNegativeListener(\n          cancelBtnTitle || \"Cancel\",\n          new cn.refactor.lib.colordialog.ColorDialog.OnNegativeListener({\n            onClick: dialog => {\n              dialog.dismiss();\n              reject();\n            }\n          })\n        );\n      }\n      alert.show();\n    });\n  }\n}\n"
  },
  {
    "path": "src/fancyalert.ios.ts",
    "content": "import { Color } from \"tns-core-modules/color\";\nimport { TNSFancyAlertButton } from \"./common\";\nimport {\n  IFancyAlertSupportedTypes,\n  IFancyAlertTextOptions,\n  IFancyAlertShowAnimationTypes,\n  IFancyAlertHideAnimationTypes,\n  IFancyAlertBackgroundTypes\n} from \"./\";\n\nexport * from \"./common\";\n\nexport class TNSFancyAlert {\n  public static SUPPORTED_TYPES: IFancyAlertSupportedTypes = {\n    SUCCESS: \"Success\",\n    ERROR: \"Error\",\n    NOTICE: \"Notice\",\n    WARNING: \"Warning\",\n    INFO: \"Info\",\n    EDIT: \"Edit\",\n    WAITING: \"Waiting\",\n    QUESTION: \"Question\"\n  };\n\n  //Dismiss on tap outside (Default is NO)\n  public static shouldDismissOnTapOutside: boolean = false;\n  public static dismissCallback: () => void;\n\n  // font handling\n  public static textDisplayOptions: IFancyAlertTextOptions;\n\n  //Hide animation type (Default is FadeOut)\n  public static hideAnimationType: IFancyAlertHideAnimationTypes;\n\n  public static HIDE_ANIMATION_TYPES: IFancyAlertHideAnimationTypes = {\n    FadeOut: SCLAlertViewHideAnimation.FadeOut,\n    SlideOutToBottom: SCLAlertViewHideAnimation.SlideOutToBottom,\n    SlideOutToTop: SCLAlertViewHideAnimation.SlideOutToTop,\n    SlideOutToLeft: SCLAlertViewHideAnimation.SlideOutToLeft,\n    SlideOutToRight: SCLAlertViewHideAnimation.SlideOutToRight,\n    SlideOutToCenter: SCLAlertViewHideAnimation.SlideOutToCenter,\n    SlideOutFromCenter: SCLAlertViewHideAnimation.SlideOutFromCenter\n  };\n\n  //Show animation type (Default is SlideInFromTop)\n  public static showAnimationType: IFancyAlertShowAnimationTypes;\n\n  public static SHOW_ANIMATION_TYPES: IFancyAlertShowAnimationTypes = {\n    FadeIn: SCLAlertViewShowAnimation.FadeIn,\n    SlideInFromBottom: SCLAlertViewShowAnimation.SlideInFromBottom,\n    SlideInFromTop: SCLAlertViewShowAnimation.SlideInFromTop,\n    SlideInFromLeft: SCLAlertViewShowAnimation.SlideInFromLeft,\n    SlideInFromRight: SCLAlertViewShowAnimation.SlideInFromRight,\n    SlideInFromCenter: SCLAlertViewShowAnimation.SlideInFromCenter,\n    SlideInToCenter: SCLAlertViewShowAnimation.SlideInToCenter\n  };\n\n  //Set background type (Default is Shadow)\n  public static backgroundType: IFancyAlertBackgroundTypes;\n\n  public static BACKGROUND_TYPES: IFancyAlertBackgroundTypes = {\n    Shadow: SCLAlertViewBackground.Shadow,\n    Blur: SCLAlertViewBackground.Blur,\n    Transparent: SCLAlertViewBackground.Transparent\n  };\n\n  //Overwrite SCLAlertView (Buttons, top circle and borders) colors\n  public static customViewColor: string;\n\n  //Set custom tint color for icon image.\n  public static iconTintColor: string;\n\n  // set custom title color\n  public static titleColor: string;\n\n  // set custom body text color\n  public static bodyTextColor: string;\n\n  //Override top circle tint color with background color\n  public static tintTopCircle: boolean = true;\n\n  //Set custom corner radius for SCLAlertView\n  public static cornerRadius: number;\n\n  //Overwrite SCLAlertView background color\n  public static backgroundViewColor: string;\n\n  //Make the top circle icon larger\n  public static useLargerIcon: boolean = false;\n\n  //Using sound\n  public static soundURL: string;\n\n  public static showSuccess(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.SUCCESS,\n        title || \"Success!\",\n        subTitle,\n        closeBtnTitle,\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showError(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.ERROR,\n        title || \"Error!\",\n        subTitle,\n        closeBtnTitle,\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showNotice(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.NOTICE,\n        title || \"Notice\",\n        subTitle,\n        closeBtnTitle,\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showWarning(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.WARNING,\n        title || \"Warning!\",\n        subTitle,\n        closeBtnTitle,\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showInfo(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.INFO,\n        title || \"Info\",\n        subTitle,\n        closeBtnTitle,\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showEdit(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.EDIT,\n        title || \"Edit\",\n        subTitle,\n        closeBtnTitle,\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showWaiting(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.WAITING,\n        title || \"Waiting...\",\n        subTitle,\n        closeBtnTitle,\n        duration || 5,\n        width\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showQuestion(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    return new Promise((resolve, reject) => {\n      TNSFancyAlert.show(\n        TNSFancyAlert.SUPPORTED_TYPES.QUESTION,\n        title || \"Waiting...\",\n        subTitle,\n        closeBtnTitle || \"Dismiss\",\n        duration,\n        width,\n        buttons\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown\n      resolve();\n    });\n  }\n\n  public static showCustomButtonTimer(\n    buttonIndex: number,\n    reverse?: boolean,\n    imageName?: string,\n    color?: string,\n    title?: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      buttonIndex = buttonIndex || 0;\n      reverse = reverse || false;\n      title = title || \"Title\";\n      alert.addTimerToButtonIndexReverse(buttonIndex, reverse);\n      TNSFancyAlert.showCustom(\n        alert,\n        imageName,\n        color,\n        title,\n        subTitle,\n        closeBtnTitle || \"Dismiss\",\n        duration || 5\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown passing back instance to allow further control by developer\n      resolve(alert);\n    });\n  }\n\n  public static showCustomImage(\n    imageName: string,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      let image = UIImage.imageNamed(imageName);\n      alert.showCustomColorTitleSubTitleCloseButtonTitleDuration(\n        image,\n        new Color(color).ios,\n        title,\n        subTitle,\n        closeBtnTitle || \"Ok\",\n        duration || 0\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown passing back instance to allow further control by developer\n      resolve(alert);\n    });\n  }\n\n  public static showCustomButtons(\n    buttons: Array<TNSFancyAlertButton>,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      for (let btn of buttons) {\n        const slcBtn = alert.addButtonActionBlock(btn.label, () => {\n          btn.action();\n        });\n        if (btn.applyStyle) {\n          btn.applyStyle(slcBtn);\n        }\n      }\n      TNSFancyAlert.showCustom(\n        alert,\n        image,\n        color,\n        title,\n        subTitle,\n        null,\n        duration\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown passing back instance to allow further control by developer\n      resolve(alert);\n    });\n  }\n\n  public static applyTextDisplayOptions(alert: SCLAlertView) {\n    if (TNSFancyAlert.textDisplayOptions) {\n      const systemFont = UIFont.systemFontOfSize(12);\n      // get default font family name\n      let fontFamily = systemFont.familyName;\n      // default size\n      let fontSize = 14;\n\n      // custom font sizes\n      const titleSize = TNSFancyAlert.textDisplayOptions.titleSize || fontSize;\n      const bodySize = TNSFancyAlert.textDisplayOptions.bodySize || fontSize;\n      const buttonSize =\n        TNSFancyAlert.textDisplayOptions.buttonSize || fontSize;\n\n      // if one font is specified on any option just use that for all\n      if (TNSFancyAlert.textDisplayOptions.applyFontToAll) {\n        if (TNSFancyAlert.textDisplayOptions.titleFont) {\n          fontFamily = TNSFancyAlert.textDisplayOptions.titleFont;\n        } else if (TNSFancyAlert.textDisplayOptions.bodyFont) {\n          fontFamily = TNSFancyAlert.textDisplayOptions.bodyFont;\n        } else if (TNSFancyAlert.textDisplayOptions.buttonFont) {\n          fontFamily = TNSFancyAlert.textDisplayOptions.buttonFont;\n        }\n      }\n\n      alert.setTitleFontFamilyWithSize(fontFamily, titleSize);\n      alert.setBodyTextFontFamilyWithSize(fontFamily, bodySize);\n      alert.setButtonsTextFontFamilyWithSize(fontFamily, buttonSize);\n    }\n  }\n\n  public static showCustomTextAttributes(\n    attributionBlock: (p1: string) => NSAttributedString,\n    button: TNSFancyAlertButton,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      alert.attributedFormatBlock = attributionBlock;\n      alert.addButtonActionBlock(button.label, () => {\n        button.action();\n        resolve();\n      });\n      TNSFancyAlert.showCustom(\n        alert,\n        image,\n        color,\n        title,\n        subTitle,\n        null,\n        duration\n      );\n    });\n  }\n\n  public static showTextField(\n    placeholder: string,\n    initialValue: string,\n    button: TNSFancyAlertButton,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      var textField = alert.addTextField(placeholder);\n      if (initialValue) textField.text = initialValue;\n      alert.addButtonActionBlock(button.label, () => {\n        textField.resignFirstResponder();\n        button.action(textField.text);\n        resolve();\n      });\n      TNSFancyAlert.showCustom(\n        alert,\n        image,\n        color,\n        title,\n        subTitle,\n        null,\n        duration\n      );\n    });\n  }\n\n  public static showSwitch(\n    switchLabel: string,\n    switchColor: string,\n    button: TNSFancyAlertButton,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      var switchView = alert.addSwitchViewWithLabel(switchLabel);\n      switchView.tintColor = new Color(switchColor).ios;\n\n      alert.addButtonActionBlock(button.label, () => {\n        button.action(switchView.selected);\n        resolve();\n      });\n      TNSFancyAlert.showCustom(\n        alert,\n        image,\n        color,\n        title,\n        subTitle,\n        null,\n        duration\n      );\n    });\n  }\n\n  public static showCustomView(\n    customView: any,\n    image?: any,\n    color?: string,\n    title?: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ) {\n    return new Promise((resolve, reject) => {\n      let alert = TNSFancyAlert.createAlert(width);\n      TNSFancyAlert.applyTextDisplayOptions(alert);\n\n      alert.addCustomView(customView);\n      TNSFancyAlert.showCustom(\n        alert,\n        image,\n        color,\n        title,\n        subTitle,\n        closeBtnTitle,\n        duration\n      );\n      // TODO: find way to resolve only after button is tapped\n      // right now just resolve after its shown passing back instance to allow further control by developer\n      resolve(alert);\n    });\n  }\n\n  /**\n   * Base Method\n   **/\n  public static show(\n    type: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ) {\n    let alert = TNSFancyAlert.createAlert(width);\n    TNSFancyAlert.applyTextDisplayOptions(alert);\n\n    // add custom buttons\n    if (buttons) {\n      for (let btn of buttons) {\n        alert.addButtonActionBlock(btn.label, () => {\n          btn.action();\n        });\n      }\n    }\n\n    // apply options to instance\n    TNSFancyAlert.applyOptions(alert);\n\n    if (typeof closeBtnTitle === \"undefined\") closeBtnTitle = \"Ok\";\n    alert[`show${type}SubTitleCloseButtonTitleDuration`](\n      title,\n      subTitle,\n      closeBtnTitle,\n      duration || 0\n    );\n  }\n\n  public static showCustom(\n    alert: any,\n    image: any,\n    color: string,\n    title?: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number\n  ) {\n    // apply options to instance\n    TNSFancyAlert.applyOptions(alert);\n\n    if (typeof image === \"undefined\") image = \"nativescript.png\";\n    if (typeof color === \"undefined\") color = \"#2B33FF\";\n    if (typeof closeBtnTitle === \"undefined\") closeBtnTitle = \"Ok\";\n\n    if (typeof image === \"string\") {\n      image = UIImage.imageNamed(image);\n    }\n\n    alert.showCustomColorTitleSubTitleCloseButtonTitleDuration(\n      image,\n      new Color(color).ios,\n      title,\n      subTitle,\n      closeBtnTitle,\n      duration || 0\n    );\n  }\n\n  /**\n   * Alert Options\n   */\n  public static applyOptions(alert: any) {\n    alert.shouldDismissOnTapOutside = TNSFancyAlert.shouldDismissOnTapOutside;\n\n    if (TNSFancyAlert.hideAnimationType)\n      alert.hideAnimationType = TNSFancyAlert.hideAnimationType;\n\n    if (TNSFancyAlert.showAnimationType)\n      alert.showAnimationType = TNSFancyAlert.showAnimationType;\n\n    if (TNSFancyAlert.backgroundType)\n      alert.backgroundType = TNSFancyAlert.backgroundType;\n\n    if (TNSFancyAlert.customViewColor)\n      alert.customViewColor = new Color(TNSFancyAlert.customViewColor).ios;\n\n    if (TNSFancyAlert.iconTintColor)\n      alert.iconTintColor = new Color(TNSFancyAlert.iconTintColor).ios;\n\n    if (TNSFancyAlert.titleColor)\n      alert.labelTitle.textColor = new Color(TNSFancyAlert.titleColor).ios;\n\n    if (TNSFancyAlert.bodyTextColor)\n      alert.viewText.textColor = new Color(TNSFancyAlert.bodyTextColor).ios;\n\n    alert.tintTopCircle = TNSFancyAlert.tintTopCircle;\n\n    if (TNSFancyAlert.cornerRadius)\n      alert.cornerRadius = TNSFancyAlert.cornerRadius;\n\n    if (TNSFancyAlert.backgroundViewColor)\n      alert.backgroundViewColor = new Color(\n        TNSFancyAlert.backgroundViewColor\n      ).ios;\n\n    alert.useLargerIcon = TNSFancyAlert.useLargerIcon;\n\n    if (TNSFancyAlert.soundURL)\n      alert.soundURL = NSURL.fileURLWithPath(\n        `${NSBundle.mainBundle.resourcePath}/${TNSFancyAlert.soundURL}`\n      );\n  }\n\n  /**\n   * Alert Creator\n   **/\n  public static createAlert(width?: number) {\n    let alert: SCLAlertView;\n    if (width) {\n      alert = SCLAlertView.alloc().initWithNewWindowWidth(width);\n    } else {\n      alert = SCLAlertView.alloc().initWithNewWindow();\n    }\n    if (TNSFancyAlert.dismissCallback) {\n      alert.alertIsDismissed(TNSFancyAlert.dismissCallback);\n    }\n    return alert;\n  }\n}\n"
  },
  {
    "path": "src/index.d.ts",
    "content": "import { TNSFancyAlertButton } from \"./common\";\nexport * from \"./common\";\nexport interface IFancyAlertSupportedTypes {\n  SUCCESS: string;\n  ERROR: string;\n  NOTICE: string;\n  WARNING: string;\n  INFO: string;\n  EDIT: string;\n  WAITING: string;\n  QUESTION: string;\n}\nexport interface IFancyAlertHideAnimationTypes {\n  FadeOut: any;\n  SlideOutToBottom: any;\n  SlideOutToTop: any;\n  SlideOutToLeft: any;\n  SlideOutToRight: any;\n  SlideOutToCenter: any;\n  SlideOutFromCenter: any;\n}\nexport interface IFancyAlertShowAnimationTypes {\n  FadeIn: any;\n  SlideInFromBottom: any;\n  SlideInFromTop: any;\n  SlideInFromLeft: any;\n  SlideInFromRight: any;\n  SlideInFromCenter: any;\n  SlideInToCenter: any;\n}\nexport interface IFancyAlertBackgroundTypes {\n  Shadow: any;\n  Blur: any;\n  Transparent: any;\n}\nexport interface IFancyAlertTextOptions {\n  titleFont?: string;\n  titleSize?: number;\n  bodyFont?: string;\n  bodySize?: number;\n  buttonFont?: string;\n  buttonSize?: number;\n  // if font is set on any option just use that font for all text settings\n  applyFontToAll?: boolean;\n}\nexport declare class TNSFancyAlertButton {\n  label: string;\n  action: (arg?: any) => void;\n  // this will give you the SLCButton (child of UIButton) instance that you can style however you'd like\n  applyStyle: (btn: any) => void;\n  constructor(model?: any);\n}\nexport declare class TNSFancyAlert {\n  static SUPPORTED_TYPES: IFancyAlertSupportedTypes;\n  static shouldDismissOnTapOutside: boolean;\n  static dismissCallback: () => void;\n  static hideAnimationType: IFancyAlertHideAnimationTypes;\n  static HIDE_ANIMATION_TYPES: IFancyAlertHideAnimationTypes;\n  static showAnimationType: IFancyAlertShowAnimationTypes;\n  static SHOW_ANIMATION_TYPES: IFancyAlertShowAnimationTypes;\n  static backgroundType: IFancyAlertBackgroundTypes;\n  static BACKGROUND_TYPES: IFancyAlertBackgroundTypes;\n  static textDisplayOptions: IFancyAlertTextOptions;\n  static customViewColor: string;\n  static iconTintColor: string;\n  static titleColor: string;\n  static bodyTextColor: string;\n  static tintTopCircle: boolean;\n  static cornerRadius: number;\n  static backgroundViewColor: string;\n  static useLargerIcon: boolean;\n  static soundURL: string;\n  static showSuccess(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showError(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showNotice(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showWarning(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showInfo(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showEdit(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showWaiting(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showQuestion(\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): Promise<{}>;\n  static showCustomButtonTimer(\n    buttonIndex: number,\n    reverse?: boolean,\n    imageName?: string,\n    color?: string,\n    title?: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showCustomImage(\n    imageName: string,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showCustomButtons(\n    buttons: Array<TNSFancyAlertButton>,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showCustomTextAttributes(\n    attributionBlock: Function,\n    button: TNSFancyAlertButton,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showTextField(\n    placeholder: string,\n    initialValue: string,\n    button: TNSFancyAlertButton,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showSwitch(\n    switchLabel: string,\n    switchColor: string,\n    button: TNSFancyAlertButton,\n    image: any,\n    color: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static showCustomView(\n    customView: any,\n    image?: any,\n    color?: string,\n    title?: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number\n  ): Promise<{}>;\n  static show(\n    type: string,\n    title: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number,\n    width?: number,\n    buttons?: Array<TNSFancyAlertButton>\n  ): void;\n  static showCustom(\n    alert: any,\n    image: any,\n    color: string,\n    title?: string,\n    subTitle?: string,\n    closeBtnTitle?: string,\n    duration?: number\n  ): void;\n  static applyOptions(alert: any): void;\n  static createAlert(width?: number): any;\n  // Android only\n  static showColorDialog(\n    title: string,\n    subTitle: string,\n    okBtnTitle?: string,\n    cancelBtnTitle?: string,\n    backgroundColor?: string,\n    titleTextColor?: string,\n    contextTextColor?: string,\n    contentImage?: any\n  ): Promise<any>;\n}\n"
  },
  {
    "path": "src/package.json",
    "content": "{\n  \"name\": \"nativescript-fancyalert\",\n  \"version\": \"3.1.1\",\n  \"description\": \"Fancy alerts for NativeScript.\",\n  \"main\": \"fancyalert\",\n  \"typings\": \"index.d.ts\",\n  \"nativescript\": {\n    \"platforms\": {\n      \"ios\": \"4.0.1\",\n      \"android\": \"4.1.3\"\n    }\n  },\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"watch\": \"npm run build -- -w\",\n    \"demo.ios\": \"npm run preparedemo && cd ../demo && tns run ios --emulator\",\n    \"demo.android\": \"npm run preparedemo && cd ../demo && tns run android --emulator\",\n    \"preparedemo\": \"npm run build && cd ../demo && tns plugin remove nativescript-fancyalert && tns plugin add ../src && tns install && npx rimraf -- package-lock.json\",\n    \"setup\": \"npm i && cd ../demo && npm install && cd ../src && npm run build && cd ../demo && tns plugin add ../src && cd ../src\",\n    \"precommit\": \"lint-staged\"\n  },\n  \"lint-staged\": {\n    \"*.ts\": [\n      \"prettier --write\",\n      \"git add\"\n    ]\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/NathanWalker/nativescript-fancyalert.git\"\n  },\n  \"keywords\": [\n    \"NativeScript\",\n    \"iOS\",\n    \"Android\",\n    \"alert\",\n    \"dialogs\"\n  ],\n  \"author\": {\n    \"name\": \"Nathan Walker\",\n    \"email\": \"walkerrunpdx@gmail.com\"\n  },\n  \"contributors\": [\n    {\n      \"name\": \"Brad Martin\",\n      \"email\": \"bradwaynemartin@gmail.com\",\n      \"url\": \"https://github.com/bradmartin\"\n    }\n  ],\n  \"bugs\": {\n    \"url\": \"https://github.com/NathanWalker/nativescript-fancyalert/issues\"\n  },\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/NathanWalker/nativescript-fancyalert\",\n  \"readmeFilename\": \"README.md\",\n  \"devDependencies\": {\n    \"tns-core-modules\": \"^6.5.0\",\n    \"tns-platform-declarations\": \"^6.5.0\",\n    \"husky\": \"^0.14.3\",\n    \"lint-staged\": \"^7.2.2\",\n    \"prettier\": \"^1.14.2\",\n    \"typescript\": \"~3.9.0\"\n  }\n}\n"
  },
  {
    "path": "src/platforms/android/include.gradle",
    "content": "android {\n    \n}\n\nrepositories {\n   maven {\n      url  \"https://jitpack.io\"\n   }\n}\n\ndependencies {\n     compile 'com.github.Rahul1d:ColorDialog:1.1.0'\n}"
  },
  {
    "path": "src/platforms/ios/Podfile",
    "content": "pod 'SCLAlertView-Objective-C'"
  },
  {
    "path": "src/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es5\",\n    \"module\": \"commonjs\",\n    \"declaration\": false,\n    \"removeComments\": true,\n    \"noLib\": false,\n    \"emitDecoratorMetadata\": true,\n    \"experimentalDecorators\": true,\n    \"skipLibCheck\": true,\n    \"lib\": [\"es5\", \"es6\", \"dom\", \"es2015.iterable\"],\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"*\": [\"./node_modules/tns-core-modules/*\", \"./node_modules/*\"]\n    },\n    \"sourceMap\": true,\n    \"pretty\": true,\n    \"allowUnreachableCode\": false,\n    \"allowUnusedLabels\": false,\n    \"noEmitHelpers\": true,\n    \"noEmitOnError\": false,\n    \"noImplicitAny\": false,\n    \"noImplicitReturns\": true,\n    \"noImplicitUseStrict\": false,\n    \"noFallthroughCasesInSwitch\": true,\n    \"typeRoots\": [\"./node_modules/@types\", \"./node_modules\"],\n    \"types\": []\n  },\n  \"exclude\": [\"node_modules\", \"demo\"],\n  \"compileOnSave\": false\n}\n"
  },
  {
    "path": "src/typings/objc!SCLAlertView_Objective_C.d.ts",
    "content": "declare class SCLALertViewButtonBuilder extends SCLAlertViewBuilder__WithFluent {\n  static alloc(): SCLALertViewButtonBuilder; // inherited from NSObject\n\n  static new(): SCLALertViewButtonBuilder; // inherited from NSObject\n\n  readonly actionBlock: (p1: () => void) => SCLALertViewButtonBuilder;\n\n  readonly button: SCLButton;\n\n  readonly selector: (p1: string) => SCLALertViewButtonBuilder;\n\n  readonly target: (p1: any) => SCLALertViewButtonBuilder;\n\n  readonly title: (p1: string) => SCLALertViewButtonBuilder;\n\n  readonly validationBlock: (p1: () => boolean) => SCLALertViewButtonBuilder;\n}\n\ndeclare class SCLALertViewTextFieldBuilder extends SCLAlertViewBuilder__WithFluent {\n  static alloc(): SCLALertViewTextFieldBuilder; // inherited from NSObject\n\n  static new(): SCLALertViewTextFieldBuilder; // inherited from NSObject\n\n  readonly textField: SCLTextView;\n\n  readonly title: (p1: string) => SCLALertViewTextFieldBuilder;\n}\n\ndeclare const enum SCLActionType {\n  None = 0,\n\n  Selector = 1,\n\n  Block = 2\n}\n\ndeclare class SCLAlertView extends UIViewController {\n  static alloc(): SCLAlertView; // inherited from NSObject\n\n  static new(): SCLAlertView; // inherited from NSObject\n\n  activityIndicatorView: UIActivityIndicatorView;\n\n  attributedFormatBlock: (p1: string) => NSAttributedString;\n\n  backgroundType: SCLAlertViewBackground;\n\n  backgroundViewColor: UIColor;\n\n  buttonFormatBlock: () => NSDictionary<any, any>;\n\n  circleIconHeight: number;\n\n  completeButtonFormatBlock: () => NSDictionary<any, any>;\n\n  cornerRadius: number;\n\n  customViewColor: UIColor;\n\n  extensionBounds: CGRect;\n\n  forceHideBlock: () => void;\n\n  hideAnimationType: SCLAlertViewHideAnimation;\n\n  horizontalButtons: boolean;\n\n  iconTintColor: UIColor;\n\n  labelTitle: UILabel;\n\n  shouldDismissOnTapOutside: boolean;\n\n  showAnimationType: SCLAlertViewShowAnimation;\n\n  soundURL: NSURL;\n\n  statusBarHidden: boolean;\n\n  statusBarStyle: UIStatusBarStyle;\n\n  tintTopCircle: boolean;\n\n  useLargerIcon: boolean;\n\n  viewText: UITextView;\n\n  constructor(o: { newWindow: void });\n\n  constructor(o: { newWindowWidth: number });\n\n  addButtonActionBlock(title: string, action: () => void): SCLButton;\n\n  addButtonTargetSelector(\n    title: string,\n    target: any,\n    selector: string\n  ): SCLButton;\n\n  addButtonValidationBlockActionBlock(\n    title: string,\n    validationBlock: () => boolean,\n    action: () => void\n  ): SCLButton;\n\n  addCustomTextField(textField: UITextField): void;\n\n  addCustomView(customView: UIView): UIView;\n\n  addSwitchViewWithLabel(label: string): SCLSwitchView;\n\n  addTextField(title: string): SCLTextView;\n\n  addTimerToButtonIndexReverse(buttonIndex: number, reverse: boolean): void;\n\n  alertDismissAnimationIsCompleted(\n    dismissAnimationCompletionBlock: () => void\n  ): void;\n\n  alertIsDismissed(dismissBlock: () => void): void;\n\n  alertShowAnimationIsCompleted(showAnimationCompletionBlock: () => void): void;\n\n  hideView(): void;\n\n  initWithNewWindow(): this;\n\n  initWithNewWindowWidth(windowWidth: number): this;\n\n  isVisible(): boolean;\n\n  removeTopCircle(): void;\n\n  setBodyTextFontFamilyWithSize(bodyTextFontFamily: string, size: number): void;\n\n  setButtonsTextFontFamilyWithSize(\n    buttonsFontFamily: string,\n    size: number\n  ): void;\n\n  setTitleFontFamilyWithSize(titleFontFamily: string, size: number): void;\n\n  showCustomColorTitleSubTitleCloseButtonTitleDuration(\n    image: UIImage,\n    color: UIColor,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showCustomImageColorTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    image: UIImage,\n    color: UIColor,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showEditSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showEditTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showErrorSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showErrorTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showInfoSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showInfoTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showNoticeSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showNoticeTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showQuestionSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showQuestionTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showSuccessSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showSuccessTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showTitleSubTitleStyleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    style: SCLAlertViewStyle,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showTitleTitleSubTitleStyleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    style: SCLAlertViewStyle,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showWaitingSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showWaitingTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showWarningSubTitleCloseButtonTitleDuration(\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n\n  showWarningTitleSubTitleCloseButtonTitleDuration(\n    vc: UIViewController,\n    title: string,\n    subTitle: string,\n    closeButtonTitle: string,\n    duration: number\n  ): void;\n}\n\ndeclare const enum SCLAlertViewBackground {\n  Shadow = 0,\n\n  Blur = 1,\n\n  Transparent = 2\n}\n\ndeclare class SCLAlertViewBuilder extends SCLAlertViewBuilder__WithFluent {\n  static alloc(): SCLAlertViewBuilder; // inherited from NSObject\n\n  static new(): SCLAlertViewBuilder; // inherited from NSObject\n\n  activityIndicatorView: (p1: UIActivityIndicatorView) => SCLAlertViewBuilder;\n\n  addButtonWithActionBlock: (p1: string, p2: () => void) => SCLAlertViewBuilder;\n\n  addButtonWithBuilder: (p1: SCLALertViewButtonBuilder) => SCLAlertViewBuilder;\n\n  addButtonWithTarget: (p1: string, p2: any, p3: string) => SCLAlertViewBuilder;\n\n  addButtonWithValidationBlock: (\n    p1: string,\n    p2: () => boolean,\n    p3: () => void\n  ) => SCLAlertViewBuilder;\n\n  addCustomTextField: (p1: UITextField) => SCLAlertViewBuilder;\n\n  addCustomView: (p1: UIView) => SCLAlertViewBuilder;\n\n  addSwitchViewWithLabelTitle: (p1: string) => SCLAlertViewBuilder;\n\n  addTextField: (p1: string) => SCLAlertViewBuilder;\n\n  addTextFieldWithBuilder: (\n    p1: SCLALertViewTextFieldBuilder\n  ) => SCLAlertViewBuilder;\n\n  addTimerToButtonIndex: (p1: number, p2: boolean) => SCLAlertViewBuilder;\n\n  alertDismissAnimationIsCompleted: (p1: () => void) => SCLAlertViewBuilder;\n\n  alertIsDismissed: (p1: () => void) => SCLAlertViewBuilder;\n\n  alertShowAnimationIsCompleted: (p1: () => void) => SCLAlertViewBuilder;\n\n  readonly alertView: SCLAlertView;\n\n  attributedFormatBlock: (\n    p1: (p1: string) => NSAttributedString\n  ) => SCLAlertViewBuilder;\n\n  backgroundType: (p1: SCLAlertViewBackground) => SCLAlertViewBuilder;\n\n  backgroundViewColor: (p1: UIColor) => SCLAlertViewBuilder;\n\n  buttonFormatBlock: (p1: () => NSDictionary<any, any>) => SCLAlertViewBuilder;\n\n  circleIconHeight: (p1: number) => SCLAlertViewBuilder;\n\n  completeButtonFormatBlock: (\n    p1: () => NSDictionary<any, any>\n  ) => SCLAlertViewBuilder;\n\n  cornerRadius: (p1: number) => SCLAlertViewBuilder;\n\n  customViewColor: (p1: UIColor) => SCLAlertViewBuilder;\n\n  extensionBounds: (p1: CGRect) => SCLAlertViewBuilder;\n\n  forceHideBlock: (p1: () => void) => SCLAlertViewBuilder;\n\n  hideAnimationType: (p1: SCLAlertViewHideAnimation) => SCLAlertViewBuilder;\n\n  iconTintColor: (p1: UIColor) => SCLAlertViewBuilder;\n\n  labelTitle: (p1: UILabel) => SCLAlertViewBuilder;\n\n  removeTopCircle: () => SCLAlertViewBuilder;\n\n  setBodyTextFontFamily: (p1: string, p2: number) => SCLAlertViewBuilder;\n\n  setButtonsTextFontFamily: (p1: string, p2: number) => SCLAlertViewBuilder;\n\n  setTitleFontFamily: (p1: string, p2: number) => SCLAlertViewBuilder;\n\n  shouldDismissOnTapOutside: (p1: boolean) => SCLAlertViewBuilder;\n\n  showAnimationType: (p1: SCLAlertViewShowAnimation) => SCLAlertViewBuilder;\n\n  soundURL: (p1: NSURL) => SCLAlertViewBuilder;\n\n  statusBarHidden: (p1: boolean) => SCLAlertViewBuilder;\n\n  statusBarStyle: (p1: UIStatusBarStyle) => SCLAlertViewBuilder;\n\n  tintTopCircle: (p1: boolean) => SCLAlertViewBuilder;\n\n  useLargerIcon: (p1: boolean) => SCLAlertViewBuilder;\n\n  viewText: (p1: UITextView) => SCLAlertViewBuilder;\n\n  constructor(o: { newWindow: void });\n\n  constructor(o: { newWindowWidth: number });\n\n  initWithNewWindow(): this;\n\n  initWithNewWindowWidth(width: number): this;\n}\n\ndeclare class SCLAlertViewBuilder__WithFluent extends NSObject\n  implements SCLItemsBuilder__Protocol__Fluent {\n  static alloc(): SCLAlertViewBuilder__WithFluent; // inherited from NSObject\n\n  static new(): SCLAlertViewBuilder__WithFluent; // inherited from NSObject\n\n  readonly debugDescription: string; // inherited from NSObjectProtocol\n\n  readonly description: string; // inherited from NSObjectProtocol\n\n  readonly hash: number; // inherited from NSObjectProtocol\n\n  readonly isProxy: boolean; // inherited from NSObjectProtocol\n\n  readonly superclass: typeof NSObject; // inherited from NSObjectProtocol\n\n  readonly; // inherited from NSObjectProtocol\n\n  class(): typeof NSObject;\n\n  conformsToProtocol(aProtocol: any /* Protocol */): boolean;\n\n  isEqual(object: any): boolean;\n\n  isKindOfClass(aClass: typeof NSObject): boolean;\n\n  isMemberOfClass(aClass: typeof NSObject): boolean;\n\n  performSelector(aSelector: string): any;\n\n  performSelectorWithObject(aSelector: string, object: any): any;\n\n  performSelectorWithObjectWithObject(\n    aSelector: string,\n    object1: any,\n    object2: any\n  ): any;\n\n  respondsToSelector(aSelector: string): boolean;\n\n  retainCount(): number;\n\n  self(): this;\n\n  setupFluent(): void;\n}\n\ndeclare const enum SCLAlertViewHideAnimation {\n  FadeOut = 0,\n\n  SlideOutToBottom = 1,\n\n  SlideOutToTop = 2,\n\n  SlideOutToLeft = 3,\n\n  SlideOutToRight = 4,\n\n  SlideOutToCenter = 5,\n\n  SlideOutFromCenter = 6,\n\n  SimplyDisappear = 7\n}\n\ndeclare class SCLAlertViewResponder extends NSObject {\n  static alloc(): SCLAlertViewResponder; // inherited from NSObject\n\n  static new(): SCLAlertViewResponder; // inherited from NSObject\n\n  constructor();\n\n  close(): void;\n\n  init(alertview: SCLAlertView): this;\n}\n\ndeclare const enum SCLAlertViewShowAnimation {\n  FadeIn = 0,\n\n  SlideInFromBottom = 1,\n\n  SlideInFromTop = 2,\n\n  SlideInFromLeft = 3,\n\n  SlideInFromRight = 4,\n\n  SlideInFromCenter = 5,\n\n  SlideInToCenter = 6,\n\n  SimplyAppear = 7\n}\n\ndeclare class SCLAlertViewShowBuilder extends SCLAlertViewBuilder__WithFluent {\n  static alloc(): SCLAlertViewShowBuilder; // inherited from NSObject\n\n  static new(): SCLAlertViewShowBuilder; // inherited from NSObject\n\n  readonly closeButtonTitle: (p1: string) => SCLAlertViewShowBuilder;\n\n  readonly color: (p1: UIColor) => SCLAlertViewShowBuilder;\n\n  readonly completeText: (p1: string) => SCLAlertViewShowBuilder;\n\n  readonly duration: (p1: number) => SCLAlertViewShowBuilder;\n\n  readonly image: (p1: UIImage) => SCLAlertViewShowBuilder;\n\n  readonly parameterCloseButtonTitle: string;\n\n  readonly parameterColor: UIColor;\n\n  readonly parameterCompleteText: string;\n\n  readonly parameterDuration: number;\n\n  readonly parameterImage: UIImage;\n\n  readonly parameterStyle: SCLAlertViewStyle;\n\n  readonly parameterSubTitle: string;\n\n  readonly parameterTitle: string;\n\n  readonly parameterViewController: UIViewController;\n\n  readonly show: (p1: SCLAlertView, p2: UIViewController) => void;\n\n  readonly style: (p1: SCLAlertViewStyle) => SCLAlertViewShowBuilder;\n\n  readonly subTitle: (p1: string) => SCLAlertViewShowBuilder;\n\n  readonly title: (p1: string) => SCLAlertViewShowBuilder;\n\n  readonly viewController: (p1: UIViewController) => SCLAlertViewShowBuilder;\n\n  showAlertView(alertView: SCLAlertView): void;\n\n  showAlertViewOnViewController(\n    alertView: SCLAlertView,\n    controller: UIViewController\n  ): void;\n}\n\ndeclare const enum SCLAlertViewStyle {\n  Success = 0,\n\n  Error = 1,\n\n  Notice = 2,\n\n  Warning = 3,\n\n  Info = 4,\n\n  Edit = 5,\n\n  Waiting = 6,\n\n  Question = 7,\n\n  Custom = 8\n}\n\ndeclare class SCLAlertViewStyleKit extends NSObject {\n  static alloc(): SCLAlertViewStyleKit; // inherited from NSObject\n\n  static drawCheckmark(): void;\n\n  static drawCross(): void;\n\n  static drawEdit(): void;\n\n  static drawInfo(): void;\n\n  static drawNotice(): void;\n\n  static drawQuestion(): void;\n\n  static drawWarning(): void;\n\n  static imageOfCheckmark(): UIImage;\n\n  static imageOfCross(): UIImage;\n\n  static imageOfEdit(): UIImage;\n\n  static imageOfInfo(): UIImage;\n\n  static imageOfNotice(): UIImage;\n\n  static imageOfQuestion(): UIImage;\n\n  static imageOfWarning(): UIImage;\n\n  static new(): SCLAlertViewStyleKit; // inherited from NSObject\n}\n\ndeclare var SCLAlertView_Objective_CVersionNumber: number;\n\ndeclare var SCLAlertView_Objective_CVersionString: interop.Reference<number>;\n\ndeclare class SCLButton extends UIButton {\n  static alloc(): SCLButton; // inherited from NSObject\n\n  static appearance(): SCLButton; // inherited from UIAppearance\n\n  static appearanceForTraitCollection(trait: UITraitCollection): SCLButton; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedIn(\n    trait: UITraitCollection,\n    ContainerClass: typeof NSObject\n  ): SCLButton; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(\n    trait: UITraitCollection,\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLButton; // inherited from UIAppearance\n\n  static appearanceWhenContainedIn(ContainerClass: typeof NSObject): SCLButton; // inherited from UIAppearance\n\n  static appearanceWhenContainedInInstancesOfClasses(\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLButton; // inherited from UIAppearance\n\n  static buttonWithType(buttonType: UIButtonType): SCLButton; // inherited from UIButton\n\n  static new(): SCLButton; // inherited from NSObject\n\n  actionBlock: () => void;\n\n  actionType: SCLActionType;\n\n  buttonFormatBlock: () => NSDictionary<any, any>;\n\n  completeButtonFormatBlock: () => NSDictionary<any, any>;\n\n  defaultBackgroundColor: UIColor;\n\n  selector: string;\n\n  target: any;\n\n  timer: SCLTimerDisplay;\n\n  validationBlock: () => boolean;\n\n  constructor(o: { windowWidth: number });\n\n  adjustWidthWithWindowWidthNumberOfButtons(\n    windowWidth: number,\n    numberOfButtons: number\n  ): void;\n\n  initWithWindowWidth(windowWidth: number): this;\n\n  parseConfig(buttonConfig: NSDictionary<any, any>): void;\n}\n\ninterface SCLItemsBuilder__Protocol__Fluent extends NSObjectProtocol {\n  setupFluent(): void;\n}\ndeclare var SCLItemsBuilder__Protocol__Fluent: {\n  prototype: SCLItemsBuilder__Protocol__Fluent;\n};\n\ndeclare class SCLSwitchView extends UIView {\n  static alloc(): SCLSwitchView; // inherited from NSObject\n\n  static appearance(): SCLSwitchView; // inherited from UIAppearance\n\n  static appearanceForTraitCollection(trait: UITraitCollection): SCLSwitchView; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedIn(\n    trait: UITraitCollection,\n    ContainerClass: typeof NSObject\n  ): SCLSwitchView; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(\n    trait: UITraitCollection,\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLSwitchView; // inherited from UIAppearance\n\n  static appearanceWhenContainedIn(\n    ContainerClass: typeof NSObject\n  ): SCLSwitchView; // inherited from UIAppearance\n\n  static appearanceWhenContainedInInstancesOfClasses(\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLSwitchView; // inherited from UIAppearance\n\n  static new(): SCLSwitchView; // inherited from NSObject\n\n  labelColor: UIColor;\n\n  labelFont: UIFont;\n\n  labelText: string;\n\n  selected: boolean;\n}\n\ndeclare class SCLTextView extends UITextField {\n  static alloc(): SCLTextView; // inherited from NSObject\n\n  static appearance(): SCLTextView; // inherited from UIAppearance\n\n  static appearanceForTraitCollection(trait: UITraitCollection): SCLTextView; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedIn(\n    trait: UITraitCollection,\n    ContainerClass: typeof NSObject\n  ): SCLTextView; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(\n    trait: UITraitCollection,\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLTextView; // inherited from UIAppearance\n\n  static appearanceWhenContainedIn(\n    ContainerClass: typeof NSObject\n  ): SCLTextView; // inherited from UIAppearance\n\n  static appearanceWhenContainedInInstancesOfClasses(\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLTextView; // inherited from UIAppearance\n\n  static new(): SCLTextView; // inherited from NSObject\n}\n\ndeclare class SCLTimerDisplay extends UIView {\n  static alloc(): SCLTimerDisplay; // inherited from NSObject\n\n  static appearance(): SCLTimerDisplay; // inherited from UIAppearance\n\n  static appearanceForTraitCollection(\n    trait: UITraitCollection\n  ): SCLTimerDisplay; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedIn(\n    trait: UITraitCollection,\n    ContainerClass: typeof NSObject\n  ): SCLTimerDisplay; // inherited from UIAppearance\n\n  static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(\n    trait: UITraitCollection,\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLTimerDisplay; // inherited from UIAppearance\n\n  static appearanceWhenContainedIn(\n    ContainerClass: typeof NSObject\n  ): SCLTimerDisplay; // inherited from UIAppearance\n\n  static appearanceWhenContainedInInstancesOfClasses(\n    containerTypes: NSArray<typeof NSObject>\n  ): SCLTimerDisplay; // inherited from UIAppearance\n\n  static new(): SCLTimerDisplay; // inherited from NSObject\n\n  buttonIndex: number;\n\n  color: UIColor;\n\n  currentAngle: number;\n\n  reverse: boolean;\n\n  constructor(o: { origin: CGPoint; radius: number });\n\n  constructor(o: { origin: CGPoint; radius: number; lineWidth: number });\n\n  cancelTimer(): void;\n\n  initWithOriginRadius(origin: CGPoint, r: number): this;\n\n  initWithOriginRadiusLineWidth(\n    origin: CGPoint,\n    r: number,\n    width: number\n  ): this;\n\n  startTimerWithTimeLimitCompleted(tl: number, completed: () => void): void;\n\n  stopTimer(): void;\n\n  updateFrame(size: CGSize): void;\n}\n"
  }
]