/**
 * 一套移动端的各种弹框组件<br>
 *  <strong>
 *          页面需要导入的文件
 *          <ul>
 *              <li>由于该模块使用场景较多,该模块的js合并到cmp.js里的</li>
 *          </ul>
 *      </strong>
 * @module Notification-dialog
 * @subtitle 弹框模块
 */

/**
 * 弹框类<br>
 *     封装了一套统一风格的弹出类提示框
 *     <ul>
 *         <li>alert</li>
 *         <li>comfirm</li>
 *         <li>.....</li>
 *     </ul>
 * @class notification
 */

/**
 * 三个选项的提示框
 * @namespace cmp.notification
 * @method judge
 * @param {String} msg 消息内容
 * @param {Function} [callback] 警告消失时执行的回调函数(默认:关闭组件)
 * @param {String} [title] 警告标题,(默认:judge)
 * @param {String} [btnLabels] 按钮名称,(默认:YES,NO,Cancel)
 * @param {String} [icon] 提示内容中的图标路径
 * @example
 * ```
 * <script>
 *     cmp.notification.judge("进行判断的提示",function(index){
 *          if(index == 0){
 *               //点击了第一个按钮
 *          }else if(index == 1){
 *              //点击了第二个按钮
 *          }else if(index == 2){
 *              //点击了第三个按钮
 *          }
 *     },"提示",["确定","否","取消"],"http://www.baidu.com/log.png");
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 警告框
 * @namespace cmp.notification
 * @method alert
 * @param {String} msg 消息内容
 * @param {Function} [callback] 警告消失时执行的回调函数(默认:关闭组件)
 * @param {String} [title] 警告标题,(默认:Alert)
 * @param {String} [btnName] 按钮名称,(默认:OK)
 * @param {String} [icon] 用于弹出框装饰性的标识,可以传任何可以用于html显示的图片、css处理好的文字等,如:<br>
 *     <ul>
 *         <li>如果是图片:"< img src='http://...' style='width:12px;height:12px'>"</li>
 *         <li>如果是文字:"< div style='...'>需要显示的文字< /div>"</li>
 *     </ul>
 * @param {Boolean} [customLog] 自定义是否关闭组件,当设置成true时,点击关闭按钮后callback返回给开发者关闭该组件的方法,关不关闭由开发者决定,默认:false
 * @param {Boolean} [backbutton2CallbackIndex] 定义是否适配点击android的返回按钮进行按钮的主动触发操作
 * @example
 * ```
 * <script>
 *     cmp.notification.alert("进行alert的提示",function(){
 *          //do something after tap button
 *     },"提示","确定","<img src='xxx'>",false,false);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 确认框
 * @namespace cmp.notification
 * @method confirm
 * @param {String} msg 消息内容
 * @param {Function} callback 当点击确认消息按钮时(索引是:0|1),确认消息消失时调用
 * @param {String} [title] 警告标题(默认:Confirm)
 * @param {Array} [btnLabels]按钮名称数组(默认:['OK','Cancel'])
 * @param {String} [icon] 用于弹出框装饰性的标识,可以传任何可以用于html显示的图片、css处理好的文字等,如:<br>
 *     <ul>
 *         <li>如果是图片:"< img src='http://...' style='width:12px;height:12px'>"</li>
 *         <li>如果是文字:"< div style='...'>需要显示的文字< /div>"</li>
 *     </ul>
 * @param {Boolean} [customClose] 自定义是否关闭组件,当设置成true时,点击关闭按钮后callback返回给开发者关闭该组件的方法,关不关闭由开发者决定,默认:false
 * @param {Number} [backbutton2CallbackIndex] 定义是否适配点击android的返回按钮进行对应下标按钮的主动触发操作,0:第一个按钮,1第二个按钮
 * @example
 * ```
 * <script>
 *     cmp.notification.confirm("进行确认的提示",function(index){
 *          if(index == 0){
 *               //点击了第一个按钮
 *          }else if(index == 1){
 *              //点击了第二个按钮
 *          }
 *     },"确认",["确定","取消"],"http://www.baidu.com/log.png",false,0);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 自动消失提示框,常用于移动端不需要操作的提示,简化移动端的交互操作
 * @namespace cmp.notification
 * @method toast
 *
 * @param {String} msg 提醒消息内容
 * @param {String} [position] 提示框在页面显示的位置,接受以下值:<br>
 *          <ul>
 *              <li>top:在页面顶部显示</li>
 *              <li>center:在页面中间显示</li>
 *              <li>bottom:在页面底部显示(默认)</li>
 *          </ul>
 * @param {Number} [time] 消息显示时间(单位:毫秒;默认:2000)
 * @param {Number} type 展示类型(0为纯文字样式,1为已完成样式, 默认为0)
 * @example
 * ```
 * <script>
 *     cmp.notification.toast("自动消失的提示框","center",1000,0);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 可输入提示框
 * @method prompt
 * @namespace cmp.notification
 * @param {String} title 可选,警告标题,默认是Prompt
 * @param {Function} callback 当点击确认消息按钮时(索引是:1|2|3),确认消息消失时调用
 * @param {Array} [btnLabels] 可选,按钮名称数组,默认是['OK','Cancel']
 * @param {String} [placeholder] 可选,输入控件的提示占位符,默认空字符串
 * @param {String} [defaultVal] 可选,输入控件的默认值,默认空字符串
 * @param {Number} [type] 可选,输入框的类型,默认text,其中,1,text ,2,password,3,number,4 textarea
 * @param {Boolean} [customLog] 可选,自定义是否是自己关闭组件
 * @param {Number} [backbutton2CallbackIndex] 可选,对应返回按钮需要触发的按钮的下标,如:0:第一个按钮,1第二个按钮
 * @example
 * ```
 * <script>
 *     cmp.notification.prompt("输入提示框",function(index){
 *          if(index == 0){
 *               //点击了第一个按钮
 *          }else if(index == 1){
 *              //点击了第二个按钮
 *          }
 *     },["确认","取消"],"这是一个输入占位符","默认值","text",false,0);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 只适用于iOS平台的获取iOS设备在设置中对应用的消息推送的开关状态
 * @method getPushState
 * @namespace cmp.notification
 * @param {Function} callback 回调函数,组件将处理结果返回,格式:<br>
 *          <ul>
 *              <li>true:允许通知</li>
 *              <li>false:不允许,非iOS平台会一直返回false</li>
 *          </ul>
 * @example
 * ```
 * <script>
 *     cmp.notification.getPushState("输入提示框",function(result){
 *          //do something with result
 *     });
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 气泡弹框
 * @method bubble
 * @namespace cmp.notification
 * @param {Function} callback 当点击按钮时(索引是:0|1···),回调自定义方法
 * @param {Array} [btnLabels]按钮名称数组(默认:['复制','转发','撤销'])
 * @example
 * ```
 * <script>
 *     cmp.notification.bubble(function(index){
 *          if(index == 0){
 *               //点击了第一个按钮
 *          }else if(index == 1){
 *              //点击了第二个按钮
 *          }else if(idnex == 2){
 *
 *          }
 *     },['复制','转发','撤销']);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 原生弹框,用于webview不能覆盖手机整个屏幕时(如导航栏或脚部是原生的)的全屏弹框
 * @method alertView
 * @namespace cmp.notification
 * @param {Object} options 配置参数 {title:'xx', message:'xx', buttonTitles:['xx','xx'], success:function, error:function}
 * @example
 * ```
 * <script>
 *     cmp.notification.alertView({
 *         title:"提示标题",
 *         message:"提示内容",
 *         buttonTitles:["按钮1",按钮2],
 *         success:function(){//点击确定的回调}
 *     });
 * </script>
 * ```
 */




/**
 * 进一步封装的弹框类<br>
 *     符合大多数情况的弹框提示使用
 * @class dialog
 */

/**
 * 成功提示函数
 * @method success
 * @namespace cmp.dialog
 * @param {String} msg 提示的消息内容
 * @param {Function} [callback] 当点击确认消息按钮时,组件返回按钮索引(索引是:0|1),确认消息消失时调用(默认:组件自动关闭)
 * @param {String} [title] 警告标题,默认是Success
 * @param {Array} [btnLabels] 可选,按钮名称数组,默认是['OK','Cancel']
 * @example
 * ```
 * <script>
 *     cmp.dialog.success("成功提示",function(index){
 *          //do something with result
 *     },"成功",["确认","取消"]);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 错误提示函数
 * @method error
 * @namespace cmp.dialog
 * @param {String} msg 提示的消息内容
 * @param {Function} [callback] 当点击确认消息按钮时,组件返回按钮索引(索引是:0|1),确认消息消失时调用(默认:组件自动关闭)
 * @param {String} [title] 警告标题,默认是Success
 * @param {Array} [btnLabels] 可选,按钮名称数组,默认是['OK','Cancel']
 * @example
 * ```
 * <script>
 *     cmp.dialog.error("错误提示",function(index){
 *          //do something with result
 *     },"错误",["确认","取消"]);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 异常提示函数
 * @method failure
 * @namespace cmp.dialog
 * @param {String} msg 提示的消息内容
 * @param {Function} [callback] 当点击确认消息按钮时,组件返回按钮索引(索引是:0|1),确认消息消失时调用(默认:组件自动关闭)
 * @param {String} [title] 警告标题,默认是Success
 * @param {Array} [btnLabels] 可选,按钮名称数组,默认是['OK','Cancel']
 * @example
 * ```
 * <script>
 *     cmp.dialog.failure("异常提示",function(index){
 *          //do something with result
 *     },"异常",["确认","取消"]);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 警告提示函数
 * @method warning
 * @namespace cmp.dialog
 * @param {String} msg 提示的消息内容
 * @param {Function} [callback] 当点击确认消息按钮时,组件返回按钮索引(索引是:0|1),确认消息消失时调用(默认:组件自动关闭)
 * @param {String} [title] 警告标题,默认是Success
 * @param {Array} [btnLabels] 可选,按钮名称数组,默认是['OK','Cancel']
 * @example
 * ```
 * <script>
 *     cmp.dialog.warning("警告提示",function(index){
 *          //do something with result
 *     },"警告",["确认","取消"]);
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */

/**
 * 表形式操作框组弹出框,常见于移动端弹出拍照、选择相册的选择操作中
 * @method actionSheet
 * @namespace cmp.dialog
 * @param {Array} items 操作组item,格式:<br>
 * [
 *  {key:1,name:'操作组item1'},
 *  {key:2,name:'操作组item2'}
 * ]
 * @param {String} [cancelText] 最底部 取消按钮的显示文本 (默认:Cancel)
 * @param {Function} [selCallback] item被点击选择的回调函数 组件将该item的信息格式传入<br>
 *     {key:1,name:"操作组item1"}
 * @param {Function} [cancelCallback] 点击取消按钮的回调函数(默认:关闭组件)
 * @example
 * ```
 * <script>
 *     cmp.dialog.actionSheet([{key:1,name:"操作组item1"}],"取消",function selectedCallback(result){
 *          //do something with result
 *     },function cancelCallback(){
 *        //do something with tap cancel button
 *     });
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/ui/cmp-actionsheet.html)
 */

/**
 * 弹出一个list对话框(可滚动),常用于有多条数据需要以列表的形式展示和选择的时候
 * @method list
 * @namespace cmp.dialog
 * @param items items数组,格式:<br>
 * [
 *  'item1','item2','item3'
 * ]
 * @param [cancelText] 最底部 取消按钮的显示文本 默认 Cancel
 * @param [selCallback] item选择回调函数,将返回参数传入,格式:"item1"
 * @param [cancelCallback] 点击取消按钮的回调函数(默认:组件自动关闭)
 * @example
 * ```
 * <script>
 *     cmp.dialog.list([{key:1,name:"操作组item1"}],"list标题","取消",function selectedCallback(result){
 *          //do something with result
 *     },function cancelCallback(){
 *        //do something with tap cancel button
 *     });
 * </script>
 * ```
 */

/**
 * 显示或则关闭进度弹出框,经常用于页面加载或者文件上传时等待的动画提示
 * @method loading
 * @namespace cmp.dialog
 * @param {Boolean|String|Object} [options] <br>
 *     <ul>
 *         <li>true/不定义:显示组件,并且是loading状态</li>
 *         <li>String:为默认的加载中(loading)状态,且提示文字为options</li>
 *         <li>Object:为对象时,按照{status:"systembusy","系统繁忙得很"}的配置方式,其中:
 *             <ul>
 *                 <li>status:为四种状态 加载中---loading,系统繁忙---systembusy,无网络---nonetwork,无内容---nocontent</li>
 *                 <li>text:为配置的提示文字,如果未传,以组件默认的文字提示</li>
 *                 <li>如果为systembusy时,可以定义callback,当点击中心时,执行开发者的回调函数</li>
 *             </ul>
 *         </li>
 *         <li>false:不显示组件</li>
 *     </ul>
 * @example
 * ```
 * <script>
 *     cmp.dialog.loading(); / cmp.dialog.loading(false);  /cmp.dialog.loading("加载中...");  /cmp.dialog.loading({status:"systembusy","系统繁忙得很",callback:function})
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */
/**
 * 显示或关闭数据加载中弹出框,用于页面加载时等待的动画提示
 * @namespace cmp.dialog
 * @method loading2
 * @param {Boolean|String} [isShow] <br>
 *     <ul>
 *         <li>true/不定义:显示组件</li>
 *         <li>false:不显示组件</li>
 *     </ul>
 * @example
 * ```
 * <script>
 *     cmp.dialog.loading2(); / cmp.dialog.loading2(false);  /cmp.dialog.loading2("加载中...");
 * </script>
 * ```
 * @cutline [DEMO地址](/seeyon/cmp2.0/demo/demo/pagings/widgetExtend/cmp-dialog.html)
 */
    
Top